Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot easily restore a game saved from Part 2 of Lancelot #6

Closed
Screwtapello opened this issue Jan 13, 2020 · 7 comments
Closed

Cannot easily restore a game saved from Part 2 of Lancelot #6

Screwtapello opened this issue Jan 13, 2020 · 7 comments

Comments

@Screwtapello
Copy link

Steps to reproduce

Using the Gtk port of the interpreter:

  • Load the first part of the MS-DOS version of Lancelot with gtklevel9 GAMEDAT1.DAT or whatever

  • Play through the game until you get to part 2:

      > yes
      > east
      > fight knight
      > yes
      > go to merlin
      > north
      > sleep
      > sleep
      > go to king's road
      > north
    
  • Save the game

  • Quit the interpreter

  • Next time you want to want to play, load the second part of the game with gtklevel9 GAMEDAT2.DAT or whatever.

  • The game detects that it's part 2 of 3, and automatically switches to part 1.

  • Load the game you saved earlier.

Expected results

The terp automatically switches to the correct part of the game, then loads the save data.

Actual results

Sorry, unrecognised format. Unable to restore.

please insert game disc.

That data was not saved from Lancelot.

Thy adventure is over.
Please type RESTART, OOPS, RESTORE or RAM RESTORE.

Notes

With the version of Level9 in Gargoyle, I can safely restore my game if I play through to part 2 first.

With the standalone version of Level9, I always seem to get the "unrecognised format" error.

@cibersheep
Copy link
Contributor

Is gtk version using the same terp 5.1 right?
I would guess is a fault in the gtk implementation. The terp is implemented as you say, to detect parts of the same game (by its name).

Long time ago I started to try to port the app to gtk3 (not very fruitful) and I could use some help there

@cibersheep
Copy link
Contributor

And sorry for the offtopic here but: Did you know latest version of ScummVM added support for IF games?

@Screwtapello
Copy link
Author

Is gtk version using the same terp 5.1 right?

I built the terp from source, and the GTK version is what I got.

Did you know latest version of ScummVM added support for IF games?

I did, but I believe it's just bundling the Glk versions of the interpreters, so I assume they all behave exactly the same way they do in Gargoyle.

@DavidKinder
Copy link
Owner

I've tested this with both the Windows and GTK ports, and cannot reproduce the problem. Would you check again with the latest code?

@Screwtapello
Copy link
Author

I rebuilt from the latest code and tried to reproduce the issue using my original instructions. However, it's been a while since I wrote them, and I stumbled around a bit trying to figure out exactly what I'd done.

I'm pretty sure I reproduced the problem once or twice while stumbling around, but once I'd written a sufficiently explicit series of steps-to-reproduce... the problem vanished. I can't even reproduce it if I revert to the commit that was current when this issue was filed.

I'm sorry I can't be more specific. If I figure out any more relevant details I'll provide them.

@DavidKinder
Copy link
Owner

A moment of inspiration: when restoring the game in the above, if you use the menu item in the interpreter window, does it fail then? That version of restore is implemented entirely in the interpreter, and just restores the VM state. But the restore you get by entering the command "restore" is a mixture of game logic and interpreter logic, and it's the game logic that adjusts which part of the story is currently loaded. This might explain why you got errors. It may not be fixable, though, it will need some thought.

@Screwtapello
Copy link
Author

Unfortunately, unlike the Windows port, the Gtk interpreter does not have a "restore" command in the menu, so that can't be the cause for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants