Users browsing this thread: 1 Guest(s)
Multiple use "Morph" Commands

#2
Posts: 383
Threads: 34
Thanks Received: 10
Thanks Given: 13
Joined: Dec 2018
Reputation: 18
Status
Moog
The game takes a few RAM shortcuts because it's coded with the assumption that only one character will be able to attempt such a command.  In the case of morph, there is a ram value that specifies the party slot who used the command first as the 'morph' actor, which prevents anybody else from morphing until that RAM value is clear.  You're also going to run into some trouble with the timer, since again the game isn't set up to run more than one.  If you bypass that first check for somebody already being morphed, then the second character to morph in battle will be morphed permanently until they queue a revert command.

So if you want to do this, you might just want to scrap the timer altogether and make morphing permanent, but with some penalty attached instead (say... taking double magic damage instead of half while morphed).

The last hurdle you need to address is the graphic change imposed by the morph status.
Code:
C1/2F99:    BDC02E      LDA $2EC0,X        [Current Status for graphics]
C1/2F9C:    2908        AND #$08        [Check if morphed?]
C1/2F9E:    F015        BEQ $2FB5
C1/2FA0:    B96C7B      LDA $7B6C,Y        (load character sprite ID)
C1/2FA3:    C912        CMP #$12        (check if it's morphed Terra)
C1/2FA5:    F03F        BEQ $2FE6        (branch if so)
C1/2FA7:    A912        LDA #$12        (load morphed Terra sprite ID)
C1/2FA9:    996C7B      STA $7B6C,Y        (and save it as this character's graphic)
C1/2FAC:    205731      JSR $3157
C1/2FAF:    7B          TDC
C1/2FB0:    99707B      STA $7B70,Y
C1/2FB3:    8031        BRA $2FE6
The way this is programmed, it checks if the character's appearance is Morph Terra and changes it if not.  To make this work for multiple characters, you'll need to come up with a way to store or check their unmorphed character graphics.
Code:
C1/2FD1:    B96C7B      LDA $7B6C,Y        (load character sprite ID ?)
C1/2FD4:    DDAE2E      CMP $2EAE,X        (compare to battle sprite ID)
C1/2FD7:    F00D        BEQ $2FE6        (branch if both the same)
C1/2FD9:    BDAE2E      LDA $2EAE,X        (load battle sprite ID)
C1/2FDC:    996C7B      STA $7B6C,Y        (store as character sprite ID)
This is the 'character graphics refresh if not morphed or imp' that comes after, so you'd need to do something like load the battle sprite ID, compare it against the unmorphed character graphic ID, and then decide which morphed ID to use based on the result of that comparison.
  Find
Quote  



Messages In This Thread
Multiple use "Morph" Commands - by Catone - 08-19-2022, 04:04 PM
RE: Multiple use "Morph" Commands - by C-Dude - 08-19-2022, 04:19 PM
RE: Multiple use "Morph" Commands - by Catone - 08-19-2022, 09:33 PM
RE: Multiple use "Morph" Commands - by Seifer - 08-20-2022, 09:23 AM

Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite