Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MEGAMID hangs while resetting the SB DSP if used with the /sbmidi program argument. #57

Open
barotto opened this issue Dec 25, 2020 · 0 comments
Labels
not a bug It's the PS/1's nature wontfix

Comments

@barotto
Copy link
Owner

barotto commented Dec 25, 2020

After the Sound Blaster DSP reset, MEGAMID reads the DMA channel 0's current count register (port 0x01) to see if its value is 0, otherwise it waits indefinitely.

The PS/1 BIOS POST procedure tests the DMA controller writing all its registers with the 0xAA value without clearing them afterwards, so when MEGAMID reads port 0x01 looking for 0 it ends up hanging.

Verified also on DOSBox, which won't hang as it starts with all DMA registers cleared.

Not verified on real hardware (I need a Sound Blaster) but AFAIK the DMA controller won't clear its channels' registers on RESET so I expect MEGAMID to hang on a real PS/1 too.

This is a MEGAMID's bug which manifests itself on the PS/1, so everything "works" as intended.

@barotto barotto added the not a bug It's the PS/1's nature label Jan 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
not a bug It's the PS/1's nature wontfix
Projects
None yet
Development

No branches or pull requests

1 participant