diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2018-11-30 01:34:40 +0100 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2018-11-30 01:34:40 +0100 |
| commit | 8fcf5bf1f74873f49b792d3e3f661a2e7feda673 (patch) | |
| tree | d134d1c9d50aefcd00f973d34d14c519b0526c77 /Source/LoadMenu.c | |
| parent | c33fcca6d44264834baf42de65fe9d19c0f62ff4 (diff) | |
| download | airport-8fcf5bf1f74873f49b792d3e3f661a2e7feda673.tar.gz | |
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.
Diffstat (limited to 'Source/LoadMenu.c')
| -rw-r--r-- | Source/LoadMenu.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/Source/LoadMenu.c b/Source/LoadMenu.c index e5e67bc..d3f7bca 100644 --- a/Source/LoadMenu.c +++ b/Source/LoadMenu.c @@ -91,13 +91,19 @@ static GsSprite LoadMenuTitleSpr; static GsLine LoadMenuBarLines[LOADING_BAR_N_LINES]; static GsRectangle LoadMenuBarRect; -static const char* LoadMenuFiles[] = { "DATA\\SPRITES\\PLANE.TIM", - "DATA\\SPRITES\\LOADING.TIM", - "DATA\\FONTS\\FONT_2.FNT" }; +static const char* LoadMenuFiles[] = +{ + "DATA\\SPRITES\\PLANE.TIM", + "DATA\\SPRITES\\LOADING.TIM", + "DATA\\FONTS\\FONT_2.FNT" +}; -static void* LoadMenuDest[] = { (GsSprite*)&LoadMenuPlaneSpr, - (GsSprite*)&LoadMenuTitleSpr, - (TYPE_FONT*)&SmallFont }; +static void* const LoadMenuDest[] = +{ + &LoadMenuPlaneSpr, + &LoadMenuTitleSpr, + &SmallFont +}; static const char* strCurrentFile; @@ -239,8 +245,6 @@ void LoadMenuInit(void) GfxSetGlobalLuminance(0); - Serial_printf("I_MASK = 0x%08X\n", (*(unsigned int*)0x1F801074)); - SetVBlankHandler(&ISR_LoadMenuVBlank); } @@ -250,7 +254,9 @@ void LoadMenuEnd(void) load_menu_running = false; while (LoadMenuISRHasEnded() == false); - Serial_printf("Set default VBlank handler.\n"); + + while (GfxIsGPUBusy()); + SetVBlankHandler(&ISR_SystemDefaultVBlank); GfxSetGlobalLuminance(NORMAL_LUMINANCE); |
