mirror of
https://github.com/hedge-dev/UnleashedRecomp.git
synced 2026-04-27 12:51:42 +00:00
Make CSB limit dynamic.
This commit is contained in:
parent
6c6aa78f19
commit
66a13734d1
1 changed files with 45 additions and 0 deletions
|
|
@ -671,3 +671,48 @@ PPC_FUNC(sub_82E0B500)
|
||||||
|
|
||||||
__imp__sub_82E0B500(ctx, base);
|
__imp__sub_82E0B500(ctx, base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CriAuObjLoc::AttachCueSheet
|
||||||
|
PPC_FUNC_IMPL(__imp__sub_8314A310);
|
||||||
|
PPC_FUNC(sub_8314A310)
|
||||||
|
{
|
||||||
|
// allocator: 0x4
|
||||||
|
// capacity: 0x24
|
||||||
|
// count: 0x28
|
||||||
|
// data: 0x2C
|
||||||
|
uint32_t capacity = PPC_LOAD_U32(ctx.r3.u32 + 0x24);
|
||||||
|
if (capacity == PPC_LOAD_U32(ctx.r3.u32 + 0x28))
|
||||||
|
{
|
||||||
|
auto r3 = ctx.r3;
|
||||||
|
auto r4 = ctx.r4;
|
||||||
|
auto r5 = ctx.r5;
|
||||||
|
|
||||||
|
// Allocate
|
||||||
|
ctx.r3.u32 = PPC_LOAD_U32(r3.u32 + 0x4);
|
||||||
|
ctx.r4.u32 = (capacity * 2) * sizeof(uint32_t);
|
||||||
|
ctx.r5.u32 = 0x82195248; // AuObjCueSheet
|
||||||
|
ctx.r6.u32 = 0x4;
|
||||||
|
sub_83167FD8(ctx, base);
|
||||||
|
|
||||||
|
// Copy
|
||||||
|
uint32_t oldData = PPC_LOAD_U32(r3.u32 + 0x2C);
|
||||||
|
uint32_t newData = ctx.r3.u32;
|
||||||
|
|
||||||
|
memcpy(base + newData, base + oldData, capacity * sizeof(uint32_t));
|
||||||
|
memset(base + newData + (capacity * sizeof(uint32_t)), 0, capacity * sizeof(uint32_t));
|
||||||
|
|
||||||
|
PPC_STORE_U32(r3.u32 + 0x24, capacity * 2);
|
||||||
|
PPC_STORE_U32(r3.u32 + 0x2C, newData);
|
||||||
|
|
||||||
|
// Deallocate
|
||||||
|
ctx.r3.u32 = PPC_LOAD_U32(r3.u32 + 0x4);
|
||||||
|
ctx.r4.u32 = oldData;
|
||||||
|
sub_83168100(ctx, base);
|
||||||
|
|
||||||
|
ctx.r3 = r3;
|
||||||
|
ctx.r4 = r4;
|
||||||
|
ctx.r5 = r5;
|
||||||
|
}
|
||||||
|
|
||||||
|
__imp__sub_8314A310(ctx, base);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue