From bed46b6ec2f216c7714d61c88b527433e231de7d Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 31 Oct 2021 23:12:49 +1000 Subject: [PATCH] Decompile n_alCSPSendMidi --- ld/libfiles.ntsc-beta.inc | 1 + ld/libfiles.ntsc-final.inc | 1 + ld/libfiles.pal-final.inc | 1 + src/include/lib/lib_43dd0.h | 1 - src/lib/lib_39c80.c | 14 +++++++------- src/lib/lib_43dd0.c | 35 ---------------------------------- src/lib/naudio/n_cspsendmidi.c | 19 ++++++++++++++++++ 7 files changed, 29 insertions(+), 43 deletions(-) create mode 100644 src/lib/naudio/n_cspsendmidi.c diff --git a/ld/libfiles.ntsc-beta.inc b/ld/libfiles.ntsc-beta.inc index 52e833915..b2cc90970 100644 --- a/ld/libfiles.ntsc-beta.inc +++ b/ld/libfiles.ntsc-beta.inc @@ -110,6 +110,7 @@ build/ROMID/lib/naudio/n_env.o (section); \ build/ROMID/lib/lib_3f8a0.o (section); \ build/ROMID/lib/lib_43dd0.o (section); \ + build/ROMID/lib/naudio/n_cspsendmidi.o (section); \ build/ROMID/lib/lib_446d0.o (section); \ build/ROMID/lib/lib_44bc0.o (section); \ build/ROMID/lib/naudio/n_synsetpriority.o (section); \ diff --git a/ld/libfiles.ntsc-final.inc b/ld/libfiles.ntsc-final.inc index ab45cc6a6..6df6ad43d 100644 --- a/ld/libfiles.ntsc-final.inc +++ b/ld/libfiles.ntsc-final.inc @@ -107,6 +107,7 @@ build/ROMID/lib/naudio/n_env.o (section); \ build/ROMID/lib/lib_3f8a0.o (section); \ build/ROMID/lib/lib_43dd0.o (section); \ + build/ROMID/lib/naudio/n_cspsendmidi.o (section); \ build/ROMID/lib/lib_446d0.o (section); \ build/ROMID/lib/lib_44bc0.o (section); \ build/ROMID/lib/naudio/n_synsetpriority.o (section); \ diff --git a/ld/libfiles.pal-final.inc b/ld/libfiles.pal-final.inc index 172989469..0b29ee991 100644 --- a/ld/libfiles.pal-final.inc +++ b/ld/libfiles.pal-final.inc @@ -107,6 +107,7 @@ build/ROMID/lib/naudio/n_env.o (section); \ build/ROMID/lib/lib_3f8a0.o (section); \ build/ROMID/lib/lib_43dd0.o (section); \ + build/ROMID/lib/naudio/n_cspsendmidi.o (section); \ build/ROMID/lib/lib_446d0.o (section); \ build/ROMID/lib/lib_44bc0.o (section); \ build/ROMID/lib/naudio/n_synsetpriority.o (section); \ diff --git a/src/include/lib/lib_43dd0.h b/src/include/lib/lib_43dd0.h index 89c1c1d88..065fa9d6e 100644 --- a/src/include/lib/lib_43dd0.h +++ b/src/include/lib/lib_43dd0.h @@ -9,6 +9,5 @@ u32 func00043ef8(void); u32 func00044404(void); u32 func00044460(void); u32 func0004453c(void); -u32 func00044650(void); #endif diff --git a/src/lib/lib_39c80.c b/src/lib/lib_39c80.c index 49e14cdd5..2f50a4cae 100644 --- a/src/lib/lib_39c80.c +++ b/src/lib/lib_39c80.c @@ -28,7 +28,7 @@ glabel func00039d68 /* 39d80: 00002825 */ or $a1,$zero,$zero /* 39d84: 240700fc */ addiu $a3,$zero,0xfc /* 39d88: afa00010 */ sw $zero,0x10($sp) -/* 39d8c: 0c011194 */ jal func00044650 +/* 39d8c: 0c011194 */ jal n_alCSPSendMidi /* 39d90: 34c600b0 */ ori $a2,$a2,0xb0 /* 39d94: 10000001 */ b .L00039d9c /* 39d98: 00000000 */ nop @@ -54,7 +54,7 @@ glabel func00039d68 /* 39de4: 8fa40020 */ lw $a0,0x20($sp) /* 39de8: 00002825 */ or $a1,$zero,$zero /* 39dec: 240700fc */ addiu $a3,$zero,0xfc -/* 39df0: 0c011194 */ jal func00044650 +/* 39df0: 0c011194 */ jal n_alCSPSendMidi /* 39df4: 34c600b0 */ ori $a2,$a2,0xb0 /* 39df8: 10000001 */ b .L00039e00 /* 39dfc: 00000000 */ nop @@ -74,7 +74,7 @@ glabel func00039d68 /* 39e30: 00002825 */ or $a1,$zero,$zero /* 39e34: 240700ff */ addiu $a3,$zero,0xff /* 39e38: 34c600b0 */ ori $a2,$a2,0xb0 -/* 39e3c: 0c011194 */ jal func00044650 +/* 39e3c: 0c011194 */ jal n_alCSPSendMidi /* 39e40: afae0010 */ sw $t6,0x10($sp) /* 39e44: 10000001 */ b .L00039e4c /* 39e48: 00000000 */ nop @@ -99,7 +99,7 @@ glabel func00039e5c /* 39e80: 00002825 */ or $a1,$zero,$zero /* 39e84: 240700fd */ addiu $a3,$zero,0xfd /* 39e88: 34c600b0 */ ori $a2,$a2,0xb0 -/* 39e8c: 0c011194 */ jal func00044650 +/* 39e8c: 0c011194 */ jal n_alCSPSendMidi /* 39e90: afae0010 */ sw $t6,0x10($sp) /* 39e94: 8fa60024 */ lw $a2,0x24($sp) /* 39e98: 93af002b */ lbu $t7,0x2b($sp) @@ -107,7 +107,7 @@ glabel func00039e5c /* 39ea0: 00002825 */ or $a1,$zero,$zero /* 39ea4: 240700ff */ addiu $a3,$zero,0xff /* 39ea8: 34c600b0 */ ori $a2,$a2,0xb0 -/* 39eac: 0c011194 */ jal func00044650 +/* 39eac: 0c011194 */ jal n_alCSPSendMidi /* 39eb0: afaf0010 */ sw $t7,0x10($sp) /* 39eb4: 10000001 */ b .L00039ebc /* 39eb8: 00000000 */ nop @@ -127,7 +127,7 @@ glabel func00039e5c /* 39eec: 00002825 */ or $a1,$zero,$zero /* 39ef0: 24070041 */ addiu $a3,$zero,0x41 /* 39ef4: 34c600b0 */ ori $a2,$a2,0xb0 -/* 39ef8: 0c011194 */ jal func00044650 +/* 39ef8: 0c011194 */ jal n_alCSPSendMidi /* 39efc: afae0010 */ sw $t6,0x10($sp) /* 39f00: 10000001 */ b .L00039f08 /* 39f04: 00000000 */ nop @@ -147,7 +147,7 @@ glabel func00039e5c /* 39f38: 00002825 */ or $a1,$zero,$zero /* 39f3c: 240700fc */ addiu $a3,$zero,0xfc /* 39f40: 34c600b0 */ ori $a2,$a2,0xb0 -/* 39f44: 0c011194 */ jal func00044650 +/* 39f44: 0c011194 */ jal n_alCSPSendMidi /* 39f48: afae0010 */ sw $t6,0x10($sp) /* 39f4c: 10000001 */ b .L00039f54 /* 39f50: 00000000 */ nop diff --git a/src/lib/lib_43dd0.c b/src/lib/lib_43dd0.c index 709852932..f7dcc6925 100644 --- a/src/lib/lib_43dd0.c +++ b/src/lib/lib_43dd0.c @@ -613,38 +613,3 @@ glabel func0004453c /* 44648: 03e00008 */ jr $ra /* 4464c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel func00044650 -/* 44650: 27bdffd0 */ addiu $sp,$sp,-48 -/* 44654: afbf0014 */ sw $ra,0x14($sp) -/* 44658: afa40030 */ sw $a0,0x30($sp) -/* 4465c: afa50034 */ sw $a1,0x34($sp) -/* 44660: afa60038 */ sw $a2,0x38($sp) -/* 44664: afa7003c */ sw $a3,0x3c($sp) -/* 44668: 240e0002 */ addiu $t6,$zero,0x2 -/* 4466c: a7ae0020 */ sh $t6,0x20($sp) -/* 44670: afa00024 */ sw $zero,0x24($sp) -/* 44674: 93af003b */ lbu $t7,0x3b($sp) -/* 44678: a3af0028 */ sb $t7,0x28($sp) -/* 4467c: 93b8003f */ lbu $t8,0x3f($sp) -/* 44680: a3b80029 */ sb $t8,0x29($sp) -/* 44684: 93b90043 */ lbu $t9,0x43($sp) -/* 44688: a3b9002a */ sb $t9,0x2a($sp) -/* 4468c: afa0002c */ sw $zero,0x2c($sp) -/* 44690: 8fa80034 */ lw $t0,0x34($sp) -/* 44694: afa8001c */ sw $t0,0x1c($sp) -/* 44698: 8fa40030 */ lw $a0,0x30($sp) -/* 4469c: 27a50020 */ addiu $a1,$sp,0x20 -/* 446a0: 8fa6001c */ lw $a2,0x1c($sp) -/* 446a4: 00003825 */ or $a3,$zero,$zero -/* 446a8: 0c00f184 */ jal n_alEvtqPostEvent -/* 446ac: 24840048 */ addiu $a0,$a0,0x48 -/* 446b0: 10000001 */ b .L000446b8 -/* 446b4: 00000000 */ nop -.L000446b8: -/* 446b8: 8fbf0014 */ lw $ra,0x14($sp) -/* 446bc: 27bd0030 */ addiu $sp,$sp,0x30 -/* 446c0: 03e00008 */ jr $ra -/* 446c4: 00000000 */ nop -); diff --git a/src/lib/naudio/n_cspsendmidi.c b/src/lib/naudio/n_cspsendmidi.c new file mode 100644 index 000000000..30401942b --- /dev/null +++ b/src/lib/naudio/n_cspsendmidi.c @@ -0,0 +1,19 @@ +#include +#include "n_libaudio.h" + +void n_alCSPSendMidi(N_ALCSPlayer *seqp, s32 ticks, u8 status, u8 byte1, u8 byte2) +{ + N_ALEvent evt; + ALMicroTime deltaTime; + + evt.type = AL_SEQP_MIDI_EVT; + evt.msg.midi.ticks = 0; + evt.msg.midi.status = status; + evt.msg.midi.byte1 = byte1; + evt.msg.midi.byte2 = byte2; + evt.msg.midi.duration = 0; + + deltaTime = ticks; + + n_alEvtqPostEvent(&seqp->evtq, &evt, deltaTime, 0); +}