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!
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.
@@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
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.
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.
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 & don't quite match up to 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 good on that system? Heck, even 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 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.
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!
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.
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
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! ;)
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 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!
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.
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.
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.
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).
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.
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.
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.
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
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.
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!
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!
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.
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.
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.
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!!!!
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.
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
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 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.
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.
very late to the party but one of the fun thins about the dpcm channel is that it can't encode silence since every sample is either an increment or a decrement - feeding it a silent sample (or a pause) will cause it to oscillate back and forth near zero which produces a high pitched tone that is both the highest frequency and loudest the given sample rate can produce
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
@@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.
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 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 would, yes. That one is rather interesting as the volume of it is different depending on which hardware you use. Some of the Sharp Twin Famicom models in particular swapped two resistors for disk audio causing it to be way too loud when mixed with the Famicom audio.
One thing that has annoyed me endlessly is the 'dramatic' pause in battletoads when a heavy attack connects which stood out as a really clunky aspect of an otherwise smooth and polished game. I had always suspected it might be due to some background processing taking precedence over the on screen action but resigned myself to never having an adequate explanation as to why because I couldn't find any discussion of it anywhere online. I just assumed it didn't bother the heck out of many other people apparently. And now out of nowhere I have an answer to my question. Thanks much for another great vid.
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 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.
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....
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!
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
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.
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.
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
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.
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.
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 & don't quite match up to 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 good on that system?
Heck, even 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?
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.
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!
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.
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
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!
6 minutes in, I completely forgot what this video was about until you brought up the NES again.
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.
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)
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
This is becoming one of my favorite channels. I appreciate the visualization of information. I can't wait for the next 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
You replaced an NES sample with your own vocal sample. I am very impressed. Thanks for all the explanations and exploring this stuff.
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.
One of my favorite technical TH-cam video. Thanks for the great care you put in making it and all your content in your channel.
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!
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.
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!
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.
What I learned from this video is that the title screen music from Journey to Silius is kind of a banger
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.
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).
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.
Absolutely fantastic, blown away by how comprehensive these videos are. Research and time spent really shows.
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.
Hahaha "Dwouble Dwibble"... nice chapter name lol
I always heard it as "Double Dibble"
Can’t believe Skate or Die 2 showed up for it’s intro audio!
Great video. Love this educational series.
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.
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.
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
Ha!
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.
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!
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!
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.
This makes me admire old technology for its simplicity.
Cheers✨✌
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.
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.
I got distracted by: Journey to Silas has banging music. Sunsoft really had a talent for music on the NES.
Thank you for using the correct graphing method for digital samples
this is my favorite channel on youtube. please never change.
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.
Damn dude this was an incredible video. So much information and experimentation, presented so clearly.
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!!!!
so the NES had a lot of sound potential that went almost unexploited...
No,
8bitcollective would beg to differ.
Absolutely enthralling video! Always a good day when a Displaced Gamers video shows up!
The reverse bit order sunsoft Bass actually sounds closer to some existing bass patches. And the controller read bug was fixed on the PAL NES.
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'm just impressed that a reversed voice sample is understandable at all.
I love the Behind the Code series so much. Thank you.
Thanks, Lisa!
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!
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 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.
Your videos are just incredible, honestly one of the best channels around here
This is a very clear, articulate and insightful video!
Very good and legible explanation of a lot of DSP concepts here.
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
very late to the party but one of the fun thins about the dpcm channel is that it can't encode silence since every sample is either an increment or a decrement - feeding it a silent sample (or a pause) will cause it to oscillate back and forth near zero which produces a high pitched tone that is both the highest frequency and loudest the given sample rate can produce
Your videos are insanely good. Keep up the great work!
Sunsoft and Konami had some of the best damn chiptune music on the NES.
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
cannot say it enough , love this series!!! tyvm
Very informatic and very well explained 😍🥰
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.
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!
Never knew that the NES could play sample files. Amazing!
Thank you for this video! Alot of work went into it. You did a great job!
Very educational! I learned a lot watching this. Thanks for making it!
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
Great video, loved the detail!
Would you be interested in also doing a video on the Famicom Disk System's wavetable/sample/FM sound channel?
I would, yes. That one is rather interesting as the volume of it is different depending on which hardware you use. Some of the Sharp Twin Famicom models in particular swapped two resistors for disk audio causing it to be way too loud when mixed with the Famicom audio.
Fantastic video. Any more you would do on retro audio would be hugely appreciated. I love your channel.
One thing that has annoyed me endlessly is the 'dramatic' pause in battletoads when a heavy attack connects which stood out as a really clunky aspect of an otherwise smooth and polished game. I had always suspected it might be due to some background processing taking precedence over the on screen action but resigned myself to never having an adequate explanation as to why because I couldn't find any discussion of it anywhere online. I just assumed it didn't bother the heck out of many other people apparently. And now out of nowhere I have an answer to my question. Thanks much for another great vid.
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.
Amazing video! This channel keeps giving!
This is awesome, thank you!
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
some later Namco games had an extra chip on the cartridge, n163, with a bunch of extra registers and features which looked like 8x 1 byte sound fonts
The Double Dribble sample had me crying. 🤣
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.
Thanks for doing these videos! I'm making a mini NES emulator as a hobby project and your content makes it easier for me to understand what I'm doing
Love your videos, man! It's like take a class on gaming or something! xDDD
Absolutely fascinating!
I just caught that Big Trouble in Little China reference..... "UP OR DOWN?!" LOL
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....
I love these types of videos!!
Brilliant stuff as always
Awesome video as always!