øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=2196.15e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexf5d3.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&board=8.100e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexf5d3.html.zxC%h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ ,/ÿOKtext/htmlISO-8859-1gzip0|ÖÿÿÿÿÿÿÿÿÿTue, 10 Mar 2020 23:56:11 GMT0ó°° ®0®P®€§²ð®B%h^ÿÿÿÿÿÿÿÿª%ÿ FF6 Bugfixes Only Patch?

Author Topic: FF6 Bugfixes Only Patch?  (Read 4669 times)

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #15 on: April 21, 2016, 01:18:48 PM »
Ah, you know what it is? It's a problem with my "Dead in the Air" patch. It's not correctly reversing the "remove Control links" function. I'm going to fix that as soon as possible, and as far as where it's happening I think it's only a problem with Fix B and the reverse patch, so you don't need to change your mega-fix patch because you applied Fix A.
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

DrROBschiz

  • Mom Bomb
  • *
  • Posts: 112
    • View Profile
Re: FF6 Bugfixes Only Patch?
« Reply #16 on: April 21, 2016, 02:10:27 PM »
Interest comes in Cycles and I still get lots of people looking for the definitive FF6

I still feel like Dark Mage was the closest with the FF6 improvement project and that amazing translation patch that broke the game with bugfixes :/

How far along is this rendition?

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #17 on: April 21, 2016, 04:40:02 PM »
I've done some more testing with Self Sneeze and Remote Control, and here's what I see. On the one hand, my patch still doesn't properly handle Control when Palidor is used; Relm stays in control. On the other hand, I've noticed a bug in Novalia Spirit's patch whereby the Controller will not appear to land and will not be targetable, but can still make attacks. If they're equipped with a weapon, every so often you'll see that weapon's graphic on the screen at the time of the attack. So I'll try to fix up Self Sneeze, and then it will be the preferable patch.
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: FF6 Bugfixes Only Patch?
« Reply #18 on: April 21, 2016, 05:56:56 PM »
to rule out known bugs with Jump not reloading data: what sort of weapon does the character have, and is Dragon Horn equipped?

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #19 on: April 21, 2016, 09:47:21 PM »
A Magus Rod, and no.

I've done some debugging and I've found that the Jump command that's written into $3420,X when Palidor is called is somehow being overwritten with a Fight command.
« Last Edit: April 21, 2016, 10:05:03 PM by 13375K31C43R »
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: FF6 Bugfixes Only Patch?
« Reply #20 on: April 21, 2016, 11:24:43 PM »
- are you sure it's the only patch applied?
- is Mimic being used in the battle?
- did any character have another command pending/inputted when Palidor was summoned?

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #21 on: April 21, 2016, 11:34:49 PM »
Gogo isn't around, so no Mimic. And no characters had any other pending commands.

With my patch applied (and no Remote Control), it doesn't fix Control when Palidor is used, but Relm does land correctly and her Control picks up right where it left off after that (until someone lands on the Controlled enemy). I tried adding some more code to account for Palidor and got the same result as Remote Control.

Where specifically I'm noticing the wrong value in $3204,X is at C2/010E, but I'll debug some more to see if I can catch it earlier.
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: FF6 Bugfixes Only Patch?
« Reply #22 on: April 21, 2016, 11:42:50 PM »
have the targets in $3520,X been overwritten too?

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #23 on: April 21, 2016, 11:44:15 PM »
That I don't know yet. I'll keep debugging until I find out.
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #24 on: April 22, 2016, 01:00:52 AM »
OK, here's what I've uncovered so far: the value in $32CC,X is being set to #$FF, which causes Relm to Fight automatically. The value in $3184,X (the global actions queue pointer, iirc) is being set to #$7B. The value in $3420,X is being set to #$2C (instead of #$16, the Jump command value). I still don't know what value is being stored in $3520,X yet, or even if it's being overwritten. These changes start at C2/0312, called from C2/0A0F, called from C2/0874. This is during the game's "update everything between turns" function, and the fact that it's being called here means bit 6 of $3204,X has been set, which I believe is the result of the Control links being severed. So we need to either tell the game how to time this better, or find a way to make sure bit 6 of $3204,X gets cleared.
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #25 on: April 22, 2016, 02:04:33 AM »
OK, I think I found a solution. This function gets called prior to the aforementioned bit 6 check, if and only if Palidor has been Summoned. This is taken directly from your bank C2 disassembly.
Code: [Select]
C2/0B4A: C2 20        REP #$20       (Set 16-bit Accumulator)
C2/0B4C: BD 18 30     LDA $3018,X
C2/0B4F: 0C 2C 3F     TSB $3F2C      (flag entity as Jumping)
C2/0B52: E2 20        SEP #$20       (Set 8-bit Accumulator)
C2/0B54: BD A0 3A     LDA $3AA0,X
C2/0B57: 29 9B        AND #$9B
C2/0B59: 09 08        ORA #$08
C2/0B5B: 9D A0 3A     STA $3AA0,X
C2/0B5E: AC 66 3A     LDY $3A66      (get current action queue position?)
C2/0B61: 8A           TXA
C2/0B62: D9 20 38     CMP $3820,Y    (does queue entry match our current entity?)
C2/0B65: D0 05        BNE $0B6C      (if not, branch and move to next entry)
C2/0B67: A9 FF        LDA #$FF     
C2/0B69: 99 20 38     STA $3820,Y    (if there was a match, null out this queue entry)
C2/0B6C: C8           INY            (move to next entry)
C2/0B6D: CC 67 3A     CPY $3A67
C2/0B70: 90 EF        BCC $0B61      (keep looping until position matches next available
                                      queue slot -- i.e., we've checked through the end of
                                      the queue)
C2/0B72: BD 05 32     LDA $3205,X
C2/0B75: 29 7F        AND #$7F
C2/0B77: 9D 05 32     STA $3205,X
C2/0B7A: 9E B5 3A     STZ $3AB5,X    (zero top byte of Wait Timer)
C2/0B7D: A9 E0        LDA #$E0
C2/0B7F: 9D 2C 32     STA $322C,X    (save delay between inputting command and performing it.
                                      iow, how long you spend in the "ready stance."  E0h
                                      is the same delay as the Jump command, and its ready
                                      stance constitutes the character being airborne.)
C2/0B82: 60           RTS

All you have to do is substitute this in at the end:
Code: [Select]
C2/0B72: 1E 05 32     ASL $3205,X    (clear top bit)
C2/0B75: 5E 05 32     LSR $3205,X    (put bits back)
C2/0B78: 9E B5 3A     STZ $3AB5,X    (zero top byte of Wait Timer)
C2/0B7B: A9 E0        LDA #$E0
C2/0B7D: 9D 2C 32     STA $322C,X    (save delay between inputting command and performing it)
C2/0B80: 4C 30 07     JMP $0730       (clear bit 6 of $3204,X)

Of course, this solution won't work if "Dead in the Air" Fix A is applied. In that case, you may need to use up some free space.
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: FF6 Bugfixes Only Patch?
« Reply #26 on: April 22, 2016, 02:12:57 AM »
i too did some debugging in the past 40 minutes or so, and realized you can get a similar bug on vanilla:

- have Relm/Gogo Control an enemy.
- tell a reasonably fast and strong character to use Jump on that enemy.
- have another character summon Palidor.

if the Controlled enemy gets killed while the Palidor riders are airborne, weirdness ensues.

so fixing it becomes more urgent, and Remote Control less culpable.

------

EDIT: bug already known by Novalia Spirit:
http://mnrogar.slickproductions.org/phpBB3/viewtopic.php?f=2&t=325&p=3171
(see #101)

so his patch is widening the cases where an existing bug rears its head.
« Last Edit: April 22, 2016, 02:20:01 AM by assassin »

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #27 on: April 22, 2016, 02:18:59 AM »
I'll have to test that in my ROM, especially with the solution I've now found, but my guess for right now is that that bug will require a bit more work to fix.

:edit:
I take that back. I think that Remote Control, combined with my fix for it, solves the bug you just mentioned. The reason why is because the bug triggers when the Controlled enemy is killed while the Jumpers are still airborne. The good news now is that, as soon as Palidor is Summoned, the enemy is no longer Controlled.

That said, I wonder what happens if a Poisoned enemy, that happens to be the last enemy left, just happens to run out of HP while everyone is riding Palidor.
« Last Edit: April 22, 2016, 02:41:44 AM by 13375K31C43R »
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: FF6 Bugfixes Only Patch?
« Reply #28 on: April 22, 2016, 02:44:13 AM »
i suspect your $3204 fix alone would get rid of Bug #101.

-----

EDIT:

Quote
Where specifically I'm noticing the wrong value in $3204,X is at C2/010E,

i thought this was a dyslexification of "$3420,X" , given the code address provided, but it turned out to be prophetic. :P
« Last Edit: April 22, 2016, 02:59:59 AM by assassin »

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: FF6 Bugfixes Only Patch?
« Reply #29 on: April 22, 2016, 03:20:57 AM »
ROTFL, it was a dyslexification. :happy:
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings