redolution / iplboot

A utilitarian bootloader for the GameCube

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iplboot

A utilitarian bootloader for the GameCube

Usage

iplboot will attempt to load DOLs from the following locations in order:

  • USB Gecko in Card Slot B
  • SD Gecko in Card Slot B
  • USB Gecko in Card Slot A
  • SD Gecko in Card Slot A
  • SD2SP2

You can use button shortcuts to keep alternate software on quick access. When loading from an SD card, iplboot will look for and load different filenames depending on what buttons are being held:

Button Held File Loaded
None /ipl.dol
A /a.dol
B /b.dol
X /x.dol
Y /y.dol
Z /z.dol
Start /start.dol

CLI files are also supported.

If the selected shortcut file cannot be loaded, iplboot will fall back to /ipl.dol. If that cannot be loaded either, the next device will be searched. If all fails, iplboot will reboot to the onboard IPL (original GameCube intro and menu).

Holding D-Pad Left or the reset button will skip iplboot functionality and reboot straight into the onboard IPL.

For example, this configuration would boot straight into Swiss by default, or GBI if you held B, or the original GameCube intro if you held D-Pad Left:

  • /ipl.dol - Swiss
  • /b.dol - GBI

This configuration would boot into the original GameCube intro by default, or Swiss if you held Z, or GBI if you held B:

  • /z.dol - Swiss
  • /b.dol - GBI

Pro-tip: You can prevent files from showing in Swiss by marking them as hidden files on the SD card.

If you hold multiple buttons, the highest in the table takes priority. Be careful not to touch any of the analog controls (sticks and triggers) when powering on as this is when they are calibrated.

iplboot also acts as a server for @emukidid's usb-load, should you want to use it for development purposes.

Something not working? See the troubleshooting section.

Installation

Download and extract the latest release.

Prepare your SD card by copying DOLs onto the SD card and renaming them according the table above.

PicoBoot

iplboot is bundled with the PicoBoot firmware. Just follow the installation guide.

You can also update iplboot separately from the PicoBoot firmware, using the supplied iplboot_pico.uf2 (depends on PicoBoot PR 107).

Qoob

Qoob Pro only: use the Qoob USB flash utility to install iplboot_qoob_pro.gcb as a BIOS like you normally would.

A modified copy of the updater is also provided for both versions of the Qoob. It can be run via Swiss, or the original Qoob BIOS, from an ISO9660 DVD or over the nework using a Broadband Adapter1.

The updater files are qoob_pro_iplboot_upgrade.elf and qoob_sx_iplboot_upgrade.elf respectively. When burning them to a disc, you may need to pad the image with a large (~1GiB) file, to ensure the drive can read it properly.

The recommended method however is to burn Swiss to a DVD, and run the updater from an SD card.

On Qoob SX, you will need to hold D-Pad left while turning the system on to boot into the "backup" BIOS, otherwise write protection will be enabled. This means that a DVD drive or a BBA is required to flash anyting to a Qoob SX.
If this is inconvenient, consider upgrading to PicoBoot.

Tip

Alternatively, if iplboot is already installed, or you have access to another boot method, you can disconnect the modchip from its cable and reconnect it while the system is running. This will disable write protection, and you can run the updater from there.

ViperGC

Flash iplboot_viper.vgc as a BIOS like you normally would.

The hardware flasher is recommended, as it will be impossible to reflash the Viper without it once iplboot is installed. If you've lost it, consider upgrading to PicoBoot.

GameCube Memory Card

Copy iplboot_memcard.gci to a memory card using GCMM or Swiss. It will be saved as boot.dol and can be used in conjunction with the various game save exploits.

Troubleshooting

iplboot displays useful diagnostic messages as it attempts to load the selected DOL. But it's so fast you may not have time to read or even see them. If you hold the down direction on the D-Pad, the messages will remain on screen until you let go.

When choosing a shortcut button, beware that some software checks for buttons held at boot to alter certain behaviors. If your software behaves differently when booted through iplboot, ensure the assigned shortcut button is not used in this way. For example, it is not recommended to assign Swiss to the B button as holding B causes Swiss to disable the DVD drive.

Also on Qoob SX, the "backup" BIOS will run before iplboot, so it may interfere with some shortcuts.

Compiling

You should only need to compile iplboot if you want to modify to the source code. Otherwise, you can just download prebuilt binaries from the releases tab.

Prerequisites:

  • devkitPPC, the compiler toolchain for GameCube and Wii homebrew (install the gamecube-dev group)
    Ensure that the DEVKITPRO and DEVKITPPC environment variables are set correctly
  • Git, for cloning the repo
  • Meson, the build system
  • Ninja, the build executor
  • 7-Zip (p7zip), to compress the executable
  • Python 3, required by build scripts
  • A C++ compiler for your build machine, for some build tools
  • For Qoob Pro: an IPL ROM dump, see below

Note: on Windows, you'll want to install all the dependencies inside of MSYS2.

# Clone this repo
$ git clone https://github.com/redolution/iplboot.git

# Ensure devkitPPC is in PATH
$ export PATH="$DEVKITPPC/bin:$PATH"

# Initialize the build system
$ meson setup . build --cross-file=devkitPPC.ini

# Build it!
$ meson compile -C build

# The binaries will be in the build directory
$ ls build
...
iplboot_memcard.gci
iplboot_pico.uf2
iplboot_qoob_pro.gcb
iplboot_viper.vgc
qoob_pro_iplboot_upgrade.elf
qoob_sx_iplboot_upgrade.elf
...

Qoob Pro

Qoob Pro requires BS1 (early initialization code) from the original bootrom. This can be obtained from an existing Qoob Pro BIOS or any IPL dump.

To use an existing Qoob Pro BIOS (easiest method), grab iplboot_qoob_pro.gcb from the latest release.

Alternatively, you can dump the IPL ROM from your own GameCube using Swiss:

  1. Ensure file management is enabled in Swiss settings: press B, select the gear icon at bottom right, press R until you reach "Advanced Settings", scroll down to "File Management", press right to enable, save and exit.
  2. Switch to the system device: Select the eject icon at bottom left, scroll right to "System", press A.
  3. Scroll down to ipl.bin, press Z then X, and copy to your SD card.
  4. Copy ipl.bin from your SD card to your computer.

You should now have a suitable IPL ROM.

  1. Rename the file to ipl.rom and place it in the res directory.
  2. If you've already run meson setup, run it again with --reconfigure for it to find the file.
  3. The output should now say Qoob Pro support: YES.
  4. Continue building normally.

Footnotes

  1. See the Qoob documentation for more information.

About

A utilitarian bootloader for the GameCube

License:GNU General Public License v2.0


Languages

Language:C 98.7%Language:C++ 0.5%Language:Meson 0.3%Language:Python 0.3%Language:Nix 0.1%Language:Assembly 0.1%Language:Shell 0.0%