Page 1 of 1

Why do some PS1 tracks not loop seamlessly?

Posted: September 11th, 2020, 1:53 am
by FulminisIctus
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!

Re: Why do some PS1 tracks not loop?

Posted: September 20th, 2020, 6:40 pm
by Shadow
Any music track (SPU based or CDDA/XA based) can loop. Just depends if the programmers added it or not.

Re: Why do some PS1 tracks not loop?

Posted: September 20th, 2020, 11:49 pm
by FulminisIctus
Shadow wrote: September 20th, 2020, 6:40 pm Any music track (SPU based or CDDA/XA based) can loop. Just depends if the programmers added it or not.
Thanks a lot for the response! Does that include seamless looping? I've seen someone mention that because the laser has to readjust itself to get back to the beginning of a sector to play the XA file from the beginning, there's a small gap that makes seamless looping impossible for XA files. The tracks in Spyro and Mega Man X3 do loop, but not seamlessly and I assume it's because of the aforementioned reason.
(I should add "seamlessly" to my post title to make that clearer)

Re: Why do some PS1 tracks not loop seamlessly?

Posted: October 12th, 2020, 12:46 pm
by Shadow
Yes, that is correct. There is always a slight pause because the laser needs to seek.