Just to let you know, you can now play DM PC using....

Discuss anything about the original Dungeon Master on any of the original platforms (Amiga, Atari, etc.).
This forum may contain spoilers.

Moderator: Ameena

Forum rules
Please read the Forum rules and policies before posting.
Post Reply
isamuu
Journeyman
Posts: 75
Joined: Sun Dec 30, 2007 2:48 pm

Just to let you know, you can now play DM PC using....

Post by isamuu »

....savestates!

That's right, a guy over in the Dos Box community has added save sate support to Dos Box, and I've tested it thoroughly and it works! No more having to restart the whole game just to back track a mistake you've made. Simply press the load button for any of TEN different saves slots and you're good to go!

All the more reason to play the DM Dos :)
User avatar
Bit
Arch Master
Posts: 1064
Joined: Mon Mar 03, 2008 10:53 am
Location: Nuts trees

Re: Just to let you know, you can now play DM PC using....

Post by Bit »

Hehe, especially in CSB the dead-ends are hidden deep in the routines and it isn't easy to come back to the top. Because they added the copy-protection-stuff later (which grants some sudden death too in case), this problem even got worse. So they surely simply had problems to return and reinit clean.
In some cases they use endless loops, in one other they even spent the 'illegal'-opcode to end.
Then again - with a longer reload-process - one is more carefully ;)
But - reload in the clones should be easy, hm?
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Re: Just to let you know, you can now play DM PC using....

Post by Adamo »

Hehe, especially in CSB the dead-ends are hidden deep in the routines and it isn't easy to come back to the top. Because they added the copy-protection-stuff later (which grants some sudden death too in case), this problem even got worse.
What do you mean by dead-ends hidden in the routines and problems with copy protection?
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
zoom
Grand Master
Posts: 1819
Joined: Tue Sep 23, 2003 1:27 am
Location: far away but close enough

Re: Just to let you know, you can now play DM PC using....

Post by zoom »

maybe that problems could arise by using save states or that save states could not be entirely, completely satisfyingly save at all? or that it must have been a tough job to make save states work with dm??
It is really programmers talk and maybe a bit more explaining what goes on would help... and would be interesting as well..

isamuu, thanks for the info!
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Re: Just to let you know, you can now play DM PC using....

Post by Sophia »

Save states are, on the simplest level, trivial to implement. You just dump all of memory, registers, etc. to a file.
The only trick is in making sure you've copied absolutely everything, so the emulated system looks exactly as it did when you dumped the save state.
User avatar
zoom
Grand Master
Posts: 1819
Joined: Tue Sep 23, 2003 1:27 am
Location: far away but close enough

Re: Just to let you know, you can now play DM PC using....

Post by zoom »

aha. cheers sophia :O
User avatar
Bit
Arch Master
Posts: 1064
Joined: Mon Mar 03, 2008 10:53 am
Location: Nuts trees

Re: Just to let you know, you can now play DM PC using....

Post by Bit »

Adamo wrote:
Hehe, especially in CSB the dead-ends are hidden deep in the routines and it isn't easy to come back to the top. Because they added the copy-protection-stuff later (which grants some sudden death too in case), this problem even got worse.
What do you mean by dead-ends hidden in the routines and problems with copy protection?
The programming part. Routines call subroutines that call subroutines and so on. In CSB the points where the game ends lie a little deeper in those structures than in DM for example. So, if you return from a subroutine you have to continue somehow in that calling routine and handle this until you're 'on the top' again. Reloading the game means also, you maybe have to clean temporary memory (like caches etc.). That's all not done - neither in CSB nor in DM. They simply do an endless loop and solve all those problems by brute force (and saving some more memory by saving some code).
The copy protection leads i.e. to a situation, where (in case of a false copy - I mean the original game!) the party gets killed with some random delay. That's a very practical solution. Each other way had to be connected with the main endpoints too - and then, it would have been much easier to locate and remove the protection.
In my testclones I made 'clean' ends that allow restarts and so reloads. But I had to track the things very carefully.

As Sophia described it: those emulator-'snapshots' are a very easy workaround, because they don't really have something to do with the program itself.
Post Reply