scripts/render_finale_wav.py estrae le sequenze CH1+CH2 dal sorgente
sound.c, le converte in frequenze (formula Game Boy: 131072/(2048-value)),
sintetizza 3 tracce (melodia onda quadra + basso + rintocchi LFSR) con
envelope del Game Boy, le mixa e scrive un file WAV 16-bit mono 22050Hz.
Output: 44.8 secondi (192 step x 0.233s), un loop completo del lamento
tragico in D minore.
Uso: python3 scripts/render_finale_wav.py [output.wav]
Run (B + direction):
- player_logic.c: while holding B + direction with stamina >= 10, each tile
takes 8 frames instead of 16 (move_progress += 2, LERP >>4 unchanged) and
costs 10 stamina per tile. DAS_REPEAT_RUN=2 chains tiles fluidly.
- Falls back silently to normal walk when stamina < 10.
Level progression:
- New global 'level' (starts at 1). title->game resets to 1; reaching the
hatch (victory/Going Deeper) + START increments before engine_init (new
maze); defeat + START resets to 1.
- Top-left HUD 'L<n>' via 3 sprites (OAM 23-25) from new level.png asset
(glyphs L, 0-9), generated by scripts/generate_level.py and converted
with png2asset -keep_duplicate_tiles for predictable tile ordering.
- VRAM base aligned to an EVEN index (8x16 hardware ignores tile LSB) and
placed after the stamina load claim to avoid the shared BG tile block.
- update_level_display() called every frame; hides during game over/title.
Docs: README, doc/gameplay.md and the technical report updated.