libretro / Genesis-Plus-GX

An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
Other
74 stars 71 forks source link

(Libretro) States incompatible between Android and PC. #165

Closed DipsoNOR closed 5 years ago

DipsoNOR commented 5 years ago

I have found the same problem as this guy:

https://forums.libretro.com/t/trying-to-sync-saved-states-between-pc-and-android/ 1

Even though I’m running the same core version on PC and Android.

If i try to load states saved on the Android device on my pc: The game flashes a single frame of the state, and a beep from the audio, then the Rom restarts.

It works fine for all other systems/cores.

My original thread on Retroarch forums: https://forums.libretro.com/t/gensis-plus-gx-states-incompatible-between-android-and-pc/

ekeeke commented 5 years ago

Can you select "nuked (ym2612)" or "nuked (ym3438)" for Megadrive/Genesis FM core setting in Android port ?

If not this indeed means Android state will be different from other versions.

A solution would be to add -DHAVE_YM3438_CORE in Android Makefile

DipsoNOR commented 5 years ago

A guy at the libretro forums said this:

Most likely it is an issue about 32/64 bits having different sizes for their pointers. Hopefully that’s fixable, it’ll break backward savestates compatibility though.

Going to have a look at if nuked is a core setting...

A solution would be to add -DHAVE_YM3438_CORE in Android Makefile

I don't know what this means... :/

ekeeke commented 5 years ago

A guy at the libretro forums said this

Afaik, there is no pointers saved in state files and no 32/64 bits incompatibilities either (long type is not used). Also, if it was a 32/64 bit issue, the state would not load on 64-bit platforms as the max state size is hard-coded and would not fit if all 32-bits data type were 64-bits instead.

You could also look at state files created from each retroarch version (PC and Android) for the same game at the same spot and compare them using an hex editor (size, content).

I don't know what this means... :/

Libretro devs would know