Skip to content

Instantly share code, notes, and snippets.

@RoadrunnerWMC
Created January 15, 2024 11:07
Show Gist options
  • Save RoadrunnerWMC/294b56f43ca3ed0c08d9310fa12fbe17 to your computer and use it in GitHub Desktop.
Save RoadrunnerWMC/294b56f43ca3ed0c08d9310fa12fbe17 to your computer and use it in GitHub Desktop.
Jellybeam Spritetex (for Kamek 2.0)
#include <kamek_asm.S>
.extern sprintf
.set sp, 1
kmCallDef 0x80a2f238
lwz r5, 4(r28)
srwi r5, r5, 24
andi. r5, r5, 0xF
b GetTexFilenameForR5
kmCallDef 0x80a2e9ec
lwz r5, -0x6a4(r24)
srwi r5, r5, 24
andi. r5, r5, 0xF
b GetTexFilenameForR5
GetTexFilenameForR5:
// obj number should be put into r5
// returned filename is in r5
// this makes it easy to use with dRes_c::GetResource
stwu sp, -0x20(sp)
mflr r0
stw r0, 0x24(sp)
stw r3, 0x1C(sp)
stw r4, 0x18(sp)
stw r6, 0x14(sp)
stw r7, 0x10(sp)
stw r8, 0xC(sp)
stw r9, 0x8(sp)
lis r3, TexFilenameBuffer@h
ori r3, r3, TexFilenameBuffer@l
lis r4, TexFormatString@h
ori r4, r4, TexFormatString@l
crclr 4*cr1+eq
bl sprintf
lis r5, TexFilenameBuffer@h
ori r5, r5, TexFilenameBuffer@l
lwz r0, 0x24(sp)
lwz r3, 0x1C(sp)
lwz r4, 0x18(sp)
lwz r6, 0x14(sp)
lwz r7, 0x10(sp)
lwz r8, 0xC(sp)
lwz r9, 0x8(sp)
mtlr r0
addi sp, sp, 0x20
blr
TexFilenameBuffer:
.long 0,0,0,0
TexFormatString:
.string "g3d/t%02d.brres"
@RoadrunnerWMC
Copy link
Author

Nybble 6 controls which brres file will be loaded.

Here's a zip file containing a build (base64 -- GitHub won't let me attach it as an actual file).
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

Note: this only contains the code. You'll also need to edit kurage.arc in the same way as you would for other Newer spritetex mods (t00.brres, t01.brres, etc.).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment