Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thepillenwerfer/dosbox-x-32-bit
A 32-Bit dosbox-x .deb package and build guide for Debian/Ubuntu.
https://github.com/thepillenwerfer/dosbox-x-32-bit
32-bit bookworm build buster deb debian dosbox-x howto printing stretch
Last synced: 8 days ago
JSON representation
A 32-Bit dosbox-x .deb package and build guide for Debian/Ubuntu.
- Host: GitHub
- URL: https://github.com/thepillenwerfer/dosbox-x-32-bit
- Owner: ThePillenwerfer
- License: gpl-2.0
- Created: 2020-05-13T11:50:42.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-18T12:54:20.000Z (6 months ago)
- Last Synced: 2024-11-28T00:12:56.811Z (2 months ago)
- Topics: 32-bit, bookworm, build, buster, deb, debian, dosbox-x, howto, printing, stretch
- Language: Shell
- Homepage:
- Size: 30.7 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- License: LICENSE
Awesome Lists containing this project
README
The sole purpose of this repository is to provide a 32-bit Linux binary of DOSBox-X. Its developers only provide a 64-bit one as a [FlatPack](https://flathub.org/apps/details/com.dosbox_x.DOSBox-X) or packed in [.rpm](https://copr.fedorainfracloud.org/coprs/rob72/DOSBox-X/) format. Uses of Debian-derived systems can however download that, open it with an archive manager and extract the binary.
DOSBox-X is also now available in the Debian Unstable (Sid) repository. However they have split it into two packages so you first need to download and install https://packages.debian.org/sid/dosbox-x-data before [DOSBox-X](https://packages.debian.org/sid/dosbox-x) itself.
It took me a lot of blood, toil, tears and sweat to get it working and having done so I may as well share the fruits of my labours with anybody else who wants it. It is however offered strictly 'as is' with no promises that it will work for anybody else. It has only been tested on Debian so what versions of the Ubuntu family it may be compatible with I don't know. Three versions are available, one built on Bookworm, one on Buster, and one on Stretch. If one doesn't work, try another and if none work see next section. For all that it is 32-bit it can be used on a 64-bit system if you run the command `sudo dpkg --add-architecture i386` before installing it or have done so in the past.
Click __*releases*__, then __*dosbox-x\_0.83.x\_i386\_.deb*__ to download it. When the download has completed you can install it by double-clicking it or entering `sudo apt install ./dosbox-x_0.83.x_i386_.deb` from a terminal. To launch it type dosbox-x in a termninal or start it from the menu.
The version of DOSBox-X offered here is now quite old but there have been no major improvements made upstream since it was built.
# Building DOSBox-X
The best thing is to really build DOSBox-X yourself as that has the greatest chance of the result being suitable for your computer. Unfortunately DOSBox-X's documentation is still far from complete — not surprising as the people involved with it concentrate their efforts on the software itself — and they seem to assume people already know how to do this. It took me months to fathom how to build it successfully so here’s what I learnt. Doing it is time consuming rather than difficult and if you aren't computer-savvy enough to built it you'll struggle to use it.
The instructions below apply to both 32- and 64-bit builds.
Firstly you need the stuff to build anything. On Debian/Ubuntu you can get this by installing `build-essential`. Then you need DOSBox-X’s build dependencies. These are installed by:—
sudo apt-get install automake libncurses-dev nasm libsdl-net1.2-dev libpcap-dev libfluidsynth-dev libavformat-* libswscale-* libavcodec-* libfreetype6* libsdl2-dev libsdl2-net-dev
Now go to https://github.com/joncampbell123/dosbox-x/tree/dosbox-x-v0.83.13 and click the green *Code* button and choose *Download ZIP*. When that’s arrived open it and extract the files to a directory of your choosing. Open a terminal and cd into it.
To build the full version of DOSBox-X type:—
./build --enable-sdl2
There are other ./build-whatever scripts available for different situations.
Now a load of meaningless text will appear on your screen that's scrolling too quickly to read. Some of it will look like error messages but don't matter and it may appear to freeze-up at times. A good while later (ten to fifteen minutes on my computers) that should finish and you’ll have a binary called `dosbox-x` in the `src` sub-directory. You can test that by typing:—
src/dosbox-x
It will be very big though. To get it down to a sensible size run:—
strip --strip-all src/dosbox-x
If all is well you can move that to wherever you like, though the usual place is `/usr/bin.` This is best done by running:—
sudo make install
After that you can launch it by typing `dosbox-x` in a terminal or adding it to the Menu.
# Configuration
Settings are stored in the file `~/.config/dosbox-x/dosbox-x-0.83.x.conf`. This repository contains the reference version which gives details of ALL the possible settings, though you’re unlikely to need most of them. For instance the configuration file I actually use only consists of:—
```
[sdl]
output=opengl
mapperfile=~/.config/dosbox-x/mapper-dosbox-x.map[dosbox]
captures=~/capture[parallel]
parallel1=file file:output1.prn timeout:1000 openpcl:lpr[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.keyb uk 437
mount c: ~/.dos
c:
```There is a Wiki for DOSBox-X at https://github.com/Wengier/dosbox-x-wiki/wiki which is currently actively being updated/expanded.
# UK Keyboard
Selecting the UK keyboard layout in either the `[DOS]` section of the `.conf` file or by running `keyb uk` causes slight distortion of the text on screen. This can be avoided by running `keyb uk 437` instead. This can be added to the `[autoexec]` section of the `.conf` file, as in the example above.
# Printing
DOSBox-X has a built-in virtual dot-matrix printer taken from DOSBox-Daum but it's somewhat rough 'round the edges as yet. It was only from early May 2020 that it even worked at all on Linux though there have recently been big improvements.
The official guide to printing is here: https://github.com/Wengier/dosbox-x-wiki/wiki/Guide%3ASetting-up-printing-in-DOSBox%E2%80%90X
If the DOS program could print to an HP Laserjet printer set
```parallel1=file file:output1.prn timeout:1000 openpcl:lpr```
in the `[parallel]`section of the `.conf` file. Similar settings can be used if your program could print to a PostScript printer or if you are only printing plain text.
If your program is outputting printer data with ESC/P coding, as used by dot-matrix printers, you'll have to use the virtual one.
To use it you need to set `parallel1=printer` in the `[parallel]` section of the `.conf` file.
To work it needs some fonts. On Linux it tries to use Liberation Mono, Roman and Sans but may have trouble finding them depending on where your version of Linux stores them. You can tell it in the `[printer]` section with `fontpath=`, eg `fontpath=/usr/share/fonts/truetype/liberation`. In practice you're unlikely to need anything other than the monospaced one. If you prefer something else to Liberation Mono make a directory `~/.config/dosbox-x/FONTS` — note the capital letters — and put a copy of your chosen font in it and rename it `courier.ttf`. You can also use links, eg `ln /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf ~/.config/dosbox-x/FONTS/courier.ttf` or `ln ~/.fonts/ ~/.config/dosbox-x/FONTS/courier.ttf`.
My suggested version of the `[printer]` section is:—
```
[printer]
printer = true
dpi = 360
width = 82
height = 117
font_path = /usr/share/fonts/truetype/liberation
printoutput = ps
openwith = lpr
multipage = false
docpath = /home//capture
timeout = 1000
```The defaults are for printing on American ‘Letter’ paper (8½” x 11”) so I’ve changed it to A4 (8¼” x 11¾”). Besides that I have changed the `timeout` from `0`. If that’s left it will only ‘print’ when it receives a form feed and not all software sends one. Now if no data comes for one second it assumes that's all there is and 'prints'.
In `docpath`, `` needs changing to your user name. Another 'quirk' is that `~/` won't work here; it has to be given in full.
According to the reference `.conf` file if `printoutput=printer` it will print to your actual printer **but this doesn't work on Linux**. The `openwith:lpr` tells it to open the file it has created with `lpr`, ie print it.
Besides the above you need to configure your DOS program. These vary as to how much you can configure them though. If it can print to an HP Laserjet or postscript printer it's best to set it to that and use the `parellel1=file` method. If it can only print to dot-matrix printers and you are having to use the virtual one ideally tell the program it is connected to an Epson SQ-860. This may not be possible though if the program pre-dates that model. I've found LQ-800 to work as does IBM Pro Printer and IBM Graphics Printer. The good old Epson FX-80 causes the lines to print too far apart meaning they come out five to the inch instead of six.
Really you'll have to experiment to find what works best with the soft- and hardware you have.