Users browsing this thread: 1 Guest(s)
Excluding Weapons from Use With Genji Glove

#11
Posts: 311
Threads: 20
Thanks Received: 0
Thanks Given: 0
Joined: Dec 2017
Reputation: 2
Status
None
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!
  Find
Quote  

#12
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(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. Tongue

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
  Find
Quote  

#13
Posts: 200
Threads: 1
Thanks Received: 10
Thanks Given: 0
Joined: Oct 2015
Reputation: 18
Status
None
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.
Quote  

#14
Posts: 110
Threads: 4
Thanks Received: 4
Thanks Given: 1
Joined: Jan 2012
Reputation: 4
Status
None
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.
  Find
Quote  
[-] The following 1 user says Thank You to dn for this post:
  • Robo Jesus (05-20-2019)

#15
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(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
  Find
Quote  
[-] The following 1 user says Thank You to PowerPanda for this post:
  • Robo Jesus (07-24-2019)

#16
Posts: 208
Threads: 3
Thanks Received: 0
Thanks Given: 8
Joined: May 2013
Reputation: 0
Status
None
(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.



  Find
Quote  
[-] The following 2 users say Thank You to Warrax for this post:
  • PowerPanda (08-13-2018), Robo Jesus (05-20-2019)

#17
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
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/)

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
  Find
Quote  

#18
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
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.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#19
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(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).
  Find
Quote  

#20
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
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.


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
  Find
Quote  
[-] 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)



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite