Author Topic: gypt - BETA release  (Read 4044 times)

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
gypt - BETA release
« on: 2005-08-05 01:10:49 »
Program which "skips" the Bugenhagen's tale in his laboratory.

Link to download the program (feel free to scan it with some av):
gypt.zip - 239KB Edit: File taken down. Click here for new version.

How does it work?
It "finds" the FF7 program in the memory, search for the correct index and modifies the variables a little bit.

Ok... now what do we need to change (numbers in parentheses indicate the save-game offset when the checksum DWORD is at offset 0x00):

 - "Plot Progression" (0x0BA4 - present in the "gears") variable. Before visiting Bugenhagen, it's 0xD5, when the demo is completed, it's 0xED;

 - "Nanaki's" (0x0D45) variable. When it's set to 0x9C, Bugy will say "the story of the planet...". It's set to 0xFC after the demo, and Bugy will say
"Nanaki? His father a coward?"

 - "Bugenhagen's" (0x0D4E) variable. It's usually 0x01 (but i've seen also 0x09 in one save-game). It's OR-ed with 0x02 (0000010b) when Bugy says "Door is unlocked...". After that it's OR-ed with 0x40 (01000000b) when we're going up with Bugy. It's OR-ed with 0x80 (1000000b) when Bugy says "The story of the planet (blah blah)". So, we need to OR the variable with 0xC2 (11000010b).

 - Char1 (0x0CAE) and Char2 (0x0CAF) variables. Took me some time to figure it out (why the hell it switches sometimes??). But it's rather simple. The Char1 is the second character in your team (just below the Cloud in the Menu) and the Char2 is the third character. Now... these variables sometimes switches when going up with the Bugy to see the demo. It switches because always the second character (the one in Char1 byte) notices the shootig star, and there are some priorities which determine who will say that. Ok... here's the priority from the most to the least:

   Aeris -> Tifa -> Yuffie -> Barret -> Cait Sith

For example: if we had such a team:
 * Cloud
 * Barret
 * Aeris
Then, when going up, Barret and Aeris would switch (before: Char1 == Barret and Char2 == Aeris; after: Char1 == Aeris and Char2 == Barret).
Using that pattern, we would see, that Aeris will ALWAYS notice the shooting start (if she is in a team) and Cait Sith will NEVER say anything about it.

Ok... now, how to use the program?
Launch the FF7, load the correct game and be sure, that you're JUST BEFORE seeing the Bugenhagen's demo (you can be anywhere in CosmoCanyon, but you'd better have 3 characters with you and ready to go to Bugenhagen - I've tested it from the savepoint, standing next to Bugy, next to fire and few other places so it should work) Alt-TAB (or Ctrl-Esc) from the game (this is necessary for now, later I'll do some shortcuts... maybe :P), and run "gypt".

Press the "Refresh" button, and it *should* find the FF7 window. If the "Previous" or "Next" button is active, then you've more than one instance of FF7 launched. Gypt will tell you, who is in your team and where are you. Search for the correct instance of FF7 and press the "Modify" button. And that's it...

Now the worst part - bugs
I've only tested it with my version of FF7 so it could stop responding when used on some other version (but eventually it *should* become active again - just be patient).

When you see a message indicating that it doesn't known the just-found memory index, it will create a file "debug.dat" in the active directory. Please send me that file (it'll conatin the memory address which your version of FF7 uses, and your save-game) if you don't mind.

If you have any question, just post it. Good night (gee... it's 3:10 A.M. ...)

dziugo

Qhimm

  • Founder
  • *
  • Posts: 1996
    • View Profile
    • Qhimm.com
gypt - BETA release
« Reply #1 on: 2005-08-06 08:53:42 »
Nice, I was just thinking how something like this would be nice to alleviate the stream of "please play my save game ahead" topics.

Any plans to make it accept the save files instead? Would be easy to check for the proper plot progression value of the last save point before the Cosmo Canyon sequence and only then modify the file (necessary info on save file structure and checksums is found in Jenova source). Save file editing is probably both more stable and cross-version compatible than memory editing. I'd write a quick tool for it myself, but I'll give you dibs on it if you want since you spent the time to track down the necessary script variables and all. :)

EDIT: Some added notes (in Terence style, hopefully before Terence):

The plot progression variable is 16-bit, and the proper pre-laboratory value is 0x1D5, with post-laboratory being 0x1ED. Also, the "Nanaki" variable contains flags just like Bugenhagen's, with 0x40 governing Bugenhagen's "Nanaki? His father a coward?" (the 0x20 flag must also be set in order to receive that reply, and the two flags are in fact set at the same point). As for the party characters, you are correct, but they're not naturally critical to the game progression (those variables just mirror the current party, nothing else). Again though, nice work!

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
gypt - BETA release
« Reply #2 on: 2005-08-06 09:49:05 »
Well...

Would be great seeing such a tool coming out from you, 'coz my design sucks :). As for the save game editing, I just thought, that it could be more risky to do, since there is more to lose (the early beta version did that with no problem, though... I just removed it from the source), but yeah, it would be more stable.

The hell... I really need some people to download and try it on their version of FF7...

Decayrate

  • *
  • Posts: 63
  • I will be in my LABORATORY
    • View Profile
gypt - BETA release
« Reply #3 on: 2005-09-24 20:53:20 »
this is good ill download and try it hopefully a edit come's soon