diff --git a/parallel-rdp/interface.cpp b/parallel-rdp/interface.cpp index 17abcdf..ab40397 100644 --- a/parallel-rdp/interface.cpp +++ b/parallel-rdp/interface.cpp @@ -221,6 +221,9 @@ void rdp_new_processor(GFX_INFO _gfx_info) sync_signal = 0; rdram_dirty.assign(gfx_info.RDRAM_SIZE / 8, false); + rdp_device.frame_buffer_info.framebuffer_address = rdram_dirty.size(); + rdp_device.frame_buffer_info.depthbuffer_address = rdram_dirty.size(); + rdp_device.frame_buffer_info.texture_address = rdram_dirty.size(); if (processor) { diff --git a/src/ui/video.rs b/src/ui/video.rs index df13354..4f44672 100644 --- a/src/ui/video.rs +++ b/src/ui/video.rs @@ -110,8 +110,8 @@ pub fn load_state(device: &mut device::Device, rdp_state: *const u8) { crt: device.ui.config.video.crt, }; unsafe { - rdp_load_state(rdp_state); rdp_new_processor(gfx_info); + rdp_load_state(rdp_state); for reg in 0..device::vi::VI_REGS_COUNT { rdp_set_vi_register(reg, device.vi.regs[reg as usize]) }