diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs index 0e44c462c9..b20a975033 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs @@ -468,6 +468,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx Frame = reader.ReadInt32(); LagCount = reader.ReadInt32(); IsLagFrame = reader.ReadBoolean(); + update_video(); } public byte[] SaveStateBinary() diff --git a/genplus-gx/cinterface/cinterface.c b/genplus-gx/cinterface/cinterface.c index dc7eb30943..80986d0ae9 100644 --- a/genplus-gx/cinterface/cinterface.c +++ b/genplus-gx/cinterface/cinterface.c @@ -123,7 +123,13 @@ GPGX_EX int gpgx_state_load(void *src, int size) if (size != STATE_SIZE) return 0; - return !!state_load((unsigned char *) src); + if (state_load((unsigned char *) src)) + { + update_viewport(); + return 1; + } + else + return 0; } void osd_input_update(void) diff --git a/genplus-gx/core/state.c b/genplus-gx/core/state.c index 50b99c2187..0ac6139c2d 100644 --- a/genplus-gx/core/state.c +++ b/genplus-gx/core/state.c @@ -189,6 +189,8 @@ int state_load(unsigned char *state) sms_cart_switch(~io_reg[0x0E]); } + load_param(&bitmap.viewport, sizeof(bitmap.viewport)); + return bufferptr; } @@ -280,6 +282,8 @@ int state_save(unsigned char *state) bufferptr += sms_cart_context_save(&state[bufferptr]); } + save_param(&bitmap.viewport, sizeof(bitmap.viewport)); + /* return total size */ return bufferptr; } diff --git a/output/dll/libgenplusgx.dll b/output/dll/libgenplusgx.dll index c3791d9d43..b3f58d27b4 100644 Binary files a/output/dll/libgenplusgx.dll and b/output/dll/libgenplusgx.dll differ