diff options
| author | user <user@clank> | 2026-07-18 21:56:21 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-07-18 21:56:21 +0200 |
| commit | bea52bc8f99ee6dbcc8154a366560fc18e7b24c8 (patch) | |
| tree | 0772b5d9e98de7f6c495198844c230537c7fb9d6 /src/joypad.asm | |
| parent | term: SCY ring-scroll - scroll writes ONE map row; OSK toggle is 212 cycles (diff) | |
| download | gbos-bea52bc8f99ee6dbcc8154a366560fc18e7b24c8.tar.gz gbos-bea52bc8f99ee6dbcc8154a366560fc18e7b24c8.tar.xz gbos-bea52bc8f99ee6dbcc8154a366560fc18e7b24c8.zip | |
term: latch SCY in VBlank - fix ring-scroll shear on live displays
The ring-scroll wrote SCY mid-frame; SCY is sampled per scanline (on
hardware and in sl0pboy's PPU), so a scroll landing mid-frame rendered
the top of the frame at the old offset and the bottom at the new one -
a one-frame shear, invisible in frame-sampled GIF captures but ugly on
a live sixel view.
term_view_update now writes hSCY (HRAM) and a transparent VBlank ISR
(push af / apply / pop af / reti, same profile as TimerISR) copies it
to rSCY, so the view only ever moves at frame boundaries. The scroll's
tile+map writes stay immediate: the new map row is invisible at the
old SCY by construction (it's the ring row one past the visible 18).
Diffstat (limited to 'src/joypad.asm')
0 files changed, 0 insertions, 0 deletions
