Reply 860 of 1565, by legluondunet
- Rank
- Newbie
I can reproduce this issue on Ubuntu 19.10 (I just updated my signature) and Manjaro XFCE Edition 18.2 freshly installed.
I remember where this midi settings came from: GOG Games Dosbox config files.
I can reproduce this issue on Ubuntu 19.10 (I just updated my signature) and Manjaro XFCE Edition 18.2 freshly installed.
I remember where this midi settings came from: GOG Games Dosbox config files.
Nice testing legluondunet; perhaps you're one of the few ECE Ubuntu 19.10 users and this is indeed a new compatibility issues on the latest OS.
Perhap's it's a dependencies issue because when I compile DOSBox ECE on my Ubuntu 19.10, I can not reproduce this issue.
I have this issue only with DOSBox ECE built from official site.
Do you know on which distribution they compiled their builds?
wrote:Do you know on which distribution they compiled their builds?
I'm not sure, but Yesterplay80 will have the answer.
I'm using the latest Linux Mint (Ubuntu based) in a VM to compile ECE. And I can mount CD images just fine, with midi enabled or disabled. So I assume a dependency problem, too.
My full-featured DOSBox SVN builds for Windows & Linux: Vanilla DOSBox and DOSBox ECE (Google Drive Mirror)
how about the non-ECE build, is that one available for linux as well ?
Water flows down the stream
How to ask questions the smart way!
Dosbox Vanilla and Dosbox-x are available also for Linux gamers, it not too difficult to compile them.
wrote:how about the non-ECE build, is that one available for linux as well ?
Yes. Works fine here as well.
My full-featured DOSBox SVN builds for Windows & Linux: Vanilla DOSBox and DOSBox ECE (Google Drive Mirror)
wrote:There are some issues with CD Audio and DOSBox ECE that I have tested and verified.
I've been playing Betrayal At Krondor (the GOG release). If you replace the DOSBox version inside the game's DOSBox folder (which is 0.74) with DOSBox ECE the CD audio will not play. Note: You can select the CD Audio option in the games "Preferences" selection in the main menu. Replacing the DOSBox version inside the game's DOSBox folder with DOSBox SVN the CD Audio still plays properly.
The last working version of DOSBox ECE under this situation is DOSBox ECE r4168. That is, if you replace the DOSBox version inside the game's DOSBox folder with DOSBox ECE r4168 the CD audio plays properly. DOSBox ECE r4170 up until current DOSBox ECE r4288 the CD Audio will not play.
I've narrowed this problem down to the patch ---> AUDIO Patch supporting FLAC, Opus, and MP3 audio tracks :
AUDIO Patch supporting FLAC, Opus, and MP3 audio tracks
Betrayal At Krondor will not play the CD Audio when the patch is in use.
wrote:I've narrowed this problem down to the patch ---> AUDIO Patch supporting FLAC, Opus, and MP3 audio tracks :
AUDIO Patch supporting FLAC, Opus, and MP3 audio tracks
Betrayal At Krondor will not play the CD Audio when the patch is in use.
I'm thinking that this has to be something with the krondor.exe not looking for tracks but being hard coded to look up audio at specific locations on the cd and, for whatever reason, the cd image isn't perfectly matching what the exe is expecting.
I did mount the *.gog image and was able to play the BAK CDDA tracks within Windows 3.11 in DOSbox ECE r4290 using the [MCI] CD Audio driver and the Creative audio software for the SB16. So, the audio tracks will play under DOSbox and the image itself can be mounted and function as a mixed data/audio CD under Windows 3.11.
However, within the game itself, you can hear the CDDA briefly clip in for a fraction of a second before it goes silent again which to me means an alignment issue with the position of the tracks on the virtual iso. I remember long ago having a similar issue with Castlevania - Rondo of Blood on the PC Engine as PCE/TG-16 CDs are just weird in their data structure and back in the day, cd burners and iso software was not great.
My only guess is that the patch is either padding spacing between tracks too much or not enough.
Dagar, Pr3tty F1y,
I've built SVN and ECE from their latest sources on Ubuntu 19.04.
I'm using the intro-screen music to test, with Preferences -> CD Music [checked]
BIN+CUE CD-DA from eXo 4.0 archive, imgmount d krondor.cue -t iso, cd .., run.bat, select 4 CD-DA. Results:
- SVN works fine
- ECE works fine
WAV+ISO's ripped from the BIN+CUE using bchunk. Track 02 has a pregap of 3s and subsequent tracks 2s, with all INDEX 01's set to 00:00:00. Results:
- SVN does not mount the cue
- ECE mounts the cue, but the intro track is played very briefly and then stops
Adding debug statements, during the good BIN+CUE scenario's intro scene, the game asks to play track 16 at the CDROM's redbook absolute minute:second:frame (MSF) offset of 23:32:55.
This MSF value is knowledge the game holds internally and is not derived from the CUE file. However, according to the CUE as parsed by DOSBox, that requested MSF should correspond to track 14. However, because the BIN file is one big sequence of data, DOSBox's CDROM code simply seeks to the requested offset (MSF 23:32:55) and starts playing - and it's actually correct.
However, if you rip your BIN/CUE to broken out WAVs + ISO (using a tool like bchunk) and play those tracks using an audio player, you will find them to be a mess. That is, the audio starts and stops without any connection to the track file's actual start-of-file and end-of-file. So my conclusion is that the CUE file is broken, which makes it not suitable for ripping to broken-out audio tracks.
Fortunately there are other rips out there - http://redump.org/discs/quicksearch/krondor/
The first two are MODE01/2048 (similar to the broken version I have) while the third is a MODE01/2352 rip, which I suspect would extract to broken-out tracks correctly.
I wonder if there is a list of redbook audio DOS games with any playback by redbook offset instead of by track. Is it also possible to efficiently log the event as a warning along with some data? I've also been testing and logging on the redbook audio functions - thank you for the continued improvement of your emulation.
That's great; I'm assuming you're commenting in the DEBUG 1 definition at the top of src/dos/cdrom_image.cpp (ECE) and recompiling to have it show these CDROM request details.
Very nice suggestion to warn when there's a mismatch between the game's expected track number (and offset) versus the 'physical' CDROM's track number as calculated by the cue.
This would immediately indicate that the CD rip (likely) has issues. I like it!
Edit: I haven't seen a list like that; but it certainly would be interesting. Your suggested improvement would make creating such a list possible.
That's exactly what I tried. I tested your code with DEBUG lines active. It is thorough and allowed for evaluation of End of File for a non-file based cue/bin pair (along with eof versus general fail bit error checking).
I hope to eventually test your emulation with cd audio at a lower rate on the bin image file, given that is possible. It would allow the smaller music archive, even if uncompressed, than at the previous default.
Thanks krcroft. Summed up much more eloquently and expertly than me.
After reading through what you said and thinking about my previous experience when the first PCE CD rips of Castlevania: Rondo of Blood came out as bin/mp3, these were the exact same issues.
It's something to do with the fact that after encoding raw CDDA as mp3 (or, in this case, ogg) that the actual duration of the audio is off (I believe it gets padded but don't quote me on that) which would then lead to the cascade of bad side effects like we're seeing here with BaK as every audio track that's off by the expected # of sectors just compounds the problem and throws the alignment off worse.
Now folks did end up working a lot to get Castlevania: Rondo of Blood working (i.e., tweaking cues/editing audio files) because, at the time, internet connections were slow and it was a special game that was never released in the west. However, I don't foresee the same interest in the GOG version of BaK 😉 so that's probably not going to happen here. Also, I'm a bit appalled at GOG even releasing a bin/ogg set. Why they didn't just rip a full bin/cue including all of the original tracks is a bit disappointing (or at the very least, bin/flac).
Thank you for the detailed feedback on this issue kcroft and Pr3tty F1y.
It seems to be an issue with how GOG ripped the CD for Betrayal At Krondor.
I'll stick with the regular DOSBox SVN for this game since it does play the CD Audio.
Here's the GOG cue file for the game if it's of any help:
CATALOG 7<;0>9<1:2299
FILE "bak.gog" BINARY
TRACK 01 MODE1/2352
INDEX 01 00:00:00
FILE "music\bak02.ogg" MP3
TRACK 02 AUDIO
INDEX 01 00:00:00
FILE "music\bak03.ogg" MP3
TRACK 03 AUDIO
INDEX 01 00:00:00
FILE "music\bak04.ogg" MP3
TRACK 04 AUDIO
INDEX 01 00:00:00
FILE "music\bak05.ogg" MP3
TRACK 05 AUDIO
INDEX 01 00:00:00
FILE "music\bak06.ogg" MP3
TRACK 06 AUDIO
INDEX 01 00:00:00
FILE "music\bak07.ogg" MP3
TRACK 07 AUDIO
INDEX 01 00:00:00
FILE "music\bak08.ogg" MP3
TRACK 08 AUDIO
INDEX 01 00:00:00
FILE "music\bak09.ogg" MP3
TRACK 09 AUDIO
INDEX 01 00:00:00
FILE "music\bak10.ogg" MP3
TRACK 10 AUDIO
INDEX 01 00:00:00
FILE "music\bak11.ogg" MP3
TRACK 11 AUDIO
INDEX 01 00:00:00
FILE "music\bak12.ogg" MP3
TRACK 12 AUDIO
INDEX 01 00:00:00
FILE "music\bak13.ogg" MP3
TRACK 13 AUDIO
INDEX 01 00:00:00
FILE "music\bak14.ogg" MP3
TRACK 14 AUDIO
INDEX 01 00:00:00
FILE "music\bak15.ogg" MP3
TRACK 15 AUDIO
INDEX 01 00:00:00
FILE "music\bak16.ogg" MP3
TRACK 16 AUDIO
INDEX 01 00:00:00
FILE "music\bak17.ogg" MP3
TRACK 17 AUDIO
INDEX 01 00:00:00
FILE "music\bak18.ogg" MP3
TRACK 18 AUDIO
INDEX 01 00:00:00
FILE "music\bak19.ogg" MP3
TRACK 19 AUDIO
INDEX 01 00:00:00
FILE "music\bak20.ogg" MP3
TRACK 20 AUDIO
INDEX 01 00:00:00
FILE "music\bak21.ogg" MP3
TRACK 21 AUDIO
INDEX 01 00:00:00
FILE "music\bak22.ogg" MP3
TRACK 22 AUDIO
INDEX 01 00:00:00
FILE "music\bak23.ogg" MP3
TRACK 23 AUDIO
INDEX 01 00:00:00
FILE "music\bak24.ogg" MP3
TRACK 24 AUDIO
INDEX 01 00:00:00
FILE "music\bak25.ogg" MP3
TRACK 25 AUDIO
INDEX 01 00:00:00
FILE "music\bak26.ogg" MP3
TRACK 26 AUDIO
INDEX 01 00:00:00
FILE "music\bak27.ogg" MP3
TRACK 27 AUDIO
INDEX 01 00:00:00
FILE "music\bak28.ogg" MP3
TRACK 28 AUDIO
INDEX 01 00:00:00
FILE "music\bak29.ogg" MP3
TRACK 29 AUDIO
INDEX 01 00:00:00
FILE "music\bak30.ogg" MP3
TRACK 30 AUDIO
INDEX 01 00:00:00
FILE "music\bak31.ogg" MP3
TRACK 31 AUDIO
INDEX 01 00:00:00
FILE "music\bak32.ogg" MP3
TRACK 32 AUDIO
INDEX 01 00:00:00
FILE "music\bak33.ogg" MP3
TRACK 33 AUDIO
INDEX 01 00:00:00
FILE "music\bak34.ogg" MP3
TRACK 34 AUDIO
INDEX 01 00:00:00
FILE "music\bak35.ogg" MP3
TRACK 35 AUDIO
INDEX 01 00:00:00
FILE "music\bak36.ogg" MP3
TRACK 36 AUDIO
INDEX 01 00:00:00
FILE "music\bak37.ogg" MP3
TRACK 37 AUDIO
INDEX 01 00:00:00
FILE "music\bak38.ogg" MP3
TRACK 38 AUDIO
INDEX 01 00:00:00
FILE "music\bak39.ogg" MP3
TRACK 39 AUDIO
INDEX 01 00:00:00
FILE "music\bak40.ogg" MP3
TRACK 40 AUDIO
INDEX 01 00:00:00
FILE "music\bak41.ogg" MP3
TRACK 41 AUDIO
INDEX 01 00:00:00
FILE "music\bak42.ogg" MP3
TRACK 42 AUDIO
INDEX 01 00:00:00
FILE "music\bak43.ogg" MP3
TRACK 43 AUDIO
INDEX 01 00:00:00
FILE "music\bak44.ogg" MP3
TRACK 44 AUDIO
INDEX 01 00:00:00
FILE "music\bak45.ogg" MP3
TRACK 45 AUDIO
INDEX 01 00:00:00
FILE "music\bak46.ogg" MP3
TRACK 46 AUDIO
INDEX 01 00:00:00
FILE "music\bak47.ogg" MP3
TRACK 47 AUDIO
INDEX 01 00:00:00
FILE "music\bak48.ogg" MP3
TRACK 48 AUDIO
INDEX 01 00:00:00
FILE "music\bak49.ogg" MP3
TRACK 49 AUDIO
INDEX 01 00:00:00
FILE "music\bak50.ogg" MP3
TRACK 50 AUDIO
INDEX 01 00:00:00
FILE "music\bak51.ogg" MP3
TRACK 51 AUDIO
INDEX 01 00:00:00
FILE "music\bak52.ogg" MP3
TRACK 52 AUDIO
INDEX 01 00:00:00
FILE "music\bak53.ogg" MP3
TRACK 53 AUDIO
INDEX 01 00:00:00
FILE "music\bak54.ogg" MP3
TRACK 54 AUDIO
INDEX 01 00:00:00
FILE "music\bak55.ogg" MP3
TRACK 55 AUDIO
INDEX 01 00:00:00
FILE "music\bak56.ogg" MP3
TRACK 56 AUDIO
INDEX 01 00:00:00
FILE "music\bak57.ogg" MP3
TRACK 57 AUDIO
INDEX 01 00:00:00
FILE "music\bak58.ogg" MP3
TRACK 58 AUDIO
INDEX 01 00:00:00
FILE "music\bak59.ogg" MP3
TRACK 59 AUDIO
INDEX 01 00:00:00
FILE "music\bak60.ogg" MP3
TRACK 60 AUDIO
INDEX 01 00:00:00
FILE "music\bak61.ogg" MP3
TRACK 61 AUDIO
INDEX 01 00:00:00
FILE "music\bak62.ogg" MP3
TRACK 62 AUDIO
INDEX 01 00:00:00
FILE "music\bak63.ogg" MP3
TRACK 63 AUDIO
INDEX 01 00:00:00
wrote:I did mount the *.gog image and was able to play the BAK CDDA tracks within Windows 3.11 in DOSbox ECE r4290 using the [MCI] CD Audio driver and the Creative audio software for the SB16. So, the audio tracks will play under DOSbox and the image itself can be mounted and function as a mixed data/audio CD under Windows 3.11.
A bit off topic, but I am curious as to why are you using 3.11 to play BaK? It is a DOS game. The CD included a Windows installer, but the game is still a DOS game.
wrote:A bit off topic, but I am curious as to why are you using 3.11 to play BaK? It is a DOS game. The CD included a Windows installer, but the game is still a DOS game.
I actually wasn't using Windows 3.11 to play BaK. I was using Windows 3.11 to play the audio CD tracks from BaK 😉 just to verify that the CDDA was working.
However, from the discussion here, it looks like the mechanism of accessing the audio tracks differs between the krondor.exe executable and Windows 3.11 [MCI] CD Audio which is why the bin/ogg set breaks under the real game but the audio plays from the bin/ogg mounted virtual cd in Windows 3.11.
The CD audio play command is based on a time index, not a track number. It's certainly possible that a game can assume certain indexes are the start of a track, but CD player programs are going to query the start time of each track. Many games do query the track start times; in some cases as a "CD check", in other cases because the user is free to play different background music if desired. Beginning play on an index other than a track start is not necessarily a sign of a problem -- games do that for various reasons, so any message from the system about it would be more a note than a warning.
Good point ripsaw8080; indeed, some games like Jones in the Fast Lane and Stellar 7 use one (or more) huge audio tracks and ask for playback at known offsets within them (for a known duration) to play their short audio sequences and voice quips.
To take your scenarios into account, perhaps we would see what type of lookup the game is using first, and then only flag the cases where the game's assumption about track doesn't match the cue. Would probably involve a tiny bit of book keeping, but should be doable.