øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=2335.msg26920e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexfc28-2.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=33e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexfc28-2.html.zxèFh^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ z k/OKtext/htmlISO-8859-1gzip8:Ök/ÿÿÿÿÿÿÿÿWed, 11 Mar 2020 02:19:44 GMT0ó°° ®0®P®€§²ð®çFh^ÿÿÿÿÿÿÿÿ^/k/ Too many in-Battle Loopholes

Author Topic: Too many in-Battle Loopholes  (Read 3057 times)

Xardas

  • Siren
  • *
  • Posts: 75
    • View Profile
Too many in-Battle Loopholes
« on: January 30, 2017, 03:10:09 PM »
Hello,
no progress so far regarding my mod, except for some thoughts on FFV bugs. Especially those which turn (almost) every battle into a joke bother me the most.
I also tried to think about approaches on how to fix those issues. However, I do not have a feasible one for every problem. Here are my thoughts so far:

Lv5 Death (Lv2 Old as well): One of the pesky ones because it ignores heavy and immunity. Plus you can use Black Shock to make some bosses vulnerable to it.
Solution: I may have overlooked something at the algorithms guide, but if I'm not mistaken, then the enemy level is not really important for both your and the enemy's damage output respectively. Therefore, I can just change the levels of bosses and heavy enemies into something like 1, so Lv5 Death and Lv2 Old will never have a chance. On top of that, I can disable the option to target enemies with Samson/Dragon Power.
EDIT: I forgot about enemies's magic attacks. So I cannot simply change the levels. I have to remove the ignorance of immunities.

Hide: Zombie + Hide + Caution + Masamune/HermesSandals = Win EVERY battle (well, maybe the Omniscient battle is an exception)
Solution: Remove Hide from the game (I really do not want to do that, but I don't see another option so far).

Magic Lamp: Odin from Magic Lamp can kill EVERYTHING
Solution: Remove the Magic Lamp from the game (I really do not want to do that, but I don't see another option so far).


Mirage Vest: Free Image status every turn as long as you got the Item command.
Solution: No clue, but it won't be that bad in my mod, because you will not be able to get 4 of them without cheating (sorry for the Spoiler^^)

I would be grateful if anyone can confirm the assumption for the Level-Solution tell me how to make Level 5 Death and Level 2 Old not ignore immunity and/or offer alternatives to removing Magic Lamp and Hide.
Peace!
« Last Edit: February 07, 2017, 09:28:48 AM by Xardas »

Praetarius5018

  • Vargas
  • *
  • Posts: 88
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #1 on: February 03, 2017, 04:26:18 PM »
Lv5 Death;
taken from the wiki here (InstructrTrepe - c2 bank):

Attack Type 4B (L5 Doom)
Code: [Select]
C2/7266: 20 67 7E     JSR $7E67     (Check Target Level is Muliple of Parameter 1)
C2/7269: A5 56        LDA $56
C2/726B: D0 1F        BNE $728C
C2/726D: A6 49        LDX $49
C2/726F: BD 65 20     LDA $2065,X   (Target Creature Type = Undead?)
C2/7272: 29 01        AND #$01
C2/7274: D0 07        BNE $727D
C2/7276: BD 39 20     LDA $2039,X   (Check Attacker Armour Special Effect Byte)
C2/7279: 29 02        AND #$02      (Check if Undead)
C2/727B: F0 0C        BEQ $7289
C2/727D: C2 20        REP #$20
C2/727F: BD 08 20     LDA $2008,X
C2/7282: 9D 06 20     STA $2006,X   (Fully Heal HP)
C2/7285: 7B           TDC
C2/7286: E2 20        SEP #$20
C2/7288: 60           RTS

C2/7289: 20 2B 90     JSR $902B   (Apply Status 1 to Target, bypass Status Immunity)
C2/728C: 60           RTS


so replace C2/7289 with a new routine that checks for heavy;
as for how to check against heavy, this could give an idea

Attack Type 29 (Kill, not Heavy)
Code: [Select]
C2/6E12: A6 49        LDX $49
C2/6E14: BD 65 20     LDA $2065,X
C2/6E17: 29 20        AND #$20      (Target Creature Type = Heavy?)
C2/6E19: D0 0F        BNE $6E2A
C2/6E1B: 20 F6 7E     JSR $7EF6     (Hit Determination for Magic)
C2/6E1E: A5 56        LDA $56
C2/6E20: D0 0A        BNE $6E2C
C2/6E22: A5 58        LDA $58
C2/6E24: 8D D8 3E     STA $3ED8     (Status Duration = Parameter 2)
C2/6E27: 4C 05 8E     JMP $8E05     (Apply Status Effect 4)
C2/6E2A: E6 56        INC $56       (Attack Misses)
C2/6E2C: 60           RTS



Odin/magic lamp
dunno, it should be possible to make him use his regular move always instead.
or modify his "kill stuff" move to only deal damage instead of a death effect, just an idea.

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #2 on: February 06, 2017, 07:17:23 AM »
Quote
Therefore, I can just change the levels of bosses and heavy enemies into something like 1, so Lv5 Death and Lv2 Old will never have a chance...
I would be grateful if anyone can confirm the assumption for the Level-Solution
Changing boss levels is tricky one. First, levels do matters when dmg is calculated. Also levels are used to calculate some durations. Therefore changing them will change the enemy you are facing (make it harder or easier). Praetarius5018 solution seems as good one (adding extra code that check for Heavy).

TBH you dont really need these LvXXX tricks to win. They are usually used by speedruners to save time, which is a good thing :)

 :edit:
Quote
Hide: Zombie + Hide + Caution + Masamune/HermesSandals = Win EVERY battle (well, maybe the Omniscient battle is an exception)
Never heard of that ... could you elaborate?
« Last Edit: February 06, 2017, 07:42:23 AM by Squall »

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #3 on: February 06, 2017, 08:11:58 AM »
From what I've seen, the biggest exploit in FF5 speedruns is the ability to change the levels of bosses. By using Darkshock/L2 Old, you can bring their level down to a point where they are vulnerable to level 5 Doom.

One way to prevent this, is to make L5 Doom, L4 Quarter, L3 Flare and L2 Old use the original, unchanged level value during hit determination. I don't know if there is a variable for that, but you could take a look at Hero song, since apparently it does not affect vulnerability to those spells.

Xardas

  • Siren
  • *
  • Posts: 75
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #4 on: February 06, 2017, 10:19:14 AM »
Thanks for your answers so far. Praetarius5018's solution seems to be very good. Too bad I have to learn a more to realize it. But I might start working on those codes, who knows  :cycle:

Quote
TBH you dont really need these LvXXX tricks to win. They are usually used by speedruners to save time, which is a good thing :)
Hide: Zombie + Hide + Caution + Masamune/HermesSandals = Win EVERY battle (well, maybe the Omniscient battle is an exception)
Never heard of that ... could you elaborate?
Well, it's not about "needing" them, rather more about closing the door for these exploits ;)
"Zombie + Hide + Caution + Masamune/HermesSandals" works like that:
You need one character alive (the one with Hide) with either Masamune equipped, OR Caution activated while having high agility and/or Hermes Sandals equipped.
At least one of the other 3 characters must be zombified (It's way faster if all 3 are). The zombies should be equipped for maximum damage output in before (double gripping or dual-wielding some strong weapons). Just start every battle with using "Hide" and just wait until the zombies do the dirty work. They sometimes hit themselves, but they are "immortal" anyway. As no enemy cures your zombie status, you are invincible as long as your ..erm "super brave" character stays hidden.
Quote
From what I've seen, the biggest exploit in FF5 speedruns is the ability to change the levels of bosses. By using Darkshock/L2 Old, you can bring their level down to a point where they are vulnerable to level 5 Doom.
I actually thought again, and found even more approaches, like making Black Shock check for/always missing heavy enemies (or making it an unlearnable skill).

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #5 on: February 06, 2017, 11:36:05 AM »
Quote
Just start every battle with using "Hide" and just wait until the zombies do the dirty work. They sometimes hit themselves, but they are "immortal" anyway. As no enemy cures your zombie status, you are invincible as long as your ..erm "super brave" character stays hidden.
Haha I would love to see that s Omega or Shinruy.

I never really understood what zombie status does. The battle code is full with checks for that status. The sad part is that the game itself has very little zombie-mechanic used in the script. I think the same goes for all FF titles.

Praetarius5018

  • Vargas
  • *
  • Posts: 88
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #6 on: February 06, 2017, 03:15:59 PM »
Well, some combinations are just that hard to get that you might just let them win that one.

But if that zombie combo seems to abusable to you:
end the state at the end of battle and kill the former zombie properly.

x0_000

  • Siren
  • *
  • Posts: 72
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #7 on: February 06, 2017, 03:52:14 PM »
Note: these responses are written taking the GBA version in account, and assuming that the SNES version behaves the same way.

Lv5 Death (Lv2 Old as well): One of the pesky ones because it ignores heavy and immunity. Plus you can use Black Shock to make some bosses vulnerable to it.
Solution: I may have overlooked something at the algorithms guide, but if I'm not mistaken, then the enemy level is not really important for both your and the enemy's damage output respectively. Therefore, I can just change the levels of bosses and heavy enemies into something like 1, so Lv5 Death and Lv2 Old will never have a chance. On top of that, I can disable the option to target enemies with Samson/Dragon Power.
EDIT: I forgot about enemies's magic attacks. So I cannot simply change the levels. I have to remove the ignorance of immunities.
You can't fix the level X spells unless you fix Chemists because they have a mix that boosts the level of any target by 10/20, and levels cap out at 255 so it's not challenging to set a target's level to any number you want with sufficient mixing.

Hide: Zombie + Hide + Caution + Masamune/HermesSandals = Win EVERY battle (well, maybe the Omniscient battle is an exception)
Solution: Remove Hide from the game (I really do not want to do that, but I don't see another option so far).
Winning battles with Zombies is more non-straightforward than you would expect. Zombies are coded to only attack the player party, so if you hide everyone they'll only target themselves. The only way to take advantage of this is to give them a weapon that procs a spell (e.g. Fire Lash, which procs Firaga) and give them a reflect ring. I also believe (haven't actually verified this) that Zombies can be "killed" by effects like Encircle, which removes the target from battle.

Magic Lamp: Odin from Magic Lamp can kill EVERYTHING
Solution: Remove the Magic Lamp from the game (I really do not want to do that, but I don't see another option so far).
Magic Lamp Odin can't actually kill everything, what it does is guarantee that Odin uses Zantetsuken (Summon Odin only uses Zantetsuken if every monster is vulnerable to it) Monsters that are immune to Zantetsuken will still be unaffected by it. You also have to recharge it at Istory Falls every time you want to use it which means its effectiveness is limited to bosses, and very few bosses are vulnerable to Zantetsuken.

Quote
Mirage Vest: Free Image status every turn as long as you got the Item command.
Solution: No clue, but it won't be that bad in my mod, because you will not be able to get 4 of them without cheating (sorry for the Spoiler^^)
White Mages get the Blink spell earlier (and if you can cast Quick the MP cost is non-existent), and Image isn't even an amazing status because all it does is block physical attacks; by the time the player gets access to the status monsters have plenty of non-physical moves. (Mirage Vests also have really bad defenses outside of the Image status.)

Quote
Just start every battle with using "Hide" and just wait until the zombies do the dirty work. They sometimes hit themselves, but they are "immortal" anyway. As no enemy cures your zombie status, you are invincible as long as your ..erm "super brave" character stays hidden.
Haha I would love to see that s Omega or Shinruy.
http://lparchive.org/Final-Fantasy-V-Advance/Update%2059/

See Method #3 in that link.
« Last Edit: February 06, 2017, 04:07:01 PM by x0_000 »

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #8 on: February 07, 2017, 04:23:37 AM »
Quote
Zombies are coded to only attack the player party, so if you hide everyone they'll only target themselves.
That is my experience too. I'm not sure may a zombie target the enemy? All in all does somebody has a list of what zombie does, what statuses affected it and what not, does items works on it (zombie removal), ...

Xardas

  • Siren
  • *
  • Posts: 75
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #9 on: February 07, 2017, 09:27:57 AM »
You can't fix the level X spells unless you fix Chemists because they have a mix that boosts the level of any target by 10/20, and levels cap out at 255 so it's not challenging to set a target's level to any number you want with sufficient mixing.
I'm planning to do that too, I'm certain I posted it somewhere else. Changing the target possibilities of actions isn't really hard.
Quote
Winning battles with Zombies is more non-straightforward than you would expect. Zombies are coded to only attack the player party, so if you hide everyone they'll only target themselves. The only way to take advantage of this is to give them a weapon that procs a spell (e.g. Fire Lash, which procs Firaga) and give them a reflect ring. I also believe (haven't actually verified this) that Zombies can be "killed" by effects like Encircle, which removes the target from battle.
My bad, I mixed it up with FFVI zombie status, I think they hit the emenies too in FFVI. But it's still possible as you explained it now.
Quote
Magic Lamp Odin can't actually kill everything, what it does is guarantee that Odin uses Zantetsuken (Summon Odin only uses Zantetsuken if every monster is vulnerable to it) Monsters that are immune to Zantetsuken will still be unaffected by it.
I tested the Magic Lamp, and I have to conclude that I was talking nonsense.
Quote
White Mages get the Blink spell earlier (and if you can cast Quick the MP cost is non-existent), and Image isn't even an amazing status because all it does is block physical attacks; by the time the player gets access to the status monsters have plenty of non-physical moves.
But you still get it for free. Not a single turn or MP is used. And in late dungeons, there are still enemies which can only deal damage with physical attacks. Moss Fungus for example only has Attck, Specialty and Web.

Xardas

  • Siren
  • *
  • Posts: 75
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #10 on: February 19, 2017, 05:47:06 AM »
Hi
It's a little bit OT, but since it's about something which is OP in battles it might fit in here as well.
So it's just about nerfing the Chicken Knife. I want the Multiplier to be the same as other knives. The "other knives" in my case use this one:
[(AGL+STR)/256]+2
FRACTIONAL M PATCH already is implied.
So is there any possibility to copypaste the M from knife formula to Chicken Knife formula? Since the speacial part of Chicken Knife lies in Attack Power, not the multiplier.

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #11 on: February 21, 2017, 02:12:05 AM »
That probably would require some coding. I know you usually try solutions that exclude that :)

Xardas

  • Siren
  • *
  • Posts: 75
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #12 on: February 21, 2017, 07:38:26 AM »
That probably would require some coding. I know you usually try solutions that exclude that :)
That's right, you know my "skills"  :laugh:
Don't get me wrong, it's not a commission whatsoever. But I think the solution would not require some "new" approach here, since I am certain that there is somebody who can manage this without huge effort, as it would be just the replacement of a multiplier with another multiplier which already exists. ^^
Having a Chicken Knife with M=[(AGL+STR)/256]+2 would make a nice (optional, as I guess some people want to keep an OP Chicken Knife) update for Fractional M generally rather than just something special for the mod I'm working on, imho.

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #13 on: February 22, 2017, 03:44:13 AM »
Quote
Having a Chicken Knife with M=[(AGL+STR)/256]+2 would make a nice ... update
Not really ... we had that discussion like a year ago. The problem is that it will always brake the balance: like a knife getting higher dmg then a sword. Square have sensed that and most likely thats why there solution was what some call Knife Bug ... I dont believe even for a second that its a bug, rather a sloppy solution to overpowering knives.

The real solution will be that knife, bow,.. should be Agi based, as it is in many PC RPG games.
So no M = (Level*Strength)/128 + something, rather M = (Level*Agi)/128 + something
Then independently with x_000 we came to conclusion, that something should be a function of Str but with small margin, like F(Str/4) or F(Str/8). I forgot details but we had strict formula :)

Xardas

  • Siren
  • *
  • Posts: 75
    • View Profile
Re: Too many in-Battle Loopholes
« Reply #14 on: February 22, 2017, 06:35:08 AM »
Quote
Having a Chicken Knife with M=[(AGL+STR)/256]+2 would make a nice ... update
Not really ... we had that discussion like a year ago. The problem is that it will always brake the balance: like a knife getting higher dmg then a sword. Square have sensed that and most likely thats why there solution was what some call Knife Bug ... I dont believe even for a second that its a bug, rather a sloppy solution to overpowering knives.
Sorry, but I think you misunderstood me completely. How would M=[LV*(AGL+STR)/256]+2 lead into overpowering?? The original formula for the Chicken Knife is M=[LV*(AGL+STR)/128]+2. I do want a weaker Chicken Knife, that's why I suggest dividing by 256 rather than 128!
My point:
I am using Fractional M with "Alternate knife formula" http://slickproductions.org/slickwiki/index.php/FF5_Patch:Fractional_M
This patch has a nice solution by giving Knife/Bow/Whip M=[LV*(AGL+STR)/256]+2
HOWEVER, I tested the Chicken Knife with this very mod, ans appearantly it still uses M=[LV*(AGL+STR)/128]+2
All I want is to replace the M of Chicken Knife with the M of normal Knives (in this case: change into M=[LV*(AGL+STR)/256]+2)