diff options
-rw-r--r-- | asm/pokenav.s | 314 | ||||
-rw-r--r-- | src/pokenav_before.c | 100 |
2 files changed, 98 insertions, 316 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s index d4544307d..5ffec9177 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -6,320 +6,6 @@ .text - thumb_func_start sub_80ECD80 -sub_80ECD80: @ 80ECD80 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ECDA0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x14 - bls _080ECD96 - b _080ED006 -_080ECD96: - lsls r0, 2 - ldr r1, _080ECDA4 @ =_080ECDA8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECDA0: .4byte 0x02000000 -_080ECDA4: .4byte _080ECDA8 - .align 2, 0 -_080ECDA8: - .4byte _080ECDFC - .4byte _080ECE1A - .4byte _080ECE34 - .4byte _080ECE4C - .4byte _080ECE64 - .4byte _080ECE78 - .4byte _080ECE80 - .4byte _080ECEAC - .4byte _080ECEC0 - .4byte _080ECED4 - .4byte _080ECEE8 - .4byte _080ECF04 - .4byte _080ECF10 - .4byte _080ECF3C - .4byte _080ECF44 - .4byte _080ECF58 - .4byte _080ECF70 - .4byte _080ECF84 - .4byte _080ECFB0 - .4byte _080ECFC4 - .4byte _080ECFE8 -_080ECDFC: - movs r3, 0xC2 - lsls r3, 2 - adds r0, r4, r3 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECFDC -_080ECE1A: - ldr r0, _080ECE30 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ECE28 - b _080ED006 -_080ECE28: - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECE30: .4byte gPaletteFade -_080ECE34: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080ECE40 - b _080ED006 -_080ECE40: - ldr r0, _080ECE48 @ =sub_80EBD80 - bl SetVBlankCallback - b _080ECFD4 - .align 2, 0 -_080ECE48: .4byte sub_80EBD80 -_080ECE4C: - bl sub_80EED1C - bl sub_80F3130 - ldr r1, _080ECE60 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECFDC - .align 2, 0 -_080ECE60: .4byte 0x02000000 -_080ECE64: - movs r0, 0x1 - bl sub_80F2D6C - ldr r1, _080ECE74 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ECFDC - .align 2, 0 -_080ECE74: .4byte 0x02000000 -_080ECE78: - movs r0, 0x5 - bl sub_80F2D6C - b _080ECFD4 -_080ECE80: - ldr r1, _080ECEA0 @ =0x00006dfc - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080ECEA4 @ =0x00006dad - adds r0, r4, r2 - strb r1, [r0] - ldr r3, _080ECEA8 @ =0x00006dae - adds r1, r4, r3 - movs r0, 0x6 - strb r0, [r1] - bl sub_80EEE08 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECFDC - .align 2, 0 -_080ECEA0: .4byte 0x00006dfc -_080ECEA4: .4byte 0x00006dad -_080ECEA8: .4byte 0x00006dae -_080ECEAC: - movs r0, 0x2 - bl sub_80EF248 - ldr r1, _080ECED0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECEC0: - movs r0, 0x2 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080ECECE - b _080ED006 -_080ECECE: - b _080ECFD4 - .align 2, 0 -_080ECED0: .4byte 0x02000000 -_080ECED4: - movs r0, 0x2 - bl sub_80F1B8C - ldr r1, _080ECF00 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECEE8: - movs r0, 0x2 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - beq _080ECEF6 - b _080ED006 -_080ECEF6: - ldr r1, _080ECF00 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ECFDC - .align 2, 0 -_080ECF00: .4byte 0x02000000 -_080ECF04: - bl sub_8055870 - cmp r0, 0 - beq _080ECF0E - b _080ED006 -_080ECF0E: - b _080ECFD4 -_080ECF10: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ECF38 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECF38: .4byte sub_80EBD18 -_080ECF3C: - movs r0, 0 - bl sub_80EED2C - b _080ECFD4 -_080ECF44: - bl sub_80F2598 - ldr r1, _080ECF54 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECFDC - .align 2, 0 -_080ECF54: .4byte 0x02000000 -_080ECF58: - ldr r0, _080ECF6C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED006 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECF6C: .4byte gPaletteFade -_080ECF70: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ECFA8 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECF84: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080ED006 - ldr r0, _080ECFA8 @ =0x02000000 - ldr r3, _080ECFAC @ =0x00000306 - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED006 - .align 2, 0 -_080ECFA8: .4byte 0x02000000 -_080ECFAC: .4byte 0x00000306 -_080ECFB0: - movs r0, 0x5 - bl sub_80F2C80 - ldr r1, _080ECFE4 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECFC4: - movs r0, 0x5 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED006 - bl sub_80F1DF0 -_080ECFD4: - ldr r1, _080ECFE4 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 -_080ECFDC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED006 - .align 2, 0 -_080ECFE4: .4byte 0x02000000 -_080ECFE8: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080ED006 - ldr r0, _080ED010 @ =0x02000000 - ldr r1, _080ED014 @ =0x00006dad - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - bl sub_80EF428 - ldr r0, _080ED018 @ =sub_80ECC08 - bl sub_80EBDBC -_080ED006: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED010: .4byte 0x02000000 -_080ED014: .4byte 0x00006dad -_080ED018: .4byte sub_80ECC08 - thumb_func_end sub_80ECD80 - thumb_func_start sub_80ED01C sub_80ED01C: @ 80ED01C push {r4,lr} diff --git a/src/pokenav_before.c b/src/pokenav_before.c index f86b93ca1..0c4942f47 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -18,7 +18,7 @@ struct UnknownPokenav0 { /* 0x0000 */ u8 fill0000[0x0300]; /* 0x0300 */ void (*var300)(void); /* 0x0304 */ u16 var304; - /* 0x0306 */ u8 fill0306; + /* 0x0306 */ u16 var306; /* 0x0308 */ u32 var308; /* 0x030C */ u8 fill030C[0x6a9f]; /* 0x6dab */ u8 var6dab; @@ -825,7 +825,7 @@ void sub_80ECA10() { break; case 0xD: if (sub_80F1E50()) return; - sub_80EF428(1, ewram0.var6dad); + sub_80EF428(1, ewram0.var6dad); sub_80EBDBC(&sub_80EC86C); } } @@ -879,3 +879,99 @@ void sub_80ECC08() { break; } } + +void sub_80F3130(); +void sub_80F2D6C(u32); + +void sub_80ECD80() { + u16 var1; + switch (ewram0.var304) { + case 0: + BeginNormalPaletteFade(ewram0.var308, -1, 0, 0x10, 0); + ewram0.var304++; + break; + case 1: + if (gPaletteFade.active) return; + ewram0.var304++; + break; + case 2: + if (sub_80EEF78()) return; + SetVBlankCallback(&sub_80EBD80); + ewram0.var304++; + break; + case 3: + sub_80EED1C(); + sub_80F3130(); + ewram0.var304++; + break; + case 4: + sub_80F2D6C(0x1); + ewram0.var304++; + break; + case 5: + sub_80F2D6C(0x5); + ewram0.var304++; + break; + case 6: + ewram0.var6dad = ewram0.var6dfc; + ewram0.var6dae = 0x6; + sub_80EEE08(); + ewram0.var304++; + break; + case 7: + sub_80EF248(0x2); + ewram0.var304++; + case 8: + if (sub_80EF284(0x2)) return; + ewram0.var304++; + break; + case 9: + sub_80F1B8C(0x2); + ewram0.var304++; + case 0xA: + if (sub_80F1BC8(0x2)) return; + ewram0.var304++; + break; + case 0xB: + if (sub_8055870()) return; + ewram0.var304++; + break; + case 0xC: + BeginNormalPaletteFade(ewram0.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD18); + ewram0.var304++; + break; + case 0xD: + sub_80EED2C(0); + ewram0.var304++; + break; + case 0xE: + sub_80F2598(); + ewram0.var304++; + break; + case 0xF: + if (gPaletteFade.active) return; + ewram0.var304++; + break; + case 0x10: + sub_80F2C80(0x1); + ewram0.var304++; + case 0x11: + if ((var1 = sub_80F2CBC(0x1))) return; + ewram0.var306 = var1; + ewram0.var304++; + break; + case 0x12: + sub_80F2C80(0x5); + ewram0.var304++; + case 0x13: + if (sub_80F2CBC(0x5)) return; + sub_80F1DF0(); + ewram0.var304++; + break; + case 0x14: + if (sub_80F1E50()) return; + sub_80EF428(2, ewram0.var6dad); + sub_80EBDBC(&sub_80ECC08); + } +} |