VOGONS

Common searches


dosbox-staging (DOSBox Git repo)

Topic actions

Reply 40 of 219, by dreamer_

User metadata
Rank Member
Rank
Member

I don't know what was posted and by whom, but people, let's keep this thread civil and on-point. I bet DOSBox maintainers will look at 2nd patch series when they'll have time and include the patches that are appropriate for merging - or leave feedback about what needs to be improved.

As for list of patches/improvements that I plan to include (sooner or later) in dosbox-staging, cleanup existing patches, and re-submit for inclusion in DOSBox SVN:

  • work ongoing (high priority) krcroft's CD-DA improvements (this is a prerequisite for further improvements)
  • work ongoing (high priority) SDL2 - you can read more about it here: https://github.com/dreamer/dosbox-staging/issues/29
  • (low priority) Nuked OPL3 - small patch, but some small improvements are needed
  • (low priority) Munt/MT-32 patch - needs improvements to enable conditional compilation, so it won't break existing builds
  • (low priority) Pixel-perfect scaling - I'm not sure if this patch is needed after SDL2 will be implemented, but probably yes
  • (low priority) CGA Composite Mode - I haven't investigated this change at all yet, but I find it quite important
  • (medium priority) Improve OpenGlide patch and merge it - current version of patch is not SDL2 compatible and patch does not work in a number of scenarios, SDL2 takes priority over it for now
  • (high priority) jmarsh's dynrec/WX patch for - very important, but needs more testing and is awaiting proper review
  • (implemented only in Boxtron so far) Fixes for bugs in mount/imgmount path handling
  • (implemented only in Boxtron so far) More user-friendly default settings
  • (low priority) Better .cue files parser, that won't trip over invalid, but workable .cue files
  • (high priority) Modern buildsystem
  • (high priority) Automated regression testing
  • (high priority) Unit tests
  • (medium priority) Vulkan renderer (but SDL2 needs to be implemented first)
  • (medium priority) Implement new hardware accelerated renderer for macOS (because OpenGL is being dropped by Apple) - using either Metal or MoltenVK

… and a number of smaller improvements, some new features that were flying around, etc.

| ← Ceci n'est pas une pipe
dosbox-staging

Reply 42 of 219, by dreamer_

User metadata
Rank Member
Rank
Member

Regarding CGA composite: where's the documentation? How to turn it on? Wiki explicitly says, that it is NOT supported. Also, there are additional unmerged patches with the improvements in the thread…

| ← Ceci n'est pas une pipe
dosbox-staging

Reply 43 of 219, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

The CD-DA improvements allow for playback of CD audio in DOS, but the position on any audio track is not updated while playing. Tested with open cubic player that displays the track position and a cue/bin pair for the music.

Reply 44 of 219, by dreamer_

User metadata
Rank Member
Rank
Member
hail-to-the-ryzen wrote:

The CD-DA improvements allow for playback of CD audio in DOS, but the position on any audio track is not updated while playing. Tested with open cubic player that displays the track position and a cue/bin pair for the music.

Thanks for the report 😀 We're going to track the status here: https://github.com/dreamer/dosbox-staging/issues/38

| ← Ceci n'est pas une pipe
dosbox-staging

Reply 45 of 219, by krcroft

User metadata
Rank Member
Rank
Member

@hail-to-the-ryzen, @dreamer - thank you!

Games don't often query the current playback MSF position, so using a CD player utility (and catching this) was very helpful.

Draft fix is here: https://github.com/dreamer/dosbox-staging/arc … dda-merge-5.zip

Let me know if it works for you!

Screenshot show the queries OCP is making to find the track position:

2019-11-09_09-26.png
Filename
2019-11-09_09-26.png
File size
269.48 KiB
Views
375 views
File license
Fair use/fair dealing exception
Last edited by krcroft on 2019-11-09, 20:32. Edited 1 time in total.

Reply 46 of 219, by krcroft

User metadata
Rank Member
Rank
Member

Another small improvement regarding this current track position, if you want to give it a try.

Sources: https://github.com/dreamer/dosbox-staging/arc … dda-merge-5.zip

Changelog: https://github.com/dreamer/dosbox-staging/com … 1ff7ef1f60dc60f

"This hoists the current position calculation out of the mixer's callback loop (removing 4 math calculations performed 1000 times per-second), and into the GetAudioSub() function.

This change makes the position calculation lazy: the calculation will only be performed on-demand when a DOS application asks for the position, otherwise (for most games) this calculation and call never occur.

This also allows us to remove the currRedbookFrame member variable from our player class, freeing one integer from the stack."

Reply 47 of 219, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Your commit restores the track position counter in open cubic player. However, the Windows 3.1 media player does not support CD audio playback. Haven't tested this issue in other dosbox builds yet.

Reply 48 of 219, by krcroft

User metadata
Rank Member
Rank
Member

Thanks for the check; anything else you can beat it up with will be much appreciated! Sampling rates other than 44.1KHz are supported as are mono streams (across flac, opus, wav, w64, ogg, and mp3 codecs).

Reply 49 of 219, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Thank you.

In DOSBox-SVN, GetAudioSub() only returns false if (cur_track < 1). However, the latest dosbox-staging commit also returns false if (player.remainingTrackFrames <= 0). The return values should follow the SVN method.

Reply 50 of 219, by dreamer_

User metadata
Rank Member
Rank
Member
hail-to-the-ryzen wrote:

In DOSBox-SVN, GetAudioSub() only returns false if (cur_track < 1). However, the latest dosbox-staging commit also returns false if (player.remainingTrackFrames <= 0). The return values should follow the SVN method.

For the record, "latest commit" is subject to interpretation - in this case, I think it referred to the branch with next batch of CD-DA changes (which is being reviewed, not merged to master yet)? It's helpful to refer to the branch by name (or at least a commit id) - also, anyone can leave comments directly in review. Being precise makes it easier for a developer to address the issue 😀.

| ← Ceci n'est pas une pipe
dosbox-staging

Reply 51 of 219, by krcroft

User metadata
Rank Member
Rank
Member
hail-to-the-ryzen wrote:

Thank you.

In DOSBox-SVN, GetAudioSub() only returns false if (cur_track < 1). However, the latest dosbox-staging commit also returns false if (player.remainingTrackFrames <= 0). The return values should follow the SVN method.

@hail-to-the-ryzen, Thanks for the feedback.

Regarding reverting the logic because it needs to match SVN: even if we conclude that's technically correct, I'd rather the reason be based on a logical argument; please feel free to tear into my code and lay bare any issues (I'm positive you did this but withheld the damning evidence because you're a gentleman!). But yes; please do, and we'll keep improving it together! (and everyone benefits).

There were a couple things I didn't like with the current logic - first is that the conditional prevents GetAudioSub() from hitting the "100%" played mark; instead it will come up shy. I also didn't like how this "remaining tally" (a decrementing counter) now was being used to describe the amount played back (an incrementing counter): the variable was inverted from its intended use. So I flipped it to the positive, renamed the members accordingly, and expanded on some rationale in a couple comments.

Let me know if this commit hones this logic - https://github.com/dreamer/dosbox-staging/com … ff0c3dbcc31f3ce, regards.

Last edited by krcroft on 2019-11-10, 10:56. Edited 1 time in total.

Reply 52 of 219, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Your above commit seems good. However, I am unable to test it alongside the commit that moved the CD volume code from the callback. The CD volume and related commits appeared under active development, so I was not surprised that there were some issues in CD audio playback that were resolved by reverting to the main dosbox-staging branch. Given it is useful, it should be possible with time to test your above commit in the main branch.

Reply 53 of 219, by krcroft

User metadata
Rank Member
Rank
Member

Thanks for the testing; would you consider trying the current branch's source? (https://github.com/dreamer/dosbox-staging/arc … dda-merge-5.zip). It includes the recent change plus prior changes (such as the CD volume relocation). I understand you would prefer to to do one-off testing; but I agree - it's not easy to separate the last handful of changes because they overlap in areas. Maybe there's some git cherry-picking magic that would help here, but that's beyond my git-foo.

Reply 55 of 219, by krcroft

User metadata
Rank Member
Rank
Member
hail-to-the-ryzen wrote:

Your commit restores the track position counter in open cubic player. However, the Windows 3.1 media player does not support CD audio playback. Haven't tested this issue in other dosbox builds yet.

Came across this Magic School Bus-related article mentioning that installing the MCI CD Audio driver "allows your computer to play music from compact discs that are in the Compact Disk-Digital Audio (CD-DA; Redbook) format" -- https://jeffpar.github.io/kbarchive/kb/148/Q148798/ The link they provide to Microsoft's MCI installer is broken though.

Last edited by krcroft on 2019-11-11, 00:20. Edited 1 time in total.

Reply 56 of 219, by collector

User metadata
Rank l33t
Rank
l33t

Found it here.

https://www.driverguide.com/driver/detail.php … V93TpO0KCTobnXy

The Sierra Help Pages -- New Sierra Game Installers -- Sierra Game Patches -- New Non-Sierra Game Installers

Reply 59 of 219, by krcroft

User metadata
Rank Member
Rank
Member

@hail-to-the-ryzen,
This branch of the CD-DA buffer and code reduction work is near completion, with channel mapping being the last issue flagged (thank you ripsaw8080) and addressed last night.

If you have cycles to give it another go, your testing and feedback is much appreciated. Source for the branch is at: https://github.com/dreamer/dosbox-staging/arc … dda-merge-5.zip

@ripsaw8080 suggested testing with Chronicles of the Sword (CotS) as one game that makes use of channel mapping (which I've tested on my system). I've also tried a handful of other CD-DA games (that adjust the volume), along with all the codecs; the more eyes the better.

PS- CotS is also one of the few games where the MP3 format's support for decoupled Left-Right (LR) encoding (as opposed to joint or mid-side channel encoding) is warranted and works very well in this case versus Opus and Vorbis. If you use LAME to encode, use the -m simple flag.