ATI Mach64GX Video Glitches In 86Box Windows 3.11
Experiencing issues with Video for Windows 3.11 while using the ATI Mach64GX card in 86Box? You're not alone! This article delves into a specific problem encountered when trying to play videos on a Windows 3.11 guest using the ATI Mach64GX video card within the 86Box emulator. We'll explore the troubleshooting steps taken, the configuration details, and potential solutions to get your retro video playback smooth and clear.
The Problem: Garbled Video Playback
The main issue is that when attempting to play videos using Video for Windows (versions 1.0 and 1.1e) on a Windows 3.11 guest, the video output is a distorted and unwatchable mess. While the audio might be clear, the video appears as a jumbled collection of pixels, rendering it impossible to view. This problem specifically arises when using the ATI Mach64GX video card with its associated drivers. When the user tried to play a simple sample video from a Gateway 2000 CD using several versions (1.0 and 1.1e) of "Video for Windows" under a Windows 3.11 guest (Intel Premiere/PCI II Plato, 90MHz Pentium 1), he used multiple versions of the ATI Mach64GX drivers, and both a non-accelerated and accelerated version of "Video for Windows" to no avail. The user had also troubleshooted this machine with all the exact same configuration options but using other video cards (for example the TSENG ET4000 PCI) and the video did seem to play fine. Also, the user changed the driver to generic "VGA" and it also plays fine, albeit in 16 colors and extremely choppy. Sometimes the user can get clear audio but the video itself is a garbled mess.
Troubleshooting Steps
Several troubleshooting steps were undertaken to isolate and resolve the problem. These include:
- Testing with Different Video Cards: The user switched to a TSENG ET4000 PCI video card, and the video played correctly. This suggests the problem is specific to the ATI Mach64GX configuration.
- Using Generic VGA Driver: When using the generic VGA driver, the video plays, but with limited color depth (16 colors) and significant choppiness. This indicates that the basic video playback functionality is working, but the ATI drivers are causing the corruption.
- Trying Different Video for Windows Versions: Both versions 1.0 and 1.1e of Video for Windows were tested, but the issue persisted, ruling out a specific version incompatibility.
- Testing Accelerated and Non-Accelerated VfW: The user experimented with both accelerated and non-accelerated versions of Video for Windows, without success.
- Multiple ATI Mach64GX Driver Versions: Multiple versions of the ATI Mach64GX drivers were tested, in order to eliminate the possibility of a corrupted driver or an incompatibility with the current version of Windows 3.11.
These steps have helped narrow down the problem to a potential conflict between the ATI Mach64GX drivers and Video for Windows within the 86Box environment.
Configuration Details
Here's a breakdown of the relevant configuration settings used in 86Box:
- Machine: Intel Premiere/PCI II (Plato)
- CPU: 90MHz Pentium 1
- Memory: 16MB
- Video Card: ATI Mach64GX PCI with 2MB memory
- Operating System: Windows 3.11
The 86Box configuration file (.ini) provides further details:
[Intel Advanced/ZP (Zappa)]
bios = zappa_gw2k
[Intel Premiere/PCI II (Plato)]
bios = plato
[ATI Mach64GX PCI]
memory = 2
[General]
emu_build_num = 8000
force_43 = 1
host_cpu = 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
sound_gain = 18
uuid = c7a6ce42-86e8-5e2b-8686-6a3055433fdc
vid_renderer = qt_opengl3
[Machine]
cpu_family = pentium_p54c
cpu_multi = 1.5
cpu_speed = 90000000
cpu_use_dynarec = 1
fpu_type = internal
machine = plato
mem_size = 16384
[Video]
gfxcard = mach64gx_pci
[Input devices]
keyboard_type = keyboard_ps2
mouse_type = ps2
[Network]
net_01_link = 0
net_02_link = 0
net_03_link = 0
net_04_link = 0
[Hard disks]
hdd_01_fn = GW2KP590.img
hdd_01_ide_channel = 0:0
hdd_01_parameters = 63, 16, 2032, 0, ide
hdd_01_speed = ramdisk
[Floppy and CD-ROM drives]
cdrom_01_ide_channel = 0:1
cdrom_01_image_history_01 = F:/Old Software/Drivers/ATIMach64_Win311Drivers.iso
cdrom_01_image_path = F:/Old Software/OEM Software/Gateway 2000 P4D-66 and P5-90/Gateway System CD 4.0.iso
cdrom_01_parameters = 1, atapi
cdrom_01_speed = 2
cdrom_01_type = nec_260_early
fdd_01_fn = C:/Users/Fende/Downloads/Microsoft Video 1.1e (3.5)/disk1.img
fdd_01_image_history_01 = F:/Old Software/Drivers/NEC_CD-Rom_Driver.img
fdd_01_image_history_02 = F:/Old Software/OS and Utilities/MS-DOS 6.22/Suppdisk.img
fdd_01_image_history_03 = F:/Old Software/OS and Utilities/MS-DOS 6.22/Disk3.img
fdd_01_image_history_04 = F:/Old Software/OS and Utilities/MS-DOS 6.22/Disk2.img
fdd_01_image_history_05 = F:/Old Software/OS and Utilities/MS-DOS 6.22/Disk1.img
fdd_01_type = 35_2hd
fdd_02_type = none
[Tseng Labs ET4000/w32p Rev. D PCI]
memory = 2
[Sound Blaster 16 #1]
base = 0220
base401 = 0330
irq = 5
dma = 1
dma16 = 5
gameport = 1
opl = 1
control_pc_speaker = 0
receive_input = 1
receive_input401 = 1
[Sound]
sndcard = sb16
Pay close attention to the [Video] section, where the gfxcard is set to mach64gx_pci. This confirms that 86Box is configured to use the ATI Mach64GX video card.
Possible Causes and Solutions
Based on the information gathered, here are some potential causes and solutions to explore:
- Driver Incompatibility: The most likely cause is a driver incompatibility between the ATI Mach64GX drivers and the specific version of Windows 3.11 or 86Box. Try different driver versions specifically designed for Windows 3.11 and the Mach64GX. Look for older or newer versions than the ones already tested. Another option might be to try drivers designed for Windows 3.1 or even DOS, to see if those work any better in this configuration.
- 86Box Configuration: While the configuration seems correct, double-check all video-related settings in 86Box. Experiment with different video renderers (
vid_rendererin the.inifile) to see if one provides better compatibility. Tryqt_opengl,qt_opengl3, andsoftware. - Video Codec Issues: Although the problem seems to be with the video card, it's worth investigating the video codec used in the sample video. Try different video files encoded with different codecs to see if the issue is specific to a particular codec. Consider installing other codecs within the emulated environment and trying these to see if they resolve the display issue.
- Memory Conflicts: Although 16MB of RAM should be sufficient, memory conflicts can sometimes cause video corruption. Try reducing the amount of RAM allocated to the guest OS to see if it resolves the issue. Try reducing it to 8MB, or even 4MB, to see if this makes a difference.
- IRQ or DMA Conflicts: Ensure that there are no IRQ or DMA conflicts between the video card and other devices in the system. Check the device manager in Windows 3.11 to identify any conflicts and reconfigure devices as needed.
- 86Box Version: Make sure you are running the latest version of 86Box, as newer versions often include bug fixes and improved compatibility. While the user stated that they were using the latest nightly build, it's worth checking again to see if there is an even newer version available.
Further Investigation
To further diagnose the issue, consider the following:
- Testing with Other Games/Applications: Determine if the video corruption occurs only with Video for Windows or if it affects other games or applications that use the ATI Mach64GX card.
- Consulting 86Box Community: Reach out to the 86Box community forums or Discord server to see if other users have experienced similar issues and found solutions. The 86Box community is a valuable resource for troubleshooting and resolving emulation-related problems.
- Dumping and Analyzing the Video BIOS: It might be useful to dump the video BIOS from the ATI Mach64GX card and analyze it for any clues about the video corruption. This is an advanced step that requires specialized tools and knowledge.
Conclusion
Resolving video playback issues in emulated environments can be challenging, but by systematically troubleshooting and exploring different configuration options, you can often find a solution. In this case, the key is to identify the specific incompatibility between the ATI Mach64GX drivers and Video for Windows within 86Box. By trying different drivers, adjusting 86Box settings, and investigating potential codec or memory conflicts, you should be able to get your retro videos playing smoothly. Also, make sure your 86Box version is up to date by going to the 86Box website.