Users browsing this thread: 1 Guest(s)
Excluding Weapons from Use With Genji Glove
I also saw a need for this to change in my mod. My solution was to make the Illumina/Ragnorok for Mage Knights only (ie, Terra and Celes). I also only allow Genji Gloves and Offering to be used by "Male Warriors" only. I also applied the offering hack that stops MP criticals and special moves like Wind Slash from working with offering. This pretty much disables all those super-mega attacks that make the game too easy.
In short:
-General Leo, Cyan, and Sabin can use the offering and Genji glove, but they can't do those ridiculous MP criticals with Illumina/Ragnorok with pearl/flare, nor can they continuously pound enemies with the Tempest and Wind Slash thanks to the "basic offering" hack.
-Celes and Terra can do MP critical with Illumina/Ragornok, but can only use this with the Gauntlet. They can't use Genji Glove or offering.
-Other characters like Setzer, Locke, and Gogo I do not count as "warriors", so they can't use this equipment at all, naturally. They can, however, equip a merit award and use a select few items (but this prevents them from combining the offering with the genji glove).
I am curious how you proceed with this potential hack. I may include it in my mod later, or just use it if I ever merge my mod with yours!
In short:
-General Leo, Cyan, and Sabin can use the offering and Genji glove, but they can't do those ridiculous MP criticals with Illumina/Ragnorok with pearl/flare, nor can they continuously pound enemies with the Tempest and Wind Slash thanks to the "basic offering" hack.
-Celes and Terra can do MP critical with Illumina/Ragornok, but can only use this with the Gauntlet. They can't use Genji Glove or offering.
-Other characters like Setzer, Locke, and Gogo I do not count as "warriors", so they can't use this equipment at all, naturally. They can, however, equip a merit award and use a select few items (but this prevents them from combining the offering with the genji glove).
I am curious how you proceed with this potential hack. I may include it in my mod later, or just use it if I ever merge my mod with yours!
08-12-2018, 11:16 PM
(08-12-2018, 05:23 PM)assassin Wrote: yeah, that finite nature and hypothetical coexistence concerns kept me away from the method initially. but after nearly a decade with most of the bits going unclaimed, i concluded my worries were mostly academic, and that it was time to adapt.
Exactly. There are 4 unclaimed bits, and only 3 improvements that would potentially claim those bits anyway (Brushless Sketch, Jump Megafix, Ignore Defense). It's time to stop holding these in reserve! If someone doesn't want to use them, they just don't have to apply the patch.
As for the equipment special bits, there are only 4 that I have seen claimed.
1. HatZen's full roster hack moves the Merit Award and Active While Imp bits to the 2 unused bits on Special 4.
2. Unhardcoded Tintinnabar uses another. I forget which one.
3. Drakkhen's "Ignore Defense B" patch claims another (currently, the same bit as Merit Award, but I'm retrofitting that)
(08-12-2018, 05:23 PM)assassin Wrote: as for the initial Genji Glove question, i suspect that menu enforcement will be more of a pain than battle mechanics. for the latter, i lean toward recommending expanding C2/0F6F to check both weapon hands, and if one lacks the compatibility, branch to C2/0F61 or 0F68 to zero its Battle Power. (if both lack it, then zero one at random or arbitrarily.)
now, robust menu enforcement might prevent the need for this check. but it's probably worth doing in case of PAR codes or bugs stuffing weapons into two hands, or something being overlooked in the fictional menu code.
I'm thinking the same thing. I don't have to worry about battle mechanics, because Genji Glove's functionality is already programmed into the game. I just have to worry about excluding weapons from the list of equippable items. I've done some initial research, but I've had a lot going on this weekend, so I haven't yet figured out exactly what needs to be done.
Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
08-13-2018, 12:05 AM
the admittedly lazy way of sidestepping the addition of menu restrictions would be saying: "go ahead and equip that incompatible weapon; you just won't be able to attack with it, as it dangles at your side."
now, some warning would be needed. the simplest is adding a "Dual Wield" property in the menus, which would not be displayed for the incompatible items. and maybe the somewhat more involved step of ceasing adding the two hands' Battle Powers for the number displayed on the menu. (however, complexity arises in that Genji Glove sans two compatible weapons probably should no longer preempt the Gauntlet property.)
for comparison, vanilla lets players equip Gauntlet-incompatible weapons with that Relic; they'll just piss away the slot if they're dumb enough to do so. thus, following suit for the new GG property isn't necessarily incomplete.
now, some warning would be needed. the simplest is adding a "Dual Wield" property in the menus, which would not be displayed for the incompatible items. and maybe the somewhat more involved step of ceasing adding the two hands' Battle Powers for the number displayed on the menu. (however, complexity arises in that Genji Glove sans two compatible weapons probably should no longer preempt the Gauntlet property.)
for comparison, vanilla lets players equip Gauntlet-incompatible weapons with that Relic; they'll just piss away the slot if they're dumb enough to do so. thus, following suit for the new GG property isn't necessarily incomplete.
08-13-2018, 12:13 PM
i would honestly trash the genji glove. with bug fixing taken into account, it is objectively worse than the gauntlet. i don't like *either* using a relic slot though, honestly. far better options and it just punishes variance in equipment options.
08-13-2018, 12:48 PM
(08-13-2018, 12:13 PM)dn Wrote: i would honestly trash the genji glove. with bug fixing taken into account, it is objectively worse than the gauntlet. i don't like *either* using a relic slot though, honestly. far better options and it just punishes variance in equipment options.
No.
You are welcome to do this in your hack (it's as simple as removing a checkbox in FF3usME), but I will be using it.
Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
08-13-2018, 02:08 PM
(08-13-2018, 12:13 PM)dn Wrote: i would honestly trash the genji glove. with bug fixing taken into account, it is objectively worse than the gauntlet. i don't like *either* using a relic slot though, honestly. far better options and it just punishes variance in equipment options.
This is about the mechanic behind the Genji Glove effect, not Gengi Glove the relic and it's relations to other relics in FF3 vanilla. Most of us have their own hack with their own design decisions, for example Shadow in my hack always dual wield and doesn't need Genji Glove the relic to do so. The discussion should be about the technicalities behind the dual wield mechanic, not if the mechanic is good or not.
The following 2 users say Thank You to Warrax for this post:
• PowerPanda (08-13-2018), Robo Jesus (05-20-2019)
• PowerPanda (08-13-2018), Robo Jesus (05-20-2019)
08-22-2018, 11:48 PM
(This post was last modified: 08-23-2018, 04:16 PM by PowerPanda.)
I'm starting on the equip screen with this, and worrying about Battle Equipment Changes and Optimize later. I have the code partially working, but I need some advice. Right now, it's correctly checking if the EQUIPPED weapon is compatible with Dual Wielding. However, it's not checking the list of items for compatibility. Let me illustrate with an example.
Example:
Weapon 1: Dirk - Compatible
Weapon 2: Imp Halberd - NOT Compatible
(Character has Genji Glove Equipped)
Scenario 1: Both hands empty, or one with a shield
Result: All weapons available. CORRECT
Scenario 2: One hand holds Imp Halberd
Result: Cannot equip another weapon. CORRECT
Scenario 3: One hand holds Dirk
Result: All weapons available. INCORRECT. This needs to only make weapons compatible with Dual Wielding available.
Any ideas on how to check the list of equippable weapons for their properties? Here is the code I have so far. I have plenty of free space thanks to Novalia's optimization. (http://www.romhacking.net/documents/736/)
Example:
Weapon 1: Dirk - Compatible
Weapon 2: Imp Halberd - NOT Compatible
(Character has Genji Glove Equipped)
Scenario 1: Both hands empty, or one with a shield
Result: All weapons available. CORRECT
Scenario 2: One hand holds Imp Halberd
Result: Cannot equip another weapon. CORRECT
Scenario 3: One hand holds Dirk
Result: All weapons available. INCORRECT. This needs to only make weapons compatible with Dual Wielding available.
Any ideas on how to check the list of equippable weapons for their properties? Here is the code I have so far. I have plenty of free space thanks to Novalia's optimization. (http://www.romhacking.net/documents/736/)
Code:
;Determine if gear list entry is disabled
C3/9A6F: A5 5F LDA $5F Check Slot
C3/9A71: C9 02 CMP #$02 Head or Body?
C3/9A73: B0 3B BCS $9AB1 If so, jump to 9AB1
C3/9A75: C9 01 CMP #$01 L-Hand/Relic 2?
C3/9A77: F0 05 BEQ $C39A7E if no, branch to R-Hand
;Fork: For L-Hand
C3/9A79: B9 20 00 LDA $0020,Y Check Left Hand's Item
C3/9A7C: 80 03 BRA $C39A81 skip next line
;Fork: For R-Hand
C3/9A7E: B9 1E 00 LDA $001E,Y Check Right Hand's Item
C3/9A81: C9 FF CMP #$FF is it empty?
C3/9A83: F0 1F BEQ $9AA4 if so, enable
C3/9A85: 20 21 83 JSR $8321 compute index
C3/9A88: AE 34 21 LDX $2134 load it
C3/9A8B: BF 00 50 D8 LDA $D85000,X Check properties
C3/9A8F: 29 07 AND #$07 Get Class
C3/9A91: C9 03 CMP #$03 Is it a Shield?
C3/9A93: F0 11 BEQ $9AA6 if so, jump to duplicate item check
C3/9A95: AD D8 11 LDA $11D8 Check character properties
C3/9A98: 29 10 AND #$10 check for "allow weapon in each hand"
C3/9A9A: F0 0A BEQ $9A99 If not, branch to duplicate check
C3/9A9C: BF 13 50 D8 LDA $D85013,X Check Weapon Properties
C3/9AA0: 29 04 AND #$04 Is Dual Wield enabled?
C3/9AA2: F0 02 BEQ $C39AA6 If not, branch to duplicate check
C3/9AA4: 38 SEC
C3/9AA5: 60 RTS
;Fork: Duplicate Check
C3/9AA6: BF 00 50 D8 LDA $D85000,X (Load item type X)
C3/9AAA: 29 07 AND #$07 zero out upper nibble
C3/9AAC: C5 F6 CMP $F6 ????
C3/9AAE: F0 2E BEQ $9AD1 if the above line is true, exit function
C3/9AB0: 38 SEC
C3/9AB1: 60 RTS
C3/9AB2-C3/9AD0 EA... NOPed Out
Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
08-24-2018, 04:02 PM
(This post was last modified: 08-24-2018, 04:31 PM by PowerPanda.)
Bump?
To be clear, I've identified the code that needs to be changed, optimized it, and done a check on the equipped item to make sure it can support a second weapon. I've mostly created the logic for the second piece, which examines the item in the list to see if it can ALSO support a second weapon, but I don't know how to evaluate the LIST item's properties rather than the equipped items.
To be clear, I've identified the code that needs to be changed, optimized it, and done a check on the equipped item to make sure it can support a second weapon. I've mostly created the logic for the second piece, which examines the item in the list to see if it can ALSO support a second weapon, but I don't know how to evaluate the LIST item's properties rather than the equipped items.
Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
08-24-2018, 05:54 PM
(08-24-2018, 04:02 PM)PowerPanda Wrote: I've mostly created the logic for the second piece, which examines the item in the list to see if it can ALSO support a second weapon, but I don't know how to evaluate the LIST item's properties rather than the equipped items.
I don't know if I understand this correctly, but if your item is in the list (you need to loop the list) multiply item ID by $1E (size of item data), store in X and load your property byte with a LDA $D850??,X (see item properties).
08-24-2018, 06:23 PM
(This post was last modified: 08-25-2018, 09:35 PM by PowerPanda.)
Thank you for replying, Madsiur, but after 2 days of messing around with it, I GOT IT! The trick was that the list item was no longer in the Y accumulator at the point where I was trying to do my check. I needed to store the value earlier on in the code, then check against it later. So, I scrolled up in the code to where it stores the item class for the list item to $F6, then added another 8-byte chunk that stored the value for the "Dual Wield" flag to $F7. Once I had that value safely stored away, I was able to change the accumulator to the equipped item, do all the normal checks, and then check the dual wield flag of the equipped item against $F7.
I have tried this with every combination I can think of, and it seems to be working as intended. I have also tested this with the Gauntlet, and both effects work in tandem with one another. Now, to dig into the Optimize routine and the C2 re-equip. Semi-final code is as follows. Note that due to Novalia Spirit's optimization, I was able to make all of these additions and still save 13 bytes.
I have tried this with every combination I can think of, and it seems to be working as intended. I have also tested this with the Gauntlet, and both effects work in tandem with one another. Now, to dig into the Optimize routine and the C2 re-equip. Semi-final code is as follows. Note that due to Novalia Spirit's optimization, I was able to make all of these additions and still save 13 bytes.
Code:
;Determine if gear list entry is disabled
C3/9A56: 5A PHY ...
C3/9A57: AA TAX Gear List Slot
C3/9A58: BF 8A 9D 7E LDA $7E9D8A,X Inventory Slot
C3/9A5C: AA TAX Index it
C3/9A5D: BD 69 18 LDA $1869,X Item in slot
C3/9A60: 20 21 83 JSR $8321 Compute Index
C3/9A63: AE 34 21 LDX $2134 Load it
C3/9A66: BF 00 50 D8 LDA $D85000,X Get Item Properties 00
C3/9A6A: 29 07 AND #$07 Get Class
C3/9A6C: 85 F6 STA $F6 Save it to F6
C3/9A6E BF 13 50 D8 LDA $D85013,X Get Item Properties 13
C3/9A72 29 04 AND #$04 Check Dual Wield Flag
C3/9A74 85 F7 STA $F7 Save it to F7
C3/9A76: 7A PLY ...
C3/9A77: A5 5F LDA $5F Check Slot
C3/9A79: C9 02 CMP #$02 Head or Body?
C3/9A7B: B0 55 BCS $9AD2 If so, jump to 9AD2
C3/9A7D: C9 01 CMP #$01 L-Hand/Relic 2?
C3/9A7F: F0 05 BEQ $9A86 if no, branch to R-Hand
;Fork: For L-Hand
C3/9A81: B9 20 00 LDA $0020,Y Check Left Hand's Item
C3/9A84: 80 03 BRA $C39A81 skip next line
;Fork: For R-Hand
C3/9A86: B9 1E 00 LDA $001E,Y Check Right Hand's Item
C3/9A89: C9 FF CMP #$FF is it empty?
C3/9A8B: F0 23 BEQ $9AC3 if so, jump to $9AB0 (enable)
C3/9A8D: 20 21 83 JSR $8321 compute index
C3/9A90: AE 34 21 LDX $2134 load it
C3/9A93: BF 00 50 D8 LDA $D85000,X Check properties
C3/9A97: 29 07 AND #$07 Get Class
C3/9A99: C9 03 CMP #$03 Is it a Shield?
C3/9A9B: F0 28 BEQ $9AC5 if so, branch to duplicate check
; Genji Glove/Dual Wield check
C3/9A9D: AD D8 11 LDA $11D8 Check character properties
C3/9AA0: 29 10 AND #$10 check for "allow weapon in each hand"
C3/9AA2: F0 21 BEQ $9AC5 If not, branch to duplicate check
C3/9AA4: BF 13 50 D8 LDA $D85013,X Check Weapon Properties
C3/9AA8: 29 04 AND #$04 Is Dual Wield enabled?
C3/9AAA: F0 19 BEQ $9AC5 If not, branch to duplicate check
C3/9AAC: C5 F7 CMP $F7 Is Dual Wield enabled on list item?
C3/9AAE: D0 15 BNE $9AC5 If not, branch to duplicate check
C3/9AB0: 38 SEC allow item
C3/9AB1: 60 RTS end
C3/9AB2-9AC4 EA NOP ($13 bytes)
;Fork: Duplicate Check
C3/9AC5: BF 00 50 D8 LDA $D85000,X Load item in hand
C3/9AC9: 29 07 AND #$07 get item class
C3/9ACB: C5 F6 CMP $F6 is it the same as the list item?
C3/9ACD: F0 02 BEQ $9AD1 if so, branch to $9AD1 (deny)
C3/9ACF: 38 SEC allow item
C3/9AD0: 60 RTS end
C3/9AD1: 18 SEC deny item
C3/9AD2: 60 RTS end
Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
The following 3 users say Thank You to PowerPanda for this post:
• madsiur (08-24-2018), Robo Jesus (05-20-2019), Warrax (08-25-2018)
• madsiur (08-24-2018), Robo Jesus (05-20-2019), Warrax (08-25-2018)
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)