• 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.

[Script] Overworld Character Customisation - Problems and Questions

JK0JK

JK is JK
25
Posts
3
Years
  • Ok so... I've been working on my first ROM Hack for about a week now. Most of this time was me just learning how to use the software (HexManiacAdvance truly is a jack of all trades, too bad I only learned about it in the middle of the week) and working on sprites and text editing. However, and before I start play testing some of the other main mechanics, I need to have a character customisation mechanic, in a sense.

    I'm thinking it would go like this: one character finds an item (which would set a flag) and that allows him to use another OW sprite in a specific map. This map would not allow for any battles so that isn't a problem. This is crucial for the storytelling in my project and if I can't do it consistently, I might have to cancel it.

    Fortunately, I found that this post had the answer to all my problems! Unfortunately, though, my game restarts as if it had crashed once I start a new save file or it will softlock if I get out of the protagonist's house.

    The original post was very explicit when saying that "you need to set variable 0x8000" to anything other than 0xFF and that the flag 0x406 must be set. I assumed the crashing was due to these not being correctly assigned. I made a script that would do it as the first map was loading. Then, when that failed, I made a script that set them during Oak's speech, to no avail.

    If you can, please, try to follow what the post says and show me the results.

    I know other people were successful at recreating that effect, just look a Pokemon Voyager and others that gave you a way of customising your overworld appearence! My question is "What should I be doing?". I don't expect you to tell me what I am doing wrong (but if you follow this link you'll get acess to the test file I've been using instead of the actual project. Don't worry about you having an almost virgin copy of Fire Red, it's unusable in its current state) but if you can give me more detailed info on what the original post intended for us to do, I'd greatly appreciate it.

    I have a few questions and concerns about this method. If you could answer any or all of these, it would also be perfect.

    1. The post says that we must write in 0x5CA4C certain code, which will also reference the rest of it. What are we overriting and what changes are we making?
    2. The original poster "excluded items which were 'repeated' OWs". What do they mean by that? Is it still safe to use them?
    3. Say I change a child's sprite (16x16 pixels) to a normal sprite (16x32 pixels). There is no data overriten, the sprite has been repointed to where it can fit better, etcetera. Is it still possible for me to copy their sprite? (take 0x8000 as 29, for example)
    4. Is it possible to change into Female Hero Bike or is it a male only thing with that code?

    Any answers are greatly appreciated, since this is a crictical part of my project and it cannot continue without it. Thank you for your read.
     
    Last edited:

    ScripNewbie

    Mystc Creator
    38
    Posts
    3
    Years
    • Seen Jan 27, 2023
    Your Problem is Blacking your screen right?..
    I might know how to fix it..

    Did you put the exact same Pointer to
    0x5ca4c, because if you put it.
    Your wrong..you must add +1 onto it.
    Example: your pointer is 800000 or 00008008
    You must add +1 into it.
    800001 or 01008008
    Just do it like that.
     
    Last edited:

    JK0JK

    JK is JK
    25
    Posts
    3
    Years
  • Your Problem is Blacking your screen right?..

    Originally, no. The game would restart as if it was reloading the ROM. Now, it is exactly that: the screen is black. However, putting the pointer +1 was still unsucessful. It's true, I forgot about that in earlier tests but this time I made sure it was one byte after the actual directory.

    Question: the thumb code for the first script and its compiled version are different in my byte viewer. Which should I use?
     

    ScripNewbie

    Mystc Creator
    38
    Posts
    3
    Years
    • Seen Jan 27, 2023
    I used Compiled version.
    (Too lazy to Compiled into myself and the Compiled version is tested)
    And I'm using JPAN hacked engined

    My Script is:
    #dyn 0x750000
    #org @a1
    message @a2
    callstd MSG_NORMAL
    setflag 0x406
    setvar 0x8000 0xC
    fadescreen FADEOUT_BLACK
    warp 0x3 0x0 0xFF 0xA 0xA(not necessary I'm just to lazy to walk in the house.)
    fadescreen FADEIN_BLACK
    release
    end

    #org @a2
    = Brendan Time.


    and it's Perfectly work.
    Ps. You can only transform on the OWS on the list given..or you will be surfing in the land lol.


    https://www.deviantart.com/jdmaster...0428-114004-7a66e42c6ad904fa8866b59-877769415

    To

    https://www.deviantart.com/jdmaster...0428-114041-7a66e42c6ad904fa8866b59-877769468


    :)
     
    Last edited:

    JK0JK

    JK is JK
    25
    Posts
    3
    Years
  • I used Compiled version.
    (Too lazy to Compiled into myself and the Compiled version is tested)
    I see, I'll use the compiled version, then.

    And I'm using JPAN hacked engined
    What is that? I've heard a lot of people talk about it but I have no idea what it is and how it differs from the vanilla game/engine....

    My Script is:
    Spoiler:
    Your code... Is it a level script or does it activate once you start a new game/once the rom is loaded? Also, I tried using it with the vanilla game, fadescreen FADEOUT_BLACK is not something the game knows how to deal with... I used your warp code and at least I can hear the warp sound. Now the screen is blue so that's a good change of pace.

    Ps. You can only transform on the OWS on the list given..or you will be surfing in the land lol.
    I actually don't mind surfing on land, my romhack is not meant to be played like a pokemon game so surfing on land, for example, is something I was already planning to do. Some of the characters were supposed to have bigger sprites so the surf one was exactly what I wanted for them to replace.
     

    ScripNewbie

    Mystc Creator
    38
    Posts
    3
    Years
    • Seen Jan 27, 2023
    First of all.
    Pokemon FR JPAN engine has a lot of feature..

    Features
    Support for over sixty thousand different OWs, as well as access to fourty-six hundred different palettes
    Hacks preformed in the Battle system allow you to choose options for your hack, including Status-ridden pokemon, Shinies and creation of swarm events
    Access to GBA Hardware function through new Specials that allow you to create Timed events and Button dependent events
    All processor math and logic functions available for your variables
    Dynamic multichoice boxes that can be changed Runtime, making them limitless
    A fully-fledged pokemon decryption system accessed through variables that allow you to read and edit almost all information encrypted and locked away inside your pokemon.
    Edited some of the old Specials, allowing for replacing the Old man Pokemon and Ghost Marowak with new pokemon, as well as a new version of the Pokemon Size minigame (the Heracross and Magikarp ones)
    Edited the Fossil Special (from pewter museum). Now it can hold 256 different 64 by 64 pixel uncompressed images
    Edit what every Behaviour byte does when you press A in front of it(scripts), allowing for things like headbutt trees
    Choose where you go when you die, even if it's not a pokecenter.

    This Patch will delete all in-game script it will only leave some warp events..
    Don't worry it will only delete script that in the original game..your own script will stay there...
    Used it in your own risk.
    I don't recommend this..because the pointer table in this Patch is not the same in the original rom

    Example.
    The pallette pointer
    Original : 0x3A5158
    Hacked Engine: 0x1A2400

    2nd

    I using PKSV.
    So the fade screen will never going to work..
    Because XSE and PKSV have a different Format of Scripting..
    Example:
    XSE: fadescreen 0x1
    =
    PKSV: fadescreen FADEOUT_BLACK
    And It doesn't matter if it's level script or green script..as long as you execute it..it will work

    Maybe I found what is the problem.
    Sometimes If you too many asm code/patch in your rom.
    The other asm/patch will not going to work..as it they used the same Pointer or addresses.
    Try your ASM in untouched FR rom..if it's work..then that's the problem.
    If not your inserting is wrong..
     
    Last edited:
    Back
    Top