labeled eeprom config stuff

This commit is contained in:
Henny022p 2021-02-26 22:46:47 +01:00
parent b84099b164
commit de6163dbb7
5 changed files with 32 additions and 32 deletions

View File

@ -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

View File

@ -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

View File

@ -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 = .;

View File

@ -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;

View File

@ -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;