feat: integrate new title screen into game loop and remove test rom
This commit is contained in:
+26
-6
@@ -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);
|
||||||
|
|||||||
@@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user