On 29/01/26 at 20:18, the via Freedos-user wrote:
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.

Thanks, further improvements, now the game is fully playable on FreeDOS 1.4 (no more freezes with scrambled screen)! I also changed the sound card in VirtualBox 7.2.6 now it is ICH AC97 but the game is still with no sound sadly. Any hints about how to get the sound working?

If you recommend to download the code from GitHub and then to compile it I need hints about how to proceed, my host runs Debian 13.3 Trixie alternatively I can compile the code on FreeDOS's virtual machine. Below my fdconfig.sys and fdauto.bat:

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)
2?DEVICE=C:\FreeDOS\BIN\JEMMEX.EXE I=B000-B7FF X=TEST MAX=32768 SB NOVDS SPLIT EMX
2?DEVICE=C:\FreeDOS\BIN\JLOAD.EXE C:\FreeDOS\DRIVERS\SBEMU\QPIEMU.DLL

; --- 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
~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~


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=IT
set TZ=UTC

REM Emergency Mode, no drivers should be loaded
if "%CONFIG%"=="4" goto END

REM keyboard settings
mkeyb IT
MODE CON RATE=32 DELAY=1

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

REM - SoundBlaster emulation setup
set BLASTER=A220 I5 D1 H5 T4
lh %DOSDIR%\DRIVERS\SBEMU\HDPMI32I.EXE /R /X
%DOSDIR%\DRIVERS\SBEMU\SBEMU.EXE /I5 /T4 /OPL1 /K44100

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

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

:END
~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~

--
Franco Martelli


_______________________________________________
Freedos-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to