[BETA] Battle-Swirl Fix

  • Thread starter Thread starter dziugo
  • Start date Start date
Status
Not open for further replies.
D

dziugo

Guest
General purpose:

To fix an issue with FF7 crashing randomly when entering battles.

Addition info:

A crash may occur because FF7 is trying to use an outdated pointer in a function
Code: [Select]
Code:
Function:   00673D26Potential crash at:   00673EDA   MOV DX, WORD PTR DS:[ECX]
History:

A problem and a working fix were discovered by Alhexx (info here). My patch updates a pointer instead of NOP-ing the problematic opcode - so the battle-swirl still looks as it should.

Warning:

There is a reason why it's a beta version. It's possible that it doesn't help you with those crashes! That's why I need people to download and test it - I cannot fix bug in FF7 not knowing of it's existance. If it still crashes, send me debug.txt file (which was created while installing patch) and a full info about the error you encountered (instead of sending it to Microsoft, copy and send it to me :)). Thanks!

Download links:

BattleSwirl Patch link taken down, download MGP from the link below
YAMP+tutorial

dziugo
 
Last edited:
hi dziugo,

Worked fine for me.
tested by alt-tabbing at disc change to induce a crash, game crashed before the patch was installed, was fine afterwards.
more fine work!  :-)

EDIT: don't know if its worth mentioning or not but this was used in conjunction with the 9999 Limit Patch, Tifa Limit Patch and Transparent Dialog Boxes patch.
took me a couple of clumsy attempts to get them all patched together but i realised it was my fault at the end (FF7 folder is a mess of exes  :evil:)

Wuz.
 
Last edited:
Oh, shiat; I NOPed out that command myself; will this still be able to work?  Or are you banking on me finding that out, as, well, it's a beta? ;)

[EDIT]  WOAH... uhm, maybe it's just because i used YAMP incorrectly, but, uhm, now ff7 is 0k in size and doesn't use the ff7 icon.  Yeah, I.. I better start fresh, lol

[edit2] oh, oops, colors are still messed up, darnit, gotta repatch from scratch, hahaha

[edit 3] ok, got an un-effed version of ff7 and used that; everything's perfect now =)

I'll just have to do some massive running around to make sure it won't crash, and try some alt-tabbing... but later =)

EXCELLENT work as always, Dziugo =D
 
Last edited:
Keep in mind that the exe is easy enough to replace, so it's not a big deal if it breaks it.
 
Next step would be adding a frame-limiter and incorporating it into MGP (or maybe not... they will share the same code but it isn't actually a minigame), but I'll need to know if the solution works for everyone. If anyone still has problems with battle-swirl (after trying this patch of course :P) please reply/PM me.

Edit: Ok, I'll investigate your problem. Post your debug data and the actual error.

dziugo
 
Last edited:
The game doesnt crash, i just get 4 of the MessageBoxes when it enteres a battel (instead of swirling) and the fmvs look like the picture.

Code: [Select]
Code:
Debug data  Applying patch: BattleSwirlFix Program entry point. Size of patch: 0xD5 5: jmp 0x8A eip:8F61: search reg[0](0x0) 0x5Raw: 0x273507 Offset: 0x273507    found: 0x273507F1: errore41: mov reg[2](0x0) 0x7B46: add reg[2](0x7B) reg[0](0x273507)41: mov reg[FF](0x0) 0x7F46: add reg[FF](0x7F) reg[0](0x273507)D0: getbyte reg[FE](0x0) reg[FF](0x273586)    value: 0xE812: cmp reg[FE](0xE8) 0xE8F2: errorne47: add reg[FF](0x273586) 0x1D4: getdword reg[1](0x0) reg[FF](0x273587)    value: 0xFFFEC3B547: add reg[1](0xFFFEC3B5) 0x74A0: idword 0x23 reg[1](0xFFFEC429)Inserted a new dword: 0xFFFEC42947: add reg[0](0x273507) 0x776: write reg[0](0x27350E) 0x23Wrote: 0x35 bytes at offset: 0x27350E44: mov reg[FF](0x273587) 0x90909090DA: putdword reg[2](0x273582) reg[FF](0x90909090)47: add reg[2](0x273582) 0x4DA: putdword reg[2](0x273586) reg[FF](0x90909090)47: add reg[2](0x273586) 0x4DA: putdword reg[2](0x27358A) reg[FF](0x90909090)47: add reg[2](0x27358A) 0x4DA: putdword reg[2](0x27358E) reg[FF](0x90909090) 0: exitWriting to output file 
 
Well, the second picture is because of ff7 running in a 32-bit envorment, such as the desktop or under Cosmo's 32-bit color option.  Turn this off, and your fmvs will work fine =)
 
Yeah, it's a problem with ff7's rendering engine.  Well, not so much a "problem" as a "We never thought a bunch of peopel would find a way to run the game windowed or in 32 bit color anyway, so why make compatable code?"

I'm sure someone like saint or Dziugo could figure it out if they wanted to.
 
Are the fmvs the only problem with using FF7 in 32bit mode?

The coloring on the prerendered backgrounds is really goofy on mine, but that could be a problem on my end, not the patch's.

Other than that, though, I believe that is it.
 
the colors are better in 32 bit for me, but the problems are the fmvs...
 
Dziugo, your patch works brilliantly!   :-D
I recently took out the swirl effect because I alt-tab a lot.
Now I have the swirl effect in the game (no more rainbow wierdness) and I can multitask all I want.

I just wanted to say thank you and congratulations on making an excellent fix!
 
Yeah, I just played for a good hour straight; no crashes yet =)

I'm still gonna run through the game in a few palces and see if it has any adverse effects, but i'm doubting it.
 
Thanks for trying it out! I don't have time to fully test those patches, so your help is greatly appreciated. Now, let's incorporate it into MGP along with a frame-limiter (anyone wants to be a private beta-tester?).

dziugo
 
Actually, i need to ask you something that's along the lines of a frame-limiter..

What Refresh rating does ff7 run at?  Because i've been getting like "phantom-trails" (particularily when the camera pans around the party when they win a battle) and other graphical quirks that're consistant with a low MhZ rating against a high frame rate, and i was wondering if there was a way to ramp the refresh rate to 85 (unless it copies the desktops refresh rating).

or would a frame-limiter fix this?

Anywy, I'll betatest =)
 
if you have an nvidia graphics card you should be able to force the refresh rate for 640 X 480 to 85Hz easily in your advanced display properties.
Not sure of the ATI equivalent.
 
Status
Not open for further replies.
Back
Top