mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-17 12:33:38 +00:00
First proper commit.
This commit is contained in:
parent
be78236d36
commit
087f561f77
14086 changed files with 1200489 additions and 1 deletions
22
src/libultra_code/__osSiRawStartDma.c
Normal file
22
src/libultra_code/__osSiRawStartDma.c
Normal file
|
@ -0,0 +1,22 @@
|
|||
#include "libultra_internal.h"
|
||||
#include <ultra64/hardware.h>
|
||||
|
||||
s32 __osSiRawStartDma(s32 dir, void *addr) //func_801013F0
|
||||
{
|
||||
if (HW_REG(SI_STATUS_REG, u32) & (SI_STATUS_DMA_BUSY | SI_STATUS_IO_READ_BUSY)){
|
||||
return -1;
|
||||
}
|
||||
if (dir == OS_WRITE){
|
||||
osWritebackDCache(addr, 0x40);
|
||||
}
|
||||
HW_REG(SI_DRAM_ADDR_REG, void*) = (void*)osVirtualToPhysical(addr);
|
||||
if (dir == OS_READ){
|
||||
HW_REG(SI_PIF_ADDR_RD64B_REG, void*) = (void*)PIF_RAM_START;
|
||||
}else{
|
||||
HW_REG(SI_PIF_ADDR_WR64B_REG, void*) = (void*)PIF_RAM_START;
|
||||
}
|
||||
if (dir == OS_READ){
|
||||
osInvalDCache(addr, 0x40);
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue