mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
alEvtqFlushType, alEvtqFlush
This commit is contained in:
@@ -238,7 +238,7 @@ $(BUILD_DIR)/lib/src/unknown_0C91A0.o : OPT_FLAGS := -O1
|
||||
$(BUILD_DIR)/lib/src/unknown_0D29F0.o: OPT_FLAGS := -O1
|
||||
$(BUILD_DIR)/lib/src/unknown_0CDE90.o: OPT_FLAGS := -O1
|
||||
$(BUILD_DIR)/lib/src/unknown_0D3160.o: OPT_FLAGS := -O1
|
||||
$(BUILD_DIR)/lib/src/unknown_066460.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0
|
||||
$(BUILD_DIR)/lib/src/unknown_0C9C90.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0
|
||||
$(BUILD_DIR)/lib/src/osCreateThread.o : OPT_FLAGS := -O1
|
||||
$(BUILD_DIR)/lib/src/osGetThreadPri.o : OPT_FLAGS := -O1
|
||||
$(BUILD_DIR)/lib/src/osJamMesg.o : OPT_FLAGS := -O1
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
glabel alEvtqFlushType
|
||||
/* 0C9C90 800C9090 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 0C9C94 800C9094 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 0C9C98 800C9098 00059C00 */ sll $s3, $a1, 0x10
|
||||
/* 0C9C9C 800C909C AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 0C9CA0 800C90A0 00809025 */ move $s2, $a0
|
||||
/* 0C9CA4 800C90A4 00137403 */ sra $t6, $s3, 0x10
|
||||
/* 0C9CA8 800C90A8 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0C9CAC 800C90AC 01C09825 */ move $s3, $t6
|
||||
/* 0C9CB0 800C90B0 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 0C9CB4 800C90B4 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 0C9CB8 800C90B8 AFA50044 */ sw $a1, 0x44($sp)
|
||||
/* 0C9CBC 800C90BC 0C03268C */ jal osSetIntMask
|
||||
/* 0C9CC0 800C90C0 24040001 */ li $a0, 1
|
||||
/* 0C9CC4 800C90C4 AFA2002C */ sw $v0, 0x2c($sp)
|
||||
/* 0C9CC8 800C90C8 8E500008 */ lw $s0, 8($s2)
|
||||
/* 0C9CCC 800C90CC 12000012 */ beqz $s0, .L800C9118
|
||||
/* 0C9CD0 800C90D0 00000000 */ nop
|
||||
.L800C90D4:
|
||||
/* 0C9CD4 800C90D4 860F000C */ lh $t7, 0xc($s0)
|
||||
/* 0C9CD8 800C90D8 8E110000 */ lw $s1, ($s0)
|
||||
/* 0C9CDC 800C90DC 166F000C */ bne $s3, $t7, .L800C9110
|
||||
/* 0C9CE0 800C90E0 00000000 */ nop
|
||||
/* 0C9CE4 800C90E4 12200005 */ beqz $s1, .L800C90FC
|
||||
/* 0C9CE8 800C90E8 00000000 */ nop
|
||||
/* 0C9CEC 800C90EC 8E380008 */ lw $t8, 8($s1)
|
||||
/* 0C9CF0 800C90F0 8E190008 */ lw $t9, 8($s0)
|
||||
/* 0C9CF4 800C90F4 03194021 */ addu $t0, $t8, $t9
|
||||
/* 0C9CF8 800C90F8 AE280008 */ sw $t0, 8($s1)
|
||||
.L800C90FC:
|
||||
/* 0C9CFC 800C90FC 0C0321D8 */ jal alUnlink
|
||||
/* 0C9D00 800C9100 02002025 */ move $a0, $s0
|
||||
/* 0C9D04 800C9104 02002025 */ move $a0, $s0
|
||||
/* 0C9D08 800C9108 0C0321E4 */ jal alLink
|
||||
/* 0C9D0C 800C910C 02402825 */ move $a1, $s2
|
||||
.L800C9110:
|
||||
/* 0C9D10 800C9110 1620FFF0 */ bnez $s1, .L800C90D4
|
||||
/* 0C9D14 800C9114 02208025 */ move $s0, $s1
|
||||
.L800C9118:
|
||||
/* 0C9D18 800C9118 0C03268C */ jal osSetIntMask
|
||||
/* 0C9D1C 800C911C 8FA4002C */ lw $a0, 0x2c($sp)
|
||||
/* 0C9D20 800C9120 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0C9D24 800C9124 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 0C9D28 800C9128 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 0C9D2C 800C912C 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* 0C9D30 800C9130 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 0C9D34 800C9134 03E00008 */ jr $ra
|
||||
/* 0C9D38 800C9138 27BD0040 */ addiu $sp, $sp, 0x40
|
||||
|
||||
/* 0C9D3C 800C913C 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 0C9D40 800C9140 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 0C9D44 800C9144 00809025 */ move $s2, $a0
|
||||
/* 0C9D48 800C9148 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0C9D4C 800C914C AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 0C9D50 800C9150 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0C9D54 800C9154 0C03268C */ jal osSetIntMask
|
||||
/* 0C9D58 800C9158 24040001 */ li $a0, 1
|
||||
/* 0C9D5C 800C915C AFA2002C */ sw $v0, 0x2c($sp)
|
||||
/* 0C9D60 800C9160 8E500008 */ lw $s0, 8($s2)
|
||||
/* 0C9D64 800C9164 12000009 */ beqz $s0, .L800C918C
|
||||
/* 0C9D68 800C9168 00000000 */ nop
|
||||
.L800C916C:
|
||||
/* 0C9D6C 800C916C 8E110000 */ lw $s1, ($s0)
|
||||
/* 0C9D70 800C9170 0C0321D8 */ jal alUnlink
|
||||
/* 0C9D74 800C9174 02002025 */ move $a0, $s0
|
||||
/* 0C9D78 800C9178 02002025 */ move $a0, $s0
|
||||
/* 0C9D7C 800C917C 0C0321E4 */ jal alLink
|
||||
/* 0C9D80 800C9180 02402825 */ move $a1, $s2
|
||||
/* 0C9D84 800C9184 1620FFF9 */ bnez $s1, .L800C916C
|
||||
/* 0C9D88 800C9188 02208025 */ move $s0, $s1
|
||||
.L800C918C:
|
||||
/* 0C9D8C 800C918C 0C03268C */ jal osSetIntMask
|
||||
/* 0C9D90 800C9190 8FA4002C */ lw $a0, 0x2c($sp)
|
||||
/* 0C9D94 800C9194 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0C9D98 800C9198 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0C9D9C 800C919C 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* 0C9DA0 800C91A0 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 0C9DA4 800C91A4 03E00008 */ jr $ra
|
||||
/* 0C9DA8 800C91A8 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
glabel alEvtqNextEvent
|
||||
/* 0C9ED0 800C92D0 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0C9ED4 800C92D4 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0C9ED8 800C92D8 AFA40030 */ sw $a0, 0x30($sp)
|
||||
/* 0C9EDC 800C92DC AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0C9EE0 800C92E0 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 0C9EE4 800C92E4 0C03268C */ jal osSetIntMask
|
||||
/* 0C9EE8 800C92E8 24040001 */ li $a0, 1
|
||||
/* 0C9EEC 800C92EC 8FAE0030 */ lw $t6, 0x30($sp)
|
||||
/* 0C9EF0 800C92F0 AFA20024 */ sw $v0, 0x24($sp)
|
||||
/* 0C9EF4 800C92F4 8FB80034 */ lw $t8, 0x34($sp)
|
||||
/* 0C9EF8 800C92F8 8DD00008 */ lw $s0, 8($t6)
|
||||
/* 0C9EFC 800C92FC 00001825 */ move $v1, $zero
|
||||
/* 0C9F00 800C9300 5200000D */ beql $s0, $zero, .L800C9338
|
||||
/* 0C9F04 800C9304 240FFFFF */ li $t7, -1
|
||||
/* 0C9F08 800C9308 0C0321D8 */ jal alUnlink
|
||||
/* 0C9F0C 800C930C 02002025 */ move $a0, $s0
|
||||
/* 0C9F10 800C9310 2604000C */ addiu $a0, $s0, 0xc
|
||||
/* 0C9F14 800C9314 8FA50034 */ lw $a1, 0x34($sp)
|
||||
/* 0C9F18 800C9318 0C034E08 */ jal alCopy
|
||||
/* 0C9F1C 800C931C 24060010 */ li $a2, 16
|
||||
/* 0C9F20 800C9320 02002025 */ move $a0, $s0
|
||||
/* 0C9F24 800C9324 0C0321E4 */ jal alLink
|
||||
/* 0C9F28 800C9328 8FA50030 */ lw $a1, 0x30($sp)
|
||||
/* 0C9F2C 800C932C 10000003 */ b .L800C933C
|
||||
/* 0C9F30 800C9330 8E030008 */ lw $v1, 8($s0)
|
||||
/* 0C9F34 800C9334 240FFFFF */ li $t7, -1
|
||||
.L800C9338:
|
||||
/* 0C9F38 800C9338 A70F0000 */ sh $t7, ($t8)
|
||||
.L800C933C:
|
||||
/* 0C9F3C 800C933C 8FA40024 */ lw $a0, 0x24($sp)
|
||||
/* 0C9F40 800C9340 0C03268C */ jal osSetIntMask
|
||||
/* 0C9F44 800C9344 AFA30028 */ sw $v1, 0x28($sp)
|
||||
/* 0C9F48 800C9348 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0C9F4C 800C934C 8FA20028 */ lw $v0, 0x28($sp)
|
||||
/* 0C9F50 800C9350 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0C9F54 800C9354 03E00008 */ jr $ra
|
||||
/* 0C9F58 800C9358 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
+100
-2
@@ -6,11 +6,109 @@
|
||||
#include "audio_internal.h"
|
||||
#include "libultra_internal.h"
|
||||
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0C9C90/alEvtqFlushType.s")
|
||||
void alEvtqFlushType(ALEventQueue *evtq, s16 type)
|
||||
{
|
||||
ALLink *thisNode;
|
||||
ALLink *nextNode;
|
||||
ALEventListItem *thisItem, *nextItem;
|
||||
OSIntMask mask;
|
||||
|
||||
mask = osSetIntMask(OS_IM_NONE);
|
||||
|
||||
thisNode = evtq->allocList.next;
|
||||
while( thisNode != 0 )
|
||||
{
|
||||
nextNode = thisNode->next;
|
||||
thisItem = (ALEventListItem *)thisNode;
|
||||
nextItem = (ALEventListItem *)nextNode;
|
||||
if (thisItem->evt.type == type)
|
||||
{
|
||||
if (nextItem)
|
||||
nextItem->delta += thisItem->delta;
|
||||
alUnlink(thisNode);
|
||||
alLink(thisNode, &evtq->freeList);
|
||||
}
|
||||
thisNode = nextNode;
|
||||
}
|
||||
|
||||
osSetIntMask(mask);
|
||||
}
|
||||
|
||||
void alEvtqFlush(ALEventQueue *evtq)
|
||||
{
|
||||
ALLink *thisNode;
|
||||
ALLink *nextNode;
|
||||
OSIntMask mask;
|
||||
|
||||
mask = osSetIntMask(OS_IM_NONE);
|
||||
|
||||
thisNode = evtq->allocList.next;
|
||||
while( thisNode != 0 ) {
|
||||
nextNode = thisNode->next;
|
||||
alUnlink(thisNode);
|
||||
alLink(thisNode, &evtq->freeList);
|
||||
thisNode = nextNode;
|
||||
}
|
||||
|
||||
osSetIntMask(mask);
|
||||
}
|
||||
|
||||
#if 1
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0C9C90/alEvtqPostEvent.s")
|
||||
//GLOBAL_ASM("lib/asm/non_matchings/unknown_0C9C90/alEvtqNextEvent.s")
|
||||
#else
|
||||
void alEvtqPostEvent(ALEventQueue *evtq, ALEvent *evt, ALMicroTime delta)
|
||||
{
|
||||
ALEventListItem *item;
|
||||
ALEventListItem *nextItem;
|
||||
ALLink *node;
|
||||
s32 postAtEnd=0;
|
||||
OSIntMask mask;
|
||||
|
||||
mask = osSetIntMask(OS_IM_NONE);
|
||||
|
||||
item = (ALEventListItem *)evtq->freeList.next;
|
||||
if (!item) {
|
||||
osSetIntMask(mask);
|
||||
#ifdef _DEBUG
|
||||
__osError(ERR_ALEVENTNOFREE, 0);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
alUnlink((ALLink *)item);
|
||||
alCopy(evt, &item->evt, sizeof(*evt));
|
||||
|
||||
if (delta == AL_EVTQ_END)
|
||||
postAtEnd = -1;
|
||||
|
||||
for (node = &evtq->allocList; node != 0; node = node->next) {
|
||||
if (!node->next) { /* end of the list */
|
||||
if (postAtEnd)
|
||||
item->delta = 0;
|
||||
else
|
||||
item->delta = delta;
|
||||
alLink((ALLink *)item, node);
|
||||
break;
|
||||
} else {
|
||||
nextItem = (ALEventListItem *)node->next;
|
||||
|
||||
if (delta < nextItem->delta) {
|
||||
item->delta = delta;
|
||||
nextItem->delta -= delta;
|
||||
|
||||
alLink((ALLink *)item, node);
|
||||
break;
|
||||
}
|
||||
|
||||
delta -= nextItem->delta;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
osSetIntMask(mask);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user