Author Topic: What is currently known about the FFVII.exe?  (Read 5045 times)

quantumpencil

  • *
  • Posts: 72
    • View Profile
What is currently known about the FFVII.exe?
« on: 2015-03-22 19:23:00 »
Hey guys,

I've been getting interested in modding the executable directly, I was wondering where I mind find a description of the community's current cumulative knowledge about its structure? (If such a thing exists). In particular I'm interested in knowing if anyone has bothered to map-out the battle module (figure out it subroutines, so that it can be hacked to do things like process new status ailments, or its handling of elemental weaknesses can be modified?)

Best,

QP

Shard

  • *
  • Posts: 330
    • View Profile
Re: What is currently known about the FFVII.exe?
« Reply #1 on: 2015-03-23 00:48:01 »
All of our known information is on the qhimm wiki. There's a link to it in the top forum category.

nfitc1

  • *
  • Posts: 3010
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: What is currently known about the FFVII.exe?
« Reply #2 on: 2015-03-23 13:26:40 »
Find and read all my and DLPB's posts. Between the two of us we probably have most of the important stuff mapped.

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile

Aali

  • *
  • Posts: 1196
    • View Profile
Re: What is currently known about the FFVII.exe?
« Reply #4 on: 2015-03-23 18:53:44 »
DLPB, NFITC1, myself and I'm sure a bunch of other people have tons of information that isn't feasible to share on the wiki, if you ask specific questions about the structure or functionality here or in the IRC we might be able to help. Just make sure to do your homework first.

quantumpencil

  • *
  • Posts: 72
    • View Profile
Re: What is currently known about the FFVII.exe?
« Reply #5 on: 2015-03-23 19:22:07 »
I read through the wiki pages & the "gears" pdf, but it seemed pretty general and high level. I haven't had a chance to do a whole lot of tinkering with the executable yet (because I'm taking an OS class and we have to implement a kernel which is eating up exorbitant amounts of time) but I was hoping that there existed a more technical description of the function of the battle module (i.e, a memory addresses for all the subroutines (specifically those checking elemental/status weaknesses) and information about how these functions are placed on the call stack (so what talks to the kernel to tell it push a specific subroutine onto the call stack?) (I see that someone must know that because the order of checks seems to be well-understood (In the enemy mechanics FAQ)-- but where in the executable is the logic that's handling that?). I see where the damage formula's are located from the addresses in the wiki, but I don't see any info about the subroutines which control elemental checking (though how it works is described in the FAQ in high level terms). And I don't see any information about where the logic that governs that is

In particular, while AI scripting I noticed that modifying elemental weaknesses in battle by reassigning the enemies self mask and changing values doesn't work (so I suspect that whether or not specific items are being worn is being checked directly somewhere in the battle module) and I want to have a look at the subroutines that check elemental weaknesses to see if this is actually the case (so I can rewrite them and make it possible for a boss or enemy ability to overwrite elemental defenses)

EDIT: So, it seems like elemental checking is taking place at 0x5DEC52? It doesn't seem to be checking items explicitly though, so it seems like I should just be able to have an enemy directly modify another characters weaknesses by swapping the self-mask and changing the battle addresses... but that definitely doesn't work, which is very confusing to me. The battle addresses which store absorbs/weaknesses seem to work fine for enemies, too.  Does anyone know how the game sets elemental absorbs/weaknesses when entering a battle based on items/materia combinations? Does it just check and then write the value to that actors element def/absorb flags in their particular instance? (or what hex address I can find that logic at)?

« Last Edit: 2015-03-30 19:32:29 by quantumpencil »