Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
howto:dosemu [2020/12/17 21:14] – [Install DOSEMU] mlonghowto:dosemu [2022/09/10 13:49] (current) – [Use DOS Doors with Synchronet on Linux] Added a couple links to information on getting DOSEMU2 set up and working with Synchronet Nightfox
Line 4: Line 4:
  
 :!: :!:
-DOSEMU has been discontinued for more than a decade. However, it is the only viable solution for most distributions to run DOS doors, and is supported in Synchronet.+DOSEMU has been discontinued for more than a decade. However, it is the only viable solution for most distributions to run DOS doors, and is supported in Synchronet. However, there is [[howto:dosemu2|a guide]] to installing DOSEMU2.  There is also [[https://gitlab.synchro.net/main/sbbs/-/issues/433|a Synchronet issue]] with some suggestions on how to get DOSEMU2 working with Synchronet.
  
  
Line 23: Line 23:
 For other distributions,​ you will need to first install and configure dosemu, and then install FreeDOS (or your DOS of choice) and set it up to work with dosemu. Ensure that you can at least get to a DOS prompt through standalone DOSEMU before even trying to use it with Synchronet. For other distributions,​ you will need to first install and configure dosemu, and then install FreeDOS (or your DOS of choice) and set it up to work with dosemu. Ensure that you can at least get to a DOS prompt through standalone DOSEMU before even trying to use it with Synchronet.
  
-==== Edit SBBS.INI ====+==== Edit sbbs.ini ====
  
-Modify sbbs.ini to set ''UseDOSemu = true''. You can also modify the ''DOSemuPath'' and ''DOSemuConfPath'' if you need something other than the defaults. However, normally, the Synchronet-provided ''dosemu.conf'' will be in your ''[[dir:ctrl]]'' dir and dosemu.bin will be in your system bin.+Modify the ''[BBS]'' section of your ''[[dir:ctrl]]/sbbs.ini'' to set/add ''UseDOSemu = true''. 
 + 
 +You can also modify the ''DOSemuPath'' and ''DOSemuConfPath'' values if you need something other than the defaults. However, normally, the Synchronet-provided ''dosemu.conf'' will be in your Synchronet ''[[dir:ctrl]]'' dir and ''dosemu.bin'' will be in your system ''bin'' directory, so the default values should work fine.
  
 ==== Install DOS Utils ==== ==== Install DOS Utils ====
  
-Make a ''dosutils'' directory, preferably in your ''[[dir::exec]]'' dir but you can also put it in your ''[dir::xtrn]]'' dir. (Note: if you put in your ''[dir::xtrn]]'' dir, you can use it for external editors.+Make a ''dosutils'' directory, preferably in your ''[[dir::exec]]'' dir but you can also put it in your ''[[dir::xtrn]]'' dir. (Note: if you put in your ''[[dir::xtrn]]'' dir, you can use it for external editors).
  
 Inside the ''dosutils'' directory, you'll need a FOSSIL driver (''x00.exe'' works well, but you can also use ''bnu.com'', etc.). Inside the ''dosutils'' directory, you'll need a FOSSIL driver (''x00.exe'' works well, but you can also use ''bnu.com'', etc.).
 +
 +If you aren't sure what to use, go with X00. You can get a copy at ftp://vert.synchro.net//main/COMM/x00150.zip
 +
 +Alternatively, you can get a copy of BNU at ftp://vert.synchro.net//main/COMM/bnu189h.zip
  
 You may also need ''share.com'' if it is not found in your dosemu drive. You may also need ''share.com'' if it is not found in your dosemu drive.
Line 39: Line 45:
 ==== Modify external.bat ==== ==== Modify external.bat ====
  
-The ''external.bat'' file found in your ''[[dir:exec]]'' dir is the template used to build the batch file which executes each external program. Inside this file is where you will place your call to your FOSSIL driver, under the :NOEMU section, like this: +The ''external.bat'' file found in your ''[[dir:exec]]'' dir is the template used to build the batch file which executes each external program. Inside this file is where you will place your call to your FOSSIL driver, within the '':NOEMU'' section, like this: 
- +<file> 
-''IF "$RUNTYPE" == "FOSSIL" x00.exe eliminate >NUL'' +IF "$RUNTYPE" == "FOSSIL" x00.exe eliminate >NUL 
 +</file>
 And you will also have share: And you will also have share:
  
-''@share >NUL''+<file> 
 +@share >NUL 
 +</file>
  
 ==== Setup External Programs ==== ==== Setup External Programs ====
Line 100: Line 108:
 ==== Drive Letters ==== ==== Drive Letters ====
  
-The rest of these instructions assume that you are using the default remapped drive letters and haven't changed them around in ''emusetup.bat'' or ''external.bat''. The default drive letters are: +Assuming you are using the default remapped drive letters and haven't changed them around in ''emusetup.bat'' or ''external.bat'', they are: 
  
   * D: - The Synchronet node directory, where the dropfile should probably be put. In door configurations, specify this drive (D:\) as the path to the dropfile.    * D: - The Synchronet node directory, where the dropfile should probably be put. In door configurations, specify this drive (D:\) as the path to the dropfile. 
Line 108: Line 116:
   * H: - The Synchronet ''[[dir:exec]]'' directory    * H: - The Synchronet ''[[dir:exec]]'' directory 
  
-==== Manually Troubleshooting ====+==== Troubleshooting ====
  
-If a door will not run:+If a door will not run or has problems:
  
   * Try to capture any output in the BBS. In Syncterm, you can do this with Alt-C   * Try to capture any output in the BBS. In Syncterm, you can do this with Alt-C
   * Cat /sbbs/node(#)/external.bat and look at the bottom REM line. Try running that command and see what happens   * Cat /sbbs/node(#)/external.bat and look at the bottom REM line. Try running that command and see what happens
   * Manually enter dosemu. Map your drive (lredir E: linux\fs\sbbs\xtrn). Switch to drive E and run "external.bat TEST". The "TEST" simply keeps it from running "exitemu"   * Manually enter dosemu. Map your drive (lredir E: linux\fs\sbbs\xtrn). Switch to drive E and run "external.bat TEST". The "TEST" simply keeps it from running "exitemu"
 +
 +Check your syslog, your SBBS error log, as well as the dosemu_boot.log in your node dir.
  
 Make sure the door's directory conforms to the DOS 8.3 file format! /usr/local/games/tw2002 would be okay, but /usr/local/games/TradeWars2002 would not. The symptom of a non-conforming directory is a "file not found" when Synchronet tries to change to the DOS door's directory inside DOSEMU.  Make sure the door's directory conforms to the DOS 8.3 file format! /usr/local/games/tw2002 would be okay, but /usr/local/games/TradeWars2002 would not. The symptom of a non-conforming directory is a "file not found" when Synchronet tries to change to the DOS door's directory inside DOSEMU. 
Line 122: Line 132:
 Make SURE that if the door is started with a .bat batch file, that you explicitly name it as such in the "Program Name" field. For instance, LORD's "start.bat" command would be entered as "start.bat %#", not just "start %#". Failure to do this will cause the session to be hung inside DOSEMU when the user exits the door. (You can still exit by blindly typing exitemu when this happens.)  Make SURE that if the door is started with a .bat batch file, that you explicitly name it as such in the "Program Name" field. For instance, LORD's "start.bat" command would be entered as "start.bat %#", not just "start %#". Failure to do this will cause the session to be hung inside DOSEMU when the user exits the door. (You can still exit by blindly typing exitemu when this happens.) 
  
 +Make sure your terminal is 80 chars wide, especially for configuration programs.
 ==== Setting up a non-door DOS program as a door ==== ==== Setting up a non-door DOS program as a door ====
  
Line 138: Line 149:
   Dropfile Dir: Place in Node Directory    Dropfile Dir: Place in Node Directory 
  
-==== Per-Program Files ====+==== Per-Program Configuration Files ====
  
 You can override the default system files used by placing a customized version in the external program's startup directory. Files that can be overridden in this manner are: You can override the default system files used by placing a customized version in the external program's startup directory. Files that can be overridden in this manner are:
  
-** external.bat ** used instead of ''[dir:exec]]/external.bat''+** external.bat ** used instead of ''[[dir:exec]]/external.bat''
  
 ** dosemu.conf ** used instead of configured dosemu.conf ** dosemu.conf ** used instead of configured dosemu.conf
  
-** dosemu.ini ** used instead of ''[dir:exec]]/dosemu.ini''+** dosemu.ini ** used instead of ''[[dir:exec]]/dosemu.ini''
  
 ==== Alternate DOS ==== ==== Alternate DOS ====
Line 153: Line 164:
  
  
-===== Known Problems ===== 
  
-File locking is dysfunctional with the DOSEMU 1.0.2.x stable releases. File locking problems will manifest themselves as strange error messages related to file opens, long pauses and/or hangs, game data corruption, and other fun stuff. Note that you do not have to be running a multinode BBS to be prone to these issues; most programs detect DOSEMU as a multitasker and thus initiate their lock management regardless of whether or not multiple sessions of the game will be in use. The fix is to upgrade to DOSEMU 1.2 or later, since 1.0.x is obsolete.  
- 
-There is a file locking hack from Bob Newell which is detailed in [[http://www.icequake.net/bbs/syncmods/faqlinux.htm|this document]]. Included is a kludge for slow screen draws due to incorrect idling that will occur in some games such as Planets TEOS.  
- 
-If you are running Debian 'woody', I recommend upgrading to 'sarge' so that you can use DOSEMU 1.2.x that is part of the distribution.  
- 
-If your terminal isn't set to exactly 80 columns, the display may appear corrupt. This is especially true running config programs. Physically resize your telnet/ssh session window to 80 columns if you see such corruption. 
-==== Disabling DOSEMU from opening a window in XWindows ==== 
- 
-To disable windows being opened when running dosemu: 
- 
-  * create a shell script for dosemu with the using the following as an example: 
- 
-    #!/bin/sh 
-    exec /path/to/dosemu/dosemu -T "$@" 
- 
-  * make sure to chmod 0755 your_dosemu_script 
-  * [[http://ftp.synchro.net/config:sbbs.ini|edit sbbs.ini and uncomment and change DOSemuPath variable to your new dosemu script]] 
-==== If you are having other problems ==== 
- 
-check the dosemu.log and dosemu_boot.log that will be created in the node directory. They should give you clues to track down a configuration problem. If those files do not exist, then the dosemu.bin is not getting executed properly, so check your sbbs.ini, make sure you have dosemu installed, and check for a stale dosemu.bin symlink in the door's directory.  
-double-check your door's configuration, specifically the paths in scfg and the batch file (if any) that starts it.  
-Also verify that the paths in the door's configuration problem are correct  
-Verify that you have set up enough nodes in the door's configuration to handle all the nodes on your BBS.  
- 
-If you want help with this, you must send me *at a minimum* the following files:  
-  * ''dosemu.log'' and ''dosemu_boot.log'' from the node directory  
-  * your DOS ''autoexec.bat'' and ''config.sys'' 
-  * output of 'find /'  
-  * ''emusetup.bat'' and ''dosemu.conf'' (only if you have modified them)  
- 
-Send problem reports to nemesis@icequake.net  
  
 ==== Files ==== ==== Files ====
  
   * [[http://www.icequake.net/bbs/syncmods/emusetup.bat|emusetup.bat]]   * [[http://www.icequake.net/bbs/syncmods/emusetup.bat|emusetup.bat]]
-  * [[http://www.icequake.net/bbs/syncmods/dosemu.conf|Example dosemu.conf (for 1.0.2)]] 
   * [[http://www.icequake.net/bbs/syncmods/dosutils.tar.gz|A collection of essential DOS BBS utils, such as ANSI drivers and FOSSIL drivers]]   * [[http://www.icequake.net/bbs/syncmods/dosutils.tar.gz|A collection of essential DOS BBS utils, such as ANSI drivers and FOSSIL drivers]]
-  * [[http://www.icequake.net/bbs/syncmods/dosemu_1.0.2.1-7_i386.deb|DOSEMU Development Version 1.1.5.7 compiled for Debian stable/woody]] +
-  * [[http://www.icequake.net/bbs/syncmods/dosemu_1.0.2.1-7_i386.deb|DOSEMU 1.0.2 compiled for Debian stable/woody, patched for locking fixes]] +
-  * [[http://www.icequake.net/bbs/syncmods/init/synchronet|Init script to start Synchronet as a daemon]] +
-  * [[http://www.icequake.net/bbs/syncmods/init/synchronet-screen|Init script to start Synchronet as a detached screen]] +
-  * Latest version of the patch - link gone/broke+
  
    
-===== The Script Method ===== 
- 
-There is another way to do this: use a script that launches dosemu. This is the more flexible but non-userfriendly way to use dosemu doors on Synchronet. Example stuff can be found in this [[http://www.icequake.net/bbs/syncmods/rungame.tgz|tarball]].  
  
 ===== See Also ===== ===== See Also =====
 +  * [[:howto:door:index|Install Doors]]
 +  * [[:howto:|How-To Pages]]
 +  * [[http://www.icequake.net/bbs/syncmods/|Ryan Underwood's original Synchronet-DOSEMU patch]]
   * [[http://synchro.net/docs/linux-dosemu-howto.txt|DOSEMU Synchronet DOORS HOWTO by Michael Capp circa 2003]] (does not use the methods described on this page)   * [[http://synchro.net/docs/linux-dosemu-howto.txt|DOSEMU Synchronet DOORS HOWTO by Michael Capp circa 2003]] (does not use the methods described on this page)
-  * [[:howto:|How-To Pages]] 
  
 {{tag>linux doors dosemu}} {{tag>linux doors dosemu}}
  
howto/dosemu.1608268463.txt · Last modified: 2020/12/17 21:14 by mlong
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0