Users browsing this thread: 1 Guest(s)
Fight continue with a new invoke battle

#1
Posts: 145
Threads: 47
Thanks Received: 0
Thanks Given: 0
Joined: Jan 2020
Reputation: 0
Status
None
I know how to used Zone Doctor to create a new "Invoke battle....", its pretty easy. What not & confuse me is the "bytes left", because even if I manually delete from other Event# for space, it only apply to that #, not the overall. How do I free up space so I can induce the "game over" scripts under every new "Invoke battle". 


Also, how do I carry over the "status, summon used up, & etc" forward to the next battle, like during the Statues of Gods, without the "Change background layer...."?
  Find
Quote  

#2
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
You've got to be careful with Zone Doctor. Whenever you insert or delete a line from it, the program tries to dynamically update EVERY pointer in the game. Unfortunately, this causes it to scrub all of the banks from the pointers (so if it was originally pointing to CC/334A, for example, it instead points to CA/334A). This WILL break your game, which is why you want to use Zone Doctor to set up a layout, then manually change the hex in a separate copy of the ROM.

The best way I've found to free up space in the event code is to simplify conditional events, the sort of things where it says "If <event bit> is <set/clear>, branch to <thing>". Do a search on this site for PowerPanda's "Cyan's Uneventful Dream", which you can use as a guide for this sort of adjustment. Once you've got the free space, you need to tell the event script to jump to it. To insert a jump, find a bit of code near the segment you want to interrupt, copy it into your freespace, and then replace it in the original location with "B2 ZZ YY 0X" where 0XYYZZ is the address of the freespace (X=0 is CA, X=1 is CB, X=2 is CC). Just make sure your freespace code ends with a return command "FE".
...That code might actually work for any ROM address over CA, so you could hypothetically jump to free space outside the editable area of ZoneDoctor if you like.

As for maintaining battle variables, I think you're going to need to trigger a formation change in the battle script rather than the event script, like with the Senior Behemoth fight. Even if you do that, though, a formation change will still refresh the Summon command. I think you'd need to make some serious changes to the C2 battle loop to overcome that. I can't advise you in that regard, the battle initialization stuff makes my head spin.
  Find
Quote  
[-] The following 1 user says Thank You to C-Dude for this post:
  • doofenH (01-06-2020)

#3
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
My general advice would be to avoid Zone Doctor for any edit, but it's a good visualization tool.

(01-06-2020, 02:05 PM)C-Dude Wrote: ...That code might actually work for any ROM address over CA, so you could hypothetically jump to free space outside the editable area of ZoneDoctor if you like.

Yes, the B2 command can work for an offset anywhere past $CA0000. As an example calling event code at $EFC000 would be B2 00 C0 25.
  Find
Quote  

#4
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(01-06-2020, 02:05 PM)C-Dude Wrote: You've got to be careful with Zone Doctor.  Whenever you insert or delete a line from it, the program tries to dynamically update EVERY pointer in the game.  Unfortunately, this causes it to scrub all of the banks from the pointers (so if it was originally pointing to CC/334A, for example, it instead points to CA/334A).  This WILL break your game, which is why you want to use Zone Doctor to set up a layout, then manually change the hex in a separate copy of the ROM.
Oh my friend, Zone Doctor is FAR worse than that. If you open a rom and click "save", even without making any edits, it will irreversibly corrupt the event pointers for the final room of Kefka's layer (aka the Final Battle) and the Colosseum. From the moment you click save, your game will be un-completable, but you won't know until you hit the final room in your playthrough. It's pernicious.
Here's what I do: I use Zone Doctor's event editor to get the event the way I want it, then hand-copy the hex (which you can find on the bottom bar in Zone Doctor) via HxD. It takes a few minutes, but it's worth it.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite