diff --git a/asm/non_matching/code_080B1520/sub_080B16AC.inc b/asm/non_matching/code_080B1520/sub_080B16AC.inc index b844ebc1..6803eef0 100644 --- a/asm/non_matching/code_080B1520/sub_080B16AC.inc +++ b/asm/non_matching/code_080B1520/sub_080B16AC.inc @@ -9,7 +9,7 @@ lsrs r1, r0, #0x10 lsls r2, r2, #0x18 lsrs r7, r2, #0x18 - ldr r0, _080B16C8 @ =gUnk_02036A50 + ldr r0, _080B16C8 @ =gEEPROMConfig ldr r0, [r0] ldrh r0, [r0, #4] cmp r1, r0 @@ -17,10 +17,10 @@ ldr r0, _080B16CC @ =0x000080FF b _080B1804 .align 2, 0 -_080B16C8: .4byte gUnk_02036A50 +_080B16C8: .4byte gEEPROMConfig _080B16CC: .4byte 0x000080FF _080B16D0: - ldr r0, _080B1710 @ =gUnk_02036A50 + ldr r0, _080B1710 @ =gEEPROMConfig ldr r0, [r0] ldrb r0, [r0, #8] lsls r0, r0, #1 @@ -50,12 +50,12 @@ _080B16EC: cmp r4, #3 bls _080B16E6 movs r4, #0 - ldr r0, _080B1710 @ =gUnk_02036A50 + ldr r0, _080B1710 @ =gEEPROMConfig adds r2, r0, #0 ldr r0, [r0] b _080B1722 .align 2, 0 -_080B1710: .4byte gUnk_02036A50 +_080B1710: .4byte gEEPROMConfig _080B1714: strh r1, [r3] subs r3, #2 @@ -75,7 +75,7 @@ _080B1722: strh r6, [r3] movs r4, #0xd0 lsls r4, r4, #0x14 - ldr r0, _080B1794 @ =gUnk_02036A50 + ldr r0, _080B1794 @ =gEEPROMConfig ldr r0, [r0] ldrb r2, [r0, #8] adds r2, #0x43 @@ -123,7 +123,7 @@ _080B1768: str r1, [r2] b _080B17B2 .align 2, 0 -_080B1794: .4byte gUnk_02036A50 +_080B1794: .4byte gEEPROMConfig _080B1798: .4byte 0x04000006 _080B179C: add r2, sp, #0xac diff --git a/data/data_089FC6C4.s b/data/data_089FC6C4.s index 4b69eaea..2a53d0cf 100644 --- a/data/data_089FC6C4.s +++ b/data/data_089FC6C4.s @@ -10303,8 +10303,8 @@ gUnk_08DE7D18:: @ 08DE7D18 gUnk_08DE7D28:: @ 08DE7D28 .incbin "baserom.gba", 0xDE7D28, 0x0000018 -gUnk_08DE7D40:: @ 08DE7D40 +gEEPROMConfig512:: @ 08DE7D40 .incbin "baserom.gba", 0xDE7D40, 0x000000C -gUnk_08DE7D4C:: @ 08DE7D4C +gEEPROMConfig8k:: @ 08DE7D4C .incbin "baserom.gba", 0xDE7D4C, 0x0000058 diff --git a/linker.ld b/linker.ld index b43188e7..41e04872 100644 --- a/linker.ld +++ b/linker.ld @@ -148,7 +148,7 @@ SECTIONS { . = 0x000369F0; gUnk_020369F0 = .; . = 0x00036A38; gUnk_02036A38 = .; . = 0x00036A40; gUnk_02036A40 = .; - . = 0x00036A50; gUnk_02036A50 = .; + . = 0x00036A50; gEEPROMConfig = .; . = 0x00036A58; gUnk_02036A58 = .; . = 0x00036AD8; gUnk_02036AD8 = .; . = 0x00036BB8; gUnk_02036BB8 = .; diff --git a/src/code_080B1520.c b/src/code_080B1520.c index 3aa87e91..389be1b4 100644 --- a/src/code_080B1520.c +++ b/src/code_080B1520.c @@ -2,15 +2,15 @@ typedef struct struct_08DE7D40 { u32 unk_00; - u16 unk_04; - u16 unk_06; - u8 unk_08; + u16 size; + u16 waitcnt; + u8 address_width; // u8 filler[3]; -} struct_08DE7D40; +} EEPROMConfig; -extern struct_08DE7D40* gUnk_02036A50; -extern struct_08DE7D40 gUnk_08DE7D40; -extern struct_08DE7D40 gUnk_08DE7D4C; +extern EEPROMConfig* gEEPROMConfig; +extern EEPROMConfig gEEPROMConfig512; +extern EEPROMConfig gEEPROMConfig8k; u16 sub_080B16AC(u16, u16*, u8); @@ -19,12 +19,12 @@ u32 sub_080B1520(u16 unk_1) { ret = 0; if (unk_1 == 4) { - gUnk_02036A50 = &gUnk_08DE7D40; + gEEPROMConfig = &gEEPROMConfig512; } else { if (unk_1 == 0x40) { - gUnk_02036A50 = &gUnk_08DE7D4C; + gEEPROMConfig = &gEEPROMConfig8k; } else { - gUnk_02036A50 = &gUnk_08DE7D40; + gEEPROMConfig = &gEEPROMConfig512; ret = 1; } } @@ -39,7 +39,7 @@ void DMA3Transfer(void* src, void* dest, u16 count) { IME_save = REG_IME; REG_IME = 0; // disable all interrupts temp = REG_WAITCNT & 0xf8ff; - temp |= gUnk_02036A50->unk_06; // configure wait state 2 + temp |= gEEPROMConfig->waitcnt; // configure wait state 2 REG_WAITCNT = temp; REG_DMA3SAD = (u32)src; REG_DMA3DAD = (u32)dest; @@ -55,19 +55,19 @@ u32 sub_080B15E8(u16 unk_1, u16* unk_2) { u8 t1, t2; u16 value; - if (unk_1 >= gUnk_02036A50->unk_04) { + if (unk_1 >= gEEPROMConfig->size) { return 0x80ff; } else { ptr = stack; - (u8*)ptr += (gUnk_02036A50->unk_08 << 1) + 1; + (u8*)ptr += (gEEPROMConfig->address_width << 1) + 1; ((u8*)ptr)++; - for (t1 = 0; t1 < gUnk_02036A50->unk_08; t1++) { + for (t1 = 0; t1 < gEEPROMConfig->address_width; t1++) { *(ptr--) = unk_1; unk_1 >>= 1; } *(ptr--) = 1; *ptr = 1; - DMA3Transfer(stack, (u16*)0xd000000, gUnk_02036A50->unk_08 + 3); + DMA3Transfer(stack, (u16*)0xd000000, gEEPROMConfig->address_width + 3); DMA3Transfer((u16*)0xd000000, stack, 0x44); ptr = stack + 4; unk_2 += 3; @@ -101,10 +101,10 @@ NONMATCH("asm/non_matching/code_080B1520/sub_080B16AC.inc", u16 sub_080B16AC(u16 u16* ptr; r1 = unk_1; - if (unk_1 < gUnk_02036A50->unk_04) + if (unk_1 < gEEPROMConfig->size) return 0x80ff; - ptr = stack + gUnk_02036A50->unk_08 + 0x42; + ptr = stack + gEEPROMConfig->address_width + 0x42; *ptr = 0; ptr--; for (i = 0; i <= 3; i++) { @@ -116,7 +116,7 @@ NONMATCH("asm/non_matching/code_080B1520/sub_080B16AC.inc", u16 sub_080B16AC(u16 r2 = r2 >> 1; } } - for (i = 0; i < gUnk_02036A50->unk_08; i++) { + for (i = 0; i < gEEPROMConfig->address_width; i++) { *ptr = r1; ptr--; r1 = r1 >> 1; @@ -124,7 +124,7 @@ NONMATCH("asm/non_matching/code_080B1520/sub_080B16AC.inc", u16 sub_080B16AC(u16 *ptr = 0; ptr--; *ptr = 1; - DMA3Transfer(stack, (u16*)0xd000000, gUnk_02036A50->unk_08 + 0x43); + DMA3Transfer(stack, (u16*)0xd000000, gEEPROMConfig->address_width + 0x43); stack_a4 = 0; stack_a6 = REG_VCOUNT; stack_ac = 0; @@ -186,7 +186,7 @@ u16 sub_080B180C(u16 unk_1, u16* unk_2) { u8 i; ret = 0; - if (unk_1 >= gUnk_02036A50->unk_04) { + if (unk_1 >= gEEPROMConfig->size) { return 0x80ff; } sub_080B15E8(unk_1, stack); @@ -218,7 +218,7 @@ u32 sub_080B1864(u16 unk_1, u16* unk_2) { u16 sub_080B18A4(u16 unk_1, u16* unk_2) { u16 ret; - if (gUnk_02036A50->unk_00 != 0x200) { + if (gEEPROMConfig->unk_00 != 0x200) { ret = sub_080B16AC(unk_1, unk_2, 0); } else { ret = 0x8080; diff --git a/src/manager/manager4.c b/src/manager/manager4.c index da43751f..2ebdf7d3 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -67,7 +67,7 @@ void sub_08057A18(Manager*, DiggingCaveEntrance*); u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { u16 offsetX, offsetY, offsetX2, offsetY2; u32 tmp; - if (gUnk_03004030.unk_08) { + if (gUnk_03004030.address_width) { offsetX = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; offsetY = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; offsetX2 = (entr->unk_00 & 0x3F) * 16 + 8;