@@ -0,0 +1,350 @@

// File created by mod2gbt

#pragma bank=3

const unsigned char song0[] = {
0x00, 0x00, 0xa4,0x27, 0x4a,0x06,
0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0xa4,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0xa9,0x28, 0x00, 0xa4,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x21, 0x00, 0xa4,0x27, 0x20,
0x00, 0xa9,0x24, 0x20, 0x20,
0xa8,0x18, 0x00, 0xa4,0x27, 0x00,
0x00, 0x20, 0x20, 0x00,
0x00, 0x00, 0xa4,0x27, 0x00,
0x00, 0xa8,0x14, 0x20, 0x00,
0x21, 0x00, 0xa4,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0xa4,0x27, 0x20,
0x00, 0x20, 0x20, 0x20,
0xa9,0x28, 0x00, 0xa4,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0xa8,0x18, 0x00, 0xa4,0x27, 0x00,
0x00, 0xa9,0x24, 0x20, 0x00,
0xa4,0x28, 0x00, 0xa4,0x27, 0x8a,0x05,
0x00, 0xa8,0x14, 0x20, 0x22,
0x9f,0x18, 0x00, 0xa4,0x27, 0x20,
0x00, 0xa4,0x24, 0x20, 0x20,
0x21, 0x00, 0xa4,0x27, 0x00,
0x00, 0x9f,0x14, 0x20, 0x00,
0xa4,0x28, 0x00, 0xa4,0x27, 0x00,
0x00, 0x20, 0x20, 0x00,
0x00, 0x00, 0xa4,0x27, 0x8a,0x05,
0x00, 0xa4,0x24, 0x20, 0x22,
0x21, 0x00, 0xa4,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x9d,0x18, 0x00, 0xa4,0x27, 0x00,
0x00, 0x20, 0x20, 0x00,
0x00, 0x00, 0xa4,0x27, 0x00,
0x00, 0x9d,0x34, 0x20, 0x00,
0x00, 0x00, 0xa4,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x9c,0x28, 0x00, 0xa4,0x27, 0x20,
0x9a,0x18, 0x00, 0x20, 0x20,
0x9c,0x28, 0x00, 0xa4,0x27, 0x00,
0x00, 0x9c,0x24, 0x20, 0x00,
0x00, 0x9a,0x14, 0xa4,0x27, 0x00,
0x00, 0x9c,0x24, 0x20, 0x00,
0x00, 0x00, 0xa4,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x21, 0x00, 0xa4,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x00, 0x9d,0x35, 0xa4,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0xa4,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0xa4,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x9c,0x35, 0xa4,0x27, 0x20,
0x00, 0x9a,0x35, 0x20, 0x20,
0x9f,0x18, 0x9c,0x35, 0xa4,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0xa4,0x18, 0x00, 0xa4,0x27, 0x00,
0x00, 0x9f,0x14, 0x20, 0x00,
0xa6,0x18, 0x00, 0xa4,0x27, 0x8a,0x05,
0x00, 0xa4,0x14, 0x20, 0x22,
0xa7,0x18, 0x00, 0xa4,0x27, 0x20,
0x00, 0xa6,0x14, 0x20, 0x20
};

const unsigned char song1[] = {
0x20, 0x00, 0xa0,0x27, 0x4a,0x06,
0x00, 0xa7,0x14, 0x20, 0x00,
0x00, 0x00, 0xa0,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0xa0,0x18, 0x00, 0xa0,0x27, 0x8a,0x05,
0x00, 0x20, 0x20, 0x22,
0x21, 0x00, 0xa0,0x27, 0x20,
0x00, 0xa0,0x14, 0x20, 0x20,
0xa4,0x18, 0x00, 0xa0,0x27, 0x00,
0x00, 0x20, 0x20, 0x00,
0x21, 0x00, 0xa0,0x27, 0x00,
0x00, 0xa4,0x14, 0x20, 0x00,
0xa7,0x18, 0x00, 0xa0,0x27, 0x8a,0x05,
0x00, 0x20, 0x20, 0x22,
0xa6,0x18, 0x00, 0xa0,0x27, 0x20,
0x00, 0xa7,0x14, 0x20, 0x20,
0x00, 0x00, 0xa0,0x27, 0x00,
0x00, 0xa6,0x14, 0x20, 0x00,
0x00, 0x00, 0xa0,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0xa4,0x18, 0x00, 0xa0,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x21, 0x00, 0xa0,0x27, 0x20,
0x00, 0xa4,0x14, 0x20, 0x20,
0xa2,0x18, 0x00, 0xa0,0x27, 0x00,
0x00, 0x20, 0x20, 0x00,
0x21, 0x00, 0xa0,0x27, 0x00,
0x00, 0xa2,0x14, 0x20, 0x00,
0xa0,0x18, 0x00, 0xa0,0x27, 0x8a,0x05,
0x00, 0x20, 0x20, 0x22,
0xa3,0x18, 0x00, 0xa0,0x27, 0x20,
0x00, 0xa0,0x14, 0x20, 0x20,
0x00, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0xa3,0x14, 0x20, 0x22,
0x21, 0x00, 0x9f,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x00, 0x00, 0x9f,0x27, 0x00,
0x00, 0x20, 0x20, 0x00,
0x9f,0x05, 0x9a,0x05, 0x9f,0x27, 0x8a,0x05,
0x20, 0x20, 0x20, 0x22,
0x25, 0x25, 0x9f,0x27, 0x20,
0x20, 0x20, 0x20, 0x20,
0x25, 0x25, 0x9f,0x27, 0x00,
0x20, 0x20, 0x20, 0x00,
0xa3,0x05, 0x9f,0x05, 0x9f,0x27, 0x8a,0x05,
0x20, 0x20, 0x20, 0x22,
0x25, 0x25, 0x9f,0x27, 0x20,
0x20, 0x20, 0x20, 0x20,
0xa6,0x05, 0xa3,0x05, 0x9f,0x27, 0x8a,0x05,
0x20, 0x20, 0x20, 0x22,
0x25, 0x25, 0x9f,0x27, 0x20,
0x20, 0x20, 0x20, 0x20,
0xab,0x05, 0xa6,0x05, 0x94,0x27, 0x8a,0x05,
0x20, 0x20, 0x20, 0x22,
0x25, 0x25, 0x94,0x27, 0x20,
0x20, 0x20, 0x20, 0x20,
0xa6,0x05, 0xa3,0x05, 0x96,0x27, 0x8a,0x05,
0x20, 0x20, 0x20, 0x22,
0x25, 0x25, 0x96,0x27, 0x20,
0x20, 0x20, 0x20, 0x20,
0xa3,0x05, 0x9f,0x05, 0x97,0x27, 0x8a,0x05,
0x20, 0x20, 0x20, 0x22,
0x25, 0x25, 0x97,0x27, 0x8a,0x05,
0x20, 0x20, 0x20, 0x20
};

const unsigned char song2[] = {
0x20, 0x00, 0xa0,0x27, 0x4a,0x06,
0x00, 0xa7,0x14, 0x20, 0x00,
0x00, 0x00, 0xa0,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0xa0,0x18, 0x00, 0xa0,0x27, 0x8a,0x05,
0x00, 0x20, 0x20, 0x22,
0x21, 0x00, 0xa0,0x27, 0x20,
0x00, 0xa0,0x14, 0x20, 0x20,
0xa4,0x18, 0x00, 0xa0,0x27, 0x00,
0x00, 0x20, 0x20, 0x00,
0x21, 0x00, 0xa0,0x27, 0x00,
0x00, 0xa4,0x14, 0x20, 0x00,
0xa7,0x18, 0x00, 0xa0,0x27, 0x8a,0x05,
0x00, 0x20, 0x20, 0x22,
0xa6,0x18, 0x00, 0xa0,0x27, 0x20,
0x00, 0xa7,0x14, 0x20, 0x20,
0x00, 0x00, 0x9f,0x27, 0x00,
0x00, 0xa6,0x14, 0x20, 0x00,
0x00, 0x00, 0x9f,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0xa4,0x18, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x21, 0x00, 0x9f,0x27, 0x20,
0x00, 0xa4,0x14, 0x20, 0x20,
0xa3,0x18, 0x00, 0x9f,0x27, 0x00,
0x00, 0x20, 0x20, 0x00,
0x21, 0x00, 0x9f,0x27, 0x00,
0x00, 0xa3,0x14, 0x20, 0x00,
0x9f,0x18, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0x20, 0x20, 0x22,
0xa4,0x18, 0x00, 0x9f,0x27, 0x20,
0x00, 0x9f,0x14, 0x20, 0x20,
0x00, 0x00, 0x98,0x27, 0x8a,0x05,
0x00, 0xa4,0x14, 0x20, 0x22,
0x21, 0x00, 0x98,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x00, 0x00, 0x98,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0x9d,0x14, 0xa1,0x14, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0x9f,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x9c,0x14, 0x9f,0x14, 0x9f,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0x9a,0x14, 0x9d,0x14, 0xa4,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x9c,0x14, 0x9f,0x14, 0xa4,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x98,0x14, 0x9c,0x14, 0xa4,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0xa4,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x00, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0x9f,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x00, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0x9f,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x20, 0x20, 0x93,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0x93,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x20
};

const unsigned char song3[] = {
0xa4,0x15, 0x9b,0x15, 0xa0,0x27, 0x4a,0x06,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x20, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa4,0x15, 0x9b,0x15, 0x00, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0xa6,0x15, 0x9d,0x15, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20,
0xa7,0x15, 0x9f,0x15, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa6,0x15, 0x9d,0x15, 0xa0,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa2,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x20, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa6,0x15, 0x9d,0x15, 0x00, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0xa7,0x15, 0x9f,0x15, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20,
0xa9,0x15, 0xa0,0x15, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa7,0x15, 0x9f,0x15, 0xa2,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa4,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x20, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa7,0x15, 0x9f,0x15, 0x00, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0xa9,0x15, 0xa0,0x15, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20,
0xab,0x15, 0xa2,0x15, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa9,0x15, 0xa2,0x15, 0x9f,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x20, 0x20, 0x00, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0x00, 0x00, 0x00, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0x00, 0x00, 0x20, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0x00, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22
};

const unsigned char song4[] = {
0xa4,0x15, 0x9b,0x15, 0xa0,0x27, 0x20,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x20, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa4,0x15, 0x9b,0x15, 0x00, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0xa6,0x15, 0x9d,0x15, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20,
0xa7,0x15, 0x9f,0x15, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa6,0x15, 0x9d,0x15, 0xa0,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa2,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x20, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa6,0x15, 0x9d,0x15, 0x00, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0xa7,0x15, 0x9f,0x15, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20,
0xa9,0x15, 0xa0,0x15, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa7,0x15, 0x9f,0x15, 0xa2,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa4,0x27, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0x20, 0x20, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20,
0xa7,0x15, 0x9f,0x15, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xa9,0x15, 0xa0,0x15, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xab,0x15, 0xa2,0x15, 0x20, 0x8a,0x05,
0x00, 0x00, 0x00, 0x22,
0xa9,0x15, 0xa4,0x15, 0x9f,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0x00, 0x00, 0x9f,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x9f,0x27, 0x00,
0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0x9f,0x27, 0x20,
0x00, 0x00, 0x20, 0x20,
0xa6,0x15, 0xa3,0x15, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x00, 0x00, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x22,
0x20, 0x20, 0x9f,0x27, 0x8a,0x05,
0x00, 0x00, 0x20, 0x20
};

const unsigned char * song_Data[] = {
song0,
song1,
song0,
song2,
song3,
song4,
0x0000
};

@@ -12,7 +12,7 @@
#include "StateGameOver.h"
#include "StateWin.h"

STATE next_state = STATE_MENU;//STATE_DISCLAIMER;// STATE_GAME;
STATE next_state = STATE_MENU;// STATE_GAME; //STATE_MENU;

STATE current_state = N_STATES;
UINT8 state_running = 0;
@@ -46,26 +46,43 @@ void SetState(STATE state) {
next_state = state;
}

#include "gbt_player.h"
extern const unsigned char * song_Data[];

void main() {
disable_interrupts(); // desactiva las interrupciones
add_VBL(gbt_update); // actualiza el player, ha de ejecutarse cada frame (cambia a banco 1)
set_interrupts(VBL_IFLAG); // aƱade la interrupcion VBL
enable_interrupts(); // activa las interrupciones

while(1) {
while (state_running) {
wait_vbl_done();
RefreshScroll();


ResetOAM();
UPDATE_KEYS();

Update();
RefreshScroll();
FlushOAM();

//gbt_update();
}

DISPLAY_OFF
gbt_stop();
ResetOAM();
FlushOAM();
last_sprite_loaded = 0;
state_running = 1;
current_state = next_state;
Start();

if(current_state == STATE_GAME) {
gbt_play(song_Data, 3, 7); // reproduce la cancion, en banco indicado y a la velocidad dada
gbt_loop(0); // activa/desactiva el loop
}

wait_vbl_done();
DISPLAY_ON;
}
@@ -35,6 +35,9 @@ $(OBJDIR)/%.o: %.s $(OBJDIR)
$(OBJDIR)/%.b2.o: %.b2.c
$(CC) $(CFLAGS) -Wf-bo2 -c -o $@ $<

$(OBJDIR)/%.b3.o: %.b3.c
$(CC) $(CFLAGS) -Wf-bo3 -c -o $@ $<

$(OBJDIR)/%.o: %.c $(OBJDIR)
$(CC) $(CFLAGS) -c -o $@ $<