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

Crizzle

Legend
  • 942
    Posts
    9
    Years
    For the hacks I've made so far, I didn't want to use anymore than the first 386 Pokemon. Because of that I'm a complete noob when it comes to adding extra Pokemon to the game.
    I don't want to add 400 extra Pokemon to the game, I just want to add 9 new Pokemon to a FireRed hack. What would be the best way to do that? Is G3HS's pokemon expansion good to use? How about those ??? Pokemon slots between generations. Are those safe to insert new Pokemon in?

    ...Probably not a quick question...
     
  • 19
    Posts
    8
    Years
    • Seen Apr 28, 2018
    So, pokemonforever27 created a script that grabs the highest level of the player's party Pokemon and stores it in LASTRESULT (found at /showthread.php?t=207429 ; I'm too new to post links fully, sorry).

    I have two questions about it:

    1) What would the correct addresses be for Ruby, since the ones in the script were from FireRed?

    2) How would I go about using the result of this as the level of a Pokemon given with givepokemon? (In other words, since I'm a noob at this, how would I use the value in a memory location as a parameter to givepokemon or other commands?)
     
  • 30
    Posts
    8
    Years
    • Seen May 30, 2020
    I'm working in Firered, and I want to make a cycling road similar to the one in RSE, where Cycling Road is built above an ordinary route. One problem for me is that Firered doesn't have any bridges that the player walks both over and under. How would I find and insert the appropriate tiles for this?
     
  • 5,256
    Posts
    16
    Years
    I'm working in Firered, and I want to make a cycling road similar to the one in RSE, where Cycling Road is built above an ordinary route. One problem for me is that Firered doesn't have any bridges that the player walks both over and under. How would I find and insert the appropriate tiles for this?
    Bridges are actually down to movement permissions, not necessarily the tiles. More info here: https://www.pokecommunity.com/showthread.php?p=8290709#post8290709
     

    Shogun

    I'll be back
  • 527
    Posts
    10
    Years
    For the hacks I've made so far, I didn't want to use anymore than the first 386 Pokemon. Because of that I'm a complete noob when it comes to adding extra Pokemon to the game.
    I don't want to add 400 extra Pokemon to the game, I just want to add 9 new Pokemon to a FireRed hack. What would be the best way to do that? Is G3HS's pokemon expansion good to use? How about those ??? Pokemon slots between generations. Are those safe to insert new Pokemon in?

    ...Probably not a quick question...
    With gen3hs you can see two different free space (ach of them contain 26 free slots). Yes you can eadit them without any issues.... except the following :
    - if you edit the bad egg (he is mentionned in one these slots because he got the name bad egg) you can create a lot of errors
    - Some egg sprite can be altered (I've heard about that ut I'm not sure)
    - All the unown's form will be altered !!!!! >>> The sprite of unown will be glitchy.

    If you just want to add a few Pokémon, yes can expand and edit them with gen3hs
    If you want to add a lot aof Pokémon i suggest you to expand with GEN3HS and then to edit with a safe tool like PGE etc...
     

    PokéMew1

    Pokémon Fuchsia
  • 484
    Posts
    10
    Years
    I just recently made a thread that relates to this question in a way. The question is for advance map: Can you have a map that uses 8 sets of palettes? I inserted a tileset, and there are so many palettes that it uses pal's 0-7. It looks good in a-map, but in game a lot of tiles are just missing..
     
    Last edited:
  • 7
    Posts
    8
    Years
    • Seen Mar 5, 2020
    I was wondering, I know that there is a check flag script function in XSE and that there is a face player function, but is there a way to check which way the player character is facing (up down left or right)? I would like to write a script line so that which event happens depends on what way the character is facing.
     
  • 17
    Posts
    8
    Years
    • Seen Jul 23, 2022
    I'm hacking emerald and I have two new maps so far in two new map banks, 34 and 35: an outdoor map, and the inside of a building. Problem is, every time I change something in one map and save it, it breaks something else in the other map. Sometimes the border blocks change, sometimes the map type changes to "Dark, flash unusable" and sometimes the encounter types change. The pattern is, every time I fix something in one map, it undoes something in the other map.

    Is this just A-map being buggy and unreliable, or am I missing something here?

    EDIT: I fixed this by repointing one of the maps. I guess I can't trust A-map's free space finder, or it's just buggy
     
    Last edited:
  • 19
    Posts
    8
    Years
    • Seen Apr 28, 2018
    I was wondering, I know that there is a check flag script function in XSE and that there is a face player function, but is there a way to check which way the player character is facing (up down left or right)? I would like to write a script line so that which event happens depends on what way the character is facing.
    XSE's standard library (std.rbh) has some macros defined that are very useful here. The first is PLAYERFACING, which points to the memory address that stores which way the player is facing. The rest are constants for the different directions, FACE_UP, FACE_DOWN, FACE_LEFT, and FACE_RIGHT. So you can compare the former to any of the latter and check the result.

    For example, a code snippet:

    Code:
    #org @main
    compare PLAYERFACING FACE_UP
    if 0x1 goto @upCode
    compare PLAYERFACING FACE_LEFT
    if 0x1 goto @leftCode
    compare PLAYERFACING FACE_RIGHT
    if 0x1 goto @rightCode
    compare PLAYERFACING FACE_DOWN
    if 0x1 goto @downCode
    end

    Of course, in this example, @upCode and the like all need to be defined by you, but that basically should be what you need to get started.
     
  • 78
    Posts
    8
    Years
    Whenever I try to go to Route 6 on my FireRed ROM with AdvancedMap, I get this error:
    Quick Questions & Answers

    I checked the map, and there is no script that uses this "invalid pointer." Everytime I try to go from Route 6 to another map, it tells me if I want to save the Wild Pokemon data. I don't know how to change the pointer for Wild Pokemon data via AdvanceMap, and I don't know how to create pointers either. This error's been annoying me ever since I started encountering it today. So, any solutions to this issue?
     
  • 88
    Posts
    8
    Years
    • Seen May 10, 2017
    GS Ball and Red

    Hey guys,

    I'm working my way through a Crystal hack and need help with something small, yet I'm not sure how to do.

    At the end of the game, when you fight Red, I want the GS ball to be given as a reward. Red disappears after battling, so I was thinking about him leaving it behind to pick up after he leaves.

    How would I go about doing that?

    Thanks!
     

    miksy91

    Dark Energy is back in action! ;)
  • 1,480
    Posts
    15
    Years
    Hey guys,

    I'm working my way through a Crystal hack and need help with something small, yet I'm not sure how to do.

    At the end of the game, when you fight Red, I want the GS ball to be given as a reward. Red disappears after battling, so I was thinking about him leaving it behind to pick up after he leaves.

    How would I go about doing that?

    Thanks!
    Hi,

    Doing this is kind of simple, but to understand how to do it, you need quite a lot of background information actually. First of all, you'll have to edit the event data of that map to make room for a new event. Next, you would have to reserve some flag (or bit number) for the item ball that he would drop after him being beaten. This would work so that the item would be first set hidden, then shown after the battle and hidden again after it is picked up. Then you would still have to edit Red's script to drop the item (and possibly not show credits like it normally would when you beat him).

    A way easier way for doing this would be to just make him give you the GS ball right away when you win (within his script) and then either display the credits or not. Then, you wouldn't have to worry about giving the item event a specific flag.
    This can be done by repointing his script data elsewhere and adding a few lines of script code for giving you the item. Here is one problematic thing though; if your key item pocket is full, you can't get the GS ball when it should be given to you which you would have to handle in one way or another if the key pocket can be filled when you battle him.

    Also, I take it you want to do this to be able to make it so the player could get Celebi at the Ilex Forest shrine? I'm not sure if having GS ball only will activate that event. Something more could be related to it as well.
     
  • 88
    Posts
    8
    Years
    • Seen May 10, 2017
    Hi,

    Doing this is kind of simple, but to understand how to do it, you need quite a lot of background information actually. First of all, you'll have to edit the event data of that map to make room for a new event. Next, you would have to reserve some flag (or bit number) for the item ball that he would drop after him being beaten. This would work so that the item would be first set hidden, then shown after the battle and hidden again after it is picked up. Then you would still have to edit Red's script to drop the item (and possibly not show credits like it normally would when you beat him).

    A way easier way for doing this would be to just make him give you the GS ball right away when you win (within his script) and then either display the credits or not. Then, you wouldn't have to worry about giving the item event a specific flag.
    This can be done by repointing his script data elsewhere and adding a few lines of script code for giving you the item. Here is one problematic thing though; if your key item pocket is full, you can't get the GS ball when it should be given to you which you would have to handle in one way or another if the key pocket can be filled when you battle him.

    Also, I take it you want to do this to be able to make it so the player could get Celebi at the Ilex Forest shrine? I'm not sure if having GS ball only will activate that event. Something more could be related to it as well.

    Yes, this is for the Celebi thing. As far as I understand (and I've looked into this to check that it wasn't only made for the Japanese versions of GSC), all that is required is the GS ball before going to the Ilex shrine. I have heard of people gamesharking the GS ball into their inventory to be able to activate it, which seems to indicate that the GS ball is sufficient to fulfill the Celebi criteria.

    With the script data, if it is a gift (which seems like the easier option), couldn't I get it to cross reference with your inventory and feed back a "You've no room for this" message if it is full? If I am changing the event so that he is giving me an item instead of vanishing, surely this would work? If you have no room, you simply go back post-credits so he can give you the item.

    I apologise for my lack of knowledge, but what scripting would be required for him giving the GS ball? I've not done anything to do with handing over items so not entirely sure what to do.

    Thanks for your response!
     

    Crizzle

    Legend
  • 942
    Posts
    9
    Years
    Which are the recommended tools for spriting, mapping and scripting, respectively?
    Spriting- To make the sprites, most image editing software will do. Even MS Paint.
    To insert the sprites, NSE 1.7(for overworlds) and NSE 2.0.
    Mapping- AdvanceMap 1.92
    Scripting- XSE
     
  • 17
    Posts
    8
    Years
    • Seen Jul 23, 2022
    Does anybody know where I can find the offsets for scripts that are applied to certain map tiles? Like, when you place a world map in a room you can interact with it even without using a signpost event, or the PC in the pokemon center, or even the script for when you use surf? (this is for emerald)

    While I'm at it, does anybody know how to disable the surfing music? When I surf, I want the background music to continue playing normally

    EDIT: How can I let players use surf without activating any badges? Mainly I just don't want the badges to appear on the trainer card, but I still need to be able to surf

    EDIT: One more thing I need: where can I find a list of fanfares for emerald? I've looked online and I can't find any, and supposedly A-map has a list of them but I can't find it
     
    Last edited:

    miksy91

    Dark Energy is back in action! ;)
  • 1,480
    Posts
    15
    Years
    Yes, this is for the Celebi thing. As far as I understand (and I've looked into this to check that it wasn't only made for the Japanese versions of GSC), all that is required is the GS ball before going to the Ilex shrine. I have heard of people gamesharking the GS ball into their inventory to be able to activate it, which seems to indicate that the GS ball is sufficient to fulfill the Celebi criteria.
    Just googled and found this video:
    https://www.youtube.com/watch?v=Gd_O9IaQ4MA

    According to its description, you also need to use gameshark code "01C089DA" for making Kurt accept the GS Ball before it can be hold at the shrine to make Celebi event occur. What this gameshark code does is to write "C0" in ram address $DA89. 0xC0 in binary is 1100 0000 which means that it sets 2 highest bits of the byte in that address. Either one of these bits have to be set for making it possible to talk to Kurt while holding the GS Ball to activate the Celebi shrine event.

    With the script data, if it is a gift (which seems like the easier option), couldn't I get it to cross reference with your inventory and feed back a "You've no room for this" message if it is full? If I am changing the event so that he is giving me an item instead of vanishing, surely this would work? If you have no room, you simply go back post-credits so he can give you the item.
    Yeah but in this case as well, you need to reserve a flag for the case when you beat him and don't have room for the item. So you need additional flag for this event.

    I don't know where there are usable flags in Crystal you could use without doing some tricks with the existing flags (like using two flags for one event which is sometimes doable). But this is not a big problem to deal with when you know what the flags do (= how they point to bits in ram).

    I apologise for my lack of knowledge, but what scripting would be required for him giving the GS ball? I've not done anything to do with handing over items so not entirely sure what to do.

    Thanks for your response!
    You can use a script editor called pksv for scripting, but what you would have to do would be knowing how to locate his script in one way or another (the map editor you use may show the exact location of the script data or a pointer to it), repoint all or a part of the script data elsewhere where there is room for writing new stuff and write script codes for giving the item and checking whether the player has room for the item. If there is no room, skip script code for setting a flag for "GS ball being received".

    Scripting codes for GSC can be found here: https://hax.iimarck.us/files/scriptingcodes_eng.htm and here I have written most of the codes in pksv language: https://hax.iimarck.us/topic/1173/
    In this case, you'll need at least giveitem (1F) or verbosegiveitem (9D), setbit1 (31), if false/true (08/09), and could possibly use code 16 for adding "40" or "80" to the value in $DA89 for activating the event with Kurt. "40" stands for the second highest bit and "80" for the highest bit in one byte. If second highest bit would somehow be already set, adding "40" would mess things up though. But you could do this in this kind of a situation. A better way to do this would be by calling a simple asm routine with code 3callasm (0E) to set the highest of second highest bit in $DA89.

    So there is a lot of stuff involved in doing this actually. I personally had been hacking crystal for a few years before I got the hang of scripting (although I was pretty lazy trying to learn back then). But to get that far and really understand how you can accomplish something, knowing how pointers work is essential and understanding something about ram, event structure and such doesn't hurt either.

    Anyway, in case you feel like talking about this more, you could sent me for instance PM. :)
     
    Status
    Not open for further replies.
    Back
    Top