86Box is an x86 PC emulator focussed on accuracy, and I was hoping that perhaps running
Arena in it would be somewhat less wonky compared to DOSBox.
Recently I installed FreeDOS in 86Box, which I configured as a 486DX2 @ 66 MHz (I posted detailed instructions
here), however it turns out that
Arena does not work under FreeDOS out of the box (no pun intended). The game requires Expanded Memory (EMS), and FreeDOS uses
JEMM as the memory manager, but none of the default presets are suitable for running
Arena. The floppy version hangs after character generation and Ria Silmane's cinematic or when trying to load a saved game, the CD version hangs when trying to fast travel.
Thankfully, the workaround is to load JEMMEX with a specific set of parameters suggested by its developer
here:
Code:
DEVICE=C:\DIV\JEMMEX.EXE MAX=32M MIN=48 I=B000-B7FF I=TEST
With this setup, both the floppy version and the CD version work as intended. I've added this as a new preset to my FDCONFIG.SYS file (in FreeDOS, just type
cfg from anywhere to edit FDCONFIG.SYS), which is the sixth option on the menu:
Code:
MENUDEFAULT=2,5
MENU 1 - Load FreeDOS with JEMMEX, no EMS (most UMBs), max RAM free
MENU 2 - Load FreeDOS with JEMMEX (more compatible)
MENU 3 - Load FreeDOS with JEMM386 (Expanded Memory)
MENU 4 - Load FreeDOS low with some drivers (Safe Mode)
MENU 5 - Load FreeDOS without drivers (Emergency Mode)
MENU 6 - Load FreeDOS with JEMMEX (EMS, max RAM free)
1236?DOS=HIGH
1236?DOS=UMB
1236?DOSDATA=UMB
1?DEVICE=C:\FreeDOS\BIN\JEMMEX.EXE NOEMS X=TEST I=TEST NOVME NOINVLPG
2?DEVICE=C:\FreeDOS\BIN\JEMMEX.EXE NOEMS X=TEST NOVME NOINVLPG
34?DEVICE=C:\FreeDOS\BIN\HIMEMX.EXE
3?DEVICE=C:\FreeDOS\BIN\JEMM386.EXE X=TEST NOVME NOINVLPG
6?DEVICE=C:\FreeDOS\BIN\JEMMEX.EXE MAX=32M MIN=48 I=B000-B7FF I=TEST
126?SHELLHIGH=C:\FreeDOS\BIN\COMMAND.COM C:\FreeDOS\BIN /E:1024 /P=C:\FDAUTO.BAT
345?SHELL=C:\FreeDOS\BIN\COMMAND.COM C:\FreeDOS\BIN /E:1024 /P=C:\FDAUTO.BAT
With this preset, I get around 628 Kb of free base memory, which should be more than enough for
Arena and could help avoid those pesky out of base memory errors.