From 460a19b5e2999133ba955fb8b8bf94a35266c565 Mon Sep 17 00:00:00 2001 From: Sonic Dreamcaster Date: Thu, 26 Mar 2026 21:00:26 -0300 Subject: [PATCH 1/2] Added function to RT64Context to control post blend negative dither noise --- recompui/include/recompui/renderer.h | 3 ++- recompui/src/renderer/rt64_render_context.cpp | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recompui/include/recompui/renderer.h b/recompui/include/recompui/renderer.h index 33f79ab..11792ec 100644 --- a/recompui/include/recompui/renderer.h +++ b/recompui/include/recompui/renderer.h @@ -26,6 +26,7 @@ namespace recompui { bool update_config(const ultramodern::renderer::GraphicsConfig &old_config, const ultramodern::renderer::GraphicsConfig &new_config) override; void enable_instant_present() override; + void set_post_blend_negative_dither_noise(bool enabled); void send_dl(const OSTask *task) override; void send_dummy_workload(uint32_t fb_address) override; void update_screen() override; @@ -43,7 +44,7 @@ namespace recompui { void check_refresh_rate_changes(); }; - std::unique_ptr create_render_context(uint8_t *rdram, ultramodern::renderer::WindowHandle window_handle, ultramodern::renderer::PresentationMode presentation_mode, bool developer_mode); + std::unique_ptr create_render_context(uint8_t *rdram, ultramodern::renderer::WindowHandle window_handle, ultramodern::renderer::PresentationMode presentation_mode, bool developer_mode); RT64::UserConfiguration::Antialiasing RT64MaxMSAA(); bool RT64SamplePositionsSupported(); diff --git a/recompui/src/renderer/rt64_render_context.cpp b/recompui/src/renderer/rt64_render_context.cpp index a7954c7..7147315 100644 --- a/recompui/src/renderer/rt64_render_context.cpp +++ b/recompui/src/renderer/rt64_render_context.cpp @@ -397,6 +397,10 @@ void renderer::RT64Context::enable_instant_present() { app->updateEnhancementConfig(); } +void renderer::RT64Context::set_post_blend_negative_dither_noise(bool enabled) { + app->emulatorConfig.dither.postBlendNoiseNegative = enabled; +} + uint32_t renderer::RT64Context::get_display_framerate() const { return app->presentQueue->ext.sharedResources->swapChainRate; } @@ -494,7 +498,7 @@ RT64::UserConfiguration::Antialiasing renderer::RT64MaxMSAA() { return device_max_msaa; } -std::unique_ptr renderer::create_render_context(uint8_t* rdram, ultramodern::renderer::WindowHandle window_handle, ultramodern::renderer::PresentationMode presentation_mode, bool developer_mode) { +std::unique_ptr renderer::create_render_context(uint8_t* rdram, ultramodern::renderer::WindowHandle window_handle, ultramodern::renderer::PresentationMode presentation_mode, bool developer_mode) { return std::make_unique(rdram, window_handle, presentation_mode, developer_mode); } From 202af5f2a5eb67ecb25fb1f691aec33d1077127b Mon Sep 17 00:00:00 2001 From: Sonic Dreamcaster Date: Thu, 26 Mar 2026 22:27:30 -0300 Subject: [PATCH 2/2] Update config for postBlendNoiseNegative setting --- recompui/src/renderer/rt64_render_context.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/recompui/src/renderer/rt64_render_context.cpp b/recompui/src/renderer/rt64_render_context.cpp index 7147315..c32b8bf 100644 --- a/recompui/src/renderer/rt64_render_context.cpp +++ b/recompui/src/renderer/rt64_render_context.cpp @@ -399,6 +399,7 @@ void renderer::RT64Context::enable_instant_present() { void renderer::RT64Context::set_post_blend_negative_dither_noise(bool enabled) { app->emulatorConfig.dither.postBlendNoiseNegative = enabled; + app->updateEmulatorConfig(); } uint32_t renderer::RT64Context::get_display_framerate() const {