## Status
Gecko is still in development. While many games work well, most will likely have varying degrees of visual glitches or will be outright broken. Refer to the screenshot databases to gauge compatiblity:
- [GameCube](https://emu.layle.dev/gecko-gc)
- [Wii](https://emu.layle.dev/gecko-wii)
> [!NOTE]
> Not all games are tracked. The screenshot service makes a best effort attempt to enter games by pressing random buttons. Just because a game doesn't go ingame, doesn't mean it actually doesn't.
Gecko now also has a [**community driven** compatibility database](https://gecko.layle.dev/compat)! Feel free to leave a vote when trying out games. The database is still new, so please take the ratings with a grain of salt!
## Features
Gecko is developed with homebrew development and reverse engineering in mind, but also aims to provide a faithful and playable experience!
- Cross-platform: Windows, Linux and macOS
- x86 and ARM supported on each platform
- More platforms supported if compiling yourself
- Cranelift based JITs
- PowerPC, DSP, vertex decoder
- Upscaling 1x - 4x
- Controller support
- Xbox, Steam, etc.
- PS5 DualSense Wiimote motion control
- Starlet HLE
- IPL skip patches for NTSC and PAL
- `wgpu` based renderer backend
- Supports all major platforms
- `wesl` based specialized shader compiler
- JIT and shader cache
- FIFO recorder, player and [debugger](https://www.youtube.com/watch?v=8mTPH3iAjy4)
- Compatible with Dolphin
- GameCube memory cards
- Frame pacing
- Modular audio backend, defaults to `cpal`
- Supports mixing audio sinks
- Supports dumping to .wav files
- MCP server
- Lua scripting system for runtime introspection
- A beautiful yet advanced egui-based debugging UI
- Symbol parsing from ELFs and IDA Pro databases
- IDA Pro loaders for DOL and Apploader
- RenderDoc captures with all sorts of debug markers
- ISO and RVZ support
- Supports either compressed as ZIP
- Included multitool, supports:
- IPL decode/encode
- SYSCONF decode/encode
- setting.txt decode/encode
- DVD filesystem extraction
- Disassembler for PPC and DSP
- Various built-in diagnostics for JIT and GX
- [Support for web browser](https://gecko.layle.dev)
- [incl. debugging capabilities](https://gecko.layle.dev/dbg)
## Usage
Prebuilt releases (including debug builds) can be downloaded [here](https://github.com/ioncodes/gecko/releases). GameCube and Wii require system files to use the emulator, please refer to the ["Required Files"](https://github.com/ioncodes/gecko#required-files) chapter. Minimal commands to launch a game:
```sh
# Launch a GameCube game
./tinyapp --ipl IPL.decoded.bin --dsp dsp_rom.bin --coef dsp_coef.bin --skip-ipl --dvd YourGame.rvz
# Launch a Wii game
./tinyapp --dsp dsp_rom.bin --coef dsp_coef.bin --dvd YourGame.rvz
```
A more modern and friendly experience is provided via `gecko` ([short preview on YouTube](https://www.youtube.com/watch?v=wg62ie71JP0)):

It scans the configured GameCube and Wii folders for `.iso`, `.rvz` and `.zip` files. Double-clicking on a row opens a dedicated player window for that game. The decoded GameCube IPL and DSP files are expected to be inside the `system` folder and **must** be named exactly as follows:
```sh