My experience with DOS on PocketCHIP


#1

My experience with various DOS emulation programs on the PocketCHIP. Apologies for the length. Just inputing my two cents of what I’ve done so far in hopes someone can learn from what i’ve done so far or possibly provide a better alternative to getting DOS games (Or Windows, because why not?) to run smoothly.

DOSBox - Probably my usual go-to for the emulation of DOS or installing Windows 3.11 because why the hell not. It works, however there are a few caveats.

– When you first boot it up, it’s too large for the PocketCHIP’s anemic screen size. You’ll have to go into the config to change it. To access the config, in terminal type in "dosbox -editconf " and where it says “”, use your favorite text based editor. I personally use nano, so it’ll look like “dosbox -editconf nano”. Of course, you’ll want to do this without quotations. You’ll want to change the following lines.

fullscreen=true fullresolution=480x272 windowresolution=480x272 output=overlay
_ (06/30/16) Changed “opengl” to “overlay” for the time being until graphic drivers have been updated. Overlay provides more FPS for DOS gaming._

Using “output=surface” doesn’t allow the screen resolution to be changed as per the conf readme.

Depending on the game (If you’re trying to load a game) with audio, you may need to switch tandy. This is normal across the board on different binary platforms. Just scroll down until you find [speaker] and change…

to

Seek and Destroy by Sierra has this issue. Turning off Tandy fixes the audio.

– It appears that DOSBox for ARM isn’t very optimized? I’ve tried running Seek and Destroy, Windows 3.11, and One Must Fall 2097 at maximum CPU cycle and yield about 1 frame every 10 seconds or so. If I’m lucky. I’m still messing with settings, these are just my initial thoughts. I do recall this happening on the Android version of DOSBox, but was cleared up pretty well on DOSBox Turbo and ran smoothly. I’m not sure if there’s an non-Android ARM version of DOSBox Turbo available

– If DOSBox hangs or stalls, there’s no way to tab out via Ctrl+Tab. A hard reboot is required via holding down the home/power button until the CHIP turns off.

EDIT 7/1/16 The only other way to exit from DOSBox, is by typing “exit” in the command prompt and pressing enter.

– Fn key shortcuts do NOT work while in DOSBox, you’ll need an external keyboard or use VNC to be able to input any of the function shortcuts.

rpix86 - I personally could not go very far with this RaspberryPi x86 emulator. When running “./rpix86” from terminal to continue after extracting the tar.gz, yields an error :

chip@chip:~$ ./rpix86 ./rpix86: error while loading shared libraries: libGLESv2.so: cannot open shared object file: No such file or directory

Okay, so some research goes into it, it’s something for OpenGL. Time to search!

chip@chip:~$ apt-cache search libglesv2 libgles2-mesa-dbg - free implementation of the OpenGL|ES 2.x API -- debugging symbols chip@chip:~$

So libgles2-mesa-dbg has it. No problem. Downloaded via apt-get, and re-run, right?
Nada. Same error. Time to “sudo updatedb” and use “locate libglesv2”.

Nope. “locate libgles”?

chip@chip:~$ locate libgles /usr/lib/chromium-browser/libs/libgles2_c_lib.so /usr/lib/chromium-browser/libs/libgles2_implementation.so /usr/lib/chromium-browser/libs/libgles2_utils.so /usr/share/bug/libgles1-mesa /usr/share/bug/libgles2-mesa /usr/share/bug/libgles2-mesa-dbg /usr/share/bug/libgles1-mesa/control /usr/share/bug/libgles1-mesa/script /usr/share/bug/libgles2-mesa/control /usr/share/bug/libgles2-mesa/script /usr/share/bug/libgles2-mesa-dbg/control /usr/share/bug/libgles2-mesa-dbg/script /usr/share/doc/libgles1-mesa /usr/share/doc/libgles2-mesa /usr/share/doc/libgles2-mesa-dbg /usr/share/doc/libgles1-mesa/changelog.Debian.gz /usr/share/doc/libgles1-mesa/copyright /usr/share/doc/libgles2-mesa/changelog.Debian.gz /usr/share/doc/libgles2-mesa/copyright /usr/share/doc/libgles2-mesa-dbg/changelog.Debian.gz /usr/share/doc/libgles2-mesa-dbg/copyright /usr/share/lintian/overrides/libgles1-mesa /usr/share/lintian/overrides/libgles2-mesa /var/cache/apt/archives/libgles1-mesa_10.3.2-1+deb8u1_armhf.deb /var/cache/apt/archives/libgles2-mesa-dbg_10.3.2-1+deb8u1_armhf.deb /var/lib/dpkg/info/libgles1-mesa:armhf.list /var/lib/dpkg/info/libgles1-mesa:armhf.md5sums /var/lib/dpkg/info/libgles1-mesa:armhf.postinst /var/lib/dpkg/info/libgles1-mesa:armhf.postrm /var/lib/dpkg/info/libgles1-mesa:armhf.shlibs /var/lib/dpkg/info/libgles1-mesa:armhf.symbols /var/lib/dpkg/info/libgles2-mesa-dbg:armhf.list /var/lib/dpkg/info/libgles2-mesa-dbg:armhf.md5sums /var/lib/dpkg/info/libgles2-mesa:armhf.list /var/lib/dpkg/info/libgles2-mesa:armhf.md5sums /var/lib/dpkg/info/libgles2-mesa:armhf.postinst /var/lib/dpkg/info/libgles2-mesa:armhf.postrm /var/lib/dpkg/info/libgles2-mesa:armhf.shlibs /var/lib/dpkg/info/libgles2-mesa:armhf.symbols

That’s sure a lot of stuff, but nothing in relevance to finding “libGLESv2.so

WINE - Downloaded and install without issue through apt-get, however when attempting to run a game that was installed prior via DOSBox (seek.exe), it immediately gave a “bad EXE” in complaint of it being in the wrong binary (x86, WINE wanting ARM I’m assuming). So no-go there.

EDIT (June 17, 2016)

Found and tried using FastDOSBox - meant for the Raspberry Pi. By “meant for” I mean it’s available on their store, and available through source code via the link. There’s a few caveats however, as to compile the source code you need several things which the PocketCHIP does not have readily available, but can be downloaded.

To compile, you’ll need to apt-get the following:

[code]eclipse-cdt-autotools

libsdl1.2-dev

make[/code]

This takes approximately 40 minutes to download and install in total.

After downloading the “master.zip” from the git-hub link, extract only the fastdosbox 1.6 folder to /home/chip/. and rename it to just “fastdosbox” in Browse Files.

In terminal, navigate to the fastdosbox folder that was just made via “cd ./fastdosbox”.

The next several lines may take some time to complete. In the README (Which can be found in the folder that was just extracted), it recommends using “./autogen.sh” before anything else.

./autogen.sh ./configure make

Everything goes well until it’s time to “make” the program.

chip@chip:~/fastdosbox$ make make all-recursive make[1]: Entering directory '/home/chip/fastdosbox' Making all in src make[2]: Entering directory '/home/chip/fastdosbox/src' Making all in cpu make[3]: Entering directory '/home/chip/fastdosbox/src/cpu' Making all in core_full make[4]: Entering directory '/home/chip/fastdosbox/src/cpu/core_full' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu/core_full' Making all in core_normal make[4]: Entering directory '/home/chip/fastdosbox/src/cpu/core_normal' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu/core_normal' Making all in core_dyn_x86 make[4]: Entering directory '/home/chip/fastdosbox/src/cpu/core_dyn_x86' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu/core_dyn_x86' Making all in core_dynrec make[4]: Entering directory '/home/chip/fastdosbox/src/cpu/core_dynrec' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu/core_dynrec' make[4]: Entering directory '/home/chip/fastdosbox/src/cpu' source='callback.cpp' object='callback.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../depcomp \ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c -o callback.o callb ack.cpp ../../depcomp: line 571: exec: g++: not found Makefile:395: recipe for target 'callback.o' failed make[4]: *** [callback.o] Error 127 make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu' Makefile:413: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory '/home/chip/fastdosbox/src/cpu' Makefile:426: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/chip/fastdosbox/src' Makefile:367: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/chip/fastdosbox' Makefile:307: recipe for target 'all' failed make: *** [all] Error 2

Unfortunately, I’m not sure where to begin, due to my lack of knowledge in programming and linux compiling. Just reading from instruction on “how to compile.”

DOSBox Update (06/30/16) :

Testing a few games on DOSBox has yielded some good results. Some games work out of the box, others not so much. A note when downloading and installing games - if you’re downloading from GOG, Steam, or Humble (Or any other website that offers the games for a price), you might be downloading a DOSBox version of the game - as in the installer will only work in Windows as it’ll install DOSBox, and the files needed to run the DOS game of your choosing on your PC. You CANNOT install them in DOSBox on CHIP as the installer requires Windows to run the installer. HOWEVER! Once it’s installed, you can go into the files, find the executable for the game, and copy all the files in the folder with the executable for the game (in example, wolf3d.exe for Wolfenstein 3D) Just be sure to either set up a single folder “drive” mount for each game. For Steam, just navigate to your steam folder (Generally C:\Program Files x86\Steam\steamapps\common) and locate your game that requires DOSBox to run

Wolfenstein 3D : Runs great out of the box using the edited config. This was just dragged and dropped into the CHIP from Steam. See video for gameplay. (Apologies for the white balance and odd angle. I’m considering buying a tripod/mount later and looking into video editing software to include a PiP of the (Pocket)CHIP and what was being recorded for clarity) Game audio crackles, at least for me while wearing a headset, but playable. And yes, you could play it using the PocketCHIP keyboard! (Arrow Keys, Ctrl, Alt, Space Bar, Esc, number row)

One Must Fall 2097 : Loads, but unplayable. I have the files for it and it installed fine on CHIP. Frame rate is deplorable - 1 frame every 3 seconds or so. Waiting for the OpenGL update to pass judgement.

Seek and Destroy : Same as OMF2097.

Tomb Raider : Fades the DOS screen to black before loading back the DOS prompt with "Fatal error: unable to load DLL."
Had to change the config to get the game to load. Just the auto-exec.

imgmount d /home/chip/floppy/tombraider/GAME.DAT -t iso -fs iso mount e /home/chip/floppy/tombraider/TOMBRAID/ e:
Once DOSBOX is loaded, go to the E “drive” and type “tomb” to start. Well, attempt.

Tomb Raider II and onwards : Does not run in DOS mode. (No DOSBox, runs in Windows natively)

This is just my experience so far. I’ll edit this post when I get the time and or have new information.


DOSBox for Pocket CHIP, and LAN?
Wolf 3D: possibility, or pipe dream? RESOLVED!
A Brief History of Shareware Software & How to Run It on PocketC.H.I.P. with DOSBox
MSDOS Gaming. suggestion for software please
Wolf 3D: possibility, or pipe dream? RESOLVED!
Old PC Emulation On C.H.I.P?
#2

Thank you for sharing your experience! However, I don’t know what DOSBox Turbo is, it’s another package? Different than DOSBox?


#3

DOSBox is already on Android, this is just a more optimized version of it that works rather well on the same platform.


#4

Oh, I thought you installed it on PocketCHIP, my bad.


#5

Found and tried using FastDOSBox - meant for the Raspberry Pi. By “meant for” I mean it’s available on their store, and available through source code via the link. There’s a few caveats however, as to compile the source code you need several things which the PocketCHIP does not have readily available, but can be downloaded.

To compile, you’ll need to apt-get the following:

[code]eclipse-cdt-autotools

libsdl1.2-dev

make[/code]

This takes approximately 40 minutes to download and install in total.

After downloading the “master.zip” from the git-hub link, extract only the fastdosbox 1.6 folder to /home/chip/. and rename it to just “fastdosbox” in Browse Files.

In terminal, navigate to the fastdosbox folder that was just made via “cd ./fastdosbox”.

The next several lines may take some time to complete. In the README (Which can be found in the folder that was just extracted), it recommends using “./autogen.sh” before anything else.

./autogen.sh ./configure make

Everything goes well until it’s time to “make” the program.

chip@chip:~/fastdosbox$ make make all-recursive make[1]: Entering directory '/home/chip/fastdosbox' Making all in src make[2]: Entering directory '/home/chip/fastdosbox/src' Making all in cpu make[3]: Entering directory '/home/chip/fastdosbox/src/cpu' Making all in core_full make[4]: Entering directory '/home/chip/fastdosbox/src/cpu/core_full' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu/core_full' Making all in core_normal make[4]: Entering directory '/home/chip/fastdosbox/src/cpu/core_normal' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu/core_normal' Making all in core_dyn_x86 make[4]: Entering directory '/home/chip/fastdosbox/src/cpu/core_dyn_x86' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu/core_dyn_x86' Making all in core_dynrec make[4]: Entering directory '/home/chip/fastdosbox/src/cpu/core_dynrec' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu/core_dynrec' make[4]: Entering directory '/home/chip/fastdosbox/src/cpu' source='callback.cpp' object='callback.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../depcomp \ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c -o callback.o callb ack.cpp ../../depcomp: line 571: exec: g++: not found Makefile:395: recipe for target 'callback.o' failed make[4]: *** [callback.o] Error 127 make[4]: Leaving directory '/home/chip/fastdosbox/src/cpu' Makefile:413: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory '/home/chip/fastdosbox/src/cpu' Makefile:426: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/chip/fastdosbox/src' Makefile:367: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/chip/fastdosbox' Makefile:307: recipe for target 'all' failed make: *** [all] Error 2

Unfortunately, I’m not sure where to begin, due to my lack of knowledge in programming and linux compiling. Just reading from instruction on “how to compile.” For now until I can find an answer, back to editing the original DOSBox conf.


#6

Looks to me like you don’t have gcc/g++ installed. Try “sudo apt-get install build-essential” then try to rerun make.


#7

Will be trying that in a few minutes, reflashing the CHIP since I made a few oopsie-daisies.


#8

there is another post on this topic. Old PC Emulation On C.H.I.P?


#9

Making sure build-essential is installed fixed that build error for me with fastdosbox. I’m on a regular CHIP, fwiw, and used @renzo’s kernel (thread with download and instructions) to get MIDI working.

In my testing, fastdosbox hasn’t been… faster than the main package available in apt but, like I said above, I’m on a non-PocketCHIP. ymmv.


#10

Yeah, finally got around to getting FastDOSBox going. It’s nothing different from what I can tell. Different splash screen, some of the config options were pre-changed to what would be optimized for getting higher frame rate (which, was the same across the board between DOSBox and FastDOSBox). So basically, a flunk. Can’t really do much with just the CHIP for testing as I need to get a A/V cable that works with the CHIP. The one I bought for $13 from a local computer store just causes the screen to flicker violently. I can see changes from where the boot process is happening, but it’s unusable.


#11

Test the audio channels for video signal too. Sometimes you can get lucky and even the wrong AV cable can work, but video signal comes out one of the audio plugs.

Also, for future reference: https://raw.githubusercontent.com/NextThingCo/CHIP-Hardware/master/CHIP[v1_0]/trrs_annotated.png


#12

After checking continuity, it goes Ground > Video > R Audio > L Audio. Great. I would change it, but it’s a 90 degree plug.


#13

In regard to not being able to quit out of Dosbox, did you try pressing CTRL-C?

Hopefully “output=opengl” will run much better once we roll out the Mali GPU driver support.


#14

Ctrl-C does not work when trying to exit from DOSBox. Nor did Ctrl-Q.

Here’s to hoping for opengl. Overlay is currently the best for fps.


#15

I’m quite excited for the Mali Gpu driver rollout - thanks for the update


#16

@telarium @BladeMaverick: CTRL+F9 will kill DOSBox, CTRL+F10 will capture/uncapture the mouse, and ALT+ENTER will toggle between windowed/full screen. See the full list of key combos on the DOSBoxWiki

I confirmed that these all worked on my CHIP this weekend. Makes testing a lot easier than a hard reboot!


#17

That’s if you can get the FN key to work while in DOSBox. Can’t even use it to make a colon ( : ) in any instance.


#18

Ah that’s a bummer- using a regular keyboard/mouse will help there, but it’s much less cool.


#19

Yeah, sucks. I can get most of everything set up in DOSBox when it comes to mounting, but switching “drives” I’d need an external keyboard unless I mount everything and have it auto set to the drive I want instead of DOSBox’s Z: drive.

Just go to the bottom for anything you want to auto execute
For me, I have set up several “floppy disks”, and the C drive. I could use any letter really, but C: is just more familiar.

mount c /home/chip/windows mount a /home/chip/floppy/win/ mount b /home/chip/floppy/seek/ mount d /home/chip/floppy/omf/ c:

This way I still have access to the floppies (which are just the contents of the floppies in question, not IMG files), and since most installations use C:, makes things easy to just change directory in C and run the program or game.


#20

GREAT! It’s all geek to me so far but it’s a start! Keep me informed and I’ll do likewise.

There does seem to be some traction/interest of playing DOS games on the Pocket CHIP - even more so with a LAN connection over several Pocket CHIPS, so I’m guessing it will develop quickly. (Read Praying)

LOL!

:^)