Setting 86box with FreeDOS to play Arena

Off topic discussion. Talk about gaming and life in general. Be awesome to each other.
Post Reply
User avatar
MrFlibble
Posts: 411
Joined: Sat Jan 27, 2018 10:43 am

Setting 86box with FreeDOS to play Arena

Post by MrFlibble »

I was never really happy with how Arena worked in DOSBox for me (and I've tried different DOSBox builds various combinations of cycles & CPU core settings), so when I learned about 86box I decided that I needed to try it out.

86box is a fork of PCem, and is a fully featured x86 PC emulator that aims at accuracy and allows you to specify many different period-accurate hardware configurations -- unlike DOSBox which is more of a catch-all thing that tries to pretend whatever machine a game expects it to be.

Since I do not have a copy of MS-DOS, I settled on FreeDOS as the OS to try 86box with. I found no useful, up-to-date online guide for installing FreeDOS in 86box, so I had to figure stuff out myself (nothing too complicated overall), and put together a small step-by-step guide here. I will not reiterate the steps in this post, but the machine that I set 86box has the following specs:
  • Machine type: i486 (Socket 3)
  • Machine: [SiS 496] ASUS PVI-486SP3C
  • CPU type: Intel 486DX2 @66 MHz
  • Memory: 32 MB
  • Video: [VLB] S3 Trio32 (Phoenix)
  • Mouse: Standard PS/2 Mouse
  • Sound card: [ISA16] Sound Blaster 16 (Port: 220, IRQ: 5, DMA: 1, HDMA: 5)
FreeDOS installation is generally very easy, you should use the LiveCD version and not the legacy floppy release as some sources suggest. However, post-installation you will need to edit the FDAUTO.BAT file (which is FreeDOS' equivalent of AUTOEXEC.BAT) to force detection of a 386+ CPU and to set the CuteMouse driver mouse speed to 1.

Now, when you boot FreeDOS, it offers you a bunch of loading options that will use different configurations of the onboard memory manager, Jemm. The thing is, none of these will let Arena run properly: the floppy v1.06 will hang after the Ria Silmane cinematic or when loading a saved game, and the CD v1.07 will hang when trying to fast travel. There are two solutions:

First, you can load Jemm with a set of parameters that make it behave as close as possible to the EMM386 manager that Arena expects:

Code: Select all

DEVICE=C:\FreeDOS\BIN\JEMMEX.EXE MAX=32M MIN=48 I=B000-B7FF I=TEST
This is a workable solution, but in the CD version you'll still have a small problem with some speech lines not being played back in the cutscenes.

The other solution is to take EMM386.EXE from Caldera DR-DOS 7.03 and load it with the following parameters (this is supposed to be done via FDCONFIG.SYS):

Code: Select all

DEVICE=C:\DRDOS\EMM386.EXE DPMI=OFF FRAME=AUTO NOVCPI
For anyone going to try this, I'm attaching my FDCONFIG.SYS and FDAUTO.BAT to this post. FDCONFIG.SYS has both options to load Jemm in EMM386 compatible mode and DR-DOS EMM386 added to the boot menu.
freedos_config.zip
FreeDOS configuration files
(1.52 KiB) Downloaded 25 times
So, how does Arena play in 86box? I've started a test playthrough and so far I'm finding this a somewhat smoother experience compared to DOSBox. The game speed is still uneven, and some NPC animations still play at an obviously too high speed, but I think that it generally feels less sluggish even when the frame rate drops, and does not zip around insanely when the frame rate gets higher. I'd like to think that playing this way is likely as close as it gets to running the game on real hardware.

86box supports GLSL shaders, such as those found here, and I've picked one called crt-easymode, which is not very intrusive but gives the image a less blurred-out, more CRT-esque look. Also I found a neat SC-55 soundfont to use with FluidSynth for MIDI output.

Post Reply