sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

__osSpRawStartDma.c (428B)


      1 #include "libultra_internal.h"
      2 #include "PR/rcp.h"
      3 
      4 s32 __osSpRawStartDma(u32 dir, void *sp_ptr, void *dram_ptr, size_t size) {
      5     if (__osSpDeviceBusy()) {
      6         return -1;
      7     }
      8 
      9     IO_WRITE(SP_MEM_ADDR_REG, sp_ptr);
     10     IO_WRITE(SP_DRAM_ADDR_REG, osVirtualToPhysical(dram_ptr));
     11 
     12     if (dir == 0) {
     13         IO_WRITE(SP_WR_LEN_REG, size - 1);
     14     } else {
     15         IO_WRITE(SP_RD_LEN_REG, size - 1);
     16     }
     17     return 0;
     18 }