diff --git a/Makefile b/Makefile index 00aa30349..53b7a0326 100644 --- a/Makefile +++ b/Makefile @@ -70,6 +70,7 @@ $(B_DIR)/lib/ultra/libc/llcvt.o: MIPSISET := -mips3 -o32 $(B_DIR)/lib/ultra/io/dpctr.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/pigetcmdq.o: OPT_LVL := -O1 +$(B_DIR)/lib/ultra/io/si.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/sp.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/spsetpc.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/sptaskyielded.o: OPT_LVL := -O1 diff --git a/src/lib/ultra/io/si.c b/src/lib/ultra/io/si.c index 135d204d5..117af47f6 100644 --- a/src/lib/ultra/io/si.c +++ b/src/lib/ultra/io/si.c @@ -1,19 +1,12 @@ #include -GLOBAL_ASM( -glabel __osSiDeviceBusy -/* 51c60: 3c0ea480 */ lui $t6,0xa480 -/* 51c64: 8dc40018 */ lw $a0,0x18($t6) -/* 51c68: 27bdfff8 */ addiu $sp,$sp,-8 -/* 51c6c: 308f0003 */ andi $t7,$a0,0x3 -/* 51c70: 11e00003 */ beqz $t7,.L00051c80 -/* 51c74: 00000000 */ nop -/* 51c78: 10000002 */ b .L00051c84 -/* 51c7c: 24020001 */ addiu $v0,$zero,0x1 -.L00051c80: -/* 51c80: 00001025 */ or $v0,$zero,$zero -.L00051c84: -/* 51c84: 03e00008 */ jr $ra -/* 51c88: 27bd0008 */ addiu $sp,$sp,0x8 -/* 51c8c: 00000000 */ nop -); +int __osSiDeviceBusy() +{ + register u32 stat = IO_READ(SI_STATUS_REG); + + if (stat & (SI_STATUS_DMA_BUSY | SI_STATUS_RD_BUSY)) { + return 1; + } + + return 0; +}