1
FF7 Tools / Re: [PSX/PC] Scarlet - Multipurpose Editor (kernel.bin, scene.bin, EXE)
« on: 2025-06-26 14:01:16 »
Good. Looks great.
Is 7th Heaven necessary?
Is 7th Heaven necessary?
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
This is a known downside of True Wait. The workaround is that running makes time pass. In fights that you can't run away from, this works great, but in random battles you don't want to run away from, it's not a perfect solution. You can defend, which does waste some time, but it's better than accidentally running away.
I don't want to change how True Wait works. It works exactly how I want it to right now. It'd be nice to have a way to manually pass time besides running, but it'd require some weird button combination, and I don't think it's that big of a deal.
In combat only, there are no field edits so the scorpion isn't able to reappear later so he's been put back to be more in line with his vanilla self. He should have a few extra attacks like W-Rifle and Shock but these aren't guaranteed to be used.
On Steam version, it seems to be something to do with cloud saves where they can sometimes disappear if the save files aren't stored locally. I'm unsure what causes that but it may be related to the below.
The other possible cause is that there's a checksum that Steam saves have where the launcher will check save files when it is opened and delete any that have an incorrect checksum (for instance, if someone sent you their save file and you put it into the steam save folder and then launched the game, the launcher would delete the foreign save file). This used to happen when editing save files as well but I think the save editor can bypass it now. The workaround is to move a save file into the folder when the launcher is running, then save the game to get it a correct checksum.
#Elemental Damage Modifier: +50% Damage instead of 100%
5DB5E4 = E9 76 87 33 00 90 90
913D5F = 6B D2 03 D1 FA A1 0C CE 99 00 E9 7D 78 CC FF
#1DA9E4 = E9 76 87 33 00 90 90
#51275F = 6B D2 03 D1 FA A1 0C CE 99 00 E9 7D 78 CC FF
The lines starting with # are dormant addresses (game not running, for hard-patching an .exe) included just for reference. 7th would use the first two lines.
I just meant like moving it somewhere else so that there's room to make additional equip effects. I think going past the 15h you're likely to run into data that's being used, but I can't remember I'm afraid. If it isn't being used then you could edit it to make additional equip effects.
I'll DL the IRO and make a variant that checks for the CO ID instead as a temporary measure. I'll update this post in a bit with the link.
Edit: https://mega.nz/file/DtkQiQCb#8zSRk6Z5jgMVSIAk4XZbFf_qDYSzYegOKjWCT5umdQA
That's the 60fps NT compat IRO but I changed the ID needed to the NT 2.0 Combat Only IRO instead.
NT actually does this and has crit damage set at +50% instead of +100%; as Mav says, it needed some rewriting so I jump the function to an unused section and rewrite it there:
#Critical Hit Modifier: +50% Damage instead of +100%
5DE697 = E9 96 56 33 00
913D32 = 8B 55 F4 6B D2 03 D1 FA 89 55 F4 8B 45 F4 E9 57 A9 CC FF
These are the addresses when the game isn't running (for hard-patching rather than hext):
#1DDA97
#512732
The code to apply critical damage is shared for both allies and enemies, it happens at 0x5de697:Code: [Select]005de697 8b 55 f4 MOV EDX,dword ptr [EBP + damage]
005de69a d1 e2 SHL EDX,0x1
005de69c 89 55 f4 MOV dword ptr [EBP + damage],EDX
Changing that to do 150% would require a lot of rewriting because as far as I'm aware you can't multiply by 1.5x in a simple instruction like binary shift left.
No, these are for the Steam .exe but postscriptthree used the hext format for them which use the addresses as they're laid out in memory. If you want to patch your exe directly in a hex editor just subtract 0x400C00 from these values. For example the first byte to change in the item pickup limit is at 0x2CB481 (originally it's 0x63 which is 99 in decimal).
The item limit is hardcoded in a bunch of different places, so you need to change them all. I made a hext file that sets the limit to 5. If you want a different number, just change the 05 to something else. I think this covers all ways to get items, but I could have missed some.Code: [Select]#Make the item limit 5 instead of 99
#Item pickup limit
006CC081 = 05
006CC087 = 05
#Shop limit
0071A7B3 = 05
#W-item glitch limit
006DB6AC = 05
006DB6C2 = 05
#Steal/morph limit
00433243 = 05
#Item drop limit
005C85BC = 05
005C85C2 = 05
This was done in assembly rather than with a tool, which means either using a hex editor on the FF8.EXE or injecting hex script using something like Roses & Wines (which modifies the FF8.EXE at runtime). The issue may be that the spanish FF8.EXE has different offsets to the english FF8.EXE and I don't know what the differences in offsets are I'm afraid.
The hex addresses and the changes needed to be made for the english exe were:
#HP
963CB = B3 64 90 90 90 90 90
#Primary Stats
966E5 = B2 64 90 90 90 90 90
#Secondary Stats
96788 = B2 64 90 90 90 90 90
#Elemental Attack
969D1 = B0 64 90 90 90 90 90
#Elemental Defence
96AAE = B1 64 90 90 90 90 90
#Status Attack
96BC1 = B0 64 90 90 90 90 90
#Status Defence
96C9D = B1 64 90 90 90 90 90
(Credit to JWP for these)
If you're lucky these may be at the same offsets in the spanish exe. Sorry I couldn't be more help. As for what hex editor to use, I personally use something called XVI32 hex editor, but there's likely other free hex editors out there.
I know only about the status duration, which is in the ff7.exe file at offset 0x3B64F0 (at least in the German version, not sure about others).
It's 1 byte per status, 16 bytes total. The statuses are in the order: stop, paralyze, death sentence, slow numb, barrier, magic barrier, poison, sleep, regen, drain, shield, peerless (the last 4 bytes are unused). Just increase or decrease the byte you want to either increase or decrease the duration time of the respective status effect.
I don't know about your other questions, but I would assume that the damage calculation formulas are all somewhere in the .exe, too. (I'd be interested in this as well.)
EDIT: just found an old thread where nfitc1 posted the offset of the english version, which is at 0x3B60F0:
https://forums.qhimm.com/index.php?topic=13649.0
Which version?Steam with 98 conversor.
Hey, have you found the help you needed ?No. I still don't know how this could be done.