First post, by PCGamingTimeMachine
Hi everyone, I've been working on adding CD audio support to the excellent VSBHDA, SHSUCDX and SHSUCDHD programs for a couple of months. Before I go ahead, I'd like to give a disclaimer + assurance:
AI help was used for bootstrap code for some functionalities, debugging and code cleanup/formatting. However I did manually verify everything and manually built on top of initial bootstrap code blocks if AI was used. I think it's fair since a large chunk of the effort was manual and I tried my best to review everything. Plus without AI help with debugging this project would've taken much longer.
I also acknowledge I'm nowhere nearly as good or experienced of a DOS programmer as the original authors of VSBHDA (and every other software it's based on) and authors of SHSUCD. So I'd be very grateful for any feedback, suggestions or comments from the more experienced DOS/system programmers. The code is very likely far from perfect.
With that said, I'm at the stage where the modified programs work and I'm comfortable releasing this as a pre-alpha.
Links:
- https://github.com/PCGamingTimeMachine/VSBHDA … s/tag/Pre-alpha
- https://github.com/PCGamingTimeMachine/shsucd … s/tag/Pre-alpha
Modified SHSUCDX + VSBHDA allow you to run games with Red Book / mixed-mode CDs, and get fully working in-game and CD audio. Please go through README.txt in the modded shsucd and VSBHDARB.txt in the modded VSBHDA packages, respectively.
Quick usage guide if you have a physical CD drive:
1. Load the CD driver in config.sys. What works well for me: DEVICEHIGH=UIDE.SYS /D:MSCD001 /N1 /UX
2. Run modified SHSUCDX via: SHSUCDX /D:MSCD001 /A:1
3. Run vsbhdarb.exe via: VSBHDARB /CDA
You can also get such games working without a CD drive if you additionally use the modded SHSUCDHD program. Basically in that case you'll have to convert a .bin/.cue image set for a Red Book game to a CD metadata (.CDM) + consolidated BIN format (I've included instructions for that in the modded SHSUCD release's README.txt). Then you will need to run:
1. SHSUCDHD /F:<path to CDM file>
2. SHSUCDX /D:SHSU-CDH /A:1
3. VSBHDARB /CDA
I'll edit this post with more details and instructions later on, but I hope this is sufficient info for you to get started. Please back up your DOS partition before trying it in a bare-metal DOS machine - I've not faced any issues so far on my own PC or 86Box VMs, but it's not possible for me to test it on all possible hardware configurations. So just to be safe, please back up.
Please let me know if you have any questions and I'll try my best to answer.
Demo for physical CD + modded SHSUCDX + modded VSBHDA: https://youtu.be/QUDK3KzQmc8
Limitations (as far as I'm aware of)
- The CPU does quite a bit of heavy-lifting in not just running the game and emulating digital audio, but also doing raw reads from the game CD and mixing that into the regular audio stream, so this probably won't work well on older computers with period-accurate processors
- Raw read speed also depends on the CD drive's speed, so performance may vary from one CD drive to another. e.g. in my case a SATA CD/DVD drive performed better than an IDE CD drive
- Modified SHSUCDX works with UIDE, UIDEJR and GCDROM drivers, but may not necessarily give CD audio functionality (even if invoked via appropriate flag during SHSUCDX initialization) with some other CD drivers. I'm not sure why that is but I'll try to figure it out eventually