CardPuter ADV Doom — Firmware Fix & Port
Found Doom on M5Burner for the CardPuter ADV. Flashed it. Black screen. Tried other versions — game loaded fine, classic demo loop running on a tiny 1.14" display, but the keyboard was completely dead. You could watch Doom, but not play it.
Turns out every existing firmware was built for the original CardPuter's 74HC138 GPIO keyboard. The ADV uses a completely different TCA8418 I2C keyboard controller (address 0x34) — so the firmware couldn't see any keypresses. Multiple GitHub issues reported the same bug. No one had fixed it.
So I forked it, rewrote the keyboard driver, fixed the partition table (custom 6 MB layout for the embedded IWAD), upgraded to ESP-IDF v5.5.1, and adapted the audio codec for ES8311.
It works now — full keyboard input, sound effects, music, save/load, even cheats. This is the first Doom firmware that actually runs on CardPuter ADV.
-
Hardware:
- MCU: ESP32-S3, 240 MHz, 8 MB Flash
- Keyboard: TCA8418 I2C Controller
- Audio: ES8311 Codec + NS4150B Amp
- Display: ST7789V2, 135 x 240 LCD
Controls:
- ; Forward /. Backward / l Turn right / ' Turn left
- opt Fire / ctrl Strafe left / alt Strafe right
- fn Use / tab Map / 1-7 Weapon select
Cheats: iddqd (god mode) / idkfa (all weapons) / idc14 (warp)
-
Source code & pre-built binaries:
https://github.com/MAXXTANG/CardPuterAdvancedDoom
Source code & pre-built binaries:





Comments