Describe the bug
Basically resetting the DSP should return 0AAh from the DSP when working properly. However, independent of the time waiting for the reset to be done, the value 0AAh is not returned, but 004h.
I've written SoundLib, and its reset procedure cannot detect the SB due to this routine not working properly. Note that I've tested this on real hardware, with a multitude of original SB and clone cards, and they all work the same way, returning 0AAh upon reset.
https://crossfire-designs.de/index.php?lang=de&what=sourcecode&name=sl2.htm
DESCRIPTION
Performs complete reset of DSP, terminating all pending operations.
PROCEDURE
a) Write 001h
b) Wait 3.3жs minimum
c) Write 000h
d) Wait 100жs maximum for DSP Data Available (02x0Eh)
e) Read 0AAh from DSP Read Data (02x0Ah) <<<<<
NOTES
ю Reset of DSP disables speaker (see DSP command 0D3h).
To Reproduce
Here's the Pascal code to reproduce it:
Describe the bug Basically resetting the DSP should return 0AAh from the DSP when working properly. However, independent of the time waiting for the reset to be done, the value 0AAh is not returned, but 004h.
I've written SoundLib, and its reset procedure cannot detect the SB due to this routine not working properly. Note that I've tested this on real hardware, with a multitude of original SB and clone cards, and they all work the same way, returning 0AAh upon reset. https://crossfire-designs.de/index.php?lang=de&what=sourcecode&name=sl2.htm
By the development manual from gamedev.net: http://archive.gamedev.net/archive/reference/articles/article443.html
02x06h DSP - Reset Write SB
To Reproduce Here's the Pascal code to reproduce it:
NOTE: b is 04h every time on PCem, instead of being 0AAh, so resetting always fails.
Expected behavior As described, 0AAh should be returned from the DSP.
Emulator configuration
Additional context Add any other context about the problem here.