Session 1: hardware research, content measurement, codec decision, MAME harness

Verified GVRAM is one word-access per pixel in ALL color modes; chose 256-color
256x192 with movem.l bursts (page 1 sacrificed as double-buffer).

Measured 8 scenes from the Blu-ray source: blit costs under 8% of the 12fps
cycle budget, so I/O is the bottleneck, not CPU. Naive delta+RLE reaches only
3.2:1 (365 KB/s, 470MB) -> decision to use 4x4 vector quantization (~30 KB/s).

"Shot on twos" assumption failed: the transfer has zero duplicate frames, so
12fps requires explicit decimation.

Documents three false measurement results and their root causes (per-frame
Floyd-Steinberg dithering, temporal denoise, exact-match dedupe on noisy source).

MAME Lua injection harness works and is reusable for cycle-cost measurement;
the IOCS _B_READ disk benchmark is blocked returning -1.

Claude-Session: https://claude.ai/code/session_01194oWYW8DQXK1SZ2DnChW6
This commit is contained in:
reala-misaki
2026-08-23 11:23:49 -07:00
commit 65112b9305
19 changed files with 842 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
FLAG = $18000
RESULT = $18100
BUF = $20000
org $10000
start:
move.l #1,FLAG.l
lea RESULT,a2
moveq #0,d4
outer:
move.l d4,d1 ; encoding A: PDA in bits 31-24
add.l #$80,d1
swap d1
lsl.l #8,d1
bsr.s doread
move.l d0,(a2)+
move.l d4,d1 ; encoding B: PDA in bits 15-8
add.l #$80,d1
lsl.l #8,d1
bsr.s doread
move.l d0,(a2)+
addq.l #1,d4
cmpi.l #16,d4
bne.s outer
move.l #$FF,FLAG.l
stop: bra.s stop
doread:
movem.l d2-d7/a2-a6,-(sp)
moveq #$46,d0
moveq #0,d2
move.l #256,d3
lea BUF,a1
trap #15
movem.l (sp)+,d2-d7/a2-a6
rts