mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
libretro, improve 32x save/load for run-ahead
This commit is contained in:
parent
b72662e224
commit
92f7a430ca
2 changed files with 8 additions and 0 deletions
|
@ -347,6 +347,7 @@ static int state_save(void *file)
|
||||||
CHECKED_WRITE(chwc->chunk, chwc->size, chwc->ptr);
|
CHECKED_WRITE(chwc->chunk, chwc->size, chwc->ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CHECKED_WRITE(0, 0, NULL);
|
||||||
retval = 0;
|
retval = 0;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
@ -540,6 +541,8 @@ static int state_load(void *file)
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
|
if (len|chunk == 0)
|
||||||
|
goto readend;
|
||||||
if (carthw_chunks != NULL)
|
if (carthw_chunks != NULL)
|
||||||
{
|
{
|
||||||
carthw_state_chunk *chwc;
|
carthw_state_chunk *chwc;
|
||||||
|
|
|
@ -872,9 +872,14 @@ int state_fseek(void *file, long offset, int whence)
|
||||||
size_t retro_serialize_size(void)
|
size_t retro_serialize_size(void)
|
||||||
{
|
{
|
||||||
struct savestate_state state = { 0, };
|
struct savestate_state state = { 0, };
|
||||||
|
unsigned AHW = PicoIn.AHW;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/* we need the max possible size here, so include 32X for MD and MCD */
|
||||||
|
if (!(AHW & (PAHW_SMS|PAHW_PICO|PAHW_SVP)))
|
||||||
|
PicoIn.AHW |= PAHW_32X;
|
||||||
ret = PicoStateFP(&state, 1, NULL, state_skip, NULL, state_fseek);
|
ret = PicoStateFP(&state, 1, NULL, state_skip, NULL, state_fseek);
|
||||||
|
PicoIn.AHW = AHW;
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue