N
nfitc1
Guest
So I've been trying my darnedest to figure out new battle addresses and reverse damage equations and such. A long while back I found this structure of data that is used over 1200 times in the exe and is only used during battle. This seems to be populated per-target of an action whenever a battle actor initiates a command. I'd put this on the wiki, but there doesn't seem to be a place for it since the wiki doesn't deal with direct memory.
This is all for the PC's structure, first of all. The actual data is stored at 0x99E308, but there is a constant pointer to that address at 0x99CE0C that is what's always referenced. The next mapped memory address appears to be 0x99F308, but it hardly uses any of that. It consists solely of 32-bit DWords even if the value stored is a single byte. It uses 256 bytes for the actor and technical information of the attack then an additional 100 bytes for target data with a 256 byte gap between them. So the valid ranges look like 0 - 260h for the size of the array. I've mapped out quite a bit of it, but some is still eluding me. I thought I'd share what I have so far. For these purposes, "Actor" is the one performing the action.
Code: [Select]
That's all I got. If anyone has any more info on this I'd like to know.
This is all for the PC's structure, first of all. The actual data is stored at 0x99E308, but there is a constant pointer to that address at 0x99CE0C that is what's always referenced. The next mapped memory address appears to be 0x99F308, but it hardly uses any of that. It consists solely of 32-bit DWords even if the value stored is a single byte. It uses 256 bytes for the actor and technical information of the attack then an additional 100 bytes for target data with a 256 byte gap between them. So the valid ranges look like 0 - 260h for the size of the array. I've mapped out quite a bit of it, but some is still eluding me. I thought I'd share what I have so far. For these purposes, "Actor" is the one performing the action.
Code: [Select]
Code:
000 - Actor Index (0-2 are playable characters, 4-9 are enemies)004 - Actor Level008 - Battle Formation Index?00C - Command Index010 - Action Index014 - Action Data Base (0 for magic, 38h for summon, 48h for E.Skill, something else for scene.bin and limit attacks)018 - Allowed Targets (seems to only select non-dead, active targets)01C - Active Allies020 - Actor's Command Animation (animation index for current action)024 - Action Visual Effect028 - Command Index again?02C - Action Index again? (lots of repeats)030 -034 -038 - MP Cost03C - Action Accuracy040 - Damage Calculation044 - Action Element048 - Action Power (typically 16, 2 for morph)04C - Actor Attack or MAttack (depends on what type of attack it is)050 - Action Targets (bitmask)054 - Action Impact Sound058 - Action Impact Sound again?05C - Action Impact Sound yet again?060 - Action Single target Camera index064 - Action Multiple target Camera index068 - Action Impact Anim Index06C - Special Attack Flags070 - Not used?074 - Not used?078 - ?07C - ?080 - Inflicting Statuses084 - Curing Statuses088 - Toggle Statuses (these are only ones the Action is told to effect, not the ones that actually connect and inflict)08C - Chance to Affect Statuses090 - Command Properties (4h - Steal attempt; 2000h - Morph attempt; etc)094 - Some other flags?098 - Action Index position in scene09C - ?0A0 - Accuracy check function (upper nybble of damage calculation value)0A4 - Action Damage Function (lower nybble of damage calculation value)0A8 - ?0AC - related to magic effects, but I'm not sure what0B0 - Number of damage calculations?0B4 - ?0B8 - number of targets?0BC - Action Additional Effects0C0 - Action Additional Effect Magnitude0C4 - Action Power (copy of 48 above)0C8 - Actor's current statuses0CC - Target's Action connect animation0D0 - ?0D4 - ? (these two are related somehow0D8 - Actor's Strength0DC - Some battle related flags (36h indicates successful escape)0E0 - ?0E4 - ?0E8 - ?0EC - ?0F0 - AllowedMagic[7] (I don't know what that means)0F4 - ?0F8 - AllowedMagic[3] (might be allowed multiple toggles)0FC - ?...<these get changed per target>200 - ??204 - Character Map address (playable chars only)208 - Target Index20C - Formation Slot (enemy only)210 - Target Def/MagDefense214 - Damage taken from Action218 - lots of flags (1h - successful hit; 4h - steal attempt; 20h - some always hit check?; 4000h - Barrier active; 8000h - MBarrier active)21C - ?220 - Some flags (1h - damage is healed; 2h - Critical Hit; 4h - Damages MP)224 - Target Reaction Animation (copied from CC above I think)228 - Target's current statuses22C - Target's status immunities230 - Some other weird flags (1h and 80h are used by the "Recover" damage calculation)234 - more flags (1h - back exposed; 2h - multiple targets?)238 - Status related (statuses successfully inflicts?)23C - Action removes these statuses from target240 - Status related also (statuses toggled?)244 - ?248 - Sound to play24C - Action Animation to use250 - ?254 - Target's Level258 - Target's HP25C - Target's MP260 - Action Accuracy