Metroid Prime Hunters mini2sf oddities by CapComMDb at 11:53 PM EDT on March 28, 2008
Hi all. I've been trying to figure out how the Metroid Prime Hunters soundtrack works for some time. They have some incredible use of dynamic audio going on here, but it's beyond anything I've been able to figure out with the latest vio2sf. Let me try to explain the dilemma.

For some tracks, the game appears to be making use of turning on and off audio channels or SPU channels to store multiple BGM in a single track. A good example is the Arcterra II theme (labeled 000d). This track contains both the Arcterra II main theme AND the Arcterra Puzzle Theme. (Or if you don't use Fileplanet, download just the Arcterra II theme here and compare it with the mini2sf.)

So basically, if you play the mini2sf file, you will hear BOTH of these themes playing simultaneously. (Incidentally, there are many other tracks that do this same thing, of which the Escape sequence - track 0034 - is another good example; also note that the game increases the tempo of this theme based on how close to 0 the timer is).

At first, I thought you could isolate the Puzzle Theme or the Arcterra II theme by simply turning on and off the different SPU's. However, this is not possible because the SPU's that contain the puzzle theme ALSO contain parts of the Arcterra II theme - it is simply impossible to isolate unless you dynamically turned on and off the SPU's.

At this point, I don't understand how the mini2sf file and audio emulator is working and how it might be possible to isolate each track. Is this a problem that anyone else has noticed in other DS soundtracks?

edited 11:54 PM EDT March 28, 2008
by Mouser X at 2:50 AM EDT on March 29, 2008
What you're experiencing is *very* well know, and has been around for years. It's what we refer to as "dynamic tracks." Perhaps you didn't notice, but Banjo-Kazooie, Banjo-Tooie, Diddy Kong Racing, Final Fantasy 8, Legend of Zelda: Ocarina of Time, and many many others have suffered from this. In most instances, the problems have been solved (to varying degrees). This is a common thing for Nintendo to do. It's why they use sequenced music so much, as opposed to streamed music. With sequenced music, you can store multiple songs in the same sequence. When the situation changes, it's very easy to change the music accordingly, because every piece of that sequence has been playing as well, but some pieces of it were silent.

Really, the only way to get this fixed is to have someone hack the sequence data apart. This requires savestates, and knowledge in assembly. The reason the save states are useful, is because it allows you to specify how the music was constructed at that specific time. This of course allows you to know what's playing at what time. Therefore, once you learn this information, you can modify the 2SF set accordingly (or in same cases rerip it).

When I saw that the newest version of vio2SF had the ability to disable some SPUs, I thought it was interesting, but fairly pointless, due to how the music is handled. Unlike the SNES (where it has a specific number of channels, and each channel plays a specific instrument), the NDS is closer to the GBA in how it handles music. It's a software mixer (more or less), so the sequences are taken from 5 "channels" or 20 "channels" or however many instruments are played simultaneously, and then all of those are "downmixed" (wrong term, I'm sure) into 2 channels (left and right for stereo). Due to this being the method used, disabling the different SPUs really doesn't help much. It's the same reason you don't see "channel muting" in PSFs. The Playstation hardware simply didn't work that way.

So, you can't use vio2SF, or *any* 2SF player to isolate the various songs. The only way to do that is to modify the 2SFs themselves. The emulator is simply that. It emulates the hardware. The hardware has no support in it to do what you're attempting to do. It doesn't exist. What you want to do is done at the software level. As such, you have to modify the software. That is, you have to modify the NDS software, which is the ROM data (which vio2SF, nor any 2SF player, will ever have direct access to).

Hopefully I explained that without causing confusion. To get a better idea of how vio2SF handles (and interacts with) 2SFs, you might want to read this. If you have any questions, please reply here, in this current thread. Mouser X over and out.
by CapComMDb at 6:15 PM EDT on March 29, 2008
Thanks for the help. I suspected it might work something like that. Guess here's one more soundtrack that simply won't have the 'silver bullet' for ripping.


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source