How to combine rseq with rbnk by neo_chip at 12:00 AM EST on December 27, 2010
I'm trying to rip some audio from wii games. I'm stuck with some that use brsar. I used VGMToolbox under "advance cutter" and I found that it has sequences [rseq] and banks [rbnk]. How do I combine these to get them played properly? Any clue or suggestion will be of great help...
by headerless at 12:03 AM EST on December 27, 2010
No one's quite mastered how the Wii/GC synth works, so there's no "GCSF" format or anything like that for playback on a PC. Some thread on this forum had someone working on a sequence player designed for playing songs on the Wii itself, if I recall correctly; but good luck finding that.
It seems to me that you are misinterpreting the problem here. Essentially, what you're asking for is a xSF format for Wii/NGC games. Such a format, to play properly, would contain the sequences (you mentioned those), the sound banks (again, something you mentioned) and the "driver" (you forgot this one). No such format currently exists. If you want to skip the in-depth explanation, please skip to the last paragraph or so (it starts with "tl;dr").
The other method, mentioned indirectly, is to convert Wii formats (resq) into an already existing format (MIDI), which is what wolupgm6 linked to. However, this method has its own problems. For one, it only works on specific Wii formats, and the conversion software must be tweaked to account for any differences that occur when the Wii format changes. Also, being a conversion, the MIDI format may not be able to account for certain features that the Wii format implements. Thus, the preferred method would be a Wii/NGC xSF format.
Unfortunately, the problem with a Wii/NGC xSF format, is that it requires extremely skilled people to create it, and the xSF files themselves. These xSF files, if created properly, would be able to run on the Wii/NGC perfectly fine. Thus, a PC implementation (aka, a Winamp plugin, for example) isn't actually required, but it does make things significantly easier. And, because they use the "driver" of the original game, their accuracy is practically guaranteed (when played on the proper hardware).
For explanation, the "driver" is essentially the specific part of the game's software which runs the audio, specifically its music. Thus, for proper playback of files from say, Twilight Princess, it would require that the software/game code which handles audio be isolated from the rest of the game (get rid of graphics, get rid of controller inputs, get rid of loading the levels, etc.), and finding the specific piece of memory/code which will load a new file/song. This is not an easy thing to do, and usually requires that you know Assembly to do it.
An interesting sidenote here - 2SFs (the NDS xSF format) are created the same way. However, unlike previous consoles (Playstation, PS2, Gameboy Advance, Nintendo 64, etc.), the sequence format used in NDS games is frequently so similar between different games, that the driver from a single game is able to play the sequences from a completely different game. Thus, the driver from a Ys game (I'm pretty sure that's the game the current 2SF driver is from) is able to play sequences from a Nintendo game, or SquareEnix game (I almost wrote SquareSoft....), or any number of other developers/games. Admittedly, because the driver is from a different game, it's possible that the playback is in fact inaccurate. However, it is generally believed (or at least accepted) that the differences (if there are any) are small enough, that it would not be worth the effort to isolate the audio software from each, individual game (as was done on previous consoles).
I point this out, because frequently, consoles are to the point now, where tweaking the audio code to a specific implementation is no longer worth the effort. Thus, with the newer consoles, it is theoretically possible to isolate the audio code from a specific game (likely a 3rd party game (increasing its chances of being a developer tool used by multiple developers, thus "standardizing" the sequence format), though a 1st party Nintendo game would also be a good idea), and create a driver from that game, that is capable of playing the sequence files from different games. If that were to happen, then the only problem in creating new rips, would be to combine the sequence data, with the matching sound banks (and, of course, including the "generic" driver).
Since none of this has happened yet, your request is not currently possible. For your request to be fulfilled, someone must first create a driver, capable of playing the sequence data from numerous games and developers (theoretically possible, assuming that the sequence format is essentially identical between all the different games available), and then figure out a way to combine the driver with the sequence data, and its matching sound bank, in such a way, that the driver is able to load the sequence, and its sound bank into memory properly (and of course, then read that pairing from memory). Ideally, it would be best if this were done on the console first (the Wii has the Homebrew channel, so it's very possible to manipulate memory such that you could isolate the audio code, and the appropriate sequences/sound banks, all on the console itself).
Once a "proof of concept" is working (meaning, essentially, that the format works), one would then need to create a player for this format. If, as mentioned in the above paragraph, this is done from the console itself, the format would already be playable on the original hardware. Thus, all that remains, is to emulate the original hardware on a PC. To my understanding, Dolphin has accomplished this (as you mentioned). The problem is, Dolphin emulates the entire hardware system. This takes a lot of resources (CPU, RAM, etc.), when all we really want is to listen to the music. So, for efficiency reasons, you'd want to remove the unnecessary bits from Dolphin's source code. This would decrease the size of the emulator, and the amount of CPU it requires to run, and possibly the amount of RAM it requires. It would entirely remove any graphical requirements whatsoever (you could successfully run this "simplified" Dolphin emulator on a computer that has no graphical hardware at all). You would, however, have to implement some method of passing the xSF files into this "mini" Dolphin emulator though. That likely wouldn't be too hard (considering the difficulty involved in everything else).
And now, the final problem. I haven't looked at Dolphin's source code, but I've heard it's a mess. I've been told that it would be a nightmare to attempt to separate all the various bits out, to isolate the stuff that emulates the audio hardware. Nonetheless, one could still create an audio player from Dolphin's source. The "ham-fisted" method would essentially leave the emulator as it currently is, but would no longer output the graphics to the screen, or accept controller inputs from the keyboard/gamepad. If implemented in this (very ugly) method, all that would need to be done, is to create a way to load the xSF files into Dolphin.
I have more than likely said far more than anyone is willing to read. Thus, in an attempt to shorten what I have written:
tl;dr version - You're asking for someone to create a xSF format for NGC/Wii games. Such a format does not exist, and is almost certainly very difficult to create. Apparently everyone here is no longer able to create such a format (time constraints, lack of expertise, or whatever), so you'd be better off asking the people on the Dolphin forums, at this point.
Hopefully that helps clarify the problem at hand. Mouser X over and out.
Thanks Mouser X, I fully understood the whole process it involves to get Wii/GC xSF working. Still learning how this stuff works. I guess I'll have to be Really patient for this when its released...