Would it be possible/reasonable to wrap any functions labeled as those found in the string.h library by loading the registers directly into the native counterpart? example:
void strlen_recomp(uint8_t* rdram, recomp_context* ctx) {
ctx->r2=(uint32_t)std::strlen((char*)MEM_W(0x0, ctx->r4));
}