Event hacking question

If it has bytes, we can change it. Talk about anything relating to hacking and emulation here.

Moderators: General Moderator, Game Moderator

Event hacking question

Postby DjinnAndTonic » Sun Jul 10, 2011 6:49 am

So I was hacking what I thought was a simple Event in the Ancient Castle. There's the part where when you read the Queen's Diary with Terra in your party, the group all appears and Terra has a moment to sigh and then the group gets back into one body and you're on your merry way.

Well, I wanted to change it so that Locke would have this little event instead. It all worked just fine until just at the very end when the party gets back together into a single body. For some reason, the game froze, not making all non-Locke PCs disappear, and instead Terra went randomly walking off to the left and then the game crashed.

I suspect it has something to do with the fact that Terra is Actor 0, and the $47 command "Make character in slot 0 the lead character". (which is used in the Subroutine at the end of this event at CA/CB95)

Has anyone run into an issue like this before? Or have any information about how the $47 command works? If it -does- only apply to Terra, what does the game normally use for non-Terra-specific Events?

Code: Select all
Reading Ancient Castle Queen's Diary
CC/1EF3: 4B    Display dialogue message $096C, wait for button press
               A book,
               with a gem-
               encrusted cover…
               “Queen's Diary”
               I realize, now, that I am in love with Odin…
               This…breaks every rule of our society.
               But my heart longs for this noble, elegant man.
               How could anyone blame me?
               After the fighting is over I'm going to bare my soul to him…
CC/1EF6: 92    Pause for 30 units
CC/1EF7: DE    Load CaseWord with the characters in the currently active party?
CC/1EF8: C0 A0 01 B3 5E 00    If ($1E80($1A0) [$1EB4, bit 0] is clear), branch to

$CA5EB3 (simply returns)
CC/1EFE: 92    Pause for 30 units
CC/1EFF: B2    Call subroutine $CAC6AC
CC/1F03: B2    Call subroutine $CB2E34
CC/1F07: 3C    Set up the party as follows: $00 (Actor in stot 0), $FF (<Invalid

Character>), $FF (<Invalid Character>), $FF (<Invalid Character>)
CC/1F0C: 32    Begin action queue for character $32 (Party Character 1), 3 bytes

long
CC/1F0E: C2        Set vehicle/entity's event speed to normal
CC/1F0F: CE        Turn vehicle/entity down
CC/1F10: FF        End queue
CC/1F11: 33    Begin action queue for character $33 (Party Character 2), 4 bytes

long
CC/1F13: C2        Set vehicle/entity's event speed to normal
CC/1F14: 81        Move vehicle/entity right 1 tile
CC/1F15: CE        Turn vehicle/entity down
CC/1F16: FF        End queue
CC/1F17: 34    Begin action queue for character $34 (Party Character 3), 4 bytes

long
CC/1F19: C2        Set vehicle/entity's event speed to normal
CC/1F1A: 82        Move vehicle/entity down 1 tile
CC/1F1B: CD        Turn vehicle/entity right
CC/1F1C: FF        End queue
CC/1F1D: 00    Begin action queue for character $00 (Actor in stot 0), 6 bytes

long (Wait until complete)
CC/1F1F: C2        Set vehicle/entity's event speed to normal
CC/1F20: A1        Move vehicle/entity right/down 1x1 tiles
CC/1F21: CF        Turn vehicle/entity left
CC/1F22: E0        Pause for 4 * 8 (32) frames
CC/1F24: FF        End queue
CC/1F25: 92    Pause for 30 units
CC/1F26: 00    Begin action queue for character $00 (Actor in stot 0), 2 bytes

long (Wait until complete)
CC/1F28: 22        Do vehicle/entity graphical action $22
CC/1F29: FF        End queue
CC/1F2A: 94    Pause for 60 units
CC/1F2B: 4B    Display dialogue message $096D, wait for button press
               TERRA: Love between a human and an Esper…
CC/1F2E: 92    Pause for 30 units
CC/1F2F: 33    Begin action queue for character $33 (Party Character 2), 3 bytes

long
CC/1F31: 83        Move vehicle/entity left 1 tile
CC/1F32: CE        Turn vehicle/entity down
CC/1F33: FF        End queue
CC/1F34: 34    Begin action queue for character $34 (Party Character 3), 3 bytes

long
CC/1F36: 80        Move vehicle/entity up 1 tile
CC/1F37: CE        Turn vehicle/entity down
CC/1F38: FF        End queue
CC/1F39: 00    Begin action queue for character $00 (Actor in stot 0), 5 bytes

long (Wait until complete)
CC/1F3B: A3        Move vehicle/entity left/up 1x1 tiles
CC/1F3C: CE        Turn vehicle/entity down
CC/1F3D: E0        Pause for 4 * 8 (32) frames
CC/1F3F: FF        End queue
CC/1F40: B2    Call subroutine $CB2E2B
CC/1F44: B2    Call subroutine $CACB95
CC/1F48: FE    Return
DjinnAndTonic
Active User
Active User
 
Posts: 67
Joined: Fri Jul 16, 2010 1:12 am

Return to ROM Hacking and Emulation

Who is online

Users browsing this forum: No registered users and 3 guests

cron