But that's not hacking or fixing, it's cheating. :evil:
Can this be done for the PC version(s) as well?I think so, but since I'm no x86 hacker, I'll leave that to somebody else. :-P
But that's not hacking or fixing, it's cheating. :evil:
The easiest way to find out how to fix it for the PC is to figure out where the armor is being equipped and follow that logic. Only thing is, I don't even know how to use debuggers. Can anyone suggest one? I've got one called IDA, but it's confusing.
So the problem is probably in the set up or saving.The function that applies M.Def takes 2 parameters, a first one that I never cared to look into, and a second one that determines which value to retrieve. 0 returns a strenght bonus, 1 is for vitality, while 2 and 3 return 0 no matter what. 2 is the one that corresponds to M.Def, so you have to add a case for that, and the procedure is pretty much similar to case 1. Taken from the readme of my patch:
.org 0x800104C4
spirit_fix:
sll v0, a3, 2
addu v0, a0
lw v1, 0(v0) ; character id
nop
sll v0, v1, 5 ; *132
addu v0, v1 ; --
sll v0, 2 ; --
la at, 0x8009C621 ; armor pointer
addu at, v0
lbu v1, 0(at) ; armor id
nop
sll v0, v1, 3 ; *36
addu v0, v1 ; --
sll v0, 2 ; --
la at, 0x80071D2B ; pointer to spirit value
addu at, v0
lbu a2, 0(at) ; load spirit
j @@return
move v0, a2
It looked to me that the 0, 1, 2, and 3 were getting the data stored at (armormemoryaddress + ArmorIndex + EquippedArmorIndex * 36 + 2 + x) then applying it to characterIDmemory + something.0 takes data from just weapons, 1 from armors, 2 and 3 return a NULL value no matter what. Unless they changed the code for that function during the port process, but I doubt so.
It looked to me that the 0, 1, 2, and 3 were getting the data stored at (armormemoryaddress + ArmorIndex + EquippedArmorIndex * 36 + 2 + x) then applying it to characterIDmemory + something.0 takes data from just weapons, 1 from armors, 2 and 3 return a NULL value no matter what. Unless they changed the code for that function during the port process, but I doubt so.
.text:006C51AD loc_6C51AD: ; CODE XREF: ApplyBonusStats+2Aj
.text:006C51AD mov eax, [ebp+var_8]
.text:006C51B0 mov ecx, dword_919928[eax*4]
.text:006C51B7 imul ecx, 84h
.text:006C51BD xor edx, edx
.text:006C51BF mov dl, byte_DBFDA9[ecx]
.text:006C51C5 imul edx, 24h
.text:006C51C8 xor eax, eax
.text:006C51CA mov al, byte_DBCCE2[edx]
.text:006C51D0 mov [ebp+var_4], eax
.text:006C51D3 jmp short loc_6C51E5
.text:006C51AD loc_6C51AD: ; CODE XREF: ApplyBonusStats+2Aj
.text:006C51AD mov eax, [ebp+var_8]
.text:006C51B0 mov ecx, dword_919928[eax*4]
.text:006C51B7 imul ecx, 84h
.text:006C51BD xor edx, edx
.text:006C51BF mov dl, byte_DBFDAE[ecx]
.text:006C51C5 imul edx, 24h
.text:006C51C8 xor eax, eax
.text:006C51CA mov al, byte_DBCCE3[edx]
.text:006C51D0 mov [ebp+var_4], eax
.text:006C51D3 jmp short loc_6C51E5
but of course, it's not. This would require replacing a 7-byte statement with a 40 byte block. I don't know how to safely inject code so it might be better to do it your way, Gemini. An absolute jump to anywhere takes 5 bytes so either followed by two no-ops, or a re-targeted relative jump. So point me to an unused spot in the executable and I can fix it for ya. XD Of course, I'll have to test this theory out.@ Gemini and NFITC1: Wonderful! This'll be great! Though imo, unless you've modded the scene to make the enemies harder, this just makes an already-too-easy game even easier. Still, at least now there's actually a good reason now to equip certain armor such as that Wizard Bracelet.
guys no idea on the yamp patch yet? code done months ago.
Would love this fix.
Yesterday I made a very small patch (http://www.romhacking.net/hacks/501/) that corrects one of the most infamous bugs on this game: the spirit+m.def bug. Works for both NTSC U/C and PAL UK versions (see readme for specific compatibility).
Notice the difference? :-)
(http://i239.photobucket.com/albums/ff233/Geminimewtwo/Final%20Fantasy%20VII/bug-a-nugen.png)
from what i see you didn't make a very small patch. you have the ntsc u/c and pal, yet you don't have for ntsc -j! you gotta be kidding me!! for a playstation guru like you that would leave a missing piece behind is something very unusual i say. yeah it is a good patch but we all knew you can do much better. it was very easy for you to make this kind of patch and yet being lazy to do the patch for the international version is somehow very downgrading on your part. i don't like to be antagonistic but if anyone here is as smart as you, we would put a waste on our part do have it complete. why? first of all we all breathe the same air. yes you are greatly smart but if you don't be humble enough i say you making a fool out of yourself. i don't care if the admins kick me in this forum or what. you can't be proud of something that is incomplete.Quit whining, you're only embarassing yourself.
that's all!
Quit whining, you're only embarassing yourself.
>:(
hate being discriminated by people with the same interest because i'm young...
>:(
hate being discriminated by people with the same interest because i'm young...
well if that's so let the admin ban me from this forum... that so called playstation guru is nothing but i think a italiano liar. i bet someone else made that patch. if it's truly his why can't he teach me how or make the patch complete at the very first place? instead he replied to me as if he is a deity or something. well he was a crap to be exact.
at the very first place i join this forum to learn how to fix bugs and editing final fantasy vii game. well if that's not ok then the admin should have not let me join this forum.
it looks like whoever espio you are make your own rules. or if you are one of the admins, i say that you guys made a forum and don't know what synergy means!
shame on this forum!
well if that's so let the admin ban me from this forum...
that so called playstation guru is nothing but i think a italiano liar. i bet someone else made that patch. if it's truly his why can't he teach me how or make the patch complete at the very first place?
at the very first place i join this forum to learn how to fix bugs and editing final fantasy vii game. well if that's not ok then the admin should have not let me join this forum.
shame on this forum!
from what i see you didn't make a very small patch. you have the ntsc u/c and pal, yet you don't have for ntsc -j! you gotta be kidding me!! for a playstation guru like you that would leave a missing piece behind is something very unusual i say. yeah it is a good patch but we all knew you can do much better. it was very easy for you to make this kind of patch and yet being lazy to do the patch for the international version is somehow very downgrading on your part. i don't like to be antagonistic but if anyone here is as smart as you, we would put a waste on our part do have it complete. why? first of all we all breathe the same air. yes you are greatly smart but if you don't be humble enough i say you making a fool out of yourself. i don't care if the admins kick me in this forum or what. you can't be proud of something that is incomplete.
that's all!
Guys, he's been posting the same bullsh*t for over 6 months. Do yourself a favor and put him in ignore list, your eyes will appreciate a lot.
I will ignore people from now on.Same for me, every single request on how to make patches for other regions will be ignored. I have enough of people who don't even get how assembly hacks work and want to create patches out of their magical butts. Plus, if moderators could please lock this topic forever I'd appreciate, there isn't really anything else to be stated here.
Same for me, every single request on how to make patches for other regions will be ignored. I have enough of people who don't even get how assembly hacks work and want to create patches out of their magical butts. Plus, if moderators could please lock this topic forever I'd appreciate, there isn't really anything else to be stated here.