L'utente ha modificato nuovamente l'immagine claimed.png (160x144).
Riquantizzata a 2-bit palette GB e ricompilata. La schermata di morte
mostra la versione aggiornata.
L'utente ha ricaricato l'immagine claimed.png a 160x144 (versione
originale, non croppata). Riquantizzata a 2-bit palette GB e ricompilata.
La schermata di morte ora mostra l'immagine intera invece della versione
128x96 centrata. Verificato via PyBoy: ROM 32KB, schermata mostra
l'arte completa.
- assets/claimed.png (160x144, 2-bit GB) usata come schermata di morte al
posto dello schermo nero. Il tile data e' caricato con set_bkg_data
e la mappa 20x18 con set_bkg_tiles; il GAME OVER metasprite resta
sovrapposto sopra l'immagine.
- Going Deeper (game_over==2) ora usa una schermata testuale col font
IBM ('GOING DEEPER / LEVEL N') invece dell'immagine next_level.png.
Necessario per ridurre l'occupazione ROM (la ROM era >32KB con
title_bg + next_level + claimed + maze + tutto il resto) e far
entrare la schermata claimed. Rimosso next_level.c/.h e l'asset.
- engine.c: nuovi helper ending_putdigit per scrivere una cifra;
game_over==2/3 entrambi usano il font IBM per le schermate di
transizione.
- Makefile: rimosso next_level da SRCS e dal clean; aggiunto
claimed.png/png2asset/-c claimed.c.
Verificato via PyBoy: schermata di morte mostra l'immagine claimed
(sfondo nero + carta 128x96 centrata), going deeper mostra il testo
'GOING DEEPER / LEVEL 2'.
build/test_finale.gb mostra immediatamente la schermata finale (testo
tragico + musica del finale su tutti e 3 i canali) all'avvio, senza
dover completare gli 8 livelli. Premi START per uscire.
- src/test_finale_render.c: setup palette invertita, font IBM,
scrittura del messaggio nel map_buffer, init audio + VBL +
game_over=3/timer=0 per far partire il sequencer del finale.
- Makefile: nuovo target build/test_finale.gb (aggiunto ad all).
The finale text is now 'YOUR TORCH HAS / RUN OUT, / YOU ARE TRAPPED. /
JUST ANOTHER SCREAM / FROM THE DARK. / GAME OVER' — matching the
tragic dark theme of the game. BGP inverted for black background with
white text.
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.