• 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!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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.

[RUBY] Activating the National Dex

Renegade

Time for real life...
  • 995
    Posts
    13
    Years
    Hello people. I see questions about how to activate the National Dex in POKéMON Ruby every once in a while, so I decided to post a tutorial here on how to do it.

    HD VIDEO FORMAT
    Here's a (somewhat crappy) video I made on the topic a few months ago:

    https://www.youtube.com/watch?v=PlOWM_2fb7Y

    TEXT DEMONSTRATION
    In case you don't like video demonstrations, here's a written tutorial about it...

    There is some assumed knowledge here, like how to write a script in XSE and how to insert it into a ROM.

    Step 1:
    You should start with a script that gives the player the regional POKé DEX, like this one:
    Code:
    #dynamic 0x800000
    
    #org @start
    lock
    faceplayer
    message @t1 6
    [I]setflag 0x801[/I]     <--------- POKé DEX menu appears on the menu screen...
    fanfare 0x372
    message @t2 4
    waitfanfare
    closeonkeypress
    release
    end
    
    #org @t2
    = \v\h01 received the POKé DEX!
    
    #org @t1
    = NPC: Looking for this? It's a\nPOKé DEX I got from Professor\lBirch!
    Step 2:
    After you give the player the regional POKé DEX, you will have to write another script with these commands in it:
    Code:
    writebytetooffset 0x2 0x2026B00
    writebytetooffset 0x3 0x2026B01
    writebytetooffset 0xDA 0x2024EBE
    writebytetooffset 0x67 0x2026A5A
    NOTE: This has to be done AFTER you give the regional POKé DEX to the player, or it will not work.

    These commands will advance the regional POKé DEX into the National Dex. So, here's an example of a script that upgrades the regional POKé DEX into the National Dex:
    Code:
    #dynamic 0x800000
    
    #org @start
    lock
    faceplayer
    message @t1 6
    [I]writebytetooffset 0x2 0x2026B00
    writebytetooffset 0x3 0x2026B01
    writebytetooffset 0xDA 0x2024EBE
    writebytetooffset 0x67 0x2026A5A[/I]
    fanfare 0x372
    message @t2 4
    waitfanfare
    closeonkeypress
    release
    end
    
    #org @t2
    = \v\h01 received the National Dex!
    
    #org @t1
    = Here's an upgrade for your\nregional POKé DEX!
    ...And that's about it! You don't have to make a whole new script to upgrade the POKé DEX, you can just add the upgrade commands after you give the player the regional POKé DEX.

    Side Note:
    You will not be able to access the POKé DEX menu unless you have at least one POKéMON in your possession. Make sure to give the player a POKéMON before you give him/her the POKé DEX.

    Thanks for reading!
     
    Last edited:
    Wow, that's cool! One thing though:

    Code:
    [B][COLOR="Red"]checkflag 0x8000[/COLOR][/B]
    writebytetooffset 0x2 0x2026B00
    writebytetooffset 0x3 0x2026B01
    writebytetooffset 0xDA 0x2024EBE
    writebytetooffset 0x67 0x2026A5A
    clearflag 0x8000

    Why do you check flag 0x8000 when there's no if or compare command following it? It's probably my own stupidity making me question this, but it seems useless to use checkflag without any followup commands. Otherwise, good job.
     
    Wow, that's cool! One thing though:

    Code:
    [B][COLOR="Red"]checkflag 0x8000[/COLOR][/B]
    writebytetooffset 0x2 0x2026B00
    writebytetooffset 0x3 0x2026B01
    writebytetooffset 0xDA 0x2024EBE
    writebytetooffset 0x67 0x2026A5A
    clearflag 0x8000

    Why do you check flag 0x8000 when there's no if or compare command following it? It's probably my own stupidity making me question this, but it seems useless to use checkflag without any followup commands. Otherwise, good job.

    Oops. Yeah, that was a mistake on my part. You do not need the check/clear flag commands at all. I edited the tutorial with the proper commands.
     
    Back
    Top