It is currently Mon Aug 20, 2018 12:24 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 82 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Author Message
PostPosted: Sat Dec 09, 2017 3:52 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7398
Location: Seattle
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.

Quote:
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.


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 3:58 pm 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3359
Location: Nacogdoches, Texas
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.


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 4:01 pm 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2731
Can most people even tell the difference between drum samples and using a white noise channel anyway?


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 4:06 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7398
Location: Seattle
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.

Quote:
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.


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 4:06 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20421
Location: NE Indiana, USA (NTSC)
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.)


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 4:11 pm 
Online
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7472
Location: Chexbres, VD, Switzerland
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.


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 4:57 pm 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3359
Location: Nacogdoches, Texas
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).


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 6:34 pm 
Offline

Joined: Fri Nov 24, 2017 7:03 am
Posts: 17
Isn't the Neo Geo built to push sprites and only sprites? Even the backgrounds are sprites. Makes it hard to just directly compare.


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 6:57 pm 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3359
Location: Nacogdoches, Texas
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.

Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 6:58 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20421
Location: NE Indiana, USA (NTSC)
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.


Top
 Profile  
 
PostPosted: Sat Dec 09, 2017 9:22 pm 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2731
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.


Top
 Profile  
 
PostPosted: Sun Dec 10, 2017 1:54 am 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 779
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.


Top
 Profile  
 
PostPosted: Sun Dec 10, 2017 10:58 am 
Online
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7472
Location: Chexbres, VD, Switzerland
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 :)

Quote:
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).


Top
 Profile  
 
PostPosted: Sun Dec 10, 2017 11:08 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20421
Location: NE Indiana, USA (NTSC)
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.


Top
 Profile  
 
PostPosted: Sun Dec 10, 2017 11:13 am 
Online
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7472
Location: Chexbres, VD, Switzerland
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 82 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: Google [Bot] and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group