FF6 Hacking
Help needed, Opera scene in 50Hz - Printable Version

+- FF6 Hacking (https://www.ff6hacking.com/forums)
+-- Forum: Hacks, Resources and Tutorials (https://www.ff6hacking.com/forums/forum-1.html)
+--- Forum: Opera House Rehearsal Room (https://www.ff6hacking.com/forums/forum-71.html)
+--- Thread: Help needed, Opera scene in 50Hz (/thread-3460.html)

Pages: 1 2


Help needed, Opera scene in 50Hz - mrTentacle - 04-19-2017

I'm almost finished fixing an old Swedish translation of FF6, I have you guys to thank for a lot!

I would love to have the game running in 50Hz, to accomplish this I'm using d4s old patch, romhacking FF6 PAL-fix
It works just fine until you get to the famous Opera scene where it all breaks down.

The main problem is that the F9 01 command at CA/BB2B doesn't work, it is supposed to pause event execution until the song has passed a specific point.

Here is the script (Can't seem to find the correct page on datacrystal, this is from the event disassembly)
Code:
CA/BB20: 31    Begin action queue for character (Party Character 0), 6 bytes long 
CA/BB22: C1        Set vehicle/entity's event speed to slow
CA/BB23: 82        Move vehicle/entity down 1 tile
CA/BB24: E0        Pause for 4 * 48 (192) frames
CA/BB26: 82        Move vehicle/entity down 1 tile
CA/BB27: FF        End queue
CA/BB28: 4B    Display dialogue message B9, wait for button press (Show text only)
               The next line is…?
                  ^(Oh my hero…)
                  ^(Alas, Draco…)
CA/BB2B: F9    Pause execution until the music passes through predetermined point
CA/BB2D: B6    Indexed branch based on prior dialogue selection [$CABB3D, $CABB35]
CA/BB34: FE    Return

Is it at all possible to fix this? Any suggestions are dearly appreciated!


RE: Help needed, Opera scene in 50Hz - seibaby - 04-19-2017

A fellow swedish FF6 hacker? Gött mos!

It looks like the PAL patch specifically disables the functionality of the F9 event command in PAL mode in order to fix some issue with the ending:

Code:
.bank 0 slot 0
.org $9A4C

    .dw CheckMusic


.bank 0 slot 0
.org $fee8
.section "ending fix" overwrite

CheckMusic:
    lda.w $213f
    and.b #%00010000
    bne AdvanceOneEvent    ;dont check music if in pal mode(will crash otherwise)
    lda.b $eb
    cmp.w $2141
    beq AdvanceOneEvent
    rts
    
AdvanceOneEvent:
    jmp $B8C2

.ends

I don't know what the issue is that the PAL patch attempts to fix, but disabling this event command is clearly not the proper way to fix it. Sorry I can't be of more help!

EDIT: I found some references to the ending bug. It seems that if run in 50 Hz, fading to black tends to freeze the game. This was commonly seen in Gogo's part of the ending but could occur in other places as well. Also, running in 50 Hz could apparently also cause desynchronization between music and graphics in long cutscenes?


RE: Help needed, Opera scene in 50Hz - mrTentacle - 04-19-2017

Se där! Smile

Well that sucks, so basically find another way to fix 50hz.
Or maybe I could just remove the first question in the script, It's not optimal..

EDIT: Yeah, the music is playing in the wrong speed, so it desyncs, but its pretty unnoticable anywhere else besides the opera scenes.


RE: Help needed, Opera scene in 50Hz - madsiur - 04-19-2017

hmmm, not sure it's the optional way either to fix this but you could tweak the events after a while... Like for one or more "wait 40 frames", do a "wait 30 frames" instead or if the character move 4 tiles left, move him 3 tiles left. I think a better approach is playing with the wait event commands during the whole opera if any.


RE: Help needed, Opera scene in 50Hz - mrTentacle - 04-19-2017

This is how i fixed the first bit, the actual problem with the Maria scenes is that the script continues regardless of the music. So, if you make your first selection to late the music will be way off.

Or can you make a two option choice window where the player cant press a button to remove the window and instead just use the option that was marked when the text window disappeared? If possible this would give a fixed time to sync to


RE: Help needed, Opera scene in 50Hz - Gi Nattak - 04-19-2017

Have you tried adjusting the amount of time the text box appears for, this thing in the dialog E$10 OP$12 for instance? The E$XX can adjust the amount of time the box stays up for. Or you can use other types of pauses such as <> with a D in the middle (the forum won't let me post things inside <> for some reason) in between text to have more time-control of the dialog. If you've tried this already or I'm way off on my suggestion compared to what the actual issue is, I apologize.


RE: Help needed, Opera scene in 50Hz - mrTentacle - 04-19-2017

Yeah that works most of the time.
Thing is that I just don't know when the player makes his/he choice in the beginning, originally the music loops and holds the script until a certain point in the music until letting the script continue, because of the 50hz patch it doesn't wait and the sync is waaaay off.

Edit: Basically, I can sync the choice window, but if the player makes the choice in 2sec instead of waiting for it to disappear the sync is bust.


RE: Help needed, Opera scene in 50Hz - madsiur - 04-19-2017

(04-19-2017, 01:25 PM)mrTentacle Wrote: Edit: Basically, I can sync the choice window, but if the player makes the choice in 2sec instead of waiting for it to disappear the sync is bust.

Yeah basically the last moment you can sync and be sure it is synched is before the first choice, after it goes after the end of the flower throw if I understand your issue correctly.


RE: Help needed, Opera scene in 50Hz - mrTentacle - 04-21-2017

I think that I've solved it! Laugh

Writing about the problem made me think of it in new ways, thanks everyone!

Instead of F9 (Pause execution until the music passes through predetermined point) I use a basic wait command thats longer than the time the choice windows is up, that way it doesn't matter how fast you chose the next line.

Now I just have to adjust all the wait times in the rest of the scene..


RE: Help needed, Opera scene in 50Hz - seibaby - 04-21-2017

Ser fram emot att testa den nya översättningen. On det är den gamla Cyndeline-översättningen så fanns det gott om utrymme för förbättringar.

Looking forward to trying out the new translation. If it's the old Cyndeline translation it sure had lots of room for improvement.