Users browsing this thread: 5 Guest(s)
Pony Fantasy VI Remake

Posts: 732
Threads: 36
Thanks Received: 12
Thanks Given: 41
Joined: Jan 2016
Reputation: 6
Status
None
So, what would cause this? Event is unchanged, checked against vanilla.



  Find
Quote  

Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
The correct branching from event trigger is here. Check first if all this is the same as original:

Code:
CB/2A5B: C0    If ($1E80($172) [$1EAE, bit 2] is set), branch to $CA5EB3 (simply returns)
CB/2A61: B2    Call subroutine $CAC6AC
CB/2A65: B2    Call subroutine $CB2E34
CB/2A69: 31    Begin action queue for character $31 (Party Character 0), 2 bytes long
CB/2A6B: CD        Turn vehicle/entity right
CB/2A6C: FF        End queue
CB/2A6D: 32    Begin action queue for character $32 (Party Character 1), 4 bytes long
CB/2A6F: C2        Set vehicle/entity's event speed to normal
CB/2A70: A0        Move vehicle/entity right/up 1x1 tiles
CB/2A71: CE        Turn vehicle/entity down
CB/2A72: FF        End queue
CB/2A73: 33    Begin action queue for character $33 (Party Character 2), 4 bytes long
CB/2A75: C2        Set vehicle/entity's event speed to normal
CB/2A76: A1        Move vehicle/entity right/down 1x1 tiles
CB/2A77: CC        Turn vehicle/entity up
CB/2A78: FF        End queue
CB/2A79: 34    Begin action queue for character $34 (Party Character 3), 4 bytes long
CB/2A7B: C2        Set vehicle/entity's event speed to normal
CB/2A7C: 85        Move vehicle/entity right 2 tiles
CB/2A7D: CF        Turn vehicle/entity left
CB/2A7E: FF        End queue
CB/2A7F: 94    Pause for 60 units
CB/2A80: 4B    Display dialogue message $0661, wait for button press (At bottom of screen)
               That's odd…
               No Imperial soldiers…

The problem is with character $31, party character 0. Check this event which is called in the code I posted: $CAC6AC. Basically what it does is taking the first character present from Terra to Umaro and set the character as party leader. The 3 other spots are left empty. Check if your character 0 subroutine that set him as leader is correct (see $CAC6AC).

Finally in the code I posted there is a call to $CB2E34, check this too. Basically it enable all 4 character to pass through objects. What should happen is your leader doing the $CB2A69 queue, which is facing right on the event trigger.
  Find
Quote  

Posts: 732
Threads: 36
Thanks Received: 12
Thanks Given: 41
Joined: Jan 2016
Reputation: 6
Status
None
Compared your posted code and the three supplied addresses to vanilla, all are the same.
  Find
Quote  

Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
Well if it only happen only to some characters combination and party set up, maybe try to replicate it? If it only happen certain time with the specific setup, it would be interesting to see when the bug happen:

1) The value of $1EB4-$1EB5 and value of Y by setting an execute breakpoint on $C0BAAE and having a log up to $C0BAB5. Those event bits might be corrupted in some specific case which would be to be determined.

2) A full log of the event command $3C. When you trigger the bug, set a breakpoint at $C09D6D and stop logging at $C09DAA.

If command $3C does not break, the problem could be somewhere in the ASM code executed by event command $DE or $BE at $CAC6AC.
  Find
Quote  

Posts: 732
Threads: 36
Thanks Received: 12
Thanks Given: 41
Joined: Jan 2016
Reputation: 6
Status
None
I asked the guy if he can test it for me. In the meantime checked out the two LPers doing the game, when they enter the base with Terra/Twilight in the lead, no problem.

Their report, names changed to the vanilla.

Quote:The party combination I used when it happened was Setzer, Gau, and Edgar. It didn't matter what position Terra was, although having her in the lead prevents the glitch.

After doing some testing, I found that replacing Edgar with Sabin stops the glitch, but having a party of Locke, Sabin, and Cyan causes the glitch. Again, Terra leading stops the glitch.
  Find
Quote  

Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(12-02-2016, 11:44 PM)DrakeyC Wrote: I asked the guy if he can test it for me. In the meantime checked out the two LPers doing the game, when they enter the base with Terra/Twilight in the lead, no problem.

The best would probably he send you a save state or save file before the camp when the bug happen so we could do some debugging on this.
  Find
Quote  

Posts: 732
Threads: 36
Thanks Received: 12
Thanks Given: 41
Joined: Jan 2016
Reputation: 6
Status
None
I honestly don't have time to debug it personally, though.
  Find
Quote  

Posts: 732
Threads: 36
Thanks Received: 12
Thanks Given: 41
Joined: Jan 2016
Reputation: 6
Status
None
Another item being ignored by Optimize. Looking back at the solution before:

Code:
change:
ED/82E4: 66 82 24 65 83 9B 1C 12 16 33
to
ED/82E4: 66 82 24 65 83 9B 12 16 FF FF

then:

edit
C3/9834: CPX #$000A ; Tested 10?
to
C3/9834: CPX #$0008

The item in question to fix is the Thornlet, item 130, Hex 82. So I remove the 82 from the first bit and FF the spare byte at the end, and then make the 8 in the second bit a 7. Yes? Repeat steps appropriately to make other items work with Optimize properly?
  Find
Quote  

Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(12-08-2016, 01:59 PM)DrakeyC Wrote: So I remove the 82 from the first bit and FF the spare byte at the end, and then make the 8 in the second bit a 7. Yes?

Yes it make sense and should work.
  Find
Quote  

Posts: 732
Threads: 36
Thanks Received: 12
Thanks Given: 41
Joined: Jan 2016
Reputation: 6
Status
None
A minor thing. My Blue Dragon replacement is supposed to randomly scan the entire party for beneficial statuses and then do Rippler on them. Apparently though he only does his Rippler stuff once on his second turn and then never again.

Code:
[script #-1]   ; orig idx=338, "Squirk", nb. bytes=207
FC 15 24 00    ; If VAR036 has all the following bit cleared: 0
14             ; <MB>Flood
F9 01 24 00    ; VAR036 set bit: 0
FE             ; End If and reset targeting
FC 16 28 00    ; If the global battle timer is greater than 40
FB 04 00       ; Sets global battle timer to 0
14             ; <MB>Flood
FE             ; End If and reset targeting
FC 15 24 01    ; If VAR036 has all the following bit cleared: 1
FC 08 44 13    ; If target random ally is affected by status Haste
F1 36          ; Targeting: self
2C             ; <MG>Dispel
FB 0B 00       ; Monster gains hidden status: Dark
FB 0B 0E       ; Monster gains hidden status: Seizure
FB 0B 12       ; Monster gains hidden status: Slow
F1 44          ; Targeting: random ally
9E             ; Rippler
F9 01 24 01    ; VAR036 set bit: 1
FE             ; End If and reset targeting
FC 15 24 01    ; If VAR036 has all the following bit cleared: 1
FC 08 49 15    ; If target ally #2 is affected by status Shell
F1 36          ; Targeting: self
2C             ; <MG>Dispel
FB 0B 00       ; Monster gains hidden status: Dark
FB 0B 0E       ; Monster gains hidden status: Seizure
FB 0B 12       ; Monster gains hidden status: Slow
F1 44          ; Targeting: random ally
9E             ; Rippler
F9 01 24 01    ; VAR036 set bit: 1
FE             ; End If and reset targeting
FC 15 24 01    ; If VAR036 has all the following bit cleared: 1
FC 08 4A 16    ; If target ally #3 is affected by status Safe
F1 36          ; Targeting: self
2C             ; <MG>Dispel
FB 0B 00       ; Monster gains hidden status: Dark
FB 0B 0E       ; Monster gains hidden status: Seizure
FB 0B 12       ; Monster gains hidden status: Slow
F1 44          ; Targeting: random ally
9E             ; Rippler
F9 01 24 01    ; VAR036 set bit: 1
FE             ; End If and reset targeting
FC 15 24 01    ; If VAR036 has all the following bit cleared: 1
FC 08 44 11    ; If target random ally is affected by status Regen
F1 36          ; Targeting: self
2C             ; <MG>Dispel
FB 0B 00       ; Monster gains hidden status: Dark
FB 0B 0E       ; Monster gains hidden status: Seizure
FB 0B 12       ; Monster gains hidden status: Slow
F1 44          ; Targeting: random ally
9E             ; Rippler
F9 01 24 01    ; VAR036 set bit: 1
FE             ; End If and reset targeting
FC 06 36 EE    ; If target self has less or equal than 30464 HP
FC 0C 01 01    ; If variable VAR001 is less than to 1
FA 0B 00 00    ; Monsters palette flashes to yellow
FB 0B 13       ; Monster gains hidden status: Haste
FB 0B 16       ; Monster gains hidden status: Safe
FB 0B 15       ; Monster gains hidden status: Shell
F9 01 01 01    ; VAR001 set bit: 1
FE             ; End If and reset targeting
FC 0D 01 01    ; If variable VAR001 is greater than or equal to 1
F0 A9 14 14    ; Rand. spell: Acid Rain or <MB>Flood or <MB>Flood
FD             ; Wait until the attack sequence is called upon again, then continue (reset targeting)
F0 0B 8D 8D    ; Rand. spell: <MB>Wave or Tidal Wave or Tidal Wave
F9 02 24 01    ; VAR036 clear bit: 1
FE             ; End If and reset targeting
F0 8D 0B 0B    ; Rand. spell: Tidal Wave or <MB>Wave or <MB>Wave
FD             ; Wait until the attack sequence is called upon again, then continue (reset targeting)
F0 6F 6F A9    ; Rand. spell: El Nino or El Nino or Acid Rain
F9 02 24 01    ; VAR036 clear bit: 1
FF             ; End first wave of attack
FC 12 00 00    ; If following monster is/are dead:
F5 0C 01 00    ; Monsters  are killed, dies like a boss
FE             ; End If and reset targeting
FC 05 00 00    ; If monster has been attacked
F0 EF EF FE    ; Rand. spell: Special or Special or Nothing
FF             ; End
  Find
Quote  



Forum Jump:

Users browsing this thread: 5 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite