I've been trying to get the music working for the Windows 95 port of Dungeon Keeper, and with almost every wrapper I've tried, the CD music will not play. For some reason, the Direct3D version's music plays back just fine. The one time I've gotten Keeper95 to play music is using the full version of DxWnd by enable playing music via audio files. I've tried matching the settings in both DxWnd and the CDAudio Proxy version, and full DxWnd is the only thing that seems to work. Could we perhaps have some...
So here's the scenario: I switched over to DxWnd's CDAudio Proxy for music playback, and because of how Forsaken seems to work, I'm put in a weird position. Launching the game through the main launcher (Forsaken.exe) lets the splash screen and intro movie play, but then the music doesn't seem to work! However, if I launch the game directly (ForsakenHW.exe) then the music works fine, but the splash/intro doesn't play. The only way to get both working at once is if I create an empty virtual CD drive...
I know this was less than a year ago but curious about this for one particular game, Outwars, which reportedly has issues with regards to it having used music from multiple discs. GOG reportedly implemented their own fix but their release is apparently not friendly with certain wrappers. Not sure exactly how it handled multiple audio tracks but it would be a good test case for the original non-GOG release.
Hi. This project was merged in DxWnd, so if you want to get the most up-to-date files you should download DxWnd and pick the files in the "vcda" folder. The instructions in pcgamewiki are very short, I think they don't tell important details. You can find more in DxWnd help pages (in DxWnd help folder). The CDAudio proxy has a configuration file where you can set a debug flag. This way a log file should be created and that would give some more information. If possible, please move this thread to...
Hello, I am trying to get CDAudio proxy to work on midtown madness game. Followed the steps given in the link(https://www.pcgamingwiki.com/wiki/Midtown_Madness#CD_music_does_not_resume_after_pause). However the music does not start at all. Appreciate any help to get it working. Thanks.
You forgot to add: emulatecdaux=1 in winmm.ini ...
Forgive my lazyness, but I'm trying to make my life a little easier merging the handling of the source code of cdaudio proxy and DxWnd, since there are so many similarities and a parallel development. So, in practice the project is merged in DxWnd files, but for anyone who just needs the cdaudio proxy functionalities, the very same files that you could find in DxWnd v2.05.58 are now available in this download area.
For reference until a full release is posted a link to cdaudio proxy fixed mixer/aux volume controls winmm.dll (2.05.58d dev release): https://sourceforge.net/p/dxwnd/discussion/general/thread/255e0ff888/96fc/attachment/winmm.2.05.58d.rar winmm.ini new fields: emulatecdmixer=0 emulatecdaux=1
Mixer control (CD Volume) doesn't working
Here it is. I'm having some trouble testing it on my copy of TM2, would you mind to try it yourself and report? Please, remember that the proxy should work exactly as before unless you add this line to the winmm.ini file: emulatecdmixer=1 if things are not fully satisfactory, better add also this one and post here the winmm.log file that you will find on the game folder after the experiment: log=1
Yes, exactly that. Hopefully the CD volume control will work for Twisted Metal 2 in the options.
Sure. Is there anything that would interest you in particular? I think the most notable change is the CD audio volume mapped to the mixer channels, but maybe you meant something else?
Would an update be possible with the new audio fixes/changes of the new dxwnd version ? That would be great, thanks in advance
Done. Too bad I made a mess with versioning, the sources are in sync with DxWnd v2.05.55, but the proxy version was v2.05.56 already. So, the kit is cdaudioproxy.2.05.56.fx1.rar. You can get it (sources and proxy) in download area.
works great thanks. hope to see this get pushed to main soon.
Sorry, here a better (simpler) fix.
Bug found, fixed & tested on DxWnd. Then I brought the same changes on the proxy, it's untested but hopefully it should work. Let me know, in any case ...
Thanks a lot. The problem exists also on the DxWnd logic, that will make me easier to test a possible fix. Now, let's see whst happens ...
I can do you one better by you just going into the game, pressing tilde (~) to open to command prompt and type "open level045". Do you actually have the game btw? If not, either search out legends world or whatever. I uploaded the OST at least w/ cdaudio proxy to help someone else out who was also interested in the game: https://mega.nz/file/EZs22QYK#jMJeugo1uwmNXOsVDLvBfu07xgaW3Mp1rP0PQtn_4VQ
If you happen to have the game, I can do you one better by you just going into the game, pressing tilde (~) to open to command prompt and type "open level045". Do you happen to have the game btw? If not, either search out legends world or whatever. I uploaded the OST at least w/ cdaudio proxy to help someone else out who was also interested in the game: https://mega.nz/file/EZs22QYK#jMJeugo1uwmNXOsVDLvBfu07xgaW3Mp1rP0PQtn_4VQ
There seems to be a problem here: mciSendCommandA: IDDevice=0xBEEF msg=806(MCI_PLAY) flags=c(MCI_FROM+TO) mciSendCommand>>: MCI_PLAY cb=0 from=0x18fe70 to=0x1bb9a8 > timeformat=MILLISECONDS > dwFrom: 1638000 > EncodeTTMMSS(0018FE70) -> TMS#11:0:0 > mapped from(TMS)=11/0/0 > dwTo: 1817000 > EncodeTTMMSS(001BB9A8) -> TMS#0:0:0 > mapped to(TMS)=0/0/0 > mapped tracks First=11.00.00 Last=11.00.00 The game is issuing a MCI_PLAY command in MILLISECONDS format, where the START is the beginning of track#11...
The log file says that track 11 is being loaded, but I don't hear it play in the level at all. CONTEXT: I go into the game, the game loads track 5 for the main menu. I go and select the final level from level select, the game supposedly loads track 11 but nothing is heard. Music will keep playing in menus usually when I go into it. I go to the menu, I exit, and it always immediately exits so nothing else should happen. For some reason, near the end of the log it says something about a track 0? I...
The log file says that track 11 is being loaded, but I don't hear it play in the level at all. CONTEXT: I go into the game, the game loads track 5 for the main menu. I go and select the final level from level select, the game supposedly loads track 11 but nothing is heard. Music will keep playing in menus usually when I go into it. I go to the menu, I exit, and it always immediately exits so nothing else should happen. For some reason, near the end of the log it says something about a track 0? I...
The log file says that track 11 is being loaded, but I don't hear it play in the level at all. CONTEXT: I go into the game, the game loads track 5 for the main menu. I go and select the final level from level select, the game supposedly loads track 11 but nothing is heard. Music will keep playing in menus usually when I go into it. I go to the menu, I exit, and it always immediately exits so nothing else should happen. For some reason, near the end of the log it says something about a track 0? But...
The log file says that track 11 is being loaded, but I don't hear it play in the level at all. CONTEXT: I go into the game, the game loads track 5 for the main menu. I go and select the final level from level select, the game supposedly loads track 11 but nothing is heard. Music will keep playing in menus usually when I go into it. I go to the menu, I exit, and it immediately exits. For some reason, near the end of the log it says something about a track 0? But I only have 10 tracks total (2-11)...
The log file says that track 11 is being loaded, but I don't hear it play in the level at all. CONTEXT: I go into the game, the game loads track 5 for the main menu. I go and select the final level from level select, the game supposedly loads track 11 but nothing is heard. Music will keep playing in menus. I go to the menu, I exit, and it immediately exits. For some reason, near the end of the log it says something about a track 0? But I only have 10 tracks total (2-11).
The log file says that track 11 is being loaded, but I don't hear it play in the level at all.
No, the CD Audio proxy currently doesn't allow that. One problem would be that CD Audio proxy doesn't intercept the keyboard input, so it wouldn't be possible to send commands to switch disks. Could you name some game that would need this feature? It could be useful for testing in case I could implement anythink like that in the future.
No, the CD Audio proxy doesn't allow that. The problem is that DxWnd sets hooks also to keyboard inputs, so it's possible to define function keys to switch disks on command. On the contrary, CD Audio proxy doesn't intercept the keyboard input, so it wouldn't be possible to switch disks. You could try to use DxWnd setting all emulations off to play the program fullscreen using the CD audio emulation only.
... now yes! By default loggin is disabled, to enable: in winmm.ini: [winmm] #log, 0-1, 1: enables logging, default:0 log=1
New leaked release that should fix the "Asghan" sound emulation. Still some alignment should be done, but soon enough it will be moved to download area.
Maybe I got it: the culprit could be the "renderer" field. If you run the game in fullscreen mode, the "DirectX / renderer" selector should be moved to "none". If it stays on the default value "primary surface" the problem happens. You can fix your configuration this way, while I'm trying to figure out why the "primary surface" renderer is not working as it should in any case.
Maybe I got it: the culprit could be the "renderer" field. If you run the game in fullscreen mode, the "DirectX / renderer" selector should be moved to "none". If it stays on the default value "primary surface" the problem happens. You can fix your configuration this way, while I'm trying to figure out why the "primary surface" renderer is not working as it should in any case.
I uploaded the new stuff (source & libs) in the download area, naming the release 2.05.56 because of the derivation from DxWnd v2.05.55, plus a few enhancements. In particular, this release auto-generates the file winmm.wav (used as dxwnd.wav to reserve a MciId value) in case it doesn't exists. Please, let me know if anything went wrong because my testing capability is currently rather low....
I uploaded the new stuff (source & libs) in the download area, naming the release 2.05.56 because of the derivation from DxWnd v2.05.55, plus a few enhancements. In particular, this release auto-generates the file winmm.wav (used as dxwnd.wav to reserve a MciId value) in case it doesn't exists. Please, let me know if anything went wrong because my testing capability is currently rather low....
Here's the patched version. Fixes: 1) no more MciId = 0. the default is now 0xBEEF 2) in case you set "reservemciid = 1" the file winmm.wav is created automatically The archive has all within, sources & winmm.dll + sample winmm.ini
About the MciId set to 0, you were awfully right: I forgot one essential part of code that is within dxhook.cpp in the procedre HookInit(): if(dxw.dwFlags8 & VIRTUALCDAUDIO) { // auxGetNumDevs is hot-hooked, so pauxGetNumDevs should be set here. // the return of pauxGetNumDevs could be zero! // the device ids start from 0, so VirtualCDAudioDeviceId must be n -1 +1 = n. if(pauxGetNumDevs) dxw.VirtualCDAudioDeviceId = (*pauxGetNumDevs)(); // v2.05.36: pretend there's ALWAYS a first device id = 0 for...
Seems to work fine. A couple of small suggestions: I would put "magicid" on by default. I think there are way more games that need it than those that do not like it. winmm.ini could be autogenerated if not found (code for example in winmm.cpp): FILE *fh; errno_t err; err = fopen_s( &fh, "winmm.ini", "r" ); if( err == 0 ){ fclose(fh); } else{ err = fopen_s( &fh, "winmm.ini", "w+" ); } if( err == 0 ){ fprintf(fh, "[winmm]\n" "\n" "#log, 0-1, 1: enables logging, default:0\n" "#log=0\n" "\n" "#volume,...
Seems to work fine. A couple of small suggestions: I would put "magicid" on by default. I think there are way more games that need it than those that do not like it. winmm.ini could be autogenerated if not found (code for example in winmm.cpp): FILE *fh; errno_t err; err = fopen_s( &fh, "winmm.ini", "r" ); if( err == 0 ){ fclose(fh); } else{ err = fopen_s( &fh, "winmm.ini", "w+" ); } if( err == 0 ){ fclose(fh); } else{ fprintf(fh, "[winmm]\n" "\n" "#log, 0-1, 1: enables logging, default:0\n" "#log=0\n"...
Seems to work fine. A couple of small suggestions: I would put "magicid" on by default. I think there are way more games that need it than those that do not like it. winmm.ini could be autogenerated if not found (code for example in winmm.cpp): FILE *fh = fopen("winmm.ini", "r"); if (fh == NULL){ fh = fopen ("winmm.ini", "w+"); fprintf(fh, "[winmm]\n" "\n" "#log, 0-1, 1: enables logging, default:0\n" "#log=0\n" "\n" "#volume, range 0-100, default 100\n" "#volume=100\n" "\n" "#repeat, 0-1, 1:enable...
Again, mostly untested but working with "Imperialism" and "Corum III", in attach a new release that is even ahead of the last published in DxWnd. winmm2.rar: proxy winmm.dll + sample configuration file winmm.ini. The file is empty, but the comments hopefully work as documentation. cdaudioproxy2.rar: full sources These are the news: 1) added the ReserveMCIId trick. It can be enabled with reservemciid=1 and requires the file dxwnd.wav to lock a mci id. 2) added the magicid trick. Since in so many cases...
Again, mostly untested but working with "Imperialism" and "Corum III", in attach a new release that is even ahead of the last published in DxWnd. winmm2.rar: proxy winmm.dll + sample configuration file winmm.ini. The file is empry, but the comments hopefully work as documentation. cdaudioproxy2.rar: full sources These are the news: 1) added the ReserveMCIId trick. It can be enabled with reservemciid=1 and requires the file dxwnd.wav to lock a mci id. 2) added the magicid trick. Since in so many cases...
Again, mostly untested but working with "Imperialism" and "Corum III", in attach a new release that is even ahead of the last published in DxWnd. winmm2.rar: proxy winmm.dll + sample configuration file winmm.ini. The file is empry, but the comments hopefully work as documentation. cdaudioproxy2.rar: full sources These are the news: 1) added the ReserveMCIId trick. It can be enabled with reservemciid=1 and requires the file dxwnd.wav to lock a mci id. 2) added the magicid trick. Since in so many cases...
Again, mostly untested but working with "Imperialism" and "Corum III", in attach a new release that is even ahead of the last published in DxWnd. winmm2.rar: proxy winmm.dll + sample configuration file winmm.ini. The file is empry, but the comments hopefully work as documentation. cdaudioproxy2.rar: full sources These are the news: 1) added the ReserveMCIId trick. It can be enabled with reservemciid=1 and requires the file dxwnd.wav to lock a mci id. 2) added the magicid trick. Since in so many cases...
Testing with "Civ2 Test of Time" I tried forcing "VirtualCDAudioDeviceId = 1" but it did not work. Then I noticed there is still "#define MAGIC_DEVICEID 0xBEEF" in mciplayer.h so I edited line 1309 in mciwrapper.cpp to this: //parms->wDeviceID = VirtualCDAudioDeviceId; parms->wDeviceID = MAGIC_DEVICEID; That worked but is probably not the ideal solution.
This new version is missing the logic to make sure VirtualCDAudioDeviceId is never zero. So several games will be mute.
Also someone was asking for an option to disable winmm.log creation. OutTrace.cpp with logging toggle: #define _CRT_SECURE_NO_WARNINGS #include "windows.h" #include "stdio.h" #include "varargs.h" #define DXWMAXLOGSIZE 4096 void OutTrace(const char *format, ...) { BOOL WINMMLOGGING = GetPrivateProfileInt("winmm", "logging", 1, ".\\winmm.ini"); if (WINMMLOGGING) { va_list al; static FILE *fp=NULL; // GHO: thread safe??? char sBuf[DXWMAXLOGSIZE+1]; if (fp == NULL) { fp = fopen(".\\winmm.log", "w+");...
Here an archive with the dll & sources aligned to last release v2.04.54 (actually, this release od DxWnd isn't released yet ...). Would someone help me to test it? I'm running without a good testbed.
Current version of the stand alone CDAudio proxy is based on Dxwnd v2_05_08 (including dwplay.dll). Below is a list of improvements in Dxwnd CD audio emulation since then. v2.05.51 add: [mciwrapper.cpp] added RESERVEMCIDEVICE flag v2.05.50 fix: [winmm.cpp] fixed routing of MCI messages to CD audio emulation, now based on the effective virtual device ID opened by MCI_OPEN and until MCI_CLOSE. Fixes "Gooch Grundy's X-Decathlon". v2.05.47 fix: [mciwrapper.cpp] in mciSendString wrapper, handling of "open...
I've been wondering if there's a way to toggle off the .log files that CDAudio proxy generates.
First of all, I can't thank you enough for how great both of these projects (CDAudio Proxy and DxWnd) are, and how invaluable they have been in allowing me to keep playing old games in new hardware, in many cases running better than they ever did in period appropriate hardware and software. So, here is my question: In DXWnd, I know that I can create multiple folders (music, music02) when I'm dealing with games that have different redbook audio tracks across 2 or more discs. Is the same true for CDAudio...
Oh, my! I forgot to subscribe to my own project! This is why I didn't notice Albert's post here. I'll put these two games in the checklist for testing, but before I think I should align this mci wrapper to the many improvement and fixes that I made on the DxWnd original code. But in general I think that it would be better to post tech notes on the DxWnd dedicated thread here https://sourceforge.net/p/dxwnd/discussion/general/thread/0d852410/ because is more frequently read by other guys ... at least...
Oh, my! I forgot to subscribe to my own project! This is why I didn't notice Albert's post here. I'll put these two games in the checklist for testing, but before I think I should align this mci wrapper to the many improvement and fixes that I made on the DxWnd original code.
Hey, thought I'd start a thread to document games I play that don't seem to wanna work with this wrapper, and I suppose it'll help out dxwnd too if it is also having these problems. I have two games I've tried out recently, AI Wars: The Awakening and O.D.T. - Escape...Or Die Trying. The former has no CD checks but only works with CD audio when a CD is actually mounted (possibly doing a hard CD check or something built in?), but the latter really is a problematic game when it comes to it's CD. I had...