I'm also in ECE at U of T (third year), and I'm jealous of your talent. I sucked hard at Verilog when I studied it, and while I was much better at Assembly, I still wasn't the best at it either. I've used both in regards to the DE2, but this...man, I would have absolutely no idea how to do it at all. You're a pure genius, man. I'm guessing this was your ECE496 project?
Oh never mind, I see you go to École Polytechnique de Montréal. That's an engineering school. Uh, yeah...that explains why you're so much better than me...<_<
@speyeker ooh come on, you don't have to be jealous. This is really amazing fpga project, but when you check the files you can see there is a lot of auto generated vhdl files - nios or mega function related. So it's really perfect chance to learn how to design something like this when you see the result and can check the sources. I wish you good luck. ... anyways jcv32 made good job.
hey, how many bits of resolution does the DAC have on that Altera board? did you implement a ROM memory, then use the switches to select the starting addresses in the ROM? I could be wrong, but I don't think you synthesized these songs your self, you would need a whole lot of discrete filter banks to do this and I don't think that Altera board has enough resources to do this.
This altera board have a 16 bit DAC. Song are RAM save states. They are stored in a zip file on the flash rom. Switches load different files. If you don't believe the sound is synthesized by the FPGA, look at the sources.
donkeykong country proved that the snes could generate cd quality sound,no wonder besides the spc700 chip it has a 16bit s-dsp chip running at 24mhz,that,s incredible.
so let me get this straight. the songs on the snes are not a bunch of prerecorded songs but a bunch of sampled instruments that are controlled via some sort of arrangement? like a midi file? if someone wanted to take control of the samples on a snes game then they could eh?
I think the snes was basically a sampler, very similar to how MIDI works on pcs,
it was basically a collection a samples with different notes triggered.
The MegaDrive on the other hand used a Digital FM Synthesizer, it also had sample/PCM playback, but a very low sample rates, these were generally used for the drums in games.
This is great, how long did it take you to make it? I've been learning ASM for a bunch of different processors and have been really wanting to get into CPLD's and FPGA's.
the only thing i hate about VHDL is that u cant have fking 'events with in IF statements... u need to have them at the upmost statement.. fucking annoyyyignggggg
The S-DSP part (the sound generator) is written in VHDL. The S-SMP part (the sound and music processor) is written in C and executed on a Nios II soft processor. I wrote some custom CPU accelerators in VHDL for timers and handling. There is additional glue logic written in VHDL and a I2C config device written in Verilog.
Oh alright. Awesome work! Im here studying ECE at University of Toronto and we had similar projects - the most recent one being building something cool with assembly.
Pretty impressive work of reverse engineering. Re-building something commercial from reversed information out of emulation is a very good way to learn how things work. I really appreciated this work and will look into the information you put on your website with utmost care.
What a great project, nice work! In Which RTL language is it written? Is the source code open-source for a home project hobbyist. Would be fun to try and port it to Xilinx tools/cards. I have 2 Xilinx cards and a home-made Extension card for extra media connectors. Your project would be fun to port. Search for "Arcade Extender" and "ArcadeExtender" here on YouTube to see some more about my extension-card.
Are you using any Altera-specific hard-macros or is it clean VHDL/verilog?
The S-DSP core is pure VHDL. However, it interfaces with Altera synchronous RAM blocks (dual-port 2 cycle read,1 cycle write) and Avalon switch fabric interface for external device (SRAM, S-SMP). The whole system use lot of Altera specific and board specific features. I will setup a webpage soon with source and information.
This is very cool! I've been wondering if there is a way to compose your own SNES music. Is this a composer, or are you just playing SPC files? Great work!
It's playing .SPC files. The FPGA reproduces SNES sound hardware. The SPC files contain memory and registers snapshot from a specific moment in a game (when a particular music is being played). By restoring this state, a program is run on the S-SMP (SPC700 microprocessor) and commands sent to the S-DSP. The S-DSP then produces music.
Thanks for the reply. I've been trying to find information about how the music composing process worked for these games back in the day, hard to find though. I know the composers wrote the music on midi keyboards, but thats all I know.
Chrono trigger!
tyranitar87 2 months ago
can do the same with SnesMusic on iPhone
tibabo 5 months ago
what song is it from the castlevania 4 ost ( 1:35 ) ?
triplenippel123 8 months ago
@triplenippel123 Beginning
Julienfun 6 months ago
To Author : How do the led blink so exactly follow the music?
huynhxuanan 11 months ago
NNNNNNEEEEEEEEED IT
Teknokrade 1 year ago
is the output in stereo?
Biopharmer 1 year ago
Awesome! Please give us a tutorial.
mightymax1983 1 year ago
YEAH FFVI!!!!! FFV!!!! Zelda!!!
randomshinichi 1 year ago
good songs!
Torinocto 1 year ago
I'm also in ECE at U of T (third year), and I'm jealous of your talent. I sucked hard at Verilog when I studied it, and while I was much better at Assembly, I still wasn't the best at it either. I've used both in regards to the DE2, but this...man, I would have absolutely no idea how to do it at all. You're a pure genius, man. I'm guessing this was your ECE496 project?
speyeker 2 years ago
Oh never mind, I see you go to École Polytechnique de Montréal. That's an engineering school. Uh, yeah...that explains why you're so much better than me...<_<
...Man, I'm so jealous.
speyeker 2 years ago
@speyeker ooh come on, you don't have to be jealous. This is really amazing fpga project, but when you check the files you can see there is a lot of auto generated vhdl files - nios or mega function related. So it's really perfect chance to learn how to design something like this when you see the result and can check the sources. I wish you good luck. ... anyways jcv32 made good job.
CodeJeffo 1 year ago
I just briefly glazed over the VHDL and.. holy SHIT that's been a lot of work!
My hat's off to you, seriously; very nice work!
Agilo3 2 years ago
was this just for fun?
IMakeOrWatchVideos 2 years ago
hey, how many bits of resolution does the DAC have on that Altera board? did you implement a ROM memory, then use the switches to select the starting addresses in the ROM? I could be wrong, but I don't think you synthesized these songs your self, you would need a whole lot of discrete filter banks to do this and I don't think that Altera board has enough resources to do this.
Regardless, nice job dude.
thomas997 2 years ago
This altera board have a 16 bit DAC. Song are RAM save states. They are stored in a zip file on the flash rom. Switches load different files. If you don't believe the sound is synthesized by the FPGA, look at the sources.
Jcv32 2 years ago
Impressed!
patrickikis 2 years ago
oh my bad nvm lol
Stormtrooper595 2 years ago
is that the sound board used in the snes?
Stormtrooper595 2 years ago
This has been flagged as spam show
I love my great iPod! :D
I won it in internet. If you want, you can try! visit gadgetton , com ! Take you chance now!
charlesdelgado123 2 years ago
please i'm getting bored from your spam or publicity,stop it !
expertfighter 2 years ago
damn, these tunes are epic
obeest 2 years ago 2
donkeykong country proved that the snes could generate cd quality sound,no wonder besides the spc700 chip it has a 16bit s-dsp chip running at 24mhz,that,s incredible.
johneymute 2 years ago
I don't know if you noticed, but some of the sounds had their beginning notes 'chopped off' 1:08-1:14 (Chrono Trigger).
dracosilv 2 years ago
so let me get this straight. the songs on the snes are not a bunch of prerecorded songs but a bunch of sampled instruments that are controlled via some sort of arrangement? like a midi file? if someone wanted to take control of the samples on a snes game then they could eh?
yanorei 2 years ago
The Final Fantasy music sounds very similar to Kirby Superstar's!
ryanthescooterguy 2 years ago
How was music created for video games during the 16-bit era?
ryanthescooterguy 2 years ago
NIos II can be 32 bits
ponsetipoquer 2 years ago
I think the snes was basically a sampler, very similar to how MIDI works on pcs,
it was basically a collection a samples with different notes triggered.
The MegaDrive on the other hand used a Digital FM Synthesizer, it also had sample/PCM playback, but a very low sample rates, these were generally used for the drums in games.
djsmithy 2 years ago
lol, I just noticed you used binary on the switches.
noraui 2 years ago
lol! What else would he use?
Individualism101 2 years ago
Did you need to do audio configuration with the NIOS II terminal? I was somewhat confused how to do that.
noraui 2 years ago
Only recognised 1 :P SMB1 Song
gzaloprgm 3 years ago
Nice. I could get about 75% of those from memory. SNES IS the best.
benfirst 3 years ago
3:32 - 3:50 Is actually
Kirby's Triumphant Return.
basniak 3 years ago
can you post him without that beep sound ???
patrickvalk 3 years ago
Awesome :)
Cabnfever 3 years ago
Very cool, i love it!
Dforce3000 3 years ago
how does the SNES store voices are they samples
coondogtheman1234 3 years ago
Yeah must be wave samples.
Individualism101 2 years ago
Yep, PCM samples. The instruments used are PCM samples too asfaik.
djsmithy 2 years ago
This comment has received too many negative votes show
What a waste of hardware..
neptho 3 years ago
what songs are at 2:17, 2:26 and 2:27? They sound really cool.
clownhorse 3 years ago
impressive work. congrats. I'm still trying to figure out my spartan board :) maybe i can steal some of your VHDL?
laserbeak43 3 years ago
What are the name to these games and songs?
Resetti64 3 years ago
I added annotations with the name of games and songs.
Jcv32 3 years ago
What was the first song? It was very pretty...
The third song (0:22) was from super caslevania...
2:40 sounds like the title screen for FFVII on PS, I haven't played the previous Final Fantasy RPGs...
Super Mario World...
jamesecash 3 years ago
First song is from Donkey Kong Country 1 - When you're underwater.
UnlimitedProductions 3 years ago
The first song is from Donkey Kong Country 1 - When you're underwater.
UnlimitedProductions 3 years ago
Thanks! I'll have to get the midi file...
jamesecash 3 years ago
This is great, how long did it take you to make it? I've been learning ASM for a bunch of different processors and have been really wanting to get into CPLD's and FPGA's.
benjaminshinobi 3 years ago
the only thing i hate about VHDL is that u cant have fking 'events with in IF statements... u need to have them at the upmost statement.. fucking annoyyyignggggg
paradigmmaker 3 years ago
That thing is freakin cool. I wish I had one.
jdsony 3 years ago
Did you use verilog or assembly/c
nomy13 3 years ago
The S-DSP part (the sound generator) is written in VHDL. The S-SMP part (the sound and music processor) is written in C and executed on a Nios II soft processor. I wrote some custom CPU accelerators in VHDL for timers and handling. There is additional glue logic written in VHDL and a I2C config device written in Verilog.
Jcv32 3 years ago
Oh alright. Awesome work! Im here studying ECE at University of Toronto and we had similar projects - the most recent one being building something cool with assembly.
nomy13 3 years ago
2:25, I demand to know what that song is. IT'S KILLING ME
chubu 3 years ago
Singing Mountain - Chrono Trigger
Jcv32 3 years ago
This comment has received too many negative votes show
what the fuck
TEACH ME HOW TO MAKE IT!!
shalpp 3 years ago
Pretty impressive work of reverse engineering. Re-building something commercial from reversed information out of emulation is a very good way to learn how things work. I really appreciated this work and will look into the information you put on your website with utmost care.
Congratulations for this impressive achievement.
leonardoliveira 3 years ago 2
Would be great to know the name of the song that starts at 01:45
SunriseSucks 4 years ago
Nervermind, it's FFVI - The Fierce Battle
SunriseSucks 4 years ago
yeah pretty awesome i hope to see atleast some one wich will put the snes sound chip into a cd player to see if it can handle cd,s would be great.
if not? than they can use a chip wich turns every cd song into brr format, will the snes sound chip decompress it back to 16 bit sound.
all in real time.
johneymute 4 years ago
Sounds like Tales of Phantasia (90% sure)
or Treasure Hunter G (10% sure)
MathOnNapkins 4 years ago
That's tale of Phantasia
Jcv32 4 years ago
Anyone know what the song at 3:11 is?
torascie 4 years ago
2:55/2:56 Is Star Ocean.
spedzfx666 4 years ago
Im sure that one is starfox :D
8monoxxx 4 years ago
I loved (and still do!) SNES music!
Obbyto 4 years ago
Booster's Tower of SMRPG... i just thought about this song a minute ago and then it shows up in this vid, great!
SunriseSucks 4 years ago
Nicely done.
memblers 4 years ago
Wow! This is great! Where did you find the specifications for the DSP parts of the SNES sound hardware?
Here are the name of the songs I recognize : Final Fantasy 6, Super mario world, Chrono Trigger, Zelda 3 a link to the past, Tetris attack
nicofarr 4 years ago
You can find a lot of information in the external link of the Wikipedia entry for SPC700. I also studied emulator code. And you got 5 games out of 15
Jcv32 4 years ago
What a great project, nice work! In Which RTL language is it written? Is the source code open-source for a home project hobbyist. Would be fun to try and port it to Xilinx tools/cards. I have 2 Xilinx cards and a home-made Extension card for extra media connectors. Your project would be fun to port. Search for "Arcade Extender" and "ArcadeExtender" here on YouTube to see some more about my extension-card.
Are you using any Altera-specific hard-macros or is it clean VHDL/verilog?
magjansson 4 years ago
The S-DSP core is pure VHDL. However, it interfaces with Altera synchronous RAM blocks (dual-port 2 cycle read,1 cycle write) and Avalon switch fabric interface for external device (SRAM, S-SMP). The whole system use lot of Altera specific and board specific features. I will setup a webpage soon with source and information.
Jcv32 4 years ago
This is very cool! I've been wondering if there is a way to compose your own SNES music. Is this a composer, or are you just playing SPC files? Great work!
siskavard 4 years ago
It's playing .SPC files. The FPGA reproduces SNES sound hardware. The SPC files contain memory and registers snapshot from a specific moment in a game (when a particular music is being played). By restoring this state, a program is run on the S-SMP (SPC700 microprocessor) and commands sent to the S-DSP. The S-DSP then produces music.
Jcv32 4 years ago
Thanks for the reply. I've been trying to find information about how the music composing process worked for these games back in the day, hard to find though. I know the composers wrote the music on midi keyboards, but thats all I know.
siskavard 4 years ago