How emukidid/xenogcfork works
xenogcfork is a GameCube/DVD-drive firmware fork for the drive’s MN10200 CPU, with a GameCube-side shell and flash-updater application. The main user workflow is launching the shell, detecting video region, listing disc games, and booting a selection; a memory-card DOL loader is documented as work in progress. A separate workflow updates drive flash. The shell and updater excerpts support their local calls; drive-firmware internals are only sampled in part, so uncertain subsystem wiring is omitted.
Main entry points: main.c XenoShell · xdump.asm.c Drive firmware · dvd.c Updater DVD commands · main.cpp XenoFlash updater
Components 14
Shell and boot
- XenoShell
XenoShell/source/main.c - Loaded DOL
XenoShell/source/main.c
Drive firmware
- Drive firmware
Drivecode/Source/xdump.asm.c - Drive runtime
Drivecode/Source/QLite Main.asm.c - Drive apploader
Drivecode/Source/QLiteApploader.asm.c - Breakpoints
Drivecode/Source/QLiteBreakpoints.asm.c
Flash update
- XenoFlash updater
XenoFlash/source/main.cpp - Updater DVD commands
XenoFlash/source/dvd.c
Hardware interfaces
- IPL interface
XenoShell/source/main.c - DVD interface
XenoShell/source/main.c - Memory card
- Game disc
- Drive flash
Other components
- Player
Connections 16
- Player → XenoShell: starts
- XenoShell → IPL interface: reads IPL
- IPL interface → XenoShell: provides region
- XenoShell → DVD interface: issues commands
- DVD interface → Game disc: reads disc
- DVD interface → XenoShell: returns game list
- XenoShell → Memory card: loads DOL
- Memory card → Loaded DOL: provides DOL
- XenoShell → Loaded DOL: loads sections
- Player → XenoFlash updater: starts update
- XenoFlash updater → Updater DVD commands: calls commands
- Updater DVD commands → Drive flash: programs flash
- Updater DVD commands → Drive firmware: sends drive commands
- Drive runtime → Drive firmware: runs firmware
- Drive firmware → Drive apploader: uses
- Drive firmware → Breakpoints: dispatches