285
« on: April 30, 2015, 09:04:20 PM »
Thanks fellows! With the Job System raring to go I'm now in the progress of creating the routine for the 72 new spells (note, this does not mean 72 new routines, or else I would be at that step forever...) to make sure each character will be receiving a robust spell book where each character will feel and play unique. (I'm hoping). With Rydia, what I'm likely going to do is have several of her summons learned through her Jobs, things like Chocobo, the three Elemental Summons, and Titan for instance. If I can ever grasp what Chillyfeez did with changing Summon Monsters, I would even plan on changing Imp, Bomb, Roc, and Mage summons for something else to mix it up. Ideally I would also like to turn Asura into different summons, but that would involve finding out what causes her summon formation to cycle through her masks in the first place, which sounds like a lot of work.
As for now I'm looking at another lesser explored portion, that which decides what graphics or palettes to attach to characters when falling under status.
What I've learned...
7EF015-18 looks to be what the game looks at (for the first slot) to determine what state that character is in and from there I can distinguish all else...
In any case this is some great fodder for new additions for FF4kster!
Status Graphical Effects on Characters
$02/DE9A B9 15 F0 LDA $F015,y[$7E:F015] A:0001 X:0000 Y:0000 P:envMxdIzC - Load Status Byte 1 into A.
$02/DE9D 85 0E STA $0E [$00:000E] A:0001 X:0000 Y:0000 P:envMxdIzC - Store it in 0E (rinse and repeat thrice more)
$02/DE9F B9 16 F0 LDA $F016,y[$7E:F016] A:0001 X:0000 Y:0000 P:envMxdIzC
$02/DEA2 85 0F STA $0F [$00:000F] A:0000 X:0000 Y:0000 P:envMxdIZC
$02/DEA4 B9 17 F0 LDA $F017,y[$7E:F017] A:0000 X:0000 Y:0000 P:envMxdIZC
$02/DEA7 85 10 STA $10 [$00:0010] A:0000 X:0000 Y:0000 P:envMxdIZC
$02/DEA9 B9 18 F0 LDA $F018,y[$7E:F018] A:0000 X:0000 Y:0000 P:envMxdIZC
$02/DEAC 85 11 STA $11 [$00:0011] A:0000 X:0000 Y:0000 P:envMxdIZC
$02/DEAE A5 0E LDA $0E [$00:000E] A:0000 X:0000 Y:0000 P:envMxdIZC - Load Status Byte 1 from 0E.
$02/DEB0 29 80 AND #$80 A:0001 X:0000 Y:0000 P:envMxdIzC - Is it KO'ed?
$02/DEB2 F0 0A BEQ $0A [$DEBE] A:0000 X:0000 Y:0000 P:envMxdIZC - If not, branch.
------------------------------------------------------------------------------------------------------
$02/DEB4 E6 64 INC $64 [$00:0064] A:0080 X:0000 Y:0000 P:eNvMxdIzC - Add +1 to 64.
$02/DEB6 A9 09 LDA #$09 A:0080 X:0000 Y:0000 P:envMxdIzC - Load Swoon into A
$02/DEB8 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0009 X:0000 Y:0000 P:envMxdIzC - Store A in Pose Byte.
$02/DEBB 4C DB DF JMP $DFDB [$02:DFDB] A:0009 X:0000 Y:0000 P:envMxdIzC - Ignore all other Status Graphics.
-----------------------------------------------------------------------------------------------------------
$02/DEBE A5 0E LDA $0E [$00:000E] A:0000 X:0000 Y:0000 P:envMxdIZC - Load Status Byte 1.
$02/DEC0 29 40 AND #$40 A:0001 X:0000 Y:0000 P:envMxdIzC - Is it Stone?
$02/DEC2 F0 0E BEQ $0E [$DED2] A:0000 X:0000 Y:0000 P:envMxdIZC - If not, branch.
---------------------------------------------------------------------------------------
$02/DEC6 A9 03 LDA #$03 A:0040 X:0000 Y:0000 P:envMxdIzc - Load something into A. (It colors the body, gray, but different values have different shades of coloration)
$02/DEC8 9D CC EF STA $EFCC,x[$7E:EFCC] A:0003 X:0000 Y:0000 P:envMxdIzc - Store A in Stone-Color Area?
$02/DECB 1A INC A A:0003 X:0000 Y:0000 P:envMxdIzc - +1 to A.
$02/DECC 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store Pose of Crouching into Pose Byte.
$02/DECF 4C DB DF JMP $DFDB [$02:DFDB] A:0004 X:0000 Y:0000 P:envMxdIzc - Ignore all other status graphics.
-----------------------------------------------------------------------------------
$02/DED2 A5 0F LDA $0F [$00:000F] A:0000 X:0000 Y:0000 P:envMxdIZC - Load Status Byte 2
$02/DED4 29 03 AND #$03 A:0000 X:0000 Y:0000 P:envMxdIZC - Keep 1/3 and 2/3 Petrified.
$02/DED6 9D CC EF STA $EFCC,x[$7E:EFCC] A:0000 X:0000 Y:0000 P:envMxdIZC - Store A in 7EEFCC
$02/DED9 A5 0E LDA $0E [$00:000E] A:0000 X:0000 Y:0000 P:envMxdIZC - Load Status Byte 1 into A
$02/DEDB 29 01 AND #$01 A:0001 X:0000 Y:0000 P:envMxdIzC - Is it Poison?
$02/DEDD F0 08 BEQ $08 [$DEE7] A:0001 X:0000 Y:0000 P:envMxdIzC - If not, branch.
---------------------------------------------------------------------------------------------
$02/DEDF 20 D9 DA JSR $DAD9 [$02:DAD9] A:0001 X:0000 Y:0000 P:envMxdIzC - Jump to Subroutine
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$02/DAD9 DA PHX A:0001 X:0000 Y:0000 P:envMxdIzC - Push X onto Stack
$02/DADA A5 47 LDA $47 [$00:0047] A:0001 X:0000 Y:0000 P:envMxdIzC - Load A from 47.
$02/DADC 18 CLC A:0000 X:0000 Y:0000 P:envMxdIZC - Clear Carry.
$02/DADD 69 09 ADC #$09 A:0000 X:0000 Y:0000 P:envMxdIZc - Add 09 into A.
$02/DADF C2 20 REP #$20 A:0009 X:0000 Y:0000 P:envMxdIzc - Set A to 16 Bits
$02/DAE1 0A ASL A A:0009 X:0000 Y:0000 P:envmxdIzc
$02/DAE2 0A ASL A A:0012 X:0000 Y:0000 P:envmxdIzc
$02/DAE3 0A ASL A A:0024 X:0000 Y:0000 P:envmxdIzc
$02/DAE4 0A ASL A A:0048 X:0000 Y:0000 P:envmxdIzc
$02/DAE5 0A ASL A A:0090 X:0000 Y:0000 P:envmxdIzc A x20
$02/DAE6 AA TAX A:0120 X:0000 Y:0000 P:envmxdIzc - Transfer A to X.
$02/DAE7 A9 7D F6 LDA #$F67D A:0120 X:0120 Y:0000 P:envmxdIzc - Load Changed Skin Palette into A..
$02/DAEA 9D 56 ED STA $ED56,x[$7E:EE76] A:F67D X:0120 Y:0000 P:eNvmxdIzc - Store A in ?Palette Area?
$02/DAED A9 30 7D LDA #$7D30 A:F67D X:0120 Y:0000 P:eNvmxdIzc - Load 2nd Changed Skin Palette into A.
$02/DAF0 9D 58 ED STA $ED58,x[$7E:EE78] A:7D30 X:0120 Y:0000 P:envmxdIzc - Store A in ?Palette Area?
$02/DAF3 7B TDC A:7D30 X:0120 Y:0000 P:envmxdIzc - Set A to 00 (normally)
$02/DAF7 E2 20 SEP #$20 A:0000 X:0120 Y:0000 P:envmxdIZc - Set A to 8 Bits.
$02/DAF9 FA PLX A:0000 X:0120 Y:0000 P:envMxdIZc - Pull X
$02/DAFA 60 RTS A:0000 X:0000 Y:0000 P:envMxdIZc - Return
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$02/DEE2 A9 04 LDA #$04 A:0000 X:0000 Y:0000 P:envMxdIZc - Load !Pose! into A. (Finally! Poison should not be enough to kneel!)
$02/DEE4 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in (what must be the poses area)
-----------------------------------------------------------------------------------------------------------
$02/DEE7 A5 10 LDA $10 [$00:0010] A:0001 X:0000 Y:0000 P:envMxdIzc - Load Status Byte 3 into A.
$02/DEE9 29 01 AND #$01 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Count?
$02/DEEB F0 12 BEQ $12 [$DEFF] A:0000 X:0000 Y:0000 P:envMxdIZc - If not, branch.
----------------------------------------------------------------------------------------------------------
$02/DEED 5A PHY A:0001 X:0000 Y:0000 P:envMxdIzc - Push Y onto Stack.
$02/DEEE A5 47 LDA $47 [$00:0047] A:0001 X:0000 Y:0000 P:envMxdIzc - Load A from 47.
$02/DEF0 A8 TAY A:0000 X:0000 Y:0000 P:envMxdIZc - Transfer A to Y.
$02/DEF1 B9 AF F0 LDA $F0AF,y[$7E:F0AF] A:0000 X:0000 Y:0000 P:envMxdIZc - Load F0AF into A.
$02/DEF4 D0 08 BNE $08 [$DEFE] A:0000 X:0000 Y:0000 P:envMxdIZc - If not 00, branch.
-----------------------------------------------------------------------------------------
$02/DEF6 7A PLY A:0000 X:0000 Y:0000 P:envMxdIZc - Pull Y from Stack.
$02/DEF7 22 AE EA 01 JSL $01EAAE[$01:EAAE] A:0000 X:0000 Y:0000 P:envMxdIZc - Jump Long to Subroutine
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$01/EAAE DA PHX A:0000 X:0000 Y:0000 P:envMxdIZc - Push X onto Stack
$01/EAAF A5 47 LDA $47 [$00:0047] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from 47.
$01/EAB1 AA TAX A:0000 X:0000 Y:0000 P:envMxdIZc - Transfer A to X.
$01/EAB2 BF 17 FD 0D LDA $0DFD17,x[$0D:FD17] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from 0DFD17.
$01/EAB6 AA TAX A:0000 X:0000 Y:0000 P:envMxdIZc - Transfer A to X.
$01/EAB7 BD 16 2A LDA $2A16,x[$7E:2A16] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from 7E2A16.
$01/EABA AA TAX A:0000 X:0000 Y:0000 P:envMxdIZc - Transfer A to X.
$01/EABB 86 1C STX $1C [$00:001C] A:0000 X:0000 Y:0000 P:envMxdIZc - Store X in 1C.
$01/EABD A2 0A 00 LDX #$000A A:0000 X:0000 Y:0000 P:envMxdIZc - Load 000A into X.
$01/EAC0 86 1E STX $1E [$00:001E] A:0000 X:000A Y:0000 P:envMxdIzc - Store X in 1E.
$01/EAC2 20 7D EA JSR $EA7D [$01:EA7D] A:0000 X:000A Y:0000 P:envMxdIzc - Jump to Subroutine (Cleaning)
$01/EAC5 A5 22 LDA $22 [$00:0022] A:0000 X:000A Y:0000 P:envMxdIzc - Load A from 22.
$01/EAC7 18 CLC A:0000 X:000A Y:0000 P:envMxdIZc - Clear Carry.
$01/EAC8 69 70 ADC #$70 A:0000 X:000A Y:0000 P:envMxdIZc - Add 70 onto a. (Base graphic number of the 1st Doom Digit)
$01/EACA 8D 7A F0 STA $F07A [$7E:F07A] A:0070 X:000A Y:0000 P:envMxdIzc - Store A in F07A.
$01/EACD A5 20 LDA $20 [$00:0020] A:0070 X:000A Y:0000 P:envMxdIzc - Load A from 20.
$01/EACF 18 CLC A:0000 X:000A Y:0000 P:envMxdIZc - Clear Carry.
$01/EAD0 69 70 ADC #$70 A:0000 X:000A Y:0000 P:envMxdIZc - Add 70 onto A. (Basic graphic number of the 2nd Doom Digit.
$01/EAD2 8D 79 F0 STA $F079 [$7E:F079] A:0070 X:000A Y:0000 P:envMxdIzc - Store A in F079.
$01/EAD5 FA PLX A:0070 X:000A Y:0000 P:envMxdIzc - Pull X from Stack.
$01/EAD6 A9 04 LDA #$04 A:0070 X:0000 Y:0000 P:envMxdIZc - Load Crouching into A.
$01/EAD8 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
$01/EADB A9 09 LDA #$09 A:0004 X:0000 Y:0000 P:envMxdIzc - Load Count Numbers above head into A.
$01/EADD 8D 78 F0 STA $F078 [$7E:F078] A:0009 X:0000 Y:0000 P:envMxdIzc - Store A in Status Special Graphic Display.
$01/EAE0 6B RTL A:0009 X:0000 Y:0000 P:envMxdIzc - Return from Long.
$02/DEFB 4C CD DF JMP $DFCD [$02:DFCD] A:0009 X:0000 Y:0000 P:envMxdIzc - Ignore all other Status Graphics.
------------------------------------------------------------------------------------------------------------
$02/DEFF A5 10 LDA $10 [$00:0010] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 3 into A.
$02/DF01 29 80 AND #$80 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Magnetized?
$02/DF03 F0 0B BEQ $0B [$DF10] A:0000 X:0000 Y:0000 P:envMxdIZc - If not, branch.
---------------------------------------------------------------------------------------------------------
$02/DF05 A9 04 LDA #$04 A:0080 X:0000 Y:0000 P:eNvMxdIzc - Load Crouching into A.
$02/DF07 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
$02/DF0A 8D 78 F0 STA $F078 [$7E:F078] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Special Status Graphic Byte.
$02/DF0D 4C CD DF JMP $DFCD [$02:DFCD] A:0004 X:0000 Y:0000 P:envMxdIzc - Ignore all other Status Graphics.
---------------------------------------------------------------------------------------------------------
$02/DF10 A5 0E LDA $0E [$00:000E] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 1 into A.
$02/DF12 29 04 AND #$04 A:0001 X:0000 Y:0000 P:envMxdIzc - Is it Mute?
$02/DF14 F0 0D BEQ $0D [$DF23] A:0000 X:0000 Y:0000 P:env - If not, branch.
---------------------------------------------------------------------------------------------------------
$02/DF16 A9 04 LDA #$04 A:0004 X:0000 Y:0000 P:envMxdIzc - Load Crouching into A.
$02/DF18 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
$02/DF1B A9 01 LDA #$01 A:0004 X:0000 Y:0000 P:envMxdIzc - Load 01 into A.
$02/DF1D 8D 78 F0 STA $F078 [$7E:F078] A:0001 X:0000 Y:0000 P:envMxdIzc - Store A in Special Status Graphic.
$02/DF20 4C CD DF JMP $DFCD [$02:DFCD] A:0001 X:0000 Y:0000 P:envMxdIzc - Ignore all other Status Graphics.
-------------------------------------------------------------------------------------------------------------
$02/DF23 A5 0E LDA $0E [$00:000E] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 1 into A.
$02/DF25 29 02 AND #$02 A:0001 X:0000 Y:0000 P:envMxdIzc - Is it Blind?
$02/DF27 F0 0D BEQ $0D [$DF36] A:0000 X:0000 Y:0000 P:envMxdIZc - If not, branch.
-----------------------------------------------------------------------------------------------------------
$02/DF29 A9 04 LDA #$04 A:0002 X:0000 Y:0000 P:envMxdIzc - Load Crouching into A.
$02/DF2B 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
$02/DF2E A9 02 LDA #$02 A:0004 X:0000 Y:0000 P:envMxdIzc - Load Blind Eyes into A
$02/DF30 8D 78 F0 STA $F078 [$7E:F078] A:0002 X:0000 Y:0000 P:envMxdIzc - Store A in Special Status Graphic.
$02/DF33 4C CD DF JMP $DFCD [$02:DFCD] A:0002 X:0000 Y:0000 P:envMxdIzc - Ignore all other Status Graphic.
------------------------------------------------------------------------------------------------------------
$02/DF36 A5 0F LDA $0F [$00:000F] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 2 into A.
$02/DF38 29 80 AND #$80 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Curse?
$02/DF3A F0 0C BEQ $0C [$DF48] A:0000 X:0000 Y:0000 P:envMxdIZc - If not, branch.
-----------------------------------------------------------------------------------------------------------
$02/DF3C A9 04 LDA #$04 A:0080 X:0000 Y:0000 P:eNvMxdIzC - Load Crouching into A.
$02/DF3E 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzC - Store A in Pose Byte.
$02/DF41 0A ASL A A:0004 X:0000 Y:0000 P:envMxdIzC - x2 A (Skull)
$02/DF42 8D 78 F0 STA $F078 [$7E:F078] A:0008 X:0000 Y:0000 P:envMxdIzc - Store A in Special Status Graphic.
$02/DF45 4C CD DF JMP $DFCD [$02:DFCD] A:0008 X:0000 Y:0000 P:envMxdIzc - Ignore all other Status Graphic.
----------------------------------------------------------------------------------------------------------
$02/DF49 A5 47 LDA $47 [$00:0047] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from 0047.
$02/DF4B A8 TAY A:0000 X:0000 Y:0000 P:envMxdIZc - Transfer A to Y.
$02/DF4C B9 AF F0 LDA $F0AF,y[$7E:F0AF] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from 7EF0AF.
$02/DF4F F0 04 BEQ $04 [$DF55] A:0000 X:0000 Y:0000 P:envMxdIZc - Branch if 00.
----------------------------------------------------
------------------------------------------------------
$02/DF55 7A PLY A:0000 X:0000 Y:0000 P:envMxdIZc - Pull Y from Stack
$02/DF56 A5 0F LDA $0F [$00:000F] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 2 into A.
$02/DF58 29 20 AND #$20 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Paralyze?
$02/DF5A F0 0D BEQ $0D [$DF69] A:0000 X:0000 Y:0000 P:envMxdIZc - If not, branch.
----------------------------------------------------
$02/DF5C E6 64 INC $64 [$00:0064] A:0020 X:0000 Y:0000 P:envMxdIzc - +1 to 64.
$02/DF5E A9 04 LDA #$04 A:0020 X:0000 Y:0000 P:envMxdIzc - Load Crouching/Paralysis Waves into A.
$02/DF60 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
$02/DF63 8D 78 F0 STA $F078 [$7E:F078] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Special Status Graphic
$02/DF66 4C CD DF JMP $DFCD [$02:DFCD] A:0004 X:0000 Y:0000 P:envMxdIzc - Ignore other Status Graphics.
-----------------------------------------------
$02/DF69 A5 0F LDA $0F [$00:000F] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 2 into A.
$02/DF6B 29 10 AND #$10 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Sleep?
$02/DF6D F0 0E BEQ $0E [$DF7D] A:0000 X:0000 Y:0000 P:envMxdIZc - Branch if not.
-----------------------------------
$02/DF6F E6 64 INC $64 [$00:0064] A:0010 X:0000 Y:0000 P:envMxdIzc - +1 to 64.
$02/DF71 A9 04 LDA #$04 A:0010 X:0000 Y:0000 P:envMxdIzc - Load Crouching into A.
$02/DF73 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
$02/DF76 1A INC A A:0004 X:0000 Y:0000 P:envMxdIzc - +1 to A (Sleep Bubble)
$02/DF77 8D 78 F0 STA $F078 [$7E:F078] A:0005 X:0000 Y:0000 P:envMxdIzc - Store A in Special Graphic Data.
$02/DF7A 4C CD DF JMP $DFCD [$02:DFCD] A:0005 X:0000 Y:0000 P:envMxdIzc - Ignore Other Status (except now they're wasting bytes, since they can Branch to them since they're now in range)
------------------------------------
$02/DF7D A5 0F LDA $0F [$00:000F] A:0000 X:0000 Y:0000 P:envMxdIZc- Load Status Byte 2.
$02/DF7F 29 08 AND #$08 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Charm?
$02/DF81 F0 0A BEQ $0A [$DF8D] A:0000 X:0000 Y:0000 P:envMxdIZc - If not, branch.
--------------------------------
$02/DF83 E6 64 INC $64 [$00:0064] A:0008 X:0000 Y:0000 P:envMxdIzc - +1 to 64.
$02/DF85 A9 07 LDA #$07 A:0008 X:0000 Y:0000 P:envMxdIzc - Load Confusion Circles into A.
$02/DF87 8D 78 F0 STA $F078 [$7E:F078] A:0007 X:0000 Y:0000 P:envMxdIzc - Store A in Special Status Graphic.
$02/DF8A 4C CD DF JMP $DFCD [$02:DFCD] A:0007 X:0000 Y:0000 P:envMxdIzc - Ignore Other Status (Copy and paste fellows, copy and paste...)
-----------------------------------
$02/DF8D A5 0F LDA $0F [$00:000F] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 2.
$02/DF8F 29 40 AND #$40 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Float?
$02/DF91 F0 2B BEQ $2B [$DFBE] A:0000 X:0000 Y:0000 P:envMxdIZc - Branch if not.
--------------------------------------------
02/DF93 AD 2D 35 LDA $352D [$7E:352D] A:0040 X:0000 Y:0000 P:envMxdIzc - Load A from 7E352D into A.
$02/DF96 D0 26 BNE $26 [$DFBE] A:0000 X:0000 Y:0000 P:envMxdIZc - - If not 00, branch.
$02/DF98 A5 64 LDA $64 [$00:0064] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from 64.
$02/DF9A D0 22 BNE $22 [$DFBE] A:0000 X:0000 Y:0000 P:envMxdIZc - If not 00, branch.
$02/DF9C DA PHX A:0000 X:0000 Y:0000 P:envMxdIZc - Push X onto Stack.
$02/DF9D A9 04 LDA #$04 A:0000 X:0000 Y:0000 P:envMxdIZc - Load 04 into A. (Velocity of the bouncing with Float)
$02/DF9F 85 1E STA $1E [$00:001E] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in 1E.
$02/DFA1 A5 47 LDA $47 [$00:0047] A:0004 X:0000 Y:0000 P:envMxdIzc - Load A from 47.
$02/DFA3 0A ASL A A:0000 X:0000 Y:0000 P:envMxdIZc - x2 A
$02/DFA4 0A ASL A A:0000 X:0000 Y:0000 P:envMxdIZc - x2 A
$02/DFA5 18 CLC A:0000 X:0000 Y:0000 P:envMxdIZc - Clear Carry.
$02/DFA6 6D 13 18 ADC $1813 [$7E:1813] A:0000 X:0000 Y:0000 P:envMxdIZc - Add... something from some out of battle area?
$02/DFA9 0A ASL A A:0062 X:0000 Y:0000 P:envMxdIzc - x6 A.
$02/DFAA 0A ASL A A:00C4 X:0000 Y:0000 P:eNvMxdIzc
$02/DFAB 0A ASL A A:0088 X:0000 Y:0000 P:eNvMxdIzC
$02/DFAC 20 15 E0 JSR $E015 [$02:E015] A:0010 X:0000 Y:0000 P:envMxdIzC - Jump to Subroutine (???)
$02/DFAF FA PLX A:0000 X:0010 Y:0000 P:envMxdIZc - Pull X from Stack.
$02/DFB0 18 CLC A:0000 X:0000 Y:0000 P:envMxdIZc - Clear Carry Flag.
$02/DFB1 69 F8 ADC #$F8 A:0000 X:0000 Y:0000 P:envMxdIZc - Add F8 (How elevated the character floating is from their starting point).
$02/DFB3 9D C8 EF STA $EFC8,x[$7E:EFC8] A:00F8 X:0000 Y:0000 P:eNvMxdIzc - Store A in Character Position?
$02/DFB6 A9 06 LDA #$06 A:00F8 X:0000 Y:0000 P:eNvMxdIzc - Load Floating Shadow into A.
$02/DFB8 8D 78 F0 STA $F078 [$7E:F078] A:0006 X:0000 Y:0000 P:envMxdIzc - Store A in Special Status Graphic.
$02/DFBB 4C CD DF JMP $DFCD [$02:DFCD] A:0006 X:0000 Y:0000 P:envMxdIzc - Ignore other Status.
---------------------------------------------
$02/DFBE A5 11 LDA $11 [$00:0011] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 4 into A.
$02/DFC0 29 01 AND #$01 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Critical?
$02/DFC2 F0 09 BEQ $09 [$DFCD] A:0000 X:0000 Y:0000 P:envMxdIZc - If not, branch.
-------------------------------------------
$02/DFC4 A9 04 LDA #$04 A:0001 X:0000 Y:0000 P:envMxdIzc - Load Crouching into A.
$02/DFC6 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
$02/DFC9 3A DEC A A:0004 X:0000 Y:0000 P:envMxdIzc - -1 from A (Critical Sweat)
$02/DFCA 8D 78 F0 STA $F078 [$7E:F078] A:0003 X:0000 Y:0000 P:envMxdIzc - Store A in Special Status Graphic
-------------------------------------------
$02/DFCD A5 0F LDA $0F [$00:000F] A:0000 X:0000 Y:0000 P:envMxdIZc - Load Status Byte 2 into A.
$02/DFCF 29 08 AND #$08 A:0000 X:0000 Y:0000 P:envMxdIZc - Is it Charm? (Hmm? But that's above?)
$02/DFD1 F0 05 BEQ $05 [$DFD8] A:0000 X:0000 Y:0000 P:envMxdIZc - Branch if not.
------------------------------------------
02/DFD3 20 D7 DB JSR $DBD7 [$02:DBD7] A:0008 X:0000 Y:0000 P:envMxdIzc - Jump to Subroutine
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~````
$02/DBD7 DA PHX A:0008 X:0000 Y:0000 P:envMxdIzc - Push X onto Stack.
$02/DBD8 A5 47 LDA $47 [$00:0047] A:0008 X:0000 Y:0000 P:envMxdIzc - Load A from 47.
$02/DBDA AA TAX A:0000 X:0000 Y:0000 P:envMxdIZc - Transfer A to X.
$02/DBDB BD BC F2 LDA $F2BC,x[$7E:F2BC] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from 7EF2BC
$02/DBDE D0 05 BNE $05 [$DBE5] A:0000 X:0000 Y:0000 P:envMxdIZc - Branch if not 00.
$02/DBE0 BD AF F0 LDA $F0AF,x[$7E:F0AF] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from F0AF
$02/DBE3 F0 02 BEQ $02 [$DBE7] A:0000 X:0000 Y:0000 P:envMxdIZc - Branch if 00.
-------------------
---------------------
$02/DBE7 FA PLX A:0000 X:0000 Y:0000 P:envMxdIZc - Pull X.
$02/DBE8 BD CE EF LDA $EFCE,x[$7E:EFCE] A:0000 X:0000 Y:0000 P:envMxdIZc - Load A from 7EEFCE.
$02/DBEB 29 0F AND #$0F A:0001 X:0000 Y:0000 P:envMxdIzc - Get rid of Bits.
$02/DBED 9D CE EF STA $EFCE,x[$7E:EFCE] A:0001 X:0000 Y:0000 P:envMxdIzc - Store A in 7EEFCE.
$02/DBF0 BD C5 EF LDA $EFC5,x[$7E:EFC5] A:0001 X:0000 Y:0000 P:envMxdIzc - Load A from 7EEFC5.
$02/DBF3 C9 B0 CMP #$B0 A:00B0 X:0000 Y:0000 P:eNvMxdIzc - It is B0? (When set to other values will be closer or further away when they move to join the enemy)
$02/DBF5 F0 4F BEQ $4F [$DC46] A:00B0 X:0000 Y:0000 P:envMxdIZC - Branch if so.
---------------------
------------------------
$02/DC46 BD CE EF LDA $EFCE,x[$7E:EFCE] A:00B0 X:0000 Y:0000 P:envMxdIZC - Load A from 7EEFCE
$02/DC49 09 01 ORA #$01 A:0001 X:0000 Y:0000 P:envMxdIzC - Get rid of Bits. (When set to 02 Character will face enemies)
$02/DC4B 9D CE EF STA $EFCE,x[$7E:EFCE] A:0001 X:0000 Y:0000 P:envMxdIzC - Store A in 7EEFCE
$02/DC4E 60 RTS A:0001 X:0000 Y:0000 P:envMxdIzC - Return
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$02/DFD6 80 03 BRA $03 [$DFDB] A:0001 X:0000 Y:0000 P:envMxdIzC - Branch to 3 bytes away.
------------------------------------------
$02/DFD8 20 4F DC JSR $DC4F [$02:DC4F] A:0000 X:0000 Y:0000 P:envMxdIZc - Jump to Subroutine (???)
$01/EADB A9 09 LDA #$09 A:0004 X:0000 Y:0000 P:envMxdIzc - Load Count Numbers above head into A.
$01/EADD 8D 78 F0 STA $F078 [$7E:F078] A:0009 X:0000 Y:0000 P:envMxdIzc - Store A in Status Special Graphic Display.
Ah? New list to compile then...
00 - Nothing
01 - Mute
02 - Blind
03 - Critical
04 - Paralysis
05 - Sleeping
06 - Floating (I think, shadow shows on the floor)
07 - Confusion
08 - Curse
09 - Count
And that's it... hmm, a little disappointing, but at least that's there now.
Alright, now there's a bit from a basic hackers standpoint here that could easily be utilized if they wanted to change some things, most importantly for someone delving into new statuses (myself) would be some graphical representation. While I can't use any of the Special Status Graphics, I can manipulate the way Poison's works to create status ailments which changes the characters palette (could even throw in an exception to add Berserk to it all.
But here is the easily manipulable info...
KO'd
$02/DEB6 A9 09 LDA #$09 A:0080 X:0000 Y:0000 P:envMxdIzC - Load Swoon into A
$02/DEB8 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0009 X:0000 Y:0000 P:envMxdIzC - Store A in Pose Byte.
Poison
$02/DAE7 A9 7D F6 LDA #$F67D A:0120 X:0120 Y:0000 P:envmxdIzc - Load Changed Skin Palette into A..
$02/DAEA 9D 56 ED STA $ED56,x[$7E:EE76] A:F67D X:0120 Y:0000 P:eNvmxdIzc - Store A in ?Palette Area?
$02/DAED A9 30 7D LDA #$7D30 A:F67D X:0120 Y:0000 P:eNvmxdIzc - Load 2nd Changed Skin Palette into A.
$02/DAF0 9D 58 ED STA $ED58,x[$7E:EE78] A:7D30 X:0120 Y:0000 P:envmxdIzc - Store A in ?Palette Area?
$02/DEE2 A9 04 LDA #$04 A:0000 X:0000 Y:0000 P:envMxdIZc - Load !Pose! into A. (Finally! Poison should not be enough to kneel!)
$02/DEE4 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in (what must be the poses area)
Count
$01/EAD6 A9 04 LDA #$04 A:0070 X:0000 Y:0000 P:envMxdIZc - Load Crouching into A.
$01/EAD8 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
Magnetized
$02/DF05 A9 04 LDA #$04 A:0080 X:0000 Y:0000 P:eNvMxdIzc - Load Crouching into A.
$02/DF07 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.
Mute
$02/DF16 A9 04 LDA #$04 A:0004 X:0000 Y:0000 P:envMxdIzc - Load Crouching into A.
$02/DF18 9D D0 EF STA $EFD0,x[$7E:EFD0] A:0004 X:0000 Y:0000 P:envMxdIzc - Store A in Pose Byte.