I'm trying to compile a list of games that use PCM samples (non-DPCM). Let me know if you can think of more examples, I've almost certainly missed a ton of famicom games.
The earliest game on this list is currently Tag Team Pro Wrestling (April 1986), so if you can find anything earlier that would be great to know. Also, I've only come up with five examples of it being used in/for music: Action 52, Battletoads, Battletoads & Double Dragon, Great Waldo Search, and Skate or Die 2. Are those the only ones?
Note: Not all samples in the following games are guaranteed to be PCM, as some games use a combination of PCM and DPCM. This is simply a list of games that contain at least 1 PCM sample in them.
Action 52
Action 53 (specific examples mentioned in comments below)
Adventures of Bayou Billy, The
Adventures of Rad Gravity, The
Airball
Aussie Rules Footy
Bad Dudes
Battletoads
Battletoads & Double Dragon
Bible Buffet
Blades of Steel
Bo Jackson Baseball
Chuck Yeager's Fighter Combat
Daiku no Gen-san / Hammerin' Harry
Daiku no Gen-san 2
Day Dreamin' Davey
Dead Zone
Dirty Harry
Dizzy the Adventurer
Emoyan no 10-bai Pro Yakyuu
F-15 Strike Eagle
Final Mission (S.C.A.T. / Action in New York)
Gauntlet II
Ghostbusters
Great Waldo Search, The
Heavy Barrel
High Speed
Ikari Warriors 2
Immortal, The
International Cricket
Joshua
Jurassic Park
Karate Champ
Krusty's Fun House
M.U.L.E.
Mahjong Club - Nagatacho Sousaisen
Mickey's Adventure in Numberland
Mickey's Safari in Letterland
Mito Koumon (full title - Tenka no Goikenban - Mito Koumon)
Mito Koumon II: Sekai Manyuu Ki
Monopoly
Pinbot
Power Punch 2
Punch Out!! (and Mike Tyson's Punch Out)
Robodemons
Roger Clemins' MVP Baseball
Sesame Street: Big Bird's Hide and Speak
Sesame Street: Countdown
The Simpsons: Bart vs. the Space Mutants
Skate or Die 2
Smash T.V.
Star Wars: The Empire Strikes Back
Super Jeopardy
Tag Team Pro Wrestling
Three Stooges, The
Ultimate Stuntman, The
Wheel of Fortune
Wheel of Fortune: Junior Edition
Wheel of Fortune: Family Edition
Wheel of Fortune: Featuring Vanna White
World Champ / Great Boxing: Rush Up
WWF Wrestlemania: Steel Cage Challenge
Action 53 vol. 1-3 (speech)
Action 53 vol. 1 (TapeDump)
Action 53 vol. 3 ("Crowd" music in 240p Test Suite)
I think a few games used it as a crude kick drum.
Is this for a massive PocketNES feature request?
Shin 4 Nin Uchi Mahjong uses PCM, but over the MMC5's extra PCM output so most emulators don't make the sound.
Is there an easy way to tell? I tried FCEUX and Nestopia, and they both mute raw PCM when you mute DPCM. I seem to recall that the bell sound in Tecmo World Wrestling, and the crowd sound in Punch Out were raw PCM. But I could be remembering wrong. It could have been NESticle where I observed those.
More than 10 changes to $4011 in a frame is almost certain to tell.
Memblers wrote:
Is there an easy way to tell? I tried FCEUX and Nestopia, and they both mute raw PCM when you mute DPCM. I seem to recall that the bell sound in Tecmo World Wrestling, and the crowd sound in Punch Out were raw PCM. But I could be remembering wrong. It could have been NESticle where I observed those.
The DPCM has a very characteristic quality/sound to it, and ringing at its specific frequencies (if you have absolute pitch you might be able to tell which one). PCM sound usually has a pretty distinct quality advantage that will sound "unusual" compared to DPCM if you're looking for it.
The other giveaway is that the screen will usually pause for the duration of the sound. If there's significant animation going on, it's probably not PCM... though there are counterexamples to this (e.g. Battletoads' intro) and IRQs also get around it somewhat (e.g. Ultimate Stuntman). A static screen can be a pretty good hint though, in most cases.
Finally you can verify by putting breakpoints on $4011. If you get more than one in a frame, you're probably getting PCM. You could certainly rig up a lua script or otherwise hack an emulator to listen for that and give you a display to let you know. (I think the new "overclock" mode for FCEUX does this to automatically detect PCM and disable the overclock, actually?)
Yeah I just tried the breakpoints, looks like I was wrong on Tecmo World Wrestling, but I was right about Punch Out.
I kind of think the "I'm bad!" sample from Bad Dudes might be raw PCM, I'm not wanting to play through a level at the moment to find out though.
Smash TV seems to use it for the "Let's go!" and the sound on the title screen.
tepples wrote:
Action 53 vol. 1-3 (speech)
Action 53 vol. 1 (TapeDump)
Action 53 vol. 3 ("Crowd" music in 240p Test Suite)
Is this for a massive PocketNES feature request?
Ooh, thanks! This is more just research I'm doing for an upcoming podcast episode about high quality sample playback on the NES. I have a spreadsheet I'm putting together, but also thought it would be good to have a forum post that's google-able, incase anyone else wants to look this up. It's always nice having lists of this kind of stuff.
Memblers wrote:
Is there an easy way to tell? I tried FCEUX and Nestopia, and they both mute raw PCM when you mute DPCM. I seem to recall that the bell sound in Tecmo World Wrestling, and the crowd sound in Punch Out were raw PCM. But I could be remembering wrong. It could have been NESticle where I observed those.
za909 showed me a method where you can search for 4011 writes using the debugger in FCEUX. The emulator will pause whenever something comes up. There are a few false-positives to look out for, like DPCM samples that have that "pop" on them will trigger your breakpoint. But you can tell if it's regular DPCM vs raw PCM... if the rest of the sample audibly plays after hitting the "run" button again, then it's just DPCM. If it constantly pauses every time you hit "run", then it should be a full fledged raw PCM sample trying to play.
I'll double check the examples posted here and report back!
Here's a very simple FCEUX lua script to detect it for you. Says either "NO PCM" or "PCM" in the corner depending on whether PCM is currently playing.
- File > Lua > New Lua Script Window
- Browse... (open this file)
- Run
There's a little 1 second timeout on the "PCM" detect so it's easier not to miss, but you the timer value is at the top of the file, easy to edit if you want a more precise display.
Edit: Lua scripts were later
disallowed on this forum. Uploading a ZIP containing what I think was the original script.
What's the name of the podcast?
I suspect that Rad Racer 2 is using $4011 alone for it's drum sounds.
If you want to see something unusual, look at Star Tropics 2. It uses $4011 as a volume control for the triangle channel.
edit:
rainwarrior: neat, thanks
Memblers wrote:
If you want to see something unusual, look at Star Tropics 2. It uses $4011 as a volume control for the triangle channel.
So did Startropics. It's part of its "fade out" routine for the music.
Super Mario Bros. also does it to lower the triangle volume for some music tracks. (It has a gradual slide, +/-1 per frame, which actually produces an audible buzz during the transition-- the NSF kind of sucks for this because it always starts at 0, so a lot of tracks start with that buzz.)
These won't trigger the PCM detector here, though, since they're once-per-frame writes.
In the luaScripts folder there's a SoundDisplay.lua script you can run to just watch the various sound channels if you want an easy visual way to inspect these things.
Ghostbusters
Tenka no Goikenban - Mito Koumon (just load the ROM and wait a few seconds, pretty neat encoded speech)
Memblers wrote:
What's the name of the podcast?
Ah the podcast is Retro Game Audio. All episodes can be streamed or downloaded from our soundcloud. We have 20 episodes so far, this'll be our 21st.
https://soundcloud.com/retrogameaudioNovaSquirrel wrote:
Smash TV seems to use it for the "Let's go!" and the sound on the title screen.
Yes! I forgot to put that in the list, but I did double check all the vocal samples and those are all PCM.
Memblers wrote:
I kind of think the "I'm bad!" sample from Bad Dudes might be raw PCM, I'm not wanting to play through a level at the moment to find out though.
It is! Which is funny because it's so bad sounding anyways.
Something I didn't mention in the OP was bit-rate, since it's a little over my head, but something that's kind of neat is that some samples have a lower bit rate. Before researching this I assumed everything was either 1-bit DPCM or 7-bit PCM. But Gauntlet 2, MULE, and Skate or Die 2 should all be using 4-bit samples.
To the best of my understanding, it's because they limited themselves to using a "smaller space" (less values) than 7-bits, but would've otherwise been 7-bit had they not gone out of their way to do that. I think of 7-bit as like the default bit depth for the NES' raw PCM, but it could be limited to anything smaller.
za909 helped me identify what's apparently 1-bit PCM, from World Champ. Which seems really strange to me!
bucky o'hare wrote:
za909 helped me identify what's apparently 1-bit PCM, from World Champ. Which seems really strange to me!
The PC speaker could naturally do 1-bit PCM, for instance, and so could a few other systems (ZX, etc.). Did it originally appear on another platform?
If you can get your samplerate high enough to be above the audible threshold, 1-bit PCM can effectively become equivalent to more bits (i.e.
PWM). Eg. 160 kHz 1-bit output could sound like 40 kHz 2-bit.
rainwarrior wrote:
Here's a very simple FCEUX lua script to detect it for you. Says either "NO PCM" or "PCM" in the corner depending on whether PCM is currently playing.
This is awesome! Thank you for this.
rainwarrior wrote:
bucky o'hare wrote:
za909 helped me identify what's apparently 1-bit PCM, from World Champ. Which seems really strange to me!
The PC speaker could naturally do 1-bit PCM, for instance, and so could a few other systems (ZX, etc.). Did it originally appear on another platform?
I tried looking up World Champ and Great Boxing on more platforms, doesn't seem like it. But maybe the devs had the limitations of other systems in mind, that could make sense.
Memblers wrote:
Ghostbusters
For this one, does anyone know where I could locate the Japanese rom? My google-fu is failing, I keep finding the US rom. I'd like to double check if it's the same as the US release. If the original Japanese release has PCM too, then it's even earlier than Dead Zone and will be the earliest known NES game to have PCM (so far).edit: I already had the ROM, smh. And it does have the same sample, so it is currently the earliest known example.
Found a few more examples, Star Wars: The Empire Strikes Back, Roger Clemins' MVB Baseball, and WWF Wrestlemania: Steel Cage Challenge. Basically just went through Sculpture Software's games after seeing they had a couple other examples.
Here's a pretty lengthy PCM event in Star Wars-
https://youtu.be/nhk2_shrbhc?t=50m26s
Looks like really crappy game. Is that lightsaber sound raw 4011h?
Yup! I didn't calculate the samplerate on it, but there's a similar quality sound effect for swamp noises in Degobah, and that was around ~11.72 kHz.
My friend Kevin found an earlier example in Tag Team Pro Wrestling. The bell sound, player groan, and the counting of "1, 2, 3" are all PCM. It came out in April of 1986, so it currently rests as the earliest known example.
Does natsume's S.C.A.T play a PCM when a new game is started? It says a pretty long phrase: "You must destroy them! The Earth is counting on you, good luck." Actually it sounds like it is two samples, there is a small audio glitch after the first sentence. The quality is very good.
nesrocks wrote:
Does natsume's S.C.A.T play a PCM when a new game is started? It says a pretty long phrase: "You must destroy them! The Earth is counting on you, good luck." Actually it sounds like it is two samples, there is a small audio glitch after the first sentence. The quality is very good.
Yeah, it's raw PCM. (It was actually already in the list as "Final Mission (S.C.A.T.)".)
Isn't the dog's bark on Duck Hunt PCM?
I think the percursion on many Sunsoft games (Journey to Silius, Batman - Return of the Joker, Gremlins 2, Fester's Quest...) are PCM too.
Teenage Mutant Ninja Turtles 3 uses some voices too.
Gradius 2 has many voices that tell the item you got.
I think the noise that Simon's Belmont does when hit on Castlevania 3 is a kind of voice too.
If I remember correctly, Kung-Fu Master has some voices on it.
I think Super C uses PCM on the "orchestra hit" that's used on many of its sounds.
Woof and quack are DPCM.
Drums in Journey to Silius and Batman ROTJ can't be PCM because that'd interfere with playback of bass through DPCM.
Oops... looks like I confused the drums with the bass!! My bad.
I added some more games on the list. Most of them I'm not sure.
Oh, and there's a laugh on Castlevania 3 that may be PCM too.
To add to the Action 53 vol 3 entry, Karate Kick uses raw PCM for the yelling sound when a player dies.
Fisher wrote:
Isn't the dog's bark on Duck Hunt PCM?
I think the percursion on many Sunsoft games (Journey to Silius, Batman - Return of the Joker, Gremlins 2, Fester's Quest...) are PCM too.
Teenage Mutant Ninja Turtles 3 uses some voices too.
Gradius 2 has many voices that tell the item you got.
I think the noise that Simon's Belmont does when hit on Castlevania 3 is a kind of voice too.
If I remember correctly, Kung-Fu Master has some voices on it.
I think Super C uses PCM on the "orchestra hit" that's used on many of its sounds.
Ah, these are all examples of 1-bit DPCM. I'm on the lookout for raw PCM, which handles sample playback differently and is less common.
Just to make the difference clear in case anyone's not familiar with the terminology:
DPCM: 1-bit differential PCM, where each bit modifies the waveform relatively from the previous value, increasing or decreasing it. These can be automatically read and played by the APU while the CPU runs code normally.
PCM: The software writes 7-bit samples directly to the APU, so it has full control over the source format of the audio data and the playback rate. The fact that the software is busy preparing the data and outputting it at a steady rate often means it can't do anything else, so there's usually no action when these samples are played.
tokumaru wrote:
...The fact that the software is busy preparing the data and outputting it at a steady rate often means it can't do anything else, so there's usually no action when these samples are played.
A great example of this is Robodemons. There are animated graphics on the title screen, but they very blatantly pause every time the game plays a sample:
https://www.youtube.com/watch?v=PriTocGzp3oAt the other end of the spectrum, Gauntlet 2 does manage to pull off PCM without interrupting gameplay. And there's PCM galore!:
https://www.youtube.com/watch?v=ISyFQpZkSS0I think the low samplerate (approximately 5.2 kHz) is what allows the game to juggle its resources. It seems to be the most effort any NES game put into having lots of PCM with gameplay. And now that I think about, I believe Gauntlet 2, Skate or Die 2,
and Battletoads might be the only games that have some PCM where not everything else pauses?
Battletoads definitely pauses when playing PCM. Even in the intro. Just pay careful attention and you'll notice it.
When used in-game, Battletoads' PCM sound effects even break parallax effects, presumably because they steal all of the CPU's attention.
The other thing Battletoads does is drop out the PCM drums entirely for parts of the intro so that it can manage more animation.
Big Bird's Hide and Speak cuts many of its samples into separate segments to slip little animation updates in between them (mostly Big Bird's mouth), which I thought was interesting.
Quote:
When used in-game, Battletoads' PCM sound effects even break parallax effects, presumably because they steal all of the CPU's attention.
Yes, and by the was this was "fixed" in Battletoads & Double Dragon - the sound effects "breaks" instead of the parallax effect (visible in Stage 2 when scrolling).
Add Karate Champ to the list. Be-gin!
This isn't associated with a game, but back around 2004 I made my Squeedo synth cartridge. It's audio was generated by an MCU on cart, but was played through $4011. I guess it is still the only expansion audio cart for an unmodified NES?
Bregalad wrote:
Battletoads definitely pauses when playing PCM. Even in the intro. Just pay careful attention and you'll notice it.
Ah, I suppose it does! Of course there are parts where it drops out entirely when there's too much going on, but there are also parts where it's playing while text is being added to the screen and minor changes to the graphics are occurring. But it does have to alternate these tasks, and you see small pauses that delay the text being added to the screen. I thought at first the actions were woven together, but they are full-blown pauses that just happen to be pretty short (because drum samples aren't very long of course). I guess it deserves an honorable mention for trying to "get away with it".
Memblers wrote:
Add Karate Champ to the list. Be-gin!
This isn't associated with a game, but back around 2004 I made my Squeedo synth cartridge. It's audio was generated by an MCU on cart, but was played through $4011. I guess it is still the only expansion audio cart for an unmodified NES?
Karate Champ is on there!
That's really cool! Do you have any videos/ audio of the device in action?
Super Russian Roulette is coming out very soon (now-ish?), which also hijacks the $4011, being fed PCM from another source (to be able to have lots of it).
bucky o'hare wrote:
Super Russian Roulette is coming out very soon (now-ish?), which also hijacks the $4011, being fed PCM from another source (to be able to have lots of it).
RetroUSB's A Winner Is You cart does something similar, from what I understand.
https://www.youtube.com/watch?v=gNObZxrj_A4I want to hit Batsly up at some point to see if doing a Marshall Art Cart album (Marshall Cart?), with the guitar parts and extra channels being driven through $4011 while the normal pulse/tri/noise channels still play their parts, is possible.
I added Battletoads and Double Dragon (it was already mentioned, I just forgot to add it before), Mahjong Club - Nagatacho Sousaisen, and Emoyan no 10-bai Pro Yakyuu.
bucky o'hare wrote:
Memblers wrote:
This isn't associated with a game, but back around 2004 I made my Squeedo synth cartridge. It's audio was generated by an MCU on cart, but was played through $4011. I guess it is still the only expansion audio cart for an unmodified NES?
That's really cool! Do you have any videos/ audio of the device in action?
I have some pictures, and audio recordings, but the recordings are very poor quality since at the time I was worried about using a bunch of bandwidth if I uploaded large files and stuff.
http://membler-industries.com/squeedo/2004_version/ in /samps/, 007.mp3 and 008.mp3 are it playing MML files. But it plays the wrong notes and goes out of tune and stuff, as it turns out there was a pre-existing bug in the version of MCK I was modifying for testing. This drove me nuts at the time since I couldn't find the problem anywhere in my own code! The synth ran on a PIC18F MCU, and it did 4 channels of audio mixed at 32khz. It was mostly wavetable synthesis, 256 8-bit samples with 8-bit volume control. But there was also a noise generator.
If you look in the directory above that link, you can see the redesigned version I started around 2009 or so. But that version has never been built onto an NES cart, unfortunately.
Quote:
Super Russian Roulette is coming out very soon (now-ish?), which also hijacks the $4011, being fed PCM from another source (to be able to have lots of it).
Yeah it's pretty cool, I don't know what hardware is on there exactly, but if it's like A Winner Is You, I mostly consider it a memory expansion since there's no DSP action involved. Though that could be considered a pedantic point, hehe. Pretty soon I'll be trying an experiment with an on-cart MP3 player for a certain project, that too could hold a lot of audio.
BTW I'm really enjoying the Retro Game Audio podcast now. Was especially cool to hear that interview with Dave Warhol.
Wait... so all of those channels were just pumped out $4011? I was previously under the impression that you were IRQ timing the other waveforms to make other instrument timbres. For example, turning Triangle into Sine.
A little unrelated to the main list, but I recall a long time ago there was a demo posted here of an NES ROM that simply had spoken PCM audio along the lines of "What should an NES sound like?" Does anyone recall who made it, and is that ROM still kicking around?
That was
my first tech demo of QuaDPCM, the codec that eventually went into the Action 53 menu. The voice is mine.
Yes! Awesome. That's one of the first things that made me wonder about the potential of PCM.
What about the following games:
Aussie Rules Footy
A Boy and His Blob: Trouble on Blobolonia
Dirty Harry: The War Against Drugs
Dizzy the Adventurer
F-15 Strike Eagle
International Cricket
Jurassic Park
Krusty's Fun House
The Ultimate Stuntman
The Adventures of Bayou Billy and Blades of Steel should be removed, as they are DPCM. And Final Mission (S.C.A.T.) was also released in Europe as Action in New York.
SuperWill24 wrote:
What about the following games:
Aussie Rules Footy
A Boy and His Blob: Trouble on Blobolonia
Dirty Harry: The War Against Drugs
Dizzy the Adventurer
F-15 Strike Eagle
International Cricket
Jurassic Park
Krusty's Fun House
The Ultimate Stuntman
The Adventures of Bayou Billy and Blades of Steel should be removed, as they are DPCM. And Final Mission (S.C.A.T.) was also released in Europe as Action in New York.
"A Boy and His Blob: Trouble on Blobolonia" This game doesn't use PCM.
I thought Jurassic Park's samples are all generic DPCM.
Anyway... I added these games to my list of games with incomplete NSF files.
SuperWill24 wrote:
What about the following games:
Aussie Rules Footy
A Boy and His Blob: Trouble on Blobolonia
Dirty Harry: The War Against Drugs
Dizzy the Adventurer
F-15 Strike Eagle
International Cricket
Jurassic Park
Krusty's Fun House
The Ultimate Stuntman
The Adventures of Bayou Billy and Blades of Steel should be removed, as they are DPCM. And Final Mission (S.C.A.T.) was also released in Europe as Action in New York.
Ah, yeah Dirty Harry is supposed to be on there. I'll double check some more of these!
edit: Thank you for all the additions! They've all been added to the list asides from A Boy and His Blob (unless I'm missing it somewhere).
And The Ultimate Stuntman uses it during music and gameplay! That's the most interesting thing that was missing from the list.
Adventures of Bayou Billy and Blades of Steel do use raw PCM for their title screen speech.
bucky o'hare wrote:
Adventures of Bayou Billy and Blades of Steel do use raw PCM for their title screen speech.
Are there multiple versions of Bayou Billy...? Or is there some way to trigger a speech sound on the title screen? The sound test mode doesn't appear to have any PCM samples, though it has several DPCM ones.
Blades of Steel uses PCM for other stuff too like "face off". Kinda depends on whether it's a sound that can interrupt gameplay or not. (Kind of unusual as a game that uses both!)
Ah, The Bayou Billy one triggers after pressing start to start the game. So technically after the title screen in that case.
I missed the other examples from Blades of Steel, I probably only checked "get the pass" and assumed the rest were going to be DPCM as well. Good find.
MrNorbert1994 wrote:
I thought Jurassic Park's samples are all generic DPCM.
It turns out there is a PCM sample for the T-Rex roaring in the intro/ title sequence. Not sure if there's other examples yet but in the music and most SFX the samples do seem to be regular DPCM.
bucky o'hare wrote:
Ah, The Bayou Billy one triggers after pressing start to start the game. So technically after the title screen in that case.
Ah, thanks. I don't know how I managed to miss that ha ha.
bucky o'hare wrote:
Ah, The Bayou Billy one triggers after pressing start to start the game. So technically after the title screen in that case.
I missed the other examples from Blades of Steel, I probably only checked "get the pass" and assumed the rest were going to be DPCM as well. Good find.
As I said before, the sample saying "The Adventures of Bayou Billy." is definitely just DPCM.
I also found another game that uses raw PCM: WWF King of the Ring.
SuperWill24 wrote:
As I said before, the sample saying "The Adventures of Bayou Billy." is definitely just DPCM.
No, it absolutely is not DPCM. It's writing $4011 roughly every 86 cycles for the duration of that sound.
I only missed when I was initially looking for it because you can accidentally skip it if you're mashing buttons to get started.
rainwarrior wrote:
SuperWill24 wrote:
As I said before, the sample saying "The Adventures of Bayou Billy." is definitely just DPCM.
No, it absolutely is not DPCM. It's writing $4011 roughly every 86 cycles for the duration of that sound.
Listen, I don't need to argue about this, but...
I know it's DPCM (the encoding) because I could convert it properly to WAV with Tepples's tool to do so (18.exe), and it sounds perfect. I have an attached WAV file (had to rename the extension) that I have converted from the ROM with the code/data logger. The sample also clearly sounds like DPCM to me in-game. Plus, Konami ALWAYS seems to use DPCM for their sampled audio.
It does seem weird that it's writing $4011 so many times, though. Maybe it's playing the DPCM and converting it to raw PCM? That doesn't really make sense, but I don't really know for sure. Maybe someone could take a look at this?
Ah, well that's interesting then. This means that the sample is stored in ROM in the 1-bit DPCM format, but it's played back with a software decoder that converts it to PCM first. That's pretty bizarre? It's not that unusual for the PCM to be
decompressed from another format, but from a format the hardware already natively supports??
It's definitely not using the DPCM
hardware to play it back but apparently yes the sample itself is encoded in the 1-bit DPCM format.
The music tracks use hardware DPCM constantly.
It's decoding DPCM data manually so it can retrieve the DPCM data from the $8000 bank. Playing DPCM via DMA would require it to be placed in the $C000 bank on standard NES/Famicom hardware.
In other words, it's using the Blades of Steel trick: software decoding of DPCM data outside the fixed bank.