Commit Graph
14 Commits
Author SHA1 Message Date
opencode 8df2320d6d docs(termtris): re-run acceptance at the VR319 default
The branch's evidence was captured on an older MAME binary whose frames
were VR150 (1024x864).  Rebuild MAME from this tree's driver and re-run
verify.sh --skip-mame at the VR319 default (1280x1024 active).

All six tests pass.  Event counts, focus=00400001, tick=887 and quit=1
are unchanged; only the main-loop counts moved with the frame cadence:
move 650, panels 648, quit 555 (was 354/346/300).  The evidence PNGs are
regenerated at 1280x1024.  Record the numbers and the geometry change in
VT1200.md, TERMTRIS_REPORT.md and HANDOFF.md, and note the qemu-i386
toolchain fallback.
2026-11-12 05:56:56 +00:00
opencode ce40582e9d fix(termtris): run the 2ine loader under qemu-i386 when the kernel lacks 16-bit LDT
The r5.01 tools are 16-bit OS/2 NE programs.  A Linux kernel built
without CONFIG_X86_16BIT (this box's cloud kernel) rejects modify_ldt
for 16-bit segments, so lx_loader aborts at its first segment even
though it is a 32-bit binary.  Probe for that failure and use
qemu-i386, whose linux-user modify_ldt supports 16-bit segments.
LX_RUNNER overrides the choice.  The toolchain output is unchanged:
the build completes in ~10 s and the COFF differs only in its header
timestamp.
2026-11-12 05:35:30 +00:00
opencode.energia.arti.ee 5dd01629b9 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.
2026-11-12 05:19:52 +00:00
opencode.energia.arti.ee a12fb47d5f chore(termtris): handoff script and notes for the next machine
apps/termtris/verify.sh runs the whole acceptance: ROM md5 guard, 2ine
check, MAME build (--skip-mame to reuse one), the six tests, the
acceptance summary and the evidence list, all logged under build/.

HANDOFF.md states what is done, what is still open (the docs' figures and
screenshots predate the VR319 default because the installed MAME binary is
the 30 Oct build), the expected outputs, and the failure modes already
diagnosed. Refresh the acceptance numbers from the verify run:
348/19, 338/13, 292/11.
2026-11-12 05:14:33 +00:00
opencode.energia.arti.ee be5b323f5d docs(termtris): build the harness binary before reproducing evidence 2026-11-11 17:59:30 +00:00
opencode.energia.arti.ee 7a2cef56ad fix(termtris): review pass -- seed, focus/pause, expose, test assertions
- seed the game from the raw 0x1E93C0 counter (now_ms() returns 0 on its
  first call, so the old seed was always zero)
- track pause ourselves: FocusOut pauses once, FocusIn resumes only what we
  paused (game_input('p') is a toggle)
- select ExposureMask so the Expose redraw path actually fires
- play.sh/play_keys.sh rebuild the COFF (OUTNAME=termtris) and assert the
  run: status=0, tick>0, loops/events/quit per mode; render.sh asserts the
  renderer finished; map symbol lookup is column-order independent
- run.sh passes -lightgun -lightgun_device mouse so the pointer drives the
  tablet
- docs: link map addresses, monochrome/reverse wording, honest caption and
  limits text

Verified here: play.sh and input.sh pass. Still open: the MAME driver in the
tree is newer than the installed binary (Oct 30 build, VR150-era geometry),
so the acceptance suite must be re-run after a rebuild.
2026-11-11 17:59:16 +00:00
opencode.energia.arti.ee eb896f7b8c test(termtris): assert the play acceptance results; drop the dead drain hook 2026-11-03 20:11:57 +00:00
opencode.energia.arti.ee 64bd781aa6 chore(termtris): stop tracking per-test build outputs 2026-11-03 20:07:41 +00:00
opencode.energia.arti.ee 3e2dddeb6a docs(termtris): port report, run wrapper and harness write-up 2026-11-03 20:07:35 +00:00
opencode.energia.arti.ee 41d3cecd49 feat(termtris): run the game on the VT1200 X server
Board, score panel, preview and help/scores toggles draw through the
ROM Xlib cell grid; keys arrive as real X KeyPress events. The backend
is now monochrome (the VT1200 raster is one bit deep) and flushes whole
rows so the in-machine server can drain the request stream.
2026-11-03 20:03:47 +00:00
opencode.energia.arti.ee c1945cfc73 feat(termtris): X11 key map, millisecond clock and main loop 2026-11-03 19:03:14 +00:00
opencode.energia.arti.ee 264b53a6a0 feat(termtris): 80x24 cell-grid X11 renderer (6x13 cells) 2026-11-03 19:00:42 +00:00
opencode.energia.arti.ee a8041818bb feat(termtris): compat sprintf/stdio for the TI r5.01 runtime 2026-11-03 18:51:22 +00:00
opencode.energia.arti.ee a8612681ba feat(termtris): vendor source and VT1200 Xlib XG smoke test 2026-11-03 18:49:44 +00:00