• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.

Help Thread: Quick Questions & Answers

Status
Not open for further replies.

Criminon

Forever Spriting
265
Posts
11
Years
  • Is anyone familiar with inserting overworld sprites from files rather than just editing them in Overworld editor: Rebirth edition? My sprites always come out garbled, and no setting that I can save them at seems to work properly. The closest thing I've got was the character image split in two. It shows up fine on the import screen, but once imported, its messed up.

    Quick Questions & Answers


    Edit: Fixed
     
    Last edited:
    12
    Posts
    8
    Years
    • Seen Jun 13, 2019
    A few quick questions about scripting.

    1. In XSE, from what I understand, the second I press compile I write it to my rom. That means, if I accidentally give it a wrong offset (and overwrite something else) I effectively mess up my rom. Is there a way to undo this or is the only solution reverting to a back-up?

    2. FSF automatically assumes that I need 256 bytes space when searching for a place to put my script. Is this a good number or would it be better to change it? (as in, is there any chance this won't be enough or might it be more space efficient to make it smaller?)

    3.If I at some point decide to make a script shorter and change it in XSE. Will XSE automatically free the bytes I'm no longer using in the script?

    Thanks for reading.
     

    PokéMew1

    Pokémon Fuchsia
    484
    Posts
    10
    Years
  • A few quick questions about scripting.

    1. In XSE, from what I understand, the second I press compile I write it to my rom. That means, if I accidentally give it a wrong offset (and overwrite something else) I effectively mess up my rom. Is there a way to undo this or is the only solution reverting to a back-up? When you press compile, it writes the script to the offset you stated in your script. The only way to undo this is to use a backup of your ROM (Always remember to create backups!)

    2. FSF automatically assumes that I need 256 bytes space when searching for a place to put my script. Is this a good number or would it be better to change it? (as in, is there any chance this won't be enough or might it be more space efficient to make it smaller?) 256 bytes is plenty bytes for your average script, unless you have an absolute all out enormous script. I would just keep it at around 500 bytes when scripting, Just to be absolutely safe.

    3.If I at some point decide to make a script shorter and change it in XSE. Will XSE automatically free the bytes I'm no longer using in the script? If you shorten a script that you've already once compiled, you will need to rewrite the new version to a new location. The other solution is to open a hex editor and write "FF"s over the old script. From there you can compile your new shortened script to the same location.

    Thanks for reading.

    Answers in bold.
     
    10,078
    Posts
    15
    Years
    • UK
    • Seen Oct 17, 2023
    A few quick questions about scripting.

    1. In XSE, from what I understand, the second I press compile I write it to my rom. That means, if I accidentally give it a wrong offset (and overwrite something else) I effectively mess up my rom. Is there a way to undo this or is the only solution reverting to a back-up?

    2. FSF automatically assumes that I need 256 bytes space when searching for a place to put my script. Is this a good number or would it be better to change it? (as in, is there any chance this won't be enough or might it be more space efficient to make it smaller?)

    3.If I at some point decide to make a script shorter and change it in XSE. Will XSE automatically free the bytes I'm no longer using in the script?

    Thanks for reading.

    Whilst Pokemew is rightish, there are better ways to do this :).

    For Q1 and Q2.

    For all new scripts use dynamic offsets - this means NOT using FSF at all. To do this, included "#dynamic 0x800000" at the beginning of your script and leave custom pointers using the @ sign.

    EXAMPLE said:
    #dynamic 0x800000

    #org @START
    msgbox @TALK1 x6

    This way XSE will assign your script a location easily. Using this method it should be easier to find your script and erase/change parts directly in a hex editor - it'll all be in a similar location and all offsets (for start, talk1, for example) are shown on compiling.

    Scripting will only mess up a ROM beyond repair if you script into important data. Overlapping scripts will mess up themselves, but not be irreparable.

    For Q3, no. The rest of the coding will remain. At the end of the day, unless you're making a script dramatically shorter, this will only waste a few bytes. Shortening and recompiling a script to the same offset is safe. Remember, if you make a script longer you should repoint any extended section (including texts and movements, if applicable).
     
    788
    Posts
    17
    Years
    • Seen May 14, 2024
    3.If I at some point decide to make a script shorter and change it in XSE. Will XSE automatically free the bytes I'm no longer using in the script?

    No. By default, it will simply write the new script to a new location and leave the old copy around. You can overwrite it, but a better idea is to simply use XSE's preprocessor directive removeall. removeall takes a pointer to a script, and it will completely remove a script and all its associated data (movements, text, etc). Of course, it won't work if you overwrite the old with the new, which is why I don't suggest that.

    If the old script is at 0x800000, just write:

    #removeall 0x800000

    Third: In Fire Red, from the start I know that any new evolution additions from other games are disabled (EX: Eevee to Umbreon/Pichu) Are these evolutions enabled with the national pokedex?

    Short answer: Yes.

    Longer answer: You should activate the national dex flag immediately in the game. This doesn't activate the Pokedex on the menu, so you don't have to worry about that. It'll enable the newer evolutions and prevent Pokemon from showing up as number ??? (on the status screen).
     
    26
    Posts
    8
    Years
  • When i click "events" in palette town in advanced map, i get this error:
    "AdvanceMapError(5): The value at $3A01AC is not a pointer! Please contact [email protected]."
    I have contacted luhopoke, but he/she hasn't answered yet. I think i know what the problem is (i need to repoint) but i don't know how. I just get the error message every time i click on it.
     

    GoGoJJTech

    (☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
    2,475
    Posts
    11
    Years
  • Does anyone know where the text of the player's name is stored at in FireRed? Thanks~

    [0x0300500C] + 0x0000 8b Character name including terminator, padded to end with 0xFFs

    This means that at 0x0300500C there is a pointer. That pointer points to the text for the player's name.
     

    PokéMew1

    Pokémon Fuchsia
    484
    Posts
    10
    Years
  • [0x0300500C] + 0x0000 8b Character name including terminator, padded to end with 0xFFs

    This means that at 0x0300500C there is a pointer. That pointer points to the text for the player's name.

    Hmm, thats what I thought.. I examined FBI's "Setting a static name to the player" routine and that was the offset it had. My only problem is, thats a 7 digit offset, and the unedited FireRed only goes to 6 digits! What am I not seeing :/
     

    Joexv

    ManMadeOfGouda joexv.github.io
    1,037
    Posts
    11
    Years
  • Hmm, thats what I thought.. I examined FBI's "Setting a static name to the player" routine and that was the offset it had. My only problem is, thats a 7 digit offset, and the unedited FireRed only goes to 6 digits! What am I not seeing :/
    Thats a ram(IRAM) offset not an ingame offset. There is no ingame offset of the players name.

    Does anyone know how gameshark codes (those with master code, and all) work with the ROM?
    Is it possible to make cheat codes for my hack? Do they change hex information dinamically?
    The way the cheats work is simply by editing the ram. There are ways to make you own, I personally don't know how, but someone a little more qualified in that area might be able to answer for me.
     
    275
    Posts
    9
    Years
  • Thats a ram(IRAM) offset not an ingame offset. There is no ingame offset of the players name.


    The way the cheats work is simply by editing the ram. There are ways to make you own, I personally don't know how, but someone a little more qualified in that area might be able to answer for me.

    What do you mean by editing RAM?
    I asked this, because codes can make "any nature" show up, or "Pokéballs always capture" or "Only male Pokémon" and they seem to have a much simpler of editing the game other than just opening it and trying to do it.
    Also, I asked, 'cause if they change data, they must know where the data is located. Well, just a thought.
     

    Bob Saget

    BAMF
    2
    Posts
    11
    Years
    • Seen Aug 3, 2018
    Hi, I was wondering if anyone knew how to make it so the trainer himself can battle against pokemon/other trainers?
     
    23
    Posts
    9
    Years
    • Seen Sep 2, 2015
    Does anyone know how gameshark codes (those with master code, and all) work with the ROM?
    Is it possible to make cheat codes for my hack? Do they change hex information dinamically?

    They work with RAM.
    If you don't mind action replay, here.
    I believe that they are executed periodically. If their conditions are fulfilled, they change the value of the address.
     
    275
    Posts
    9
    Years
  • Hi, I was wondering if anyone knew how to make it so the trainer himself can battle against pokemon/other trainers?

    You might wanna look into the safari battle system. Something like that is possible. I don't believe it would work for other trainers, though.

    They work with RAM.
    If you don't mind action replay, here.
    I believe that they are executed periodically. If their conditions are fulfilled, they change the value of the address.

    Thanks bro. I don't really want cheats for my game. Just wondering how they work.
    Maybe I could find some offset addresses with this information. =D
     

    Touched

    Resident ASMAGICIAN
    625
    Posts
    9
    Years
    • Age 122
    • Seen Feb 1, 2018
    They work with RAM.
    If you don't mind action replay, here.
    I believe that they are executed periodically. If their conditions are fulfilled, they change the value of the address.

    Gameshark and other cheat devices can patch the ROM by watching the address bus. Remember that cheat devices sit between the GBA and the cartridge allowing them to change basically anything.
     

    FSBS

    Defunct
    147
    Posts
    8
    Years
    • Seen Apr 19, 2019
    Two questions: While working on Emerald I was seeking a way to implement the Phys/Spec split I came across a way to make TMs reusable in a reply to the Quick Research and Development Thread. Thing is, I don't understand how to implement it. Here's the text from the post:


    >So I was taking a peek through good old reseach and development today when I saw a cute little post about resuable TMs. You know, making TMs act like HMs. After seeing that it had been found on Ruby and FireRed, I thought, why not find it one Emerald? So I did.

    >To do this little bad boy, go to 0x1B6EE0 in your Emerald ROM and change the A9 there to 90.
    Simple as that!


    What tool do I need to use to implement this? And if you could point me in the direction of the Phys/Spec split patch for Emerald I'd be much obliged.
     

    PokéMew1

    Pokémon Fuchsia
    484
    Posts
    10
    Years
  • Thats a ram(IRAM) offset not an ingame offset. There is no ingame offset of the players name.

    Ah ok, that makes a lot more sense and after a little researching I see that the IRAM begins at 3000000 so that makes sense. I don't suppose there is any way to access the RAMs hex?
     
    Status
    Not open for further replies.
    Back
    Top