feat(LuaGame): Lua interpreter game engine with audio, 17 FPS, 4.5x ball speed

- Embed Lua 5.4.7 source to avoid missing symbols (clearerr, clock, getenv, etc)
- Provide local stubs for missing libc and avoid unexported LVGL cache APIs
- Fix float handling in sys.* bindings (checknumber vs checkinteger)
- Move Lua init and game loop to dedicated 16K FreeRTOS task to avoid GUI 4K stack overflow
- Implement sys API: clear, print (8x8 bitmap font direct FB), rect, circle, line, touch, sfx, tone
- Audio via SfxEngine (SfxId mapping, playNote for tone)
- Ball speed 2 -> 4.5, FPS counter (~17 FPS after direct FB text optimization)
- Supports loading from /sdcard/lua/breakout.lua and embedded fallback
- Verified symbols: 0 missing, builds esp32s3, installs on 192.168.68.107
This commit is contained in:
Adolfo
2026-07-31 12:52:02 -04:00
parent 709444d771
commit 827fdb41c2
67 changed files with 29528 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
void audio_init(void);
void audio_deinit(void);
void audio_play_sfx(const char* name);
void audio_play_tone(int note, int duration_ms, const char* waveform, float volume);
#ifdef __cplusplus
}
#endif