øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=1975.150e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexb9ea-3.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&board=17.60e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexb9ea-3.html.zxŽ9h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ °VÞOOKtext/htmlISO-8859-1gzip0|ÖÞOÿÿÿÿÿÿÿÿWed, 11 Mar 2020 01:22:47 GMT0ó°° ®0®P®€§²ð®Ž9h^ÿÿÿÿÿÿÿÿ51ÞO FFV patches (and compatibility with each other)

Author Topic: FFV patches (and compatibility with each other)  (Read 31722 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 #150 on: December 26, 2014, 04:44:09 PM »
Quote from: Jorgur
One thing I noticed just now is that fractional M doesn't seem to apply to monsters' Fight command.  This means that if you are using Defend/back row and the monster's M is 1, you will still take full damage.

that's probably Minimum M kicking in.  the original game would set it to 1 if it was 0.  accordingly, our patch gives it a floor of 128 to behave equivalently, as a division by 128 occurs later.

the fractionalizing still works as expected for higher M values, because /2 modifiers won't bring them below the minimum.

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #151 on: December 26, 2014, 04:53:44 PM »
It seems so, but I am not sure if that is going to have a high impact on damage.
Well, Carcursers have 75 HP. If you use a Bolt spell it will do 70 damage instead of 75 because of Atk/2*2. If it did 75 damage it would always kill the Carcursers in one hit (which I think might have been the developers' intention).

I probably don't understand this as well as I should, but couldn't the fractional M system be redesigned to fix this somehow? Perhaps multiply Attack and M before applying Attack/2 modifiers?

One thing I noticed just now is that fractional M doesn't seem to apply to monsters' Fight command.
The addresses C2/8246 and C2/825A are edited by the Fractional M patch. What is the issue there?
Nut Eater
Attack 5
Multiplier 2

A Nut Eater attacks a character with defense 0. Regular attacks do 10 damage. While using defend it's 5 damage. While using defend in the back row it's still 5 damage (it should be 2).

So yeah, minimum M still seems to be 1. It would be really nifty if it could go lower, like 0.125 (1/8) in the more extreme cases (armor buff, defend, back row).
« Last Edit: December 26, 2014, 06:03:20 PM by Jorgur »

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #152 on: December 26, 2014, 06:53:22 PM »
I need a little bit of research to realize why is that happening.
Apparently, just after reading the nut eater M value, that value is mult by 128. That means, it is 512 before being split twice to 128 after applying back row and defense. I don't see a clear trace as I don't really found where is done the "Damage = Attack * Mult"...

I'll trace it tomorrow.

I probably don't understand this as well as I should, but couldn't the fractional M system be redesigned to fix this somehow? Perhaps multiply Attack and M before applying Attack/2 modifiers?

Yes, it could be redesigned but it probably means checking the code in every Attack Type to be sure the modifiers are performed in the right order.

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 #153 on: December 27, 2014, 04:24:23 AM »
Quote
Well, Carcursers have 75 HP. If you use a Bolt spell it will do 70 damage instead of 75 because of Atk/2*2. If it did 75 damage it would always kill the Carcursers in one hit (which I think might have been the developers' intention).

how would they know what level the caster of Bolt was going to be?  this theory seems unlikely; if the developers wanted a specific reaction to a spell or element, they would've done something like "React:Elemental Attack:Element:" in the monster script.

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #154 on: December 27, 2014, 04:39:11 AM »
how would they know what level the caster of Bolt was going to be?
Simple. If you play standard FF5 without grinding or running you will hit level 5 right around the time you meet Carcursers. Once you hit level 5 you can start killing Skeletons and Carcursers in one Fire or Bolt spell. Game designers do this all the time; they have to pay attention to small details like this.
« Last Edit: December 27, 2014, 10:57:39 AM by Jorgur »

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 #155 on: December 27, 2014, 05:36:36 AM »
Quote
A Nut Eater attacks a character with defense 0. Regular attacks do 10 damage. While using defend it's 5 damage. While using defend in the back row it's still 5 damage (it should be 2).

"should be" by your standards.  i don't intend that as snippy; just mean there are reasons to think otherwise.

Quote
So yeah, minimum M still seems to be 1. It would be really nifty if it could go lower, like 0.125 (1/8) in the more extreme cases (armor buff, defend, back row).

this goes to the heart of *why* Square had Minimum M in the first place.  it's fairly obvious they were trying to avoid low M causing 0 damage.  instead, there is a floor that's usually well above that (depending on Attack and Defense values).  the question is: how averse would Square have been to values that aren't zero, but are ridiculously close to it?  if having nonzero damage were their only goal, they could simply have given the damage value itself a floor of 1 -- but they chose to modify M instead.

besides, pretty much every M formula already has a constant value at the end (e.g. " + 2"), so starting M is _already_ nonzero.  the fact that Square waited until late in the damage calculation to ensure its minimum is 1 strongly suggests that they wanted to limit the effects that the divide-by-2 modifiers would have on low-end damage.

from what i've read of the Fractional M patch, its purpose was: as an attacker progresses from the low end of their damage range to the higher, to smooth the ascent of this damage, instead of it moving up in "steps".  doing away with the lower bound in addition to this is a bit of a reinterpretation of the patch.  i don't recall seeing anything in the patch Readme or the old thread that says the goal was to change the damage range -- just to modify the progression through it.

i'm not saying your interpretation is wrong.  simply that there's enough evidence to the contrary of it, and that if Square's only concern were avoiding zero damage, they would have taken a more direct and less aggressive approach.  saying an instance of Nut Eater damage "should be" lower is subjective, at the least.
« Last Edit: December 27, 2014, 05:43:41 AM by assassin »

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #156 on: December 27, 2014, 12:25:51 PM »
this goes to the heart of *why* Square had Minimum M in the first place.  it's fairly obvious they were trying to avoid low M causing 0 damage.  instead, there is a floor that's usually well above that (depending on Attack and Defense values).  the question is: how averse would Square have been to values that aren't zero, but are ridiculously close to it?  if having nonzero damage were their only goal, they could simply have given the damage value itself a floor of 1 -- but they chose to modify M instead.
Some games use 1 as a damage floor (SD3, AoE2), but FF5 uses 0. If FF5 used 1, it would not be possible to nullify damage by having high defense (Bone Mail, Cursed Ring, etc.). I don't think giving the final damage a floor of 1 was ever a possibility.

(Vanilla FF5)
As for why the minimum M value is 1, is it not simply because 1 is the lowest number an integer can be? Giving it a floor of 0 would be silly; you would be able to nullify damage (high atk, low M) by simply using Defend or being in the back row.

saying an instance of Nut Eater damage "should be" lower is subjective, at the least.
It seems logical to me that both back row and Defend modifiers should come into effect when facing Goblins and Nut Eaters just like with high level monsters. When you are defending in the back row you should expect that the regular 10 damage will be reduced to 10/2/2=2. This is not possible when M is an integer, but with the fractional M system I see no reason why this shouldn't be made possible (correct me if I am wrong).
« Last Edit: December 28, 2014, 12:07:47 PM by Jorgur »

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 #157 on: December 27, 2014, 01:29:09 PM »
this goes to the heart of *why* Square had Minimum M in the first place.  it's fairly obvious they were trying to avoid low M causing 0 damage.  instead, there is a floor that's usually well above that (depending on Attack and Defense values).  the question is: how averse would Square have been to values that aren't zero, but are ridiculously close to it?  if having nonzero damage were their only goal, they could simply have given the damage value itself a floor of 1 -- but they chose to modify M instead.
Some games use 1 as a damage floor (SD3, AoE2), but FF5 uses 0. If FF5 used 1, it would not be possible to nullify damage by having high defense (Bone Mail, Cursed Ring, etc.). I don't think giving the final damage a floor of 1 was ever a possibility.

good points.. but they don't change the fact that in cases where Attack is notably above Defense, Minimum M serves to elevate damage well above 1.  (e.g. 30 Attack - 0 Defense gets a damage of at least 30.)  and the patch changes you propose would eliminate much of that elevation.

let me amend my statement from the last post (italics for added part):

Quote from: assassin
If having nonzero damage were their only goal, they could simply have given the damage value itself a floor of 1 whenever Attack exceeds Defense -- but they chose to modify M instead.

Quote from: Jorgur
As for why the minimum M value is 1, is it not simply because 1 is the lowest number an integer can be? Giving it a floor of 0 would be silly; you would be able to nullify damage (high atk, low M) by simply using Defend or being in the back row.

if the math causes the damage in these cases to round down to zero, what's so silly about it being kept as zero?  you seem to be arguing that it's not silly to bring Minimum M down from 1 to 1/8, but suddenly it's an issue when it goes from 1/8 to 0?  why?!  arithmetically, 1/8 is closer to 0 than it is to 1.

and that was the main point of my last post: if Square's Minimum M established a damage floor well above zero (for cases of reduced M, not the high Defense >= Attack example), how sane is it to assume that throwing out a majority of this floor is in keeping with Square's intentions?


Quote
It seems logical to me that both back row and Defend modifiers should come into effect when facing Goblins and Nut Eaters just like with high level monsters. When you are defending in the back row you should expect that the regular 10 damage will be reduced to 10/2/2=2.

but it didn't necessarily seem logical to Square.  which is why they do the following:

1) M = some term (e.g. (Level * Strength)/128) + constant.  That last term is evidence that they wanted nonzero M, even for wimpy attackers.
2) Various M or Attack modifiers, including division of M by 2.
3) If M is 0, set it to 1.  Evidence that they were serious about that nonzero M.
4) Damage = (Attack - Defense) * M

Quote
This is not possible when M is an integer, but with the fractional M system I see no reason why this shouldn't be made possible (correct me if I am wrong).

it's possible, but like i said in the last message, it's a bit of a reinterpretation.

what you haven't really answered from my last post is: Do you think Square set Minimum M to 1 because they wanted to ensure damage of at least (Attack - Defense), or do you think they did it because they wanted to ensure Damage was merely >= 1?  if your answer is the latter, then tell me:

1) what's so significant about the change from 0 to 1 that it's worth the effort?
2) why M was used to try and achieve the goal.  Square could have floored the damage value at 1 whenever Attack exceeds Defense, but instead opted to put a lower bound on M instead, knowing that would result in considerably higher damage.

as your position stands now, you're asserting that most of Square's Minimum M is expendable, yet expending all of it is "silly".  what makes you so confident in both stances?

my position is that a plummet from 1 to 1/8 is at least as silly as that from 1/8 to 0.

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #158 on: December 27, 2014, 07:28:59 PM »
I feel the need to clean up the discussion a little. I fear there might have been some misunderstandings along the way.

Let me first describe the issue to everyone.
Quote from: Me
Nut Eater
Attack 5
Multiplier 2

A Nut Eater attacks a character with defense 0. Regular attacks do 10 damage. While using defend it's 5 damage. While using defend in the back row it's still 5 damage.
In my opinion, it should be 2 damage in the last case.

This is what happens (in vanilla FF5):
Code: [Select]
Attack = 5
M = 2

Defend modifier: M / 2 = 2 / 2 = 1

Back row modifier: M / 2 = 1 / 2 = 0.5
0.5 rounds down to 0

If M = 0, M is set to 1

5 * 1 = 5

The damage ends up at 5 because M cannot be lower than 1.

The player is not rewarded for using multiple defenses (Defend, Armor, back row). It becomes meaningless to use Defend or Armor buff in the back row while fighting certain monsters (especially early in the game). I believe this is a problem caused by a simple engine limitation: M can never be lower than 1.

I propose that, in your fractional M patch, you change the code so that M can be a fraction between 0 and 1, but never 0.



Now, let's see if I have understood assassin's arguments correctly. Please forgive me for any misunderstandings.


You believe that:
1. There is a reason why the developers set the lower limit for M to be 1 when it could have been 0.
Thus implying:
2. Allowing M to be 0 is an idea at least worth considering

If "2" is false then "1" is also false. If M >= 0 is not an option, M >= 1 is the only logical choice. In this event it is safe to assume that they set the floor for M to 1 for mere technical reasons.

Am I right so far?


I believe the developers set minimum M to be 1 rather than 0 to ensure that every attack does at least a little bit of significant damage (which in vanilla FF5 ends up being Attack - Defense). Attacking from back row to back row (with a decent sword) and doing 0 damage would be incredibly frustrating. Let's assume that M can be 0. You are fighting Magisa and Forza, and you use physical attacks against Magisa while she is in the back row with the Armor buff.

All your attacks would do 0 damage!

This is what I mean by "silly". Doing 4 damage, or 12 damage, or 15 damage is fine, but doing absolutely no damage would cause confusion and frustration.



I hope I'm not coming off as being offensive. My intention is to increase the quality of our hacks in any way I can. In fact, I welcome constructive criticism and counter-arguments.

Now, it is time for bed.  :sleep:
« Last Edit: December 28, 2014, 09:29:16 AM by Jorgur »

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 #159 on: December 27, 2014, 08:42:29 PM »
Quote
Am I right so far?

not really. :P 


I believe that:

1. There is a reason why the developers set the lower limit for M to be 1 when it could have been 0.  Namely, it's very likely that they wanted to make a lower damage limit of (Attack - Defense).  If their only goal was to avoid 0 damage, they could simply have floored the damage value at 1 whenever Attack exceeds Defense.

Thus implying:

2. A patch that puts off the divide by 128 should set the lower limit for M to be 128, to behave equivalently to the original game.  If someone wants to expand the patch to not just change the smoothness of damage _progression_ but also to move the lower damage bound, they should realize the patch has taken on a second purpose, and label it accordingly.  (But only after some soul searching over how they're desecrating the original designers' balance. :P)

And that:

3. A patch which is willing to let new M be under 128 (or in original M terms, a fraction under 1) shouldn't rule out letting M get down to 0.  Why should somebody who's stripped off most of their clothes suddenly become self-conscious about removing their socks?

--------

Quote
If "2" is false then "1" is also false. If M >= 0 is not an option, M >= 1 is the only logical choice. In this event it is safe to assume that they set the floor for M to 1 for mere technical reasons.

whoa, i don't agree with any of this series of deductions.  for one, "mere technical reasons" may well be balance reasons.  secondly, proving that M can't be > 0 and < 1 in the original game does *not* prove that Square was forced into damage being at least (Attack - Defense).  i've already spelled out a simple alternative that they could have used, yet didn't.

to be sure, i understand your point that Square couldn't readily divide M any further, short of making their own Fractional M patch.  i just disagree with the various things you're extrapolating from that.

anyhow, ditto on the  :sleep:  why do i feel like my eyes are trying to pull my screen towards me?

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #160 on: December 28, 2014, 09:38:34 AM »
Quote
A patch which is willing to let new M be under 128 (or in original M terms, a fraction under 1) shouldn't rule out letting M get down to 0.
It looks like we might have a misunderstanding here.

I believe:
- In vanilla FF5, M must never be rounded down to 0 (which mean M >= 1 is the only option)
- In fractional M FF5, M can be 0 (but this will never happen)


Clarification - the following text was written with vanillla FF5 in mind:
Quote from: Me
You believe that:
1. There is a reason why the developers set the lower limit for M to be 1 when it could have been 0.
Thus implying:
2. Allowing M to be 0 is an idea at least worth considering

If "2" is false then "1" is also false. If M >= 0 is not an option, M >= 1 is the only logical choice. In this event it is safe to assume that they set the floor for M to 1 for mere technical reasons.

When I say "vanilla" FF5, I mean FF5 without any patches.
« Last Edit: December 28, 2014, 09:54:57 AM by Jorgur »

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #161 on: December 28, 2014, 10:34:08 AM »
Are you saying the absolute minimum M must be is 1, or are you arguing a preference that it be more than 0? Because I'm unclear from what you're writing.
« Last Edit: December 28, 2014, 11:19:55 AM by Digitsie »

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #162 on: December 28, 2014, 11:45:20 AM »
Are you saying the absolute minimum M must be is 1, or are you arguing a preference that it be more than 0? Because I'm unclear from what you're writing.
In what context? If there is something I wrote that seems unclear, can you quote it?

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #163 on: December 28, 2014, 12:28:29 PM »
In context of M in general. I'm trying to digest what you were saying, and ultimately boiling it down to: What are you asking for with M?

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: FFV patches (and compatibility with each other)
« Reply #164 on: December 28, 2014, 12:47:57 PM »
I am essentially suggesting that you make the fractional M patch without a minimum M value (you currently use 128 - see link).

http://slickproductions.org/forum/index.php?topic=1975.msg21849#msg21849
« Last Edit: December 28, 2014, 12:58:00 PM by Jorgur »