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

Quick Research & Development Thread

Panda Face

Pokemon Ultra Snowy White
127
Posts
7
Years
    • Seen Oct 22, 2022
    How to disable paralysis in electricity type pokemon in Emerald?
     

    PurpleOrange

    still don't know what I'm doing
    367
    Posts
    10
    Years
  • In FireRed, LeafGreen, and Emerald there's the altering cave which only has zubat in, however if you went to an event (whether these events happened varies by sources) it would change them to other pokemon.

    However making them change in the game is actually really easy.

    For FireRed/LeafGreen:
    Code:
    setvar 0x4024 0xYY
    For Emerald
    Code:
    setvar 0x403E 0xYY
    Replace YY with the following:
    Code:
    00 (for zubat)
    01 (for mareep)
    02 (for pineco)
    03 (for houndour)
    04 (for teddiursa)
    05 (for aipom) 
    06 (for shuckle)
    07 (for stantler)
    08 (for smeargle)
    (Anything above this will result in zubat)
    This is worked out from the scripts already in the rom of FRLG and Emerald

    FireRed
    Spoiler:

    Emerald
    Spoiler:
     
    Last edited:

    Panda Face

    Pokemon Ultra Snowy White
    127
    Posts
    7
    Years
    • Seen Oct 22, 2022
    In Emerald, if type 00 00 00 00 in F978F, it will become BW poison effect. Pokemon will not lose HP by poison in overworld.
     

    PurpleOrange

    still don't know what I'm doing
    367
    Posts
    10
    Years
  • Another bit of scripting stuff, not sure if this has been documented before. But you're able to give pokemon custom moves without asm.
    Code:
    setpkmnpp 0xAA 0xBB 0xCC
    Where AA is the pokemon's party slot -1
    Where BB is the move slot -1
    Where CC is the move (in hex)

    This is worked out from from the surfing pikachu egg scipt which is already in the ROM (at least in emerald)
    Spoiler:
     
    Another bit of scripting stuff, not sure if this has been documented before. But you're able to give pokemon custom moves without asm.
    Code:
    setpkmnpp 0xAA 0xBB 0xCC
    Where AA is the pokemon's party slot -1
    Where BB is the move slot -1
    Where CC is the move (in hex)

    This is worked out from from the surfing pikachu egg scipt which is already in the ROM (at least in emerald)
    Spoiler:

    This has been documented and only works this way for Emerald.
     

    PurpleOrange

    still don't know what I'm doing
    367
    Posts
    10
    Years
  • This has been documented and only works this way for Emerald.

    well as i said, i wasn't sure if it was documented :)
    regardless i wonder why this only works in emerald, since the pichu can transfer to all main gen iii games (assuming this is the pokemon box pichu) surely this means that there must be a way that RSFRLG do it no?
     
    794
    Posts
    10
    Years
  • well as i said, i wasn't sure if it was documented :)
    regardless i wonder why this only works in emerald, since the pichu can transfer to all main gen iii games (assuming this is the pokemon box pichu) surely this means that there must be a way that RSFRLG do it no?

    Yeah, that way is using ASM.
     
    232
    Posts
    13
    Years
    • Seen Sep 10, 2019
    Anybody interested in finding out the table offset that special 0x158 uses in FireRed? Special 0x158 = opens several different multichoice boxes depending on 0x8004 *key: 0x0 = badge talk; 0x1 = silph-co elevator; 0x2 = rocket elevator; 0x3 = celadon department store elevator; 0x4 = link options; 0x5 = pharmacy options?; 0x6 other elevator; 0x7 and up - return 0x7f to lastresult* (quoted from JPAN's special/special2 research thread)
     

    PurpleOrange

    still don't know what I'm doing
    367
    Posts
    10
    Years
  • Whilst HERE tells us where the swarm table is in Emerald, the swarm table in Ruby is at 0x3D13F8, and the table in Sapphire is at 0x3D1450 using their formula the swarms are:

    Surskit Lv3, Route 102: Bubble, Quick Attack
    Surskit Lv15, Route 114: Bubble, Quick Attack
    Surskit Lv15, Route 117: Bubble, Quick Attack
    Surskit Lv28, Route 120: Bubble, Quick Attack
    Skitty Lv15, Route 116: Growl, Tackle

    Something to note, some are using lower level movesets than they should, surskit learns sweetscent at level 13, whilst skitty should know tail whip (lv3), attract (lv7), sing (lv13), and double slap (lv15), maybe the movepools were updated after swarms were coded, or the swarm levels were changed but the table not updated to match the new levels

    Also as a note the previous table for emerald is a bit wrong, here's the new one:

    Seedot Lv3, Route 102: Bide, Harden, Leech Seed
    Nuzleaf Lv15, Route 114: Harden, Growth, Nature Power, Leech Seed
    Seedot Lv13, Route 117: Harden, Growth, Nature Power, Leech Seed
    Seedot Lv25, Route 120: Giga Drain, Frustration, Solarbeam, Leech Seed
    Skitty Lv8, Route 116: Growl, Tackle, Tail Whip, Attract
     
    Last edited:
    232
    Posts
    13
    Years
    • Seen Sep 10, 2019
    FIRERED v1.0: Special 0x158 (shows multichoice based on values 0x0-0x6 stored in var 0x8004) uses a table at 0x3F5BCC that is 0x12C bytes long. There are six entries in the table and each starting entry is 0x30 bytes away from each other. Now one can easily extend this table by repointing, but there is probably the question of where the offset for the multichoice box properties table is and/or the limiting byte location.

    edit: FBI's scrolling multichoice routine seems to have the offset for the multichoice box properties but I have no idea how to read or understand it. The offset seems to be at 0x0CBA7C.
     
    Last edited:

    Le pug

    Creator of Pokémon: Discovery / Fat Kid
    870
    Posts
    10
    Years
  • What I've noticed is that when you insert a map, you are not able to ride the bicycle on that map even if you edit all of the header settings for the map. The solution to this lies in the string of bytes for the map header.

    1. In Advance Map, go to the map header and enter the professional map header settings with CTRL+H.
    2. In the string of bytes for the map header under "Map options:," find the first of the last four bytes (byte #25 if that confuses you).
    3. Change that byte (byte #25) to 01.
    4. You can now ride the bicycle on that map!

    To build on to this, this is for FR only.

    For Emerald, it is very close in similarity. Follow the below image in order to get bike to work or not work on your inserted maps or maps already created. The byte is the same on all maps. It is the second to last one every time.

    Quick Research & Development Thread


    Also if anyone is curious, yes you can also do this by changing the Show name on entering drop down for that map. 01 is the "Show name [01]" option. This allows you to bike on that map but doesn't show the map's name. If you want to bike AND show the map's name on entering the map, the byte is 0D or you can choose "Show city names [0D]". If you want to show the city name but NOT allow biking, the byte is 0C or just choose ??? [0C]
     
    Last edited:
    12
    Posts
    8
    Years
    • Seen Mar 19, 2017
    Is it possible to have items with multiple effects? Ex. an item that increases the damage of both fire and water type moves.
     
    39
    Posts
    7
    Years
  • Hello. I hope I'm on the right thread.

    I just wanna ask if there's a way to decrease the pages of Pokedex.

    Like for example; The National Pokedex would be up to Celebi only.
     
    19
    Posts
    7
    Years
    • Seen Apr 14, 2017
    I know it's nothing hard, nothing WOOOOW, but that's something and my first alone-research-area collaboration. This is for Fire Red:

    INFINITE SAFARI TIME

    Simply go to 0xA0F1A and replace the 01 38 there, for 00 38.

    The game will still give you 600 steps, but it won't decrease, so you will be there until you retire or run out of Safari Balls.
    When I figure out how to hide the step count in the start menu, I'll edit this post.

    The equivalent "Infinite Safari Steps" for Emerald appears to be at 0xFC15E. Again, just replace 01 38 with 00 38.
    Emerald doesn't have a visible step counter in the menu to hide either, which is nice I guess.

    If you ever feel the urge to stone a Pokemon to death, setting the byte at 080169D4 from 0x6 to 0x0 will make it so Pokemon don't flee after throwing 20 rocks at them in the safari zone in Fire Red. Not sure if anyone will ever actually use this but whatever. :P

    If you'd like to "stone Pokemon to death" in Emerald, change the byte at 0x3EF94 from 0x06 to 0x00 as well.
     
    Last edited:

    AkameTheBulbasaur

    Akame Marukawa of Iyotono
    409
    Posts
    10
    Years
  • How To Give ?? Pokemon Separate Cries
    In between Celebi and Treecko in \FR{FireRed} and \EM{Emerald}, there are 25 empty Pokemon slots. These slots appear to have originally been used for the 25 Unown forms before Game Freak decided to go a different route. These slots are all hard-coded to have the cry of Unown, and there is no way to change this with a regular cry editor (it will just change the cry of all of them at once, and will also change the cry of Unown itself).

    So, in order to give these Pokemon separate cries, you must do the following.

    Insert 00 00 00 00 00 00 00 00 00 00 at:

    FireRed: 0x4330C
    Emerald: 0x6D518
    Ruby: 0x3F90C

    Insert 00 00 00 00 at:

    FireRed: 0x43318
    Emerald: 0x6D524
    Ruby: 0x3F918

    Repoint the table at:

    FireRed: 0x2539D4
    Emerald: 0x31F61C
    Ruby: 0x1FDE6A

    To make repointing the table easier, here is a table you can copy-paste to free space. The 00 00 entries are the 25 ?? slots. You can replace the 00 00's with whatever index number you need to.

    Spoiler:


    Offsets for FireRed were found by DoesntKnowHowToPlay and ThomasWinwood. Details are in this post.

    All I did was find the Emerald and Ruby offsets. (I put the FireRed offsets here too for convenience).
     
    Last edited:

    PurpleOrange

    still don't know what I'm doing
    367
    Posts
    10
    Years
  • To allow the 25 ?? Pokemon (the ones between Celebi and Treecko) to have separate cries:

    Insert 00 00 00 00 00 00 00 00 00 00 at:

    FireRed: 0x4330C
    Emerald: 0x6D518
    Ruby: 0x3F90C

    Insert 00 00 00 00 at:

    FireRed: 0x43318
    Emerald: 0x6D524
    Ruby: 0x3F918

    Repoint the table at:

    FireRed: 0x2539D4
    Emerald: 0x31F61C
    Ruby: 0x1FDE6A

    Offsets for FireRed were found by DoesntKnowHowToPlay and ThomasWinwood. Details are in this post.

    All I did was find the Emerald and Ruby offsets. (I put the FireRed offsets here too for convenience).

    hey so this isn't actually fully complete as I found out when I first did it and ported to emerald, what I worked out is you actually have to manually write the cry table for the gen one and two mons in hex -1 followed by a 00 then followed by 50 00's (the limbo slots) eg bulbasaur is 00 00, ivysaur is 01 00 venusaur is 02 00 as stated in my post HERE. so you have to make sure the pointer of the table is to the start of the gen one mons
     
    19
    Posts
    7
    Years
    • Seen Apr 14, 2017

    DPPt Save/Summary Pokedex Seen Count Display into Emerald


    For those who want the DPPt Amount Display of Pokedex which displays the seen amount in while saving and in the continue-new game menu into Emerald:

    08031F96: 00 20
    08031FA4: 00 20
    0819A3B0: 00 20
    0819A3B8: 00 20

    Again, it is really that simple. :)

    Credits to Jambo51 for his original routine for FireRed.

    Only error though: the Trainer's ID. While these changes, it doesn't show the seen amount. Does it supposedly to happen or not? I'll look into that later.

    To fix the Trainer Card to show the "Seen" amount too:
    080C3776: 00 20
    080C377E: 00 20
     
    Back
    Top