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.