feat: integrate new title screen into game loop and remove test rom

This commit is contained in:
2026-06-17 23:44:15 +02:00
parent 41f8bf0f2d
commit 4345f0e755
2 changed files with 26 additions and 26 deletions
+26 -6
View File
@@ -15,6 +15,7 @@
#include "maze.h" #include "maze.h"
#include "tiles.h" #include "tiles.h"
#include "rat_bg.h" #include "rat_bg.h"
#include "title_bg.h"
#include "rat.h" #include "rat.h"
#include "music.h" #include "music.h"
@@ -24,18 +25,37 @@ void main(void) {
uint8_t y, x; uint8_t y, x;
uint8_t black = 1; uint8_t black = 1;
// Attende il termine dell'aggiornamento verticale dello schermo (VBLANK). // --- SCHERMATA DEL TITOLO ---
// Caricare dati in VRAM al di fuori di questo periodo può causare tearing o artefatti.
wait_vbl_done(); wait_vbl_done();
set_bkg_data(0, 256, title_bg_tiles);
set_bkg_tiles(0, 0, 20, 18, title_bg_map);
// Invia i dati grafici (array TileData) dal banco ROM alla VRAM a partire dall'indice 0. SHOW_BKG;
set_bkg_data(0, 5, TileData); // Carichiamo 5 tile: 1 strada + 4 siepi DISPLAY_ON;
BGP_REG = 0b11100100;
// Inizializza il seme dei numeri casuali. // Attendi la pressione di START
while (1) {
if (joypad() & J_START) {
break;
}
wait_vbl_done();
}
// Attendi il rilascio del tasto per non passarlo al gioco
waitpadup();
// Spegni il display per caricare i tile del gioco in sicurezza
DISPLAY_OFF;
// Inizializza il seme casuale. Poiché il giocatore ha aspettato
// un tempo imprevedibile nel menu, DIV_REG produrrà un labirinto sempre nuovo!
initrand(DIV_REG); initrand(DIV_REG);
// Invia i dati grafici del gioco alla VRAM
set_bkg_data(0, 5, TileData); // 1 strada + 4 siepi
// La mappa background in memoria hardware è grande 32x32 tiles. // La mappa background in memoria hardware è grande 32x32 tiles.
// Riempiamo preventivamente tutta quest'area nascosta con siepi casuali
for (y = 0; y < 32; y++) { for (y = 0; y < 32; y++) {
for (x = 0; x < 32; x++) { for (x = 0; x < 32; x++) {
uint8_t rand_hedge = 1 + (rand() % 4); uint8_t rand_hedge = 1 + (rand() % 4);
-20
View File
@@ -1,20 +0,0 @@
#include <gb/gb.h>
#include <stdint.h>
#include "title_bg.h"
void main(void) {
// Carica il background
set_bkg_data(0, 256, title_bg_tiles);
set_bkg_tiles(0, 0, 20, 18, title_bg_map);
// Mostra il background
SHOW_BKG;
DISPLAY_ON;
// Palette standard
BGP_REG = 0b11100100;
while(1) {
wait_vbl_done();
}
}