• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • It's time to vote for your favorite Pokémon Battle Revolution protagonist in our new weekly protagonist poll! Click here to cast your vote and let us know which PBR protagonist you like most.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

How to get better at Romhacking ~ Guide

Bulbadon

Might or might not come back
  • 106
    Posts
    10
    Years
    • Seen Aug 26, 2016
    Hello all. This thread is for all the beginners who want to get better at romhacking.

    You see all those experts creating hacks and you want to create a hack for yourself? This thread will help you how to hack a Pokemon rom to its fullest. One day you can become an expert too.

    First thing is don't rely on tools/rombases to do all the work for you. Yeah you're thinking its impossible to hack a rom without tools. I agree but when you use a tool you also should know how the tools function. For example lets say XSE, its a very important tool.

    XSE writes new scrips, scripts control how NPCs and many more things behave in your game. Yeah Advance Text is nice but XSE is way better. Why use XSE and not Advance Text? Because XSE can do much more than Advance Text.

    If you're thinking, "XSE is very complicated, I won't be able to use it." Nonsense, its not complicated at all, you just need to know how it works. If you know how to use XSE properly you can go very far in hacking and create hacks which people will play everyday.

    I'm not going to give you a tutorial on how to use XSE. Here's a tutorial:
    https://www.pokecommunity.com/showthread.php?t=164276

    What? That's too much too read? You won't get anywhere in life without reading. You have to read in order to learn how to script but if you really hate it you don't have to read all of it, just the parts you want to use in your rom. If you've gained basic knowledge on how XSE works lets move on to simpler way of hacking the rom.

    Second thing is Hex Editing.

    NOTE: We are using a FireRed rom in this tutorial.

    Hex editing is very simple. Its easier than scripting.
    First you need a Hex Editor. I and a lot of people in this site use HxD. Link? Go search it on Google its right there.

    After you download HxD. Click open file and open up your rom. Alright first I'll just tell you how to do an example and you'll do it. I'm going to tell you how to do an example on Pokemon FireRed.

    After we're done hacking, you'll be able to run without flag check for running shoes. Before I make it any more complicated for you all to understand I'll explain after you are done.

    Okay so your HxD is still open with Pokemon FireRed. Now click "Search" a drop down box will appear then click "Goto". A box will appear where you can type something. Type or paste this: "05BA3A". In the white box without changing any of the options there below, then click "OK".

    Don't be scared, it'll take you to an offset, now don't click anywhere with your mouse yet.
    Just type "00 00 00 00". Zeros. Type "0" 8 times. The text will become red. Then click File and save.

    You're done! Now I'm going to tell you what we did. We removed flag check for running shoes, so what you can do now is (simply) run without receiving the running shoes in game. To test it out just start your Fire Red rom, walk out the house and try to run.You can run now and we didn't even receive the running shoes from the scientist in Pewter city.

    So what you just did is Hex Editing. The very basic hex editing. Here's more info about Hex Editing:
    https://www.pokecommunity.com/showthread.php?t=237691

    If you want to make bigger changes to your rom, you have to do more hex editing. Now let's do a harder one this time. We are going to implement Gen VI style experience gain into FireRed.

    Since now you know how basic hex editing works, just follow my instructions. You need one more tool this time its called Free Space Finder. No I won't give you the link to it just search it up on Google.

    Now what Free Space Finder or FSF does is, it looks for free space in your rom. Free space in your rom helps you implement new features. Ok now after you've downloaded FSF, search for free space in your rom. It'll show you some hex similar to the ones we just saw in Hex Editor!

    Copy those bytes. Remember those bytes. I suggest you paste it in a text document.

    Now open up HxD, open FireRed. Goto "Search" and "Goto" again and paste your FSF bytes there (The ones you pasted onto your Text Document).
    It'll take you somewhere. Now what you need to do is copy the things below:

    2E E0 3F 02 02 00 2E 0C 3C 02 02 00 2E 0D 3C 02 02 00 23 00 F1 63 9A 1D 08 28 58 9A 1D 08

    You should still be in the same place in HxD. So you've copied the bytes above now paste it right at the spot where you went to in HxD. You'll see red text. Click save just like before.

    We're halfway done. Now we need those free space bytes you copied onto your Text Document again.

    So now it might get a bit tricky for you. Remember those free space bytes. Okay lets say FOR EXAMPLE FSF gave me these bytes:
    1BA71E (you will definitely have different bytes)

    What I'm going to do is switch the first and last two bytes so this:

    1B A7 1E = 1E A7 1B and add 08 in the end = 1E A7 1B 08

    Why add 08? Because that's how codes work in FR, its just necessary. Yeah you won't have exactly the same bytes as me.

    Okay now search and goto 1D9A53 in HxD just like the way we did before and type 41 there AND paste over your flipped FSF bytes the thing we did up there ^^^^. For me its 1E A7 1B 08, for you it will be different but it will have 08 at the end regardless. You will see red text, so click save again.

    We are almost done now finally Goto 15A68 and paste A1 5A 01 08 there. You're done, now your Pokemon will gain XP every time you catch Pokemon! Neat!

    Of course load up your rom and try it out. We're done with Hex Editing, you've learned Basic Hex Editing now.

    Third thing is compiling and inserting ASM routines. Still working on the tutorial right now. Will update soon.

    Credits:
    Running shoes flag removal - Shiny Quagsire
    XY style capture system - Ismash and Doesntknowhowtoplay

    Closing: If some parts confuse you feel free to post in this thread about it.
     
    Last edited:
    I tried the first part with the running shoes and it did not work. The first two don't become red since they are already Zeros, so i have two unchanged Zeros followed by 6 red zeros. I also tried to change the text on the right with 8 zeros and got 8 times a red 30 on the left without any result in the game.
     
    I tried the first part with the running shoes and it did not work. The first two don't become red since they are already Zeros, so i have two unchanged Zeros followed by 6 red zeros. I also tried to change the text on the right with 8 zeros and got 8 times a red 30 on the left without any result in the game.

    thats not possible.... It should not be already 0... Are sure you put the correct offsets & are using a Fire Red Rom?
     
    I tried the first part with the running shoes and it did not work. The first two don't become red since they are already Zeros, so i have two unchanged Zeros followed by 6 red zeros. I also tried to change the text on the right with 8 zeros and got 8 times a red 30 on the left without any result in the game.

    EDIT: I'm guessing you're having this problem because you're using RSE. For now, I haven't tried porting the code over to RSE, so it only works for FR.

    Make sure the "hex" is ticked when you open "Goto" and "offset relative to" should be set to "begin".
    If you are using FireRed (Squirrels) and you goto 05BA3A. The first 4 set of bytes are 12 F0 49 FE. Just change all of those to 00s and it should be working.
     
    Last edited:
    I actually couldn't really find any informations about roms so far and used (independent). Should I use (squirrels) instead? What is the difference?
     
    I actually couldn't really find any informations about roms so far and used (independent). Should I use (squirrels) instead? What is the difference?

    One is Firered v1.1 and the squirrels is the regular one. There is a difference between them, I'm thinking there is a bit of coding difference. I've always used FireRed (squirrels) so I don't know much about the difference between them.

    You could try hacking both, first see if it works on the FireRed (Squirrels).
     
    Back
    Top