diff --git a/include/global.h b/include/global.h index 2788180..bd7418e 100644 --- a/include/global.h +++ b/include/global.h @@ -101,6 +101,7 @@ extern MallocRecord D_800F8E58; extern u8 D_800FAAF8; extern u8 D_800FAB1C; extern u8 D_800FAB20; +extern UNK_TYPE D_80108620; extern UNK_TYPE D_80108624; extern UNK_TYPE D_80108628; extern UNK_TYPE D_8010DF40; diff --git a/src/main/O2/70100.c b/src/main/O2/70100.c new file mode 100644 index 0000000..9e2c39e --- /dev/null +++ b/src/main/O2/70100.c @@ -0,0 +1,23 @@ +#include "global.h" + +#define WAIT_ON_IOBUSY_ALT(stat) \ + do { \ + stat = IO_READ(PI_STATUS_REG); \ + } while (stat & (PI_STATUS_IO_BUSY | PI_STATUS_DMA_BUSY)) + +#define ADDRESS_1 (PI_DOM1_ADDR2 + 0x458) // 0x10000458 +#define ADDRESS_2 (PI_DOM1_ADDR2 + 0x45C) // 0x1000045C + +void func_8006F500(void) { + register u32 stat; + u16 addr1Val; + u16 addr2Val; + + WAIT_ON_IOBUSY_ALT(stat); + addr1Val = IO_READ(ADDRESS_1); + + WAIT_ON_IOBUSY_ALT(stat); + addr2Val = IO_READ(ADDRESS_2); + + D_80108620 = (addr1Val << 16) | addr2Val; +} diff --git a/yamls/us/main.yaml b/yamls/us/main.yaml index 67e3287..28c756b 100644 --- a/yamls/us/main.yaml +++ b/yamls/us/main.yaml @@ -57,6 +57,7 @@ - [0x6CB80, asm] - [0x6DBC0, asm] - [0x6DF40, asm] # Probably has at least 1 file split + - [0x70100, c, O2/70100] - [0x70160, asm] - [0x70200, c, fault] - [0x720B0, pad]