Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

XenoPico-GC

XenoGC GameCube modchip firmware ported from the ATmega8L to the RP2040. 1:1 port of XenoAT.c (protocol, control flow, magic addresses, embedded MN10200 drivecode); only the hardware layer is rewritten.

One .uf2 works on both the Raspberry Pi Pico and the Waveshare RP2040-Zero.

Flash it

Recommended to flash the pico before you wire it up, or if already wired up remove the drive from GameCube when reflashing so it doesn't try to power the entire GC 3V3 rail.

  1. Hold BOOTSEL on the RP2040 (BOOT on RP2040-Zero) and plug it into USB.
  2. It mounts as a drive named RPI-RP2.
  3. Drag xenopico.uf2 onto it. The board reboots and runs the firmware.

Pins / LED

Photos_d80FcRnX0Z
GPIO Signal Original AVR Direction
0 SYNC X_STR input, pull-up
1 IN X_IN input, no pull
2 OUT X_OUT output
3 SCLK X_CLK output
16 WS2812 (onboard LED) output
25 LED (onboard LED) output

The firmware drives both onboard LED types, so the same image suits either board (the LED your board doesn't have just toggles a free pin, harmlessly):

Board LED sync/patch streaming success
Raspberry Pi Pico green GPIO25 off flashing green
Waveshare RP2040-Zero WS2812 GPIO16 red blue green

(On bench USB power with no drive attached it will sit on red in the sync wait on RP2040-Zero.)

Build

Built against Pico SDK 2.1.1.

export PICO_SDK_PATH=/path/to/pico-sdk
mkdir build && cd build
cmake -DPICO_BOARD=pico ..
make

Files

xenopico.uf2          prebuilt firmware, ready to flash
xenopico.c            firmware: hardware layer + 1:1 protocol port
payloads.S / .h       embed the drivecode blobs via .incbin
ws2812.pio            WS2812 driver (Zero RGB LED)
qcode.bin upload.bin XenoShell.bin  stock XenoGC drivecode blobs
CMakeLists.txt pico_sdk_import.cmake

Payload blobs

qcode.bin, upload.bin, XenoShell.bin are the stock XenoGC drivecode blobs from the original XenoGC source release (gc-forever, Feb 2011): https://www.gc-forever.com/forums/viewtopic.php?t=439 . They are embedded byte-exact (md5-verified against that release's XenoAT/ folder):

qcode.bin      9b24be69f11269b001149b6c26ba3d05
upload.bin     29d96c609bb31c2b2ced9c3a733d63ea
XenoShell.bin  ee07bf968e3c7659704b5d66ed08fb58

About

XenoGC GameCube drive-chip firmware ported from the ATmega8L to the RP2040

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages