diff --git a/gfx/drivers/gdi_gfx.c b/gfx/drivers/gdi_gfx.c index 05f9e00509..5f5e419557 100644 --- a/gfx/drivers/gdi_gfx.c +++ b/gfx/drivers/gdi_gfx.c @@ -223,7 +223,7 @@ static bool gdi_gfx_frame(void *data, const void *frame, /* map RGB565 color bits, default is 555 */ masks[0] = 0xF800; masks[1] = 0x07E0; - masks[2] = 0x1F; + masks[2] = 0x001F; } else info->bmiHeader.biCompression = BI_RGB; diff --git a/managers/state_manager.c b/managers/state_manager.c index 435b1f4dd8..c447321944 100644 --- a/managers/state_manager.c +++ b/managers/state_manager.c @@ -382,6 +382,7 @@ static bool state_manager_pop(state_manager_t *state, const void **data) return true; } + *data = state->thisblock; if (state->head == state->tail) return false; @@ -395,7 +396,6 @@ static bool state_manager_pop(state_manager_t *state, const void **data) state->maxcompsize, out, state->blocksize); state->entries--; - *data = state->thisblock; return true; } @@ -623,9 +623,15 @@ void state_manager_check_rewind(bool pressed, bsv_movie_ctl(BSV_MOVIE_CTL_FRAME_REWIND, NULL); } else + { + retro_ctx_serialize_info_t serial_info; + serial_info.data_const = buf; + serial_info.size = rewind_state.size; + core_unserialize(&serial_info); runloop_msg_queue_push( msg_hash_to_str(MSG_REWIND_REACHED_END), 0, 30, true); + } } else {