mirror of
https://github.com/pelgraine/Meck.git
synced 2026-10-31 04:02:01 +01:00
EXPERIMENT (Max only, env meck_max_ble_fastlut; all other builds unchanged)
- New vendored driver src/helpers/ui/GxEPD2_310_GDEQ031T10_FAST.{h,cpp}:
the GxEPD2 GDEQ031T10 driver with a selectable partial-refresh
waveform. Default is "LUT from register" loaded with the register
tables bitbank2/bb_epaper uses for this panel on the T-Deck Pro (one
9-frame push per pixel); the factory OTP waveform stays available.
Full refreshes unchanged. Measured on the Max: partial refresh 244 ms
(652 ms on the factory waveform) on home, menus, ROM list and typing.
Cost: one short push per pixel gives weaker blacks and half-develops
dithered stipple, so it suits text and does not suit the game.
- GxEPDDisplay: setFastWaveform() and fastPartialsSinceFull(), no-ops
outside the experiment env. Switching back to the factory waveform
hibernates the panel so the next refresh goes through a hardware
reset (tested as a ghosting fix; it was not one, kept as a clean
hand-over).
- UITask::setCurrScreen: after EINK_FAST_FULL_EVERY (20) fast partials
the redraw at the next screen change is a full refresh, so the
register waveform's ink imbalance is cleared where a redraw is
happening anyway rather than mid-typing.
- GBC emulator switches the driver to the factory waveform while a
game runs (its dithered picture needs the longer drive) and back to
fast on quit.
- Finding, for the record: moving-sprite ghosting in Pokemon Gold
appears on the stock build too, so it is the game plus dither plus
the factory partial waveform, not the experiment.
GBC EMULATOR (all T-Deck builds)
- "Loading..." alert box the moment Enter is pressed on a ROM row; the
multi-second SD read now runs on the next loop pass, after the box is
on the panel, instead of inside the key handler.
- Games start with a full refresh (clean panel; added during the
ghosting investigation, kept pending review).
- Save writes are timed and the durations logged (remove/open/write/
close), after one unexplained ~45 s UI stall coincided with a save.
Files: examples/companion_radio/ui-new/GBCEmulatorScreen.{h,cpp},
examples/companion_radio/ui-new/UITask.cpp, src/helpers/ui/GxEPDDisplay.h,
src/helpers/ui/GxEPD2_310_GDEQ031T10_FAST.{h,cpp},
variants/lilygo_tdeck_max/platformio.ini