Jump to content

GBA hacking HP cap problem


Feaw
 Share

Recommended Posts

See, I'm hacking these two FE game, namely FE 6 and 7. I'm doing nothing special but editing the stats and such for the characters (I'm a beginning hacker). I'm just experimenting.

But I got this problem: I changed the HP cap of all promoted and special classes to 80, but in the game the max is still 60 :D), and went from 60 HP to 40 HP..

So does anyone know how I can make the cap actually working? So let's say, Gonzales can get 75~80 HP? And other people like him.

Any help is appreciated.

Link to comment
Share on other sites

Ok thanks.

Does anyone know which program, if any, I need to get inside the database or however it is called, so I can play with the codes?

VBA can disassemble the code and then you can make your own code with documentation such as GBATEK or Thumb-ref. After you have your own code made, you insert it in hex editor after either assembling or making it into hex by hand.

Link to comment
Share on other sites

VBA can disassemble the code and then you can make your own code with documentation such as GBATEK or Thumb-ref. After you have your own code made, you insert it in hex editor after either assembling or making it into hex by hand.

Ok, I'm in the Disassemble tool now in VBA.

I think I have found the code for the HP cap, which is "00000030 e28fb03c add r11, pc, #0x3c.

I think this because "3c" is 60 in decimal numbers.

So what to do now?

And that GBATEK or Thumb-ref, are those programs or are they in the VBA?

Thanks

EDIT: I tried to do things myself, but I just don't understand it. How do I assembly the code when I think I've found it? And so on.

Can you please try it yourself for me, on your pc, and then tell how I have to do it, if you can and want?

I'd really appreciate it :(.

Link to comment
Share on other sites

Ok, I'm in the Disassemble tool now in VBA.

I think I have found the code for the HP cap, which is "00000030 e28fb03c add r11, pc, #0x3c.

I think this because "3c" is 60 in decimal numbers.

So what to do now?

:facepalm: . It's not that easy.

And that GBATEK or Thumb-ref, are those programs or are they in the VBA?

GBATEK

The link I got the Thumb-ref doesn't work any more, sorry.

EDIT: I tried to do things myself, but I just don't understand it. How do I assembly the code when I think I've found it? And so on.

Can you please try it yourself for me, on your pc, and then tell how I have to do it, if you can and want?

I'd really appreciate it :(.

First of all, the code you found isn't the right one. Trust me on this one. The code that you're looking for is most likely in ROM, which starts in RAM offset 0x08000000. You have to find an emulator that supports breakpoints such as VBA-SDL-H. Then, put a breakpoint on read to the offset where the HP is. When the breakpoint breaks the execution, go to the offset where it breaks and look around. If you find something that makes sense, write the offset down and continue execution until the program breaks again. Repeat until you get no more new results. After that, take out your hex editor and go to one of the offsets you found and edit it. If you get the results you wanted, good for you. If not, try another offset with another ROM. If you're lucky, you might find it.

Link to comment
Share on other sites

:facepalm: . It's not that easy.

GBATEK

The link I got the Thumb-ref doesn't work any more, sorry.

First of all, the code you found isn't the right one. Trust me on this one. The code that you're looking for is most likely in ROM, which starts in RAM offset 0x08000000. You have to find an emulator that supports breakpoints such as VBA-SDL-H. Then, put a breakpoint on read to the offset where the HP is. When the breakpoint breaks the execution, go to the offset where it breaks and look around. If you find something that makes sense, write the offset down and continue execution until the program breaks again. Repeat until you get no more new results. After that, take out your hex editor and go to one of the offsets you found and edit it. If you get the results you wanted, good for you. If not, try another offset with another ROM. If you're lucky, you might find it.

Hmm.. First off, the link to the VBA_SDL_H doesnt work. But I googled it and downloaded it.

But it doesnt work, when I open it a black screen with codes appears for not even 1 second and disappears, nowhere to be found. I downloaded anotger file on that same site, but it still doesnt work.

Oh yeah, and another thing, I found a code in the 0x080000 section you mentioned, is this the correct one:

00080030 e28fb03c add r11, pc, #0x3c. Surely, this isnt the correct one? I'm just guessing this.

So you basically say that, when I found the correct offset and code for the HP cap, I have to put the offset (in this case 00080030) in the VBA_SDL_H thingy, and then...

After reading the rest of your post I was like O_o??

I'm not that smart with these things, as you can see.

Can you explain it clearly to me please?

Thanks.

Link to comment
Share on other sites

But it doesnt work, when I open it a black screen with codes appears for not even 1 second and disappears, nowhere to be found. I downloaded anotger file on that same site, but it still doesnt work.

Drag the ROM you want to use to the program or use command line (as the README of VBA-SDL-H says).

Oh yeah, and another thing, I found a code in the 0x080000 section you mentioned, is this the correct one:

00080030 e28fb03c add r11, pc, #0x3c. Surely, this isnt the correct one? I'm just guessing this.

No it's not the correct one.

So you basically say that, when I found the correct offset and code for the HP cap, I have to put the offset (in this case 00080030) in the VBA_SDL_H thingy, and then...

By the time you find the right offset, you won't use VBA-SDL-H anymore. But let's concentrate on finding the offset for now.

We'll do this step by step.

1. Put a breakpoint on read to the offset where the HP is.

First you need to figure out the offset where the HP is in ROM. Open the character editor in Notepad. You should see something like this:

#FE7 Character Editor by SpyroDi
#

1
FE7 Character Editor by SpyroDi, modified by Arch the GK and Nintenlord
0xBDCE18
254
52
FE7 Character List.txt
NULL

If you don't, download the updated character editor from here. After that, you need to start counting. You count 0xBDCE18h + (52 * The characters reference number) + 12(the position of base HP in the editor). You have to convert the result to hex. Tell me what the correct result is and we'll continue.

Link to comment
Share on other sites

Drag the ROM you want to use to the program or use command line (as the README of VBA-SDL-H says).

No it's not the correct one.

By the time you find the right offset, you won't use VBA-SDL-H anymore. But let's concentrate on finding the offset for now.

We'll do this step by step.

1. Put a breakpoint on read to the offset where the HP is.

First you need to figure out the offset where the HP is in ROM. Open the character editor in Notepad. You should see something like this:

#FE7 Character Editor by SpyroDi
#

1
FE7 Character Editor by SpyroDi, modified by Arch the GK and Nintenlord
0xBDCE18
254
52
FE7 Character List.txt
NULL

If you don't, download the updated character editor from here. After that, you need to start counting. You count 0xBDCE18h + (52 * The characters reference number) + 12(the position of base HP in the editor). You have to convert the result to hex. Tell me what the correct result is and we'll continue.

Ok, thanks for doing this.

I did what you said, and I have the same thing you said in the code box. Now, what is the "characters reference number"? Are you saying that I have to do this for every single character?

Also, if you have MSN, we could better do it via that, my e-mail is: lesleykroos@hotmail dot com.

Link to comment
Share on other sites

Ok, thanks for doing this.

I did what you said, and I have the same thing you said in the code box. Now, what is the "characters reference number"? Are you saying that I have to do this for every single character?

Only one is enough. Character reference number is pretty much the same as the characters number in character editor, give or take one. Eliwood is supposed to be 0x01 which means 1. Adjust the rest of the characters according to that.

Also, if you have MSN, we could better do it via that, my e-mail is: lesleykroos@hotmail dot com.

Added you, but it'll have to wait till tomorrow, I'm getting extremely drowsy right now.

Link to comment
Share on other sites

Only one is enough. Character reference number is pretty much the same as the characters number in character editor, give or take one. Eliwood is supposed to be 0x01 which means 1. Adjust the rest of the characters according to that.

Added you, but it'll have to wait till tomorrow, I'm getting extremely drowsy right now.

Ok, see you tomorrow then.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...