velxio/test
davidmonterocrespo24 5742ed0146 feat(examples): Pico Doom — Wolf3D-style raycaster on RP2040 + ILI9341
A new entry in the games category for the Raspberry Pi Pico. Renders
a first-person 3D corridor à la Wolfenstein / early Doom using a
column-wise DDA raycaster — 160 rays per frame drawn straight to a
320×240 ILI9341 TFT via drawFastVLine, no framebuffer. 16×16 tile map
with 5 wall palettes (slate, blood, brown, toxic green, bronze door),
darkened on NS faces so corners read in 3D. Forward / back move,
two more buttons turn the player. 40-px HUD bar.

Why a demo, not the canonical id Software Doom: Graham Sanderson's
rp2040-doom port shoehorns DOOM1.WAD into 2 MB of flash with custom
compression and pushes video out over PIO-driven DVI / VGA — none of
that survives the rp2040js emulator (no PIO accuracy, no flash
mapping for huge assets). A raycaster reproduces the *visual* of
early Doom using only ~67 KB of flash and 9 KB of RAM, which the
emulator runs perfectly.

Pre-flight: arduino-cli compile against rp2040:rp2040:rpipico
already verified inside the Velxio backend container — 3 % flash,
3 % RAM. The Adafruit_GFX + Adafruit_ILI9341 libs the example
declares are already in the gallery's auto-install list.

Bundled:
  test/pico_doom_demo/arduino_sketch.ino — source of truth sketch
  test/pico_doom_demo/README.md          — what + why + pin map
  test/pico_doom_demo/compile_check.sh   — operator script that
    runs arduino-cli against the same FQBN the prod backend uses
  frontend/src/data/examples.ts          — gallery entry (boardType
    raspberry-pi-pico, category games, difficulty advanced, 5
    components, 14 wires)
  frontend/src/__tests__/examples-pico-doom.test.ts — 10 vitest
    assertions: example is registered exactly once, target board /
    category / difficulty match, libraries declared, all four
    pushbuttons present, every wire endpoint references a real
    component id, SPI pin mapping matches the sketch's #define
    block, every button has a GND wire, the renderFrame loop is
    still present in the embedded code.
2026-05-13 22:54:35 +02:00
..
autosearch feat: Add support for SSD168x ePaper panels 2026-04-29 22:23:00 -03:00
backend perf(compile): dedup, concurrency limits, and persistent build dir for ESP-IDF 2026-05-09 08:33:11 +02:00
esp32
esp32-emulator refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
esp32_cam Refactor ESP32 library management and add regression tests for issue #129 2026-04-30 23:49:46 -03:00
multi_board
multi_board_esp32 feat(multi-board): add wire-aware cross-board interconnect router 2026-04-25 19:47:40 -03:00
pi_arduino_serial refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
pico_doom_demo feat(examples): Pico Doom — Wolf3D-style raycaster on RP2040 + ILI9341 2026-05-13 22:54:35 +02:00
test-esp32-cam refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test-esp32-p4 docs: add ESP32-P4 research and feasibility report 2026-05-06 15:48:05 -03:00
test_100_days refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test_Raspberry_Pi_Pico_W refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test_chip_backend_runtime Add ESP32 chip demos and comprehensive tests for I2C, SPI, and UART interactions 2026-04-28 19:24:39 -03:00
test_circuit refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test_custom_chips feat(i2c): cross-board bridging across all velxio boards (AVR/RP2040/ESP32 xtensa+riscv) 2026-05-12 17:51:39 -03:00
test_custom_chips_boards Add ESP32 chip demos and comprehensive tests for I2C, SPI, and UART interactions 2026-04-28 19:24:39 -03:00
test_epaper feat: add support for UC8159c (ACeP 7-colour) display 2026-04-30 00:27:40 -03:00
test_intel refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
docker-errors-2026-04-19.md