Skip to content

Gravis Ultrasound midi playback doesn't work from commit c30d5d9 #3645

@Kappa971

Description

@Kappa971

Describe the bug
A clear and concise description of what the bug is.

Hi. I'm emulating a 486 computer (ASUS PCI/I-486SP3G, Intel DX4 100 MHz, 16 Mb RAM, Sound Blaster 16, Gravis Ultrasound, MS-DOS 6.22/Windows 3.11) and I found that with the latest 86Box development builds, the Gravis Ultrasound midi emulation is broken.
I did several tests, I tried different motherboards, different IRQ and DMA addresses, I removed the Sound Blaster 16, no expanded memory, no other drivers loaded, but nothing... If I run the PLAYMIDI program integrated in the GUS drivers and play one of the included midi files, the emulation crashes while loading instruments. I also tried a game (Doom) and it crashes after loading, showing a graphical artifact. Only MOD playback (eg Epic Pinball) works.
I use the GUS 4.11 driver. I also tried the GUS 2.05 drivers but same problem.
With 86box v3.11, Gravis Ultrasound MIDI playback works.

To Reproduce
Steps to reproduce the behavior:

  1. Download one of the latest 86box builds
  2. Emulate a MS-DOS machine with Gravis Ultrasound
  3. Install GUS 4.11 drivers and run SETUP.EXE in C:\ULTRASND (or in the folder where you installed) after installation to set IRQ and DMA addresses (SETUP.EXE should automatically run after driver installation)
  4. Navigate to C:\ULTRASND and run PLAYMIDI.EXE or MIDIDEMO.BAT

Screenshots
If applicable, add screenshots to help explain your problem.
scr1
scr2
scr3
scr6

The emulation freezes:
scr4
scr5

Works well with 86Box v3.11/v4.0 before commit c30d5d9:
scr7

EDIT
With 86Box builds where GUS MIDI playback works, there are also some strange problems:

  • In Rise of the Triad the midi music seems to "slow down" in specific points of the track (I tried the first level).
    Surprisingly it works on 86Box 4.0 b5000 too (The only game/program), but I notice the same problem.
  • In Doom, using GUS as a music playback device causes frequent stuttering or freezing (sometimes for a second) in some points of the map (I only tried E1M1 and E1M2).

I tried different motherboards, ISA and PCI video cards, with the ASUS PVI-486SP3C I tried to change the ISA Bus clock (as read in a forum), tried with different DMAs, with 86Box v3.11/4.0 before commit, 32/64bit new/old dynarec, nothing seems to fix these problems.

Desktop (please complete the following information):

  • OS: Windows 11
  • Host CPU: AMD Ryzen 7 5700x
  • 86Box version: Latest v4.0 builds, GUS MIDI playback broken from commit c30d5d9 Aug 7 2023 03:04:52
  • Build information: new/old dynarec, 32-bit and 64-bit

Additional context
Add any other context about the problem here. If you are using an Optimized build, make sure to try the regular build too before filing a bug report!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions