ITotalJustice / notorious_beeg

gba emulator written in c++23
https://notorious-beeg.netlify.app/
GNU General Public License v3.0
41 stars 4 forks source link

impl ezflash state compatibilty #57

Closed ITotalJustice closed 2 years ago

ITotalJustice commented 2 years ago

goal behind this is to be able to share states from my emulator to real hw using ezflash.

this was inspired by sloop (tm) as that dumped states which could then be loaded on an ezflash, which is very helpful for debugging.

idk how they handle something like timers as writing to timer whilst on sets the reload value with no way to check that reload value and dma values are latched. not to mention read only registers...

ezflash docs do mention this problem

Note: Save state on physical hardware is different from the same name one on computer emulators and
is limited by hardware restrictions, such as read and write restrictions on various registers. On the other
hand, the emulator on the computer simulates the hardware through software and has full read/write
access to the registers. Therefore, the use of save state on physical hardware will be accompanied by
some graphics glitches , music noise and other issues, and the high frequency of access to save
state(save/load) may cause a crash.

source: https://www.ezflash.cn/omegade-en.pdf

ITotalJustice commented 2 years ago

Tldr: my ezflash either doesn't work or ezflash itself is a bit shit when it comes to savestates, they don't work (99.9% of the time). Firstly, they don't work at all with any non commercial game. Secondly, they almost never work with commercial games anyway.

The kernel is open source, so it'll be easy to understand the state format, however states don't work so it's basically pointless https://github.com/ez-flash/omega-kernel/tree/master/source