FF6 Hacking
Pony Fantasy VI Remake - Printable Version

+- FF6 Hacking (https://www.ff6hacking.com/forums)
+-- Forum: Discussion Forums (https://www.ff6hacking.com/forums/forum-5.html)
+--- Forum: Dragons' Den (https://www.ff6hacking.com/forums/forum-13.html)
+--- Thread: Pony Fantasy VI Remake (/thread-3106.html)



RE: Pony Fantasy VI Remake - DrakeyC - 02-21-2016

Okay. So now what?

[Image: Alex_zpsrpjmgpjf.png]


RE: Pony Fantasy VI Remake - madsiur - 02-21-2016

Second sentence and post edit:

https://www.ff6hacking.com/forums/showthread.php?tid=3106&pid=29330#pid29330

Edit: 6AC3 is your pointer. It leads to the following esper magic casting I think (no good). You may want to check if another animation pointer is loaded. When you hit the same breakpoint, press "run", if the game stops again, it mean you hit the same breakpoint again (or another one set). I suggest you set all three breakpoint in case it would break on any of the other two for the esper script pointer.

Code:
D0/6AC3: 00 20                    speed 1, align to center of character/monster
D0/6AC5: B1 FF                    set sprite animation palette color subtraction to 31 (black)
D0/6AC7: DB 03                    branch to $6ACC if character already stepped forward to attack
D0/6AC9: BF 67 70                 jump to subroutine $7067
D0/6ACC: 81 07 07                 change attacker graphic to 7 (jumping)
D0/6ACF: 80 86 00                 play sound effect $00 (pan to thread x position)
D0/6AD2: 89 07                    loop start (7 times)
D0/6AD4: B8 F4                    decrease sprite animation palette color subtraction by 4 (black)
D0/6AD6: 0F                       [$0F]
D0/6AD7: 8A                       loop end
D0/6AD8: 89 17                    loop start (23 times)
D0/6ADA: 0F                       [$0F]
D0/6ADB: 8A                       loop end
D0/6ADC: 89 07                    loop start (7 times)
D0/6ADE: B8 E4                    increase sprite animation palette color subtraction by 4 (black)
D0/6AE0: 0F                       [$0F]
D0/6AE1: 8A                       loop end
D0/6AE2: 81 00 00                 change attacker graphic to 0 (no action)
D0/6AE5: FF                       end of script



RE: Pony Fantasy VI Remake - DrakeyC - 02-21-2016

Well, I did the second sentence already. How I got this far, I thought. Now I'm not sure.

For the edit - presuming that FC6A is the pointer in the above screenshot, that takes me here.

[Image: Alex_zpsl8gcl5qd.png]

EDIT - Thank you. I'll play around with that and see what happens.

EDIT x2 - No, that's the wrong pointer. That's for the summon animation itself, with the step forward and the red orbs, etc. I replaced various bits with F1 to change the party member's animation in different ways, but the Alexander animation itself did not change.

EDIT x3 - Ah, you found that about the same time I did, I guess. As for the breakpoints - I did run it with all three.


RE: Pony Fantasy VI Remake - madsiur - 02-21-2016

(02-21-2016, 03:05 PM)DrakeyC Wrote: As for the breakpoints - I did run it with all three.

Check the other two pointers and look in the script document at D0/0000 + BBAA, where BBAA is your pointer found (originally under AABB format).


RE: Pony Fantasy VI Remake - DrakeyC - 02-21-2016

Which script document? The pastebin?

If you mean this, what am I looking for?

https://www.ff6hacking.com/documents/battle_anim_script.txt


RE: Pony Fantasy VI Remake - madsiur - 02-21-2016

Yes that is the document. I think it's the third time I mention in different way to take your pointer and go in the document to D0/XXXX, where XXXX is the pointer. I dunno how to explain it in a simpler way.


RE: Pony Fantasy VI Remake - DrakeyC - 02-21-2016

What value is XXXX? If you mean 2045, here's what's there.

][Image: Alex_zpsesxd7sbw.png]


RE: Pony Fantasy VI Remake - madsiur - 02-21-2016

Read the edit from the third sentence, you even said yourself it did break on two other occasions. Get both pointers. I did not opened a debugger since 2 weeks, I have no idea of the two other pointers values. 2045 was an example to make your understand you have to invert both bytes.

https://www.ff6hacking.com/forums/showthread.php?tid=3106&pid=29341#pid29341


RE: Pony Fantasy VI Remake - DrakeyC - 02-21-2016

But, you linked what's just the casting animation. You said that isn't what we need. And based on what I saw, it isn't.



Okay, I'm just gonna give up. I have no idea what I'm doing even as I follow your instructions. I'm sorry you wasted your time on me, I really am. Thank you for trying, though.


RE: Pony Fantasy VI Remake - madsiur - 02-21-2016

Yes, you don't really have an idea of what you are doing and in this context you'll get lost whatever method or path I use for explaining. I did this myself and maybe you should try to find the element that links all three infos, for next time or understanding the link between pointers fetching / pointers data / offset the pointers point to:

Pointers that are fetched (pressing 6 more times on "run" would have get you this)

Code:
$C1/B2BF BF D8 EA D1 LDA $D1EAD8,x[$D1:ECE0] A:0208 X:0208 Y:0000 P:envmxdIzc
$C1/B2BF BF D8 EA D1 LDA $D1EAD8,x[$D1:ECE0] A:0208 X:0208 Y:0000 P:envmxdIzc
$C1/B2BF BF D8 EA D1 LDA $D1EAD8,x[$D1:ECE0] A:0208 X:0208 Y:0000 P:envmxdIzc
$C1/B2BF BF D8 EA D1 LDA $D1EAD8,x[$D1:ECE4] A:020C X:020C Y:0000 P:envmxdIzc
$C1/B2BF BF D8 EA D1 LDA $D1EAD8,x[$D1:ECE2] A:020A X:020A Y:0000 P:envmxdIzc
$C1/B2BF BF D8 EA D1 LDA $D1EAD8,x[$D1:ECE6] A:020E X:020E Y:0000 P:envmxdIzc

The pointers
D1/ECE0: 1B 4F
D1/ECE2: 2B 4F
D1/ECE4: 8C 4F
D1/ECE6: C0 4F

The Scripts
And yes, a search for the attack name (Justice) would have got you there in the first place. (I feel stupid now...)

Code:
; [ Animation Script $0104: Justice (sprite) ]

D0/4F1B: 00 A0                    speed 1, align to center of screen
D0/4F1D: 89 CE                    loop start (206 times)
D0/4F1F: 1F                       [---]
D0/4F20: 8A                       loop end
D0/4F21: 89 20                    loop start (32 times)
D0/4F23: 80 3B                    change target's color palette to animation palette
D0/4F25: 1F                       [---]
D0/4F26: 80 3C                    restore target's color palette
D0/4F28: 1F                       [---]
D0/4F29: 8A                       loop end
D0/4F2A: FF                       end of script

; [ Animation Script $0105: Justice (bg3) ]

D0/4F2B: 30 A0                    speed 4, align to center of screen
D0/4F2D: C4 40                    move bg3 thread to this thread's position
D0/4F2F: 83 3F                    move down 32
D0/4F31: 83 3F                    move down 32
D0/4F33: 89 0F                    loop start (15 times)
D0/4F35: 83 C1                    move up 2
D0/4F37: 00                       [$00]
D0/4F38: 8A                       loop end
D0/4F39: 89 0F                    loop start (15 times)
D0/4F3B: 83 21                    move down 2
D0/4F3D: 00                       [$00]
D0/4F3E: 8A                       loop end
D0/4F3F: 89 10                    loop start (16 times)
D0/4F41: 09                       [$09]
D0/4F42: 8A                       loop end
D0/4F43: 80 2C 76                 load animation palette $76 (bg3)
D0/4F46: F7 A0                    wait until scanline 160
D0/4F48: D4 02 04 13              add (sprites, bg2, bg1) to (bg3)
D0/4F4C: 80 38                    enable high priority bg3
D0/4F4E: C4 40                    move bg3 thread to this thread's position
D0/4F50: C9 12                    play sound effect $12
D0/4F52: 03                       [$03]
D0/4F53: 04                       [$04]
D0/4F54: 89 04                    loop start (4 times)
D0/4F56: 05                       [$05]
D0/4F57: 8A                       loop end
D0/4F58: 83 87                    move back 8
D0/4F5A: 89 08                    loop start (8 times)
D0/4F5C: 06                       [$06]
D0/4F5D: 07                       [$07]
D0/4F5E: 08                       [$08]
D0/4F5F: 8A                       loop end
D0/4F60: AA E0                    set bg3 animation palette color subtraction to 0 (black)
D0/4F62: 84 01                    set animation speed to 2
D0/4F64: 89 04                    loop start (4 times)
D0/4F66: 06                       [$06]
D0/4F67: 06                       [$06]
D0/4F68: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F6A: 06                       [$06]
D0/4F6B: 06                       [$06]
D0/4F6C: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F6E: 06                       [$06]
D0/4F6F: 06                       [$06]
D0/4F70: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F72: 07                       [$07]
D0/4F73: 07                       [$07]
D0/4F74: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F76: 07                       [$07]
D0/4F77: 07                       [$07]
D0/4F78: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F7A: 07                       [$07]
D0/4F7B: 07                       [$07]
D0/4F7C: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F7E: 08                       [$08]
D0/4F7F: 08                       [$08]
D0/4F80: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F82: 08                       [$08]
D0/4F83: 08                       [$08]
D0/4F84: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F86: 08                       [$08]
D0/4F87: 08                       [$08]
D0/4F88: B4 E1                    increase bg3 animation palette color subtraction by 1 (black)
D0/4F8A: 8A                       loop end
D0/4F8B: FF                       end of script

; [ Animation Script $0106: Justice (bg1) ]

D0/4F8C: 00 A0                    speed 1, align to center of screen
D0/4F8E: D1 01                    invalidate character/monster sprite priority
D0/4F90: C4 80                    move bg1 thread to this thread's position
D0/4F92: 89 04                    loop start (4 times)
D0/4F94: 83 9F                    move back 32
D0/4F96: 8A                       loop end
D0/4F97: C9 00                    play default sound effect
D0/4F99: 83 3F                    move down 32
D0/4F9B: 83 3F                    move down 32
D0/4F9D: 83 3F                    move down 32
D0/4F9F: 83 3F                    move down 32
D0/4FA1: 83 3F                    move down 32
D0/4FA3: 00                       [$00]
D0/4FA4: BD A0                    hide bg1 thread
D0/4FA6: 89 27                    loop start (39 times)
D0/4FA8: 83 C1                    move up 2
D0/4FAA: 83 60                    move forward 1
D0/4FAC: 00                       [$00]
D0/4FAD: 83 C1                    move up 2
D0/4FAF: 83 80                    move back 1
D0/4FB1: 00                       [$00]
D0/4FB2: 8A                       loop end
D0/4FB3: 89 67                    loop start (103 times)
D0/4FB5: 00                       [$00]
D0/4FB6: 8A                       loop end
D0/4FB7: 89 40                    loop start (64 times)
D0/4FB9: 00                       [$00]
D0/4FBA: 8A                       loop end
D0/4FBB: 89 1F                    loop start (31 times)
D0/4FBD: 00                       [$00]
D0/4FBE: 8A                       loop end
D0/4FBF: FF                       end of script

; [ Animation Script $0107: Justice (extra) ]

D0/4FC0: 00 A0                    speed 1, align to center of screen
D0/4FC2: CD FF                    set bg1 animation palette color addition to 31 (white)
D0/4FC4: B2 FF                    set sprite animation palette color addition to 31 (white)
D0/4FC6: EB                       jump based on thread ($4FCD, $4FDC, $5001)
D0/4FCD: 83 21                    move down 2
D0/4FCF: 83 41                    move down/back 2
D0/4FD1: 89 7E                    loop start (126 times)
D0/4FD3: 1F                       [---]
D0/4FD4: 8A                       loop end
D0/4FD5: 84 01                    set animation speed to 2
D0/4FD7: 8B 09                    animated loop start (9 times, increment frame offset each time)
D0/4FD9: 01                       [$01]
D0/4FDA: 8C                       animated loop end
D0/4FDB: FF                       end of script