It’s great that the game is actually launching now
The issues you’re seeing—no sound and scrambled graphics—usually point to a
conflict between how the memory manager handles the hardware and how the
SoundBlaster emulator (SBEMU) tries to hook into it.
Here are the specific areas to tweak in your configuration:

1. Fix the Sound (SBEMU & VirtualBox)
VirtualBox 7.x’s Intel HD Audio is technically supported by SBEMU, but it
can be finicky in DOS.

 * The "SET BLASTER" variable: You have these lines commented out in your
FDAUTO.BAT. SBEMU needs this variable to tell the game where the "fake"
SoundBlaster is. Add this line (uncommented) before you call SBEMU:
   SET BLASTER=A220 I5 D1 T4

 * Driver Order: In FDAUTO.BAT, you are loading SBEMU at the very end. Some
games check for the BLASTER environment variable at launch. Ensure the
SBEMU block is before you start the game, and try adding the /T switch to
SBEMU to force it to use the Intel HDA hardware specifically.

 * VBox Setting: If "Intel HD Audio" continues to fail, try changing the
VirtualBox Audio Controller to ICH AC97. SBEMU often has better stability
with AC97 in virtualized environments.

2. Fix the Scrambled Screen (Memory Conflicts)
The scrambled screen at scenario changes is a classic sign of a Memory
Mapping conflict. JEMMEX/JEMM386 and SBEMU are likely fighting over the
same area in the Upper Memory Blocks (UMB).
In your FDCONFIG.SYS, try these adjustments for Menu 2:

 * Exclude the SBEMU range: SBEMU usually needs a small window in high
memory.
 * Remove VME: Sometimes Virtual Machine Extensions (VME) cause stability
issues in VirtualBox.
 * Update the line to:
   2?DEVICE=C:\FreeDOS\BIN\JEMMEX.EXE RAM X=C800-EFFF NOINVLPG

3. Revised Loading Sequence
In your FDAUTO.BAT, move the SBEMU block higher up, preferably right after
the mouse driver and before you call any other batch files. This ensures
the sound environment is fully "baked" before the system gets busy.
Try this updated block in FDAUTO.BAT:

REM - SoundBlaster emulation setup
SET BLASTER=A220 I5 D1 T4
%DOSDIR%\BIN\JLOAD.EXE %DOSDIR%\DRIVERS\SBEMU\QPIEMU.DLL
%DOSDIR%\DRIVERS\SBEMU\HDPMI32I.EXE /R
%DOSDIR%\DRIVERS\SBEMU\SBEMU.EXE /T

4. One "Gotcha" with bundled drivers
You mentioned using the SBEMU bundled with FreeDOS 1.4. While convenient,
SBEMU is updated frequently to fix specific game crashes and Intel HDA
bugs. If the above tweaks don't work, I highly recommend grabbing the
latest SBEMU.EXE and HDPMI32I.EXE from the official GitHub; the version
difference can be the difference between a crash and a smooth experience.

On Wed, 28 Jan 2026, 20:59 Franco Martelli via Freedos-user, <
[email protected]> wrote:

> On 28/01/26 at 08:51, the via Freedos-user wrote:
> > I have adjusted the HIMEMX line so it does not load when you select Menu
> > 2. This allows JEMMEX to handle everything (XMS + EMS + UMBs) without a
> > conflict, which should be the most stable way to get Space Ace running
> > with sound and expanded memory.
>
> Thanks, improvements, the game now starts (previous it freezes), but
> still with no sound. I can play, but reached a change of scenario the
> screen gets scrambled and I can exit the game by pressing the ESC key.
>
> I run FreeDOS 1.4 inside VirtualBox 7.2.4 I chose "Intel HD Audio" as
> soundcard for the virtual machine. The SBEMU driver was bundled in
> FreeDOS so I used that, not the one on GitHub.
> Follows my fdauto.bat and fdconfig.sys any hints?
>
> FDAUTO.BAT:
>
> --- --- --- --- --- --- --- --- --- ---
> @ECHO OFF
> REM - Updated AUTOEXEC file, for VirtualBox
>
> REM - set basic environment
>
> set DOSDRV=C:
> set DOSDIR=C:\FreeDOS
>
> path %DOSDIR%\BIN
> if not exist %DOSDIR%\LINKS\NUL goto NOLINKS
> path %PATH%;%DOSDIR%\LINKS
> :NOLINKS
>
> set NLSPATH=%DOSDIR%\NLS
> set HELPPATH=%DOSDIR%\HELP
>
> set TEMP=%DOSDIR%\TEMP
> set TMP=%TEMP%
>
> set LANG=EN
> set TZ=UTC
>
> REM Emergency Mode, no drivers should be loaded
> if "%CONFIG%"=="4" goto END
>
> REM - Internationalization settings
>
> REM nlsfunc %DOSDIR%\BIN\COUNTRY.SYS
> REM display CON=(EGA,858,2)
> REM mode CON CP PREP=((858) %DOSDIR%\CPI\EGA.CPX)
> REM keyb US,858,%DOSDIR%\BIN\KEYBOARD.SYS
> REM chcp 858
> REM mkeyb UK
>
> rem codepage settings
> REM NLSFUNC %dosdir%\BIN\COUNTRY.SYS
> REM DISPLAY CON=(EGA,850,2)
> REM MODE CON CP PREP=((850) %dosdir%\CPI\EGA.CPX)
> REM KEYB IT,850,%dosdir%\bin\keyboard.sys
> REM CHCP 850
> REM MKEYB UK
> rem keyboard settings
> mkeyb IT
> MODE CON RATE=32 DELAY=4
>
> set OS_NAME=FreeDOS
> set OS_VERSION=1.4
>
> REM - cfgfile and autofile might be deprecated in future
> REM - At boot, FreeDOS can use CONFIG.SYS, but it prefers FDCONFIG.SYS
>
> set CFGFILE=%DOSDRV%\CONFIG.SYS
> if exist %DOSDRV%\FDCONFIG.SYS set CFGFILE=%DOSDRV%\FDCONFIG.SYS
> set AUTOFILE=%0
> alias cfg=edit %CFGFILE%
> alias auto=edit %AUTOFILE%
>
> if "%CONFIG%"=="3" goto DOSLOW
> goto DOSHIGH
>
> :DOSLOW
> ctmouse
> goto CONFIGS
>
> :DOSHIGH
>
> lh fdapm APMDOS
> lh ctmouse
> REM lh share
>
> if not exist %DOSDIR%\BIN\DOSLFN.COM goto NOLFN
> lh %DOSDIR%\BIN\DOSLFN.COM
> REM - Add other stuff here once LFN is loaded..
> :NOLFN
>
> if not exist %DOSDIR%\BIN\CDROM.BAT goto NOCDROM
> call %DOSDIR%\BIN\CDROM.BAT
> REM - Add other stuff here once CDROM is loaded..
> :NOCDROM
>
> if not exist %DOSDIR%\BIN\FDNET.BAT goto NONET
> call %DOSDIR%\BIN\FDNET.BAT
> REM - if errorlevel 1 goto NONET
> REM - Add other stuff here once FDNET is loaded..
> :NONET
>
> :CONFIGS
> REM - load other configs using external BAT files
>
> if not exist %DOSDIR%\BIN\FDASSIST.BAT goto NOASSIST
> call %DOSDIR%\BIN\FDASSIST.BAT
> :NOASSIST
>
> REM - additional customization and local settings
>
> REM set BLASTER=A220 I7 D1 H5 P330
> REM set BLASTER=A220 I7 D1 H5 T6
> set DIRCMD=/O:GNE /Y
> set COPYCMD=/-Y
>
> alias reset=fdisk /reboot
> alias reboot=fdapm warmboot
> alias halt=fdapm poweroff
> alias sd=fdapm poweroff
>
> MEM /C /N
>
> REM - Display drive for CD-ROM
> if not exist %DOSDIR%\BIN\CDROM.BAT goto NOCDSTATUS
> echo.
> call %DOSDIR%\BIN\CDROM.BAT status
> :NOCDSTATUS
>
> REM - Display "Welcome to FreeDOS"
> if not exist %DOSDIR%\BIN\WELCOME.BAT goto NOWELCOME
> call %DOSDIR%\BIN\WELCOME.BAT
> :NOWELCOME
>
> :END
>
> REM - SoundBlaster emulation
> %DOSDIR%\BIN\JLOAD.EXE %DOSDIR%\DRIVERS\SBEMU\QPIEMU.DLL
> %DOSDIR%\DRIVERS\SBEMU\HDPMI32I.EXE /R
> %DOSDIR%\DRIVERS\SBEMU\SBEMU.EXE
> --- --- --- --- --- --- --- --- --- ---
>
>
> FDCONFIG.SYS:
>
> --- --- --- --- --- --- --- --- --- ---
> SET DOSDIR=C:\FreeDOS
>
> !COUNTRY=001,850,C:\FreeDOS\BIN\COUNTRY.SYS
> LASTDRIVE=Z
> BUFFERS=40
> FILES=99
> STACKS=9,256
> !MENUCOLOR=7,0
>
> MENUDEFAULT=2,5
> MENU 1 - Load FreeDOS with JEMM386 (no EMS, max RAM free)
> MENU 2 - Load FreeDOS with JEMM386 (Expanded Memory for Space Ace)
> MENU 3 - Load FreeDOS low with some drivers (Safe Mode)
> MENU 4 - Load FreeDOS without drivers (Emergency Mode)
>
> ; --- Memory Manager Loading ---
> ; Load HIMEMX only for Menus 1 and 3. Menu 2 uses JEMMEX instead.
> 13?DEVICE=C:\FreeDOS\BIN\HIMEMX.EXE
>
> ; Menu 1: Standard JEMM386 (No EMS)
> 1?DEVICE=C:\FreeDOS\BIN\JEMM386.EXE NOEMS X=TEST I=TEST I=B000-B7FF
> NOVME NOINVLPG
>
> ; Menu 2: JEMMEX for Space Ace (Provides XMS + EMS + UMBs)
> ; Added "RAM" to enable EMS/UMBs and "I=TEST" to find upper memory space.
> 2?DEVICE=C:\FreeDOS\BIN\JEMMEX.EXE RAM VME SB I=TEST
>
> ; --- Kernel Settings ---
> 12?DOS=HIGH
> 12?DOS=UMB
> 12?DOSDATA=UMB
>
> ; --- Shell and Startup ---
> 34?SHELL=C:\FreeDOS\BIN\COMMAND.COM C:\FreeDOS\BIN /E:1024
> /P=C:\FDAUTO.BAT
> 12?SHELLHIGH=C:\FreeDOS\BIN\COMMAND.COM C:\FreeDOS\BIN /E:1024
> /P=C:\FDAUTO.BAT
> --- --- --- --- --- --- --- --- --- ---
>
> --
> Franco Martelli
>
>
> _______________________________________________
> Freedos-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/freedos-user
>
_______________________________________________
Freedos-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to