mirror of
https://github.com/zeldaret/oot
synced 2026-06-28 02:53:05 -04:00
2278bcb2c3
* progress * z64.h issues sorted * remove variables.h * format * n64 fix * another fix * did the wrong fix * fix libleo * fix bss * review * remove instead of comment
42 lines
1.0 KiB
C
42 lines
1.0 KiB
C
#include "ultra64.h"
|
|
#include "ultra64/leo.h"
|
|
#include "ultra64/leoappli.h"
|
|
#include "ultra64/leodrive.h"
|
|
|
|
u32 LeoDriveExist(void) {
|
|
u32 data;
|
|
u32 saveMask;
|
|
u32 stat;
|
|
u32 latency;
|
|
u32 pulse;
|
|
u32 pageSize;
|
|
u32 relDuration;
|
|
|
|
__osPiGetAccess();
|
|
|
|
while ((stat = IO_READ(PI_STATUS_REG)) & (PI_STATUS_DMA_BUSY | PI_STATUS_IO_BUSY)) {}
|
|
|
|
latency = IO_READ(PI_BSD_DOM1_LAT_REG);
|
|
pageSize = IO_READ(PI_BSD_DOM1_PGS_REG);
|
|
relDuration = IO_READ(PI_BSD_DOM1_RLS_REG);
|
|
pulse = IO_READ(PI_BSD_DOM1_PWD_REG);
|
|
|
|
IO_WRITE(PI_BSD_DOM1_LAT_REG, 0xFF);
|
|
IO_WRITE(PI_BSD_DOM1_PGS_REG, 0);
|
|
IO_WRITE(PI_BSD_DOM1_RLS_REG, 3);
|
|
IO_WRITE(PI_BSD_DOM1_PWD_REG, 0xFF);
|
|
|
|
data = IO_READ(0x06001010); // Something in the n64dd address space?
|
|
|
|
IO_WRITE(PI_BSD_DOM1_LAT_REG, latency);
|
|
IO_WRITE(PI_BSD_DOM1_PGS_REG, pageSize);
|
|
IO_WRITE(PI_BSD_DOM1_RLS_REG, relDuration);
|
|
IO_WRITE(PI_BSD_DOM1_PWD_REG, pulse);
|
|
|
|
__osPiRelAccess();
|
|
if (data == 0x2129FFF8) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|