Browse Source

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

master
Matteo Benedetto 3 days ago
parent
commit
4345f0e755
  1. 32
      src/main.c
  2. 20
      src/test_title.c

32
src/main.c

@ -15,6 +15,7 @@
#include "maze.h"
#include "tiles.h"
#include "rat_bg.h"
#include "title_bg.h"
#include "rat.h"
#include "music.h"
@ -24,18 +25,37 @@ void main(void) {
uint8_t y, x;
uint8_t black = 1;
// Attende il termine dell'aggiornamento verticale dello schermo (VBLANK).
// Caricare dati in VRAM al di fuori di questo periodo può causare tearing o artefatti.
// --- SCHERMATA DEL TITOLO ---
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.
set_bkg_data(0, 5, TileData); // Carichiamo 5 tile: 1 strada + 4 siepi
SHOW_BKG;
DISPLAY_ON;
BGP_REG = 0b11100100;
// 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();
// Inizializza il seme dei numeri casuali.
// 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);
// 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.
// Riempiamo preventivamente tutta quest'area nascosta con siepi casuali
for (y = 0; y < 32; y++) {
for (x = 0; x < 32; x++) {
uint8_t rand_hedge = 1 + (rand() % 4);

20
src/test_title.c

@ -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();
}
}
Loading…
Cancel
Save