2. Music position is not saved. This means that when you exit card games, the BGM starts from the beginning again. (I am fixing this or trying to.) FIXED.
3. Certain musics that only play the intro ONCE in entire game are being played every time, partly because the position data is not being saved, but also because whatever the PSX did to make sure the music never played intro again, is not being done with PC. (probably checked game progress value, then set flag. Which is what I will be emulating). I can only think of 2 musics this applies to. Galbadia Garden and Movin'. Galbadia Garden plays the intro every time you return from cards, and every time you enter or leave the garden. This is clearly not acceptable. FIXED.
This is the case for The Landing too. If you pause while in a fight at the Dollet mission, the song will restart from the beginning.
Also, this is just nitpicking, but the FITHOS LUSEC WICOS VINOSEC song exists twice in the data. The first one for when the parade starts and the second one for when Quistis & co. come out of the sewers. Would you include both or keep the position? Because the second one begins at a different position. Keeping the position wouldn't really make a huge difference, as even the fastest possible, the time between when Squall and Irvine get to Rinoa and Quitis & co. get to the top is still big, so it wouldn't really make a huge difference.
I was wondering if you could make something like raw.ini where settings are... I was thinking as a format like this:
loop = True
keep_pos = True
First song, it loops (that could be useful for people like me who want to put MP3s that don't loop. Then it just repeats. Not sure if you need a config for that or it can auto-detect). If not, it could be
song1.ogg repeat = True
Where repeat means to keep position or not. I understand it's more work, but I'm sure it would be appreciated. That's useful for custom songs that loop or not.
Also, I am only guessing here, but it probably wouldn't work the way you want it. If you don't hardcode the data (I assume you put that in memory), upon saving and reloading, it would not keep the data. But you probably know that already.