mirror of
https://github.com/zeldaret/oot
synced 2026-09-09 20:01:25 -04:00
Decompile code_800E6840.c / osAiSetNextBuffer.c (#143)
* Decompile code_800E6840.c / osAiSetNextBuffer.c * move status' assignment outside the condition
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
#include <global.h>
|
||||
|
||||
void func_800E6840(void* buf, s32 size) {
|
||||
OSIntMask prevMask = osSetIntMask(1);
|
||||
osInvalDCache(buf, size);
|
||||
osSetIntMask(prevMask);
|
||||
}
|
||||
|
||||
void func_800E6880(void* buf, s32 size) {
|
||||
OSIntMask prevMask = osSetIntMask(1);
|
||||
osWritebackDCache(buf, size);
|
||||
osSetIntMask(prevMask);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
#include <global.h>
|
||||
#include <ultra64/hardware.h>
|
||||
|
||||
s32 osAiSetNextBuffer(void* buf, u32 size) {
|
||||
static u8 D_80130500 = false;
|
||||
u32 bufAdjusted = (u32)buf;
|
||||
s32 status;
|
||||
|
||||
if (D_80130500) {
|
||||
bufAdjusted = (u32)buf - 0x2000;
|
||||
}
|
||||
if ((((u32)buf + size) & 0x1FFF) == 0) {
|
||||
D_80130500 = true;
|
||||
} else {
|
||||
D_80130500 = false;
|
||||
}
|
||||
|
||||
status = HW_REG(AI_STATUS_REG, s32);
|
||||
if (status & AI_STATUS_AI_FULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
HW_REG(AI_DRAM_ADDR_REG, u32) = PHYSICAL_TO_VIRTUAL(bufAdjusted);
|
||||
HW_REG(AI_LEN_REG, u32) = size;
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user