Dolphin, the GameCube and Wii emulator - Forums

Full Version: LLE plugin workaround
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Well, everyone, as we all know, sometimes the games we play don't sound well on Dolphin - either there are missing tracks, or the music sounds scratchy, or the soundtrack is just plain boring.

So what I propose? An LLE plugin workaround!

"So what?", you may be thinking. As you probably know (and I researched previously here), there was an attempt to that that ultimately failed. (He said it was implemented into an old build, but I can't compile it here). So why do I still think this is viable?

First of all, let's think of why skid said it failed: it seems both consoles can change the music on the fly. So what can we do?

I think that a strategy would be a plugin that would override Dolphin's default on-the-fly music change and remap it to an mp3 (lossy compression) or flac (lossless compression). I think the basic steps of this plugin would be:


1. Don't play the default music at all.
2. Allow the player to set "entry points" where music would change.
3. Play the songs utilizing the plugin itself (instead of a "helper application").


Now, for this to work, we would need to make the tracks loop seamlessy and, in the case of music transitioning smoothly, perhaps utilizing an "entry point" with a crossfade effect.

So, what do you guys think? Would you like this implemented? Is there a coder around to try this again with a new approach (Sorry, I'm not one)? If the idea and implementation is good enough, maybe this idea could even go to the main build!
Intentional bump (I edited the topic name to reflect the idea better).
Still, some games uses the music for events (SMG2 black screens after grand stars without LLE...)

Now what I'd suggest is an option to replace any file of the iso from one in a custom folder, e.g. Brawl music is replaced already with either codes (on wii) or modifying the iso, but that is kinda inconvenient.

However not all games uses sound formats like brstm that can be easily converted to, e.g. Zelda Twilight Princess
(12-20-2010, 11:47 PM)KHRZ Wrote: [ -> ]Still, some games uses the music for events (SMG2 black screens after grand stars without LLE...)

Now what I'd suggest is an option to replace any file of the iso from one in a custom folder, e.g. Brawl music is replaced already with either codes (on wii) or modifying the iso, but that is kinda inconvenient.

However not all games uses sound formats like brstm that can be easily converted to, e.g. Zelda Twilight Princess

You know, KHRZ, I was thinking abot this just this morning. The original method I posted is a bit complicated (with "entry points"), because I didn't take one thing into consideration: Dolphin developers already know where the music is playing from! (Even if they don't know exactly - yet - how to replicate it perfectly).


So here is an enhancement to the original idea:

1. This plugin would disable music (not sound effects) altogether first. This would also improve emulator speed, too.

2. Then, with some sort of builtin player, (which can be based on existing code), we, using the built-in player, would listen to the soundtrack and find out what tracks belong to what. Even if they're garbled, it doesn't matter.

3. We would get the original soundtrack and put it into a dummy folder, renaming the files to what their original files ("fooling" the game). For instance, if there is a stage1.format (whatever format the music file is), we would get stage1.mp3 (or stage1.flac) and rename it to stage1.format.

4. The plugin would ask for the original file and the new file (through a "preferences" dialog), and then we would be presented two options: make the music play seamlessy and crossfade (to simulate music playing on-the-fly). This plugin would store these files on a folder we specify, and batch renaming would take a few minutes at most.

5. After the game configuration, the plugin would read the mp3 (or flac) file normally. This part would be the easiest to implement, as we could get a library to read these files instead of coding everything from scratch. Let's not forget that, theoretically, this would actually improve emulation speed too, since it takes less processing power to just play a song than to emulate it.