aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authoruser <user@clank>2026-07-18 21:50:22 +0200
committeruser <user@clank>2026-07-18 21:50:22 +0200
commit9b813f2a0eb8626f84489de0f55dc6da2ed22420 (patch)
tree0887bb78ecc91a1c63fc5ed76be10adc9b8c2743 /Makefile
parentterm: 3 more renderer wins - 10.9x scroll, 2.7x putc vs pre-cache (diff)
downloadgbos-9b813f2a0eb8626f84489de0f55dc6da2ed22420.tar.gz
gbos-9b813f2a0eb8626f84489de0f55dc6da2ed22420.tar.xz
gbos-9b813f2a0eb8626f84489de0f55dc6da2ed22420.zip
term: SCY ring-scroll - scroll writes ONE map row; OSK toggle is 212 cycles
The BG map's 32 rows become a ring: logical row L always lives at map row (wMapTop + L) & 31, and SCY = (wMapTop + wViewTop)*8 places the view. Scrolling bumps wMapTop, rebuilds the one new bottom line and writes its single map row (map_row_one); the other 17 rows move for free. The whole OSK view dance - shift the cursor above the keys, restore the backlog on hide - is now term_view_update: one SCY write, no map rewrite at all. OSK safety: the keyboard lives on the WINDOW layer, which SCY never moves. Stale ring rows can only appear under it: wViewTop = max(0, wCurRow-14) <= 3 is nonzero only while the OSK is visible, and the window covers exactly those bottom 3 rows (WX=7, WY=120). Verified: scroll + view shift + scroll-while-OSK-up + backlog restore all pixel-correct via VRAM screenshots; full README demo passes. term_scroll: 78.5k -> 35.6k T-cycles (857k pre-optimization: 24x). OSK toggle: 45k tilemap rewrite -> 212 cycles. Regenerated demo/gbos-demo.gif on the new renderer.
Diffstat (limited to 'Makefile')
0 files changed, 0 insertions, 0 deletions