DoorMUD on Linux

 

Q: Does DoorMUD run in multi-user mode on a Linux system running DOS emulation (DOSEMU)?

A: Yes, it does, but you will need to do some patching of DOSEMU. 

Check how your DOS file system is set up. If you are doing "partition" access you cannot safely allow access to more than a single user at a time, so you must instead have your DOS file system on a Linux partition and do redirection (see the DOSEMU documentation). 

However, there is an issue in that Linux file locking does not map precisely to DOS file locking. You need to patch DOSEMU and build a special version to deal with this problem. Find the file "dosext/mfs/mfs.c" in your DOSEMU source tree. Locate the following lines: 

case DENY_ANY:
    fl.l_type = F_RDLCK;


Change the second line to 
   
fl.l_type = !writing ? F_RDLCK : F_WRLCK;

and build a new version of DOSEMU. Save it in /usr/bin with a different name (i.e. 'doslock'). Use this for DoorMUD, and other multiuser games that give you errors. DO NOT use it for everything! 

 

Q: Some of DoorMUD's ANSI screens seem to draw slowly under DOSEMU.  How can this be fixed?

To solve a problem of slow screen painting, locate "base/async/int.c" in your source tree. Locate

case 0x2C:

and just below, comment out or delete the line

usleep(INT2F_IDLE_USECS);

and rebuild your DOSEMU.

This document was written by Bob Newell, sysop of ChungKuo BBS (telnet://chungkuo.org).  If you run into any difficulties, you can email him at chungkuo@chungkuo.org for some advice. 

 

[Return to Sysop FAQ]