A high-performance port of the classic Tomb Raider engine (OpenLara) for the ESP32-P4. Delivers 30 FPS via software rendering with fully integrated audio.
0
stars
2
commits
C
primary language
Sep 6, 2026
updated
A port of OpenLara to the ESP32-P4-Function-EV-Board. Runs the classic Tomb Raider 1 engine with software rendering, audio, and USB HID keyboard input on Espressif's latest RISC-V SoC.
Author: Alejandro Villegas Alonso

| Component | Details |
|---|---|
| Board | ESP32-P4-Function-EV-Board |
| SoC | ESP32-P4, RISC-V dual-core @ 400 MHz (chip rev < 3.0) |
| Flash | 16 MB |
| PSRAM | 32 MB (SPIRAM, HEX mode, 200 MHz) |
| Display | 1024x600 MIPI DSI LCD (EK79007) |
| Touch | GT911 capacitive (I2C) |
| Audio | ES8311 codec via I2S |
| Storage | MicroSD card (SDMMC 4-bit) |
| Input | USB HID keyboard (required) |
riscv32-esp-elf toolchain# Set up ESP-IDF environment
. $IDF_PATH/export.sh
# Build
idf.py build
# Flash (adjust port as needed)
idf.py -p /dev/ttyUSB0 flash monitor
You must provide your own Tomb Raider 1 data files (.PHD levels, .PCX images, cutscenes) inside a data folder on the MicroSD card. The game will not run without them.
A USB keyboard must be connected to the board.
| Key | Action |
|---|---|
| Arrow keys | Movement / Camera |
| Ctrl | Action (draw weapon, grab, interact) |
| Shift | Walk |
| Alt | Step / Look |
| Space | Jump |
| F12 | Toggle FPS counter |
gapi/sw.h engine compiled as C++11OpenLara is licensed under the GPL-3.0.
2 commits
C
71.7%
C++
28.2%
A high-performance port of the classic Tomb Raider engine (OpenLara) for the ESP32-P4. Delivers 30 FPS via software rendering with fully integrated audio.
0
stars
2
commits
C
primary language
Sep 6, 2026
updated
A port of OpenLara to the ESP32-P4-Function-EV-Board. Runs the classic Tomb Raider 1 engine with software rendering, audio, and USB HID keyboard input on Espressif's latest RISC-V SoC.
Author: Alejandro Villegas Alonso

| Component | Details |
|---|---|
| Board | ESP32-P4-Function-EV-Board |
| SoC | ESP32-P4, RISC-V dual-core @ 400 MHz (chip rev < 3.0) |
| Flash | 16 MB |
| PSRAM | 32 MB (SPIRAM, HEX mode, 200 MHz) |
| Display | 1024x600 MIPI DSI LCD (EK79007) |
| Touch | GT911 capacitive (I2C) |
| Audio | ES8311 codec via I2S |
| Storage | MicroSD card (SDMMC 4-bit) |
| Input | USB HID keyboard (required) |
riscv32-esp-elf toolchain# Set up ESP-IDF environment
. $IDF_PATH/export.sh
# Build
idf.py build
# Flash (adjust port as needed)
idf.py -p /dev/ttyUSB0 flash monitor
You must provide your own Tomb Raider 1 data files (.PHD levels, .PCX images, cutscenes) inside a data folder on the MicroSD card. The game will not run without them.
A USB keyboard must be connected to the board.
| Key | Action |
|---|---|
| Arrow keys | Movement / Camera |
| Ctrl | Action (draw weapon, grab, interact) |
| Shift | Walk |
| Alt | Step / Look |
| Space | Jump |
| F12 | Toggle FPS counter |
gapi/sw.h engine compiled as C++11OpenLara is licensed under the GPL-3.0.
2 commits
C
71.7%
C++
28.2%