summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaúl Peñacoba <raul.mikaop.zelda@gmail.com>2017-08-06 12:23:27 +0200
committerRaúl Peñacoba <raul.mikaop.zelda@gmail.com>2017-08-06 12:23:27 +0200
commitdbea9d1df5cb25f16571b65847001279d51a2b37 (patch)
treefeb33f0a4776c35458ae58ab8e24cd6fc91d8626
parentb1f4bed3d16b251a2f9075b54da11652b22aa7fe (diff)
sub_80EC67C, sub_80EC81C, sub_80EC86C,
sub_80EC960, sub_80EC9A8
-rw-r--r--asm/pokenav.s449
-rw-r--r--src/pokenav_before.c158
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);
+ }
+}