Incorrect track is called in Figaro Castle

Issue #16 open
Dan Yetman created an issue

Okay, I've been playing through the latest commit as of this writing, and I'm about an hour and a half in, story-wise (just hit South Figaro for the first time).

So far, there is at least one consistent instance where the wrong track plays - when the cutscene with the Matron in Figaro Castle where you choose Sabin's name finishes, the music is supposed to revert to the "Figaro Castle" theme.

Instead, it reverts to the Opening theme. I have the in-game hooks disabled for the time being, as they cause known issues, and I'm trying to avoid issues that crop up where they might be the root cause, so I'm wondering if this is part of the "Track 0" issue. I will be on the lookout for more reproducible problems of this nature, so if this is determined to be an instance-by-instance problem, there will be a roadmap of places to look. Hopefully, this is merely a small symptom of a broader issue, so that fixing that issue will also fix this.

Comments (11)

  1. Dylan Morrison repo owner

    That honestly doesn't sound like it could be even possibly related. I'll try to reproduce it myself.

  2. Dylan Morrison repo owner

    Hmm. So for me, after sabin's theme, it instead goes to silence until you leave the room, and then reverts to Figaro Castle. IIRC this is pretty much how it went in the original?

    EDIT: No, you're right, in the original it fades back into Figaro Castle after that scene. So reproduced, albeit in a slightly different way, on my end. I'll pop this into a debugger and see if I can't figure this one out.

  3. Dylan Morrison repo owner

    Okay, so this is an interesting case. I don't know why for you it plays the Opening, but I've certainly figured out why it plays silence. This is one of the only instances in the entire game where the game looks at the "what was playing before this" variable used by the SPC, and uses it in determining what to play next. Since I set this variable to 51 (silence), the game then plays silence once it's finished playing Sabin.

    I'm trying out a fix on my end where $1309 (the SPC's "last track set" value) will get set to whatever the MSU was last playing, when the MSU plays a new track (before it switches tracks)

  4. Dylan Morrison repo owner

    Interesting. Said fix worked to make it play Figaro Castle properly... but it's playing it through the SPC. It's completely circumvented the MSU-1 code for that instance. Upon switching rooms, it goes back to the MSU-1.

    This implies that this section of the game is using an entirely different set of routines to play this track in this particular situation than the rest of the game uses.

    I'm going to commit a patch for you, see if it at least plays the right track (even if it's the SPC version) and make sure it's not playing both the SPC version and the Opening or something at once.

    Unless more instances of this behavior can be found in the game, it may be best to just have that very very brief section of the game revert to SPC for a second, rather than try to chase down an errant subroutine

  5. Dylan Morrison repo owner

    Patch in commit c3ca6d7. You know the drill by now.

    This is probably actually a very old issue (I'd be surprised if you wouldn't find it present in the earliest Alphas) but I just didn't notice it because I always thought the bit after the sabin reveal was supposed to be poignant silence :P

  6. Dylan Morrison repo owner

    It probably goes without saying but I would definitely appreciate being notified if you can find any other instances where the wrong track plays, especially if it's a case like this where it's supposed to go back to one track after another finishes.

  7. Dan Yetman reporter

    Well, the new commit does now play the right track, but as you suspected might occur, it plays the .spc version. So, largely subverted, but I will keep an eye out for other similar issues.

  8. Dylan Morrison repo owner

    I might consider that resolved for now then. I'll eventually put more effort into trying to track down that particular routine, but my focus right now is making sure that the code stays relatively at the current level of complexity while fixing bugs. I don't really want to get into hooking new routines until we've got things 100% as they are now.

  9. Log in to comment