This hack completely restores the music and sound effects from the SNES original.
The framerate drop that was introduced when porting the game to GBA is almost completely eliminated.
All 3 releases of the game (Europe, Japan, America) are supported.
A new streamed orchestral intro is optional for the European version only.
*************************************************************************
* Final Fantasy V advance : Sound Restoration and No-framerate-drop Hack *
*************************************************************************
** By Bregalad, ipatix and Dwedit **
October 25th, 2014
Version 3.0a
1) Introduction
While Final Fantasy V advance is a pretty decent port of the SNES game Final Fantasy V, it's pretty much arguable that the sound port was bad. In Final Fantasy Anthology for the PlayStation, it already sounded significantly less good than the SNES version, but there it's really not acceptable to ruin this soundtrack like that.
Another problem with Final Fantasy V advance is the frame rate. Many spells, such as Aqua Breath, make the frame rate drop from 60 FPS to 30 FPS, because the game was coded sloppy with not much care to efficiency (and that despite the fact the GBA's CPU is aprox. 4-6 times more powerful than SNES'). During the last battle, the frame rate drop becomes insane. This hack also solves this problem, leving the frame rate intact for most of the time.
While the the original SNES has 38 instruments, they made the remake with hundreds of different instruments, for the large majority sounding much worse. New instruments sounds very aggressive and fuzzy, and just completely ruin the feel of the original songs in most tracks. Not only that, but the new samples are longer and take much more ROM space, for a total of about 3 minutes of samples at 18kHz. When I think the SNES samples only takes about 20 seconds in total at a similar rate, using them Square could have used the last 2.5 minutes of ROM space for a cool streamed intro with a real orchestra, etc... When I think about that it really make me want to push the programmers of FF5 advance in their face. But instead of this I might as well hack the game to fix that problem.
After this original hack, I found a way to convert the sequenced data directly from the SNES ROM into in the GBA's sappy engine format. Thank to the contribution of Dwedit I was able to have a setup where my hack was compilable, like any other program, allowing to release the hack for the American and Japanese version easily, as well as the European version it was originally meant for.
Thanks to ipatix, I was able to have a higher quality sound mixer than Nintendo's original one. The changes are :
- The sound mixing is done in 16-bit internally and then downsampled to 8-bit -> better quality
- The sound mixing is faster -> the frame rate drops are eliminated
- A new reverb algorithm was implemented to sound as close as possible to SNES' verison.
*** Disclaimer ***
This hack was means to be played on real hardware. Some emulators may have compatibility issues with this hack. Mainly, with the default options of the emulator Visual Boy advance, it will play the game with major slowdowns. This does not happen on accurate emulators or real hardware. This is *NOT* a bug in my patch, but in VBA, so no I will not fix it. This problem is caused by the placebo BIOS used by VBA. If you use a real BIOS (dumped from a real GBA) it will work great. By the way if you want to play this game emulated, I'd recommend you to seriously consider playing the SNES version.
2) Changes that make this hack.
- All 69 musical tunes were "imported" directly from the SNES ROM
- All 186 sound effects were "imported" directly from the SNES ROM
- The song "Reminiscence" is now used in the game again in the proper locations. I don't know why but they screwed up and played "Lenna's theme" whenever "Reminiscence" should have played.
- For the European version of the game, there is an optional streamed music, preformed by Tokyo's philharmonic orchestra, to be played plays during the intro.
- The sound mixing engine was rewritten to consume less CPU time, fixing the frame rate drop problems, while producing higher quality audio output.
- There is another surprise
3) Bugs
The original GBA port is already a bit glitchy and buggy, so not all bugs are caused by my hack.
3.1) Sound popping
Some pops in the sound can randomly be heard. This tends to be more frequent in VBA than on real hardware.
I have * ABSOLUTELY NO IDEA * what the problem is or what happens. I spend literally weeks of full time work to try to debug that, in vain. I was not going to spend my life to find out what the problem is, so I just went ahead and released the hack as it. I have alredy spend hundreds of hours on this for version 3.0 alone, probably in the 500-1000 hours range if I sum up time I spent for all version of the hack, so I'm not going to waste more time on this because of TOSE's incompetence. If anyone familiar with GBA hardware has an idea why this popping appears in my hack and not in the original, I'm open and I'll try to fix it. However as long as I don't know why this happen I can't fix it.
3.2) Music randomly getting wrong
When playing music, an instrument can play too early/too late randomly or not play at all.
This bug is in FF5's sound engine, and it was already there before my hack so I'm for nothing. Please don't blame me about that. This is very rare tough.
4) FAQ
Q: I've never played the SNES version of FF5, or even any SNES game, should I use this hack ?
A: Yes. Most of the instruments of FF5 advance sounds horrible anyway. Even if SNES instruments doesn't sounds incredibly good by modern standards, they definitely sound better. So even if you never played the original SNES game and want to play FF5 advance, I strongly recommend you apply this patch on your ROM. However, to fully hear all sounds, you must use headphones that are able to reproduce bass sounds that the small GBA/SP/DS speakers can't.
Original GBA's and DS have a headphone jack, but for the SP you'll have to use a stupid adapter (stupid because mine broke). This patch also fixes some lagging problems.
Q: Does this hack affect anything else than the music in any way ?
A: Yes, the original game had frame rate drops during many battle animations (Shiva, Holy, ....) and even sometimes in town, due to terrible programming. My hack fixes most of that by reducing CPU usage for sound and by rewriting the interrupt handler.
Q: Will you make a hack that restores the font/dialogue boxes/translation/etc.. of the SNES game ?
A: No I won't and I'm unable to. If you want that you should as well play the SNES original.
Q: Will you make a hack that restores the music of any other game in the Final Fantasy Advance series ?
A: I already sound restored all 3 games of the SNES trilogy. Nowadays FF4 and FF5 has both music and sound effect fixed, FF6 has only music fixed, and with estimated music (not directly ripped form the SNES ROM). However there is way too many songs and sound effects in FF6 for me to have any chance to convert them all again in my free time.
Q: Will you make a hack that restores the music of any other SNES game ported to the GBA ?
A: Again I spend countless hours doing this for the Final Fantasy 4-6 trilogy and I probably won't do anyother project anymore. If anyone wants to handle that I'll be ready to help and give advice, though.
Q: I want to make my own hack for another GBA game. How do you do it ?
A: Before contacting me read my GBA sappy sound engine doccument, available on http://www.romhacking.net
Q: Will you send me a ROM ?
A: No, it's a IPS patch for legal reasons. You should be big enough to find a way to get a ROM by yourself.
Q: Which IPS file should I use ?
Q: On which ROM should the patch apply ?
A: Since version 3.0, all 3 releases of the game (Europe, Japan and America) are supported. The orchestral intro is optional for the European version, and is not available for neither American nor Japanese version.
Q: Is it normal that the IPS patch is that large ?
A: Yes, the patch with the orchestral intro is about 7MB large, because uncompressed streamed autio takes space.
5) Versions history
3.0a (October 25th 2014) : I just re-made the patch for the orchestral version, because I should have messed up last time and this patch didn't work. I'm sorry for any inconveniences.
3.0 (September 3rd 2014) : Comply redone the hack from scratch again. I must be masochist. This time, all 69 musics and 186 sound effects were converted directly from the SNES version with the tools I made (some manual editing was also involved). The music driver of the GBA game has been partially rewritten, based on the Golden Sun's sound mixer. High quality reverb, to simulate the SNES sound, is now implemented. The game doesn't lag anymore, even during the final battle where the original GBA port lagged like crazy. The hack is now distributed for all 3 versions of the game (japan, america, europe) instead of just europe. I am ready to eat my shoes if anyone can guess which version is my GBA hack and which one is SNES on a blind test.
2.0a (November 4th 2011) : Fixes a crashing bug in version 2.0 (the game was crashing when a particular song should be played)
2.0 (October 29th 2011) : Completely redone the hack from scratch.
1.1 (September 6th 2010) : Another update. Fixes minor errors of version 1.0 and new (unreleased) songs are inserted in the ROM. Polyphony increased to 10 (hopefully doesn't cause too much slowdowns ?)
1.0 (July 6th 2009) : All music tunes are fixed and sound very close to their SNES counterpart, 10 sound effects are replaced by something close to their SNES version. First version to become public
0.9 (June 25th 2009) : All music instruments replaced or copied. Some songs still sounds wrong.
6) Special thanks :
- ipatix for reverse engineering the fast and high quality sound mixer from Golden Sun.
- Dwedit for giving me a setup to have a compilable hack, and for helping me to rewrite the faster IRQ handler
- Square for making the Final Fantasy series
- Nobuo Uematsu for composing the music of this game
- Whoever at Square Enix who decided to implement the cool music player available once you beat the game (this hack wouldn't have been possible without it)
- Authors of the Audacity audio editing program
- Tokyo's orchestra for the streamed intro
- ipatix for supporting me in reverse engineering the sappy engine
7) Special non-thanks :
- TOSE for being incompetent and sucking at making ports of Final Fantasy games
- Square for having merged with Enix and had made my favourite RPG series going downhill since
ety-ff5a.gba
CRC32: 7197117E
MD5: EBC874A9FFABAACD7EA1A3E128DD97D3
SHA-1: 4FC4BC7C1C3ABE9D2F9C59A3AE4172B5CB57BD2C
ffva.gba
CRC32: 7A24AB0C
MD5: 9ED82843CC54876362BE56FACCB15D75
SHA-1: 492789276EAA3E94152B143AD92F310B8A3D5366
wrg-ffv.gba
CRC32: FC7909A7
MD5: B8FB00C59242AFC33B1A40D0D2B94EE7
SHA-1: F4F6806051097C3088A5763D6D7211024FE5CC34