48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
#include "common.h"
|
|
|
|
#include "nu/nusys.h"
|
|
|
|
INCLUDE_ASM(const s32, "_ob_prized_room", func_8009DA10);
|
|
|
|
/* 2DE50 8009DA50 */
|
|
void __calls_romCopy_8009DA50(void* src, void* dst, u32 len) {
|
|
u8 sp1F[32];
|
|
u8* _dst;
|
|
u8* _src;
|
|
s32 i;
|
|
|
|
// align to 16
|
|
_src = (u8*) (((u32) &sp1F[15] >> 4) << 4);
|
|
|
|
if (len < 16) {
|
|
_dst = dst;
|
|
// Copy into stack, length aligned to 2 bytes...
|
|
nuPiReadRom(src, _src, (len + 1) & ~1);
|
|
// ...then copy from stack into destination
|
|
for(len--; len != -1; len--)
|
|
*_dst++ = *_src++;
|
|
} else {
|
|
// Too big to fit in our stack, so just do a regular copy
|
|
nuPiReadRom(src, dst, (len + 1) & ~1);
|
|
}
|
|
}
|
|
|
|
|
|
void func_8009DAEC(void) { }
|
|
|
|
INCLUDE_ASM(const s32, "_ob_prized_room", __calls_romCopy_8009DAF4);
|
|
|
|
INCLUDE_ASM(const s32, "_ob_prized_room", __calls_romCopy_8009DBB8);
|
|
|
|
void* __add_0x594284(s32 arg0) {
|
|
return arg0 + &D_594284;
|
|
}
|
|
|
|
|
|
INCLUDE_ASM(const s32, "_ob_prized_room", __calls_romCopy_8009DD38);
|
|
|
|
INCLUDE_ASM(const s32, "_ob_prized_room", __calls_romCopy_8009DE40);
|
|
|
|
INCLUDE_ASM(const s32, "_ob_prized_room", __load_and_unpack);
|
|
|