Users browsing this thread: 1 Guest(s)
Relic that CAUSES Imp status?

#1
Posts: 261
Threads: 18
Thanks Received: 13
Thanks Given: 45
Joined: Dec 2017
Reputation: 2
Status
None
Is it possible to enable permanent imp status via a relic?  I always thought it was possible to do this already, but I do not see the option in FF3usME. I ask this question, because I was going to create a new relic that grants the jump ability, magic/attack status gains, and more while also causing Imp status. The point would be for someone to use it alongside the Imp gear. Without permanent Imp status, the relic would just be another generic relic usable by any character, and I actually don't want this to be the case. It would also be a nice benefit that monsters cannot revert you back to normal status by casting Imp on the character you want to be an Imp.
  Find
Quote  

#2
Posts: 3,826
Threads: 271
Thanks Received: 773
Thanks Given: 418
Joined: Oct 2011
Reputation: 63
Status
Tissue-aware
You'd have to hardcore this and disable imp status healing/switching via green cheery in both menu and battle when the relic is equiped.
  Find
Quote  

#3
Posts: 261
Threads: 18
Thanks Received: 13
Thanks Given: 45
Joined: Dec 2017
Reputation: 2
Status
None
(02-22-2021, 02:15 AM)madsiur Wrote: You'd have to hardcore this and disable imp status healing/switching via green cheery in both menu and battle when the relic is equiped.


Hmm, sounds like a lot of work. I might just have the imp relic inflict status ailments (muddle, seizure, sleep, etc.), and have other pieces of imp equipment cure those same status ailments (like a ribbon negating a cursed shield). This makes a fully equipped imp immune to those few status ailments as well as give them other benefits - like the jump command, increased magic/fight damage, hp boost, etc.  Basically, I am just trying to make an Imp more appealing, especially since I have replaced the Imp sprite with something else in my hack!
  Find
Quote  

#4
Posts: 282
Threads: 22
Thanks Received: 113
Thanks Given: 111
Joined: Dec 2018
Reputation: 18
Status
Moog
If you aren't using the Critical->Reflect effect, you could change that to Critical->Imp.  It's unusual and kinda goes for what you're seeking.

Code:
C2/0A86: A9 24        LDA #$24  (Reflect spell ID)

Change to  A9 23 so that it casts Imp, provided you haven't moved the Imp spell

Note that if the character has protection from Imp status (from another piece of gear) the spell will likely miss (I haven't tested that).  If it doesn't, then the imping will be permanent because the protection is there.  You may wish to play with this a bit.

EDIT: Actually, even if you are using Wall on Low HP, that equipment byte has two unused bits.
Here's some code I used to add extra relic functions, tweaked to your situation.
Code:
C2/0A82:            [Replace original code for Wall on Low HP]
    22 8C FF C0                        JSL $C0FF8C        [Subroutine checks extra equipment bits]
    60                                RTS
    EA EA EA EA EA EA EA EA EA        NOP out remaining original code
    
C2/64CC:            [Some original code for Wall on Low HP, in a subroutine to set up an auto spell.  Must be in C2 bank]
    85 B8                            LDA $B8
    A9 26                            LDA #$26
    20 91 4E                        JSR $4E91
    6B                                RTL

C0/FF8C:            [Checks extra bits on the equipment, sets spells]
    4A                LSR            [Check third bit (Wall on Low HP in FF3USME)]
    90 08            BCC
    48                PHA
    A9 EE            LDA #$24    [Load Reflect]
    22 CC 64 C2        JSL setUpSpell                ***If you move C2/64CC code somewhere else, update this line***
    68                PLA
    4A 4A 4A        LSR x3        [Check sixth bit (First ? after Double Gold Pts in FF3USME)]
    90 08            BCC
    48
    A9 1D            LDA #$1F    [Load Haste]
    22 CC 64 C2        JSL setUpSpell                ***If you move C2/64CC code somewhere else, update this line***
    68                PLA
    4A                LSR            [Check seventh bit (Last ? after Double Gold Pts in FF3USME)]
    90 08            BCC
    48                PHA
    A9 2C            LDA #$23    [Load Imp]
    22 CC 64 C2        JSL setUpSpell                ***If you move C2/64CC code somewhere else, update this line***
    68                PLA
    6B                RTL
Give it a try if you like.
  Find
Quote  
[-] The following 1 user says Thank You to C-Dude for this post:
  • Gi Nattak (02-22-2021)

#5
Posts: 407
Threads: 39
Thanks Received: 169
Thanks Given: 102
Joined: Feb 2017
Reputation: 23
Status
None
(02-22-2021, 01:00 PM)C-Dude Wrote: EDIT: Actually, even if you are using Wall on Low HP, that equipment byte has two unused bits.

Just be aware that those 2 bits are used in the Full Roster hack for "Spec Active When Imp" and "Equippable with Merit Award", so that the original 2 flags for those can be used for characters 15 & 16. It appears that 2 of the other equipment bytes have open slots though.


Projects:
Divergent Paths: The 3 Scenarios (Completed) - a redo of the 3 scenarios in the original game that gives equal time to each group. Meant to be a basis for future mods.
FFVI: Divergent Paths (In Progress) - a hack built off of the 3 scenarios that changes other events in the same, such as making Leo permanently recruitable, bringing Banon's story closure, and adding 1 more secret character.
  Find
Quote  

#6
Posts: 282
Threads: 22
Thanks Received: 113
Thanks Given: 111
Joined: Dec 2018
Reputation: 18
Status
Moog
Per Lightning's request in Discord, I've produced the following code that will make Relic Effect 4's bit 7 (the second ? mark) trigger the Imp spell as a reaction on anyone who is not imp'd currently and not immune to Imp.

As PowerPanda stated, because this uses bit 7 it will be incompatible with the Full Roster hack. There is a note in the disassembly that explains what would need to be changed to make it instead use Critical->Wall as the triggering byte.

Code:
===================================
Working version of Imp-form Relic
===================================


C2/0A4A
    4C 7B 64            JMP $647B            [Go to new code that handles the Imp Relic]


C2/647B
    BD A0 3A            LDA $3AA0,X
    89 10                BIT #$10            [This was the vanilla code, it checks that the character isn't dead or unable to act]
    F0 03                BNE SkipNextLine    [Continue if its not the case]
    4C 90 0A            JMP $0A90            [Exit]
    BD 60 3E            LDA $3E60,X            [Status 1 byte]
    89 20                BIT #$20            [Check for Imp status on this character.  This is the Quasi-status bit for counterattacks]
    F0 03                BNE SkipNextLine    [Continue if Imp status is present]
    4C 51 0A            JMP $0A51            [Move on to the near fatal checks (Vanilla code)]
    BD 1C 33            LDA $331C,X            [Immunity 1 byte]
    89 20                BIT #$20            [Check for Imp immunity]
    D0 03                BEQ SkipNextLine    [If not immune to Imp, continue]
    4C 51 0A            JMP $0A51            [Move on to the near fatal checks (Vanilla code)]
    BD 59 3C            LDA $3C59,X            [Load Equipment special byte 4]
    0A 0A                ASL Ax2                [Shift byte 7 into the carry]        {If you want it to use Wall on Low HP, this needs to change to 4A 4A 4A        LSRx3}
    90 13                BCC SkipImp            [If it isn't present, move on to the near fatal checks]
    48                    PHA
    A9 23                LDA #$23            [Load the Imp Spell]
    85 B8                STA $B8                [Save it in the spell to cast]
    A9 26                LDA #$26            [Load the reaction cast command]
    20 91 4E            JSR $4E91            [Add it to the counter queue]
    68                    PLA
    BD 60 3E            LDA $3E60,X            [Load the Quasi-status byte 1]
    09 20                ORA #$20            [Set the Imp bit]
    9D 60 3E            STA $3E60,X            [Save the Quasi-status byte 1]
    4C 51 0A            JMP $0A51            [Move on to the near fatal checks (Vanilla code)]

Raw Hex
At 20A4A
    4C 7B 64
    
At 2647B
    BD A0 3A 89 10 F0 03 4C 90 0A BD 60 3E 89 20 F0 03 4C 51 0A BD 1C 33 89 20 D0 03 4C 51 0A BD 59 3C 0A 0A 90 13 48 A9 23 85 B8 A9 26 20 91 4E 68 BD 60 3E 09 20 9D 60 3E 4C 51 0A
  Find
Quote  
[-] The following 1 user says Thank You to C-Dude for this post:
  • Lightning (02-22-2021)

#7
Posts: 261
Threads: 18
Thanks Received: 13
Thanks Given: 45
Joined: Dec 2017
Reputation: 2
Status
None
Thanks C-Dude. So far so good! I even managed to revert a character to normal status as the condemned counter ran out, and the character turned back into an imp whilst dead. I think there is no better test than that...
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite