SNES SPC MUSIC PLAYER ON FPGA

 

Page in progress.   Meanwhile...

Description:


It's my ELE3199 project.  I wanted to make something combining FPGA, emulation of video game console and some interesting output. I recreated some hardware found in Super Nintendo to produce sound.  More information on SNES sounds on Wikipedia.

My project plays .SPC files stored in a FLASH memory.  .SPC files contain memory state of SNES sound module just before a game starts to play a tune.  By loading the state in the system memory, the hardware resume execution of the game music program.

SNES sound hardware is mainly 2 parts:

An FPGA is a device that allow you to prototype hardware designs.  More info on Wikipedia.

To test my project, the university lended me an Altera DE2 board.  This board contain an Cyclone II FPGA, SRAM, SDRAM and FLASH memory, audio CODEC, switches, leds and bunch of goodies.

Hardware parts are written in VHDL.  The DSP core has been written with rapid prototyping techniques based on C langage. Since performance isn't an issue, it's designed as a giant machine state (with more than 100 states!).

Images:

(click to enlarge)

This is the projet's top level schematic.  As you can see, the sound generating entities are contained in a SOPC.  The generated sound is push in a FIFO.  At the other side of the FIFO, samples are serialized to the audio codec.

 

Download:

Here is the project directory : download

Read included instrution.txt

You will need :

Note : include some part of SNES9X.  See included license.txt