Commit Graph

43 Commits

Author SHA1 Message Date
Adolfo Reyna
8d176925f8 Fix garbage characters in hardware game names
Store game names and descriptions in persistent LuaGameFactoryData
structure instead of local stack variables to prevent dangling pointers.
Same fix as emulator version.
2026-02-07 13:09:16 -05:00
Adolfo Reyna
22f5f1f5b2 Fix garbage characters in emulator game names
Store game names and descriptions in persistent LuaGameFactoryData
structure instead of local stack variables to prevent dangling pointers
2026-02-07 13:08:22 -05:00
Adolfo Reyna
285dffc32e Add Lua scripting support to desktop emulator
- Created emulator-specific lua_game_emulator.cpp using filesystem instead of FatFS
- Created lua_game_loader_emulator.cpp to scan games/lua_examples directory
- Updated CMakeLists.txt to include Lua 5.4 engine and bindings
- Updated to SFML 3.0 API compatibility (event handling, sprite initialization)
- Updated Game class to use public members for Lua bindings
- Updated GameLauncher to use std::function for lambda captures
- Added continuous 60 FPS rendering for smooth display
- Emulator now loads and runs all three example Lua games
2026-02-07 12:14:33 -05:00
Adolfo Reyna
e6e4eca188 Add Lua 5.4 scripting integration for dynamic game loading
- Integrated Lua 5.4 engine (32-bit mode for embedded ARM)
- Created LuaGame wrapper class implementing Game interface
- Added C++ bindings exposing renderer, game state, and input to Lua
- Implemented SD card loader for automatic .lua game discovery
- Updated GameLauncher to support std::function for lambda captures
- Made Game class members public for Lua bindings access
- Added example Lua games: counter, snake, bouncing ball
- Included comprehensive API documentation

Games can now be written as .lua text files on SD card and loaded
without recompilation. Build size: 747KB UF2, Lua VM uses ~50-80KB RAM.
2026-02-07 11:56:03 -05:00
Adolfo Reyna
c8af4f6638 Update DiceModalGame with a restricted board view and interactive dice challenge 2026-02-06 23:30:37 -05:00
Adolfo Reyna
499b61c9a5 Fix CommunityChestModalGame getting stuck after dismissal by correctly deleting it 2026-02-06 23:19:40 -05:00
Adolfo Reyna
64f61759d7 Fix emulator compilation and crash, and implement Monopoly payment modal 2026-02-06 23:13:32 -05:00
Adolfo Reyna
75e17fb26b Add friction to mindless clicking by disabling default action preselection in Monopoly menus 2026-02-06 22:45:16 -05:00
Adolfo Reyna
e2817262b0 Add virtual touch buttons for Monopoly game and centralize configuration in ModalButtonHelper 2026-02-06 22:11:24 -05:00
Adolfo Reyna
eb86c3fc0e Integrate thematic sprites and improve Monopoly UI 2026-02-02 23:14:14 -05:00
Adolfo Reyna
3bdbfb1811 Fix 1-bit bitmap rendering and add player turn modal 2026-02-02 23:14:11 -05:00
Adolfo Reyna
d5a80235b4 improve board view with visual cues of the properties owned 2026-01-31 23:02:25 -05:00
Adolfo Reyna
63c4324561 monopoly Main UI Changes 2026-01-31 22:46:33 -05:00
Adolfo Reyna
c6d7bd6c8c monopoly Main UI Changes 2026-01-31 22:46:26 -05:00
Adolfo Reyna
78b376ad5d fix rent calculation 2026-01-31 22:23:49 -05:00
Adolfo Reyna
fa4c6f00ca monopoly board 2026-01-31 22:00:46 -05:00
Adolfo Reyna
561f7c5951 interpreting monopoly as multi scree game 2026-01-31 19:05:58 -05:00
Adolfo Reyna
2165186b6b interpreting monopoly as multi scree game 2026-01-31 19:05:49 -05:00
Adolfo Reyna
ab75dbd322 monopoly 2026-01-31 18:50:50 -05:00
Adolfo Reyna
cad1aad2c8 initial monopoly test 2026-01-31 09:45:40 -05:00
Adolfo Reyna
3a1e278c4c Fix font handling: use const Font* for get_current_font and all GUI font save/restore logic 2026-01-31 09:45:29 -05:00
Adolfo Reyna
76a74477a7 emulator working 2026-01-30 23:40:10 -05:00
Adolfo Reyna
c1423b66aa First working version of desktop emulator with game launcher support. Includes local stubs and launcher logic. 2026-01-30 23:35:43 -05:00
Adolfo Reyna
d2fd001e70 Add display color inversion flag and logic for Feather TFT 2026-01-30 23:02:53 -05:00
Adolfo Reyna
45cbcc8384 fix touch 2026-01-30 22:52:25 -05:00
Adolfo Reyna
30c3c2a066 full refresh between game changes 2026-01-30 22:11:12 -05:00
Adolfo Reyna
f860d4f5e6 input manager provides ground of truth on device input choise 2026-01-30 22:07:31 -05:00
Adolfo Reyna
436245a7a2 Fix render issues with fonts 2026-01-30 22:02:15 -05:00
Adolfo Reyna
e3445b545d Initial game launcher 2026-01-30 21:39:09 -05:00
Adolfo Reyna
2a6861fdf5 refactored to multiple games implementation 2026-01-30 21:33:42 -05:00
Adolfo Reyna
d81d547983 plans 2026-01-30 21:10:29 -05:00
Adolfo Reyna
435a5caa56 tic tac toe works on touch and eink 2026-01-29 17:16:59 -05:00
Adolfo Reyna
372895fa08 initial game template 2026-01-29 15:58:58 -05:00
Adolfo Reyna
de566223b9 Add reactive game template refactoring plan 2026-01-29 15:38:20 -05:00
Adolfo Reyna
26e67d13d3 update readme 2026-01-29 15:37:44 -05:00
Adolfo Reyna
95e3f3f32d simple clean 2026-01-29 15:32:45 -05:00
Adolfo Reyna
8d0bca691a hardware button support 2026-01-29 15:23:03 -05:00
Adolfo Reyna
1684eb0198 add build all script 2026-01-29 14:33:54 -05:00
Adolfo Reyna
de6411d2fa improve board config setup 2026-01-29 14:32:36 -05:00
Adolfo Reyna
3a08cb5119 improve touch with pooling 2026-01-29 14:16:19 -05:00
Adolfo Reyna
d19a2ca639 touch with abtraction working, SD is not working 2026-01-28 23:23:49 -05:00
Adolfo Reyna
adfbef7228 abstracting display, touch and sd 2026-01-28 20:12:41 -05:00
Adolfo Reyna
57426c6e7d touch & sd working 2026-01-28 17:22:15 -05:00