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

Raziel80

  • *
  • Posts: 120
    • 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: 3010
  • 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: 120
    • 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: 3010
  • 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: 120
    • 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: 3010
  • 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: 120
    • 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 »