mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Match osDpSetNextBuffer
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
glabel osDpSetNextBuffer
|
||||
/* 0D24E0 800D18E0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0D24E4 800D18E4 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0D24E8 800D18E8 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 0D24EC 800D18EC AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 0D24F0 800D18F0 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 0D24F4 800D18F4 0C035814 */ jal __osDpDeviceBusy
|
||||
/* 0D24F8 800D18F8 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0D24FC 800D18FC 10400003 */ beqz $v0, .L800D190C
|
||||
/* 0D2500 800D1900 00000000 */ nop
|
||||
/* 0D2504 800D1904 1000001B */ b .L800D1974
|
||||
/* 0D2508 800D1908 2402FFFF */ li $v0, -1
|
||||
.L800D190C:
|
||||
/* 0D250C 800D190C 240E0001 */ li $t6, 1
|
||||
/* 0D2510 800D1910 3C0FA410 */ lui $t7, %hi(D_A410000C) # $t7, 0xa410
|
||||
/* 0D2514 800D1914 ADEE000C */ sw $t6, %lo(D_A410000C)($t7)
|
||||
.L800D1918:
|
||||
/* 0D2518 800D1918 3C18A410 */ lui $t8, %hi(D_A410000C) # $t8, 0xa410
|
||||
/* 0D251C 800D191C 8F10000C */ lw $s0, %lo(D_A410000C)($t8)
|
||||
/* 0D2520 800D1920 32190001 */ andi $t9, $s0, 1
|
||||
/* 0D2524 800D1924 1720FFFC */ bnez $t9, .L800D1918
|
||||
/* 0D2528 800D1928 00000000 */ nop
|
||||
/* 0D252C 800D192C 0C03233C */ jal osVirtualToPhysical
|
||||
/* 0D2530 800D1930 8FA40028 */ lw $a0, 0x28($sp)
|
||||
/* 0D2534 800D1934 3C08A410 */ lui $t0, 0xa410
|
||||
/* 0D2538 800D1938 AD020000 */ sw $v0, ($t0)
|
||||
/* 0D253C 800D193C 0C03233C */ jal osVirtualToPhysical
|
||||
/* 0D2540 800D1940 8FA40028 */ lw $a0, 0x28($sp)
|
||||
/* 0D2544 800D1944 8FAD0034 */ lw $t5, 0x34($sp)
|
||||
/* 0D2548 800D1948 00405825 */ move $t3, $v0
|
||||
/* 0D254C 800D194C 8FAC0030 */ lw $t4, 0x30($sp)
|
||||
/* 0D2550 800D1950 016D7821 */ addu $t7, $t3, $t5
|
||||
/* 0D2554 800D1954 240A0000 */ li $t2, 0
|
||||
/* 0D2558 800D1958 01ED082B */ sltu $at, $t7, $t5
|
||||
/* 0D255C 800D195C 002A7021 */ addu $t6, $at, $t2
|
||||
/* 0D2560 800D1960 01E04825 */ move $t1, $t7
|
||||
/* 0D2564 800D1964 3C18A410 */ lui $t8, %hi(D_A4100004) # $t8, 0xa410
|
||||
/* 0D2568 800D1968 AF090004 */ sw $t1, %lo(D_A4100004)($t8)
|
||||
/* 0D256C 800D196C 00001025 */ move $v0, $zero
|
||||
/* 0D2570 800D1970 01CC7021 */ addu $t6, $t6, $t4
|
||||
.L800D1974:
|
||||
/* 0D2574 800D1974 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0D2578 800D1978 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0D257C 800D197C 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 0D2580 800D1980 03E00008 */ jr $ra
|
||||
/* 0D2584 800D1984 00000000 */ nop
|
||||
|
||||
/* 0D2588 800D1988 00000000 */ nop
|
||||
/* 0D258C 800D198C 00000000 */ nop
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
s32 __osAiDeviceBusy(void) {
|
||||
register s32 status = IO_READ(AI_STATUS_REG);
|
||||
if (status & AI_STATUS_FIFO_FULL)
|
||||
return TRUE;
|
||||
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,20 @@
|
||||
/* The comment below is needed for this file to be picked up by generate_ld */
|
||||
/* RAM_POS: 0x800D18E0 */
|
||||
|
||||
#include "types.h"
|
||||
#include "macros.h"
|
||||
#include "libultra_internal.h"
|
||||
#include "osVirtualToPhysical.h"
|
||||
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D24E0/osDpSetNextBuffer.s")
|
||||
int __osDpDeviceBusy(void);
|
||||
s32 osDpSetNextBuffer(void *bufPtr, u64 size) {
|
||||
register u32 stat;
|
||||
|
||||
if (__osDpDeviceBusy())
|
||||
return -1;
|
||||
IO_WRITE(DPC_STATUS_REG, DPC_CLR_XBUS_DMEM_DMA);
|
||||
do {
|
||||
stat = IO_READ(DPC_STATUS_REG);
|
||||
} while (stat & DPC_STATUS_XBUS_DMEM_DMA);
|
||||
IO_WRITE(DPC_START_REG, osVirtualToPhysical(bufPtr));
|
||||
IO_WRITE(DPC_END_REG, osVirtualToPhysical(bufPtr) + size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user