Qhimm.com Forums

Final Fantasy Forums => Scripting and Reverse Engineering => Topic started by: NxK on 2013-08-23 06:24:32

Title: (PC) FF7 - Yuffie escapes from battle Glitch
Post by: NxK on 2013-08-23 06:24:32

while working on Yuffie Warping, I found yet another Yuffie related glitch.

As you might know, if you fight the Mystery Ninja, it will escape after ten turns. Apparently, if this occurs on the PS version, you are just brought back to the worldmap (you don't get any battle results screen) and nothing strange is to be witnessed.
If you do this on any PC version (I have tried it on both the 1998 1.02 patched version and the Steam version), however, you will spot these peculiarities:

1) When Yuffie escapes, she will turn and flash red, like ordinary enemies do when they are defeted.

2) You don't get a battle results screen, but if you open the menu afterwards, the game will freeze and you will get a mixture of the normal menu and what appears to be the battle results screen from the last Mystery Ninja battle.

3) If you don't open the menu but engage in another world map battle, the battle screen will begin to load but the game will freeze as well. The screen will turn black but the battle music will continue playing.

Also, both of these freezes don't occur if one enters a field before trying either. Additionally, they look and behave exactly like the Emerald Weapon Countdown glitch on the PC version.

So, my question is: Does anyone have an explanation for this glitch?
Title: Re: (PC) FF7 - Yuffie escapes from battle Glitch
Post by: NFITC1 on 2013-08-23 15:19:41
I'll try to answer some of these questions.

1) Mystery Ninja has the "90" death animation which DLPB believes is bugged (http://forums.qhimm.com/index.php?topic=13369.msg186254#msg186254). I'm not sure how far this goes, but it does mean something. She's supposed to linger after battle, but her "Throw" move marks her as escaped. Bandit is supposed to make a similar exit (Escape and Throw share an animation ID), but his relevant animation script is different.

Code: [Select]
Yuffie: E8 00 FC 07 ED 0C EC 0B FA E5 97(03, 01) F4(0F) F3 EE
Bandit: E8 0A EC E2 C5 F3 E7(00) EE

It's really the ends that make me curious. It seems like there should be an E7(00) after Yuffie's last F3, but since I don't know enough about what any of these do I can't say for certain.

2) Here's a little speculation. Normally, every battle ends with some kind of reward screen. This doesn't happen if all your characters are escaped, dead, or otherwise permanently incapacitated (petrified, etc). The battle pre-loads certain menu windows before bringing up the menu module. When MK's battle ends, these windows have already been sent to the pre-load system and never displayed. As a result, the new windows from the game menu get appended to the request for the rewarding menus and they try to display both. It probably freezes because suddenly it's got an interactive menu and a completely different one. It might also have to do with two sets of portraits being up.

3) I think this is somehow related to 2. The battle module brings up a menu at the bottom and probably has the same effect.
Title: Re: (PC) FF7 - Yuffie escapes from battle Glitch
Post by: NxK on 2013-08-23 19:32:35
Thank you for the explanation.
I wonder if 2) and 3) can somehow be averted and this lack of battle reward menu abused in any way.
Title: Re: (PC) FF7 - Yuffie escapes from battle Glitch
Post by: NFITC1 on 2013-08-23 20:20:52
I would imagine it could be averted by going from the world to a field. I guess the easiest thing would be to use a vehicle immediately after encountering her and entering the menu to see what happens.
Title: Re: (PC) FF7 - Yuffie escapes from battle Glitch
Post by: NxK on 2013-08-23 21:14:44
Several more tests yielded these results:

2) If you leave the world map by entering a field and open the menu afterwards, the menu freeze is no longer to be seen. However, if you leave the world map by submerging and resurfacing with the submarine, the menu freeze is still intact.

3) If you leave the world map by entering a field, the battle freeze is intact for that field. If you go to another field or back to the world map, the battle freeze is gone.
If you enter a field and open the menu first (which is fine because the menu freeze is gone), even the battle freeze is not triggered anymore even if you stay on the same field. If you submerge and resurface with the submarine, the battle freeze is still intact.

If you trigger the "extended battle freeze", i.e. start a battle on the first field after leaving the world map or on the world map after submerging and resurfacing with the submarine or the Emerald Weapon battle, the battle freeze is slightly different. The battle screen will be completely black from the beginning, you won't even see the battle screen load for a few frames before it turns black as it does during the ordinary battle freeze.
Additionally, one can still use Crtrl+Q to call the "Do you want to quit playing..." menu during the ordinary menu and battle freeze, however, one cannot during the extended battle freeze.
Title: Re: (PC) FF7 - Yuffie escapes from battle Glitch
Post by: NFITC1 on 2013-08-24 03:25:53
I believe that confirms my suspicions that it is a menu issue. With the limited memory that the PSX has it is probably more aggressive with its native garbage collection and unloads everything implicitly before opening a menu.

The third issue still puzzles me, although I'm still convinced that it's related to the same menu issue as number two.

Perhaps "World-to-Field" isn't a stark enough transition for the game. Field-to-Field would likely cause lots of module unloading because the dialogs of the field would need to be cleared each time. I suppose it's possible that the entrance fields get preloaded as a player gets close to them so the previous menu module doesn't get destroyed. That might be exploitable, but I'm not sure how. Perhaps in one case it would set a flag that would mark a puzzle as cleared or something.
Title: Re: (PC) FF7 - Yuffie escapes from battle Glitch
Post by: NxK on 2013-09-02 17:15:14
I looked into this again today and took note of another peculiarity: One's party will begin their victory dance a second time after having completed it for the first time.

I also made a video of how the glitch looks like in action: http://www.youtube.com/watch?v=Ky1vgegwkxQ