86Box / 86Box

Emulator of x86-based machines.
GNU General Public License v2.0
2.78k stars 344 forks source link

INMOS XGA emulation is broken #4870

Closed WNT50 closed 1 month ago

WNT50 commented 1 month ago

What happened?

INMOS XGA do not work with Windows 3.1 or OS/2 XGA-2 driver. After installing XGA-2 driver, Windows hangs at startup. Monitor_1_20240929-175411-619

Configuration file

[INMOS XGA (ISA)]
type = 1
instance = 6
ext_mem_addr = 00F0
dma = 7

[Microsoft Serial Mouse]
port = 0
buttons = 2

[General]
vid_renderer = qt_software
host_cpu = AMD Ryzen 7 5800H with Radeon Graphics         
uuid = caf5d46d-be56-59ea-99b7-1ef57ddc156f
force_43 = 1
language = system

[Machine]
machine = acc386
cpu_family = i386dx
cpu_speed = 40000000
cpu_multi = 1
cpu_use_dynarec = 0
fpu_softfloat = 0
time_sync = local
mem_size = 8192

[Video]
gfxcard = inmos_xga_isa

[Input devices]
mouse_type = msserial

[Sound]
fm_driver = nuked

[Network]
net_01_link = 0
net_02_link = 0
net_03_link = 0
net_04_link = 0

[Ports (COM & LPT)]
lpt1_device = dot_matrix

[Storage controllers]
hdc = st506_at
cassette_mode = load

[Hard disks]
hdd_01_parameters = 17, 7, 855, 0, mfm
hdd_01_fn = disk.img
hdd_01_mfm_channel = 0

[Floppy and CD-ROM drives]
fdd_01_type = 35_2hd
fdd_01_turbo = 1
fdd_02_type = 525_2hd
fdd_02_turbo = 1

Operating system

Windows 11

CPU

AMD Ryzen 7 5800H

86Box version

v4.3 build 6200

Build architecture

Windows - x64 (64-bit)

Build type

Download source

Official website (Jenkins, GitHub)

Additional context

Disk and drivers: XGAISA.zip OS2.zip

TC1995 commented 1 month ago

Try setting the ext memory to the equivalent to the 0xcx00 addresses (0xc800-0xce00).

WNT50 commented 1 month ago

After doing some tests: ext memory set to 0xc800-0xce00: works correctly ext memory set to 0xd000-0xd200: corrupted screen like this ext memory set to 0xd400-0xde00: black screen completely

And I think INMOS XGA card should be called Radius MultiView XGA, which have a ROM address selection switch (emulated is fixed at C0000h) and an IRQ selection jumper but no MMIO address selection. Maybe MMIO address has some relationship with ROM address selection.