mirror of https://github.com/zeldaret/tmc.git
labeled eeprom config stuff
This commit is contained in:
parent
b84099b164
commit
de6163dbb7
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 = .;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue