RP's cockpit displays decoded near-empty (top-strip only, a copy off-screen at VRAM 0x100000) while BT's were full. Root cause was NOT the VDB decode (byte split/palettes/stride all correct, proven by BT) but an SVGA bank-switch GRANULARITY mismatch: RP's REL410/RP/GAUGE/L4GAUGE.INI [640x480x16] used granularityInKB=4 vs BT's 64 on the same STB Horizon+ (CL-GD5434). DOSBox-X's CL-GD5434 bank emulation handles 64KB granularity (BT full) but mishandles the 4KB-granular paged gauge writes, scattering them off-screen. FIX (config, no rebuild): RP L4GAUGE.INI granularityInKB 4->64 (matches BT, same card). VERIFIED live: VRAM content scan went from 0x0+0x100000 (top-strip + off-screen) to the FULL framebuffer 0x0..0x90000 populated; radar + upper-center MFD confirmed correct, rest under reference check. Also commits the VDB diagnostic tooling that found it (vpxlog.cpp, all default-off): VDB_SCAN (VRAM content locator -- decisive), VDB_PALDUMP, pixel-mask value logging, VDB_REALSTRIDE + live mode/stride/start logging, VDB_BASE read-base override, VDB_APPLYMASK DAC-mask honoring. Full writeup in VDB-NOTES.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
37 lines
557 B
INI
37 lines
557 B
INI
;
|
|
; VESA SVGA mode summary
|
|
;
|
|
[misc]
|
|
timeStamp=Tue Mar 3 16:47:06 1996
|
|
manufacturer=STB Horizon+ PCI 1.2
|
|
|
|
[640x480x8]
|
|
mode=257 ;0101h
|
|
width=640
|
|
height=480
|
|
sizeInKB=64
|
|
granularityInKB=4
|
|
bytesPerLine=1280
|
|
pageFcnPtr=794632 ;C000:2008
|
|
special=1
|
|
|
|
[640x480x16]
|
|
mode=273 ;0111h
|
|
width=640
|
|
height=480
|
|
sizeInKB=64
|
|
granularityInKB=64
|
|
bytesPerLine=1280
|
|
pageFcnPtr=796182 ;C000:2616
|
|
special=0
|
|
|
|
[800x600x16]
|
|
mode=276 ;0114h
|
|
width=800
|
|
height=600
|
|
sizeInKB=64
|
|
granularityInKB=4
|
|
bytesPerLine=1600
|
|
pageFcnPtr=796182 ;C000:2616
|
|
special=0
|