diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-09-24 14:00:30 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-09-24 14:00:30 -0400 |
commit | 89c98f2ab74e6097fd85b05b64965c10c9941b5b (patch) | |
tree | 6a839497e6bcfa7937972d3053c49f65a7740701 /src | |
parent | d9d90b5a9fdb6d3dc0645b10444e02efab08d82e (diff) |
Start credits (nonmatching sub_80F3BD0)
Diffstat (limited to 'src')
-rw-r--r-- | src/credits.c | 1116 |
1 files changed, 1116 insertions, 0 deletions
diff --git a/src/credits.c b/src/credits.c new file mode 100644 index 000000000..0329bf7c3 --- /dev/null +++ b/src/credits.c @@ -0,0 +1,1116 @@ +#include "global.h" +#include "malloc.h" +#include "palette.h" +#include "gpu_regs.h" +#include "task.h" +#include "overworld.h" +#include "event_data.h" +#include "window.h" +#include "new_menu_helpers.h" +#include "menu.h" +#include "strings.h" +#include "field_weather.h" + +struct CreditsResources +{ + u8 unk_00; + u8 unk_01; + u8 unk_02; + u16 unk_04; + u16 unk_06; + u8 unk_08; + u8 unk_09; + u8 unk_0A; + bool8 unk_0B; + u8 filler_0C[16]; + u8 unk_1C; + u8 unk_1D; +}; + +struct UnkStruct_8410CF4 +{ + u8 unk0; + u8 unk1; + u16 unk2; +}; + +struct UnkStruct_84145BC +{ + const u8 * unk_0; + const u8 * unk_4; + u8 unk_8; +}; + +EWRAM_DATA struct CreditsResources * gUnknown_203AB40 = NULL; + +void sub_80F39E8(void); +s32 sub_80F3BD0(void); +bool32 sub_80F4328(void); +bool32 sub_80F4674(void); +void sub_80F48D0(void); +void sub_80F4930(u8 a0); + +/* +const ALIGNED(4) u8 gUnknown_8410E00[3] = {0, 5, 2}; +const ALIGNED(4) u8 gUnknown_8410E04[3] = {0, 1, 2}; + +const struct WindowTemplate gUnknown_8410E08 = { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 4, + .width = 30, + .height = 12, + .paletteNum = 15, + .baseBlock = 0x008 +}; + */ + +extern const struct UnkStruct_8410CF4 gUnknown_8410CF4[]; +extern const u8 gUnknown_8410E00[3]; +extern const u8 gUnknown_8410E04[3]; +extern const struct WindowTemplate gUnknown_8410E08; + +extern const char * gUnknown_8414588[]; +extern const struct UnkStruct_84145BC gUnknown_84145BC[]; + +void sub_80F39B4(void) +{ + gUnknown_203AB40 = AllocZeroed(sizeof(*gUnknown_203AB40)); + ResetTasks(); + gUnknown_203AB40->unk_02 = 0xFF; + gUnknown_203AB40->unk_1D = 0; + ResetSpriteData(); + SetMainCallback2(sub_80F39E8); +} + +void sub_80F39E8(void) +{ + switch (sub_80F3BD0()) + { + case 0: + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + break; + case 1: + if (gUnknown_203AB40->unk_1D & 1) + { + sub_80574A4(); + } + else + { + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + } + gUnknown_203AB40->unk_1D++; + break; + case 2: + FlagClear(0x4000); + gUnknown_2031DD8 = 0; + Free(gUnknown_203AB40); + SoftReset(RESET_ALL); + // noreturn + } +} + +void sub_80F3A74(void) +{ + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WININ, 0x1F3F); + SetGpuReg(REG_OFFSET_WINOUT, 0x000E); +} + +void sub_80F3AA4(void) +{ + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 4)); + SetGpuReg(REG_OFFSET_BLDY, 10); +} + +void sub_80F3AC4(void) +{ + gUnknown_203AB40->unk_0A = AddWindow(&gUnknown_8410E08); + FillWindowPixelBuffer(gUnknown_203AB40->unk_0A, PIXEL_FILL(0)); + PutWindowTilemap(gUnknown_203AB40->unk_0A); + CopyWindowToVram(gUnknown_203AB40->unk_0A, 3); + gUnknown_203AB40->unk_0B = TRUE; +} + +void sub_80F3B04(void) +{ + if (gUnknown_203AB40->unk_0B) + { + RemoveWindow(gUnknown_203AB40->unk_0A); + CleanupOverworldWindowsAndTilemaps(); + gUnknown_203AB40->unk_0B = FALSE; + } +} + +bool32 sub_80F3B2C(UNUSED u8 unused) +{ + switch (gUnknown_203AB40->unk_01) + { + case 0: + FlagSet(0x4000); + gUnknown_2031DD8 = 2; + gUnknown_203AB40->unk_1C = 0; + gUnknown_203AB40->unk_01++; + // fallthrough + case 1: + if (!sub_805750C(&gUnknown_203AB40->unk_1C, gUnknown_8414588[gUnknown_203AB40->unk_09], 0)) + return FALSE; + sub_80F3AC4(); + SetGpuReg(REG_OFFSET_WIN0H, 0xF0); + SetGpuReg(REG_OFFSET_WIN0V, 0x247C); + sub_80F3A74(); + sub_80F3AA4(); + Menu_LoadStdPalAt(0xF0); + gPlttBufferUnfaded[0xFF] = RGB_BLACK; + gPlttBufferFaded[0xFF] = RGB_BLACK; + return TRUE; + default: + return FALSE; + } +} + +#ifdef NONMATCHING +s32 sub_80F3BD0(void) +{ + u16 win0v[2]; + + switch (gUnknown_203AB40->unk_00) + { + case 0: + sub_80F3A74(); + SetGpuReg(REG_OFFSET_WIN0H, 0x40); + SetGpuReg(REG_OFFSET_WIN0V, 0x4F51); + gUnknown_203AB40->unk_00 = 1; + return 0; + case 1: + sub_80F3AA4(); + sub_80F3AC4(); + Menu_LoadStdPalAt(0xF0); + gPlttBufferUnfaded[0xFF] = RGB_BLACK; + gPlttBufferFaded[0xFF] = RGB_BLACK; + gUnknown_203AB40->unk_00 = 2; + return 0; + case 2: + win0v[0] = GetGpuReg(REG_OFFSET_WIN0V) >> 8; + win0v[1] = GetGpuReg(REG_OFFSET_WIN0V) & 0xFF; + if (win0v[0] == 0x24) + { + gUnknown_203AB40->unk_04 = 0; + gUnknown_203AB40->unk_00 = 3; + } + else + { + win0v[0]--; + win0v[1]++; + SetGpuReg(REG_OFFSET_WIN0V, win0v[1] + (win0v[0] << 8)); + } + return 0; + case 3: + if (gUnknown_203AB40->unk_04 == 0) + { + sub_80F4930(0); + gUnknown_203AB40->unk_04 = 100; + gUnknown_203AB40->unk_00 = 4; + } + else + { + gUnknown_203AB40->unk_04--; + } + return 0; + case 4: + if (gUnknown_203AB40->unk_04 == 0) + { + gUnknown_203AB40->unk_04 = 360; + AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 0x08, 0x29, 1, 2, gUnknown_8410E00, 0, gUnknown_841D198); + gUnknown_203AB40->unk_00 = 5; + } + else + { + gUnknown_203AB40->unk_04--; + } + return 0; + case 5: + if (gUnknown_203AB40->unk_04 == 0) + { + sub_80F3B04(); + gUnknown_203AB40->unk_00 = 6; + gUnknown_203AB40->unk_04 = 0; + gUnknown_203AB40->unk_06 = 0; + } + else + { + gUnknown_203AB40->unk_04--; + } + return 0; + case 6: + if (gUnknown_203AB40->unk_04 != 0) + { + gUnknown_203AB40->unk_04--; + return gUnknown_203AB40->unk_08; + } + else + { + switch (gUnknown_203AB40->unk_06) + { + case 0: + BeginNormalPaletteFade(0x00008000, 0, 0, 16, RGB_BLACK); + gUnknown_203AB40->unk_00 = 7; + FillWindowPixelBuffer(gUnknown_203AB40->unk_0A, PIXEL_FILL(0)); + return gUnknown_203AB40->unk_08; + case 1: + gUnknown_203AB40->unk_00 = 10; + gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + sub_807A944(1, 0, 0x3FFFFFFF); + break; + case 2: + gUnknown_203AB40->unk_00 = 12; + gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + break; + case 3: + gUnknown_203AB40->unk_00 = 13; + gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + fade_screen(1, 0); + break; + case 4: + gUnknown_203AB40->unk_00 = 15; + gUnknown_203AB40->unk_09 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1; + BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 16, RGB_BLACK); + break; + case 5: + gUnknown_203AB40->unk_00 = 17; + break; + } + gUnknown_203AB40->unk_04 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk2; + gUnknown_203AB40->unk_06++; + } + return 0; + case 7: + if (!gPaletteFade.active) + { + win0v[0] = gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_8; // unused + AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 2, 6, 0, 0, gUnknown_8410E00, -1, gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_0); + gUnknown_203AB40->unk_00 = 8; + } + return gUnknown_203AB40->unk_08; + case 8: + win0v[0] = gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_8; + AddTextPrinterParameterized4(gUnknown_203AB40->unk_0A, 1, 2, 6, 0, 0, gUnknown_8410E00, -1, gUnknown_84145BC[gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk1].unk_4); + gUnknown_203AB40->unk_00 = 9; + return gUnknown_203AB40->unk_08; + case 9: + CopyWindowToVram(gUnknown_203AB40->unk_0A, 2); + gUnknown_203AB40->unk_04 = gUnknown_8410CF4[gUnknown_203AB40->unk_06].unk2; + gUnknown_203AB40->unk_06++; + BeginNormalPaletteFade(0x00008000, 0, 16, 0, RGB_BLACK); + gUnknown_203AB40->unk_00 = 6; + return gUnknown_203AB40->unk_08; + case 10: + if (!gPaletteFade.active) + { + sub_80F3B04(); + gUnknown_203AB40->unk_01 = 0; + gUnknown_203AB40->unk_00 = 11; + } + return 0; + case 11: + if (sub_80F3B2C(gUnknown_203AB40->unk_09)) + { + gUnknown_203AB40->unk_08 = 1; + gUnknown_203AB40->unk_00 = 6; + } + return 0; + case 12: + if (!gPaletteFade.active) + { + sub_80F3B04(); + gUnknown_203AB40->unk_01 = 0; + while (sub_80F3B2C(gUnknown_203AB40->unk_09)) + {} + switch (gUnknown_203AB40->unk_09) + { + default: + win0v[0] = 1; + break; + case 6: + win0v[0] = 2; + break; + case 9: + win0v[0] = 3; + break; + case 12: + win0v[0] = 4; + break; + } + sub_80F4930(win0v[0]); + gUnknown_203AB40->unk_08 = 1; + gUnknown_203AB40->unk_00 = 6; + } + return 0; + case 13: + if (!gPaletteFade.active) + { + sub_80F48D0(); + sub_80F3B04(); + gUnknown_203AB40->unk_01 = 0; + gUnknown_203AB40->unk_08 = 0; + gUnknown_203AB40->unk_00 = 14; + } + return 0; + case 14: + if (sub_80F4328()) + { + gUnknown_203AB40->unk_00 = 6; + } + return 0; + case 15: + if (!gPaletteFade.active) + { + sub_80F3B04(); + gUnknown_203AB40->unk_01 = 0; + gUnknown_203AB40->unk_08 = 0; + gUnknown_203AB40->unk_00 = 16; + } + return 0; + case 16: + if (sub_80F4674()) + { + gUnknown_203AB40->unk_00 = 6; + } + return 0; + case 17: + if (JOY_NEW(A_BUTTON)) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); + gUnknown_203AB40->unk_00 = 18; + } + else if (gUnknown_203AB40->unk_04 == 0) + { + gUnknown_203AB40->unk_00 = 18; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); + } + else + gUnknown_203AB40->unk_04--; + return 0; + case 18: + if (!gPaletteFade.active) + sub_80F3B04(); + default: + return 2; + } +} +#else +NAKED +s32 sub_80F3BD0(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tsub sp, 0x24\n" + "\tldr r1, _080F3BEC @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tldrb r0, [r0]\n" + "\tadds r7, r1, 0\n" + "\tcmp r0, 0x12\n" + "\tbls _080F3BE2\n" + "\tb _080F4180_default_return2\n" + "_080F3BE2:\n" + "\tlsls r0, 2\n" + "\tldr r1, _080F3BF0 @ =_080F3BF4\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_080F3BEC: .4byte gUnknown_203AB40\n" + "_080F3BF0: .4byte _080F3BF4\n" + "\t.align 2, 0\n" + "_080F3BF4:\n" + "\t.4byte _080F3C40_case00\n" + "\t.4byte _080F3C64_case01\n" + "\t.4byte _080F3C98_case02\n" + "\t.4byte _080F3CEE_case03\n" + "\t.4byte _080F3D0A_case04\n" + "\t.4byte _080F3D48_case05\n" + "\t.4byte _080F3D6A_case06\n" + "\t.4byte _080F3EB4_case07\n" + "\t.4byte _080F3F24_case08\n" + "\t.4byte _080F3F84_case09\n" + "\t.4byte _080F3FC4_case0A\n" + "\t.4byte _080F3FF0_case0B\n" + "\t.4byte _080F400A_case0C\n" + "\t.4byte _080F4084_case0D\n" + "\t.4byte _080F40B8_case0E\n" + "\t.4byte _080F40D0_case0F\n" + "\t.4byte _080F4100_case10\n" + "\t.4byte _080F4118_case11\n" + "\t.4byte _080F4170_case12\n" + "_080F3C40_case00:\n" + "\tbl sub_80F3A74\n" + "\tmovs r0, 0x40\n" + "\tmovs r1, 0xF0\n" + "\tbl SetGpuReg\n" + "\tldr r1, _080F3C5C @ =0x00004f51\n" + "\tmovs r0, 0x44\n" + "\tbl SetGpuReg\n" + "\tldr r0, _080F3C60 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x1\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3C5C: .4byte 0x00004f51\n" + "_080F3C60: .4byte gUnknown_203AB40\n" + "_080F3C64_case01:\n" + "\tbl sub_80F3AA4\n" + "\tbl sub_80F3AC4\n" + "\tmovs r0, 0xF0\n" + "\tbl Menu_LoadStdPalAt\n" + "\tldr r0, _080F3C8C @ =gPlttBufferUnfaded\n" + "\tmovs r2, 0xFF\n" + "\tlsls r2, 1\n" + "\tadds r0, r2\n" + "\tmovs r1, 0\n" + "\tstrh r1, [r0]\n" + "\tldr r0, _080F3C90 @ =gPlttBufferFaded\n" + "\tadds r0, r2\n" + "\tstrh r1, [r0]\n" + "\tldr r0, _080F3C94 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x2\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3C8C: .4byte gPlttBufferUnfaded\n" + "_080F3C90: .4byte gPlttBufferFaded\n" + "_080F3C94: .4byte gUnknown_203AB40\n" + "_080F3C98_case02:\n" + "\tmovs r0, 0x44\n" + "\tbl GetGpuReg\n" + "\tadd r1, sp, 0x14\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 24\n" + "\tstrh r0, [r1]\n" + "\tmovs r0, 0x44\n" + "\tbl GetGpuReg\n" + "\tadd r2, sp, 0x14\n" + "\tmovs r1, 0xFF\n" + "\tands r1, r0\n" + "\tstrh r1, [r2, 0x2]\n" + "\tadds r0, r2, 0\n" + "\tldrh r0, [r0]\n" + "\tcmp r0, 0x24\n" + "\tbne _080F3CCC\n" + "\tldr r0, _080F3CC8 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0\n" + "\tstrh r0, [r1, 0x4]\n" + "\tmovs r0, 0x3\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3CC8: .4byte gUnknown_203AB40\n" + "_080F3CCC:\n" + "\tadd r1, sp, 0x14\n" + "\tsubs r0, 0x1\n" + "\tstrh r0, [r1]\n" + "\tadds r2, r1, 0\n" + "\tadds r0, r1, 0\n" + "\tldrh r1, [r0, 0x2]\n" + "\tadds r1, 0x1\n" + "\tstrh r1, [r2, 0x2]\n" + "\tldrh r0, [r0]\n" + "\tlsls r0, 8\n" + "\tadds r1, r0\n" + "\tlsls r1, 16\n" + "\tlsrs r1, 16\n" + "\tmovs r0, 0x44\n" + "\tbl SetGpuReg\n" + "\tb _080F3D06_return0\n" + "_080F3CEE_case03:\n" + "\tldr r1, [r7]\n" + "\tldrh r0, [r1, 0x4]\n" + "\tcmp r0, 0\n" + "\tbne _080F3D52_decfield4_return0\n" + "\tmovs r0, 0\n" + "\tbl sub_80F4930\n" + "\tldr r0, [r7]\n" + "\tmovs r1, 0x64\n" + "\tstrh r1, [r0, 0x4]\n" + "\tmovs r1, 0x4\n" + "\tstrb r1, [r0]\n" + "_080F3D06_return0:\n" + "\tmovs r0, 0\n" + "\tb _080F4182_return\n" + "_080F3D0A_case04:\n" + "\tldr r1, [r7]\n" + "\tldrh r0, [r1, 0x4]\n" + "\tadds r2, r0, 0\n" + "\tcmp r2, 0\n" + "\tbne _080F3D52_decfield4_return0\n" + "\tmovs r0, 0xB4\n" + "\tlsls r0, 1\n" + "\tstrh r0, [r1, 0x4]\n" + "\tldrb r0, [r1, 0xA]\n" + "\tmovs r1, 0x1\n" + "\tstr r1, [sp]\n" + "\tmovs r1, 0x2\n" + "\tstr r1, [sp, 0x4]\n" + "\tldr r1, _080F3D40 @ =gUnknown_8410E00\n" + "\tstr r1, [sp, 0x8]\n" + "\tstr r2, [sp, 0xC]\n" + "\tldr r1, _080F3D44 @ =gUnknown_841D198\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x8\n" + "\tmovs r3, 0x29\n" + "\tbl AddTextPrinterParameterized4\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x5\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3D40: .4byte gUnknown_8410E00\n" + "_080F3D44: .4byte gUnknown_841D198\n" + "_080F3D48_case05:\n" + "\tldr r1, [r7]\n" + "\tldrh r0, [r1, 0x4]\n" + "\tadds r4, r0, 0\n" + "\tcmp r4, 0\n" + "\tbeq _080F3D58\n" + "_080F3D52_decfield4_return0:\n" + "\tsubs r0, 0x1\n" + "\tstrh r0, [r1, 0x4]\n" + "\tb _080F3D06_return0\n" + "_080F3D58:\n" + "\tbl sub_80F3B04\n" + "\tldr r0, [r7]\n" + "\tmovs r1, 0x6\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r7]\n" + "\tstrh r4, [r0, 0x4]\n" + "\tstrh r4, [r0, 0x6]\n" + "\tb _080F3D06_return0\n" + "_080F3D6A_case06:\n" + "\tldr r2, [r7]\n" + "\tldrh r0, [r2, 0x4]\n" + "\tcmp r0, 0\n" + "\tbeq _080F3D7A\n" + "\tsubs r0, 0x1\n" + "\tstrh r0, [r2, 0x4]\n" + "\tldrb r0, [r2, 0x8]\n" + "\tb _080F4182_return\n" + "_080F3D7A:\n" + "\tldr r1, _080F3D94 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0]\n" + "\tcmp r0, 0x5\n" + "\tbls _080F3D8A\n" + "\tb _080F3E94\n" + "_080F3D8A:\n" + "\tlsls r0, 2\n" + "\tldr r1, _080F3D98 @ =_080F3D9C\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_080F3D94: .4byte gUnknown_8410CF4\n" + "_080F3D98: .4byte _080F3D9C\n" + "\t.align 2, 0\n" + "_080F3D9C:\n" + "\t.4byte _080F3DB4\n" + "\t.4byte _080F3DE0\n" + "\t.4byte _080F3E10\n" + "\t.4byte _080F3E30\n" + "\t.4byte _080F3E58\n" + "\t.4byte _080F3E8C\n" + "_080F3DB4:\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 8\n" + "\tmovs r1, 0\n" + "\tstr r1, [sp]\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tldr r4, _080F3DDC @ =gUnknown_203AB40\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x7\n" + "\tstrb r0, [r1]\n" + "\tldr r0, [r4]\n" + "\tldrb r0, [r0, 0xA]\n" + "\tmovs r1, 0\n" + "\tbl FillWindowPixelBuffer\n" + "\tldr r0, [r4]\n" + "\tldrb r0, [r0, 0x8]\n" + "\tb _080F4182_return\n" + "\t.align 2, 0\n" + "_080F3DDC: .4byte gUnknown_203AB40\n" + "_080F3DE0:\n" + "\tldr r2, _080F3E04 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0xA\n" + "\tstrb r0, [r1]\n" + "\tldr r2, [r2]\n" + "\tldr r1, _080F3E08 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tstrb r0, [r2, 0x9]\n" + "\tldr r2, _080F3E0C @ =0x3fffffff\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0\n" + "\tbl sub_807A944\n" + "\tb _080F3E94\n" + "\t.align 2, 0\n" + "_080F3E04: .4byte gUnknown_203AB40\n" + "_080F3E08: .4byte gUnknown_8410CF4\n" + "_080F3E0C: .4byte 0x3fffffff\n" + "_080F3E10:\n" + "\tldr r2, _080F3E28 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0xC\n" + "\tstrb r0, [r1]\n" + "\tldr r2, [r2]\n" + "\tldr r1, _080F3E2C @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tstrb r0, [r2, 0x9]\n" + "\tb _080F3E94\n" + "\t.align 2, 0\n" + "_080F3E28: .4byte gUnknown_203AB40\n" + "_080F3E2C: .4byte gUnknown_8410CF4\n" + "_080F3E30:\n" + "\tldr r2, _080F3E50 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0xD\n" + "\tstrb r0, [r1]\n" + "\tldr r2, [r2]\n" + "\tldr r1, _080F3E54 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tstrb r0, [r2, 0x9]\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0\n" + "\tbl fade_screen\n" + "\tb _080F3E94\n" + "\t.align 2, 0\n" + "_080F3E50: .4byte gUnknown_203AB40\n" + "_080F3E54: .4byte gUnknown_8410CF4\n" + "_080F3E58:\n" + "\tldr r2, _080F3E84 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r3, 0\n" + "\tmovs r0, 0xF\n" + "\tstrb r0, [r1]\n" + "\tldr r2, [r2]\n" + "\tldr r1, _080F3E88 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tstrb r0, [r2, 0x9]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r3, [sp]\n" + "\tmovs r1, 0x4\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tb _080F3E94\n" + "\t.align 2, 0\n" + "_080F3E84: .4byte gUnknown_203AB40\n" + "_080F3E88: .4byte gUnknown_8410CF4\n" + "_080F3E8C:\n" + "\tldr r0, _080F3EAC @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x11\n" + "\tstrb r0, [r1]\n" + "_080F3E94:\n" + "\tldr r0, _080F3EAC @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tldr r2, _080F3EB0 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r1, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r2\n" + "\tldrh r0, [r0, 0x2]\n" + "\tstrh r0, [r1, 0x4]\n" + "\tldrh r0, [r1, 0x6]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r1, 0x6]\n" + "\tb _080F3D06_return0\n" + "\t.align 2, 0\n" + "_080F3EAC: .4byte gUnknown_203AB40\n" + "_080F3EB0: .4byte gUnknown_8410CF4\n" + "_080F3EB4_case07:\n" + "\tldr r0, _080F3F14 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r6, r0, 24\n" + "\tcmp r6, 0\n" + "\tbne _080F3FBA_returnfield8\n" + "\tadd r3, sp, 0x14\n" + "\tldr r5, _080F3F18 @ =gUnknown_84145BC\n" + "\tldr r4, _080F3F1C @ =gUnknown_8410CF4\n" + "\tldr r2, [r7]\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r4\n" + "\tldrb r1, [r0, 0x1]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r5\n" + "\tldrb r0, [r0, 0x8]\n" + "\tstrh r0, [r3]\n" + "\tldrb r0, [r2, 0xA]\n" + "\tstr r6, [sp]\n" + "\tstr r6, [sp, 0x4]\n" + "\tldr r1, _080F3F20 @ =gUnknown_8410E00\n" + "\tstr r1, [sp, 0x8]\n" + "\tmovs r1, 0x1\n" + "\tnegs r1, r1\n" + "\tstr r1, [sp, 0xC]\n" + "\tldrh r1, [r2, 0x6]\n" + "\tlsls r1, 2\n" + "\tadds r1, r4\n" + "\tldrb r2, [r1, 0x1]\n" + "\tlsls r1, r2, 1\n" + "\tadds r1, r2\n" + "\tlsls r1, 2\n" + "\tadds r1, r5\n" + "\tldr r1, [r1]\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x2\n" + "\tmovs r3, 0x6\n" + "\tbl AddTextPrinterParameterized4\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x8\n" + "\tb _080F3FB8_setfield0_returnfield8\n" + "\t.align 2, 0\n" + "_080F3F14: .4byte gPaletteFade\n" + "_080F3F18: .4byte gUnknown_84145BC\n" + "_080F3F1C: .4byte gUnknown_8410CF4\n" + "_080F3F20: .4byte gUnknown_8410E00\n" + "_080F3F24_case08:\n" + "\tadd r4, sp, 0x14\n" + "\tldr r3, _080F3F78 @ =gUnknown_84145BC\n" + "\tldr r5, _080F3F7C @ =gUnknown_8410CF4\n" + "\tldr r2, [r7]\n" + "\tldrh r0, [r2, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r5\n" + "\tldrb r1, [r0, 0x1]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r3\n" + "\tldrb r0, [r0, 0x8]\n" + "\tmovs r1, 0\n" + "\tstrh r0, [r4]\n" + "\tldrb r0, [r2, 0xA]\n" + "\tstr r1, [sp]\n" + "\tstr r1, [sp, 0x4]\n" + "\tldr r1, _080F3F80 @ =gUnknown_8410E04\n" + "\tstr r1, [sp, 0x8]\n" + "\tmovs r1, 0x1\n" + "\tnegs r1, r1\n" + "\tstr r1, [sp, 0xC]\n" + "\tldrh r1, [r2, 0x6]\n" + "\tlsls r1, 2\n" + "\tadds r1, r5\n" + "\tldrb r2, [r1, 0x1]\n" + "\tlsls r1, r2, 1\n" + "\tadds r1, r2\n" + "\tlsls r1, 2\n" + "\tadds r3, 0x4\n" + "\tadds r1, r3\n" + "\tldr r1, [r1]\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0x2\n" + "\tmovs r2, 0x8\n" + "\tmovs r3, 0x6\n" + "\tbl AddTextPrinterParameterized4\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x9\n" + "\tb _080F3FB8_setfield0_returnfield8\n" + "\t.align 2, 0\n" + "_080F3F78: .4byte gUnknown_84145BC\n" + "_080F3F7C: .4byte gUnknown_8410CF4\n" + "_080F3F80: .4byte gUnknown_8410E04\n" + "_080F3F84_case09:\n" + "\tldr r0, [r7]\n" + "\tldrb r0, [r0, 0xA]\n" + "\tmovs r1, 0x2\n" + "\tbl CopyWindowToVram\n" + "\tldr r1, [r7]\n" + "\tldr r2, _080F3FC0 @ =gUnknown_8410CF4\n" + "\tldrh r0, [r1, 0x6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r2\n" + "\tldrh r0, [r0, 0x2]\n" + "\tmovs r2, 0\n" + "\tstrh r0, [r1, 0x4]\n" + "\tldrh r0, [r1, 0x6]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r1, 0x6]\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 8\n" + "\tstr r2, [sp]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0x10\n" + "\tmovs r3, 0\n" + "\tbl BeginNormalPaletteFade\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x6\n" + "_080F3FB8_setfield0_returnfield8:\n" + "\tstrb r0, [r1]\n" + "_080F3FBA_returnfield8:\n" + "\tldr r0, [r7]\n" + "\tldrb r0, [r0, 0x8]\n" + "\tb _080F4182_return\n" + "\t.align 2, 0\n" + "_080F3FC0: .4byte gUnknown_8410CF4\n" + "_080F3FC4_case0A:\n" + "\tldr r0, _080F3FE8 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080F3FD6\n" + "\tb _080F3D06_return0\n" + "_080F3FD6:\n" + "\tbl sub_80F3B04\n" + "\tldr r1, _080F3FEC @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tldr r1, [r1]\n" + "\tmovs r0, 0xB\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F3FE8: .4byte gPaletteFade\n" + "_080F3FEC: .4byte gUnknown_203AB40\n" + "_080F3FF0_case0B:\n" + "\tldr r0, [r7]\n" + "\tldrb r0, [r0, 0x9]\n" + "\tbl sub_80F3B2C\n" + "\tcmp r0, 0\n" + "\tbne _080F3FFE\n" + "\tb _080F3D06_return0\n" + "_080F3FFE:\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x1\n" + "\tstrb r0, [r1, 0x8]\n" + "\tldr r1, [r7]\n" + "\tmovs r0, 0x6\n" + "\tb _080F413C_setfield0_return0\n" + "_080F400A_case0C:\n" + "\tldr r0, _080F4050 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080F401C\n" + "\tb _080F3D06_return0\n" + "_080F401C:\n" + "\tbl sub_80F3B04\n" + "\tldr r1, _080F4054 @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tadds r4, r1, 0\n" + "_080F4028:\n" + "\tldr r0, [r4]\n" + "\tldrb r0, [r0, 0x9]\n" + "\tbl sub_80F3B2C\n" + "\tcmp r0, 0\n" + "\tbeq _080F4028\n" + "\tldr r0, _080F4054 @ =gUnknown_203AB40\n" + "\tldr r0, [r0]\n" + "\tldrb r0, [r0, 0x9]\n" + "\tcmp r0, 0x6\n" + "\tbeq _080F4058\n" + "\tcmp r0, 0x6\n" + "\tble _080F404A\n" + "\tcmp r0, 0x9\n" + "\tbeq _080F405E\n" + "\tcmp r0, 0xC\n" + "\tbeq _080F4064\n" + "_080F404A:\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x1\n" + "\tb _080F4068\n" + "\t.align 2, 0\n" + "_080F4050: .4byte gPaletteFade\n" + "_080F4054: .4byte gUnknown_203AB40\n" + "_080F4058:\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x2\n" + "\tb _080F4068\n" + "_080F405E:\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x3\n" + "\tb _080F4068\n" + "_080F4064:\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x4\n" + "_080F4068:\n" + "\tstrh r0, [r1]\n" + "\tadd r0, sp, 0x14\n" + "\tldrb r0, [r0]\n" + "\tbl sub_80F4930\n" + "\tldr r2, _080F4080 @ =gUnknown_203AB40\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0x1\n" + "\tstrb r0, [r1, 0x8]\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0x6\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F4080: .4byte gUnknown_203AB40\n" + "_080F4084_case0D:\n" + "\tldr r0, _080F40B0 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080F4096\n" + "\tb _080F3D06_return0\n" + "_080F4096:\n" + "\tbl sub_80F48D0\n" + "\tbl sub_80F3B04\n" + "\tldr r1, _080F40B4 @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x8]\n" + "\tldr r1, [r1]\n" + "\tmovs r0, 0xE\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F40B0: .4byte gPaletteFade\n" + "_080F40B4: .4byte gUnknown_203AB40\n" + "_080F40B8_case0E:\n" + "\tbl sub_80F4328\n" + "\tcmp r0, 0\n" + "\tbne _080F40C2\n" + "\tb _080F3D06_return0\n" + "_080F40C2:\n" + "\tldr r0, _080F40CC @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x6\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F40CC: .4byte gUnknown_203AB40\n" + "_080F40D0_case0F:\n" + "\tldr r0, _080F40F8 @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080F40E2\n" + "\tb _080F3D06_return0\n" + "_080F40E2:\n" + "\tbl sub_80F3B04\n" + "\tldr r1, _080F40FC @ =gUnknown_203AB40\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tldr r0, [r1]\n" + "\tstrb r4, [r0, 0x8]\n" + "\tldr r1, [r1]\n" + "\tmovs r0, 0x10\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F40F8: .4byte gPaletteFade\n" + "_080F40FC: .4byte gUnknown_203AB40\n" + "_080F4100_case10:\n" + "\tbl sub_80F4674\n" + "\tcmp r0, 0\n" + "\tbne _080F410A\n" + "\tb _080F3D06_return0\n" + "_080F410A:\n" + "\tldr r0, _080F4114 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x6\n" + "\tb _080F413C_setfield0_return0\n" + "\t.align 2, 0\n" + "_080F4114: .4byte gUnknown_203AB40\n" + "_080F4118_case11:\n" + "\tldr r0, _080F4140 @ =gMain\n" + "\tldrh r1, [r0, 0x2E]\n" + "\tmovs r0, 0x1\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _080F414C\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tldr r1, _080F4144 @ =0x00007fff\n" + "\tstr r1, [sp]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tldr r0, _080F4148 @ =gUnknown_203AB40\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x12\n" + "_080F413C_setfield0_return0:\n" + "\tstrb r0, [r1]\n" + "\tb _080F3D06_return0\n" + "\t.align 2, 0\n" + "_080F4140: .4byte gMain\n" + "_080F4144: .4byte 0x00007fff\n" + "_080F4148: .4byte gUnknown_203AB40\n" + "_080F414C:\n" + "\tldr r1, [r7]\n" + "\tldrh r0, [r1, 0x4]\n" + "\tcmp r0, 0\n" + "\tbeq _080F4156\n" + "\tb _080F3D52_decfield4_return0\n" + "_080F4156:\n" + "\tmovs r0, 0x12\n" + "\tstrb r0, [r1]\n" + "\tsubs r0, 0x13\n" + "\tldr r1, _080F416C @ =0x00007fff\n" + "\tstr r1, [sp]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tb _080F3D06_return0\n" + "\t.align 2, 0\n" + "_080F416C: .4byte 0x00007fff\n" + "_080F4170_case12:\n" + "\tldr r0, _080F418C @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _080F4180_default_return2\n" + "\tbl sub_80F3B04\n" + "_080F4180_default_return2:\n" + "\tmovs r0, 0x2\n" + "_080F4182_return:\n" + "\tadd sp, 0x24\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.align 2, 0\n" + "_080F418C: .4byte gPaletteFade"); +} +#endif //NONMATCHING |