Users browsing this thread: 1 Guest(s)
Disabling Auto-Optimize/Remove on Genji Glove/Gauntlet
12-22-2012, 04:53 PM
I've replaced those Relics with entirely different ones, and the optimize is utterly pointless! How might I go about disabling this?
Start by looking in the C0 bank disassembly for 'Optimum equip character', specifically this:
(perform "equipment check" on the current party)
I -think- that may be it, though I'm probably wrong. I'm not sure how to just disable it for when removing/equipping the Genji Glove or Gauntlet, is the thing.
I'm not sure if changing the code to EA EA EA etc. will do the trick, ($EA is code for NOP).
There may be some further asm hacking required. Hopefully someone here can help out more.
(perform "equipment check" on the current party)
I -think- that may be it, though I'm probably wrong. I'm not sure how to just disable it for when removing/equipping the Genji Glove or Gauntlet, is the thing.
I'm not sure if changing the code to EA EA EA etc. will do the trick, ($EA is code for NOP).
There may be some further asm hacking required. Hopefully someone here can help out more.
We are born, live, die and then do the same thing over again.
12-22-2012, 07:15 PM
(12-22-2012, 04:53 PM)Riketz Wrote: I've replaced those Relics with entirely different ones, and the optimize is utterly pointless! How might I go about disabling this?
Try NOP these calls. They are part of the process when a relic change equipment (any relic):
Code:
C3/1C1D: 20F096 JSR $96F0 (Optimum command - fully equips standard equipment)
C3/1C29: 20A896 JSR $96A8 (Empty command - removes standard equipment)
Edit: The above method would work but you would still have the sound effect and the menu change except no optimum would be done, even for the merit award.
I think I located the code that handle more precisely what you want to do. If it's the merit award, genji glove or gauntlet, the routine will store #$01 in $99. You can simply NOP everything that concern the gauntlet and genji glove in the following routine. I didn't tested anything:
Code:
C3/9F5C: 20F293 JSR $93F2
C3/9F5F: B92300 LDA $0023,Y (load accessory slot 1)
C3/9F62: C5B0 CMP $B0
C3/9F64: D009 BNE $9F6F
C3/9F66: B92400 LDA $0024,Y (load accessory slot 2)
C3/9F69: C5B1 CMP $B1
C3/9F6B: D002 BNE $9F6F
C3/9F6D: 803A BRA $9FA9
C3/9F6F: A5B0 LDA $B0
C3/9F71: C9D1 CMP #$D1 (is it the Genji Glove?)
C3/9F73: F037 BEQ $9FAC (branch if so)
C3/9F75: C9D0 CMP #$D0 (is it the Gauntlet?)
C3/9F77: F033 BEQ $9FAC (branch if so)
C3/9F79: C9DA CMP #$DA (is it the Merit Award?)
C3/9F7B: F02F BEQ $9FAC (branch if so)
C3/9F7D: A5B1 LDA $B1
C3/9F7F: C9D1 CMP #$D1 (is it the Genji Glove?)
C3/9F81: F029 BEQ $9FAC (branch if so)
C3/9F83: C9D0 CMP #$D0 (is it the Gauntlet?)
C3/9F85: F025 BEQ $9FAC (branch if so)
C3/9F87: C9DA CMP #$DA (is it the Merit Award?)
C3/9F89: F021 BEQ $9FAC (branch if so)
C3/9F8B: B92300 LDA $0023,Y (load accessory slot 1)
C3/9F8E: C9D1 CMP #$D1 (is it the Genji Glove?)
C3/9F90: F01A BEQ $9FAC (branch if so)
C3/9F92: C9D0 CMP #$D0 (is it the Gauntlet?)
C3/9F94: F016 BEQ $9FAC (branch if so)
C3/9F96: C9DA CMP #$DA (is it the Merit Award?)
C3/9F98: F012 BEQ $9FAC (branch if so)
C3/9F9A: B92400 LDA $0024,Y (load accessory slot 2)
C3/9F9D: C9D1 CMP #$D1 (is it the Genji Glove?)
C3/9F9F: F00B BEQ $9FAC (branch if so)
C3/9FA1: C9D0 CMP #$D0 (is it the Gauntlet?)
C3/9FA3: F007 BEQ $9FAC (branch if so)
C3/9FA5: C9DA CMP #$DA (is it the Merit Award?)
C3/9FA7: F003 BEQ $9FAC (branch if so)
C3/9FA9: 6499 STZ $99 (if none of the above, store 00)
C3/9FAB: 60 RTS
Code:
C3/9FAC: A901 LDA #$01
C3/9FAE: 8599 STA $99
C3/9FB0: 60 RTS
12-23-2012, 12:14 AM
Haha, I'm trying out a Hex Editor for the first time. I believe I've at least found the... address for the string in question, but not sure what "NOP" means. Will post again if I have any measure of success.
12-23-2012, 12:50 AM
NOP, or 'No Operation' (command $EA) allows you to bypass code and read whatever's next.
It's an assembly command.
It's an assembly command.
We are born, live, die and then do the same thing over again.
12-23-2012, 06:26 PM
Ah, I used a hex editor to turn those addresses listed into EA, or something, then the game became a black screen at boot.
Could someone point me to where I might learn to understand all of this moonspeak? Also, it seems like it'd be easier to direct everything to "no".
My whole goal here is to prevent the game from taking the player to the Equip screen every time one of the replacement items is used. I've made Genji Glove into Hero Glove, a fun little advanced version of Hero Ring, but disabled dual wielding or dual group on all relics in general. Gauntlet is Armor Charm, a bit of extra padding for very early game on front-line fighters. As such, both Relics are used frequently in World of Balance, and even a good ways into World of Ruin.
Could someone point me to where I might learn to understand all of this moonspeak? Also, it seems like it'd be easier to direct everything to "no".
My whole goal here is to prevent the game from taking the player to the Equip screen every time one of the replacement items is used. I've made Genji Glove into Hero Glove, a fun little advanced version of Hero Ring, but disabled dual wielding or dual group on all relics in general. Gauntlet is Armor Charm, a bit of extra padding for very early game on front-line fighters. As such, both Relics are used frequently in World of Balance, and even a good ways into World of Ruin.
12-23-2012, 08:02 PM
(12-23-2012, 06:26 PM)Riketz Wrote: Ah, I used a hex editor to turn those addresses listed into EA, or something, then the game became a black screen at boot.
It's clear that if your turned the whole routines into EA the game will crash and this what not what I mentioned to change. You also have no idea what the code means.
(12-23-2012, 06:26 PM)Riketz Wrote: Could someone point me to where I might learn to understand all of this moonspeak? Also, it seems like it'd be easier to direct everything to "no".
There is a lot of moonspeak resources on the net. You could start here and here. You can also type in Google "65816 assembly". After that you can take bank C3 and learn with the help of the existing comments what you need to change and where to find it.
It would be too long to explain everything and I'm not doing an ASM course via posts on a forum but this is an optimized routine with the change I first mentionned that I think will give your game the desired effects. I didn't tested it and I don't have the time to.
Code:
C3/9F5C: 20F293 JSR $93F2
C3/9F5F: B92300 LDA $0023,Y (load accessory slot 1)
C3/9F62: C5B0 CMP $B0
C3/9F64: D009 BNE $9F6F
C3/9F66: B92400 LDA $0024,Y (load accessory slot 2)
C3/9F69: C5B1 CMP $B1
C3/9F6B: D002 BNE $9F6F
C3/9F6D: 803A BRA $9FA9
C3/9F6F: A5B0 LDA $B0
C3/9F71: C9DA CMP #$DA (is it the Merit Award?)
C3/9F73: F017 BEQ $9F8C (branch if so)
C3/9F75: A5B1 LDA $B1
C3/9F77: C9DA CMP #$DA (is it the Merit Award?)
C3/9F79: F011 BEQ $9F8C (branch if so)
C3/9F7B: B92300 LDA $0023,Y (load accessory slot 1)
C3/9F7E: C9DA CMP #$DA (is it the Merit Award?)
C3/9F80: F00A BEQ $9F8C (branch if so)
C3/9F82: B92400 LDA $0024,Y (load accessory slot 2)
C3/9F85: C9DA CMP #$DA (is it the Merit Award?)
C3/9F87: F003 BEQ $9F8C (branch if so)
C3/9F89: 6499 STZ $99
C3/9F8B: 60 RTS
C3/9F8C: A901 LDA #$01
C3/9F8E: 8599 STA $99
C3/9F90: 60 RTS
12-23-2012, 09:59 PM
Ah, that is more than enough, and your suggestions and resources are more than helpful. I've been working on an FF6 mod for a couple of years now, and this tweak along with figuring out how to change the Katana graphic in Cyan's Swdtech skills into a Sword will finally allow me to call it "complete."
Again, thank you both so much.
Again, thank you both so much.
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)