mirror of
https://github.com/BanjoRecomp/BanjoRecomp
synced 2026-05-31 00:45:31 -04:00
Add level model hotpatch for intro scene to fix gap in widescreen
Co-authored-by: Reonu <15913880+Reonu@users.noreply.github.com>
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "../patches/sound.h"
|
||||
#include "ultramodern/ultramodern.hpp"
|
||||
#include "ultramodern/config.hpp"
|
||||
#include "../lib/N64ModernRuntime/thirdparty/xxHash/xxh3.h"
|
||||
|
||||
extern "C" void recomp_update_inputs(uint8_t* rdram, recomp_context* ctx) {
|
||||
recomp::poll_inputs();
|
||||
@@ -219,3 +220,20 @@ extern "C" void recomp_abort(uint8_t* rdram, recomp_context* ctx) {
|
||||
assert(false);
|
||||
ultramodern::error_handling::quick_exit(__FILE__, __LINE__, __FUNCTION__);
|
||||
}
|
||||
|
||||
extern "C" void recomp_xxh3(uint8_t* rdram, recomp_context* ctx) {
|
||||
PTR(void) data = _arg<0, PTR(void)>(rdram, ctx);
|
||||
u32 size = _arg<1, u32>(rdram, ctx);
|
||||
XXH3_state_t xxh3;
|
||||
XXH3_64bits_reset(&xxh3);
|
||||
|
||||
// Hash 1 byte at a time to account for byteswapping.
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
XXH3_64bits_update(&xxh3, TO_PTR(u8, data + i), 1);
|
||||
}
|
||||
|
||||
uint64_t ret = XXH3_64bits_digest(&xxh3);
|
||||
|
||||
ctx->r2 = (int32_t)(ret >> 32);
|
||||
ctx->r3 = (int32_t)(ret >> 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user