Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

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

     
    Attachments
  • Peter Veenstra
    Peter Veenstra
    2012-06-06

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