From 5dd01629b9abdddc77f7102efa8e0c780ff5d67d Mon Sep 17 00:00:00 2001 From: "opencode.energia.arti.ee" Date: Thu, 12 Nov 2026 05:19:52 +0000 Subject: [PATCH] fix(termtris): do not select ExposureMask A map-time Expose arrives before the game has a current piece, and the game's full-redraw path then draws a bogus piece over the top row: visible as a blanked well border with stray X tiles (the previous commit's screenshots showed it). The window is never obscured in this session, so drop the mask, drop the Expose branch, and note the reason in HANDOFF.md. Refreshed with verify.sh: move 354/18, panels 346/12, quit 300/10, all with focus=00400001; evidence re-captured and clean. --- apps/termtris/HANDOFF.md | 11 +- apps/termtris/VT1200.md | 16 +- apps/termtris/build/termtris.coff | Bin 15208 -> 15186 bytes apps/termtris/build/termtris.map | 146 +++++++++--------- apps/termtris/evidence/termtris_frame3300.png | Bin 19499 -> 19434 bytes apps/termtris/evidence/termtris_move_3200.png | Bin 19524 -> 19584 bytes .../evidence/termtris_panels_3200.png | Bin 22474 -> 22424 bytes apps/termtris/evidence/termtris_quit_3200.png | Bin 19497 -> 19441 bytes apps/termtris/src/vt1200/main.c | 2 - apps/termtris/src/vt1200/x11.c | 2 +- harness/mame/TERMTRIS_REPORT.md | 10 +- 11 files changed, 97 insertions(+), 90 deletions(-) diff --git a/apps/termtris/HANDOFF.md b/apps/termtris/HANDOFF.md index 5a5ad87..19f2d7c 100644 --- a/apps/termtris/HANDOFF.md +++ b/apps/termtris/HANDOFF.md @@ -91,12 +91,12 @@ Last run here (older MAME, VR150 geometry): smoke PASS type=2 keycode=194 lookup_n=1 ch=61 ks=0061 fmt PASS six formats exact render PASS flus=464C5553 progress=00FFFFFF -input PASS bytes 60 61 9B 41 9B 42 9B 44 9B 43 30 0A 7F 71 70 - (60 is the Expose redraw, then a/up/down/left/right/0/Return/Delete/q/p) +input PASS bytes 61 9B 41 9B 42 9B 44 9B 43 30 0A 7F 71 70 + (a/up/down/left/right/0/Return/Delete/q/p) play PASS DIAG: tick=887 quit=0 -play_keys PASS move DIAG: loops=348 events=19 focus=00400001 quit=0 - panels DIAG: loops=338 events=13 focus=00400001 quit=0 - quit DIAG: loops=292 events=11 focus=00400001 quit=1 +play_keys PASS move DIAG: loops=354 events=18 focus=00400001 quit=0 + panels DIAG: loops=346 events=12 focus=00400001 quit=0 + quit DIAG: loops=300 events=10 focus=00400001 quit=1 ``` `focus=00400001` is the window the process created; `quit=1` is the game's own @@ -113,6 +113,7 @@ window. | the game exits immediately at startup, sometimes | `XOpenDisplay`/window creation while the display server settles | `main()` retries 40 × 50 ms, then returns 1 | | window paints once, then hangs; a debug marker stops mid-flush | per-cell flushing overflowed the X socket / `XSync` per row deadlocked the client | flush repaints whole rows (fill + one 80-char string + inverse spans + one `XFlush`) | | playfield is a white block with invisible pieces | the 1-bit raster cannot show colour | backend drops colour and uses bold (`0x80`) as reverse; pieces are `[`/`]` glyphs | +| blanked well border with stray `X` tiles at the top | `ExposureMask` + map-time Expose runs the game's full redraw before it has a piece | do not select `ExposureMask` (current code); if repainting on expose is ever needed, guard `full_redraw` against `cur_piece < 0` | ## Layout diff --git a/apps/termtris/VT1200.md b/apps/termtris/VT1200.md index 18fb0ab..cea1d20 100644 --- a/apps/termtris/VT1200.md +++ b/apps/termtris/VT1200.md @@ -89,8 +89,14 @@ level 0). Keys arrive as X11 `KeyPress` events and go through `XLookupString`; letters are lower-cased and handed to `game_input()`. Arrows are sent as the game's own CSI codes (`0x9b` + `A`/`B`/`C`/`D`), which `game_input` translates back to -`w`/`s`/`d`/`a`. `0x7F` is Backspace/Delete. `Expose` (selected with `0x22800F`) triggers a full redraw and -`FocusOut` (only after a `FocusIn`) pauses the game. +`w`/`s`/`d`/`a`. `0x7F` is Backspace/Delete. `FocusOut` pauses and `FocusIn` +resumes (only if we paused it). + +`ExposureMask` is deliberately **not** selected: the map-time `Expose` arrives +before the game has a current piece, and the game's full-redraw path then draws +a non-existent piece over the top row — visible as a blanked border with stray +`X` tiles. The window is never obscured in this session (the Terminal Manager +sits beside it), so the mask buys nothing. See `HANDOFF.md`. ## Running it in MAME @@ -130,9 +136,9 @@ which copies the sections to their linked addresses and calls Acceptance values from the last full run (`play_keys.sh`): ``` -move DIAG: loops=348 events=19 focus=00400001 quit=0 -panels DIAG: loops=338 events=13 focus=00400001 quit=0 -quit DIAG: loops=292 events=11 focus=00400001 quit=1 +move DIAG: loops=354 events=18 focus=00400001 quit=0 +panels DIAG: loops=346 events=12 focus=00400001 quit=0 +quit DIAG: loops=300 events=10 focus=00400001 quit=1 ``` `focus=00400001` is the window this process created (it is the only one in the diff --git a/apps/termtris/build/termtris.coff b/apps/termtris/build/termtris.coff index 0889510d5cd12f8d8a1e1059e9102341589b57a4..5305e97fea9674c3e6e649345aca03011ec28e11 100644 GIT binary patch delta 2808 zcmaJDZERE5_1Gn2_fXm!JDdnY_L3NLQ6u7NzzoC zDlnbajOU4kT&Y{vAA2l{GS({d=1r42Hd$Q@%u$;(T`PWcS;nAo=!m=xs+CI3&UsGk zP_aGfew@#H&bjBD`_h9mgZ5#fCNE#Q+dWu8NP-Zup17!v-lby8d3#x<*h0xPU{`;F znh@Vp$HK=32oYOiz!{^{>p=2+?+FgXW-Xj(J^#tw#x^raL1IYDRDtnH5m=bn@YxSB_&H8&w zewaU5Qp0?AscSNr^je3sf$zw4Tr0wSFjdEFs;|&T*psR%1L}Q?kC2HGaF30tyrAiA zm4nL|*`lh93w_2c>hi6`A<<1HZnDX`BiUid7-O^$02Ft#^g{ymGhRDnGQIx=lB_M?<-dbcWE4q5 z_QjF0hKUh06s<|~OG`_qzn%QKHt+|T`cnGMt@=-w3NFK0zf;a)TAi1gSe4FZkGo^^ zD&I+(l4IKFS((1twDzrS7>;pvL|5;P#3iZ;&Zfq+@+FzdFMx?7#t#I=qj*B1={5r} z3yDeH8IBXLv3C8VR(}BF=DCcKn_w&4;sN%$etjXHH#MrYEslg)J7yo7*AJP{`*H0Y zSgT55MA)f-&RZs0*D43P?o)4aF>b&yZpl9F3wu?nmqZqoZZMHYSw)X^r(MIg_(gduLSY{0A<8=7yp`Tdn> z<;??@8>afwz(4R@A6Ovli&1^BW)d64Gt1Syx6o6Kjpj>m_9Wk*>i}yNxHAW975MP7 z)XRnMLzExl1`NAD`|I&*Ce{I)0FfC$J;!fdH2o0t8JV0bCOJ(ZD9W^VEeVijglG8 z|ne7-Js&4zXyAbrMkNSU(76{p998S>`*n&W~%Mn9O`jW zffd&DaL{{C)qw8(>=rC=|Br3yMvLCq;)LHD_R$s@7>Bk#S%l9ws^gS@q%$zXyM1S? z6aNCN+tB<+wzZjvL|%( z_Z<#*5)x|2V+Q)3>WvU=hFKm|4IYztX63|=-mc#Mt^or6e_rc6h|kfox~w*`5)qDc z^n<#{w+LqV%8>(o$GgG=Ux8)J(WA$o?SF<~tH@&T$Pw5kKV{EvcVe()Sm1Wv+}`NH ztj)7sM>h3p%xxsHsyf#}VdHAN0m6V;o|i2F4Aw&)Qw|u+{yb(oV6X(U81%gN#9)`a Qn@!Zgy|pA}>R#gh3j-XvL;wH) delta 2804 zcmaJ@eQaA-6~Fh{>C202=cP_E+iBxByN=s5ar4onp@YrKN9)XWFfiDK~M0!8(e=5|gnBq!CQVh{KjBrE4^GL*bm~ z*sf89rFYLgpZDH#f9Lqlo=lxIog-@U#4m3TJYPddln}C!SZN`>O-1*4Q&p|#rX&H< zyML0J5XZs8{=+8-5#2$s4AR5~LK@Bw9p%7nuACE%=U3*QiJXyXUuOTBaF9JT`;b!s$smnIyCjgnB6eSJD&~H3El@|Z`{fBs)uMB`+{owrfm@YcY=>B zh0=$_)vgJ{WDd1F^=dZ%xyBz&g!7G`?TRG__X?@gvF?F`raj%n1_qL>@K=k64=G&J-OQ8u~ zf|J^X{1s=$dE-*Z&$Wx2N6Q24KW->mX+?Sn;iiV{+#V_~g{19DZ{z&TxPSzF3Ud)PW%B?oD& z(mhz7R7^)bU)gNeka(CP^uXd9x^G!N%0>xNO%{nMVdVWagy@)|_<}hGER9tI!lpwh zA*m=QJiI2Lz&Od?D8BC*rz=RebQ*s%Gwy#=BA8B0O`snG73{T%li*1{Kn~Z(YzUsS zoziO#Sk}Q(f=|(1@)T$SYAl9yzA#qTntw)jw}0`qnepd5wvI`5P}JjrM?|Ta=z??; zg#9k#4FD<(sni$Z|I+Au`+Lu04GzQRbBBNgPK&LZmX%!~1`{2S5>LYvc9#CN@~4Hi;WTXHQADC6i%i6EFQ7QW4wRbBSe^N}?1U=t0S488!3g_dY2#{OW<#<8+Z61E0d z#vs#|1yY3V;Y7h39-W4)cN?HQ+t^&0s}$=`<0*ssLwIB2MK9Y`ZsL44_NDSeke2AH zcBe`NNEF@OdC2jjPq>@_)y#KkPaFPN%| zd^z@YU?Vwp#ng*F-4$I(UaF9QM5ileIWc)hrmaSR8MFbVq9T=_=ExFTs@%dzH(!be?`Sa!B2cUs^2IE0vkdMX3z%C`!+1P%mos&Lh zKbEXCz^+R_qLJv}{q>X!2+-LfiATm)bTjSjsQ%`&>Ld zGmh2gbVc8(I-~B2yd%@c|0+{5C({?<^Zrey85zny0v>6`CY+S1>+kvBGVm8~$kh2R zi){O{BlWIKhyNkd5%{F{WEzIg`A?Z9;2W8jshCRZ!$744=B%j%wDr^k;Vr>FsJU3+ zt0ZI>8>`#Jep_or;l=G%rg02%J~tb2Snx)^?--!VjNfj>1lMdI;G9pfRILROcNMts z18hs(03eCg4MIl=)q|*w9RYGqv7-t0as43n*#3qA4YoZB4;~d2*|CNLc=6800bKZ{ zMhiS`SfViu9>;d$zcjP1|o<2A ENTRY POINT SYMBOL: "_start" address: 018a0000 @@ -20,28 +20,28 @@ SECTION ALLOCATION MAP output attributes/ section page origin length input sections -------- ---- ---------- ---------- ---------------- -.text 0 018a0000 00014b10 +.text 0 018a0000 00014a60 018a0000 00000150 ENTRY.obj (.text) - 018a0150 00001e60 MAIN.obj (.text) - 018a1fb0 0000ce50 GAME.obj (.text) - 018aee00 00000d20 SCOREDB.obj (.text) - 018afb20 00002a40 X11.obj (.text) - 018b2560 00001640 COMPAT.obj (.text) - 018b3ba0 00000210 XGFIX.obj (.text) - 018b3db0 00000450 rts.lib (.text) - 018b4200 000001a0 rts.lib (.text) - 018b43a0 00000230 rts.lib (.text) - 018b45d0 00000150 rts.lib (.text) - 018b4720 00000120 rts.lib (.text) - 018b4840 00000110 rts.lib (.text) - 018b4950 000001c0 rts.lib (.text) + 018a0150 00001db0 MAIN.obj (.text) + 018a1f00 0000ce50 GAME.obj (.text) + 018aed50 00000d20 SCOREDB.obj (.text) + 018afa70 00002a40 X11.obj (.text) + 018b24b0 00001640 COMPAT.obj (.text) + 018b3af0 00000210 XGFIX.obj (.text) + 018b3d00 00000450 rts.lib (.text) + 018b4150 000001a0 rts.lib (.text) + 018b42f0 00000230 rts.lib (.text) + 018b4520 00000150 rts.lib (.text) + 018b4670 00000120 rts.lib (.text) + 018b4790 00000110 rts.lib (.text) + 018b48a0 000001c0 rts.lib (.text) -.cinit 0 018b4b10 000012d0 - 018b4b10 00000050 MAIN.obj (.cinit) - 018b4b60 00001190 GAME.obj (.cinit) - 018b5cf0 00000050 SCOREDB.obj (.cinit) - 018b5d40 00000050 X11.obj (.cinit) - 018b5d90 00000050 rts.lib (.cinit) +.cinit 0 018b4a60 000012d0 + 018b4a60 00000050 MAIN.obj (.cinit) + 018b4ab0 00001190 GAME.obj (.cinit) + 018b5c40 00000050 SCOREDB.obj (.cinit) + 018b5c90 00000050 X11.obj (.cinit) + 018b5ce0 00000050 rts.lib (.cinit) .bss 0 01a00000 0001ec20 UNINITIALIZED 01a00000 00008000 ENTRY.obj (.bss) @@ -64,78 +64,78 @@ address name address name 018a0000 .data 018a0000 .text 018a0000 .text 018a0000 _start 01a08a20 _blackpf 018a0000 edata -018a3110 _cleanup_game 018a0150 _now_ms +018a3060 _cleanup_game 018a0150 _now_ms 01a083a0 _dbg_events 018a03d0 _vt_rand_seed 01a083e0 _dbg_focus 018a0420 _sleep_ms 01a083c0 _dbg_last 018a0580 _vt_poll_event 01a08380 _dbg_loops 018a0ef0 _vt_handle_event -01a08400 _dbg_rev 018a18d0 _wait_display -018b2560 _fflush 018a1910 _main -018a86b0 _game_input 018a1fb0 _init_game -018a1fb0 _init_game 018a3110 _cleanup_game -018a1910 _main 018a3300 _update -018b3db0 _memcpy 018a86b0 _game_input -018b3f50 _memmove 018af160 _read_scores -018b4200 _memset 018af4e0 _save_score -01a089c0 _monochrome 018afa70 _print_scores -018a0150 _now_ms 018afb20 _vt_root_window -01a08a00 _onlyascii 018afc00 _vt_x11_init -018afa70 _print_scores 018b03b0 _x11_clearscr -018b25d0 _putchar 018b0570 _x11_reset -01a08960 _quit 018b05b0 _x11_cursor -018b43a0 _rand 018b0610 _x11_setcolor -018af160 _read_scores 018b0730 _x11_setcursor -01a08a40 _rotstep 018b0980 _x11_ibmchar -018af4e0 _save_score 018b0e00 _term_putstr -01a08aa0 _scr 018b0fa0 _vt_x11_flush -018a0420 _sleep_ms 018b21d0 _vt_x11_term_init -018b2de0 _sprintf 018b24f0 _term_init -018b4500 _srand 018b2560 _fflush -018a0000 _start 018b25d0 _putchar -01a1cbe0 _stdout 018b2de0 _sprintf -018b45d0 _strcmp 018b3ba0 _vt_install_xg -018b4720 _strcpy 018b3db0 _memcpy -018b4840 _strlen 018b3f50 _memmove -018b4950 _strncpy 018b4200 _memset -01a1cb00 _term_clearscr 018b43a0 _rand -01a1cb40 _term_cursor 018b4500 _srand -01a08a80 _term_height 018b45d0 _strcmp -01a1cb80 _term_ibmchar 018b4720 _strcpy -018b24f0 _term_init 018b4840 _strlen -018b0e00 _term_putstr 018b4950 _strncpy -01a1cae0 _term_reset 018b4b10 cinit -01a1cb60 _term_setcolor 018b4b10 etext +01a08400 _dbg_rev 018a1820 _wait_display +018b24b0 _fflush 018a1860 _main +018a8600 _game_input 018a1f00 _init_game +018a1f00 _init_game 018a3060 _cleanup_game +018a1860 _main 018a3250 _update +018b3d00 _memcpy 018a8600 _game_input +018b3ea0 _memmove 018af0b0 _read_scores +018b4150 _memset 018af430 _save_score +01a089c0 _monochrome 018af9c0 _print_scores +018a0150 _now_ms 018afa70 _vt_root_window +01a08a00 _onlyascii 018afb50 _vt_x11_init +018af9c0 _print_scores 018b0300 _x11_clearscr +018b2520 _putchar 018b04c0 _x11_reset +01a08960 _quit 018b0500 _x11_cursor +018b42f0 _rand 018b0560 _x11_setcolor +018af0b0 _read_scores 018b0680 _x11_setcursor +01a08a40 _rotstep 018b08d0 _x11_ibmchar +018af430 _save_score 018b0d50 _term_putstr +01a08aa0 _scr 018b0ef0 _vt_x11_flush +018a0420 _sleep_ms 018b2120 _vt_x11_term_init +018b2d30 _sprintf 018b2440 _term_init +018b4450 _srand 018b24b0 _fflush +018a0000 _start 018b2520 _putchar +01a1cbe0 _stdout 018b2d30 _sprintf +018b4520 _strcmp 018b3af0 _vt_install_xg +018b4670 _strcpy 018b3d00 _memcpy +018b4790 _strlen 018b3ea0 _memmove +018b48a0 _strncpy 018b4150 _memset +01a1cb00 _term_clearscr 018b42f0 _rand +01a1cb40 _term_cursor 018b4450 _srand +01a08a80 _term_height 018b4520 _strcmp +01a1cb80 _term_ibmchar 018b4670 _strcpy +018b2440 _term_init 018b4790 _strlen +018b0d50 _term_putstr 018b48a0 _strncpy +01a1cae0 _term_reset 018b4a60 cinit +01a1cb60 _term_setcolor 018b4a60 etext 01a1cb20 _term_setcursor 01a00000 .bss 01a1cbc0 _term_type 01a08380 _dbg_loops 01a08a60 _term_width 01a083a0 _dbg_events 01a1cba0 _termenv 01a083c0 _dbg_last 01a08980 _tick_interval 01a083e0 _dbg_focus -018a3300 _update 01a08400 _dbg_rev +018a3250 _update 01a08400 _dbg_rev 01a089a0 _use_bell 01a08960 _quit 01a089e0 _use_gfxchar 01a08980 _tick_interval 01a0ce60 _username 01a089a0 _use_bell 01a1ca60 _vt_dpy 01a089c0 _monochrome 01a1caa0 _vt_gc 01a089e0 _use_gfxchar 018a0ef0 _vt_handle_event 01a08a00 _onlyascii -018b3ba0 _vt_install_xg 01a08a20 _blackpf +018b3af0 _vt_install_xg 01a08a20 _blackpf 018a0580 _vt_poll_event 01a08a40 _rotstep 018a03d0 _vt_rand_seed 01a08a60 _term_width -018afb20 _vt_root_window 01a08a80 _term_height +018afa70 _vt_root_window 01a08a80 _term_height 01a1ca80 _vt_win 01a08aa0 _scr -018b0fa0 _vt_x11_flush 01a0ce60 _username -018afc00 _vt_x11_init 01a1ca60 _vt_dpy +018b0ef0 _vt_x11_flush 01a0ce60 _username +018afb50 _vt_x11_init 01a1ca60 _vt_dpy 01a1cac0 _vt_x11_progress 01a1ca80 _vt_win -018b21d0 _vt_x11_term_init 01a1caa0 _vt_gc -018a18d0 _wait_display 01a1cac0 _vt_x11_progress -018b03b0 _x11_clearscr 01a1cae0 _term_reset -018b05b0 _x11_cursor 01a1cb00 _term_clearscr -018b0980 _x11_ibmchar 01a1cb20 _term_setcursor -018b0570 _x11_reset 01a1cb40 _term_cursor -018b0610 _x11_setcolor 01a1cb60 _term_setcolor -018b0730 _x11_setcursor 01a1cb80 _term_ibmchar -018b4b10 cinit 01a1cba0 _termenv +018b2120 _vt_x11_term_init 01a1caa0 _vt_gc +018a1820 _wait_display 01a1cac0 _vt_x11_progress +018b0300 _x11_clearscr 01a1cae0 _term_reset +018b0500 _x11_cursor 01a1cb00 _term_clearscr +018b08d0 _x11_ibmchar 01a1cb20 _term_setcursor +018b04c0 _x11_reset 01a1cb40 _term_cursor +018b0560 _x11_setcolor 01a1cb60 _term_setcolor +018b0680 _x11_setcursor 01a1cb80 _term_ibmchar +018b4a60 cinit 01a1cba0 _termenv 018a0000 edata 01a1cbc0 _term_type 01a1ec20 end 01a1cbe0 _stdout -018b4b10 etext 01a1ec20 end +018b4a60 etext 01a1ec20 end [77 symbols] diff --git a/apps/termtris/evidence/termtris_frame3300.png b/apps/termtris/evidence/termtris_frame3300.png index 54cbf26993349c5ac36bd8b266d7a82321ae8587..92302fb5c19808d1849bccf7cd06093b8cf6ba85 100644 GIT binary patch delta 249 zcmV5kJZ)9fXjt(@+Q2)c{zZOL*?V83G&B?yd z?WL>q*3rn!%zb?S1hf44uSJncyQZ;4bK1EterMPG&O41$x=I(9Yi4Hd=0KwicKVtB zO1Jm<+v*n0Y5%_Xo&EAV?=(*N;g`1Lzh!3Ti;gnK1pm94pg5&n)7YXpeM{XJpTGUo z7R@Q&1^Gs1X71=fqYU*weEw@um_C17-J&_|-xt5LUw-GE#wkDimH?j}%*?O#{S(ac z=f4(3D(#xa7R_nrzWAM8^OL*>8Iynu8U&Ce1uU}y2(&{8rmmI7y{?PslfFxB6RC?x delta 357 zcmV-r0h<2mmjSDo0gxmCk+CJ427eE#-mR?zIz~^NS&C48xz0B-Gjm4=8fB>e;qzaM zB9(T{)|SSvmer#}OPa?Q-l-5h9?!A?K(U+MNfe_P$M{N0ILTcY*2nRo7sCGcD5-hc1B(>Uda zU)qxYmYJC^I?5aq{O@Lh;*@qxV@rK=bxX7!H}lth@%h_NZPA?aU65~NX6B9#G|Eu_ z!{@&ih3WIR)h$c5`|<}atA}!!9yjyOeX#_73*GyjcN(Ys@LK|Wb}%!)*7r{^%b)*R z6sfdpE^dj|i)W7f7W(!(??g0C=_*}Zu9=y+n*)t9*y(5fD@7>ZL91IDzbYK3C(gX= z*ca01(p9=~1z=|8D~>Y91pm94pa)g&*46X%lYL8V D?`Xdw diff --git a/apps/termtris/evidence/termtris_move_3200.png b/apps/termtris/evidence/termtris_move_3200.png index 49e895aacc3eacfa0a3bf4796b99b28054c2ab46..b05ec08048f8ecba398a27109a9a12ace133a0ce 100644 GIT binary patch delta 10729 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 delta 10855 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 diff --git a/apps/termtris/evidence/termtris_panels_3200.png b/apps/termtris/evidence/termtris_panels_3200.png index 87af787c4336b95c006a3b36f829c8485c31c2b5..0e67bdef2ce76e0fe832a612762286c675334328 100644 GIT binary patch delta 13985 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 CrC7=U literal 22474 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 diff --git a/apps/termtris/evidence/termtris_quit_3200.png b/apps/termtris/evidence/termtris_quit_3200.png index decc0bddbecac0b273b5d5762c37e9d0ac3e5307..24bcb9b5802a35f676b56651afa278dfedc83624 100644 GIT binary patch literal 19441 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 literal 19497 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 PQ$SeQ94a_)`iK7uI6*fc diff --git a/apps/termtris/src/vt1200/main.c b/apps/termtris/src/vt1200/main.c index f4500eb..a440aa7 100644 --- a/apps/termtris/src/vt1200/main.c +++ b/apps/termtris/src/vt1200/main.c @@ -112,8 +112,6 @@ void vt_handle_event(void) VT_XGETFOCUS(vt_dpy, &fw, &rv); dbg_focus = fw; dbg_rev = (vt_u32)rv; - } else if(evbuf[0] == 12) { /* Expose */ - game_input('`'); } else if(evbuf[0] == 9) { /* FocusIn */ focused = 1; if(vt_paused) { /* resume only what we paused */ diff --git a/apps/termtris/src/vt1200/x11.c b/apps/termtris/src/vt1200/x11.c index 54139f2..9d89af5 100644 --- a/apps/termtris/src/vt1200/x11.c +++ b/apps/termtris/src/vt1200/x11.c @@ -64,7 +64,7 @@ int vt_x11_init(void) if(!vt_win) return -1; vt_x11_progress = 14; - VT_XSELECT(vt_dpy, vt_win, 0x22800FUL); /* + ExposureMask */ + VT_XSELECT(vt_dpy, vt_win, 0x22000FUL); vt_gc = VT_XGC(vt_dpy, vt_win, 0, 0); if(!vt_gc) return -1; diff --git a/harness/mame/TERMTRIS_REPORT.md b/harness/mame/TERMTRIS_REPORT.md index 88a7688..ba7c056 100644 --- a/harness/mame/TERMTRIS_REPORT.md +++ b/harness/mame/TERMTRIS_REPORT.md @@ -75,7 +75,9 @@ game's own `update()` picks the tick (887 ms at level 0). `KeyPress` → `XLookupString` → lower-cased letters to `game_input()`; arrows as the game's CSI codes (`0x9b` + `A`/`B`/`C`/`D`), which it maps back to -`w`/`s`/`d`/`a`; `0x7F` is Backspace/Delete; `Expose` forces a full redraw. +`w`/`s`/`d`/`a`; `0x7F` is Backspace/Delete. `ExposureMask` is not selected: +a map-time `Expose` fires the game's full-redraw before it has a current piece, +which draws a bogus piece over the top row (blank border plus stray `X` tiles). ## Reproduce @@ -94,9 +96,9 @@ The run is `VT1200_SKIP_LEVEL1=1 LOADER_AT=2500` with the loader payload at bit Last full acceptance run: ``` -move DIAG: loops=348 events=19 focus=00400001 quit=0 -panels DIAG: loops=338 events=13 focus=00400001 quit=0 -quit DIAG: loops=292 events=11 focus=00400001 quit=1 +move DIAG: loops=354 events=18 focus=00400001 quit=0 +panels DIAG: loops=346 events=12 focus=00400001 quit=0 +quit DIAG: loops=300 events=10 focus=00400001 quit=1 ``` `focus=00400001` is the termtris window, and `quit=1` is the game's global after