Skip to content

0.2.2: FX68K becomes the shipping CPU - #6

Merged
thekoalakoa merged 3 commits into
masterfrom
release/0.2.2
Sep 9, 2026
Merged

thekoalakoa merged 3 commits into
masterfrom
release/0.2.2

Conversation

@thekoalakoa

@thekoalakoa thekoalakoa commented Sep 9, 2026 •

Copy link
Copy Markdown
Owner

Version bump, changelog and the packaged release for 0.2.2.

The bitstream shipped in the release zip is 991C395424F46CC7A6EA2AFBF0D953FF — the build that passed on hardware (boot, character-select, elevator, ship bar clean in menu and levels, Tug-room foreground bounce gone). It is published as tested rather than rebuilt, so there is no CI fit to re-verify.

  • README.md — 0.2.2 changelog, and the fit figure corrected from 98% to 88% ALM
  • version bumped to 0.2.2 across core.json and gateware.json via scripts/bump_version.sh
  • shell scripts marked executable

That last one is incidental but worth noting: every .sh has been mode 100644 since the baseline import, because core.filemode is off on the Windows checkout they were committed from, and build.yml invokes them directly. Every CI compile job died with Permission denied (exit 126) before reaching Quartus, which is why release.yml has never completed and 0.1.0 through 0.2.1 were all published outside it. This removes the first blocker; vars.QUARTUS_IMAGE is still unset, so CI cannot fit until that is configured.

thekoalakoa and others added 3 commits September 7, 2026 23:36
The user reports that in the Tug room the foreground bounces left and right
while the stage, background and enemies are fine - "as if a layer is glitching".
That is a much smaller target than "sprites and logos flicker": with the game in
full-screen scroll mode a plane's horizontal position is ONE WORD read at the top
of the frame.

The register census already fixed the surrounding facts for that scene ($0B=0x00
written once, $0D=0x3D so the hscroll table is at 0xF400, $11/$0C/$02 constant
vblank housekeeping, $0A written 6.26x per frame as a HINT-driven raster chain),
but it could not answer this one: scroll VALUES go through the DATA port, which
paprium_vdplog.bin does not record. This closes that gap.

The logger filters to the only four words that can move a plane in full-screen
mode - hscroll table +0/+2 and VSRAM +0/+2 - so the capture stays small over
thousands of frames. The decoder looks for the three ways the word can be wrong:
a missed frame, a duplicated write, and the bounce signature proper, which is a
stall followed by a double-step catch-up.

GPGX does not exhibit the bounce, so this measures the CORRECT baseline: whatever
it shows is what the hardware has to reproduce. A clean result kills the whole
scroll-write family and moves the search to when the write is admitted.

Both scripts verified against synthetic input with known defects - the first
version of the detector missed injected bounces and printed frame numbers in the
raster column, and neither would have been visible on real data.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Bumps every package to 0.2.2 and records the change in the README. The
core now runs FX68K instead of the gate-level 68000 netlist, which takes
the fit from 98% to 88% ALM; that headroom is what the live synthesiser
needs. Nothing a player sees or hears should differ.

Also marks the shell scripts executable. They have been mode 100644
since the baseline import, because core.filemode is off on the Windows
checkout they were committed from, and build.yml invokes them directly
(scripts/check_packages.sh, scripts/build.sh, ...). Every CI compile job
therefore died with "Permission denied", exit 126, before reaching
Quartus. That is why release.yml has never completed a run and why
0.1.0, 0.2.0 and 0.2.1 were all published outside it.

Note the CI release path is still not usable after this: vars.QUARTUS_IMAGE
is unset on the repository, so the fit step has no Quartus image to run in.
This commit removes the first blocker, not the last.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@thekoalakoa
thekoalakoa merged commit f903827 into master Sep 9, 2026
@thekoalakoa
thekoalakoa deleted the release/0.2.2 branch September 10, 2026 01:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant