SourceForge has been redesigned. Learn more.
Close

#254 add sanity check to UMB linking - fixes commander keen

open
c2woody
None
5
2012-09-07
2012-05-29
galexand123
No

Since version 0.65 of dosbox, Commander Keen episode 4 (video game) has stopped working (freeze at load). It appears as if keen4e.exe manually alters the MCB chain as it loads. The alterations are "wrong" in my opinion (a bug in keen4e.exe), but they do not make the system inoperable. Dosbox proceeds to DOS_LinkUMBsToMemChain(), which then produces a corrupted MCB chain because it relies on the the user application not altering the end of the MCB chain.

The proposed patch makes it so that the DOS_LinkUMBsToMemChain() function detects that the MCBs have been modified, and bails out (effectively disables UMB), rather than leaving things in a state that will soon crash. Overall, it should make Dosbox more compatible with various programs that "behave poorly," hopefully without any disadvantage.

Discussion

  • galexand123

    galexand123 - 2012-05-29

    patch to src/dos/dos_memory.cpp

     
  • Peter Veenstra

    Peter Veenstra - 2012-06-06

    Assigned it to wd. I wasn't aware though that keen4 is broken...

     

Log in to post a comment.