Build 31153138. Fits at 98 % ALMs with no negative slack on any clock, and
runs on hardware.
Fixed
- The design fits again. Four fits failed on LAB capacity first; the cause
was that an MLAB is a LAB, so the MLAB-heavy sprite stores were the real
ceiling while ALM count still read under capacity.
- sl_y moved from MLAB to M10K with a registered read: 3 M10Ks instead of
64 MLABs, which is what closed the last 6-LAB gap.
- Timing met. The HDMI framework clock went from -0.329 ns to +0.035 ns.
No clock has negative slack.
- Sprite record store 12288 -> 10240 per bank. The old size rested on a peak
measured in rows, before records became runs. Measured now: Ray Force 6517,
Elevator Action Returns 8645, both 0 dropped; confirmed on hardware at
6517 of 10240.
- The MRAs declared nvram size 128 while the core expected 256, so the high
score half never crossed the ioctl. Ray Force and Elevator Action Returns
MRAs now declare 256.
Added
- High-score SAVING, for both games, using MAME's hiscore.dat tables. Scores
are captured into the upper half of the .nvm on an OSD-triggered save.
- Bubble Bobble II runs on hardware with no RTL change -- an MRA and a config
byte, which is what the universal F3 map was built for.
- MRAs for Bubble Memories and Puzzle Bobble 2 (both experimental).
- extend=0 (eight 32x32 playfields) implemented in both the reference model
and the RTL, verified against MAME, but TIED OFF: it needs ~116 LABs the
device does not have. One line restores it when the budget allows.
- The reference model gained a runtime F3_EXTEND flag; Puzzle Bobble 2 frame
1800 renders pixel-identical to MAME with it.
- PREP-BUBBLE.md: measured expectations for both Bubble games and a costed
roadmap of which of the 35 available F3 sets need what.
Known problems
- High-score RESTORING does not work. Saving is reliable; injection never
lands, even with a valid file and correct guards. Diagnosis needs
instrumentation rather than another hypothesis.
- SPRLINE : LATE still reports FAIL. The picture is visually clean in busy
scenes, so it remains a counter question, not a rendering one.
- Puzzle Bobble 2 loads but its playfield is truncated, pending extend=0.
- The reference model is not exact for the Bubble games (3 of 10 frames
pixel-identical); the gap is in the sprite block/multi path that Ray Force
barely exercises.