Enabling gauges crashed (null-this, illegal 0x478). Root cause was NOT video:
the MUNGA main heap (fixed 6MB default) exhausted loading gauge images. The
heap size comes from getenv("HEAPSIZE") (BTL4OPT.EXE @0x401076; default
0x600000); the pod's PARAMETR.BAT sets it (:POD=15MB, :REVIEW/:LOOP=32MB) but
our minimal setenv launch never did. memsize is irrelevant (it's the game's
own heap, not DOS memory -- verified memsize=127 still gave 6MB). Pods have
32MB RAM so 15MB fits.
Fix (no binary patch): set HEAPSIZE=15000000 + L4GAUGE=640x480x16 in
gauge.conf. Game now runs sustained with gauges on (500+ frames); the VESA
640x480x16 mode switches fine on our emulated S3 and the cockpit instrument
panels draw (DISPLAY/PROGRAM/ENG DATA/TRIGGER CONFIG...).
patch_btl4opt.py also gained Verify_Failed (DEBUG-build assertion) neutral-
ization -- release-equivalent robustness, separate from the heap fix.
Known-open (GAUGE-NOTES.md): the framebuffer renders only a top strip,
garbled -- the game bank-switches via a hardcoded far pointer in L4GAUGE.INI
(C000:2616, the STB Horizon+ card's VESA WinFuncPtr) that isn't valid on our
emulated S3, so only the first bank(s) page in. Fixing bank-switching (or an
LFB mode) is next; then the full buffer can be split into the six displays.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 lines
710 B
Plaintext
32 lines
710 B
Plaintext
[sdl]
|
|
output=opengl
|
|
[dosbox]
|
|
memsize=32
|
|
machine=svga_s3
|
|
[cpu]
|
|
core=dynamic
|
|
cputype=pentium
|
|
cycles=max
|
|
[serial]
|
|
serial1=disabled
|
|
serial2=disabled
|
|
[autoexec]
|
|
mount c "C:\VWE\TeslaRel410\ALPHA_1"
|
|
c:
|
|
cd \REL410\BT
|
|
set VIDEOFORMAT=svga
|
|
set BLASTER=A220 I5 D1 H5 P330 T6
|
|
set TEMP=c:\
|
|
rem The pod's PARAMETR.BAT :POD path sets these; the game's HEAPSIZE default
|
|
rem is only 6MB (too small once gauges load -> MUNGA heap exhaustion). Match
|
|
rem the pod: 15MB heap + the 640x480x16 gauge mode.
|
|
set HEAPSIZE=15000000
|
|
set L4GAUGE=640x480x16
|
|
rem arg4=g enables the gauge/secondary displays -> exercises the VDB splitter
|
|
call setenv.bat r s n g
|
|
32rtm.exe -x
|
|
btl4opt.exe -egg test.egg
|
|
32rtm.exe -u
|
|
echo ALPHA1-RUN-DONE
|
|
pause
|