fixmylife/Mods/GameCube · FML Launcher

Homebrew · Nintendo GameCube

FML Launcher

A 3D game shelf for PicoLoader + Swiss + SD2SP2

FML Launcher replaces the file list you normally see on a modded GameCube with a shelf of game cases. GameCube discs, Game Boy games and homebrew apps all sit side by side with their real box art, and A starts any of them. It's free and open source, and the code is on GitHub.

FML Launcher showing a shelf of GameCube and Game Boy game cases

Install in three steps

You need a GameCube with a PicoLoader chip and an SD2SP2 (or SD Gecko) adapter.

  1. 1

    Download the latest release

    From the releases page, get cubelaunch.uf2 and the fml folder.

  2. 2

    Flash the Pico once

    Hold BOOTSEL on the Pico while plugging it into your computer, then copy cubelaunch.uf2 onto the drive that appears. It restarts by itself when it's done.

  3. 3

    Set up the SD card and turn on

    Copy the fml folder and a Swiss .dol to the card, add your games anywhere, and turn on the GameCube.

On this page

ScreenshotsHow it worksFeaturesInstallControlsMusic & moviesUpdatesBuild itLinks

01 · A look around

Screenshots

The boot video plays while the SD card is read.
Continue opens on the last game you played. Starred games get a gold star.
Game Boy, Game Boy Color and Game Boy Advance games in their own boxes.
Homebrew apps and games get covers too.
Recent lists what you played, newest first.
Search with the on-screen keyboard. The shelf filters as you type.
Settings: 480p, 16:9, widescreen in games, Swiss and the SD card.
The 16:9 layout for widescreen TVs.
A disc in the drive shows up first. A plays it or copies it to the SD card.
The Music Player plays MP3s from the card, Windows XP style.
The Movie Player lists your videos and says which need converting.
Videos play full screen with sound. The controls hide after a few seconds.

Screenshots are from the Dolphin emulator running the demo build. On a real console it looks the same.

02 · Under the hood

How it works

FML Launcher is a GameCube program written in C with libogc, drawn in 3D on the GameCube's own graphics chip. It's stored on the PicoLoader chip, so it's the first thing that starts when you turn the console on.

  1. Power on
    The PicoLoader chip starts the launcher stored in it
  2. Check for an update
    If fml/launcher.dol on the card is a different build, that copy runs instead
  3. Boot video
    fml/splash.fmv streams from the card
  4. Read the card
    Every game in any folder; known files come from a saved list
  5. The shelf
    Pick a game and press A

Starting a game

What you pickWhat happens
GameCube disc image (.iso, .gcm)Swiss is started in the background and told which game to load, so its menus never appear. The video mode you chose is passed along too.
Game Boy ROM (.gb, .gbc, .gba)Visual Boy Advance GX is started with the ROM, straight into the game.
Homebrew (.dol)Loaded into memory and started directly.
Saved web page (.fpg)Opens in the built-in page viewer, like the PicoLoader guide.
The disc in the driveA menu: Play disc (through Swiss, with your video settings), Copy to SD card, or Play the SD card copy once it's there.
Music PlayerPlays the .mp3 files on the card. Music keeps playing on the shelf.
Movie PlayerPlays MPEG-1 videos (.mpg) with sound.

Box art

Each case has a front, spine and back. A small PC tool, tools/covers.py, downloads the art (GameCube scans from GameTDB, Game Boy boxes from libretro-thumbnails) and converts it into the GameCube's own texture format, so the console can show it without decoding anything. Games without art get a generated case in a colour picked from their name.

Fast and remembered

The game list is saved to fml/library.cache, so only new files are read at startup. What you played, how often, and your favourites are saved to fml/history.txt. Region is read from each game: the 4th letter of a GameCube game ID, or the ROM's name or header for Game Boy.

The boot video

The GameCube can't decode normal video files quickly, so each frame is stored already compressed in the graphics chip's own format (512×384, 24 fps). The console streams frames from the SD card and shows them as they arrive, and drops a frame rather than slowing down if the card falls behind.

03 · What it does

Features

Cover flow

3D shelf

Real box art with front, spine and back, reflections and smooth sliding. Game Boy games come in Game Boy boxes.

One list

Every kind of game

GameCube discs, Game Boy, Game Boy Color, Game Boy Advance and homebrew, in any folder on the card.

History

Continue & Favourites

Opens on your last game. X stars a game. Recent and Favourites tabs, play counts and "played 2 days ago".

Video

480p & 16:9

Progressive output on a component cable or Digital AV HDMI adapter, and a widescreen layout for 16:9 TVs.

No reflashing

Updates from the SD card

Copy a new launcher.dol to fml/ and it runs next time. The Pico only needs flashing once.

Find things

Tabs & search

All, Recent, Favourites, GameCube, Game Boy and Apps tabs, plus a search that also matches regions like "Japan".

New in v1.1

Disc drive

Play an original disc, or copy it to the SD card as a 1.36 GB backup with a CRC32 to check against Redump.

New in v1.1

Music Player

MP3s from anywhere on the card in a Windows XP style player: playlist, song tags, frequency bars, shuffle and repeat.

New in v1.1

Movie Player

MPEG-1 videos with sound. tools/make_movie.py converts anything else on your PC.

04 · Set it up

Install it on your GameCube

Already have PicoLoader and Swiss?

FML Launcher takes the place of the starter on the chip, and still uses Swiss in the background for GameCube games. If your console isn't modded yet, start with the PicoLoader guide.

  1. 1

    Download the release

    Get cubelaunch.uf2 and the fml folder from the latest release.

  2. 2

    Flash the Pico

    Take the Pico out (or connect its USB port), hold BOOTSEL while plugging it in, and copy cubelaunch.uf2 to the RPI-RP2 drive. The drive disappears when it's done.

  3. 3

    Prepare the SD card

    Copy the fml folder to the root of the card, plus a Swiss .dol (any name starting with swiss). For Game Boy games, add Visual Boy Advance GX.

  4. 4

    Add your games and covers

    Put games in any folders you like. Then run python tools/covers.py fetch E:\ on your PC (with your card's drive letter) to download box art for everything on it.

SD card
├── fml/← FML Launcher's files
│ ├── launcher.dol← Runs instead of the copy on the chip, for updates
│ └── splash.fmv← Boot video
├── swiss_r2119.dol← Used in the background to start GameCube games
├── games/← GameCube disc images
│ └── Super Smash Bros. Melee.iso
├── roms/← Game Boy ROMs
│ └── Pokemon - Emerald Version (USA, Europe).gba
├── music/← MP3s for the Music Player (any folder works)
│ └── Artist - Song.mp3
├── videos/← MPEG-1 videos for the Movie Player
│ └── Holiday.mpg
├── vbagx/← Visual Boy Advance GX
├── apps/← Homebrew .dol files
└── covers/← Box art, made by tools/covers.py
An example SD card. Only the `fml` folder and a Swiss file are required; folder names for games are up to you.

05 · Buttons

Controls

ButtonWhat it does
Stick / D-pad left and rightSlide through games
AStart the game
L / RSwitch tab
ZSearch
XStar or unstar a game
YSettings: video mode, screen shape, open Swiss, switch SD card, restart
STARTRestart
Hold R while turning onUse the copy on the chip instead of fml/launcher.dol
Hold B while turning onForce 480i, if 480p shows no picture

In the Music Player

ButtonWhat it does
APlay the chosen song, or pause
L / RPrevious / next song
C-stick left and rightSeek
C-stick up and downVolume
X / YShuffle / repeat
ZStop
BBack to the shelf (the music keeps playing)

In the Movie Player

ButtonWhat it does
APlay or pause
L / RBack or forward 30 seconds
C-stick (or stick)Seek left and right, volume up and down
BBack to the list, then to the shelf

06 · Media

Music and movies

Copy .mp3 files anywhere on the SD card and they show up in the Music Player (Apps tab). Songs are named from their tags, or from file names like Artist - Song.mp3.

The GameCube is too slow for modern video formats, so the Movie Player plays MPEG-1 (.mpg), the format of Video CDs. Convert your videos on a PC with ffmpeg installed:

Convert a video
python tools/make_movie.py "Holiday.mp4"

Smaller plays smoother

The default is 320 pixels wide at 24 fps. Try --width 400 for a sharper picture if it still plays smoothly on your console.

07 · New versions

Updating

After the first flash, updates are just a file copy. Download launcher.dol from the newest release and copy it over fml/launcher.dol on the SD card. When the console starts, the launcher on the chip sees that the card has a different build and runs it instead.

If an update won't start

Hold R while turning the GameCube on. That skips the card's copy and uses the one on the chip, so you can replace the file.

08 · From source

Build it yourself

Install devkitPro with the GameCube packages, clone the repository, and run make in a devkitPro shell. That gives you cubelaunch.dol.

Clone
git clone https://github.com/fixmylifedesigns/fml-launcher.git
Turn the build into a Pico firmware file
python tools/make_uf2.py cubelaunch.dol cubelaunch.uf2

Dolphin can't emulate SD adapters, so make DEMO=1 builds a version with a fake card built in, for testing on a PC.

09 · Downloads

Links

  • FML Launchergithub.com/fixmylifedesigns/fml-launcherSource code, issues and README
  • FML Launcher releasesgithub.com/fixmylifedesigns/fml-launcher/releases/latestcubelaunch.uf2, launcher.dol and the fml folder
  • GameCube PicoLoader guide/mods/gamecube/picoloaderSetting up PicoLoader, Swiss and the SD card
  • Swiss releasesgithub.com/emukidid/swiss-gc/releases/latestFML Launcher uses Swiss to start GameCube games
  • Visual Boy Advance GXgithub.com/dborth/vbagxPlays Game Boy games
  • devkitProdevkitpro.org/wiki/Getting_StartedToolchain for building from source

Last checked: 2026-10-30 · FML Launcher v1.1.0 · Swiss v0.6r2119 · Visual Boy Advance GX 3.0.3

FML Launcher is free, open-source homebrew. Use game backups and ROM files made from games you legally own, subject to the laws where you live. Box art belongs to its publishers. Nintendo, GameCube and Game Boy are trademarks of Nintendo. This project is not affiliated with Nintendo.

© 2026 fixmylife · All pages