Why do some PS1 tracks not loop seamlessly?
Posted: September 11th, 2020, 1:53 am
I'm currently researching the reason behind why some PS1 games don't have seamlessly looping music (specifically Mega Man X3) and stumbled upon this forum. I hope someone can help me clear things up!
Mega Man X3 on PS1 doesn't have seamlessly looping music, as opposed to the SNES version. It fades out at some point, pauses for a few seconds (which might be the pregap's fault that's attached to each track) and then restarts the music from the beginning. Same is true for the Spyro games, which fade out and then fade back in again (though they seem to be one big file without pregaps). FF7 on the other hand seems to have mostly seamlessly looping music.
From what I've gathered it sounds like the PS1 supports MIDI, which would allow for seamless looping, SPU-ADPCM which allows you to set loop points (or does SPU-ADPCM have something to do with MIDI?) and XA-ADPCM which doesn't support looping according to this (https://problemkaputt.de/psx-spx.htm#spuadpcmsamples), though I don't quite understand if the latter just means that XA-ADPCM audio doesn't support loop points or if you can't tell it to automatically start from the beginning once it's done playing.
This probably means that Final Fantasy 7 uses MIDI (which others on the internet seem to confirm) and that Mega Man X3 and Spyro use XA-ADPCM (or SPU-ADPCM?). I can imagine what the reasons for using (XA-?)ADPCM over MIDI or the other way around are, but it's not quite clear to me if there was no way for PS1 game devs to have looping music if they didn't want to use MIDI and if that was why they went for the "fade out and then fade back in"-loop tactic.
To sum things up my questions are pretty much:
- Do SPU-ADPCM and MIDI have something to do with each other?
- Can XA-ADPCM not loop seamlessly, and if so, why (is it maybe because there's a mandatory pregap that can't be skipped)?
- Do the tracks in Mega Man X3 and Spyro not loop because they are in the XA-ADPCM format?
- If SPU-ADPCM and MIDI are indeed different things, then why did the devs not use SPU-ADPCM rather than XA-ADPCM to make sure that the music loops seamlessly (is it because the SPU RAM was too small for that? What was SPU-ADPCM used for instead then)?
- Was there no way to have looping music on the PS1 without using MIDI?
(The penultimate question is pretty much: Why do some PS1 games have tracks that do not loop seamlessly?)
I'm sorry for the barrage of questions but I hope someone can clear up my confusion (and maybe misunderstandings) about this whole ADPCM and looping topic. I'd really appreciate any kind of help!
Mega Man X3 on PS1 doesn't have seamlessly looping music, as opposed to the SNES version. It fades out at some point, pauses for a few seconds (which might be the pregap's fault that's attached to each track) and then restarts the music from the beginning. Same is true for the Spyro games, which fade out and then fade back in again (though they seem to be one big file without pregaps). FF7 on the other hand seems to have mostly seamlessly looping music.
From what I've gathered it sounds like the PS1 supports MIDI, which would allow for seamless looping, SPU-ADPCM which allows you to set loop points (or does SPU-ADPCM have something to do with MIDI?) and XA-ADPCM which doesn't support looping according to this (https://problemkaputt.de/psx-spx.htm#spuadpcmsamples), though I don't quite understand if the latter just means that XA-ADPCM audio doesn't support loop points or if you can't tell it to automatically start from the beginning once it's done playing.
This probably means that Final Fantasy 7 uses MIDI (which others on the internet seem to confirm) and that Mega Man X3 and Spyro use XA-ADPCM (or SPU-ADPCM?). I can imagine what the reasons for using (XA-?)ADPCM over MIDI or the other way around are, but it's not quite clear to me if there was no way for PS1 game devs to have looping music if they didn't want to use MIDI and if that was why they went for the "fade out and then fade back in"-loop tactic.
To sum things up my questions are pretty much:
- Do SPU-ADPCM and MIDI have something to do with each other?
- Can XA-ADPCM not loop seamlessly, and if so, why (is it maybe because there's a mandatory pregap that can't be skipped)?
- Do the tracks in Mega Man X3 and Spyro not loop because they are in the XA-ADPCM format?
- If SPU-ADPCM and MIDI are indeed different things, then why did the devs not use SPU-ADPCM rather than XA-ADPCM to make sure that the music loops seamlessly (is it because the SPU RAM was too small for that? What was SPU-ADPCM used for instead then)?
- Was there no way to have looping music on the PS1 without using MIDI?
(The penultimate question is pretty much: Why do some PS1 games have tracks that do not loop seamlessly?)
I'm sorry for the barrage of questions but I hope someone can clear up my confusion (and maybe misunderstandings) about this whole ADPCM and looping topic. I'd really appreciate any kind of help!