Movement previously ended each step by blanking the display, resetting the
scroll offset to 0, bulk-HMMM-shifting the whole viewport back to a canonical
origin, and pasting the new strip. That blank was visible as a flash on every
move.
Treat the 256x256 VRAM page as a torus instead. New g_BaseX/g_BaseY hold the
resting hardware scroll offset (a multiple of 64); a move animates the scroll
register from base to base +/- 64 and fills the newly exposed edge into the
VRAM cells that scroll off the opposite side, then keeps the new offset as the
resting base. No offset reset, no bulk shift, no strip paste, no blank -- so
no flash. All fill targets are base-relative; at base 0 they reduce exactly to
the previous code, and the fill timing is base-invariant.
Route all gameplay VRAM drawing (tiles, sprite, compositors, cat-sense arrow)
through the base via a new WriteVV helper that splits writes at the 256-column
wrap. The minimap overlay draws at absolute coords, so it zeroes the offset
while shown and restores the base on exit.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The leg sat flush against the middle bar's right end, looking tacked on.
Move it left so both bars overhang it on the right and it crosses the
middle bar like a real glyph stroke. The leg/mid-bar crossing gets its
own palette entry (pal8), lit during both the mid bar's and the leg's
fade so neither shows a gap.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The uniform-thickness pass had dropped the bars' left overhangs, turning
the logo into a pinwheel (swastika-like). Restore the original
firehawk.sc5 layout — a vertical spine crossed by two bars that overhang
it on both sides, plus a hanging lower-right stroke — but even out the
weights: both bars and the leg are a uniform 6px, with the spine slightly
thicker (8px) to keep the original glyph's character.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Give every stroke a 6px thickness (stem and right leg width 6, both
crossbars height 6) instead of the previous mix (stem 10, leg 4,
bars 4-5), and recenter the logo. The F+H now reads evenly.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Enable single-page horizontal scrolling (R#25 SP2=1) so the scroll
offset wraps within the 256px page. Without it the V9958 default
(two-page) scroll revealed the wrong VRAM page, making new tiles
appear on the opposite edge during horizontal moves.
- Replace the rectangle-approximated FH logo with strokes matching the
original firehawk.sc5 artwork. The F+H is drawn as partitioned fills
(crossbar arms, stem, right leg) with dedicated palette entries for
the two stem/crossbar crossings, so each horizontal then each
vertical shimmers in and out gap-free before the whole logo holds.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>