tictakk / Strife-Sisters

Other
0 stars 0 forks source link

Savegame feature #1

Open PunchMSX opened 3 months ago

PunchMSX commented 3 months ago

The game has no way of saving your progress, by password or backup ram memory.

tictakk commented 3 months ago

The game has no way of saving your progress, by password or backup ram memory.

Thanks for the help!

tictakk commented 2 months ago

Mostly doing this for my own records.

This line here is almost all that's needed regarding saving the game state, aside from a few other variables.

I think this is all that is needed to be "saved" for game state.

Commander struct is all of your commanders, their units and their formation data. Party units is the units you have in your convoy. This overworld_loop would need to be changed a bit because it is always set to what demo_select_x and demo_select_y which set your player_pos_x & y which is your little overworld character. It always starts on the first castle. So you'd need to save where your player_pos_x & y are when you save. Where you character starts on the overworld has no impact on the story / dialog since the game is linear.

Fun fact, the party_units aka, the army convoy is just an int type instead of a struct unit. This is due to being out of memory. The side effect of this is that only the units id and the units level are stored (as an int), so when you swap a unit in and out of the convoy, it loses all of it's exp.

tictakk commented 2 months ago

Forgot to mention that the function table is full. Like, you cannot write any more functions at all, so you'd have to clean up some functions to make room or do some fastcall macros to create functions. There is some room you could make in the consts bank. The world map is actually twice as big as visible map in the game. Which is why when you start the game scroll() actually takes you to the bottom half of the map.

But yeah, all that would need to be done would be write a compression routine that compresses the above mentioned variables and then encode it. The title screen would need to be changed a little to add a password option and then a new password screen. But those would be pretty straightforward.