Page 1 of 1
DIGIPLAY
Posted: April 30th, 2013, 6:08 pm
by musa
DIGIPLAY plays Prince of Persia 1 digital sounds on the Sound Blaster.
Make sure your Sound Blaster port is at 0x220 and your DMA channel is 1. Also make sure that the sounds are extracted by PR with --raw option.
Note: May not work on all systems.
Re: DIGIPLAY
Posted: April 30th, 2013, 7:02 pm
by Norbert
Apparently the backup that poirot gave me after the website went down didn't include this thread either.
Last 1 or 2 weeks of March 2013 didn't survive, I'm afraid.
However, surely we have everything relevant back now...
Re: DIGIPLAY
Posted: April 30th, 2013, 7:46 pm
by musa
What are you talking about? I released the tool today.
Re: DIGIPLAY
Posted: April 30th, 2013, 8:01 pm
by Norbert
musa wrote:What are you talking about? I released the tool today.
I was talking about
PCSPLAY.
Also PLAY by musa. This is something else though; missed that.

Re: DIGIPLAY
Posted: April 18th, 2014, 3:07 pm
by musa
I've released DIGIPLAY v1.1.
New:
Fixed bug with DSP so it should work with DosBox.
Re: DIGIPLAY
Posted: April 19th, 2014, 2:17 pm
by David
I just tried it, it works in DOSBox.
The only bug I found is that the player seems to wait too long after the sound is played.
I'd guess that this line is wrong:
Size is in samples, but delay() expects milliseconds.
The line should be:
(Or perhaps round up instead of down?)
I made this change, recompiled with Turbo C, and now it works correctly.
Some other things:
*
i and
count_values are declared but not used.
*
fil could be an
int instead of
long.
* DIGIPLAY won't play sound 10015 (level door opening) because it begins with 0x81 instead of 0x01. That means that the sound is looped in the game.
Re: DIGIPLAY
Posted: November 16th, 2014, 5:19 pm
by musa
DIGIPLAY v1.2 is out! You can now play PoP2 sounds (but not compressed sounds).
Re: DIGIPLAY
Posted: November 17th, 2014, 4:00 pm
by Norbert
I'm curious...
I understand that
sets dsp_reset to 1, but what does, for example,
do?
Both of these seem to be values; neither are variables?
Re: DIGIPLAY
Posted: November 17th, 2014, 5:15 pm
by David
Norbert wrote:outp(dsp_reset, 1); sets dsp_reset to 1
outp() does not set any variables.
outp(x,y) will output the byte y on the I/O port with address x. Both x and y can be any expression.
Its pair, inp(x) will input a byte from I/O port x and returns it.
The dsp_* variables contain I/O port addresses of the Sound Blaster. (Assuming base=0x220.)
Norbert wrote:but what does, for example, outp(0xa, 5); do?
That and the following outp() calls set up the DMA controller as needed for sound playback. (Using DMA channel 1.)
(PRINCE.EXE does exactly the same port writes, search for "set_dma" in the disassembly.)
Re: DIGIPLAY
Posted: November 17th, 2014, 5:28 pm
by Norbert
Oh, okay.
