I tend to find that courses and the like are stuck in an overly formal format of presentation, and much of the way that the information is taught can be very dry and usually doesn't have much context. Manuals are the same, which is why I despise people on forums saying "Go read the manual" instead of giving a real answer. Usually the people asking questions have read the manual, but don't understand the way the information was presented and so are looking for another take on it. Many people also have a tenancy to bloat information and make it more complicated than it needs to be. I've seen tutorials which are borderline impossible to follow, but once I figured out what to do by myself I was shocked at how much they made it needlessly cumbersome. TL:DR - Get as many different explanations and takes as you can find on whatever topic you want to know about. If people just keep referring others to the same page of the same boring and hard to understand manual time and time again, then very few people will "get it".
God damn, that revelation that "Double Dribble" was an encoding error that managed to still sound like what I expected sampled audio of that era to sound like was amazing.
I find it interesting how people really started taking bit order reversal seriously after I discovered Sunsoft's DPCM conversion process had a reversed bit order in their games from Batman onward. I was actually prompted to investigate the whole bit-reversal thing due to the Double Dribble discovery, as I thought the fuzziness sounded similar to Sunsoft's DPCM samples. I remember the first sample I tried reversing was a slap bass sample from Gimmick, which after I reversed the bits of manually due to lack of tools until after this became more well known, I finally managed to hear that it was actually a classic Roland slap bass, found on lots of their samplers and ROMpler synths, including the MT-32 and SoundCanvas lines. I had been eluded by that sample for years on end wondering what it was, as the bit-reversal had made the high end frequencies much harder to identify, so hearing it so clearly was an immediate indicator that bit-reversal was probably more common than just Double Dribble. As for the Contra drums, as far as I remember they're from one of the Yamaha RX drum machines, at least the snaredrum is. I still don't know what the more common Sunsoft bass sounds are from though (The ones used in Journey to Silius, Batman: Return of the Joker, Hebereke, etc.). -Interestingly enough, Sunsoft's earlier usage of DPCM before Batman all had the right bit order, but the conversions themselves mangled the samples so bad that the newer, bit-reversed conversion method they eventually used sounds miles better than those :p- As it turns out, Sunsoft's old DPCM samples weren't even DPCM-converted, they were 1-bit PCM that the hardware then just interpreted as DPCM.
are there public patches available for these? dying to hear them all directly! it's crazy how the earlier sunsoft bass goes from "i think it's a slap bass?" to a kind of phat moog sound. but I'd love a fixed version of gimmick!
That’s fascinating! I order if they might have done this to obscure the source of the samples? Might be kinda dicey to just lift Roland or Korg samples
@@nickcarter4006 nah, this is a non-issue. most of the instrument samples used in super famicom, n64, playstation, etc games come from either that era of romplers or sample discs. it's what they're there for. by that logic you wouldn't be able to use them in any music. it's assumed to be fine if you have to store recordings of the samples for playback. just wait until you find out how many samples the rompler manufacturers stole from one another!
@@okarowarrior I've written in 65xx assembly before on both a BBC Micro and Commodore 64 (same CPU family as the NES). There's nothing really that interesting about it other than it's really labour intensive to get something up and running.
@@benanderson89 ohh neat. Haha. I'd imagine it would be the case. So, do you consider that really isn't that much of a gain in writing the music as code compared to using a tracker? other than the virtuosso/craftmanship factor? I'm interested because I use trackers myself, and always wondered "how would be to write this directly on assembly." Or at least in basic for the C64. Thanks for the reply
Holy cow that bit reversal thing blew my mind. I just always figured NES sound samples were so noisy and distorted because of the tiny storage space. But hearing “Double Dribble” so cleanly was eye opening! It actually sounded like the “Konami Arcade” voice.
Pretty much anything from Sunsoft is top-notch NES music. Even earlier stuff like Wing of Madoola, something a bit obscure like Platoon, or the downright unpopular like Fester's Quest. Regardless of game quality, the music is almost always a hit.
I agree with the boys, Sunsoft was practically the indisputable master in using the NES sound engine at its fullest to create this and countless other mesmerizing pieces.
Great vid! A topic dear to my heart. I'd like to request a video about the various expansion chips that went into some games, like the Konami VRC6 or Namco N163.
Third! The Namco 163 is responsible for one of the greatest video game soundtracks of all time regardless of hardware, the Digital Devil Story Megami Tensei II soundtrack
If you haven't heard them yet, Retro Game Audio did an individual podcast for each of the NES expansion chips. Very detailed with lots of audio examples.
Oh how I love videos about sound! Fascinating stuff. Some of it reminds me of how I mixed sound for home videos back in the 90s to take advantage of Dolby Pro-Logic. Same sound in both left and right channels. Should be mono, right? However you can adjust the sound in one of the channels (doesn't matter which) out of phase by 180º and BAM, that same sound now plays through the surround speakers! Another part of your video reminds me of how they rewrote the sample driver or some such thing for the Street Fighter 2 games on the Genesis to achieve MUCH better voice quality compared to the original retail release using the same exact samples that are already on the cart. Anyway great video!
While it definitely sounds better, the SF2 voices didn't sound THAT much better to me. A bit better sure, but not a ton. The voices still sound a bit shrill to me & still don't quite match the SNES voices. It really makes me wonder why devs struggled so mightily with samples on the Genesis, why was it so hard for most devs to get voices to sound right? Hell, the NES seemed like it had more games with excellent sounding samples than the Genesis had. If the NES is capable of such nice sounding voice samples, then why not the Genesis? Why did devs struggle so badly with it?
Great video! DPCM tuning issues were the reason why I went all out and sampled 3 octaves worth of bass, 1 sample per note. They take a massive load of ROM space but the quality made it really worth the time I spent splicing and normalizing them by hand in Audacity, lol
Fun fact: the first NES game to use DPCM in a musical context instead of just for sound effects was a Japan-exclusive bililards game from Konami, which included a single bass drum sample. This sample would go on to appear in most later Komani titles, usually together with the iconic Konami snare sample.
I think Nintendo's Gumshoe is the first game to use musical samples; though only for one song, and 11 times at that. Interestingly, Wild Gunman is the first NES game to use samples at all, and both games are lightgun games. It's likely Nintendo made these decisions because of the controller read glitch.
Learned two things: I have a ton more respect for the coders/musicians who had to work through all this and came out with classic tracks. Also, I want to get a bass guitar and learn that Journey to Silus track.
I love when part of what makes something distinct and special is that it was actually broken all along, but we just grew up with that brokenness so we remember it fondly.
I still find it fascinating how much developers were able to get out of the NES/Famicom with base hardware that was released in 1983 and used a main CPU (MOS 6502) that was from 1975! The custom PPU & APU were fantastic! The additional mapper chips in most cartridges after 1985 really helped stretch what the base hardware could do!
I've studied DSP through both undergrad and grad school, you provide an excellent and concise description of signal processing. Thank you for such great explanation video.
I can't believe the quality of this channel. Your videos are very interesting, high quality and original, you honestly deserve more subs. Btw, that silus soundtrack was fire
Another thing about The Immortal: It doesn't seem to have been made with a proper dev kit or following official guidelines, since it uses the wrong value for black and causes issues on modern TVs (blacker than black value gets misinterpreted as a sync pulse). EA made their own dev kit for Genesis back then so they probably didn't want to be beholden to Nintendo either. Back in 2017 I made a ROM edit that fixes this and I plan to make a video about it showing that I have what may be the only "fixed" physical copy of the game in existence while I simultaneously release the patch. When John Riggs encountered the game I offered to send him the patch since he kinda got his start making repros and hadn't actually fixed a game in a long time but he didn't seem interested. :( If you want to do a video on it, let me know because I've been putting mine off for three years! ;)
Hell yeah new video! These are always so good. Back when I was looking into making my console controllers wireless ala wavebird, the wiring of the NES controller video was the only example I could find that successfully mapped all buttons.
It SO interesting to learn all the quirks and bits of programming for the NES, so fascinating! The other day I was discussing with a friends how many developers nowadays don't optimize games anymore and create these monsters that eat disk space, that I missed how devs back in the day worked around limitations and it made them more creative to come up with solutions to this. That's why I love indie games, most of them have to work with limited resources and come up with great ideas. Thanks for such an awesome video as usual!
I agree with you, although that's not the reason games are 40GB now. It's the eight copies of every material in the game, each of which consists of like five textures for PBR, for everything from 4K down to the most distant, you can barely see it MIP map; along with the ten copies of the game's full dialogue in most of Earth's major languages. Because it's more efficient to have one copy of the game for everyone than to try to balance and patch across fifteen different variations, and the games are optimized for playback speed, not storage space, because we have almost infinite storage capacity these days. It's actually a case of precomputing as much a possible to save CPU and initialization/load times, and to fake complex visual calculations. All that data needs to be stored if we aren't going to generate it at run time. That said, giving people a system with limits will almost always result in something more creative as they are forced to focus and work things out and can't just do literally whatever they want. I feel the same way about Hollywood ever since they got their hands on workable CGI. When there were clear limits, it was all the more impressive when someone tricked their way around them, or at least created the illusion of doing so. Nowadays I don't get excited for new consoles or games for the most part because there's nothing left to work around. The best we can do is make the ultimate version of something we already have.
@Charles Faraone Optimising for load times is all the more important - ever tried playing Sea of Thieves on an old hard drive, such as the SATA II the Xbox Ones all ship with? Not fun.
i am so very sick in bed with a very high fever... listening to your voice and going on about all of this has been rather soothing while I am in and out of consciousness.
This is like learning about how difficult it must've been to compose music on a computer with limited memory in the 80s and knowing how much easier and precise it is today. Fascinating!
Oh man, that was wonderful. Thank you so much for your high quality, enlightening, and highly entertaining videos. I would love more that go just as in-depth into other aspects of NES sound, or maybe into the SNES sound, which was *very* different. You should feel good about yourself, and the one guy who thumbs downed this a half hour after you posted it should chug a pissy milkshake.
This is such an informative video. As a gamer who has never learned about the coding side of things, your Behind the Code videos open up a new perspective and make it easy to comprehend. Please keep making more of these and congrats on the great work!
I’m always excited for your deep dives into the inner working of NES games, but this dive into the NES itself was amazing! Looking forward to more of these fantastic videos. Keep up the great work you do.
Wonderful breakdown of general sound mechanics and the DMC channel: A difficult topic even for NES developers. You're doing gods work. It blows my my mind that the "iconic sunsoft bass" was likely a backwards mistake... man i just love that Thwanck.
excellent video! I've written a lot of music for this chip and really came to love working the DMC channel. it's got a lot of personality! I've got a fun one for you :check out some stuff by KID, namely Kick Master and Recca - their audio driver has a comical bug where whenever the triangle isn't active in a piece it's getting used in, it constantly plays the lowest possible tone. they must not have caught it on their TVs during testing across multiple games but it cracks me up
As a semi-pro recording engineer, I would say that the reversed bass sample from Journey to Silius is very clearly meant to be played the second way. The result of the bit-reversal is mostly a large increase in higher harmonics, which is clearly audible in the A/B comparison you make at about @29:22 - the corrected bass has a far smoother waveform, while the bit-reversed version has a lot of high frequency distortion in the bass signal. (BTW, this is because the bass frequencies are low, which matches more closely the byte-width sampling rate, and the individual errors from the bit reversal tend to average out of the lower freqs. The main result is high frequency distortion. At the 33k sampling rate, sounds below around 4khz should be preserved fairly accurately, albeit with lots of higher freq noise added.) As I noted in a comment below, it seems likely that many companies were using the same tool to convert samples to DPCM and that many games will likely have the bad samples.
This is very intuitive about the audio engineering science of how making 8-bit NES music. Alot of the later made Konami & Sunsoft games especially TMNT III The Manhattan Project & Batman Return of the Joker had one of the most polished techniques making them as high quality as possible considering the technology limitations of that era imagine how more powerful the NES audio sound engineering can be expanded upon with today's modern technology!!!!
You do fantastic videos. I get a little lost on the deeper technical stuff but you make the gist of it easy to understand and I'm still able to follow along. Great work!
Not only did I learn how these old school consoles process and implement sound, but I also learned that Journey to Silius’ soundtrack is a certified, Me Official Seal of Approval earning, downright goddamn banger.
Great video. I just implemented the DMC channel in my NES emulator, and this provided a lot of good material for understanding what I was doing, and why!
It's truly amazing to see all of the various techniques used in older game consoles to squeeze every little bit of performance out of them, in order to give us an experience that was as good as humanly possible with these rather weak & inexpensive CPU's. The results are honestly quite remarkable. We had it better than any of us realized back then.
It turns out the "Blades of Steel" voice is actually simulating DPCM through use of RAW PCM. In order to be able to read the sample from a different ROM bank, it's played as RAW PCM, but the sample format itself is the same as DPCM.
I have a feeling the majority of games have the bytes backwards but honestly when I was listening to your example comparing it on Silius I realized that I like it better backwards, elsewise it sounds too clean and not like an NES game. I think the reversed bits on the sound is actually a part of the charm of the NES sound.
Well, now I think I know why Hi-Def NES only played the first bark in Duck Hunt when I first installed in July 2016 (first DIY shipment). It seems the FPGA sound implementation for digital audio broke the loop command. I remember wondering if you only got one "Hut!" from the "Hut! Hut! Hut!" from Tecmo Bowl but I'm not sure I ever tested that. I think I did and it worked normally meaning it probably repeated without the loop command. I made a video demonstrating the error and Kevtris fixed it long ago. It also demonstrated an issue late in Ninja Gaiden (Ryu's eyes remain distinct while the rest of the screen flashes).
Having worked on some "current" audio hardware with less-than-stellar documentation... Little details like the bit-reversal are /hard/ to get right without a lot of dedication to making sure it's correct. If you don't know to look for it, you can go for years and never know there's an issue, it's just "how that hardware sounds". I had written an audio library that would add an extra sample occasionally, and it went unnoticed for almost a year until somebody else was comparing the output to another library and noticed that mine consistently output more samples than the file contained, and it was making it difficult to synchronize things. Turns out when I read a block of audio data, I had an off-by-one error in the size, and each block of samples got an extra byte added at the end. Much like the NES' DPCM, that extra byte's samples resulted in an output that was legible, and very /close/ to the correct output, but still not correct. It never got noticed because that hardware was weird to begin with, and it never quite sounded the same as any other hardware even after that got fixed, so I called it "good" and didn't thoroughly test it. The Silius samples are a good example, I think. I can hear a very slight "hiss" to the original version that isn't there in the bit-reversed version, which leads me to believe that the bit-reversed version is more "correct", but it's so slight that if there were any distortion by the speakers they were using during development, it was probably either entirely unnoticed or passed off as distortion in the speakers/amplifier, not a software/encoding bug in the data itself.
Fantastic video, I loved the ladder analogy to explain discrete functions/samples, I really enjoyed this video it can be used even for teaching a bit of digital signal processing so the students can relate to real world applications
All of a sudden all those times when I was a kid where the NES music felt haunted make sense. And then, how much of our lives as gamers were affected by the +1 and the reversals. Mind blown.
I love these technical breakdowns about retro hardware. Thank you for taking the time to make these. Your MSX video was top notch. Hopefully one day you could make one on NES bank switching. I'm still insure what it is lol
Man, that was an AMAZING breakdown. Are you planning on explaining all of the NES sound channels? 'Cause that would be really great! Also, if you can get enough time, I'd love if you could make a video on the inner workings of sample playback on the Sega Genesis. Specially on the driver used on both Street Fighter II games, and the incredible hack that both games received that enhanced PCM. Thank you very much for this video. An outstanding work.
Oh my goodness - the Mega Drive/Genesis is such a dive when it comes to sound. So much there to talk about! I would like to make videos about the other sound channels of the NES - possibly going as far as various expansion audio chips. It depends on how well people respond to this vs the game-based Beyond the Code videos. This particular one took some extra time!
@@DisplacedGamers Excellent! All the videos on your Beyond the Code series are very interesting, and few (if any) content creators dived this deep into the inner workings of the sound on the NES (or other consoles).
That was awesome. I studied a lot of computer music in my computer science course and would`ve loved to see that video in those times! Also, I would love to see a similar video on the SNES!
I love how you go into all this detail to explain really basic information about how sound works, and then later jump into obsolete assembly language code like you just expect everyone to know all this already.
@@TakuikaNinja I didn't have to look very hard, it's called 'DeepBass' on ST-01. I've converted it to .wav and you can find it here: 1drv.ms/u/s!AgIMW_4kujbwgc9gSMSJABPkFEr4_Q?e=zUupdl
@@BokanoiD I've compared that sample to the silius bass in audacity. The frequency spectrums are similar but the waveforms are too different. I appreciate your help, though.
I was dissapointed when you said you were skipping the oscillator and noise channels but this was a great video, I hope you revisit them because they are what truly makes the nes unique for video game music imo Battletoads is a good example, versions on newer systems can't even replicate some of the original music in the later stages because they abandoned the oscillators for newer fm synthesis stuff
That was quite fascinating, thank you for the video :) Now I'm curious what kind of techno wizardry and magic the composers had to work through in order to create such notable music pieces like The Immortal, Journey To Silius, Mega Man #, Solstice, and probably a bunch more I wonder - how do SNES cartridges with extra music chips compare to this? Like Tales of Phantasia, which has an entirely voiced song seems pretty ridiculous
The SNES never actually had any extra music chips except for the MSU, which never made it into any games - every official SNES OST you hear was done using the console's base sound chip. Moments like Tales of Phantasia were made possible by rapidly swapping out the SPC chip's limited memory (just 64 KB!) to essentially stream audio through the console. Just like the NES's $4011 PCM, this took up CPU time, so it was reserved for moments with little game logic or only used to switch samples in between tracks, like in Secret of Mana.
Imagine what sort of NES game a truly talented team of devs could make these days if they truly tried? If enough time & resources were given to them, I bet we could end up with something truly magnificent that would absolutely blow away anything that came before it. Unfortunately such a thing simply isn't feasible or profitable in this day & age, so we may never know....
Wow. About 10-15 years ago I remember there was talk in the audio world about switching to ultra-high audio rates and 1-bit audio. I didn't know the NES did this. I actually learned quite a few things about NES audio that I didn't know, which is surprising to me. Cool.
NES did delta modulation but at 33 Khz as the highest rate. DSD/Super Audio CD used in the high end audio world used several Mhz(!), IIRC, 2.8 Mhz. But yes, the basic principle is similiar, NES just uses it at MUCH lower sample rates, resulting in sound that takes little space and is easy to play for 80s hardware but is very lo fi.
I like the original Sunsoft bass better than the corrected one. The reversed bit order seems to be creating extra high frequency artifacts, adding high harmonics to the sound similar to that of a clean amp or exciter, which gives it more presence in the mix. I have to wonder if at some point they may have corrected it during development but decided the reversed bit order sounded better in the mix. That *might* be why they left the drums in Super Contra reversed, even.
great video! the DPCM was a good compromise for basic samples to be played while keeping the CPU free to run the game without issues, however it did have big downfalls specifically with synthesized sounds like a sawtooth wave, which were impossible to store correctly due to their nature, though that in a way makes what rob hubbard achieved with the immortal's soundtrack even more impressive
I studied audio engineering and sound design at College, and dude just summed up the first 2 years worth of textbooks better than they did.
Cortex Auth absolutely true!
great video... yeah sorry to hear that. What are they charging us all that money for anyway?
@@OGmolton1 lots of stuff, it was a good course. Just this video made it very easy for a layman to follow quickly and pick up the concepts
I tend to find that courses and the like are stuck in an overly formal format of presentation, and much of the way that the information is taught can be very dry and usually doesn't have much context.
Manuals are the same, which is why I despise people on forums saying "Go read the manual" instead of giving a real answer. Usually the people asking questions have read the manual, but don't understand the way the information was presented and so are looking for another take on it.
Many people also have a tenancy to bloat information and make it more complicated than it needs to be. I've seen tutorials which are borderline impossible to follow, but once I figured out what to do by myself I was shocked at how much they made it needlessly cumbersome.
TL:DR - Get as many different explanations and takes as you can find on whatever topic you want to know about. If people just keep referring others to the same page of the same boring and hard to understand manual time and time again, then very few people will "get it".
@@slowfuse like me.
Yep.
God damn, that revelation that "Double Dribble" was an encoding error that managed to still sound like what I expected sampled audio of that era to sound like was amazing.
Imagine how impressed we all would've been if they had sounded like they were meant to!
I find it interesting how people really started taking bit order reversal seriously after I discovered Sunsoft's DPCM conversion process had a reversed bit order in their games from Batman onward. I was actually prompted to investigate the whole bit-reversal thing due to the Double Dribble discovery, as I thought the fuzziness sounded similar to Sunsoft's DPCM samples.
I remember the first sample I tried reversing was a slap bass sample from Gimmick, which after I reversed the bits of manually due to lack of tools until after this became more well known, I finally managed to hear that it was actually a classic Roland slap bass, found on lots of their samplers and ROMpler synths, including the MT-32 and SoundCanvas lines. I had been eluded by that sample for years on end wondering what it was, as the bit-reversal had made the high end frequencies much harder to identify, so hearing it so clearly was an immediate indicator that bit-reversal was probably more common than just Double Dribble. As for the Contra drums, as far as I remember they're from one of the Yamaha RX drum machines, at least the snaredrum is.
I still don't know what the more common Sunsoft bass sounds are from though (The ones used in Journey to Silius, Batman: Return of the Joker, Hebereke, etc.).
-Interestingly enough, Sunsoft's earlier usage of DPCM before Batman all had the right bit order, but the conversions themselves mangled the samples so bad that the newer, bit-reversed conversion method they eventually used sounds miles better than those :p- As it turns out, Sunsoft's old DPCM samples weren't even DPCM-converted, they were 1-bit PCM that the hardware then just interpreted as DPCM.
Wow! Good stuff, MovieMovies1!
are there public patches available for these? dying to hear them all directly! it's crazy how the earlier sunsoft bass goes from "i think it's a slap bass?" to a kind of phat moog sound. but I'd love a fixed version of gimmick!
That’s fascinating! I order if they might have done this to obscure the source of the samples? Might be kinda dicey to just lift Roland or Korg samples
@@nickcarter4006 nah, this is a non-issue. most of the instrument samples used in super famicom, n64, playstation, etc games come from either that era of romplers or sample discs. it's what they're there for. by that logic you wouldn't be able to use them in any music. it's assumed to be fine if you have to store recordings of the samples for playback. just wait until you find out how many samples the rompler manufacturers stole from one another!
@@DisplacedGamers
May I please ask what the game in the outro specifically is?
As I would like to listen to the whole tune.
I've written music for the NES sound chip before but I've never went deep diving into it's technical specifications. Fantastic video idea!
Real hardware or just a tracker?
@@okarowarrior Tracked and then played back on hardware.
@@benanderson89 ah. I thought you would've written music in assembly and it would be really interesting to hear the insides of it.
@@okarowarrior I've written in 65xx assembly before on both a BBC Micro and Commodore 64 (same CPU family as the NES). There's nothing really that interesting about it other than it's really labour intensive to get something up and running.
@@benanderson89 ohh neat. Haha. I'd imagine it would be the case. So, do you consider that really isn't that much of a gain in writing the music as code compared to using a tracker? other than the virtuosso/craftmanship factor?
I'm interested because I use trackers myself, and always wondered "how would be to write this directly on assembly." Or at least in basic for the C64.
Thanks for the reply
Holy cow that bit reversal thing blew my mind. I just always figured NES sound samples were so noisy and distorted because of the tiny storage space.
But hearing “Double Dribble” so cleanly was eye opening! It actually sounded like the “Konami Arcade” voice.
Wow. So the Double Dribble devs must've thought the NES just sounded like garbage and never noticed this.
All code is held together with tape and hope...
@@jansenart0 so true
@@jamescurrie01 NO. Some assembly programmers ACTUALLY know what they're doing.
@@MickeyD2012 There's always the possibility of a mistake. Humans aren't perfect after all. That's how bugs are born. :)
@@jansenart0 If your code works first time, buy a lottery ticket
Nintendo still uses “DMC” for audio! In fact, they have upgraded it to tell if others use it in videos. They call it “DMC Advance” or “DMCA” (/s)
The music from journey to silious is amazing!
Sunsoft made some of the best music for the NES, no doubt.
It really is. In fact, is better than the game it is in.
Pretty much anything from Sunsoft is top-notch NES music. Even earlier stuff like Wing of Madoola, something a bit obscure like Platoon, or the downright unpopular like Fester's Quest. Regardless of game quality, the music is almost always a hit.
@@magoid NO
I agree with the boys, Sunsoft was practically the indisputable master in using the NES sound engine at its fullest to create this and countless other mesmerizing pieces.
The amount of work you must put into these videos is astonishing. I’d absolutely sit in one of your lessons if you were a teacher. Amazing work.
Wow! Thank you!
Great vid! A topic dear to my heart. I'd like to request a video about the various expansion chips that went into some games, like the Konami VRC6 or Namco N163.
I'd like to second this request.
Third! The Namco 163 is responsible for one of the greatest video game soundtracks of all time regardless of hardware, the Digital Devil Story Megami Tensei II soundtrack
I'd like to hear about how the Turbografx or the MSX Konami SCC created their distinctive wavetable sounds
I love you Trance Chiptunes! I hope you make more.
If you haven't heard them yet, Retro Game Audio did an individual podcast for each of the NES expansion chips. Very detailed with lots of audio examples.
Oh how I love videos about sound! Fascinating stuff. Some of it reminds me of how I mixed sound for home videos back in the 90s to take advantage of Dolby Pro-Logic. Same sound in both left and right channels. Should be mono, right? However you can adjust the sound in one of the channels (doesn't matter which) out of phase by 180º and BAM, that same sound now plays through the surround speakers! Another part of your video reminds me of how they rewrote the sample driver or some such thing for the Street Fighter 2 games on the Genesis to achieve MUCH better voice quality compared to the original retail release using the same exact samples that are already on the cart. Anyway great video!
Joe?
@@IllusionSector that's Mr. Sack to you.
@Lawrence Bo I tried this and now my cat is on fire and my mother in law is gay. Thanks for nothing
@@Lady_Moonsong LOL uh.... what?
While it definitely sounds better, the SF2 voices didn't sound THAT much better to me. A bit better sure, but not a ton. The voices still sound a bit shrill to me & still don't quite match the SNES voices. It really makes me wonder why devs struggled so mightily with samples on the Genesis, why was it so hard for most devs to get voices to sound right?
Hell, the NES seemed like it had more games with excellent sounding samples than the Genesis had. If the NES is capable of such nice sounding voice samples, then why not the Genesis? Why did devs struggle so badly with it?
Great video!
DPCM tuning issues were the reason why I went all out and sampled 3 octaves worth of bass, 1 sample per note.
They take a massive load of ROM space but the quality made it really worth the time I spent splicing and normalizing them by hand in Audacity, lol
Fun fact: the first NES game to use DPCM in a musical context instead of just for sound effects was a Japan-exclusive bililards game from Konami, which included a single bass drum sample. This sample would go on to appear in most later Komani titles, usually together with the iconic Konami snare sample.
"Exciting Billiards"
I think Nintendo's Gumshoe is the first game to use musical samples; though only for one song, and 11 times at that. Interestingly, Wild Gunman is the first NES game to use samples at all, and both games are lightgun games. It's likely Nintendo made these decisions because of the controller read glitch.
Learned two things: I have a ton more respect for the coders/musicians who had to work through all this and came out with classic tracks. Also, I want to get a bass guitar and learn that Journey to Silus track.
truly, as a composer from the period, your melody had nowhere to hide when it came to instrumentation. you either had a hook, or you didn't
I love when part of what makes something distinct and special is that it was actually broken all along, but we just grew up with that brokenness so we remember it fondly.
I still find it fascinating how much developers were able to get out of the NES/Famicom with base hardware that was released in 1983 and used a main CPU (MOS 6502) that was from 1975! The custom PPU & APU were fantastic! The additional mapper chips in most cartridges after 1985 really helped stretch what the base hardware could do!
you always do such a great job explaining really complicated stuff in a clear and concise manner, i hope you keep up the great work!
and you make great music
I've studied DSP through both undergrad and grad school, you provide an excellent and concise description of signal processing. Thank you for such great explanation video.
I can't believe the quality of this channel. Your videos are very interesting, high quality and original, you honestly deserve more subs. Btw, that silus soundtrack was fire
This is becoming one of my favorite channels. I appreciate the visualization of information. I can't wait for the next video.
6 minutes in, I completely forgot what this video was about until you brought up the NES again.
Another thing about The Immortal: It doesn't seem to have been made with a proper dev kit or following official guidelines, since it uses the wrong value for black and causes issues on modern TVs (blacker than black value gets misinterpreted as a sync pulse). EA made their own dev kit for Genesis back then so they probably didn't want to be beholden to Nintendo either. Back in 2017 I made a ROM edit that fixes this and I plan to make a video about it showing that I have what may be the only "fixed" physical copy of the game in existence while I simultaneously release the patch. When John Riggs encountered the game I offered to send him the patch since he kinda got his start making repros and hadn't actually fixed a game in a long time but he didn't seem interested. :( If you want to do a video on it, let me know because I've been putting mine off for three years! ;)
Oh man, Emmett! I hope you make that video!
Hell yeah new video! These are always so good. Back when I was looking into making my console controllers wireless ala wavebird, the wiring of the NES controller video was the only example I could find that successfully mapped all buttons.
Hahaha "Dwouble Dwibble"... nice chapter name lol
I always heard it as "Double Dibble"
It SO interesting to learn all the quirks and bits of programming for the NES, so fascinating! The other day I was discussing with a friends how many developers nowadays don't optimize games anymore and create these monsters that eat disk space, that I missed how devs back in the day worked around limitations and it made them more creative to come up with solutions to this. That's why I love indie games, most of them have to work with limited resources and come up with great ideas. Thanks for such an awesome video as usual!
I am a firm believer in the fact that limitation breeds creativity. This is true of game design as well as keeping those of us who code "in check."
I agree with you, although that's not the reason games are 40GB now. It's the eight copies of every material in the game, each of which consists of like five textures for PBR, for everything from 4K down to the most distant, you can barely see it MIP map; along with the ten copies of the game's full dialogue in most of Earth's major languages. Because it's more efficient to have one copy of the game for everyone than to try to balance and patch across fifteen different variations, and the games are optimized for playback speed, not storage space, because we have almost infinite storage capacity these days. It's actually a case of precomputing as much a possible to save CPU and initialization/load times, and to fake complex visual calculations. All that data needs to be stored if we aren't going to generate it at run time.
That said, giving people a system with limits will almost always result in something more creative as they are forced to focus and work things out and can't just do literally whatever they want. I feel the same way about Hollywood ever since they got their hands on workable CGI. When there were clear limits, it was all the more impressive when someone tricked their way around them, or at least created the illusion of doing so. Nowadays I don't get excited for new consoles or games for the most part because there's nothing left to work around. The best we can do is make the ultimate version of something we already have.
@Charles Faraone Optimising for load times is all the more important - ever tried playing Sea of Thieves on an old hard drive, such as the SATA II the Xbox Ones all ship with?
Not fun.
i am so very sick in bed with a very high fever... listening to your voice and going on about all of this has been rather soothing while I am in and out of consciousness.
This is like learning about how difficult it must've been to compose music on a computer with limited memory in the 80s and knowing how much easier and precise it is today. Fascinating!
You honestly could teach classes man. You did a fantastic job explaining all of this in a way that makes it easy to understand. Bravo good sir, bravo!
Oh man, that was wonderful. Thank you so much for your high quality, enlightening, and highly entertaining videos. I would love more that go just as in-depth into other aspects of NES sound, or maybe into the SNES sound, which was *very* different. You should feel good about yourself, and the one guy who thumbs downed this a half hour after you posted it should chug a pissy milkshake.
This is such an informative video. As a gamer who has never learned about the coding side of things, your Behind the Code videos open up a new perspective and make it easy to comprehend. Please keep making more of these and congrats on the great work!
What I learned from this video is that the title screen music from Journey to Silius is kind of a banger
Absolutely fantastic, blown away by how comprehensive these videos are. Research and time spent really shows.
Can’t believe Skate or Die 2 showed up for it’s intro audio!
Great video. Love this educational series.
You replaced an NES sample with your own vocal sample. I am very impressed. Thanks for all the explanations and exploring this stuff.
I’m always excited for your deep dives into the inner working of NES games, but this dive into the NES itself was amazing! Looking forward to more of these fantastic videos. Keep up the great work you do.
Wonderful breakdown of general sound mechanics and the DMC channel: A difficult topic even for NES developers. You're doing gods work. It blows my my mind that the "iconic sunsoft bass" was likely a backwards mistake... man i just love that Thwanck.
so the NES had a lot of sound potential that went almost unexploited...
No,
8bitcollective would beg to differ.
excellent video! I've written a lot of music for this chip and really came to love working the DMC channel. it's got a lot of personality!
I've got a fun one for you :check out some stuff by KID, namely Kick Master and Recca - their audio driver has a comical bug where whenever the triangle isn't active in a piece it's getting used in, it constantly plays the lowest possible tone. they must not have caught it on their TVs during testing across multiple games but it cracks me up
Ha!
As a semi-pro recording engineer, I would say that the reversed bass sample from Journey to Silius is very clearly meant to be played the second way. The result of the bit-reversal is mostly a large increase in higher harmonics, which is clearly audible in the A/B comparison you make at about @29:22 - the corrected bass has a far smoother waveform, while the bit-reversed version has a lot of high frequency distortion in the bass signal. (BTW, this is because the bass frequencies are low, which matches more closely the byte-width sampling rate, and the individual errors from the bit reversal tend to average out of the lower freqs. The main result is high frequency distortion. At the 33k sampling rate, sounds below around 4khz should be preserved fairly accurately, albeit with lots of higher freq noise added.)
As I noted in a comment below, it seems likely that many companies were using the same tool to convert samples to DPCM and that many games will likely have the bad samples.
This was such a great educational video for musicians like myself. I learned things I never knew after 25 years into my scholastic musical journey.
This is very intuitive about the audio engineering science of how making 8-bit NES music. Alot of the later made Konami & Sunsoft games especially TMNT III The Manhattan Project & Batman Return of the Joker had one of the most polished techniques making
them as high quality as possible considering the technology limitations of that era imagine how more powerful the NES audio sound engineering can be expanded upon with today's modern technology!!!!
You do fantastic videos. I get a little lost on the deeper technical stuff but you make the gist of it easy to understand and I'm still able to follow along. Great work!
Not only did I learn how these old school consoles process and implement sound, but I also learned that Journey to Silius’ soundtrack is a certified, Me Official Seal of Approval earning, downright goddamn banger.
Great video. I just implemented the DMC channel in my NES emulator, and this provided a lot of good material for understanding what I was doing, and why!
It's truly amazing to see all of the various techniques used in older game consoles to squeeze every little bit of performance out of them, in order to give us an experience that was as good as humanly possible with these rather weak & inexpensive CPU's. The results are honestly quite remarkable. We had it better than any of us realized back then.
Thank you for using the correct graphing method for digital samples
Very well explained. I never used this channel in any of my games, but now that I'm doing a disassembly I needed to know how certain things worked.
It turns out the "Blades of Steel" voice is actually simulating DPCM through use of RAW PCM. In order to be able to read the sample from a different ROM bank, it's played as RAW PCM, but the sample format itself is the same as DPCM.
I have a feeling the majority of games have the bytes backwards but honestly when I was listening to your example comparing it on Silius I realized that I like it better backwards, elsewise it sounds too clean and not like an NES game. I think the reversed bits on the sound is actually a part of the charm of the NES sound.
Sunsoft and Konami had some of the best damn chiptune music on the NES.
This makes me admire old technology for its simplicity.
Cheers✨✌
Damn dude this was an incredible video. So much information and experimentation, presented so clearly.
I'm just impressed that a reversed voice sample is understandable at all.
Well, now I think I know why Hi-Def NES only played the first bark in Duck Hunt when I first installed in July 2016 (first DIY shipment). It seems the FPGA sound implementation for digital audio broke the loop command. I remember wondering if you only got one "Hut!" from the "Hut! Hut! Hut!" from Tecmo Bowl but I'm not sure I ever tested that. I think I did and it worked normally meaning it probably repeated without the loop command. I made a video demonstrating the error and Kevtris fixed it long ago. It also demonstrated an issue late in Ninja Gaiden (Ryu's eyes remain distinct while the rest of the screen flashes).
Having worked on some "current" audio hardware with less-than-stellar documentation... Little details like the bit-reversal are /hard/ to get right without a lot of dedication to making sure it's correct. If you don't know to look for it, you can go for years and never know there's an issue, it's just "how that hardware sounds".
I had written an audio library that would add an extra sample occasionally, and it went unnoticed for almost a year until somebody else was comparing the output to another library and noticed that mine consistently output more samples than the file contained, and it was making it difficult to synchronize things. Turns out when I read a block of audio data, I had an off-by-one error in the size, and each block of samples got an extra byte added at the end. Much like the NES' DPCM, that extra byte's samples resulted in an output that was legible, and very /close/ to the correct output, but still not correct. It never got noticed because that hardware was weird to begin with, and it never quite sounded the same as any other hardware even after that got fixed, so I called it "good" and didn't thoroughly test it.
The Silius samples are a good example, I think. I can hear a very slight "hiss" to the original version that isn't there in the bit-reversed version, which leads me to believe that the bit-reversed version is more "correct", but it's so slight that if there were any distortion by the speakers they were using during development, it was probably either entirely unnoticed or passed off as distortion in the speakers/amplifier, not a software/encoding bug in the data itself.
this is my favorite channel on youtube. please never change.
Absolutely enthralling video! Always a good day when a Displaced Gamers video shows up!
Fantastic video, I loved the ladder analogy to explain discrete functions/samples, I really enjoyed this video it can be used even for teaching a bit of digital signal processing so the students can relate to real world applications
Thanks!
Great job explaining a complex topic! I'm really enjoying this series.
All of a sudden all those times when I was a kid where the NES music felt haunted make sense. And then, how much of our lives as gamers were affected by the +1 and the reversals. Mind blown.
I love the Behind the Code series so much. Thank you.
Thanks, Lisa!
I love these technical breakdowns about retro hardware. Thank you for taking the time to make these. Your MSX video was top notch. Hopefully one day you could make one on NES bank switching. I'm still insure what it is lol
Man, that was an AMAZING breakdown. Are you planning on explaining all of the NES sound channels? 'Cause that would be really great! Also, if you can get enough time, I'd love if you could make a video on the inner workings of sample playback on the Sega Genesis. Specially on the driver used on both Street Fighter II games, and the incredible hack that both games received that enhanced PCM. Thank you very much for this video. An outstanding work.
Oh my goodness - the Mega Drive/Genesis is such a dive when it comes to sound. So much there to talk about!
I would like to make videos about the other sound channels of the NES - possibly going as far as various expansion audio chips. It depends on how well people respond to this vs the game-based Beyond the Code videos. This particular one took some extra time!
@@DisplacedGamers Excellent! All the videos on your Beyond the Code series are very interesting, and few (if any) content creators dived this deep into the inner workings of the sound on the NES (or other consoles).
Your videos are just incredible, honestly one of the best channels around here
This is a very clear, articulate and insightful video!
Thank you for this video! Alot of work went into it. You did a great job!
cannot say it enough , love this series!!! tyvm
Very informatic and very well explained 😍🥰
Very good and legible explanation of a lot of DSP concepts here.
The Double Dribble sample had me crying. 🤣
Very educational! I learned a lot watching this. Thanks for making it!
Your videos are insanely good. Keep up the great work!
I got distracted by: Journey to Silas has banging music. Sunsoft really had a talent for music on the NES.
That was awesome. I studied a lot of computer music in my computer science course and would`ve loved to see that video in those times!
Also, I would love to see a similar video on the SNES!
This is awesome, thank you!
No idea about the differences, but the Silius soundtrack is kickass
I love how you go into all this detail to explain really basic information about how sound works, and then later jump into obsolete assembly language code like you just expect everyone to know all this already.
Your bit-reversed Journey to Silius is correct; I remember using this bass sample from the Amiga ST-xx library.
Oh wow. Thanks for commenting! It is nice to have evidence for it rather than just go by ear/guessing.
do you happen to remember what the sample was called?
I'm going through an archive of the sample library in question.
@@TakuikaNinja I should still have it as well; I'll get back to you on that one.
@@TakuikaNinja I didn't have to look very hard, it's called 'DeepBass' on ST-01. I've converted it to .wav and you can find it here: 1drv.ms/u/s!AgIMW_4kujbwgc9gSMSJABPkFEr4_Q?e=zUupdl
@@BokanoiD I've compared that sample to the silius bass in audacity. The frequency spectrums are similar but the waveforms are too different.
I appreciate your help, though.
I was dissapointed when you said you were skipping the oscillator and noise channels but this was a great video, I hope you revisit them because they are what truly makes the nes unique for video game music imo Battletoads is a good example, versions on newer systems can't even replicate some of the original music in the later stages because they abandoned the oscillators for newer fm synthesis stuff
I just caught that Big Trouble in Little China reference..... "UP OR DOWN?!" LOL
Not only do you understand NES machine code, but you create a video that explains how it could be improved. You are a genius :)
That was quite fascinating, thank you for the video :)
Now I'm curious what kind of techno wizardry and magic the composers had to work through in order to create such notable music pieces like The Immortal, Journey To Silius, Mega Man #, Solstice, and probably a bunch more
I wonder - how do SNES cartridges with extra music chips compare to this? Like Tales of Phantasia, which has an entirely voiced song seems pretty ridiculous
The SNES never actually had any extra music chips except for the MSU, which never made it into any games - every official SNES OST you hear was done using the console's base sound chip.
Moments like Tales of Phantasia were made possible by rapidly swapping out the SPC chip's limited memory (just 64 KB!) to essentially stream audio through the console. Just like the NES's $4011 PCM, this took up CPU time, so it was reserved for moments with little game logic or only used to switch samples in between tracks, like in Secret of Mana.
There's no special chip that improves sound on SNES.
Imagine what sort of NES game a truly talented team of devs could make these days if they truly tried? If enough time & resources were given to them, I bet we could end up with something truly magnificent that would absolutely blow away anything that came before it.
Unfortunately such a thing simply isn't feasible or profitable in this day & age, so we may never know....
Love your videos, man! It's like take a class on gaming or something! xDDD
Never knew that the NES could play sample files. Amazing!
Wow. About 10-15 years ago I remember there was talk in the audio world about switching to ultra-high audio rates and 1-bit audio. I didn't know the NES did this. I actually learned quite a few things about NES audio that I didn't know, which is surprising to me. Cool.
NES did delta modulation but at 33 Khz as the highest rate. DSD/Super Audio CD used in the high end audio world used several Mhz(!), IIRC, 2.8 Mhz. But yes, the basic principle is similiar, NES just uses it at MUCH lower sample rates, resulting in sound that takes little space and is easy to play for 80s hardware but is very lo fi.
Idk what the hell im watching nor will with info stick, but you did a great job of explaining it
Awesome, very informative and well presented.
Fantastic video. Any more you would do on retro audio would be hugely appreciated. I love your channel.
Amazing video! This channel keeps giving!
I like the original Sunsoft bass better than the corrected one. The reversed bit order seems to be creating extra high frequency artifacts, adding high harmonics to the sound similar to that of a clean amp or exciter, which gives it more presence in the mix. I have to wonder if at some point they may have corrected it during development but decided the reversed bit order sounded better in the mix. That *might* be why they left the drums in Super Contra reversed, even.
i like how the original sounds for the same reason, it sounds like an electric bass and fits perfectly in the song
Can't understand sh*t, but it's always a pleasure to listen to you talking about NES and stuff.
lol. Thanks!
I love these types of videos!!
great work
I really wish the NES had 2 DMC channels... as a NES composer it would really come in handy!
Two would be amazing. And as a Gameboy game dev, I wish it had one DMC channel!
@@MaxOakland that would be so awsome!
really great video
Awesome video as always!
super fascinating.
Absolutely fascinating!
great video!
the DPCM was a good compromise for basic samples to be played while keeping the CPU free to run the game without issues, however it did have big downfalls specifically with synthesized sounds like a sawtooth wave, which were impossible to store correctly due to their nature, though that in a way makes what rob hubbard achieved with the immortal's soundtrack even more impressive