øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=1975.45e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index1b6a-2.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&board=17.60e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index1b6a-2.html.zxŒ9h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ °VBOKtext/htmlISO-8859-1gzip@øÕBÿÿÿÿÿÿÿÿWed, 11 Mar 2020 01:22:44 GMT0ó°° ®0®P®€§²ð®‹9h^ÿÿÿÿÿÿÿÿ”%B FFV patches (and compatibility with each other)

Author Topic: FFV patches (and compatibility with each other)  (Read 31722 times)

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #45 on: December 15, 2014, 11:04:46 AM »
I guess if we're just looking for a straightup bug fix rather than something that affects balance, I'll try and incorporate reply 32 to the Fractional M patch.

Assuming all this is unheadered stuff...

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #46 on: December 15, 2014, 11:11:36 AM »
Assuming all this is unheadered stuff...

It is. Anyway if it doesn't work for you, let me know and I'll double check dissasembling the Fractional M code.
As always, backup before hexcoding.

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: FFV patches (and compatibility with each other)
« Reply #47 on: December 15, 2014, 12:20:28 PM »
looking at the code, what's to stop the vanilla game from experiencing damage overflows in a large number of attacks?

C2/00D2 is used to put (Attack - Defense) * M in 32-bit $2E - $31.  most callers simply cap 16-bit $2E at 9999, ignoring the top 2 bytes.  the only ones i see that account for them are Gravity, and formulas based on Target or Attacker Max or Current HP.

this seemingly leaves most damage types subject to an overflow.  Goblin Punch is a prime candidate, with its adding the hands' powers together, and its ability to zero Defense and multiply M by 8.  however, other attacks should be vulnerable as well, if target Defense is low enough, and the attacker has high level, high stats, and a strong weapon.

level can go up to 99, right?  what about Strength and Agility?

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #48 on: December 15, 2014, 12:53:03 PM »
I'm going to put the Fractional M fix. I assume if we can do a damage overflow fix, it will still work in conjunction with the rest?

*edit* Attachment of IPS - Usual caveat about uncertain usage of Assembly - is there a better tool to use than ASMDev for the SNES roms?

« Last Edit: December 16, 2014, 07:22:31 PM by Digitsie »

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #49 on: December 16, 2014, 04:24:02 AM »
is there a better tool to use than ASMDev for the SNES roms?

I write ASM and translate into opcodes by hand, so I cannot help you there.

After dissasembling the file resulting of apply the IPS to a RPGe version of the game, it seems to work properly with the knife formula. Well done.

On the other hand I see you tried to fix also the Goblin Punch issue, but I think is not working.
The fix suggested by assassin in Reply #19 was:

Code: [Select]
C2/85C3: 22 68 2E D0  JSL $D02E68 (M = Monster Attack Multiplier * 128)
C2/85C7: EA           NOP
C2/85C8: EA           NOP
C2/85C9: 80 1D        BRA $85E8

But your IPS do:

Code: [Select]
C2/85C3: 22 68 2E D0  JSL $D02E68 (M = Monster Attack Multiplier * 128)
C2/85C7: 86 52        STX $52     (M = 0 now, cause function D02E68 let X as 0 when return)
C2/85C9: 80 1D        BRA $85E8

Could you review that?

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #50 on: December 16, 2014, 05:10:41 AM »
Could you guys also produce a patch that only contains the fractional M system (with Goblin Punch fixed)? It would be useful to have one around.

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #51 on: December 16, 2014, 05:58:19 AM »
Could you guys also produce a patch that only contains the fractional M system (with Goblin Punch fixed)? It would be useful to have one around.

Sure. Here you are.

 :edit: The attachment file has been fixed.
« Last Edit: December 17, 2014, 03:38:50 AM by noisecross »

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #52 on: December 16, 2014, 06:08:45 AM »
Much appreciated!

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #53 on: December 16, 2014, 06:54:56 AM »
Whoops, I should note the Fractional M+Knife is actually also the goblin punch fix too, but... yeah, I got to correct that. Will do later today.

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #54 on: December 16, 2014, 10:01:35 AM »
Well... it seems nobody likes my approach of using the average of Strength and Agility.

That's a good thing as the Agility is only higher than Strength in few classes and these classes are in fact the ones which use the knives... performing an average is harmful to these classes as it is to the fighter classes so I better dismiss this approach.

Then, in order of not unbalancing the game I agree with Jorgur in let the the formula as it is in the vanilla game (as he said in the topic "InstructrTrepe's docs and patches").

Talking about the Fractional M patch, it uses a "complicated" fix which ends increasing the damage output of the formula by around 50%. So maybe, instead of ignoring agility at all, it should be nice rewarding the Agility based classes with that "more complicated but not unbalanced" formula:

If Strength > Agility,
  M = (Strength * Level / 128) + 2
Otherwise,
  M = (Agility *  Level / 128) + 2

 :edit: If somebody wants to try this, the edition in a Fractional M file (without any previous knife formula edition) is the next one:

Code: [Select]
C2/80F3: B0 02        bcs $80F7     
C2/80F5: 80 08        bra $80FF    (Strength is higher and is set in $24)
C2/80F7: 85 24        sta $24      (Agility is higher and is set in $24)
C2/80F9: 80 04        bra $80FF
C2/80FB: EA EA EA EA  nop nop nop nop

C2/80F3: B0 02 80 08 85 24 80 04 EA EA EA EA
« Last Edit: December 16, 2014, 12:17:11 PM by noisecross »

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #55 on: December 16, 2014, 03:18:44 PM »
I'm going to defer to Jorgur on this - he's got a better grasp on balancing where levels are concerned, for sure.

BTW, why do you want the Fractional / Goblin Fix but not with the knife fix, Jorgur? I'd rather have the best overall approach to just fixing the play, and wondering if I should just finish the Goblin / Knife fix.

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #56 on: December 16, 2014, 07:26:07 PM »
Uploaded.

This -should- be the Fractional M + Goblin Punch + Knife fix.

(BTW, noise, why is your ips patch larger than mine?)

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #57 on: December 16, 2014, 07:28:08 PM »
BTW, why do you want the Fractional / Goblin Fix but not with the knife fix, Jorgur? I'd rather have the best overall approach to just fixing the play, and wondering if I should just finish the Goblin / Knife fix.
Huh? I wasn't trying to stop you from making an overall improvement patch. I simply thought it might be useful to have a patch that simply adds a fractional M system. Why not have one of each?

Well... it seems nobody likes my approach of using the average of Strength and Agility.
It's a technically good approach as an alternative to M = (Level*Strength)/256 + (Level*Agility)/256 + 2, since you avoid the issue of damage leaps which I explained earlier.  I simply don't believe Agility should be a part of the calculation.

Uploaded.

This -should- be the Fractional M + Goblin Punch + Knife fix.

(BTW, noise, why is your ips patch larger than mine?)
Yes, this seems strange. Just to clarify, what I meant in my request was a patch that adds a fractional M system without affecting the Knife damage formula at all.

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #58 on: December 16, 2014, 08:22:37 PM »
Huh? I wasn't trying to stop you from making an overall improvement patch. I simply thought it might be useful to have a patch that simply adds a fractional M system. Why not have one of each?

Oh, no, I just wondered, because I liked the notion of having a fixed Fractional M (with goblin punch -and- knife fixed), and was wondering why you just wanted Fractional M + Goblin Punch fix if you had a different fix in mind. :)

I'm looking at my assembly and it -looks- correct for having the Fraction M, Goblin Bug, and the Knife fix, but I'm no assembly expert.

« Last Edit: December 16, 2014, 08:31:18 PM by Digitsie »

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: FFV patches (and compatibility with each other)
« Reply #59 on: December 16, 2014, 08:29:45 PM »
Quote
I simply don't believe Agility should be a part of the calculation.

but it's unlikely Square had Agility in that function by accident.  so imho, the best fix tries to figure out in what capacity Agility would've likely been used, while still retaining balance.

without an extra term in the formula, Knives are more of a poor man's Swords.  they don't really have anything to set them apart.

no disagreement on the advantage of separate patches being available.