VOGONS


First post, by dosmuffin

User metadata
Rank Newbie
Rank
Newbie

Hi all, I'm new here. I'm having a problem with the CD Audio in Blood. The CD tracks only play once, but doesn't repeat like it should. I know it used to loop because I used to play it back in the day on a P1 Win98 machine. I'm using DOSBox 0.74.

Here is what I've tried:
Note: D:\ is my physical drive, G:\ is my virtual drive

mount d g:\ -t cdrom
mount d g:\ -t cdrom -ioctl
mount d g:\ -t cdrom -ioctl -usecd 0
mount d g:\ -t cdrom -ioctl -usecd 1

mount d d:\ -t cdrom
mount d d:\ -t cdrom -ioctl
mount d d:\ -t cdrom -ioctl -usecd 0
mount d d:\ -t cdrom -ioctl -usecd 1

imgmount d "F:\PC Games\One Unit Whole Blood\Disc Image\BLOOD_121.cue" -t iso

Anything after -t cdrom didn't make a difference in audio quality.

Using default sound values for .conf file.

Anyone have any ideas why the CD Audio isn't looping? Using Win7 x64.

Reply 4 of 14, by bloodbat

User metadata
Rank Oldbie
Rank
Oldbie

To use a diff patch, you must apply it to the sources and recompile DosBox yourself.
My build is fairly up to date with the SVN sources and does include something related to MSCDEX.
You can get it here
DosBox build with Munt emulator.

Reply 5 of 14, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Straight SVN source is recommended for testing changes, or the test results could be erroneous.

Regularly updated SVN builds are available at: http://www.emucr.com/search/label/DOSBox
Use the latest one labeled "DOSBox SVN r????".

Reply 6 of 14, by dosmuffin

User metadata
Rank Newbie
Rank
Newbie

I tried your build, bloodbat, but the CD Audio still wouldn't loop 🙁 As for recompiling the DOSBox source code, could anyone tell me or point me in the direction of which file or files need to be patched with the .diff file? I know how to compile source code in an IDE, I'm just not sure where to apply that specific .diff patch... Idk even know if that patch will fix the problem for Blood. It seems like it was tailored for Redneck Rampage only. What do you guys think I should do?

Reply 7 of 14, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

In DOSBox, playing is stopped when tracks reach their end. It requires the game to issue a command to play the same track again, or another track, which Blood does not do. Perhaps the current behavior is not correct because of some deficiency in the emulation, but it would help to have the looping verified on MSDOS with MSCDEX and a specific version of Blood.

wd, one of the DOSBox devs, suggested that some CDROM drivers may automatically loop tracks on their own, and that behavior would be independent of MSCDEX.

Reply 8 of 14, by dosmuffin

User metadata
Rank Newbie
Rank
Newbie

Maybe rip's .diff patch would work then:

ripsaw8080 wrote:

The issue with Redneck Rampage was that MSCDEX is not aware that the cdrom device has stopped playing when a track reaches its end, and the next sequential track would not automatically start playing. The attached patch updates the MSCDEX play/pause state from the device, rather than using the result of the pause function. Stopping audio play is still handled as a resumable pause, but only if the device is actually playing. Tested with ShadowCaster CD and Redneck Rampage using IMGMOUNT, MOUNT -cdrom, and MOUNT -cdrom -ioctl_dx

Could anyone tell me how to merge the patch with the DOSBox source code?

Attachments

  • Filename
    mscdex_stop_audio.diff
    File size
    1.04 KiB
    Downloads
    331 downloads
    File license
    Fair use/fair dealing exception

Reply 9 of 14, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

A somewhat different version of that patch is already in SVN. Also, it was not intended to fix Redneck Rampage, it was intended to fix ShadowCaster without breaking Redneck Rampage. AFAIK, it will not influence looping of audio tracks in Blood.

Reply 11 of 14, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I remember that different versions do different stuff, like v1.0 uses different IOCTL functions than v1.11, and OUWB is also different. I have OUWB 1.21, and I'll take a look at it again. It takes a long time for some tracks to get to the end, so it's not easy to test. 😒

EDIT: I think I've found what is keeping Blood from looping the audio tracks. Will do some more testing, and then post a diff if I'm not just imagining it.

Reply 12 of 14, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The attached patch fixes the looping (track-restarting). RBIL info here. Blood v1.0 issues an explicit stop command when tracks end, but later versions of Blood and OUWB are looping with the patch.

Another small fix is included that stops Blood v1.0 from forever issuing a "load media" command because DOSBox mistakenly returns an error. It has no perceptible effect when playing, but the game shouldn't have to waste the processing.

Attachments