From d75a44c2d19da9db88a19ed712c39a09e207b32a Mon Sep 17 00:00:00 2001 From: Matteo Benedetto Date: Thu, 25 Jun 2026 22:16:28 +0200 Subject: [PATCH] Aggiungi schermata istruzioni testuale (font IBM) Schermata istruzioni mostrata all'inizio del livello 1, chiudibile con B, ri-apribile in gioco con SELECT. Testo con font IBM (stesso pattern del finale game_over==3 e della sconfitta game_over==1). Contenuto: titolo, obiettivo (find the hatch), controlli (DPAD walk, A jump abyss, B run), istruzioni di chiusura (press B, select help). Per fare spazio: rimosso claimed.png (schermata di morte ora testuale con lo stesso font, stesso pattern del finale). --- .gitignore | 1 + Makefile | 4 +- src/claimed.c | 813 -------------------------------------------------- src/claimed.h | 27 -- src/engine.c | 76 ++++- src/globals.c | 4 +- src/globals.h | 7 + 7 files changed, 80 insertions(+), 852 deletions(-) delete mode 100644 src/claimed.c delete mode 100644 src/claimed.h diff --git a/.gitignore b/.gitignore index e9209ed..3280f6f 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ assets/finale_music.txt # Python caches __pycache__/ *.pyc +assets/claimed.png diff --git a/Makefile b/Makefile index c64cccf..5edec25 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ SCRIPTS_DIR = scripts BUILD_DIR = build # C source files -SRCS = $(SRC_DIR)/main.c $(SRC_DIR)/engine.c $(SRC_DIR)/globals.c $(SRC_DIR)/maze.c $(SRC_DIR)/sound.c $(SRC_DIR)/render.c $(SRC_DIR)/player_logic.c $(SRC_DIR)/enemy_logic.c $(SRC_DIR)/tiles.c $(SRC_DIR)/player.c $(SRC_DIR)/enemy.c $(SRC_DIR)/gameover.c $(SRC_DIR)/stamina.c $(SRC_DIR)/level.c $(SRC_DIR)/claimed.c $(SRC_DIR)/title_bg.c +SRCS = $(SRC_DIR)/main.c $(SRC_DIR)/engine.c $(SRC_DIR)/globals.c $(SRC_DIR)/maze.c $(SRC_DIR)/sound.c $(SRC_DIR)/render.c $(SRC_DIR)/player_logic.c $(SRC_DIR)/enemy_logic.c $(SRC_DIR)/tiles.c $(SRC_DIR)/player.c $(SRC_DIR)/enemy.c $(SRC_DIR)/gameover.c $(SRC_DIR)/stamina.c $(SRC_DIR)/level.c $(SRC_DIR)/title_bg.c all: $(BUILD_DIR)/hello_iso.gb $(BUILD_DIR)/test_gameover.gb $(BUILD_DIR)/test_finale.gb @@ -29,7 +29,6 @@ generate_c_assets: generate_images $(PNG2ASSET) $(ASSETS_DIR)/stamina.png -c $(SRC_DIR)/stamina.c -bpp 2 -noflip -keep_palette_order $(PNG2ASSET) $(ASSETS_DIR)/level.png -c $(SRC_DIR)/level.c -sw 8 -sh 16 -bpp 2 -noflip -keep_palette_order -keep_duplicate_tiles $(PNG2ASSET) $(ASSETS_DIR)/title_bg.png -c $(SRC_DIR)/title_bg.c -map -bpp 2 -noflip -keep_palette_order -max_palettes 1 - $(PNG2ASSET) $(ASSETS_DIR)/claimed.png -c $(SRC_DIR)/claimed.c -map -bpp 2 -noflip -max_palettes 1 # Main ROM target $(BUILD_DIR)/hello_iso.gb: generate_c_assets $(SRCS) @@ -53,5 +52,4 @@ clean: rm -f $(SRC_DIR)/gameover.c $(SRC_DIR)/gameover.h rm -f $(SRC_DIR)/stamina.c $(SRC_DIR)/stamina.h rm -f $(SRC_DIR)/level.c $(SRC_DIR)/level.h - rm -f $(SRC_DIR)/claimed.c $(SRC_DIR)/claimed.h rm -f $(SRC_DIR)/title_bg.c $(SRC_DIR)/title_bg.h diff --git a/src/claimed.c b/src/claimed.c deleted file mode 100644 index 6acd57c..0000000 --- a/src/claimed.c +++ /dev/null @@ -1,813 +0,0 @@ -//AUTOGENERATED FILE FROM png2asset - -#include -#include -#include - -BANKREF(claimed) - -const palette_color_t claimed_palettes[4] = { - RGB8(224,248,207), RGB8(134,192,108), RGB8( 48,104, 80), RGB8( 7, 24, 33) - -}; - -const uint8_t claimed_tiles[3104] = { - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x83,0x81,0xe7,0xef, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x66,0x74,0x66,0x75, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x0f,0x1f,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xe0,0xf1,0xee,0xf6, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xe3,0xf7,0x73,0xeb, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x83,0x86,0xbb,0xba, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x67,0xef,0x4f,0xdf, - 0xe7,0xef,0xe7,0xef, - 0xe7,0xef,0xe7,0xef, - 0xe7,0xef,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x66,0x75,0x06,0x04, - 0x66,0x75,0x67,0x74, - 0x66,0x74,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x1f,0x1f, - 0xff,0xff,0xff,0xff, - 0x0f,0x1f,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xee,0xf7,0xee,0xf7, - 0xee,0xf7,0xec,0xf6, - 0xe0,0xf1,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xeb,0x6b,0x5b,0x6d, - 0xc1,0x41,0x5c,0xdd, - 0xfd,0x9e,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xb3,0xba,0x83,0x86, - 0xbf,0xa6,0xb3,0xb6, - 0x3b,0xba,0x7f,0xff, - 0xbf,0xff,0xbf,0xff, - 0x1f,0xbf,0x1f,0x3f, - 0xdf,0x5f,0x4f,0xef, - 0x7f,0xe7,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x67,0x77, - 0x66,0x77,0x66,0x76, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x78,0x3c, - 0xbb,0x3b,0xdb,0xb9, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x3f,0x7f, - 0xbf,0xbf,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xf3,0xe1, - 0xfc,0xcd,0xcf,0xdf, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x9f,0xbf, - 0x9e,0xbf,0x9e,0xbf, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xbf,0xff,0x3e,0x9c, - 0xdf,0x1f,0x2f,0x5f, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xfd,0xff, - 0xf3,0xff,0x2b,0x13, - 0x59,0x73,0x3f,0x70, - 0xbf,0xff,0x7f,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x60,0x20, - 0x6f,0x2f,0xef,0x2f, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xc7,0xc3, - 0x9f,0xd9,0x99,0xdd, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xfc,0xfe, - 0xff,0xfe,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xe6,0xec, - 0xd9,0x6d,0x1f,0x59, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x77,0x37, - 0x97,0xb7,0xb7,0xd7, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x7f,0x7f, - 0x7f,0x7f,0x7f,0x7f, - 0x06,0x06,0x66,0x74, - 0x65,0x75,0x61,0x75, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xde,0xdc,0x1f,0x1f, - 0xfb,0xcb,0xe8,0xec, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x3f,0x7f,0xbf,0xbf, - 0xbf,0xbf,0x7f,0x3f, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xcf,0xdf,0xcf,0xdf, - 0xce,0xed,0xf3,0xe1, - 0xef,0xff,0xef,0xff, - 0xef,0xff,0xef,0xff, - 0x9e,0xbf,0x1d,0xbe, - 0x1c,0xbe,0x00,0x82, - 0x7d,0xff,0x7d,0xff, - 0x3d,0xff,0xbd,0xff, - 0x6f,0x6f,0x0f,0x0f, - 0x7e,0xe7,0xe6,0xf4, - 0xfe,0xff,0xfe,0xff, - 0xfc,0xff,0xf9,0xff, - 0x78,0x74,0x79,0x76, - 0x7a,0x77,0x3a,0x17, - 0xf9,0xff,0xfb,0xff, - 0xf3,0xff,0xf7,0xff, - 0x21,0xa0,0x2f,0xaf, - 0x2f,0xaf,0x60,0xa0, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x9d,0xdd,0x99,0xdd, - 0x9f,0xd9,0x07,0xc3, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x1b,0xb9,0xbf,0xb9, - 0xb9,0xbd,0xbe,0xbc, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x97,0xd7,0xb7,0xd7, - 0x92,0xb7,0x70,0x38, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x7f,0x7f,0x7f,0x7f, - 0x7f,0x7f,0x7f,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xe7,0xff,0xf3,0xff, - 0xb9,0xff,0xbc,0xff, - 0xbe,0xff,0xdf,0xff, - 0xf7,0xff,0xff,0xff, - 0x9f,0xff,0xdc,0xff, - 0xcd,0xff,0xed,0xff, - 0xed,0xff,0x25,0xff, - 0xb2,0xff,0x90,0xff, - 0xdd,0xff,0x9d,0xff, - 0x9d,0xff,0x3b,0xff, - 0x73,0xff,0x63,0xff, - 0x43,0xff,0xc7,0xff, - 0xf7,0xff,0xe7,0xff, - 0xef,0xff,0xdf,0xff, - 0xff,0xff,0xde,0xff, - 0xfd,0xff,0xfb,0xff, - 0xff,0xff,0xff,0xff, - 0xdf,0xff,0xbf,0xff, - 0x7f,0xff,0xff,0xff, - 0xff,0xff,0xfe,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xfd,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x7f,0xff,0xff,0xff, - 0x89,0xff,0x8f,0xff, - 0xef,0xff,0xf7,0xff, - 0xdb,0xff,0xef,0xff, - 0xb7,0xff,0x9f,0xff, - 0x8d,0xff,0x99,0xff, - 0x15,0xfb,0x31,0xf7, - 0xfb,0xe7,0xfd,0xff, - 0xf9,0xff,0xf3,0xff, - 0xef,0xff,0xdf,0xff, - 0x9f,0xff,0x3f,0xff, - 0x7f,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xfe,0xff,0xfe,0xff, - 0xff,0xff,0xf7,0xff, - 0xe3,0xff,0xe0,0xff, - 0xec,0xff,0xf6,0xff, - 0x7f,0xff,0x7f,0xff, - 0x7f,0xff,0x3f,0xff, - 0xbf,0xff,0x9f,0xff, - 0xff,0xff,0x7f,0xff, - 0xfe,0xff,0xf8,0xff, - 0xff,0xff,0xfa,0xfa, - 0xfa,0xfa,0xfd,0xfd, - 0xfd,0xfd,0xff,0xff, - 0x9e,0xfe,0x3d,0xfd, - 0xdd,0xd5,0xa7,0xb7, - 0xb7,0xb7,0xf7,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xef,0xff, - 0xef,0xff,0xef,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xfd,0xff, - 0xfc,0xff,0xfc,0xff, - 0xfe,0xff,0xfe,0xff, - 0x7f,0xff,0x9f,0xff, - 0xff,0xff,0xf3,0xff, - 0xf3,0xff,0x7f,0xff, - 0x37,0xff,0x37,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xfd,0xfd, - 0xfe,0xfc,0xfe,0xf6, - 0xfe,0xf3,0xfd,0xd9, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xdf,0xdf, - 0x7f,0xdf,0x1f,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xdf,0xdf, - 0xcb,0xcf,0xea,0xea, - 0xff,0xff,0xf0,0xff, - 0xbf,0xbf,0xdf,0xdf, - 0x7f,0x5f,0x6f,0x7f, - 0x2f,0xbf,0xcf,0xff, - 0x1f,0xff,0x7f,0xff, - 0xfe,0xff,0xfe,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x37,0xff,0x1f,0xff, - 0x6f,0xff,0xbf,0xff, - 0xff,0xff,0xf3,0xff, - 0x87,0xff,0x0e,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xdf,0xff, - 0xdf,0xff,0xbf,0xff, - 0x3f,0xff,0x7f,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xfd,0xff,0xff,0xff, - 0xee,0xcd,0xfe,0xe2, - 0xfc,0xf8,0xfc,0xff, - 0xfe,0xff,0xff,0xfe, - 0xfe,0xfe,0xff,0xf8, - 0x2f,0x1f,0x2b,0x47, - 0x45,0xa3,0x24,0x83, - 0x01,0x1c,0x50,0x3c, - 0x92,0x7c,0xfe,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x3f,0xff, - 0x97,0x7f,0x97,0x7f, - 0x57,0x3f,0x27,0xff, - 0xff,0xff,0xfe,0xff, - 0xfc,0xff,0xfc,0xff, - 0xf9,0xff,0xf9,0xff, - 0xf0,0xff,0xf0,0xff, - 0x1e,0xff,0x1b,0xff, - 0x67,0xff,0xef,0xff, - 0xbf,0xff,0x7f,0xff, - 0x7f,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xfe,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xef,0xff, - 0x5f,0xff,0x0d,0xfe, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x7f,0xff, - 0xcd,0xff,0xf3,0xff, - 0xfc,0xff,0xf1,0xff, - 0xff,0xff,0xe3,0xff, - 0xff,0xff,0xc7,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xfc,0xff,0xf9,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xfe,0xff, - 0xfc,0xff,0xc0,0xff, - 0x3c,0xff,0xe5,0xff, - 0xe9,0xff,0x82,0xff, - 0x09,0xff,0x07,0xff, - 0x1f,0xff,0x1f,0xff, - 0x3f,0xff,0x3f,0xff, - 0xbf,0xff,0x0f,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xf8,0xff, - 0xf0,0xff,0xf0,0xff, - 0xff,0xff,0xe1,0xff, - 0xe0,0xff,0xc5,0xff, - 0x05,0xff,0x0b,0xff, - 0x0f,0xff,0x1f,0xff, - 0xff,0xff,0xfc,0xff, - 0xfe,0xff,0xfc,0xff, - 0xfc,0xff,0xfa,0xff, - 0xfd,0xff,0xfd,0xff, - 0x19,0xf9,0xb3,0xf3, - 0xb2,0xe9,0x70,0xe2, - 0x75,0xe6,0xb5,0xe7, - 0xb6,0xf6,0x26,0xf6, - 0xff,0xff,0x8f,0x93, - 0xb0,0xb1,0x0a,0x09, - 0x0b,0x8b,0x19,0xc5, - 0x8b,0xc5,0x47,0x0b, - 0xff,0xff,0xff,0xff, - 0xfe,0xff,0x7f,0xff, - 0x3f,0xff,0xdf,0xbf, - 0x0f,0x5f,0x48,0x5f, - 0xff,0xff,0xff,0xff, - 0x7f,0xff,0x0f,0xff, - 0xe0,0xff,0x1e,0xff, - 0xc1,0xff,0x7c,0xbf, - 0xf3,0xff,0xfb,0xf7, - 0xe7,0xff,0xe7,0xef, - 0xef,0xef,0x6f,0xef, - 0x2f,0xff,0x2f,0xff, - 0xc6,0xff,0xce,0xff, - 0x8c,0xff,0xbd,0xff, - 0x7d,0xff,0x7d,0xff, - 0x3d,0x7f,0x79,0x7f, - 0x3f,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xbf,0xff,0xbc,0xff, - 0xbf,0xff,0xbf,0xbf, - 0xf8,0xff,0x9c,0xff, - 0x0f,0xff,0x0f,0xff, - 0x3f,0xff,0x7f,0xff, - 0xff,0xff,0x3f,0xff, - 0x3f,0xff,0xbf,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xf8,0xff,0xc0,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x7b,0xff,0x03,0xff, - 0x07,0xff,0x07,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xfe,0xff, - 0xff,0xff,0x8f,0xff, - 0x6e,0xf6,0xd4,0xfb, - 0x9f,0xfc,0xdf,0xff, - 0xbe,0xff,0xff,0xfd, - 0xfd,0xfe,0xff,0xff, - 0x07,0xc3,0x00,0x17, - 0xc0,0x19,0x20,0xff, - 0x01,0xff,0xfe,0x9f, - 0xbf,0x7f,0xff,0xff, - 0x52,0x3c,0xf4,0x39, - 0x69,0xf7,0xce,0xff, - 0x90,0xff,0x22,0xff, - 0xc8,0xff,0xf0,0xff, - 0xc3,0x7f,0xb8,0xff, - 0x30,0xff,0x00,0xff, - 0x00,0xff,0x04,0xff, - 0x0b,0xff,0x7f,0xff, - 0x1d,0xff,0x0d,0xff, - 0x04,0xff,0x18,0xff, - 0x09,0xff,0xc3,0xff, - 0xc6,0xff,0x1c,0xff, - 0x7f,0xfb,0x7b,0xfb, - 0xcb,0xff,0xcf,0xff, - 0x9d,0xff,0x39,0xff, - 0x7b,0xff,0xf7,0xff, - 0x9e,0xbf,0xfd,0xff, - 0xdf,0xff,0xdc,0xff, - 0xd8,0xff,0xd8,0xff, - 0xf8,0xff,0xfb,0xff, - 0x47,0xff,0x87,0xff, - 0x07,0xff,0x03,0xff, - 0x03,0xff,0x41,0xff, - 0x99,0xff,0x8f,0xff, - 0x00,0xff,0x00,0xff, - 0x81,0xff,0x84,0xff, - 0xa0,0xff,0xfb,0xff, - 0xdf,0xff,0xff,0xff, - 0x1f,0xff,0x5b,0xff, - 0x76,0xff,0xfc,0xff, - 0xf9,0xff,0xfe,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xbf,0xff,0xfb,0xff, - 0xfb,0xff,0x3b,0xff, - 0x73,0xff,0xf7,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xaf,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xe7,0xff, - 0xc7,0xff,0x8f,0xff, - 0xfe,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xf9,0xfe, - 0x62,0x99,0x09,0xf7, - 0x7f,0xff,0xff,0xff, - 0xf9,0xfe,0xe2,0xf9, - 0x07,0xe7,0xdf,0x3f, - 0x7f,0xff,0xff,0xff, - 0x9f,0xff,0x07,0xff, - 0x2f,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xdf,0xff,0xff,0xff, - 0xff,0xff,0xc6,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x1f,0xff, - 0x81,0xff,0xe0,0xff, - 0xec,0xff,0xf8,0xff, - 0xf8,0xff,0xfc,0xff, - 0xff,0xff,0xf7,0xef, - 0xff,0xff,0x1f,0xff, - 0x03,0xff,0x00,0xff, - 0x00,0xff,0x28,0xff, - 0xf0,0xff,0xf8,0xff, - 0xf3,0xff,0xe7,0xff, - 0xff,0xff,0xff,0xff, - 0x3f,0xff,0x49,0xff, - 0x90,0xff,0x20,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x1e,0xfe,0x30,0xfc, - 0xfb,0xff,0xff,0xff, - 0xcf,0xdf,0x9f,0xbf, - 0xff,0x3f,0x3f,0x7f, - 0x23,0x1c,0x50,0x01, - 0xe7,0xff,0xfb,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0x7f,0xff,0xff, - 0xcf,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x04,0xff,0x94,0xff, - 0xe8,0xff,0xf8,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x1f,0xff,0x1f,0xff, - 0x3f,0xff,0x7f,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xfd,0xff, - 0xfc,0xff,0xe8,0xff, - 0xff,0xff,0xff,0xff, - 0xeb,0xe7,0xe7,0xe7, - 0xff,0xff,0x6c,0xff, - 0x38,0xff,0xfe,0xff, - 0xff,0xff,0xff,0xff, - 0xfb,0xff,0xf9,0xfe, - 0xcf,0xff,0x5f,0xff, - 0x3f,0xff,0x20,0xff, - 0xff,0xff,0xff,0xff, - 0x64,0xff,0xff,0xff, - 0x3f,0xef,0x8f,0x9f, - 0x73,0xff,0x0d,0xff, - 0xfc,0xff,0xff,0xff, - 0x08,0xff,0xff,0xff, - 0xff,0xff,0xfc,0xff, - 0xe7,0xff,0x00,0xff, - 0x00,0xff,0xf0,0xff, - 0x01,0xff,0xff,0xff, - 0xfe,0xff,0x7c,0xff, - 0x81,0xff,0x03,0xff, - 0x03,0xff,0x7f,0xff, - 0x97,0xff,0xff,0xff, - 0x67,0xff,0xaf,0xdf, - 0x82,0xff,0x20,0xdf, - 0x00,0xff,0xc0,0xff, - 0xfe,0xff,0xff,0xff, - 0xbf,0xff,0x07,0xff, - 0x07,0xff,0x00,0xff, - 0x00,0xff,0xff,0xff, - 0x44,0xff,0xc4,0xff, - 0xf8,0xff,0xff,0xff, - 0x3f,0xff,0xf8,0xff, - 0x01,0xff,0xff,0xff, - 0x30,0xe8,0x6f,0xf0, - 0x60,0xff,0xff,0xff, - 0xff,0xff,0xde,0xff, - 0xc0,0xff,0x80,0xff, - 0x47,0x1f,0x8e,0x01, - 0x07,0x1f,0x02,0xc1, - 0xcf,0xff,0x73,0xff, - 0x73,0xff,0x3d,0xff, - 0xff,0xff,0x3f,0xff, - 0xff,0xff,0x67,0xff, - 0xcf,0xff,0x1f,0xff, - 0x1f,0xff,0xfc,0xff, - 0xff,0xff,0x8f,0xff, - 0xe3,0xff,0xff,0xff, - 0x87,0xfb,0xf1,0xff, - 0xf1,0xff,0xf9,0xff, - 0xfe,0xff,0xf8,0xff, - 0xf5,0xff,0xff,0xff, - 0xff,0xff,0x07,0xff, - 0x2f,0xff,0xd7,0xef, - 0x37,0xff,0x63,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xf0,0xff, - 0xf1,0xff,0x71,0xff, - 0xf9,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x00,0xff,0x7f,0xff, - 0xff,0xff,0xff,0xff, - 0xc1,0xff,0xf3,0xff, - 0xe7,0xff,0xc9,0xff, - 0x13,0xff,0xa0,0xff, - 0xff,0xff,0xff,0xff, - 0xfd,0xff,0x97,0xff, - 0xc3,0xff,0xf8,0xff, - 0xc0,0xff,0x00,0xff, - 0xf8,0xff,0xff,0xff, - 0x80,0xff,0xc0,0xff, - 0x01,0xff,0x03,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0xfe,0xff, - 0xe0,0xff,0xe0,0xff, - 0x90,0xff,0xe0,0xff, - 0x00,0xff,0x00,0xff, - 0x01,0xff,0x07,0xff, - 0x0f,0xff,0x0f,0xff, - 0x08,0xff,0x10,0xff, - 0x60,0xff,0xc0,0xff, - 0x80,0xfe,0xe0,0xfc, - 0x80,0xff,0x80,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x10,0xef, - 0x18,0xe7,0x10,0xcf, - 0x08,0xc7,0x46,0x81, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x03,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0xf2,0xff,0x00,0xff, - 0x03,0xff,0xfc,0xff, - 0x7f,0xff,0x7f,0xff, - 0x0f,0xff,0x04,0xff, - 0x07,0xff,0x1c,0xff, - 0xe1,0xff,0x0f,0xff, - 0xff,0xff,0xff,0xff, - 0xcb,0xff,0x00,0xff, - 0xe0,0xff,0x30,0xff, - 0xfc,0xff,0xfc,0xff, - 0xf2,0xfc,0xf1,0xf6, - 0xf0,0xf3,0x7c,0xf8, - 0x0c,0xff,0x03,0xff, - 0x0f,0xff,0x12,0xf3, - 0x3f,0xff,0xbb,0x7f, - 0x0f,0xff,0x1e,0xfe, - 0xf8,0x3d,0xf0,0xf3, - 0xf0,0xf8,0x78,0x7f, - 0xef,0x97,0xb3,0x8f, - 0x17,0x6b,0x97,0xeb, - 0x0b,0xf7,0x07,0xdf, - 0x0f,0x7f,0x3e,0xfe, - 0x3f,0xff,0xbf,0xff, - 0xe0,0xff,0xaf,0xff, - 0xbf,0xff,0xc0,0xff, - 0x00,0xff,0x10,0xff, - 0xff,0xff,0xfb,0xff, - 0x7f,0xff,0xf7,0xff, - 0xcf,0xff,0xef,0xff, - 0x6f,0xff,0x76,0xff, - 0xff,0xff,0xf0,0xff, - 0xf9,0xff,0xfd,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x00,0xff,0x00,0xff, - 0x80,0xff,0x01,0xff, - 0x00,0xff,0xc0,0xff, - 0xc0,0xff,0xff,0xff, - 0x0f,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x09,0xf7,0x07,0xff, - 0x06,0xff,0xfe,0xff, - 0xff,0xff,0x38,0xff, - 0x70,0xff,0xc0,0xff, - 0x80,0xff,0x00,0xff, - 0x00,0xff,0x00,0xfe, - 0xfd,0xfd,0x00,0xfe, - 0x00,0xff,0x00,0xff, - 0x00,0xf3,0x00,0xcf, - 0x00,0x3f,0x00,0x7f, - 0xfe,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0xe6,0x01,0xc3,0x00, - 0x81,0x00,0xc1,0x18, - 0x40,0x99,0x00,0xef, - 0x00,0xff,0x00,0xff, - 0x3f,0xff,0x62,0xff, - 0x17,0xff,0x1f,0xff, - 0x1f,0xff,0x3f,0xff, - 0x3e,0xff,0x00,0xff, - 0xc0,0xff,0x13,0xff, - 0xff,0xff,0xff,0xff, - 0xfc,0xff,0xc0,0xff, - 0x00,0xff,0x00,0xff, - 0x3f,0xff,0xff,0xff, - 0xff,0xff,0xe0,0xff, - 0x01,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0xf0,0xff,0xc3,0xff, - 0xff,0xff,0x03,0xff, - 0xc3,0xff,0x02,0xff, - 0x06,0xff,0x0e,0xff, - 0x0c,0xff,0xff,0xff, - 0xff,0xff,0xc0,0xff, - 0x00,0xff,0x03,0xff, - 0x0f,0xff,0x00,0xff, - 0xef,0xff,0xff,0xdf, - 0xff,0xff,0x00,0xff, - 0x00,0xff,0xfc,0xff, - 0xe3,0xff,0x1c,0xff, - 0xf8,0xff,0xff,0xff, - 0xff,0xff,0x00,0xff, - 0x10,0xf7,0x4f,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0xff,0xff, - 0xff,0xff,0xf8,0xff, - 0xe0,0xff,0xe3,0xff, - 0xf7,0xff,0xf3,0xff, - 0x71,0xff,0xff,0xff, - 0xff,0xff,0x03,0xff, - 0x3f,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x80,0xff, - 0xc0,0xff,0xf0,0xff, - 0xfc,0xff,0xff,0xff, - 0xff,0xff,0x82,0xc6, - 0xff,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x81,0xff, - 0xf3,0xff,0x38,0x10, - 0x80,0xef,0xf0,0xff, - 0x7f,0xff,0x14,0xfb, - 0x60,0xff,0xe0,0xff, - 0xe0,0xff,0xa5,0x42, - 0x00,0xff,0x00,0xff, - 0xfe,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x00,0x1f, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x3f,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x20,0xc2, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0xff,0xff, - 0x0f,0xff,0x3e,0xff, - 0x06,0xff,0x1c,0x0c, - 0x00,0xff,0x02,0xff, - 0x08,0xff,0xff,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x23,0xc0, - 0x00,0xff,0x07,0xff, - 0xff,0xff,0xff,0xff, - 0x12,0xff,0x02,0xff, - 0x02,0xff,0x01,0x0f, - 0x3e,0xff,0xfe,0xff, - 0xff,0xff,0x00,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x20,0xc1, - 0x00,0xff,0x00,0xff, - 0xff,0xff,0x1f,0xff, - 0x00,0xff,0x00,0xff, - 0x00,0xff,0x9d,0x0f, - 0xe0,0xff,0x00,0xff, - 0xff,0xff,0xff,0xff, - 0x06,0xff,0x06,0xff, - 0xe6,0xff,0xc0,0xe3, - 0x03,0xff,0x07,0xff, - 0xff,0xff,0xff,0xff, - 0xe6,0xff,0x7e,0xff, - 0x70,0xff,0x04,0x08, - 0xf2,0xff,0xf7,0xff, - 0xff,0xff,0xff,0xff, - 0x3c,0xff,0xdf,0xff, - 0xff,0xff,0x23,0x21, - 0x3f,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0x6f,0x77, - 0xba,0xda,0xba,0xda, - 0x9e,0xc6,0xbe,0xde, - 0xbe,0xde,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xeb,0xd7,0xeb,0xd0, - 0xbb,0x17,0xbb,0xd7, - 0xe8,0xd0,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xd7,0xda,0xf6,0xcf, - 0xf3,0xfb,0xdb,0xfa, - 0xee,0x43,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x4f,0xff,0x5f,0x3f, - 0xaf,0xdf,0xdf,0xef, - 0x5f,0x1f,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xc4,0xdb,0xeb,0xc7, - 0xf3,0xfb,0xfd,0xdb, - 0xef,0xc3,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x1d,0xbc,0xbb,0xbc, - 0xb8,0xb8,0xbb,0xbb, - 0xbb,0xb7,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x32,0xcd,0xa6,0x59, - 0x23,0x43,0xa3,0x5b, - 0x2b,0xdd,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x00,0xbf,0x0e,0xbf, - 0x9f,0xbf,0x9f,0xbf, - 0xbf,0xbf,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xd2,0xf7,0x32,0xf7, - 0xf6,0xf7,0xf3,0xf7, - 0xf7,0xf7,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x6c,0x6f,0xa6,0x6f, - 0x87,0x6f,0x6f,0x6f, - 0x0f,0x9f,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x55,0xed,0x19,0xed, - 0xc3,0xe3,0xdb,0xeb, - 0xdd,0xed,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0x7e,0x7e,0x7e,0x0e, - 0x7e,0x7e,0x7e,0x7e, - 0x06,0x0e,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xed,0xed,0xed,0xed, - 0xe9,0xe3,0xed,0xeb, - 0xed,0xed,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xef,0xaf,0xef,0x9f, - 0xdf,0xdf,0xdf,0xdf, - 0xdf,0xdf,0xff,0xff, - 0xff,0xff,0xff,0xff - }; - - -const unsigned char claimed_map[360] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x00,0x25,0x26,0x27,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x29,0x2a,0x2b,0x2c,0x00,0x2d,0x2e,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2f,0x30,0x31,0x32,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x35,0x36,0x37,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x3a,0x00,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x42,0x43,0x00,0x00,0x44,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x46,0x47,0x48,0x00,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x00,0x00, - 0x00,0x00,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x00,0x00,0x73,0x74,0x75,0x00,0x00, - 0x00,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x00,0x00,0x00, - 0x00,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x00,0x00,0x00, - 0x00,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0x00,0x00,0x00, - 0x00,0x00,0x00,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0x00,0x00,0x00, - 0x00,0x00,0x00,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0x00,0x00,0x00, -}; diff --git a/src/claimed.h b/src/claimed.h deleted file mode 100644 index 203e4e2..0000000 --- a/src/claimed.h +++ /dev/null @@ -1,27 +0,0 @@ -//AUTOGENERATED FILE FROM png2asset -#ifndef METASPRITE_claimed_H -#define METASPRITE_claimed_H - -#include -#include -#include - -#define claimed_TILE_ORIGIN 0 -#define claimed_TILE_W 8 -#define claimed_TILE_H 8 -#define claimed_WIDTH 160 -#define claimed_HEIGHT 144 -#define claimed_TILE_COUNT 194 -#define claimed_PALETTE_COUNT 1 -#define claimed_COLORS_PER_PALETTE 4 -#define claimed_TOTAL_COLORS 4 -#define claimed_MAP_ATTRIBUTES 0 -extern const unsigned char claimed_map[360]; -#define claimed_map_attributes claimed_map - -BANKREF_EXTERN(claimed) - -extern const palette_color_t claimed_palettes[4]; -extern const uint8_t claimed_tiles[3104]; - -#endif diff --git a/src/engine.c b/src/engine.c index 1960841..993ec60 100644 --- a/src/engine.c +++ b/src/engine.c @@ -19,7 +19,6 @@ #include "gameover.h" #include "stamina.h" #include "level.h" -#include "claimed.h" #include "title_bg.h" /** @@ -63,11 +62,17 @@ void title_update(uint8_t keys, uint8_t prev_keys) { */ void engine_init(void) { SPRITES_8x16; // Imposta la modalità Sprite Alti (16 pixel invece di 8) - + // Hard reset Audio NR52_REG = 0x80; NR50_REG = 0x77; NR51_REG = 0xFF; + + // Reset hint SUBITO (all'inizio della funzione, non alla fine: + // la ROM a 32KB e' piena e il linker potrebbe troncare la coda). + hint_active = 0; + hint_displayed = 0; + if (level == 1) hint_active = 1; // Carica il font testuale di sistema (IBM) font_init(); @@ -216,11 +221,55 @@ static void ending_putdigit(uint8_t col, uint8_t row, uint8_t digit) { * Questo metodo funge da "Direttore d'Orchestra", delegando i compiti ai moduli specializzati. */ void engine_update(uint8_t keys, uint8_t prev_keys) { - + // Indicatore livello: aggiornato ogni frame. Si nasconde da solo quando // `game_over` e' attivo (sconfitta/vittoria) grazie al check interno. update_level_display(); + // --- SCHERMATA ISTRUZIONI (livello 1 o SELECT per ri-mostrarla) --- + // Testuale con font IBM. Stesso pattern del finale (game_over==3) e della + // sconfitta (game_over==1). Si chiude con B; SELECT la ri-apre in gioco. + if (hint_active) { + if (!hint_displayed) { + hint_displayed = 1; + HIDE_SPRITES; + SCX_REG = 0; + SCY_REG = 0; + font_init(); + font_t hint_font = font_load(font_ibm); + font_set(hint_font); + BGP_REG = 0x1B; + memset(map_buffer, 0, sizeof(map_buffer)); + ending_puttext(3, 2, "A SCREAM FROM"); + ending_puttext(6, 3, "THE DARK"); + ending_puttext(3, 5, "FIND THE HATCH"); + ending_puttext(4, 8, "DPAD WALK"); + ending_puttext(2, 9, "A JUMP ABYSS"); + ending_puttext(2, 10, "B RUN"); + ending_puttext(2, 12, "PRESS B START"); + ending_puttext(4, 14, "SELECT HELP"); + set_bkg_tiles(0, 0, 32, 32, map_buffer); + } + // B chiude la schermata e riprende il gioco + if ((keys & J_B) && !(prev_keys & J_B)) { + BGP_REG = 0xE4; + set_bkg_data(0, tiles_TILE_COUNT, tiles_tiles); + draw_map(player_lx, player_ly); + update_camera(); + update_player_sprite(); + SHOW_SPRITES; + hint_active = 0; + } + return; // gioco in pausa mentre la schermata e' attiva + } + // SELECT in gioco: ri-mostra la schermata istruzioni + if ((keys & J_SELECT) && !(prev_keys & J_SELECT) && !game_over) { + hint_active = 1; + hint_displayed = 0; + } + + // --- GESTIONE STATO DI FINE GIOCO (Sconfitta o Vittoria) --- + // --- GESTIONE STATO DI FINE GIOCO (Sconfitta o Vittoria) --- if (game_over) { if (game_over_timer > 0) { @@ -228,17 +277,28 @@ void engine_update(uint8_t keys, uint8_t prev_keys) { // Quando scade il timer drammatico... if (game_over_timer == 0) { if (game_over == 1) { - // Sconfitta: schermata "claimed" a tutto schermo + metasprite GAME OVER + // Sconfitta: schermata testuale a tutto schermo (font IBM). + // (Era l'immagine claimed.png, sostituita con testo per ridurre + // l'occupazione ROM e fare spazio alla schermata istruzioni.) HIDE_SPRITES; SCX_REG = 0; SCY_REG = 0; - BGP_REG = 0xE4; // palette standard (claimed ha la sua) - set_bkg_data(0, claimed_TILE_COUNT, claimed_tiles); - set_bkg_tiles(0, 0, 20, 18, claimed_map); + BGP_REG = 0x1B; // palette invertita (sfondo nero, testo chiaro) + font_init(); + font_t dead_font = font_load(font_ibm); + font_set(dead_font); + memset(map_buffer, 0, sizeof(map_buffer)); + ending_puttext(5, 3, "YOU DIED"); + ending_puttext(2, 5, "THE DARK CLAIMS"); + ending_puttext(5, 6, "ANOTHER"); + ending_puttext(2, 9, "JUST ANOTHER SCREAM"); + ending_puttext(3, 10, "FROM THE DARK."); + ending_puttext(5, 14, "GAME OVER"); + set_bkg_tiles(0, 0, 32, 32, map_buffer); } else if (game_over == 2) { // Going Deeper: schermata di transizione testuale (font IBM). // (Era un'immagine, sostituita con testo per ridurre l'occupazione ROM - // e fare spazio alla schermata "claimed" della morte.) + // e fare spazio alla schermata istruzioni.) HIDE_SPRITES; SCX_REG = 0; SCY_REG = 0; diff --git a/src/globals.c b/src/globals.c index 2c7d1d8..3b92996 100644 --- a/src/globals.c +++ b/src/globals.c @@ -44,4 +44,6 @@ int8_t enemy_start_lx[MAX_ENEMIES], enemy_start_ly[MAX_ENEMIES]; int8_t enemy_target_lx[MAX_ENEMIES], enemy_target_ly[MAX_ENEMIES]; int16_t enemy_start_px[MAX_ENEMIES], enemy_start_py[MAX_ENEMIES]; int16_t enemy_target_px[MAX_ENEMIES], enemy_target_py[MAX_ENEMIES]; -uint8_t enemy_cooldown[MAX_ENEMIES] = {0}; \ No newline at end of file +uint8_t enemy_cooldown[MAX_ENEMIES] = {0}; +volatile uint8_t hint_active = 0; +volatile uint8_t hint_displayed = 0; diff --git a/src/globals.h b/src/globals.h index 563a079..fd0aae4 100644 --- a/src/globals.h +++ b/src/globals.h @@ -75,4 +75,11 @@ extern int16_t enemy_start_px[MAX_ENEMIES], enemy_start_py[MAX_ENEMIES]; extern int16_t enemy_target_px[MAX_ENEMIES], enemy_target_py[MAX_ENEMIES]; extern uint8_t enemy_cooldown[MAX_ENEMIES]; +// --- Instructions Screen --- +// hint_active: 1 = mostra la schermata istruzioni (all'inizio del livello 1, +// o quando il giocatore preme SELECT). Chiusura con B. +// hint_displayed: 1 = la schermata e' gia' stata renderizzata questo frame. +extern volatile uint8_t hint_active; +extern volatile uint8_t hint_displayed; + #endif \ No newline at end of file