Users browsing this thread: 1 Guest(s)
Runic question
09-19-2020, 05:05 AM
So i was trying to find a way to make runic more user friendly i have the runic forever hack v 2.1 By Hatzen80
Then i found this https://www.ff6hacking.com/forums/thread...unic+enemy post # 24
It would make runic only effect enemy spells.
So first off would those 2 things work together or conflict since they alter the same ability.
Second i have absolutley no idea how to do the second part coding wise is there a way to get an ips patch or an instruction?
Then i found this https://www.ff6hacking.com/forums/thread...unic+enemy post # 24
It would make runic only effect enemy spells.
So first off would those 2 things work together or conflict since they alter the same ability.
Second i have absolutley no idea how to do the second part coding wise is there a way to get an ips patch or an instruction?
09-19-2020, 05:46 AM
I don't have the answer to your first question. To use GrayShadow's code, you need to use an assembler like xkas 0.06. Then you copy his code into a text file you rename the extension to .asm and you assemble it using the windows command prompt. The only thing that needs to be changed is "org $C2xxxx" to free space in bank $C2, such as "org $C26469" for a vanilla ROM. Note that if you use xkas, you'll need to write "hirom" at the top of your file and "header" if your ROM has a header.
09-19-2020, 11:21 PM
They likely conflict, because they probably hook into the same section of code in different ways. If using them both doesn't outright cause the game to crash on activating Runic, it may behave as if only one is applied, or may behave in a way entirely unexpected.
Interestingly enough, Hatzen's Runic Forever--at least the last version I saw--is set up to check if the target is the runicker and bypass the spell block if so. It might be possible to change that segment to check if the target is not a monster, and if so let the spells go past.
The three further indented lines are what would need to be changed. I'm going off Runic Forever 2_1, and those lines seem to be what let the runicker get their spells past themselves. Changing the comparison to caster against a static #08 and branching if the number is less makes runic ignore your party as far as I can tell.
However, this will make runic one-sided, as it will ALWAYS favor your party. It effectively breaks the Air Force Bit... you'll need to change that boss battle to make the bit do something else (perhaps a lot of HP and then it casts Exploder after a while?).
Interestingly enough, Hatzen's Runic Forever--at least the last version I saw--is set up to check if the target is the runicker and bypass the spell block if so. It might be possible to change that segment to check if the target is not a monster, and if so let the spells go past.
Code:
;-------------------------------------------------------------------------------
; check runic for fighter Y
;-------------------------------------------------------------------------------
check_runic:
LDA $3AA0,Y
LSR ;check for valid target
BCC .runic_no ;don't runic if invalid target
PEA $80C0 ;check for sleep, death, petrify
PEA $2210 ;check for freeze, hide, stop
JSR $5864 ;routine to check for status
BCC .runic_no ;don't runic if any status found
LDA $3E4C,Y
BIT #$06 ;check for runic flags
BEQ .runic_no ;don't runic if spell can't be absorbed
STX $EE ;spell target
TXA ;caster
CMP #$08 ;check if battle slot is a party slot?
BCC .runic_no ;don't runic if target is a party member?
.runic_yes
SEC
RTS
.runic_no
CLC
RTS
However, this will make runic one-sided, as it will ALWAYS favor your party. It effectively breaks the Air Force Bit... you'll need to change that boss battle to make the bit do something else (perhaps a lot of HP and then it casts Exploder after a while?).
09-20-2020, 02:47 AM
Yeah I didn't Think of that probably better to leave it as the runic forever 2.1 has it otherwise it probably ruins quite a few boss fights
...Perhaps the check could be made more comprehensive. It'd take more freespace, though.
I think this would check if the target is a monster or not, then runic so long as the caster is on the OPPOSITE team. It would replace the section by the same name in Hatzen08's RunicForever2_1. I'd test this like I did with the other post, but I'd have to put it in by hand (because xkas doesn't like me and Asar likes introducing errors) and I don't have the room near the RunicForever code in my rom.
EDIT: If you assemble this and your characters runic their own spells, that means .party_yes and .party_no are labelled wrong and need to be swapped. If you assemble it and it crashes... then I have no idea!
EDIT: Hopefully you didn't grab this in the middle of the night. I forgot a BRA command.
Code:
;-------------------------------------------------------------------------------
; check runic for fighter Y
;-------------------------------------------------------------------------------
check_runic:
LDA $3AA0,Y
LSR ;check for valid target
BCC .runic_no ;don't runic if invalid target
PEA $80C0 ;check for sleep, death, petrify 80E1 [Adds Blind and Moogle to the restrictions]
C2/3544: F4 E1 80
80E0 [Remove the blind restriction, since Cover doesn't have that]
PEA $2210 ;check for freeze, hide, stop
C2/3547:
JSR $5864 ;routine to check for status
BCC .runic_no ;don't runic if any status found
LDA $3E4C,Y $3EF8,Y
C2/354F: B9 F8 3E
BIT #$06 ;check for runic flags BIT #$10 [Former STOP bit]
C2/3552: 89 10
BEQ .runic_no ;don't runic if spell can't be absorbed
STX $EE ;spell target
TYA ;target
CMP #$08 ;check if battle slot is a party slot?
BCC .party_yes ;handle party runicker
BRA .party_no ;handle monster runicker
.party_yes
TXA ;caster
CMP #$08 ;check if battle slot is a party slot?
BCC .runic_no ;don't runic for party caster
BRA .runic_yes ;otherwise runic
.party_no
TXA ;caster
CMP #$08 ;check if battle slot is a party slot?
BCS .runic_no ;don't runic for monster caster
;don't need an otherwise branch here since .runic_yes is next
.runic_yes
SEC
RTS
.runic_no
CLC
RTS
EDIT: If you assemble this and your characters runic their own spells, that means .party_yes and .party_no are labelled wrong and need to be swapped. If you assemble it and it crashes... then I have no idea!
EDIT: Hopefully you didn't grab this in the middle of the night. I forgot a BRA command.
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)