diff --git a/librecomp/src/cont.cpp b/librecomp/src/cont.cpp index 8e15c83..d96f9f3 100644 --- a/librecomp/src/cont.cpp +++ b/librecomp/src/cont.cpp @@ -16,8 +16,11 @@ extern "C" void osContInit_recomp(uint8_t* rdram, recomp_context* ctx) { PTR(OSMesgQueue) mq = _arg<0, PTR(OSMesgQueue)>(rdram, ctx); PTR(u8) bitpattern = _arg<1, PTR(u8)>(rdram, ctx); PTR(OSContStatus) data = _arg<2, PTR(OSContStatus)>(rdram, ctx); + u8 bitpattern_local = 0; - s32 ret = osContInit(PASS_RDRAM mq, bitpattern, data); + s32 ret = osContInit(PASS_RDRAM mq, &bitpattern_local, data); + + MEM_B(0, bitpattern) = bitpattern_local; _return(ctx, ret); } diff --git a/librecomp/src/recomp.cpp b/librecomp/src/recomp.cpp index f7caffc..ad1cf00 100644 --- a/librecomp/src/recomp.cpp +++ b/librecomp/src/recomp.cpp @@ -551,7 +551,6 @@ bool wait_for_game_started(uint8_t* rdram, recomp_context* context) { save_type = game_entry.save_type; ultramodern::init_saving(rdram); - ultramodern::load_shader_cache(game_entry.cache_data); try { game_entry.entrypoint(rdram, context); diff --git a/ultramodern/include/ultramodern/renderer_context.hpp b/ultramodern/include/ultramodern/renderer_context.hpp index 0b5d333..86db335 100644 --- a/ultramodern/include/ultramodern/renderer_context.hpp +++ b/ultramodern/include/ultramodern/renderer_context.hpp @@ -72,7 +72,6 @@ namespace ultramodern { virtual void shutdown() = 0; virtual uint32_t get_display_framerate() const = 0; virtual float get_resolution_scale() const = 0; - virtual void load_shader_cache(std::span cache_binary) = 0; protected: SetupResult setup_result; diff --git a/ultramodern/include/ultramodern/ultra64.h b/ultramodern/include/ultramodern/ultra64.h index bce6090..71a412f 100644 --- a/ultramodern/include/ultramodern/ultra64.h +++ b/ultramodern/include/ultramodern/ultra64.h @@ -297,7 +297,7 @@ u32 osVirtualToPhysical(PTR(void) addr); /* Controller interface */ -s32 osContInit(RDRAM_ARG PTR(OSMesgQueue), PTR(u8), PTR(OSContStatus)); +s32 osContInit(RDRAM_ARG PTR(OSMesgQueue), u8*, PTR(OSContStatus)); s32 osContReset(RDRAM_ARG PTR(OSMesgQueue), PTR(OSContStatus)); s32 osContStartQuery(RDRAM_ARG PTR(OSMesgQueue)); s32 osContStartReadData(RDRAM_ARG PTR(OSMesgQueue)); diff --git a/ultramodern/include/ultramodern/ultramodern.hpp b/ultramodern/include/ultramodern/ultramodern.hpp index 07019d4..baed6f5 100644 --- a/ultramodern/include/ultramodern/ultramodern.hpp +++ b/ultramodern/include/ultramodern/ultramodern.hpp @@ -85,7 +85,6 @@ void sleep_until(const std::chrono::high_resolution_clock::time_point& time_poin uint32_t get_target_framerate(uint32_t original); uint32_t get_display_refresh_rate(); float get_resolution_scale(); -void load_shader_cache(std::span cache_data); void trigger_config_action(); // Audio diff --git a/ultramodern/src/events.cpp b/ultramodern/src/events.cpp index 0b4db7b..fa5b4c6 100644 --- a/ultramodern/src/events.cpp +++ b/ultramodern/src/events.cpp @@ -34,11 +34,7 @@ struct SwapBuffersAction { struct UpdateConfigAction { }; -struct LoadShaderCacheAction { - std::span data; -}; - -using Action = std::variant; +using Action = std::variant; static struct { struct { @@ -248,10 +244,6 @@ float ultramodern::get_resolution_scale() { return resolution_scale.load(); } -void ultramodern::load_shader_cache(std::span cache_data) { - events_context.action_queue.enqueue(LoadShaderCacheAction{cache_data}); -} - void ultramodern::trigger_config_action() { events_context.action_queue.enqueue(UpdateConfigAction{}); } @@ -321,9 +313,6 @@ void gfx_thread_func(uint8_t* rdram, moodycamel::LightweightSemaphore* thread_re old_config = new_config; } } - else if (const auto* load_shader_cache_action = std::get_if(&action)) { - renderer_context->load_shader_cache(load_shader_cache_action->data); - } } } diff --git a/ultramodern/src/input.cpp b/ultramodern/src/input.cpp index cf77096..03a7c6b 100644 --- a/ultramodern/src/input.cpp +++ b/ultramodern/src/input.cpp @@ -82,8 +82,7 @@ static void __osContGetInitData(u8* pattern, OSContStatus *data) { } } -extern "C" s32 osContInit(RDRAM_ARG PTR(OSMesgQueue) mq, PTR(u8) bitpattern_, PTR(OSContStatus) data_) { - u8 *bitpattern = TO_PTR(u8, bitpattern_); +extern "C" s32 osContInit(RDRAM_ARG PTR(OSMesgQueue) mq, u8* bitpattern, PTR(OSContStatus) data_) { OSContStatus *data = TO_PTR(OSContStatus, data_); max_controllers = MAXCONTROLLERS;