mirror of
https://github.com/BanjoRecomp/BanjoRecomp
synced 2026-06-03 18:06:09 -04:00
Extend graphics stacks (fixes OOM crashes) and add recomp_printf
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user