Extend graphics stacks (fixes OOM crashes) and add recomp_printf

This commit is contained in:
Mr-Wiseguy
2025-02-22 02:39:06 -05:00
parent bfa91bb098
commit b1af6412d2
13 changed files with 873 additions and 3 deletions
+13
View File
@@ -32,6 +32,19 @@ extern "C" void recomp_exit(uint8_t* rdram, recomp_context* ctx) {
ultramodern::quit();
}
extern "C" void recomp_error(uint8_t* rdram, recomp_context* ctx) {
std::string str{};
PTR(u8) str_ptr = _arg<0, PTR(u8)>(rdram, ctx);
for (size_t i = 0; MEM_B(str_ptr, i) != '\x00'; i++) {
str += (char)MEM_B(str_ptr, i);
}
recompui::message_box(str.c_str());
assert(false);
ultramodern::error_handling::quick_exit(__FILE__, __LINE__, __FUNCTION__);
}
extern "C" void recomp_get_gyro_deltas(uint8_t* rdram, recomp_context* ctx) {
float* x_out = _arg<0, float*>(rdram, ctx);
float* y_out = _arg<1, float*>(rdram, ctx);
-2
View File
@@ -4,7 +4,6 @@
#include "librecomp/game.hpp"
#include "banjo_game.h"
#include "recomp_data.h"
#ifdef _MSC_VER
inline uint32_t byteswap(uint32_t val) {
@@ -121,5 +120,4 @@ std::vector<uint8_t> banjo::decompress_bk(std::span<const uint8_t> compressed_ro
void banjo::bk_on_init(uint8_t* rdram, recomp_context* ctx) {
MEM_W(0, (int32_t)0x80000310) = 6103;
recomp::do_rom_read(rdram, (int32_t)0x80000000, 0x100004C0, 0x2A4);
recomp::init_extended_actor_data();
}
+2
View File
@@ -26,6 +26,7 @@
#include "banjo_sound.h"
#include "banjo_render.h"
#include "banjo_game.h"
#include "recomp_data.h"
#include "ovl_patches.hpp"
#include "librecomp/game.hpp"
#include "librecomp/mods.hpp"
@@ -586,6 +587,7 @@ int main(int argc, char** argv) {
banjo::register_bk_overlays();
banjo::register_bk_patches();
recomp::init_extended_actor_data();
banjo::load_config();
recomp::rsp::callbacks_t rsp_callbacks{