esp32-rtype is a deliberately narrow attempt to run Irem R-Type's V30/M72 hardware path on an ESP32. The primary target is the ESP32-8048S043C, an ESP32-S3 board with a 480x800 RGB panel; the M5Stack Tab5 and its ESP32-P4 remain a secondary target.
The goal is to run the live V30/M72 video path on inexpensive hardware and compare it against a host renderer, not to build a general MAME port. Audio, physical controls, menus and save states are outside the current scope.
The main CPU ROM is flash-mapped from a dedicated partition and graphics ROMs are loaded from SPI flash. Work, video, sprite, palette and sound RAM occupy sparse PSRAM-backed regions around the current V30/M72 execution path.
Rendering follows M72 tile priorities, sprite-list traversal and palette semantics. On the ESP32-S3, snapshots are taken only after the M72 update queue drains, then handed to the RGB panel with direct framebuffer output and triple source framebuffers. The 800x480 display carries a proportionally scaled 720x480 game image.
Runs the live R-Type V30/M72 path on ESP32-S3 hardware rather than replaying captured frames.
CPU and graphics ROMs remain in flash; the larger mutable M72 regions use PSRAM.
Tile priority masks, sprite traversal and palette RAM follow the host and firmware MAME-style renderer semantics.
Snapshots happen after queued video updates drain, avoiding mid-update frames with cleared background attributes.
The repository includes host and firmware renderers plus a comparison workflow for checking displayed output.
No audio output, controls, menus, save states or wider MAME compatibility.