A rare case of genre savviness improving the experience

https://lemmy.world/post/43895311

F4

“You cannot save right now.”

Your comment made this thought pop into my head:

I wonder if it would be possible to make a utility that would basically give any game emulator-style save states… 🤔

“Emulator-style save states” is just a flash image of the RAM being used by the application. Very easy and fast for old games, but the amount of RAM being used by modern games could result in multiple GigaByte-sized save files. :3
It surely wouldn’t be more than 16GB tho. I would hope… If a game rn uses more than that, holy shit what the fuck?
Famous last words…

The main problem is that there’s no way to (as far as I know) lock memory into a state where modifications won’t affect it. This is necessary because reading through 16 GB of RAM and writing it to disk, or even to SSD, or even to a separate block of memory, takes a non-trivial amount of time and during that time stuff within that 16GB is changing. Without the ability to prevent updates temporarily, you need every process and thread in the game to stop instantaneously in a consistent state and keep them paused while the snapshot is happening. Otherwise you end up with an inconsistent snapshot, which you may be tempted to handwave away, but realistically this means your save games won’t load properly or will load with bizarre bugs like you passed a certain threshold that was supposed to give you an item but the inventory was in a lower part of RAM and got saved with no item yet, and the threshold was in a higher part of RAM that was saved later, so now your game is loaded back up and you don’t have the item but you’re already passed the threshold so you can’t get it again. That’s just an obvious example to help understand the issue, but realistically the bugs even in a single snapshot will probably be very numerous and extremely subtle, quickly turning into massive corruption and making the game unplayable and the save unloadable.

I don’t think this is realistically possible without running it in a virtual machine, which adds so much performance impact that your game won’t run well, which means nobody’s ever going to do it.

You can suspend a program so it doesn’t change state until resumed. I’ve even seen at least 1 tool that allows you to pause games not normally able to be paused.

And if doing it exactly like an emulator isn’t feasible, perhaps it can be truncated the way the game itself saves and just lock specific values down like what your stats are, what triggers have been triggered, your position and inventory, etc. This would require different profiles for every single game, tho, to find the address values that need to be stored to restore later.

Memory leaks happen. I had one recently where the game crashed and I happened to have a system monitor open on the other screen.

My setup has 64GB of RAM. The game as it crashed was consuming 50+GB of RAM, leading me to believe it was eating up every last bit before finally biting the dust because the computer effectively cut it off from taking anymore and forced the game to close because it reached its threshold.

Granted I was using heavy cheats like god mode, infinite ammo, etc. lol

“You cannot save / rest when enemies are nearby.”

(Completely safe room)

O_O

my brain all the time