OpenLara ESP32-P4
Auteur: Alejandro Villegas Alonso
Kenmerken
- Software RGB565-renderer op 320x240, hardwarematig geschaald naar 1024x600 via de PPA (Pixel Processing Accelerator).
- 44,1 kHz stereo audio via I2S + ES8311 codec.
- USB HID-toetsenbordinvoer (boot protocol).
- GT911 capacitieve touch (I2C).
- MicroSD-kaart (SDMMC 4-bit) voor gamegegevens.
- Ondersteuning voor decodering van MP3 (minimp3), OGG (stb_vorbis) en zlib (tinf).
- FPS-teller op het scherm (aan/uit via F12).
- Aangepaste health/oxygen HUD-overlay.
Hardwarevereisten
| 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 capacitief (I2C) |
| Audio | ES8311 codec via I2S |
| Opslag | MicroSD-kaart (SDMMC 4-bit) |
| Invoer | USB HID-toetsenbord (vereist) |
Builden
Voorwaarden
- ESP-IDF v5.4+ (getest met v5.4.4 / v5.5.5)
- riscv32-esp-elf toolchain
Builden & Flashen
# Stel de ESP-IDF omgeving in
. $IDF_PATH/export.sh
# Builden
idf.py build
# Flashen (pas de poort aan indien nodig)
idf.py -p /dev/ttyUSB0 flash monitor
Gamegegevens
U dient zelf de Tomb Raider 1-databestanden (.PHD levels, .PCX afbeeldingen, cutscenes) te verzorgen in een map genaamd data op de MicroSD-kaart. De game zal niet functioneren zonder deze bestanden.
Besturing
Er moet een USB-toetsenbord zijn aangesloten op het board.
| Toets | Actie |
|---|---|
| Pijltjestoetsen | Beweging / Camera |
| Ctrl | Actie (wapen trekken, pakken, interactie) |
| Shift | Lopen |
| Alt | Stap / Kijken |
| Spatie | Springen |
| F12 | FPS-teller aan/uit |
Technische opmerkingen
- De software-rendering is gebaseerd op de MS-DOS-variant van OpenLara (niet de GL-renderer), gebruikmakend van de header-only
gapi/sw.hengine, gecompileerd als C++11. - Er is een near-plane clipping-patch toegepast voor de software-renderer.
- FreeRTOS dual-core met een 1000 Hz tick; de audio-pump-taak draait op core 0.
- Al het gamegeheugen wordt toegewezen vanuit PSRAM; intern SRAM is gereserveerd voor DMA en taak-stacks.
- Saves en cache worden weggeschreven naar de SD-kaart.
Credits & Licentie
- XProger/OpenLara — de originele open-source Tomb Raider 1-engine.
- Licentie: OpenLara is gelicenseerd onder de GPL-3.0.
Groetjes,