From 29fd13f355dc3a9617845c71a4d865638e5e43ee Mon Sep 17 00:00:00 2001 From: sozud <122322823+sozud@users.noreply.github.com> Date: Sat, 24 Feb 2024 16:49:45 -0800 Subject: [PATCH] match s_m_f --- src/spu/s_m_f.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/spu/s_m_f.c diff --git a/src/spu/s_m_f.c b/src/spu/s_m_f.c new file mode 100644 index 0000000..f697428 --- /dev/null +++ b/src/spu/s_m_f.c @@ -0,0 +1,34 @@ +#include "libspu_i.h" + +void SpuFree(unsigned long arg0) { + s32 temp_v1; + s32 cur_block_num; + SPU_MALLOC* cur_mem; + s32 temp; + s32 mask4; + s32 block_num; + u8 pad[2]; + cur_block_num = 0; + if (temp_v1 = _spu_AllocBlockNum > 0) { + mask4 = 0x40000000; + temp = arg0 | 0x80000000; + block_num = _spu_AllocBlockNum; + cur_mem = _spu_memList; + while (true) { + temp_v1 = cur_mem->addr; + if (temp_v1 & mask4) { + break; + } + if (temp_v1 == arg0) { + cur_mem->addr = temp; + break; + } + cur_mem++; + cur_block_num++; + if (cur_block_num >= block_num) { + break; + } + } + } + _spu_gcSPU(); +}