mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-16 04:44:44 +00: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:
parent
63985a0011
commit
b9999bbb13
7 changed files with 43 additions and 97 deletions
13
src/libultra_code/code_800E6840.c
Normal file
13
src/libultra_code/code_800E6840.c
Normal file
|
@ -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);
|
||||
}
|
26
src/libultra_code/osAiSetNextBuffer.c
Normal file
26
src/libultra_code/osAiSetNextBuffer.c
Normal file
|
@ -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;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue