Repository navigation
Desktop Version
The game can be run on your computer, which allows you to experiment with it without needing to setup an ESP32. The desktop emulator lives in the catode32-desktop crate.
- Rust
- SDL2
The emulator uses SDL2 to render the same 128x64 framebuffer that would normally render to the hardware screen to a desktop window instead.
On macOS:
brew install sdl2On Debian/Ubuntu:
sudo apt install libsdl2-devThe default target when building is for ESP32 (riscv32imac-unknown-none-elf). To run it on desktop instead you need to pass --target with your host triple when building the desktop crate.
Examples:
Apple Silicon:
cargo run -p catode32-desktop --target aarch64-apple-darwinIntel Mac:
cargo run -p catode32-desktop --target x86_64-apple-darwinLinux:
cargo run -p catode32-desktop --target x86_64-unknown-linux-gnu| Key | Action |
|---|---|
| Arrow keys | D-pad |
| A | A (Select) |
| S | B (Back/Cancel) |
| Q | Menu 1 |
| W | Menu 2 |
| Esc | Quit Emulator |
You can change the screen colors when you launch the emulator. Put the options after -- so cargo passes them through to the program:
For example, when running on linux:
cargo run -p catode32-desktop --target x86_64-unknown-linux-gnu -- --fg 33ff66 --bg 000000| Option | Sets | Default |
|---|---|---|
--fg RRGGBB |
Lit pixel color | 23A5CC |
--bg RRGGBB |
Background color | 0A0A0A |
Colors are 6-digit hex. The leading # is optional (quote it in the shell, e.g. --fg '#33ff66'), and --fg=33ff66 also works. Run with --help to see all options.
The desktop save is stored at ./catode32-save.json in the current working directory. It is separate from the device save, which lives on the ESP32's nvs flash partition.