Users browsing this thread: 1 Guest(s)
New Status Effect - Old

#3
Posts: 32
Threads: 5
Thanks Received: 4
Thanks Given: 2
Joined: Feb 2012
Reputation: 4
Status
Sleep
(01-06-2024, 05:26 PM)C-Dude Wrote: With regards to your question on character palette management, the routines are in the C1 bank.

https://raw.githubusercontent.com/everyt...s/ff3u.asm

This is Everything's complete disassembly of the game.  It has comments on many of the routines which will help you navigate the game for your modifications.
You're looking for C1/2DD3.  The way this routine works is that it checks various statuses and then adjusts the palette accordingly.  There are three types of palette adjustments here: total palette replacement (like you would see for things like Petrify or Frozen), Skin Index replacement (wherein only the two specific index colors are swapped), and outline pulsing (like how Haste makes the character's outline glow red).


The second, skin index replacement, goes to a routine at C1/2F0D, which takes the number you send into it x4 as an index into a table starting at C2E3AE.  This replaces two colors in the character's palette with those from the table (colors 7 and 8, which are stored at $7F8C,Y and $7F8E,Y respectively at this point).

For a status like Old, you're probably going to want to change the three hair colors instead (Hair Light, Hair Dark, and Eyes), or possibly the whole palette to grayscales and pale whites since not every character uses the same color indices for their hair like they do in FF5.  As such, you're probably going to have an easier time mirroring the way that Freeze and Petrify change colors instead.

This is really informative and helpful, thank you!  I am going to look into this more and see what I can come up with.

EDIT: I was able to make this work!  There is an unused space for a glowing effect so it made the most sense to use that.  I ended up moving some colors around and adding in a new one, I may change this later but this is what I came up with:

Code:
ORIGINAL
---------------------------------
C1/2E02: 4C B4 2E     JMP $2EB4
C1/2E2A: 4C B4 2E     JMP $2EB4
C1/2E4F: 80 63        BRA $2EB4
C1/2E5C: 80 56        BRA $2EB4
C1/2E69: 80 49        BRA $2EB4
C1/2E73: 80 3F        BRA $2EB4
C1/2E7E: 80 34        BRA $2EB4
C1/2E8B: 80 27        BRA $2EB4
C1/2E98: 80 1A        BRA $2EB4
C1/2E9E: F0 07        BEQ $2EA7

C1/2EA5: 80 0D        BRA $2EB4
C1/2EA7: A5 38        LDA $38         ; return if character doesn't have slow status
C1/2EA9: 29 04        AND #$04
C1/2EAB: F0 07        BEQ $2EB4
C1/2EAD: A9 04        LDA #$04
C1/2EAF: 20 C3 2E     JSR $2EC3       ; update glowing border (white/slow)
C1/2EB2: 80 00        BRA $2EB4
C1/2EB4: 60           RTS

C2/E3BA: 60 6A        .DW $6A60       ; glowing border color (blue/reflect)
C2/E3C2: FF 7F        .DW $7FFF       ; glowing border color (white/slow)
C2/E3C6: 1A 00        .DW $001A       ; glowing border color (red/unused)

MODIFIED
--------------------------------
C1/2E02: 4C B1 2E     JMP $2EB1
C1/2E2A: 4C B1 2E     JMP $2EB1
C1/2E4F: 80 60        BRA $2EB1
C1/2E5C: 80 53        BRA $2EB1
C1/2E69: 80 46        BRA $2EB1
C1/2E73: 80 3C        BRA $2EB1
C1/2E7E: 80 31        BRA $2EB1
C1/2E8B: 80 24        BRA $2EB1
C1/2E98: 80 17        BRA $2EB1

C1/2E9E: F0 06        BEQ $2EA6
C1/2EA5: 60           RTS
C1/2EA6: A5 38        LDA $38         ; branch if character doesn't have slow status
C1/2EA8: 29 04        AND #$04
C1/2EAA: F0 06        BEQ $2EB2
C1/2EAC: A9 04        LDA #$04
C1/2EAE: 20 C3 2E     JSR $2EC3       ; update glowing border (blue/slow)
C1/2EB1: 60           RTS        
C1/2EB2: 4C 98 4B     JMP $4B98       ; new subroutine

C2/E3C6: FF 7F        .DW $7FFF       ; glowing border color (white/old)
C2/E3BA: F0 0F        .DW $0FF0       ; glowing border color (purple/reflect)
C2/E3C2: 6A 60        .DW $6A60       ; glowing border color (blue/slow)

NEW SUBROUTINE
-----------------------------------
C1/4B98: A5 38        LDA $38         ; return if character doesn't have old status
C1/4B9A: 29 01        AND #$01
C1/4B9C: F0 07        BEQ $4BA5
C1/4B9E: A9 06        LDA #$06
C1/4BA1: 20 C3 2E     JSR $2EC3       ; update glowing border (white/old)
C1/4BA3: 80 00        BRA $4BA5
C1/4BA5: 60           RTS

Thanks again!
Quote  
[-] The following 1 user says Thank You to Xontract for this post:
  • Gi Nattak (01-07-2024)



Messages In This Thread
New Status Effect - Old - by Xontract - 01-06-2024, 04:04 PM
RE: New Status Effect - Old - by C-Dude - 01-06-2024, 05:26 PM
RE: New Status Effect - Old - by Xontract - 01-07-2024, 10:43 AM
RE: New Status Effect - Old - by Warrax - 01-08-2024, 12:26 PM

Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite