rpix86 - Frequently Asked Questions

General

Is rpix86 a version of DOSBox?

No, rpix86 is based on my Nintendo DS x86 emulator DSx86. It is built from scratch, and has very little in common with DOSBox.

Will you release the source code of rpix86?

Sorry, but rpix86 is closed source. I have licensed my 386 emulation core (which also rpix86 uses) commercially to a third party, and I do not think it is fair if I would release the same openly for free. However, some parts of the source code are free and publicly available, for example you can get my AdLib emulation sources from here. If you want to see the sources for some other feature in rpix86, you can always ask. I generally have nothing against releasing small snippets of my source code.

Usage

How do I install and use rpix86?

See the excellent beginner's tutorial by Ben Garrett about what DOS is, how to install and run rpix86 on your Raspberry Pi, and how to install and run DOS programs within it.

I get "Command not found" when I try to launch rpix86. What am I doing wrong?

If you are more familiar with DOS/Windows than Linux, there are a couple of differences in how programs are launched:

  1. Linux by default does not look for programs in the current directory. So, if you are launching rpix86 from your current working directory, you need to type ./rpix86 instead of just rpix86, to have Linux look for the program in the current . directory.
  2. After unzipping the archive, rpix86 may not have execute rights. You can add execute rights with the chmod command, either with chmod u+x ./rpix86 or with chmod 750 ./rpix86.
  3. It is also possible that your Raspbian version is too old to run rpix86. Especially if you haven't updated your operating system since 2012, this is the most likely cause for problems running rpix86.

I get "Unspecified Error" when I try to run a game in rpix86. What am I doing wrong?

This error is usually caused by rpix86 not having sufficient privileges to load the game from your Raspberry Pi directory. Make sure your game directories have execute rights, and that the game files have read/write rights. Also, check that you only use directory names that are at most 8 characters long and without spaces. Use either all lower case or (preferably) all upper case directory and file names, not a mixture of upper and lower cases.

What command line parameters are there?

You can get a list of the supported command line parameters by giving command ./rpix86 -?. Here is a list of the parameters in rpix86:

-aAUDIO where AUDIO is the audio device number. If not given, defaults to 1 = Analog.
  0 = HDMI
  1 = Analog
  2 = no audio
-cPATH where PATH is the full path to the emulated D:\ root directory of a CD-ROM. If not given, CD-ROM emulation is disabled. Since version 0.16.
-dPATH where PATH is the full path to the emulated C:\ root directory. If not given, defaults to the current working directory.
-fFILTER where FILTER is one of the following values. If not given, defaults to 1.
  0 = Use OpenGL scaling with nearest neighbour filtering.
  1 = Use OpenGL scaling with fragment shader filtering (slowest).
  2 = Use dispmanx scaling (fastest). Since version 0.15.
-hHEIGHT where HEIGHT is the wanted screen height in pixels. If not given, defaults to the physical screen height (or 400 when in X Window environment).
-jNUM Note! Joystick parameter behaviour has changed! In version 0.17 or later, NUM is the joystick number for /dev/input/jsNUM device file (usually 0). If the parameter is not given, joystick support is disabled. If you give two -jNUM parameters, you can have two separate joysticks supported in DOS games. In versions prior to 0.17, NUM is the joystick event file number in /dev/input directory. If not given, rpix86 scans /dev/input/by-id for the most likely event file. Only one joystick is supported.
-kNUM where NUM is the keyboard event file number in /dev/input directory. If not given, rpix86 scans /dev/input/by-id for the correct event file.
-mNUM where NUM is the mouse event file number in /dev/input directory. If not given, rpix86 scans /dev/input/by-id for the correct event file.
-noems disables EMS memory. Since version 0.18.
-olLEFT where LEFT is the amount of overscan on the left border. If not given, defaults to /boot/config.txt overscan_left value.
-orRIGHT where RIGHT is the amount of overscan on the right border. If not given, defaults to /boot/config.txt overscan_right value.
-otTOP where TOP is the amount of overscan on the top border. If not given, defaults to /boot/config.txt overscan_top value.
-obBOTTOM where BOTTOM is the amount of overscan on the bottom border. If not given, defaults to /boot/config.txt overscan_bottom value.
-sNUM where NUM is the USB serial port number /dev/ttyUSBNUM. If -sA, rpix86 will try to use /dev/ttyAMA0. If the parameter is not given, serial port support is disabled. NOTE! Starting from version 0.10, you can have two -sNUM parameters on the command line, the first one will be used for COM1 and the second for COM2. In previous versions of rpix86 only COM1 was available.
-wWIDTH where WIDTH is the wanted screen width in pixels. If not given, defaults to the physical screen width (or 640 when in X Window environment).
path/file.exe Since version 0.12 of rpix86, you can launch a DOS executable directly without your having to use 4DOS.COM.

Audio

I am using HDMI audio, but can not get any audio out from rpix86. What could be the problem?

By default rpix86 sends audio to the analog output. To use HDMI audio, you need to give parameter -a0 to rpix86 when you start it.

How do I know what address and port to set in a game for SoundBlaster audio?

You can use the DOS command set on the DOS prompt to print environment strings, including the BLASTER environment variable. The value will be BLASTER=A220 I7 D1 T3, which translates to address=220, irq=7, dma=1 and type=3 (SoundBlaster 2.0).