Commit Graph
7 Commits
Author SHA1 Message Date
jurjen.ladeniusandClaude Opus 4.8 1c0636e8ff Add per-screen FM music (lVGM / MSX-Music)
Each screen now plays its own looping MSX-Music (YM2413/OPLL) track:
title, hints, gameplay, and victory. Tracks are lVGM files embedded in
banked segments 26-29 (one per segment, each < 8KB so it never crosses a
boundary); segments 30-31 remain free.

- project_config.js: add psg/msx-music/vgm/lvgm_player modules; set
  EmulMSXMusic so ./build.sh run gives openMSX the FM-PAC (-ext fmpac).
- msxgl_config.h: enable LVGM_USE_PSG/MSXMUSIC (rest off), PSG_DIRECT.
- mazegame.c: MSXMusic_Initialize() once at boot; PlayTrack()/PlayFrame()
  bracket every player call with a bank-2 save/restore so music never
  disturbs the tile/sprite banking; a PlayFrame() follows every Halt() in
  the wait/animation loops (ScrollDraw, input loops now frame-synced,
  WaitKeySequence) to advance each track at 60 Hz. Logo stays silent.
- CLAUDE.md: document the music pipeline, banking protocol, and segments.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 20:43:18 +02:00
jurjen.ladeniusandClaude Opus 4.8 7c24daaf14 Eliminate per-move scroll flash with wrap-around (torus) scrolling
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>
2026-07-01 16:02:39 +02:00
jurjen.ladeniusandClaude Opus 4.8 d2f9b35356 Inset the logo's lower-right stroke from the bars' right edge
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>
2026-06-30 00:02:33 +02:00
jurjen.ladeniusandClaude Opus 4.8 9b554187af Restore Japanese-glyph logo shape with evened bars
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>
2026-06-29 23:56:22 +02:00
jurjen.ladeniusandClaude Opus 4.8 961aa89196 Make FH logo stroke thickness uniform
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>
2026-06-29 23:44:35 +02:00
jurjen.ladeniusandClaude Opus 4.8 cdc7bc545d Fix MSX2+ horizontal scroll and rework FH logo animation
- 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>
2026-06-29 23:40:09 +02:00
jurjen.ladeniusandClaude Opus 4.8 f3340e86c6 Initial commit: MSXgl 1.4.1 with mazegame project
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 22:50:20 +02:00