øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=1975.msg22021;topicseene:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexa4ed.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=2188.30e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexa4ed.html.zxp;h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ P[D OKtext/htmlISO-8859-1gzip0|ÖD ÿÿÿÿÿÿÿÿWed, 11 Mar 2020 01:30:48 GMT0ó°° ®0®P®€§²ð®o;h^ÿÿÿÿÿÿÿÿ)(D  FFV patches (and compatibility with each other)

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

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 #165 on: December 28, 2014, 02:30:24 PM »
Quote
It looks like we might have a misunderstanding here.

yes, there was some.  i thought you were fixated on avoiding 0 damage, but fine with everything else down to that, and that you considered Square to have the same motives.

your 09:38:34 AM post clears things up a bit.

lemme run down what i think your positions are; correct me anywhere.

1) as a supporter of the Fractional M patch, you don't favor the round-downs to M that were causing "steps" in the original game's damage ascent.
2) you're not against pathetically low M values (like a hypothetical of 0.08) possibly causing 0 damage.
3) but you don't believe that all M values from 0.01 to 0.99 should result in 0 damage.
4) nor do you favor all of them having a marginally nonzero damage value like 1, because that's nearly as bad.
5) you believe that Square established a Minimum M of 1 not because they always wanted damage to be >= (Attack - Defense), but because they were trying to perform a preemptive round-up to avoid the widespread round-downs to zero damage described in #3.
6) you believe that a patch which eliminates said round-downs is no longer in need of preemptive round-ups.  and that these round-ups were essentially the other side of the same dirty coin as the step-inducing round-downs.

Spooniest

  • Antlion
  • *
  • Posts: 59
  • Gender: Male
  • Coffee Warrior
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #166 on: December 28, 2014, 02:38:23 PM »
I think my head just exploded
DID YOU ORDER THE CODE RED?

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #167 on: December 28, 2014, 04:00:57 PM »
I think my head just exploded
:tongue:

lemme run down what i think your positions are; correct me anywhere.

1) as a supporter of the Fractional M patch, you don't favor the round-downs to M that were causing "steps" in the original game's damage ascent.
2) you're not against pathetically low M values (like a hypothetical of 0.08) possibly causing 0 damage.
3) but you don't believe that all M values from 0.01 to 0.99 should result in 0 damage.
4) nor do you favor all of them having a marginally nonzero damage value like 1, because that's nearly as bad.
5) you believe that Square established a Minimum M of 1 not because they always wanted damage to be >= (Attack - Defense), but because they were trying to perform a preemptive round-up to avoid the widespread round-downs to zero damage described in #3.
6) you believe that a patch which eliminates said round-downs is no longer in need of preemptive round-ups.  and that these round-ups were essentially the other side of the same dirty coin as the step-inducing round-downs.

1) I do not favor them, but I respect the fact that they are part of the game. Because of this, I classify the Fractional M system as a game modification, not a bug fix.
2) True (but this will mainly happen in cases where defense is almost high enough to nullify damage anyway)
3) True
4) True
5) True
6) True


noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #168 on: December 29, 2014, 09:53:37 AM »
Ok. After tracing, the code is working perfectly. This is happening after changing "If M = 0 then M = 128" to "If M < 128 then M = 128" in the final Damage calculation.
We can edit it again to allow, in example, a "If M < 16 then M = 16" or something similar.

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #169 on: December 29, 2014, 02:39:30 PM »
I think that works for me, if you want to set a minimum. I'm thinking 128 would be fine, as it would make it match up with the original, right?

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #170 on: December 29, 2014, 02:50:31 PM »
I think that works for me, if you want to set a minimum. I'm thinking 128 would be fine, as it would make it match up with the original, right?
It would, but we were just discussing why the original minimum M value was there in the first place. I am suggesting that there doesn't need to be a minimum M value in a fractional M system.

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #171 on: December 29, 2014, 04:15:52 PM »
Well if you want it to behave closely enough to the original in terms of 'level 5 can kill beast with lightning', then doesn't it need to -have- a minimum in the first place? Or do you just want to make sure the fractional M never hits zero?

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #172 on: December 29, 2014, 04:44:01 PM »
The only reason I can found to doesn't allow a 0 M is avoiding 0 damage whenever Defense < Attack.
The Fractional M can keep a similar round than the original formula with M < 128 => M = 128, but we can also set M < 16 => M = 16 or  M != 0 => M = 1.

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 #173 on: December 29, 2014, 06:07:01 PM »
i'm leaning towards favoring Jorgur's approach, now that i better understand his reasoning, and Square's likely motivation in "why the original minimum M value was there in the first place".

the most direct way is to change the two Minimum M checks and floors into NOPs (and the new mini-function would no longer be needed).

simply leaving the original code unaltered would have a similar effect, because M=1 with the Fractional M patch applied would be equivalent to old M=1/128.  that'd behave like M=0 in most circumstances, aside from something where M was quite low and Attack was quite high.  as rare as that is, i'm a bit of a purist, and prefer the NOP way.

doing away with Minimum M does raise the question of monsters who weirdly have "ATT. MULT: 0".  there are only several, and most either have Level or Attack of 0 as well, or don't even use Fight.  so really, that leaves us with the Level 52 Imp.  its Fight and Specialty will go from doing 65 damage on a Defense-less character to 0 damage.  that's a non-trivial change on paper, although most characters won't be naked at that point.

what do we suppose Square had in mind for that Imp's damage, if anything?  i'm not suggesting we bend code to remove that one case of damage plummet, but would even something as simple as editing Imp's ATT. MULT to 1 be an admission of sorts that we don't like how our damage formula works?  i.e. a cop-out?  or do we rationalize it by saying ATT. MULT of 0 was a typo?  or do we show some principle and backbone, and let that damned dirty Imp do the zero damage?

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #174 on: December 30, 2014, 07:08:26 AM »
Well if you want it to behave closely enough to the original in terms of 'level 5 can kill beast with lightning', then doesn't it need to -have- a minimum in the first place?
I don't understand this argument.

Or do you just want to make sure the fractional M never hits zero?
No, that's fine, but it shouldn't be possible. M starts out at least 128/128.
Attacking to/from back row: 128/4 = 32
Defending: 32/2 = 16
Armor status: 16/2 = 8
Using X-Fight: 8 / 2 = 4
Fractional M will normally never go any lower than 4/128.

I don't see why it should be floored at 16, it may as well go all the way down to 0.

i'm leaning towards favoring Jorgur's approach, now that i better understand his reasoning, and Square's likely motivation in "why the original minimum M value was there in the first place".

the most direct way is to change the two Minimum M checks and floors into NOPs (and the new mini-function would no longer be needed).

simply leaving the original code unaltered would have a similar effect, because M=1 with the Fractional M patch applied would be equivalent to old M=1/128.  that'd behave like M=0 in most circumstances, aside from something where M was quite low and Attack was quite high.  as rare as that is, i'm a bit of a purist, and prefer the NOP way.
I agree with this. M=1/128 and M=0/128 is essentially the same, and the unused space might come in handy.

doing away with Minimum M does raise the question of monsters who weirdly have "ATT. MULT: 0".  there are only several, and most either have Level or Attack of 0 as well, or don't even use Fight.  so really, that leaves us with the Level 52 Imp.  its Fight and Specialty will go from doing 65 damage on a Defense-less character to 0 damage.  that's a non-trivial change on paper, although most characters won't be naked at that point.

what do we suppose Square had in mind for that Imp's damage, if anything?  i'm not suggesting we bend code to remove that one case of damage plummet, but would even something as simple as editing Imp's ATT. MULT to 1 be an admission of sorts that we don't like how our damage formula works?  i.e. a cop-out?  or do we rationalize it by saying ATT. MULT of 0 was a typo?  or do we show some principle and backbone, and let that damned dirty Imp do the zero damage?
Sounds to me like a simple typo, in which case Square would be the one to blame. I think it would be out of scope to simply fix it, but if you plan to make a readme file you could describe the problem in there and tell people how to do it themselves. I'm sure anyone who goes out of their way to install a fractional M system could be bothered to do a simple hex edit.

 :edit:
An alternative would be to make a separate "Imp fix" patch.
« Last Edit: December 30, 2014, 12:01:13 PM by Jorgur »

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #175 on: December 30, 2014, 10:26:14 AM »
I don't understand what Jorgur feel M should be rangewise because you seem to keep arguing seemingly different things about what M should be, but since I have a better understanding of what assassin's saying, I'm inclined to just take his approach and just NOP it.

Definitely do want the M imp fix, though, just to make it feel close enough to the original game.

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #176 on: December 31, 2014, 11:53:28 AM »
We are talking then about avoiding the minimum M check, isn't it?
Why didn't let the original "if M = 0 then M = 1" to keep the Square approach?
Could we face new issues if we allow 0 values in M?

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 #177 on: December 31, 2014, 01:04:59 PM »
- yes
- because with the Fractional M patch in place, that M = 1 is equivalent to M = 1/128.  that's why we were raising it to 128 in the Delta patch -- to maintain original functionality.
- not many come to mind, aside from that Level 52 Imp example.  however, flooring M at 1 would have pretty much the same result for it.

i had once considered attacks losing the (Attack - Defense) lower damage bound to be an issue, as a "reinterpretation" perhaps meant for an optional second patch.  however, Jorgur has largely talked me out of the concern.  see my December 28, 2014, 02:30:24 PM post and his response for a rundown of his/our/my thinking on the matter.

under the system envisioned, NOPing the "if M = 0 then M = 1" checks is more technically correct than keeping them (albeit the same result in most cases), and it'll also free up 2 bytes at C2/8A11 and 3 bytes at C2/940E.

(for the former, i was gonna say 6 bytes at C2/8A0D, but Square apparently has "Check Target Can't Evade vs. Attack" contingent upon M having been 0 ==> 1.  that raises the question why "REP #$20 / ASL $52 / SEP #$20" even needs the REP and SEP, if they know 16-bit $52 has to hold 1.  i'm leery of this stretch of code's narrow usage, and how it differs from that at C2/881D.  the branch at C2/8A0F spanning so far seems odd in particular.  but i'm willing to respect it for time being, which is why i said only NOP 2 bytes at C2/8A11.)

Spooniest

  • Antlion
  • *
  • Posts: 59
  • Gender: Male
  • Coffee Warrior
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #178 on: December 31, 2014, 07:34:31 PM »
An uneducated idiotic response to this is that you guys are arguing over whether one bit should be set to 1 or 0?

:| I'm way out of my depth here. I just edit scripts.
DID YOU ORDER THE CODE RED?

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 #179 on: December 31, 2014, 08:04:42 PM »
no, we're arguing over who Britain's best all-time Prime Ministers were.