Best uses of the SNES's 64KB of audio ram

You can talk about almost anything that you want to on this board.

Moderator: Moderators

lidnariq
Posts: 11430
Joined: Sun Apr 13, 2008 11:12 am

Re: Best uses of the SNES's 64KB of audio ram

Post by lidnariq »

Espozo wrote:I bet assembly was pretty much dead at this time though like it is now, so I don't really know. :(
GBA games used lots of ASM libraries for doing various things. Rasterizing triangles, audio mixing, video decoders...

But the core logic was probably written in C, because there was no benefit in not doing so.
why would you have only have 4 FM channels with 6 PCM channels lack any sort of pitch control?
6 channels for percussion and sound effects seems like a perfectly reasonable choice to me.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Best uses of the SNES's 64KB of audio ram

Post by Drew Sebastino »

lidnariq wrote:But the core logic was probably written in C, because there was no benefit in not doing so.
Maybe saving enough CPU time for higher sample rate music? :|
lidnariq wrote:6 channels for percussion and sound effects seems like a perfectly reasonable choice to me.
I can't tell if you're being sarcastic or not. :lol: The Neo Geo does have an additional sound channel with pitch control though, so it's really 7 PCM channels. There's also 1 noise channel that can be used for percussion.
Bregalad wrote:Well, PSG was widely used in the GBA, for the better and the worse.
I personally think it clashes really bad with the visuals.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Best uses of the SNES's 64KB of audio ram

Post by psycopathicteen »

Can most people even tell the difference between drum samples and using a white noise channel anyway?
lidnariq
Posts: 11430
Joined: Sun Apr 13, 2008 11:12 am

Re: Best uses of the SNES's 64KB of audio ram

Post by lidnariq »

Espozo wrote:
lidnariq wrote:But the core logic was probably written in C, because there was no benefit in not doing so.
Maybe saving enough CPU time for higher sample rate music? :|
Your central assumption (that it would save enough CPU time) is untrue. The core game logic is not what uses even a significant minority of processing time on the GBA.
lidnariq wrote:6 channels for percussion and sound effects seems like a perfectly reasonable choice to me.
I can't tell if you're being sarcastic or not. :lol: The Neo Geo does have an additional sound channel with pitch control though, so it's really 7 PCM channels. There's also 1 noise channel that can be used for percussion.
Perfectly honest. The design assumption was probably 3ish percussion and 3ish sfx at any time, and it's important that you have enough overhead to not worry about note stealing.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Best uses of the SNES's 64KB of audio ram

Post by tepples »

psycopathicteen wrote:I was surprised to learn how wasteful the Neo Geo's sound chip is with memory, because every note has to be individually sampled.
In other words, it behaves like the tape frame in a Mellotron, where each key has its own recording. This isn't a problem for drums, and Sunsoft bass on NES has the same problem to a smaller extent because of the small set of valid sample rates.
psycopathicteen wrote:Can most people even tell the difference between drum samples and using a white noise channel anyway?
Yes, which is why Tim Follin paired two channels to make more realistic drums as early as the NES. But the pattern of drums interrupting the triangle channel doesn't work so well if the triangle channel is your lead, as it is in a couple Super Mario Bros. 3 tunes, so Nintendo used drum samples starting around 1988. (By that time, most FDS games that were going to cross the Pacific already did, meaning Nintendo no longer need the DMC to emulate the missing FDS wavetable in games like Zelda and Super Mario Bros. 2: Mario Madness.)
User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: Best uses of the SNES's 64KB of audio ram

Post by Bregalad »

Espozo wrote: I can't tell if you're being sarcastic or not. :lol: The Neo Geo does have an additional sound channel with pitch control though, so it's really 7 PCM channels. There's also 1 noise channel that can be used for percussion.
I know squat about the Neo Geo, but wasn't it supposed to be the Rolls Roye of the video game consoles ? If so, I don't see how it makes any sense it features PCM channels without any kind of pitch controls. That is just completely useless. If they don't provide fine-grained pitch control, at least give the choice between a scale of pitches, such as what the NES's DPCM does.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Best uses of the SNES's 64KB of audio ram

Post by Drew Sebastino »

lidnariq wrote:Your central assumption (that it would save enough CPU time) is untrue. The core game logic is not what uses even a significant minority of processing time on the GBA.
Then what does? I don't see the reason for GBA games supposedly only using a quarter of the CPU time for sound then.
lidnariq wrote:Perfectly honest
I guess I can kind of see it. The four FM channels, as well as the variable sample rate PCM channel, are for the "main sounds", (I'm not a musician) the three PSG channels are for "background noise", the noise channel is for "light percussion" or whatever, and the other six PCM channels are for percussion and sound effects. You can definitely make it work (unlike SNK at the end of the Neo Geo's life), but it's still pretty inflexible despite having so many channels.

You just can't beat the YM2151 and a designated PCM chip. :lol:
Bregalad wrote:I know squat about the Neo Geo, but wasn't it supposed to be the Rolls Roye of the video game consoles ?
Not quite; it was designed to be an arcade machine, but later ended up being converted and sold as a home system. (The arcade "MVS" and the home "AES" are identical in hardware.) According to Wikipedia:
Wikipedia wrote:Initially, the AES home system was only available for rent to commercial establishments, such as hotel chains, bars and restaurants, and other venues. When customer response indicated that some gamers were willing to buy a US$650 console, SNK expanded sales and marketing into the home console market in 1991.
However, Wikipedia also says:
Wikipedia wrote:Neo Geo's graphics and sound are largely superior to other contemporary home consoles, arcades, and even computers such as the Sharp X68000. The MVS was one of the most powerful arcade units at the time.
Either I have a pretty big misunderstanding of the Sharp X68000, or this is a bunch of bullshit. The last sentence is definitely not true; I'm fairly certain most all of Konami's designated arcade game boards are more powerful, the CPS1 is better in the majority of ways, the Irem M92 is better in any real world scenario, and Sega and Namco's arcade boards just obliterate everyone else's. The only thing the Neo Geo seems to beat are Data East's and some of Taito's lower end systems (but they also had plenty of more powerful ones from the time).
lazygecko
Posts: 18
Joined: Fri Nov 24, 2017 7:03 am

Re: Best uses of the SNES's 64KB of audio ram

Post by lazygecko »

Isn't the Neo Geo built to push sprites and only sprites? Even the backgrounds are sprites. Makes it hard to just directly compare.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Best uses of the SNES's 64KB of audio ram

Post by Drew Sebastino »

True, but you can still compare the overall video bandwidth of each system, and while the Neo Geo is still significantly better than both the SNES and the Genesis in this regard, it gets beaten by pretty much anything else. I have never seen "cheese grater" sprite per line dropout on any arcade machine from the time other than the Neo Geo. The Neo Geo is still powerful, no doubt, but more powerful than the majority of arcade machines from the time? I don't think so. Seems like they dumped a bunch of resources into having sprites also take the role of backgrounds, despite the fact that no game really takes advantage of this, instead just emulating a traditional tilemap system (I wouldn't even be surprised if they didn't try and save bandwidth for color 0 areas). Neo Geo games might even look better on a tilemap system, (assuming it uses 8x8 tiles) as they might benefit from an 8x8 palette area to actually make use of huge number of available onscreen palettes.
Last edited by Drew Sebastino on Sat Dec 09, 2017 7:11 pm, edited 4 times in total.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Best uses of the SNES's 64KB of audio ram

Post by tepples »

Espozo wrote:
lidnariq wrote:The core game logic is not what uses even a significant minority of processing time on the GBA.
Then what does?
Software 3D rendering, for one. The ARM7TDMI has to do the job of all four of the S-CPU, S-SMP, S-DSP, and GSU. Also some games performed very detailed calculations for the coordinates of each line in affine mode.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Best uses of the SNES's 64KB of audio ram

Post by psycopathicteen »

I could swear I remember reading that the GBA's PCM channel does have variable rates. It could be just because everyone tried to juggle 4 to 8 channels into one channel, so the variable rate didn't become used.
calima
Posts: 1745
Joined: Tue Oct 06, 2015 10:16 am

Re: Best uses of the SNES's 64KB of audio ram

Post by calima »

Espozo wrote:Maybe saving enough CPU time for higher sample rate music? :|
The other points + economics. I've said before that coding in asm is about 10x slower vs coding in C. Having nicer sounds wouldn't make the game sell 10x as much.
User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: Best uses of the SNES's 64KB of audio ram

Post by Bregalad »

psycopathicteen wrote:I could swear I remember reading that the GBA's PCM channel does have variable rates. It could be just because everyone tried to juggle 4 to 8 channels into one channel, so the variable rate didn't become used.
GBA direct sound does have variable rate, it is fine-grained configurable using the system's timers. However the channels are really meant to replay software mixed sounds in a ring-buffer. I don't think anyone used those channels to play "raw" samples, because 1) 2 channels isn't enough and 2) you need to explicitely stop the playback, if you don't it continues to play whathever is in memory, so programming normal sample playback is almost as complicated as using a sound mixer. And of course 3) Nintendo provided the sound engine anyway so why bother :)
The other points + economics. I've said before that coding in asm is about 10x slower vs coding in C. Having nicer sounds wouldn't make the game sell 10x as much.
Most GBA games could have had nicer sound just by using a nicer setting of Nintendo's sound engine, at the cost of CPU time (which is mostly unused anyway). Apparently developers were very keen on reducing CPU usage as much as possible and have shitty sound, even if there was no technical requirement of doing so in most games. Only Golden Sun games and a couple of others had good sound. Probably the fact the actual sound hardware in the machine is shitty didn't help. (Small speaker incapable of reproducing bass-y sounds, PWM at only 65kHz involving a lot of aliasing in the sound processing after it being mixed, only 8-bit DAC so lots of noise, audible 60Hz buzz).
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Best uses of the SNES's 64KB of audio ram

Post by tepples »

Bregalad wrote:I don't think anyone used those channels to play "raw" samples, because 1) 2 channels isn't enough and 2) you need to explicitely stop the playback, if you don't it continues to play whathever is in memory, so programming normal sample playback is almost as complicated as using a sound mixer.
Add 16 ms of blank space after each sample. Then start playback, wait x frames, and stop playback. Doom for Game Boy Advance uses this for sound effects. It runs all music through the GB-PSG so as to spend more cycles on texture mapping and fewer on the mixer.
User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: Best uses of the SNES's 64KB of audio ram

Post by Bregalad »

tepples wrote: Add 16 ms of blank space after each sample. Then start playback, wait x frames, and stop playback. Doom for Game Boy Advance uses this for sound effects. It runs all music through the GB-PSG so as to spend more cycles on texture mapping and fewer on the mixer.
In this particular case, it makes sense to limit the CPU expense on audio mixing. But the vast majority of purely 2D games, they barely use 20% of the CPU at all and limit the CPU usage on audio like crazy, even though most of it is completely free. The only explanation is that they wanted to save battery life, but in all cases the screen would drag more power than the CPU so it wouldn't make a large autonomy difference between overal 20% or 80% CPU usage.
Post Reply