Repository navigation
0.2.2: FX68K becomes the shipping CPU - #6
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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% ALMcore.jsonandgateware.jsonviascripts/bump_version.shThat last one is incidental but worth noting: every
.shhas been mode 100644 since the baseline import, becausecore.filemodeis off on the Windows checkout they were committed from, andbuild.ymlinvokes them directly. Every CI compile job died withPermission denied(exit 126) before reaching Quartus, which is whyrelease.ymlhas never completed and 0.1.0 through 0.2.1 were all published outside it. This removes the first blocker;vars.QUARTUS_IMAGEis still unset, so CI cannot fit until that is configured.