Feaw Posted April 17, 2008 Share Posted April 17, 2008 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. Quote Link to comment Share on other sites More sharing options...
kaonohiokala Posted April 18, 2008 Share Posted April 18, 2008 I've had the same problem. I'm guessing the HP cap simply doesn't work and that ithe true cap is located somewhere in the game's programming Quote Link to comment Share on other sites More sharing options...
Camus The Dark Knight Posted April 18, 2008 Share Posted April 18, 2008 The game has an HP cap slot, but it isn't used for anything since it's hard coded your unit's cannot exceed 60 and that enemies can go up to 80 regardless of their cap (120 in FE7/8). You will need to play with some ASM to change this. Quote Link to comment Share on other sites More sharing options...
Feaw Posted April 19, 2008 Author Share Posted April 19, 2008 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? Quote Link to comment Share on other sites More sharing options...
Nintenlord Posted April 20, 2008 Share Posted April 20, 2008 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. Quote Link to comment Share on other sites More sharing options...
Feaw Posted April 20, 2008 Author Share Posted April 20, 2008 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 :(. Quote Link to comment Share on other sites More sharing options...
Nintenlord Posted April 20, 2008 Share Posted April 20, 2008 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? . 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. Quote Link to comment Share on other sites More sharing options...
Feaw Posted April 20, 2008 Author Share Posted April 20, 2008 . 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. Quote Link to comment Share on other sites More sharing options...
Nintenlord Posted April 20, 2008 Share Posted April 20, 2008 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. Quote Link to comment Share on other sites More sharing options...
Feaw Posted April 20, 2008 Author Share Posted April 20, 2008 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. Quote Link to comment Share on other sites More sharing options...
Nintenlord Posted April 20, 2008 Share Posted April 20, 2008 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. Quote Link to comment Share on other sites More sharing options...
Feaw Posted April 20, 2008 Author Share Posted April 20, 2008 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.