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

isa/sblaster.cpp: Prince of Persia freezes between levels when Sound Blaster is configured #12308

Open
synthic opened this issue Apr 25, 2024 · 2 comments

Comments

@synthic
Copy link

synthic commented Apr 25, 2024

MAME version

0.265

System information

Windows 7 64-bit

INI configuration details

No response

Emulated system/software

ct486, isa2:sblaster_16

Incorrect behaviour

At the end of any level in Prince of Persia for MS-DOS, the game freezes upon the exit door opening or closing and the sound gets stuck in a loop.

Expected behaviour

Being able to finish the level and have the sound output properly without the game crashing.

Steps to reproduce

This issue occurs on the ct486 / at486 machines when any Sound Blaster card is attached to an ISA slot and Prince of Persia 1.3 is configured to use Sound Blaster for sound effects. I am running a clean installation of MAME and booting into the ct486 core from the msdos622 disk image. I then installed the game from the ppersia35 disk in the software list and chose Sound Blaster in the setup utility before launching. At the end of the first level when opening the exit door, the game crashes entirely. Instead of having to play through the first level to reproduce this, you can launch the game using the command PRINCE IMPROVED 2 to skip straight to the second level and trigger the crash immediately. My full command line is below.

mame ct486 -ramsize 16M -hard msdos622 -isa1 svga_s3 -isa2 sblaster_16

At first I assumed this was an issue with the core and was going to report it as such, but now I believe the issue lies in the sblaster device files because after some searching I stumbled on the exact issue happening with the ao486 MiSTer core. More information is available at the following issue: MiSTer-devel/ao486_MiSTer#34

In that issue there is a pull request referenced which seems to fix the problem. This goes over my head a bit, but apparently it is due to the game and DSP being deadlocked waiting on each other. Hopefully this fix can be evaluated and added back into MAME if applicable: MiSTer-devel/ao486_MiSTer#88

Additional details

No response

@angelosa
Copy link
Member

Out of comprehension, if I use the cheat command it also triggers what it seems a manual copy protection, I gather it's unrelated?

0862

@synthic
Copy link
Author

synthic commented Apr 27, 2024

That is unrelated, yes. It pops up during normal play once you pass the first level. After pressing a key, the door closes and the game freezes for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants