2019-04-06, 23:36
(2018-06-26, 18:53)garbear Wrote: There is an exception: Some achievements have a "hysteresis". This is a "memory effect", where the achievement depends on previous frames. E.g. to protect against cheating, "Get to level 5" might require the address $0010 to be a 1, then 2, then 3, then 4, then 5, so the user can't load a downloaded savestate and automatically get the achievement.I know this is an old post, but just thought I would point out that there is a new achievements processing engine here that should make integration easier in theory. It takes care of keeping track of previous frame memory and everything. The only problem is the addition of lua as a dependency. In RetroArch this is implemented in the "cheevos-new" folder.
Therefore, the internal state of the achievement engine must become part of the savestate and be saved alongside the emulator's RAM. Not a big deal, it just requires more work on my part to create an archival format to handle both emulator and achievement state.
It is an interesting feature, so I hope to see it supported in the future.