gpgx: fix some problems with save+loadstate and different screen sizees.

note: delete all previous gpgx savestates
This commit is contained in:
goyuken 2013-12-20 21:21:21 +00:00
parent 253ba4ccda
commit cc23c120c0
4 changed files with 12 additions and 1 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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;
}

Binary file not shown.