diff options
-rw-r--r-- | asm/pokenav.s | 449 | ||||
-rw-r--r-- | src/pokenav_before.c | 158 |
2 files changed, 157 insertions, 450 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s index 84ca7e1d5..1eb6ce7ee 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -6,455 +6,6 @@ .text - thumb_func_start sub_80EC67C -sub_80EC67C: @ 80EC67C - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _080EC69C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x5 - bls _080EC692 - b _080EC800 -_080EC692: - lsls r0, 2 - ldr r1, _080EC6A0 @ =_080EC6A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC69C: .4byte 0x02000000 -_080EC6A0: .4byte _080EC6A4 - .align 2, 0 -_080EC6A4: - .4byte _080EC6BC - .4byte _080EC718 - .4byte _080EC746 - .4byte _080EC77C - .4byte _080EC7A0 - .4byte _080EC7C4 -_080EC6BC: - bl sub_80FAB60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080EC6E2 - cmp r0, 0x3 - bgt _080EC6D2 - cmp r0, 0x1 - beq _080EC6DC - b _080EC800 -_080EC6D2: - cmp r0, 0x4 - beq _080EC6E8 - cmp r0, 0x5 - beq _080EC700 - b _080EC800 -_080EC6DC: - bl sub_80EED9C - b _080EC800 -_080EC6E2: - bl sub_80EF9F8 - b _080EC800 -_080EC6E8: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC6FC @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0] - b _080EC800 - .align 2, 0 -_080EC6FC: .4byte 0x02000000 -_080EC700: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC714 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0] - b _080EC800 - .align 2, 0 -_080EC714: .4byte 0x02000000 -_080EC718: - ldr r1, _080EC730 @ =0x00006e90 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EC734 - bl sub_80FAEC4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC7BC - .align 2, 0 -_080EC730: .4byte 0x00006e90 -_080EC734: - movs r0, 0x1 - bl sub_80EFBDC - lsls r0, 24 - cmp r0, 0 - bne _080EC800 - bl sub_80FAEC4 - b _080EC7B6 -_080EC746: - bl sub_80FAFC0 - lsls r0, 24 - cmp r0, 0 - bne _080EC800 - ldr r5, _080EC76C @ =0x02000000 - ldr r1, _080EC770 @ =0x00006e90 - adds r0, r5, r1 - ldrb r4, [r0] - cmp r4, 0 - bne _080EC774 - bl sub_80EFBB0 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r5, r2 - strh r4, [r0] - b _080EC800 - .align 2, 0 -_080EC76C: .4byte 0x02000000 -_080EC770: .4byte 0x00006e90 -_080EC774: - movs r0, 0xC1 - lsls r0, 2 - adds r1, r5, r0 - b _080EC7BC -_080EC77C: - movs r0, 0 - bl sub_80EFBDC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EC800 - bl sub_80EFBB0 - ldr r0, _080EC79C @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - strh r4, [r0] - b _080EC800 - .align 2, 0 -_080EC79C: .4byte 0x02000000 -_080EC7A0: - movs r2, 0xC2 - lsls r2, 2 - adds r0, r4, r2 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade -_080EC7B6: - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 -_080EC7BC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC800 -_080EC7C4: - ldr r0, _080EC808 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC800 - bl sub_80F2DF4 - movs r0, 0x4 - bl sub_80F2D04 - ldr r3, _080EC80C @ =gSaveBlock2 - movs r2, 0 - ldr r0, _080EC810 @ =0x02000000 - ldr r1, _080EC814 @ =0x00006e90 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EC7EC - movs r2, 0x1 -_080EC7EC: - lsls r2, 3 - ldrb r1, [r3, 0x15] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x15] - ldr r0, _080EC818 @ =sub_80EC00C - bl sub_80EBDBC -_080EC800: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EC808: .4byte gPaletteFade -_080EC80C: .4byte gSaveBlock2 -_080EC810: .4byte 0x02000000 -_080EC814: .4byte 0x00006e90 -_080EC818: .4byte sub_80EC00C - thumb_func_end sub_80EC67C - - thumb_func_start sub_80EC81C -sub_80EC81C: @ 80EC81C - push {r4,lr} - ldr r0, _080EC834 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC838 - cmp r0, 0x1 - beq _080EC850 - b _080EC860 - .align 2, 0 -_080EC834: .4byte 0x02000000 -_080EC838: - movs r0, 0 - bl sub_80F2D04 - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC860 -_080EC850: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC860 - ldr r0, _080EC868 @ =sub_80EC86C - bl sub_80EBDBC -_080EC860: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC868: .4byte sub_80EC86C - thumb_func_end sub_80EC81C - - thumb_func_start sub_80EC86C -sub_80EC86C: @ 80EC86C - push {r4-r6,lr} - ldr r4, _080EC884 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0 - beq _080EC888 - cmp r0, 0x1 - beq _080EC944 - b _080EC954 - .align 2, 0 -_080EC884: .4byte 0x02000000 -_080EC888: - bl sub_80EEC90 - lsls r0, 24 - cmp r0, 0 - beq _080EC8B0 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC8AC @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 - bl sub_80EED9C - b _080EC954 - .align 2, 0 -_080EC8AC: .4byte 0x00006dad -_080EC8B0: - ldr r0, _080EC8E4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EC918 - movs r0, 0x5 - bl PlaySE - ldr r2, _080EC8E8 @ =0x00006dad - adds r0, r4, r2 - ldrb r1, [r0] - adds r2, 0x43 - adds r0, r4, r2 - strb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080EC900 - cmp r0, 0x1 - bgt _080EC8EC - cmp r0, 0 - beq _080EC8F2 - b _080EC954 - .align 2, 0 -_080EC8E4: .4byte gMain -_080EC8E8: .4byte 0x00006dad -_080EC8EC: - cmp r0, 0x2 - beq _080EC90C - b _080EC954 -_080EC8F2: - ldr r0, _080EC8FC @ =sub_80ED620 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC8FC: .4byte sub_80ED620 -_080EC900: - ldr r0, _080EC908 @ =sub_80EC960 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC908: .4byte sub_80EC960 -_080EC90C: - ldr r0, _080EC914 @ =sub_80EC210 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC914: .4byte sub_80EC210 -_080EC918: - movs r6, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EC954 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC93C @ =0x00006df0 - adds r0, r4, r1 - strb r6, [r0] - ldr r2, _080EC940 @ =0x00006dad - adds r0, r4, r2 - strb r6, [r0] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080EC954 - .align 2, 0 -_080EC93C: .4byte 0x00006df0 -_080EC940: .4byte 0x00006dad -_080EC944: - bl sub_80F1E6C - lsls r0, 24 - cmp r0, 0 - bne _080EC954 - ldr r0, _080EC95C @ =sub_80EC210 - bl sub_80EBDBC -_080EC954: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EC95C: .4byte sub_80EC210 - thumb_func_end sub_80EC86C - - thumb_func_start sub_80EC960 -sub_80EC960: @ 80EC960 - push {r4,lr} - ldr r0, _080EC978 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC97C - cmp r0, 0x1 - beq _080EC98E - b _080EC99E - .align 2, 0 -_080EC978: .4byte 0x02000000 -_080EC97C: - movs r0, 0x2 - movs r1, 0 - movs r2, 0x5 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC99E -_080EC98E: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC99E - ldr r0, _080EC9A4 @ =sub_80ECC08 - bl sub_80EBDBC -_080EC99E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC9A4: .4byte sub_80ECC08 - thumb_func_end sub_80EC960 - - thumb_func_start sub_80EC9A8 -sub_80EC9A8: @ 80EC9A8 - push {r4,r5,lr} - ldr r5, _080EC9C0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC9C4 - cmp r0, 0x1 - beq _080EC9E4 - b _080ECA00 - .align 2, 0 -_080EC9C0: .4byte 0x02000000 -_080EC9C4: - movs r0, 0x5 - bl sub_80F2D04 - ldr r1, _080EC9E0 @ =0x00006df0 - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x1 - movs r2, 0xC - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080ECA00 - .align 2, 0 -_080EC9E0: .4byte 0x00006df0 -_080EC9E4: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080ECA00 - ldr r0, _080ECA08 @ =sub_80EC86C - bl sub_80EBDBC - ldr r1, _080ECA0C @ =0x00006dad - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 -_080ECA00: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECA08: .4byte sub_80EC86C -_080ECA0C: .4byte 0x00006dad - thumb_func_end sub_80EC9A8 - thumb_func_start sub_80ECA10 sub_80ECA10: @ 80ECA10 push {r4,lr} diff --git a/src/pokenav_before.c b/src/pokenav_before.c index 4545da2c3..577441733 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -29,7 +29,11 @@ struct UnknownPokenav0 { /* 0x6db2 */ u8 var6db2; /* 0x6db3 */ u8 fill6db3[0x29]; /* 0x6ddc */ u8 var6ddc; - /* 0x6ddd */ u8 fill6ddd[0x198b]; + /* 0x6ddd */ u8 fill6ddd[0x13]; + /* 0x6df0 */ s8 var6df0; + /* 0x6df1 */ u8 fill6df1[0x9f]; + /* 0x6e90 */ u8 var6e90; + /* 0x6e91 */ u8 fill6e91[0x18d7]; /* 0x8768 */ u32 var8768; /* 0x876C */ u8 fill876B[0x00bc]; /* 0x8828 */ u8 var8828; @@ -974,3 +978,155 @@ void sub_80EC4A0() { sub_80EBDBC(&sub_80EC67C); } } + +void sub_80EF9F8(); +void sub_80EED9C(); +bool8 sub_80EFBDC(u32); +void sub_80EFBB0(); +void sub_80F2DF4(); + +void sub_80EC67C() { + u32 var1; + u32 var2; + switch (ewram0.var304) { + case 0: + switch (sub_80FAB60()) { + case 1: + sub_80EED9C(); + break; + case 3: + sub_80EF9F8(); + break; + case 4: + PlaySE(0x5); + ewram0.var304 = 1; + break; + case 5: + PlaySE(0x5); + ewram0.var304 = 4; + break; + } + break; + case 1: + if (!ewram0.var6e90) { + sub_80FAEC4(); + ewram0.var304++; + break; + } + if (sub_80EFBDC(1)) return; + sub_80FAEC4(); + ewram0.var304++; + break; + case 2: + if ((var2 = sub_80FAFC0())) return; + if (!ewram0.var6e90) { + sub_80EFBB0(); + ewram0.var304 = var2; + break; + } + ewram0.var304++; + break; + case 3: + if ((var1 = sub_80EFBDC(0))) return; + sub_80EFBB0(); + ewram0.var304 = var1; + break; + case 4: + BeginNormalPaletteFade(ewram0.var308, -1, 0, 0x10, 0); + ewram0.var304++; + break; + case 5: + if (gPaletteFade.active) return; + sub_80F2DF4(); + sub_80F2D04(0x4); + gSaveBlock2.regionMapZoom = (ewram0.var6e90 == 1) ? 1 : 0; + sub_80EBDBC(&sub_80EC00C); + } +} + +void sub_80EC86C(); + +void sub_80EC81C() { + switch (ewram0.var304) { + case 0: + sub_80F2D04(0); + sub_80EE9C0(1, 0, 1); + ewram0.var304++; + break; + case 1: + if (sub_80EEA0C()) return; + sub_80EBDBC(&sub_80EC86C); + } +} + +bool8 sub_80EEC90(); +void sub_80ED620(); +void sub_80EC960(); +bool8 sub_80F1E6C(); + +void sub_80EC86C() { + switch (ewram0.var304) { + case 0: + if (sub_80EEC90()) { + PlaySE(0x5); + sub_80EF428(1, ewram0.var6dad); + sub_80EED9C(); + break; + } + if (gMain.newKeys & A_BUTTON) { + PlaySE(0x5); + ewram0.var6df0 = ewram0.var6dad; + switch (ewram0.var6df0) { + case 0: + sub_80EBDBC(&sub_80ED620); + break; + case 1: + sub_80EBDBC(&sub_80EC960); + break; + case 2: + sub_80EBDBC(&sub_80EC210); + break; + } + break; + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + ewram0.var6df0 = 0x2; + ewram0.var6dad = 0x2; + ewram0.var304++; + break; + } + break; + case 1: + if (sub_80F1E6C()) return; + sub_80EBDBC(&sub_80EC210); + } +} + +void sub_80ECC08(); + +void sub_80EC960() { + switch (ewram0.var304) { + case 0: + sub_80EE9C0(2, 0, 5); + ewram0.var304++; + break; + case 1: + if (sub_80EEA0C()) return; + sub_80EBDBC(&sub_80ECC08); + } +} + +void sub_80EC9A8() { + switch (ewram0.var304) { + case 0: + sub_80F2D04(5); + sub_80EE9C0(1, ewram0.var6df0, 0xC); + ewram0.var304++; + break; + case 1: + if (sub_80EEA0C()) return; + sub_80EBDBC(&sub_80EC86C); + sub_80EF428(1, ewram0.var6dad); + } +} |