Fix a Final Fantasy song

Even days later i cannot seem to fix this song, and its a shame because its sounding well despite the gba limitations, the fourth track? ( i think ) has some problem that makes sound it sound like a chiptune so anyone interested in fixing it or its too much hassle?
Greetings :slight_smile:

1 Like

I gave this a shot, but there’s not quite enough information in this request. I have no clue what exactly you’re having problems with. Nothing about the provided MIDI seemed like it should be “sounding like a chiptune” when I opened it, and when I tried importing it into a fresh ROM using NIMAP2 in FEBuilder, alas, nothing “sounded like a chiptune”, though I did notice that some tracks would play the same notes over each other about 4 or 5 times in the intro to the song. That could be some weird jank with using FEBuilder to import the MIDI, over the old fashioned Sappy + mid2agb combo, but I’m not really sure.
I also have no idea what instrument map you are using, nor do I know how you imported the song into the ROM, so I have no baseline as to how it sounds on your end. The instrument map may be the issue you are having - a “blank” instrument is typically set to a square wave using the Game Boy hardware, which can only play a single note on a given hardware channel. If you didn’t set up the voice table manually, or by using something like NIMAP, you’ll probably have square waves galore in your song until you do so. But as I said, I don’t have anything like a report7z to work off of, for instance, so I can’t tell you for certain.

All that said, I was curious if this was something I could resolve, and even improve upon, by editing the MIDI, so I tried working on the song, doing the kind of cleanup I would do to any MIDI I was working with, and I came across a few issues.

  • There’s tons of events that have no impact (that I’m aware of) on a MIDI imported into a GBA game. A lot of these live at the start of this MIDI, like NonRegisteredParmLSB/MSB and ChorusSendLevel, but there are some towards the end of the MIDI, as well - a bunch of SysExclusive whatever events. There’s also Expression events everywhere, which don’t carry over to the imported version in your ROM without a little leg work beforehand. I think midfix4agb covers this, but I’m not certain. If you don’t do something about these Expression events, your track will sound different in the ROM than in your MIDI editor, as they, generally speaking, affect the volume of a track, independent of the channel volume.

  • Your MIDI has no loop markers. This will result in the song playing start to finish once in the game, and then stopping completely.
    This would be trivial to fix, but there’s a compound issue here: none of the notes are aligned to the measure lines. This is considerably harder to fix - doable, if you’re willing to do some math and manual correction, but in a MIDI where the tempo is constantly changing, such as this one, I’m not messing with that.
    Also related to the tempo, at multiple points the tempo is an odd number, which gets rounded down to an even number. It’s not particularly important to change, but you could do so by doubling the length of every note and doubling the tempo throughout the entire song.

  • Your MIDI uses 13 voices at some point, which doesn’t fit into the 12 voice limit of these games. This is not that hard to fix, but requires compromising something in the song somewhere. I didn’t check where exactly the song goes over the limit, as the lack of alignment to measure lines had already made this a futile repair attempt, in my eyes.

Presuming that you try changing the instrument map and that isn’t satisfactory, I would advise finding a new MIDI of this particular song, if at all possible. I hope you can understand.


Can confirm midfix4agb will fix the Expression values. It’s as easy as dragging and dropping the MIDI into midfix4agb and then converting that using mid2agb and Sappy as you would any other MIDI


This is what im speaking of, sorry for not putting it before, i have two patches: one the native instruments and the other is the one from the 16 tracks, 12 sounds
Well it has a loop but only in the assembler source file ( .s ).
A question can you teach me or direct me to a tutorial ( i read the tutorial for inserting music for begginers ) of how to cleanup a midi file, what i have to do?
Also what is a expression event? Im very noob regarding inserting music
Also there are a limit of how tracks can be played at the same time?
Pd: I will try midfix4agb and see what happens
Greetings and thanks for the answers :slight_smile:

Seems like a volume problem - go to the .s file and try reducing the mvl value in the header of the text.

The chiptune sound is probably because you are using an instrument that doesn’t exist, so the game had a Square wave programmed in its place.

I actually already have a version of this song that’s mixed and mastered - would you like a copy?

1 Like

Yes please if you dont mind, thanks for the info on how to fix it, it almost fixed nearly all the song changing the mvl value in the header, im still learning of how to fix songs in the case that something goes wrong so a lot apreciated that you fixed it :slight_smile:
Thanks a lot :slight_smile: