Decompile alEvtqNextEvent

This commit is contained in:
Ryan Dwyer 2021-03-27 21:30:09 +10:00
parent 195510a26a
commit 0a4b5a44b0
4 changed files with 34 additions and 53 deletions

View File

@ -4,7 +4,6 @@
#include "data.h"
#include "types.h"
u32 func0003c56c(void);
u32 func0003c7c0(void);
u32 func0003c900(void);
u32 func0003c9e0(void);

View File

@ -185,7 +185,7 @@ glabel func000317f0
/* 31a30: 3c0d8006 */ lui $t5,%hi(var8005f12c)
/* 31a34: 8dadf12c */ lw $t5,%lo(var8005f12c)($t5)
/* 31a38: 25a40014 */ addiu $a0,$t5,0x14
/* 31a3c: 0c00f15b */ jal func0003c56c
/* 31a3c: 0c00f15b */ jal alEvtqNextEvent
/* 31a40: 25a50028 */ addiu $a1,$t5,0x28
/* 31a44: 3c0f8006 */ lui $t7,%hi(var8005f12c)
/* 31a48: 8deff12c */ lw $t7,%lo(var8005f12c)($t7)
@ -352,7 +352,7 @@ glabel func000317f0
/* 31a30: 3c0d8006 */ lui $t5,%hi(var8005f12c)
/* 31a34: 8dadf12c */ lw $t5,%lo(var8005f12c)($t5)
/* 31a38: 25a40014 */ addiu $a0,$t5,0x14
/* 31a3c: 0c00f15b */ jal func0003c56c
/* 31a3c: 0c00f15b */ jal alEvtqNextEvent
/* 31a40: 25a50028 */ addiu $a1,$t5,0x28
/* 31a44: 3c0f8006 */ lui $t7,%hi(var8005f12c)
/* 31a48: 8deff12c */ lw $t7,%lo(var8005f12c)($t7)
@ -515,7 +515,7 @@ glabel func000317f0
/* 33170: 3c0d8006 */ lui $t5,0x8006
/* 33174: 8dad163c */ lw $t5,0x163c($t5)
/* 33178: 25a40014 */ addiu $a0,$t5,0x14
/* 3317c: 0c00f64f */ jal func0003c56c
/* 3317c: 0c00f64f */ jal alEvtqNextEvent
/* 33180: 25a50028 */ addiu $a1,$t5,0x28
/* 33184: 3c0f8006 */ lui $t7,0x8006
/* 33188: 8def163c */ lw $t7,0x163c($t7)
@ -565,7 +565,7 @@ glabel func00031a68
.L00031ad4:
/* 31ad4: 8fa9002c */ lw $t1,0x2c($sp)
/* 31ad8: 25240014 */ addiu $a0,$t1,0x14
/* 31adc: 0c00f15b */ jal func0003c56c
/* 31adc: 0c00f15b */ jal alEvtqNextEvent
/* 31ae0: 25250028 */ addiu $a1,$t1,0x28
/* 31ae4: 8faa002c */ lw $t2,0x2c($sp)
/* 31ae8: ad42004c */ sw $v0,0x4c($t2)

View File

@ -23,53 +23,35 @@ void alEvtqNew(ALEventQueue *evtq, ALEventListItem *items, s32 itemCount)
}
}
GLOBAL_ASM(
glabel func0003c56c
/* 3c56c: 27bdffd8 */ addiu $sp,$sp,-40
/* 3c570: afbf0014 */ sw $ra,0x14($sp)
/* 3c574: afa40028 */ sw $a0,0x28($sp)
/* 3c578: afa5002c */ sw $a1,0x2c($sp)
/* 3c57c: 0c012194 */ jal osSetIntMask
/* 3c580: 24040001 */ addiu $a0,$zero,0x1
/* 3c584: afa2001c */ sw $v0,0x1c($sp)
/* 3c588: 8fae0028 */ lw $t6,0x28($sp)
/* 3c58c: 8dcf0008 */ lw $t7,0x8($t6)
/* 3c590: afaf0024 */ sw $t7,0x24($sp)
/* 3c594: 8fb80024 */ lw $t8,0x24($sp)
/* 3c598: 1300000f */ beqz $t8,.L0003c5d8
/* 3c59c: 00000000 */ nop
/* 3c5a0: 0c00c5e9 */ jal alUnlink
/* 3c5a4: 8fa40024 */ lw $a0,0x24($sp)
/* 3c5a8: 8fa40024 */ lw $a0,0x24($sp)
/* 3c5ac: 8fa5002c */ lw $a1,0x2c($sp)
/* 3c5b0: 24060010 */ addiu $a2,$zero,0x10
/* 3c5b4: 0c012c5c */ jal bcopy
/* 3c5b8: 2484000c */ addiu $a0,$a0,0xc
/* 3c5bc: 8fa40024 */ lw $a0,0x24($sp)
/* 3c5c0: 0c00c5dc */ jal alLink
/* 3c5c4: 8fa50028 */ lw $a1,0x28($sp)
/* 3c5c8: 8fb90024 */ lw $t9,0x24($sp)
/* 3c5cc: 8f280008 */ lw $t0,0x8($t9)
/* 3c5d0: 10000005 */ b .L0003c5e8
/* 3c5d4: afa80020 */ sw $t0,0x20($sp)
.L0003c5d8:
/* 3c5d8: 8faa002c */ lw $t2,0x2c($sp)
/* 3c5dc: 2409ffff */ addiu $t1,$zero,-1
/* 3c5e0: a5490000 */ sh $t1,0x0($t2)
/* 3c5e4: afa00020 */ sw $zero,0x20($sp)
.L0003c5e8:
/* 3c5e8: 0c012194 */ jal osSetIntMask
/* 3c5ec: 8fa4001c */ lw $a0,0x1c($sp)
/* 3c5f0: 10000003 */ b .L0003c600
/* 3c5f4: 8fa20020 */ lw $v0,0x20($sp)
/* 3c5f8: 10000001 */ b .L0003c600
/* 3c5fc: 00000000 */ nop
.L0003c600:
/* 3c600: 8fbf0014 */ lw $ra,0x14($sp)
/* 3c604: 27bd0028 */ addiu $sp,$sp,0x28
/* 3c608: 03e00008 */ jr $ra
/* 3c60c: 00000000 */ nop
);
ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt)
{
ALEventListItem *item;
ALMicroTime delta;
OSIntMask mask;
mask = osSetIntMask(OS_IM_NONE);
item = (ALEventListItem *)evtq->allocList.next;
if (item) {
alUnlink((ALLink *)item);
bcopy(&item->evt, evt, sizeof(*evt));
alLink((ALLink *)item, &evtq->freeList);
delta = item->delta;
} else {
/* sct 11/28/95 - If we get here, most like we overflowed the event queue */
/* with non-self-perpetuating events. Eg. if we filled the evtq with volume */
/* events, then when the seqp is told to play it will handle all the events */
/* at once completely emptying out the queue. At this point this problem */
/* must be treated as an out of resource error and the evtq should be increased. */
evt->type = -1;
delta = 0;
}
osSetIntMask(mask);
return delta;
}
GLOBAL_ASM(
glabel alEvtqPostEvent

View File

@ -1564,7 +1564,7 @@ glabel __CSPVoiceHandler
.L00034d8c:
/* 34d8c: 8fb90074 */ lw $t9,0x74($sp)
/* 34d90: 27240048 */ addiu $a0,$t9,0x48
/* 34d94: 0c00f15b */ jal func0003c56c
/* 34d94: 0c00f15b */ jal alEvtqNextEvent
/* 34d98: 27250038 */ addiu $a1,$t9,0x38
/* 34d9c: 8fae0074 */ lw $t6,0x74($sp)
/* 34da0: adc20028 */ sw $v0,0x28($t6)