• Linux dosemu2

    From ryan@21:1/168 to All on Sat Aug 8 12:23:34 2020
    Hey folks,

    I tried installing the new fork of dosemu - dosemu2 - to see if it fixed any compatibility issues with DPMI things like pkunzip, darklands, tradewars
    2002. I'm happy to report that it's an excellent package and everything is working great. I highly encourage folks to give it a shot!

    There are a couple of configuration differences between it and traditional dosemu, and it does not appear that it can handle both being installed at the same time. But I'm sure you can imagine how excited I am offering original tradewars on my 64 bit modern linux BBS :) I'm also a fan of TWGS and have licensed it, but regardless the increased compatibility makes me feel hopeful.

    --- Mystic BBS v1.12 A46 2020/05/28 (Linux/64)
    * Origin: monterey bbs (21:1/168)
  • From Al@21:4/106.1 to ryan on Sat Aug 8 12:41:07 2020
    Re: Linux dosemu2
    By: ryan to All on Sat Aug 08 2020 12:23 pm

    There are a couple of configuration differences between it and traditional dosemu, and it does not appear that it can handle both being installed at the same time. But I'm sure you can imagine how excited I am offering original tradewars on my 64 bit modern linux BBS :) I'm also a fan of TWGS and have licensed it, but regardless the increased compatibility makes me feel hopeful.

    I never knew there was a dosemu2, that's great news.

    I have pkzip and unzip working without dpmi.. do you have them working with dpmi?

    In any case I must look that up..

    Ttyl :-),
    Al
    --- SBBSecho 3.11-Linux
    * Origin: The Rusty MailBox - Penticton, BC Canada (21:4/106.1)
  • From ryan@21:1/168 to Al on Sat Aug 8 13:28:22 2020
    I have pkzip and unzip working without dpmi.. do you have them working with dpmi?

    Yep - they work fine with dpmi. The dosemu2 project is working /very/ well
    for me. :)

    --- Mystic BBS v1.12 A46 2020/05/28 (Linux/64)
    * Origin: monterey bbs (21:1/168)
  • From Alpha@21:4/158 to ryan on Sat Aug 8 16:30:42 2020
    I tried installing the new fork of dosemu - dosemu2 - to see if it fixed any compatibility issues with DPMI things like pkunzip, darklands, tradewars 2002. I'm happy to report that it's an excellent package and everything is working great. I highly encourage folks to give it a shot!

    Wow. I'm soooo excited. TW2002 here I come!! Thanks, Ryan!


    |14▐ |07Alpha
    |14▄▌ |13Card & Claw BBS
    |06▐ |05cardandclaw.com:8888

    --- Mystic BBS v1.12 A46 2020/04/26 (Linux/64)
    * Origin: Card & Claw BBS (21:4/158)
  • From Vk3jed@21:1/109 to ryan on Sun Aug 9 20:29:00 2020
    On 08-08-20 12:23, ryan wrote to All <=-

    Hey folks,

    I tried installing the new fork of dosemu - dosemu2 - to see if it
    fixed any compatibility issues with DPMI things like pkunzip,
    darklands, tradewars 2002. I'm happy to report that it's an excellent package and everything is working great. I highly encourage folks to
    give it a shot!

    That sounds like great news!


    ... Two positive statements do not make a negative statement. Yeah, right!
    === MultiMail/Win v0.51
    --- SBBSecho 3.10-Linux
    * Origin: Freeway BBS Bendigo,Australia freeway.apana.org.au (21:1/109)
  • From apam@21:1/126 to ryan on Sun Aug 9 22:07:16 2020
    Yep - they work fine with dpmi. The dosemu2 project is working /very/ well for me. :)

    I've spend the last couple of hours trying to get it to work. How do you
    get the virtual modem to work?

    No matter what I do I can't seem to get it to output the serial data
    instead of the console messages.

    I had it working in dosemu, and from what I can tell the configs are
    supposed to be the same?

    Andrew


    --- TitanFTN (Linux/x86_64)
    * Origin: Wunderlust BBS - wunderlust.ddns.net:2023 (21:1/126)
  • From ryan@21:1/168 to apam on Sun Aug 9 10:07:20 2020
    I had it working in dosemu, and from what I can tell the configs are supposed to be the same?

    There are some slight differences...enough to make it a bit tricky. Maybe I
    can write up a blog post. What's the most seamless way to communicate with
    you to iterate on this? IRC? Discord?

    --- Mystic BBS v1.12 A46 2020/05/28 (Linux/64)
    * Origin: monterey bbs (21:1/168)
  • From Analog@21:2/123 to ryan on Mon Aug 10 18:24:42 2020
    Ryan,

    I decided to try Dosemu2 again after your post about how well it worked.
    First thing out of the box, my keyboard just types random characters. I
    thought it was a layout issue, but my layout is "US". Can I ask if you built from source or installed the PPA (Ubuntu I assume) packages?

    I migrated the BBS to Docker a couple months ago and this broke my dosqemu multinode NFS stuff. Before I go fixing this, I really want Dosemu2 to work
    so I don't have to put the effort in again :)

    |20|15┌─|16|08┤ |08De|07ad|15be|07a|08tz b|07b|15s
    |08└─┘├─┐ |08:>.|07A|08rk |0710|08:|07101|08/|0714|08.
    |04■ |08└|20|15─|16|08┘ |08:>.|10A|02gn |1046|08:|101|08/|10123|08.
    |04A|07n|15al|07o|08g |08:>.|12F|04sx |1221|08:|122|08/|12123|08.
    |04.|08dPR|04. |08:>.|15S|07ci |1577|08:|151|08/|15131|08. |04░▒░|08▒██▄▌|08:>.|11T|03qw |111337|08:|113|08/|1113|08.

    --- Mystic BBS v1.12 A46 2020/08/06 (Linux/64)
    * Origin: deadbeatz.org (21:2/123)
  • From ryan@21:1/168 to Analog on Tue Aug 11 00:43:22 2020
    I decided to try Dosemu2 again after your post about how well it worked. First thing out of the box, my keyboard just types random characters. I thought it was a layout issue, but my layout is "US". Can I ask if you built from source or installed the PPA (Ubuntu I assume) packages?

    I just used the PPA, but I do typically add $_layout = "us" in dosemu.conf.
    Is that where you configured this?

    I migrated the BBS to Docker a couple months ago and this broke my
    dosqemu multinode NFS stuff. Before I go fixing this, I really want Dosemu2 to work so I don't have to put the effort in again :)

    Yeah, I hear ya. It wasn't super straightforward but the doorgame
    compatibility made it worthwhile. I'd be happy to try to help in real time on IRC or wherever.

    --- Mystic BBS v1.12 A46 2020/08/06 (Linux/64)
    * Origin: monterey bbs (21:1/168)
  • From Analog@21:2/123 to ryan on Tue Aug 11 12:02:30 2020
    Yeah, I hear ya. It wasn't super straightforward but the doorgame compatibility made it worthwhile. I'd be happy to try to help in real
    time on IRC or wherever.

    Well good news, building a Docker with the PPA for Dosemu2, I got it running with proper keyboard input. I'll throw a TW2002 volume in there and see if it actually runs.

    Any hints on dosemurc file contents for DPMI compatibility with TW2002,
    etc...?

    Cheers,
    Analog

    |20|15┌─|16|08┤ |08De|07ad|15be|07a|08tz b|07b|15s
    |08└─┘├─┐ |08:>.|07A|08rk |0710|08:|07101|08/|0714|08.
    |04■ |08└|20|15─|16|08┘ |08:>.|10A|02gn |1046|08:|101|08/|10123|08.
    |04A|07n|15al|07o|08g |08:>.|12F|04sx |1221|08:|122|08/|12123|08.
    |04.|08dPR|04. |08:>.|15S|07ci |1577|08:|151|08/|15131|08. |04░▒░|08▒██▄▌|08:>.|11T|03qw |111337|08:|113|08/|1113|08.

    --- Mystic BBS v1.12 A46 2020/08/06 (Linux/64)
    * Origin: deadbeatz.org (21:2/123)
  • From Analog@21:2/123 to ryan on Tue Aug 11 12:22:59 2020
    Holy $hit it works!!!! Man this is a game changer for me!

    Previously here's what I had:
    Ramdisk for MSDOS disks. Each MSDOS image had a packet driver, XFS (nfs dos port) setup to mount an NFS share on my host machine. The NFS share had all
    the game files on it.

    Then with QEMU, I setup a bridge adapter to allow networking between the QEMU-I386 instances and my host for sharing the NFS share.

    Anytime a user would play TW2002, I would spin up a QEMU instance with a
    clone of the MSDOS image to the ramdrive. Then start QEMU with stdio
    redirected to the virtual serial port in the DOS instance.

    You could play multinode very easily this way. However, MSDOS had issues running power management and would often rail the CPU even if I had POWER.EXE running. FreeDOS didn't work for me as I couldn't get the XFS/NFS mounts to work.

    Anyways, DUDE thanks for the update on this. I tried Dosemu2 about a year or more ago and it just broke miserably with DPMI.

    Analog

    |20|15┌─|16|08┤ |08De|07ad|15be|07a|08tz b|07b|15s
    |08└─┘├─┐ |08:>.|07A|08rk |0710|08:|07101|08/|0714|08.
    |04■ |08└|20|15─|16|08┘ |08:>.|10A|02gn |1046|08:|101|08/|10123|08.
    |04A|07n|15al|07o|08g |08:>.|12F|04sx |1221|08:|122|08/|12123|08.
    |04.|08dPR|04. |08:>.|15S|07ci |1577|08:|151|08/|15131|08. |04░▒░|08▒██▄▌|08:>.|11T|03qw |111337|08:|113|08/|1113|08.

    --- Mystic BBS v1.12 A46 2020/08/06 (Linux/64)
    * Origin: deadbeatz.org (21:2/123)
  • From ryan@21:1/168 to Analog on Tue Aug 11 11:35:03 2020
    Any hints on dosemurc file contents for DPMI compatibility with TW2002, etc...?

    Very cool - maybe there's a way to make a recipe here for other people to use.

    In /etc/dosemu/dosemu.conf I have the following uncommented and configured lines (everything else commented out):

    $_cpu = "80486"
    $_cpu_emu = "vm86"
    $_hogthreshold = (10)
    $_external_char_set = "utf8"
    $_internal_char_set = "cp437"
    $_layout = "us"
    $_rawkeyboard = (0)
    $_joy_device = ""
    $_speaker = ""
    $_sound = (off)

    Now, keep in mind that dosemu2 doesn't have any concept of autoexec.bat or config.sys. You can make a c:\userhook.bat and treat it like an autoexec.bat, but just know that if you launch something as a command line arg when
    invoking dosemu2 it won't launch userhook.bat, so you may need to put a call
    to c:\userhook.bat in your door startup batch files.

    Also, the way it enumerates directories is weird. I didn't want my doors dir
    to be like k:\ or something, so what I did was make symlinks - my ~/.dosemu/drive_c/doors is symlinked to my ~/dosdoors directory, for example.

    For tw2002, install the dpmi version within dosemu2. I use the following as
    my actual batch file to launch the game:

    @echo off
    c:
    cd \doors\tw2002

    SET TWNODE=%1

    tw2002.exe

    -- snip --

    Note that I am not using a fossil driver here - whether or not fossil drivers do much is unclear to me, so I've only been installing them when I feel
    they're necessary :)

    --- Mystic BBS v1.12 A46 2020/08/06 (Linux/64)
    * Origin: monterey bbs (21:1/168)
  • From ryan@21:1/168 to Analog on Tue Aug 11 11:35:52 2020
    Anyways, DUDE thanks for the update on this. I tried Dosemu2 about a
    year or more ago and it just broke miserably with DPMI.

    My pleasure! I'm curious how docker works in this case...how hard would it be to build a recipe for other sysops to spin up on the fly and have full dos
    door support?

    --- Mystic BBS v1.12 A46 2020/08/06 (Linux/64)
    * Origin: monterey bbs (21:1/168)
  • From Analog@21:2/123 to ryan on Tue Aug 11 15:13:21 2020
    Very cool - maybe there's a way to make a recipe here for other people
    to use.

    Here's what I do with my Dosemu2 Docker setup:
    1. Create a simple image with the pieces:
    [SNIP]
    ROM ubuntu:18.04

    RUN apt-get update -y
    RUN apt-get upgrade -y
    RUN apt-get install software-properties-common -y
    RUN add-apt-repository ppa:dosemu2/ppa
    RUN apt-get update -y
    RUN apt-get install dosemu2 -y
    RUN /usr/sbin/useradd -d /home/analog -m analog
    USER analog
    WORKDIR /home/analog
    ENTRYPOINT ["/usr/bin/dosemu"]
    [SNIP]
    2. Create Docker Compose file with the volume attached:
    [snip]
    version: '3'
    services:
    dosemu:
    container_name: dosemu
    image: dosemu:18.04
    build:
    dockerfile: ./Dockerfile
    context: .
    stdin_open: true # docker run -i
    tty: true # docker run -t
    volumes:
    - ./dosemu:/home/analog/.dosemu
    [snip]
    3. Run the first time docker compose to initialize Dosemu2's files:
    docker-compose build
    docker-compose up -d
    4. Now docker is running Dosemu in the backgroup (-d detached). To connect to the shell:
    docker attach dosemu
    Once in the shell it might not be apparent but you're inside the Dosemu instance. You need to hit "enter" to accept the preamble stuff. If you don't see a cursor it's most likely due to terminal size (need 80x25). Just type "cls" to clear and you should see a prompt "c:\"
    5. Exit the instance and the configuration files will be saved on the host machine's local "dosemu" folder you mounted as a volume.
    exitemu
    6. Now you have a folder for your Docker that you can spin up directly and launch a game or edit things. In the "dosemu" folder you can copy any BBS
    doors you want to play, any dos software, or programs. Just put them in the "drive_c" folder like you would on any DOS c:\.
    7. From here, it can get more advanced on how you want to launch the Dosemu container. You can keep doing it like we did above or you can specify a
    special entrypoint like:
    ENTRYPOINT ["/usr/bin/dosemu .dosemu/drive_c/tw2002/tedit.exe"]
    Which will pass the "tedit" command as your Dosemu start point. However, you really need to use a batch file to make sure you're inside the right directories within Dosemu. My BBS doors dynamically create a BAT file that I pass as the launch arg to Dosemu:
    [run.bat]
    cd c:\tw2002
    ...
    tw2002 -l
    [end]

    I'm too lazy to write the rest of this up, but you guys get the gist.

    Analog

    |20|15┌─|16|08┤ |08De|07ad|15be|07a|08tz b|07b|15s
    |08└─┘├─┐ |08:>.|07A|08rk |0710|08:|07101|08/|0714|08.
    |04■ |08└|20|15─|16|08┘ |08:>.|10A|02gn |1046|08:|101|08/|10123|08.
    |04A|07n|15al|07o|08g |08:>.|12F|04sx |1221|08:|122|08/|12123|08.
    |04.|08dPR|04. |08:>.|15S|07ci |1577|08:|151|08/|15131|08. |04░▒░|08▒██▄▌|08:>.|11T|03qw |111337|08:|113|08/|1113|08.

    --- Mystic BBS v1.12 A46 2020/08/06 (Linux/64)
    * Origin: deadbeatz.org (21:2/123)