From 8fcf5bf1f74873f49b792d3e3f661a2e7feda673 Mon Sep 17 00:00:00 2001 From: Xavier ASUS Date: Fri, 30 Nov 2018 01:34:40 +0100 Subject: Removed SIO interrupt (it caused VBlank ISR not to be triggered). Added Gfx wait on LoadMenuEnd(). Otherwise, some levels would not start after loading all required files. Also, added GPU wait on Menu.c before entering the main loop. An invalid index inside sound table was being accessed when creating an arrival flight. This made the game crash only under real hardware. Other minor changes and fixes. --- Source/Menu.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Source/Menu.c') diff --git a/Source/Menu.c b/Source/Menu.c index dd000fd..7f21d85 100644 --- a/Source/Menu.c +++ b/Source/Menu.c @@ -326,9 +326,9 @@ static void MenuCheatInit(void) { TestCheat.Callback = &MenuTestCheat; memset(TestCheat.Combination,0,CHEAT_ARRAY_SIZE); - //memcpy(myarray, (int [5]){a,b,c,d,e}, 5*sizeof (int)); + //memmove(myarray, (int [5]){a,b,c,d,e}, 5*sizeof (int)); - memcpy( TestCheat.Combination, + memmove( TestCheat.Combination, (unsigned short[CHEAT_ARRAY_SIZE]) { PAD_CIRCLE, PAD_CIRCLE, PAD_CROSS, PAD_TRIANGLE, PAD_TRIANGLE, PAD_TRIANGLE, 0 , 0 , @@ -341,7 +341,7 @@ static void MenuCheatInit(void) StackCheckCheat.Callback = &SystemPrintStackPointerAddress; memset(StackCheckCheat.Combination, 0, CHEAT_ARRAY_SIZE); - memcpy( StackCheckCheat.Combination, + memmove( StackCheckCheat.Combination, (unsigned short[CHEAT_ARRAY_SIZE]) { PAD_TRIANGLE, PAD_TRIANGLE, PAD_CROSS, PAD_TRIANGLE, PAD_L1, PAD_R1, 0 , 0 , @@ -354,7 +354,7 @@ static void MenuCheatInit(void) DevMenuCheat.Callback = &SystemDevMenuToggle; memset(DevMenuCheat.Combination, 0 , CHEAT_ARRAY_SIZE); - memcpy( DevMenuCheat.Combination, + memmove( DevMenuCheat.Combination, (unsigned short[CHEAT_ARRAY_SIZE]) { PAD_SQUARE, PAD_SQUARE, PAD_CROSS, PAD_CROSS, PAD_CIRCLE, PAD_CIRCLE, PAD_TRIANGLE , PAD_TRIANGLE , @@ -367,7 +367,7 @@ static void MenuCheatInit(void) SerialCheat.Callback = &SystemReturnToLoader; memset(SerialCheat.Combination, 0 , CHEAT_ARRAY_SIZE); - memcpy( SerialCheat.Combination, + memmove( SerialCheat.Combination, (unsigned short[CHEAT_ARRAY_SIZE]) { PAD_SQUARE, PAD_SQUARE, PAD_SQUARE, PAD_SQUARE, PAD_CIRCLE, PAD_CIRCLE, PAD_CIRCLE , PAD_CIRCLE , @@ -388,6 +388,8 @@ void MainMenu(void) GfxSetGlobalLuminance(NORMAL_LUMINANCE); + while (GfxIsGPUBusy()); + while (1) { enum -- cgit v1.2.3