Skip to content

Instantly share code, notes, and snippets.

@UTDZac
Last active April 11, 2024 22:34
Show Gist options
  • Save UTDZac/1db6bbadb9457802d848c4c592d069fd to your computer and use it in GitHub Desktop.
Save UTDZac/1db6bbadb9457802d848c4c592d069fd to your computer and use it in GitHub Desktop.
Setting up Gen 6 Ironmon: XY & ORAS

Setting up Gen 6 Ironmon: XY & ORAS

Table of Contents

What You'll Need

  1. Your own Pokémon Game ROM. Acquire this yourself.
    • NOTE: If you are playing XY, I recommend using v1.0 and not v1.5.
  2. Citra Emulator:
    • Download from citra-emulator.com
    • Download from archive.org
    • Download from PabloMK7 (one of the Citra developers)
    • The official Citra site is no longer available, but the above download links should work
    • Other emulator options that may work: Mikage
  3. Randomizer ZX - Download or Smart's Randomizer with more options
  4. Java 64-bit Offline - Download
  5. Gen 6 Ironmon Tracker - Citra Tracker v2
  6. Python v3.12.x or higher - Download (for the Tracker)

Game Resources and Guides

Here are some other helpful resources and guides. None of these are required to play, but they might be useful to you.

Citra Setup

Download and run the Citra installer. Choose "Citra Nightly" for the version. After installing it, there are quite a few other things worth setting up and configuring, including extras like better graphics.

NOTE: Citra updates frequently, like a lot. As such, I highly recommend only using in-game saves to save your progress for your games. If you use save-states and let Citra update, then those save-states might get corrupted; so just use in-game saves instead.

If you don't have any games showing, click add a game folder. This should simply the folder on your computer that has your original, non-randomized game ROMs in it. Here's what mine looks like:

image

Try double-clicking your game to play it and see if it loads up fine. Don't worry about actually playing it yet, just close it for now.

Right-click the game to get some useful options we'll use later.

image

The important ones are:

  • "Open Save Data Location", which will be the folder containing your in-game saves
  • "Open Mods Location", which is the folder that modifies the game with files created by the Randomizer. Unlike other gens, 3DS games aren't fully randomized new roms; they just mod parts of the vanilla game temporarily.
  • "Open Custom Texture Location" if you plan to use custom textures, like an HD texture pack.

On Citra, click Emulation > Configure.... If some settings are grayed out, close any active game that is open.

  • Under General > General: note the emulation speed. It should be set to 100%. I use 125% because I use custom HD textures. This will not be the turbo speed for your game, that's done elsewhere.
  • Under System > System: note the Clock and Time. For data-specific game features, such as extra Sweet Hearts in XY on Feb 14th, use a Fixed date, or adjust it however you want.
  • Under Graphics > Enhancements: change the Internal Resolution to a higher multiplier. I use 6x Native (2400x1440), but try a smaller or higher number if you want. If you plan to use custom textures, you must use a value higher than 1x. Note the "Use Custom Textures" setting, it should be disabled for these global settings; you'll change it later in game-specific config.
  • Under Audio > Audio: note the Volume slider. I use 30%.
  • Under Controls > Input, create a New profile. I named my Joypad and mapped all my buttons one at a time. You can come back later and change these if something doesn't feel right.
  • Under Controls > Hotkeys, do a quick review of whats here. I removed anything that might reset my game. Important hotkeys are "Toggle Per-Game Speed"; it'll effectively be a turbo / speed-up toggle.

Finally, start up your game, then click Emulation > Configure Current Game.... These settings are modifications to the global settings you defined above.

image

  • The only big one to change here is General > Emulation > "Set emulation speed". Set this to the turbo / speed-up speed % you want to use when you press the "Toggle Per-Game Speed" hotkey you defined earlier. For me, I use 250% for a better experience for my viewers.
  • If you intend to use custom textures, also update the Enhancements tab. Make sure "Texture Filter" is None, and "Use Custom Textures" is checked.

Randomizer Setup

3DS Games take a while to randomize. As such, you'll need to create a batch of ROMs to use. Unlike other gens, 3DS randomized games are created as a folder of files, called LayeredFS, and not as a full, real game ROM.

To make your life easier, you'll want to create a Randomizer settings file that you can open up each time you need to make new seeds. To do this:

  1. Open the vanilla Pokémon game ROM into the Randomizer Program, "Open ROM"
    • If you need to decrypt your ROM, you can search Google for a program to do so, or use this one: Batch CIA 3DS Decryptor
  2. Load the proper Ironmon Settings for your game, using "Settings" > "Get/Load Settings String".
    • NOTE: There is a bug with v4.6.0 of the Randomizer: You need to manually turn on two settings. Click "Starters, Statics & Trades", then enable the "Randomize Starter Held Items" and "Ban Bad Items" underneath it.
    • Every time you load settings, you will always have to manually re-apply these two settings. They simply do not load properly.
  3. Make sure the settings in the bottom-half of the Randomizer got changed and look correct for your game.
  4. Finally, click "Save Settings" button near the upper-center, and give the file a name.
  5. You can use these later by clicking "Load Settings".

NOTE: If you use something_smart_'s Randomizer, then I also recommend enabling two additional settings under Misc. tab for Kaizo: Speed Up Friendship Evos and 100% Non-Gym TMs (for Rock Smash)

Now you're ready to batch create ROMs. To do so, make sure your game's randomizer settings are loaded, then click "Settings" > "Batch Randomization Settings".

image

Fill in the batch settings. Instead of making 50 ROMs, just make 5, easier to test with and make sure things work.

NOTE: The "Output Directory" folder location and the "File name prefix" are important. You will use this info later when setting up the Tracker's "Next Seed" feature.

image

Finally, after changing the batch settings, you are ready to batch create ROMs. Get back to the main Randomizer program window and click "Randomizer (Save)" near the upper-right.

You'll be prompted to choose the output format. Choose LayeredFS.

image

Tracker Setup

The Tracker for Gen 6 is pretty new and still a work in progress. It requires that you first install Python, so do that now if you haven't already. Also download the Tracker files and unzip them if you haven't done that either.

NOTE: The Tracker expects the game to be open and for you to have a Pokémon in your party. Wait to open the Tracker until then.

To install the Tracker, you'll need to move ALL of the Tracker files to Citra's "scripting" folder. Finding this Citra folder can be tricky.

Option 1: If your Citra download came bundled together all within a folder, then you will need to go there to find the "scripting" folder. Just look for /nightly/scripting/. Notice how the scripting folder is next to the "citra-qt.exe" file you use to open the emulator application.

image

Option 2: If you installed Citra via an installer program, do the following: open up Windows Explorer and click on the address bar near the top. Clear out whats there and type in: %appdata%, which is "appdata" surrounded by 2 percent signs. This will first take you the "AppData/Roaming" folder, but we want the "AppDat/Local" folder instead. Click the up-arrow or simply go up one folder level.

image

From here, open up the "Local" folder. In here, you'll find the "Citra" folder. Open that, then open the "nightly" folder, and finally the "scripting" folder. You'll know its the correct folder because there should be a "citra.py" file in there.


Once you've found the Citra application folder, you're ready to put the Tracker in it.

Move all of the files from the Tracker folder directly into this scripting folder. If done correctly, the "citra.py" file should be right next to the "citra-updater.py" file.

To run the Tracker for the first time, you'll likely need to tell Windows how to open that type of file. Right-click it, choose "Open With" > "Choose another App". From here, you can pick Python. If you don't see Python, try restarting your computer.

image

Run the Tracker simply by double-clicking the "citra-updater.py" file (awkwardly named, but that's it). Remember, wait until you have the game running and you have a Pokémon in your party, otherwise the Tracker may not start up properly. If done properly, the Tracker should open up in a separate window; it'll take a few seconds to open.

Finally, let's setup the Tracker's New Runs (Quickload) feature, by telling it where your batch of ROMs are located. Click the "Batch Settings" button near the bottom of the Tracker screen. Fill in the 3 required pieces of information, and click Submit. Here's what mine looks like, yours should look very similar but some of the folders (like your batch folder) will be named differently:

image

  • Batch folder: This is the folder that has all of the "ROMs" (they're actually just a bunch of folders) you created from the Randomizer's Batch.
  • Citra mod folder: The Mod Folder we saw earlier while setting up Citra emulator. It should not have any trailing numbers.
  • File name prefex: The name you gave your "ROMs" in the Randomizer's Batch settings.

To have the Tracker start the next seed for you, you'll have to click the "Next Seed" button on the Tracker. There is no controller button combo yet.

NOTE: After clicking "Next Seed" to start a new run, wait about 1 second, then restart your game in Citra. You can setup a hotkey for this, or click Emulation > Restart from the Citra menus. The Tracker might glitch out for a bit.

IMPORTANT NOTE: The tracker expects your first seed folder is named with a 1. For example: "Kaizo1". The folder number must match the seed number shown on the tracker. Your batch folder with all of your seeds should start at 1, and the tracker seed number should be 1. You can rename folders to fix this, and/or edit the seeds.txt file next to the Tracker script file to fix it.

For example: If your current seed is #137, as shown in your folder of batched seeds, then the tracker's "seed.txt" file needs to have the number 137 in it.

image

Start Playing!

Once you got everything setup, you're almost ready to play. Only one thing left to do:

Prepare the first randomized seed!

Citra makes it easy to load up a randomized game. Remember, we don't have any "randomized roms" but rather just pieces of the rom that have been randomized. To use those, we need to put them into the Citra Mods folder for your game.

  1. First, find seed #1 from your batch of seeds. It will be a folder; mine is labeled "Kaizo1"
  2. Inside that folder will be another folder with a bunch of numbers and letters, just open that up.
  3. Copy (don't move) all of the contents:
    • romfs
    • code.bin
  4. Now Open Citra, right-click your Pokémon game, and choose "Open Mods Location"
  5. Paste the stuff from step 3 here. It should look like this:

image

After that, you're good to go. You can go back to Citra and double-click your game to start playing it. You may notice it will stutter from time to time when first using it. This is normal, as Citra needs to build out resources for your game to run smoothly.

Game Enhancements and Textures

I prefer playing with custom HD textures and other game modifications, like removing the black outlines on Pokémon and NPCs. Citra lets you do this easily.

Custom HD Textures

To use custom HD textures, first download the ones you want to use for your game. I listed a texture pack for XY and for ORAS in Game Resources and Guides. After downloading, be sure to unzip the texture pack; you might need to install 7-Zip to do so.

NOTE: If using the Resurrection texture pack for Pokémon Y, I recommend removing the "Title screen" textures (simply delete that folder).

For any other texture pack, you can pick and choose what you want, you don't have to use all the textures that are included. Just remove the ones you don't want to change.

Once you have your texture pack files ready, the next and final part is to just move them to Citra's Custom Textures Location folder for your game. You can get here by first opening Citra emulator > right-click your game > Open Custom Texture Location. The folder it takes you to should look like this, but yours will be empty. Simply drag-and-drop your texture pack files here.

image

Once this is done, you're good to go and ready to play.

Remove Black Outlines

To remove the black outlines, you'll need to enter in a cheat code, save it, and enable that code.

NOTE: If the cheat code doesn't seem to work for your game or crashes it, then you likely have the code for a different version of your game. For example, a cheat code for Pokémon Y 1.5 will not work for Pokémon Y 1.0.

You can check the version of your Pokémon game by loading it into the Randomizer program. Near the top-center it will show the name of the game and the version number. If there is no version listed, then its the 1.0 version.

Start by opening up Citra, then right-click on the game you want to add a cheat code to and choose "Properties". From here, click the "Cheats" tab. Then, click "Add Cheat". Now, enter in the information for the cheat:

  • Name: Give it a name to help you remember what the cheat is for
  • Notes: Add any notes you want. For me, I put what game version the cheat is compatible for (e.g. is it for Pokémon Y 1.0 or 1.5)
  • Code: Paste the cheat code into the Code section. Make sure its formatting looks okay.

When you're done, click "Save" and then click the checkbox next to the code listed under "Available Cheats" to enable it.

image

Here's the codes I have on-hand for various games. If one is missing and you find it, let me know and I can add it here.

Pokémon X/Y v1.0

D3000000 00000000
00361D34 00000000
00361D38 00000000
D2000000 00000000

Pokémon X/Y v1.5 *

D3000000 00000000
00362ED8 00000000
00362EDC 00000000
D2000000 00000000

* You may have to use XY 1.0 cheats for a randomized XY 1.5 game.

Pokémon ORAS v1.0

D3000000 00000000
00379EB4 00000000
00379EB8 00000000
D2000000 00000000

Pokémon ORAS v1.4

D3000000 00000000
0037A140 00000000
0037A144 00000000
D2000000 00000000

Change Your Character's Appearance

You can change your character's clothes and appearance permanently for new games you start by using a save file editing tool and unlocking all of the fashion items.

Required Tool Download: PKHeX

Step 1: Make your starting save file

  1. Start a new game and name your character. Pick any of the default character models, you can change this later.
  2. Play the game until right before you talk to your friends to pick a starter Pokémon. Make an in-game save file there.
  3. Close the game to get back to the Citra games menu.
  4. Right-click your game and choose "Open Save Data Location".
  5. The save file is called "main" with no file extension. We'll be using this file in the next step.

image

Step 2: Unlock all fashion accessories

  1. Open the "PKHeX.exe" program
  2. File > Open, then open the save file from the previous step.
  3. On the right-half, click the "SAV" tab, then click the "Trainer Info" button near the bottom.
  4. Click the "Current Appearance (X/Y)" tab, then click the large "Give All Accessories" button.
  5. Click Save. This will alter the save file to unlock all fashion accessories.

image

Step 3: Permanently set starting appearance

Through PKHeX save file editor, under the Current Appearance tab from above, you can adjust any of your character's fashion or appearance.

The best way to figure out what each item looks like is to just play your game for a bit until you reach the next town with the Fashion Store. You can go into the changing room and view all of the items, then write down the names of the ones you want. Or you can probably google what each one looks like.

Once you know how you want to change your fashion, make those changes in PKHex, then click Save. The Save button will permanently alter the save file with those changes.

Finally, when you got everything looking right and your save file has the character fashion you want, go back to the Save Data Location in Citra. Copy & Paste your fancy save file.

Doing this keeps it safe as a backup. In the future, when you naturally save your game and overwrite your original save file, you'll have this backup available to restore your fancy fashion save file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment