b2 icon indicating copy to clipboard operation
b2 copied to clipboard

Request: Preserve save states between sessions

Open TobyLobster opened this issue 3 years ago • 5 comments

Storing and reloading the "Saved States" as files on disk would allow more permanent storage of state, and allow save states to be shared with other people.

TobyLobster avatar Feb 22 '21 10:02 TobyLobster

Thanks for the request - this has long been on my personal todo list, but I don't think it's ever made it anywhere official, until now!

Might be nice if b2 could attempt to interoperate with other emulators' formats too, though I'm not sure how feasible that will turn out to be.

tom-seddon avatar Mar 12 '21 23:03 tom-seddon

Yes, that would be handy - I know beebem can save state to disk. A much, much larger feature would be 'replays'. i.e. From a given initial saved state, record all keyboard presses (& joystick) over time, saving to disk. Then (later) allow the recording to be reloaded and replayed and added to. This allows for 'tool assisted speed runs' of games and is done on other platforms. I haven't seen it done on the beeb yet though, unless you know better?

TobyLobster avatar Mar 13 '21 00:03 TobyLobster

Yes, that sort of thing was one of my goals originally! - if you don't mind doing it in one sitting, the existing timeline/video functionality can get you some way there. Here's a video of me playing through Thrust like that; took about half an hour to do it I think (mostly spending ages retrying the bit that's around the 4 minute mark in the video): https://www.youtube.com/watch?v=GlevFyQvD9k

I got started on a similar playthrough of Ghouls, but I couldn't get past level 3 :(

Persistent saved states would let you get a bit more adventurous with this, like a full playthrough of Repton 2, say, or Exile, or similar...

tom-seddon avatar Mar 28 '21 20:03 tom-seddon

Notes:

  • BeebEm saves UEF states: https://github.com/stardot/beebem-windows/blob/bbde82f88e3d14fdf76cda292987e3bf175fa57c/Src/uefstate.cpp#L119 - b2 should probably do this too. b2 save states would probably need to include more data, but it could save out (hopefully-)BeebEm-friendly chunks too, extra data either in addition or replacement; and loading BeebEm states would probably be possible.

  • B-em has its own format: https://github.com/stardot/b-em/blob/244d0945711f018c4789667d44f5dc8c70b10127/src/savestate.c - max 16,777,215-byte chunks though, a bit limiting for the ext memory (if anybody uses it) and maybe future hard disk support. Might it be worth supporting loading these?

tom-seddon avatar Oct 02 '21 15:10 tom-seddon

Hi Tom!

I guess this feature has slipped through the cracks, but I'd like to let you know that this one is one of the two features I'd consider a must have for B2 (the other one being able to save screenshots with a single keypress).

My use case would be being able to play long games during several sessions and for that being able to save the states would be a requirement.

It would be nice to be able to save to up to 10 quick slots with a single key press (the better if the user can assign the keys), as many games are fast-paced and there's not much time to run through the menus.

Thanks!

robcfg avatar Mar 24 '23 17:03 robcfg