Triple/Rotation Battles Only - Pokemon Generations 5 & 6


Turns all battles within the generation 5 & 6 Pokemon games into triple or rotation battles.

Download on Github


This project came as a request from Don Shnack as a potential stream/video idea he could do for his channel. I had no background in modding Pokemon games, but thought it was possible since the Pokemon Universal Randomizer had the option to make all battles double battles. Turns out, there was some talk about the idea online, but nobody had a tool to do it. For his stream I modified all the trainers by hand, but saw that others were interested in doing their own runs of the mod. That brings us to this tool that automates the process of setting the flag for each trainer. Granted, this could be improved a lot in terms of having a user interface and not having to extract files from the game itself, but again, modding these games I'm unfamiliar with. Maybe someday I'll revisit this and improve it, or if you want to take a shot at it, all the code is on the github page linked above.

If you have questions or having issues setting up the mod, please join my discord server and ask within the #tech-support channel there. There we can diagnose if it's user error, or a bug with the software itself.


Installation Instructions

You can either watch the video below, or follow the written instructions below.

The guides assumes your machine is running Windows. That's the only OS that I can work on to make a guide for. However, someone did go through the generation 5 process on Linux using the same tools. To get the tools to run properly on Linux, here's the setup they had to use:

Thanks return215 for figuring this out!

Disclaimer

This program modifies files within a folder at the binary level. Incorrect usage of this tool can lead to potential data corruption. There are a number of checks in place to mitigate the chances of this occurring, but use this tool at your own risk.

Required Tools


For All Generations

For Generation 5

For Generation 6


Optional Tools


Usage

All Generations

  1. Open the Universal Pokemon Randomizer and load your game into the tool. Most of the settings within here are fair game. Though there are two required settings to set.
    • Under Foe Pokemon, randomize the trainer's pokemon and check Double Battle Mode. This ensures that the trainer's AI is set to the multi-battle AI, so they won't attack their own pokemon.
    • Also under Foe Pokemon, check Boss Trainers, Important Trainers, and Regular Trainers under Additional Pokemon for.... Set the amount of pokemon to add to each group to a minimum of 2. This will ensure that all trainers have at least 3 pokemon, which is required for the triple battles to activate.
    • While not required, it's also recommended to set the trainer and wild pokemon Percentage Level Modifier to around +20%, since you'll be getting a lot more experience with all the added pokemon, it should even out the level curve.
  2. Once all your randomizer settings are set, hit Randomize (Save) to create your randomized game.

Generation 5

  1. Now open Nitro Explorer 2 and load your randomized game. Within here, you're going to extract the following file depending on which game you're modifying:
    • Black 1/White 1: Extract a/0/9/2, name the file trdata.narc.
    • Black 2/White 2: Extract a/0/9/1, name the file trdata.narc.
  2. Now open NDS Editor (kiwi.ds) and drag your trdata.narc file into the window. Double click on the added entry to the list, check all files within the archive, and extract all files. This should create a folder named trdata within the same folder as NDS Editor with the specified number of files within it:
    • Black 1/White 1: 616 Files
    • Black 2/White 2: 814 Files
    • Note #1: Make sure your trdata.narc is in a different directory than the kiwi.ds executable. Otherwise, you might get an error about overwriting files when trying to extract the files.
    • Note #2: kiwi.ds has a bug where if you have a non-english character within the filepath to your trdata.narc file, it'll throw an Unsupported File Type error. An easy way around this issue is to put the trdata.narc file onto a flashdrive and drag it into kiwi from there.
  3. Now in the Triple Battle Converter folder, double-click on TripleBattleConverter2.exe and a small window should pop-up.
  4. Within the window, click on the Browse... button and navigate to the newly created trdata folder. Select it and click Select Folder.
  5. Select which game you're converting below, and then click the Convert button. If all went well, you should see a window pop-up with Modified 616/814 Trainers inside. That means all the trainers are now triple battles!
  6. Now reopen NDS Editor (kiwi.ds), and in the toolbar, go Tools > Make Narc File... In the upper field, select the path to the trdata folder that we just modified and click OK. You should now have a new trdata.narc file within the same folder as the NDS Editor (kiwi.ds).
  7. Now reopen Nitro Explorer 2, load your randomized game, and navigate to the same file that you extracted. Instead of extracting, you're now going to select Reinsert. Navigate to the trdata.narc file you've created and select it. The status bar at the bottom should now say Reinserted 1/2 successfully. Your game is now ready to play!

Generation 6

  1. Now open DotNet 3DS Toolkit, which is with ToolkitForm.exe. Under the Extract tab, set the following fields:
    • For the Source ROM, browse for your randomized generation 6 game.
    • For the Output Directory, create a new folder on your desktop for ease of access and select that as the destination.
    • For the Options, leave Auto selected.
  2. Now click the Extract button. It might take a while, but it'll eventually say Ready in the bottom-left corner for once it's completed.
  3. Now open GARCTool and select Open File. Browse within your new folder into the RomFS folder and navigate to the file of your game:
    • X/Y: Extract a/0/3/8.
    • Omega Ruby/Alpha Sapphire: Extract a/0/3/6.
  4. Extract the selected file. It should say that it unpacked X amount of files from the GARC:
    • X/Y: 785 Files
    • Omega Ruby/Alpha Sapphire: 950 Files
  5. Navigate to that directory you just extracted the files out of and you should see a folder named #_, rename this folder to trdata.
  6. Now in the Triple Battle Converter folder, double-click on the Triple Battle Converter tool pertaining to your OS and a small window should pop-up.
  7. Within the window, click on the Browse... button and navigate to the newly renamed trdata folder. Select it and click Select Folder.
  8. Select which game you're converting below, select what type of battle you'd like, then click the Convert button. If all went well, you should see a window pop-up with Modified 785/950 Trainers inside. That means all the trainers are now converted!
  9. Now go back to the GARCTool and select Open Folder. Browse to your modified trdata folder, select it, and click process.
  10. Navigate back to the directory with your newly created trdata.garc file. Delete your trdata folder and the original garc file (either 6 or 8, depending on which game your modifying). Rename your newly created trdata.garc file to the file you just deleted.
  11. Now go back to the DotNet 3DS Toolkit and go to the Build tab. The settings within this tab should be as followed:
    • For the Source Directory, browse to the new folder that you created on your desktop.
    • For the Output ROM, browse to where you'd like the finished ROM to go and give it a name.
    • For the Output ROM Format, select 0-Key Encrypted CCI (for Gateway).
  12. Now click the Build button and a new window should pop-up showing the rebuilding process. Once that's complete, you're done building your game!

Limitations

There are a handful of trainers in each game that aren't triple battles. This seemed by design from the Universal Randomizer, so I followed their example. They are the following:

Also, it appears that most route trainer battles don't initiate if you don't have enough pokemon in your team to start the battle. Some scripted battles, like rival battles and gym battles still seem to work. Just ensure you have 3 non-fainted pokemon in your team at all times for full functionality.