Users browsing this thread: 1 Guest(s)
Edit existing event: Terra's Flashback

Posts: 31
Threads: 18
Thanks Received: 9
Thanks Given: 0
Joined: May 2016
Reputation: 4
I want to change some details during Terra's flashback that occurs when she faints in the Narshe's mines to better fit my hack's new story. While I managed to accomplish my main objective (Replacing Gesthal with Gogo in the speech segment) thanks to Zone Doctor, the event dump and hex editing (Changed graphical action from 2A to 19 in both CC/A518 and CC/A535), there are some NPC i want to add to the scenes, but i have some doubts how to do it due to fact this is an existing event. Here is my addictions with some screenshots taken from Zone Doctor to show the new NPC's placement:

Kefka Put Slave Crown on Terra Scene:
1) Cid will added to the scene: Placed near Terra in graphical action 04 when Kefka's dialogue pops up, it will change to graphical action 07 when Kefka starts to walk (No need to add a new dialogue)
[Image: KEyhDJL.png]
Gestahl's Speech
1) Gestahl placed near Kefka: Unlike Kefka and CO., he won't move.
2) Cid placed near Terra: His dummied dialogue ("This is my finest work....") will be restored and played after Gestahl's first one. He won't move.
3) Sprite 32, dressed up Gau (Changed to another character in my hack) added to the scene. He won't move.
[Image: 4vtUC2E.png]

Posts: 3,576
Threads: 261
Thanks Received: 644
Thanks Given: 258
Joined: Oct 2011
Reputation: 60
For Terra's Flashback, you first need to create your NPCs and show them. One way to add code is using the B2 command to call event code from elsewhere in the ROM. Let's say you place your new code at $F31122, then the B2 command parameters would be that offset calculated from $CA0000. $F3 - $CA = $29, so you could place a B2 22 11 29 at $CCA44F. At $F31122 you would place your two create object command you just overwrote (Create objects $1D and $1A) and after put the create object commands for your other NPCs and show object commands ($41) for those last two NPCs. Then end your new code with $FE. The show object commands for objects $1D and $1A are a bit later in code but that doesn't matter.

To insert an action when dialogue pops up, use the same B2 command at $CCA466. Put the overwritten command $5C, insert your GFX action for your NPC, then the dialogue one ($4B) and end new code with $FE.

When you use the B2 command, you can't split a command, meaning if you need to remove 5 or 6 bytes to fit your $B2 command ($B2 is always 4 bytes), do it and after the $B2 command put one or more $FD (dummy command) depending. $FD will act as a "nothing" in this case.

This is how I add event code, the rest is just following examples you have in the event dump. There's also great event resources on the wiki.

Posts: 263
Threads: 31
Thanks Received: 85
Thanks Given: 62
Joined: Feb 2017
Reputation: 19
One quick note is to start over now, before you do anything else. Any save using Zone Doctor will irreversibly corrupt your rom, specifically making the final battle scene event triggers not work. Use FF6LE. Zone Doctor is only kept around because of its event editor. We use it to mock up events, and then hand-code the hex via a hex editor. Note though that the event editor in Zone Doctor is ALSO very buggy. If you add code to a scene, it will switch every subroutine to point to the CA bank. (Possible places for events are CA, CB, CC.)

For the non-moving NPCs, when you add them through FF6LE, just set their initial facing to South. Then they should operate as needed. The way you get characters to move is through their object number. You can find that in either Zone Doctor or FF6LE.

Divergent Paths (Completed) - a redo of the 3 scenarios in the original game that gives equal time to each group. Meant to be a basis for future mods.
FFVI: Definitive Edition (In Progress) - a hack built off of Divergent Paths that changes the events in Thamasa to bring closure to Banon's story and allow Leo to permanently join your party.

Forum Jump:

Users browsing this thread: 1 Guest(s)

Theme by Madsiur2017Custom Graphics by JamesWhite