Author Topic: [FF7] How can be edited the formula for ultimate weapons?  (Read 4937 times)

Raziel80

  • *
  • Posts: 130
    • View Profile
How can be edited the formula for ultimate weapons for Death Penalty and Premium Heart? How does the formulas look like in bytes in the .exe file?

nfitc1

  • *
  • Posts: 3013
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: [FF7] How can be edited the formula for ultimate weapons?
« Reply #1 on: 2019-11-20 13:23:49 »
All the ultimate weapons have "AX" damage formula types which just means "use 11 damage type and a special modifier". You can change the modifier in the exe to perform different checks. If you want details  you'll need to be more specific on what exactly you want it to do.

Raziel80

  • *
  • Posts: 130
    • View Profile
Re: [FF7] How can be edited the formula for ultimate weapons?
« Reply #2 on: 2019-11-20 14:20:25 »
If you want details  you'll need to be more specific on what exactly you want it to do.
A7 formula for Death Penalty: (10 + [Character's Kills / 128]) / 16, which of these values (10, 128, 16) can be changed in the exe file? The formula is somewhere in the offset 0x1DC920 in the FF7.exe: in bytes, it's around here: 24 99 83 E2 7F 03 C2 C1 F8 07 8B 15 0C CE 99 00. Where does the formula begin and end? For example: The value 128 in the formula can be changed, if you change 07 at offset 0x1DC929. 128 is bit 7, which means (0x80=128), is it true? Can the values ​​10 or 16 in the formula be changed?
« Last Edit: 2019-11-20 16:12:28 by Raziel80 »

nfitc1

  • *
  • Posts: 3013
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: [FF7] How can be edited the formula for ultimate weapons?
« Reply #3 on: 2019-11-20 16:24:47 »
You're using the real hex addresses not the virtual ones. That's going to throw me off...

The DP modifier starts at 0x1DC916. Changing that 7 will change the divisor for the kills, but it can only be powers of 2 (1, 2, 4, 8, 16, etc). A little further down at 0x1DC93D is the instruction C1 F8 04 which is the /16 and the following instruction at 0x1DC40 is 83 C0 0A which is your +10.

The actual modifier formula is ([power * kills / 128] / 16) + 10. not (10 + [power * kills / 128]) / 16.

Raziel80

  • *
  • Posts: 130
    • View Profile
Re: [FF7] How can be edited the formula for ultimate weapons?
« Reply #4 on: 2019-11-20 17:22:29 »
The DP modifier starts at 0x1DC916. Changing that 7 will change the divisor for the kills, but it can only be powers of 2 (1, 2, 4, 8, 16, etc). A little further down at 0x1DC93D is the instruction C1 F8 04 which is the /16 and the following instruction at 0x1DC40 is 83 C0 0A which is your +10.
How are these instructions ("C1 F8 04 which is the /16" and  "83 C0 0A which is the +10") displayed in RAM(virtual addresses)?

nfitc1

  • *
  • Posts: 3013
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: [FF7] How can be edited the formula for ultimate weapons?
« Reply #5 on: 2019-11-20 18:00:13 »
0x5DD53D and 0x5DD540

Raziel80

  • *
  • Posts: 130
    • View Profile
Re: [FF7] How can be edited the formula for ultimate weapons?
« Reply #6 on: 2019-11-20 19:14:33 »
0x5DD53D and 0x5DD540
Thanks a lot. Can you help also find out same addresses in RAM for Premium Heart, because this is a bad formula: (1 + [Limit Level * Limit Units / 16]) / 16, for ultimate weapon. It would be nice, if value 1 or value 16 near Limit Units (Limit Units / 16) , in the formula could be changed.

Seems to have found values ​​for the formula:
 Limit Units / 16: value 16 is at the offset 0x005DD56A
second value 16 is at the offset 0x005DD580
value 1 is at the offset 0x005DD583
« Last Edit: 2019-11-21 20:48:24 by Raziel80 »

Superbledur

  • *
  • Posts: 7
    • View Profile
Re: [FF7] How can be edited the formula for ultimate weapons?
« Reply #7 on: 2025-08-13 21:34:45 »
Hello

Sorry for the dig up but I'm presently searching for the Conformer formula. This one is quite simple (Avg enemy levels/16) but maybe that's because of this I can't find it. I'm searching around the 5DD56A and tried every division by 16 I found (basically with the C1 F8 04 pattern) without success even if I may have found some formula that somewhat resemble to Ultimate Weapon/HP Shout or Venus Gospel... And obtained some bugs too. It seems that either the division for Conformer is written differently or is far away from the other special formulas. My aim was simply to put 05 instead of 04 (division by 32 instead of 16) to nerf it a little.

I'm not very experienced in hex edition so would be happy if someone could bring me some help for that matter.

Edit : after some studying, it seems that division by 16 may be not present, as shown here https://qhimm-modding.fandom.com/wiki/FF7/Battle/Damage_Calculation maybe because basic attack power is 16 anyway ? If it's the case that would render kinda difficult to change the formula as it will require not to replace but to add some hexes. Not sure the .exe will like it.
« Last Edit: Yesterday at 19:11:54 by Superbledur »