Browse Source

feat: make game over screen creepy with custom music and new ascii rat

master
Matteo Benedetto 3 days ago
parent
commit
988fceef65
  1. 18
      src/main.c
  2. 15
      src/music.c
  3. 2
      src/music.h

18
src/main.c

@ -86,21 +86,17 @@ void main(void) {
// Disegna l'ASCII art e il messaggio di sconfitta!
printf("\n\n");
printf(" GAME OVER!\n\n");
printf(" /\\___/\\\n");
printf(" ( ^ ^ )\n");
printf(" > w <\n");
printf(" \\___/\n\n");
printf(" /\\_,,,_/\\\n");
printf(" | ' O O ' |\n");
printf(" | >w< |\n");
printf(" \\_/\"v\"\\_/\n\n");
printf(" L'INVASIONE VINCE!\n");
// Suono di risata malefica (una specie di trillo)
NR10_REG = 0x1E;
NR11_REG = 0x80;
NR12_REG = 0xF3;
NR13_REG = 0x00;
NR14_REG = 0x87;
// Suono inquietante e fine della traccia allegra
play_game_over_music();
while(1) {
update_music(); // La musica del tracollo continua
// Loop vuoto, la musica è ormai spenta a parte il riverbero maligno
wait_vbl_done();
}
}

15
src/music.c

@ -303,3 +303,18 @@ void update_music(void) {
frame_counter--;
}
}
void play_game_over_music(void) {
// Silenzia bruscamente la melodia allegra, il basso e i tamburi
NR22_REG = 0x00; // Spegne CH2
NR32_REG = 0x00; // Spegne CH3
NR42_REG = 0x00; // Spegne CH4
// Suona una nota discendente e inquietante sul Canale 1
// NR10: Sweep Time lungo, direzione discendente, shift
NR10_REG = 0x7F;
NR11_REG = 0x80;
NR12_REG = 0xF7;
NR13_REG = 0x50;
NR14_REG = 0x86;
}

2
src/music.h

@ -7,4 +7,6 @@ void update_music(void);
void play_sfx_moan(void);
void play_sfx_plop(void);
void play_game_over_music(void);
#endif

Loading…
Cancel
Save