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