summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokenav.s40
-rw-r--r--include/pokenav.h13
-rw-r--r--src/field/use_pokeblock.c2
-rw-r--r--src/pokenav_before.c91
4 files changed, 44 insertions, 102 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 14f4a97ac..d228ac443 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -6,46 +6,6 @@
.text
- thumb_func_start sub_80EEF78
-sub_80EEF78: @ 80EEF78
- push {r4,lr}
- movs r3, 0x1
- ldr r0, _080EEF94 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r2, r0, r1
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bne _080EEF98
- movs r0, 0
- b _080EEFB0
- .align 2, 0
-_080EEF94: .4byte gUnknown_083DFEC4
-_080EEF98:
- subs r0, r1, 0x2
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _080EEFA8
- movs r0, 0
- strh r0, [r2]
- movs r3, 0
-_080EEFA8:
- ldr r1, _080EEFB8 @ =REG_BG1VOFS
- ldrh r0, [r2]
- strh r0, [r1]
- adds r0, r3, 0
-_080EEFB0:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EEFB8: .4byte REG_BG1VOFS
- thumb_func_end sub_80EEF78
-
thumb_func_start sub_80EEFBC
sub_80EEFBC: @ 80EEFBC
push {r4-r7,lr}
diff --git a/include/pokenav.h b/include/pokenav.h
index 70cc4135f..98806983c 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -30,15 +30,22 @@ struct UnkPokenavStruct_Sub2 {
/*0x26*/ u16 unk26;
};
+struct UnkPokenavStruct_Sub3 {
+ /*0x00*/s16 unk0;
+};
+
struct UnkUsePokeblockSub {
/*0*/ u8 fil0[2];
/*2*/ u8 partyIdx:5;
};
struct UnkPokenavStruct {
- /*0x0000*/ u8 filler0000[0x30c];
- /*0x0000*/ u16 unk030C;
- /*0x0000*/ u8 filler030E[0x6a9e];
+ /*0x0000*/ u8 filler0000[0x30C];
+ /*0x030C*/ union { // TODO: what?
+ u16 val;
+ struct UnkPokenavStruct_Sub3 unk030C;
+ } unk030C;
+ /*0x0310*/ u8 filler030E[0x6a9c];
/*0x6DAC*/ u8 unk6DAC;
/*0x6DAD*/ u8 filler6DAD[0x8fd];
/*0x76AA*/ u8 unk76AA;
diff --git a/src/field/use_pokeblock.c b/src/field/use_pokeblock.c
index e946a9cfc..bac231856 100644
--- a/src/field/use_pokeblock.c
+++ b/src/field/use_pokeblock.c
@@ -244,7 +244,7 @@ static void sub_8136294(void)
case 6:
gUnknown_083DFEC4->unk76AA = 0;
gUnknown_083DFEC4->unk87E0 = NULL;
- gUnknown_083DFEC4->unk030C = 0x20;
+ gUnknown_083DFEC4->unk030C.val = 0x20;
gUnknown_02039304->unk50++;
break;
case 7:
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index 783d42326..dfac1328b 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -2897,7 +2897,7 @@ bool8 sub_80EEE54() {
sub_80EF58C(2);
break;
case 4:
- gUnknown_083DFEC4->unk030C = 0;
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
REG_BG1HOFS = 0;
REG_BG1VOFS = 0;
REG_BG1CNT = 0x1B0C;
@@ -2909,66 +2909,41 @@ bool8 sub_80EEE54() {
return 1;
}
-#if 0
-// not matches because of register differences
bool8 sub_80EEF34() {
- bool8 ret = 0x1;
- if ((s8)gUnknown_083DFEC4->unk030C == 0x20) {
- return 0;
+ bool8 retVal = TRUE;
+
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 32)
+ {
+ return FALSE;
}
- else {
- gUnknown_083DFEC4->unk030C += 2;
- if (gUnknown_083DFEC4->unk030C > 0x1F) {
- gUnknown_083DFEC4->unk030C = 0x20;
- ret = 0;
- }
- REG_BG1VOFS = gUnknown_083DFEC4->unk030C;
- return ret;
+
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 += 2;
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 > 31)
+ {
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 32;
+ retVal = FALSE;
}
+
+ REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
+ return retVal;
}
-#else
-__attribute__((naked))
-bool8 sub_80EEF34() {
- asm(".text\n"
- ".include \"constants/gba_constants.inc\"");
- asm_unified(
- "push {r4,lr}\n\
- movs r3, 0x1\n\
- ldr r0, _080EEF50 @ =gUnknown_083DFEC4\n\
- ldr r0, [r0]\n\
- movs r1, 0xC3\n\
- lsls r1, 2\n\
- adds r2, r0, r1\n\
- ldrh r1, [r2]\n\
- movs r4, 0\n\
- ldrsh r0, [r2, r4]\n\
- cmp r0, 0x20\n\
- bne _080EEF54\n\
- movs r0, 0\n\
- b _080EEF6E\n\
- .align 2, 0\n\
-_080EEF50: .4byte gUnknown_083DFEC4\n\
-_080EEF54:\n\
- adds r0, r1, 0x2\n\
- strh r0, [r2]\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- cmp r0, 0x1F\n\
- ble _080EEF66\n\
- movs r0, 0x20\n\
- strh r0, [r2]\n\
- movs r3, 0\n\
-_080EEF66:\n\
- ldr r1, _080EEF74 @ =REG_BG1VOFS\n\
- ldrh r0, [r2]\n\
- strh r0, [r1]\n\
- adds r0, r3, 0\n\
-_080EEF6E:\n\
- pop {r4}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
-_080EEF74: .4byte REG_BG1VOFS");
+bool8 sub_80EEF78(void)
+{
+ bool8 retVal = TRUE;
+
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 0)
+ {
+ return FALSE;
+ }
+
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 -= 2;
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 <= 0)
+ {
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
+ retVal = FALSE;
+ }
+
+ REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
+ return retVal;
}
-#endif