shinyquagsire23 / OpenJKDF2

A cross-platform reimplementation of JKDF2 in C
Other
523 stars 46 forks source link

[Feature Request] Music spacing interval #156

Open Vortikai opened 1 year ago

Vortikai commented 1 year ago

Back in the day the CD read music incorrectly due to weird development and glitches--LucasArts implemented its own audio following doc, but Creative Labs didn't, then Microsoft emulated CL, it was a giant mess for playing soundtrack data.

What this resulted in for me is that music would play a track and not play any music for a good 30 seconds to a minute or so before the next track played.

Then the digital versions of the games broke the soundtracks and it was especially tricky because fanmade .dlls for 2 disks were hard to come by, from my understanding, since it required editing episode data as well. Luckily that seems to be fixed now with the digital retailers since Disney made a dll patch that makes music play as intended by LucasArts back in the day--a set of tracks on constant loop.

My enhancement request is to add audio spacing for soundtrack. It's not a big issue since my current workaround is to take the music, add variable seconds of silence at the end and beginnings of each track used by the game, and use that instead. However, it would be nice to not have music playing constantly on loop, only intermittently on loop. This is for bot JKDF2 and MOTS.

bangstk commented 1 year ago

What this resulted in for me is that music would play a track and not play any music for a good 30 seconds to a minute or so before the next track played.

What actually happens is that the original game exe explicitly waits until you stop moving or touching your controls for 2 seconds after the music is over, then the level's tracklist will restart.

image

Since this is pretty bizarre behavior, it's inferrable that this was unintended and maybe it was supposed to be checking for the music to be idle for 2 seconds rather than for you the player to be idle for 2 seconds and LEC got the variables mixed up (my guess is maybe in the original source code that variable was named something about "player idle time" and the dev who wrote the music code maybe thought it was referring to "music player")

I bet if you go and try it again with this knowledge on a real Win95 computer you will find the same behavior rather than some arbitrary 30 seconds or so to a minute between tracks. Therefore, there is no "correct" amount of time between tracks, because it's up to the player to decide to stop moving, unless you infer that the 2 second idle time check was meant to be the time between tracks.

Note that depending on the level the music will play through a couple of tracks before stopping.