Users browsing this thread: 1 Guest(s)
New Status Effect - Old
(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!
« Next Oldest | Next Newest »
|
||||
Users browsing this thread: 1 Guest(s)