How to make Action Replay codes that swap game files
Written by Sappharad


Using the Gamecube DVD disc browser, and Parasyte's GCNCrypt you can now create Action Replay codes that swap files on a Gamecube disc. This guide will show you how. In order to do this, you will need a method of booting homebrew code on the Gamecube. There are several ways to do this. You can more information on how to run executable code on an unmodified Gamecube at I will not discuss how to upload and run the browser.dol program here, you'll need to refer to the instructions for the DOL loader that you have decided to use.

This guide assumes you have basic knowledge of Hex values. If you've used a previous version of this guide for an older version of the disc browser, you may notice that the instructions have changed. The old instructions were reported to not work on some newer games. The updated disc browser and these updated instructions will allow you to create codes that work on those games. In addition, codes created with this updated guide will also work when a game is booted using GCNrd. This did not work before.

Step 1:
Load the browseDVD.dol program on your Gamecube. Eject the disc that's currently inserted, and you'll see a screen similar to the one at the right. Insert the game you wish to create a file swapping code for, and close the drive lid. The program will read the game disc, and you'll be presented with a list of files on it.
Step 2:
Browse through the file listing and look for a file you think you may want to replace with another. As an example, I will be replacing the file "s_square.adx" on the Sonic Adventure DX game disc. This file is the music for Station Square in the game.
Step 3:
After you've found the file you want to replace, select it and press Y on the controller. A box will appear with some information about the file. The file start value is where this file is located on the disc. File length is the size of the file. AR pointer start provides the beginning of a decrypted Action Replay code that can be used to overwrite the selected file's information.
Important: Copy down the beginning of the code that the program provides, and save it for later.
In our example, the code provided for s_square.adx is 42000038 373A.
Step 4:
Now it's time to find the file you'd like to replace with the one you found in step 2. Press B to close the box on your screen from the previous step and return to the file listing. Look for the file you'd like to use as a replacement. In our example, we will be using the file sonic_cd.adx. In Sonic Adventure DX, this song is from Palmtree Painc zone in Sonic CD.
Step 5:
After finding the file you'd like the game to use instead of the one you've found above, press Y on the controller again to bring up the file information box. This time, you'll need the file start and length information for the replacement file that you just picked.
Important: Copy down the file start and length and save them for later.
In our example, the file location is 32DB7B64, and the length is 892800.
Step 6:
Now it's time to form the actual code. The code will usually consist of a four lines. Two to replace the start of the file, and two to replace the length. All of these lines will be using the 16-bit struct write code type:


The first half of every line of your code will begin with the 4200XXXX value you copied down in step 3. The program gave you the exact value you need, so there's nothing to change here. The second half of every line will be different for each line of your code. For the first line of your code, start with the value that the program gave you in step 3 as your Y value. It should be 4 hex digits long. If it is not, add 0's to the beginning to make it 4 digits. Our example value in step 3 above was 373A. The Z value for the first line of the code should be the first four digits of the start location for your replacement file. (If the file location is less then 8 digits long, add 0's to the beginning).

For the second line of your code, the X portion is the same. The Y portion should be whatever number you had on the previous line, plus one. So our example value would become 373B. The Z portion of this line would be the other four digits of our file start location. On the third line of the code, add one to Y again and for Z use the first half of the file length, adding zeros to the front if it is not 8 digits. On the fourth line, increase Y by one again, and Z will be the second half of the file length.

Following this guide, the example code to replace s_square.adx with sonic_cd.adx would be:
42000038 373A32B7
42000038 373B7B64
42000038 373C0089
42000038 373D2800

Just encrypt the code with GCNcrypt (of course providing the proper game ID) and enter it into your AR. Whenever the game tries to use the file you're replacing, it'll load the one you replaced it with instead!

Many thanks to Parasyte
for all of his help,
and for creating GCNcrypt.