Adolfo 653ad8902f fix(GameBoy): FPS but no game - cache invalidation bug
Root cause: LVGL9 canvas = lv_image backed by draw_buf with image cache.
Mutating raw uint16_t* buffer without lv_image_cache_drop + lv_draw_buf_invalidate_cache
leaves stale texture (gray/black). Only label (FPS) updated via lv_label_set_text_fmt,
so symptom = FPS counter works, game invisible.

Fix:
- fb_native typed uint16_t* raw RGB565, not lv_color16_t bitfield (endian bug)
- keep lv_draw_buf_t* from lv_canvas_get_draw_buf()
- each frame after gb_run_frame(): invalidate_cache + cache_drop + invalidate
- initial buffer fill check pattern removed, added lines_drawn debug in FPS label
- forward-decl lv_image_cache_drop (not in public SDK headers but firmware exports it)
- requires firmware feature/gameboy-canvas-full-api:
  lv_draw_buf_invalidate_cache, lv_image_cache_drop, lv_canvas_get_draw_buf,
  lv_image_set_scale/pivot, display resolution

SDK 0.8.0-dev built with IDF 5.5.2 - 0 undefined beyond firmware exports.
Builds to 50K GameBoy.app

Also preserves mDNS browse API from parent branch (Mdns.h/cpp, tt_mdns.h/cpp)
which sits on top of 60764979 'kidsOS-XXXX' mdns init.
2026-07-20 12:36:11 -04:00
2025-09-23 21:33:04 +02:00
2026-07-17 11:05:33 -04:00
2025-09-23 22:36:36 +02:00
2025-09-23 21:33:04 +02:00
2025-09-23 21:33:04 +02:00
2025-09-23 21:33:04 +02:00
2025-10-18 15:40:59 +02:00
2026-03-05 23:31:36 +01:00

Tactility Apps

This project contains various official Tactility apps. Some are usable day-to-day while others are simply feature showcases.

License

The Apps are licensed as GPL v3 while the Libraries have their own license. Read more about licensing in LICENSE.md.

S
Description
No description provided
Readme 5 MiB
Languages
C 50.1%
C++ 44.4%
Python 4.4%
CMake 1.1%