VOGONS


Sound Driver Pack

Topic actions

Reply 60 of 79, by llm

User metadata
Rank Member
Rank
Member
Akuma wrote on 2022-05-04, 13:43:
llm wrote on 2022-05-01, 09:10:

is the latest version of such a driver always the best for dosbox or are there games that need specific versions?

im thinking about reversing some of the drivers and looking for the right versions when used with dosbox

IF it works, yes, but there lays the problem, I always start with SB1.0 and work my way up.

what does "it works" mean - just sounds or good sounds (i don't know if there are even difference between the versions)

and the good version-nr is then game related?

Reply 61 of 79, by Akuma

User metadata
Rank Member
Rank
Member
llm wrote on 2022-05-04, 15:00:
Akuma wrote on 2022-05-04, 13:43:
llm wrote on 2022-05-01, 09:10:

is the latest version of such a driver always the best for dosbox or are there games that need specific versions?

im thinking about reversing some of the drivers and looking for the right versions when used with dosbox

IF it works, yes, but there lays the problem, I always start with SB1.0 and work my way up.

what does "it works" mean - just sounds or good sounds (i don't know if there are even difference between the versions)

and the good version-nr is then game related?

If it produces sound that sounds right.
But if its off because it plays distorted or too fast, thats an issue.

Afaict a "good-version" is the latest release of a version. I'd rather have a 1.20 than a 1.01
1.x seems to work with most games I tested, but ymmv

Reply 63 of 79, by Gmlb256

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for the update!

I would also like to add this very obscure fixed shooter game that requires CT-VOICE.DRV for sound effects: Galaga '94 (1994) by APSS Austria (Arnold Pichler). It is based on the real Galaga game by Namco.

There is an instruction on how to use a different CT-VOICE.DRV driver in SOUND.TXT file, which also mentions CTV16.DRV for the SB16 but that's not the case here. The one included in the game is already renamed to FX_SB.DRV and is for the SB2.0.

Reply 65 of 79, by Gmlb256

User metadata
Rank Oldbie
Rank
Oldbie

TextTris by Acumen Software (1992): Requires both CT-VOICE.DRV and SBFMDRV.COM when configuring the game to use Sound Blaster for music and sound effects.

Additional information can be found in SBUSERS.TXT file. It comes with SBFMDRV.COM version 1.32 and three renamed CT-VOICE drivers which are SB15.CTV, SB20.CTV and SBPRO.CTV.

Funny that the site mentions that the sound doesn't work in DOSBox but it appears that they didn't RTFM.

Reply 67 of 79, by sonneveld

User metadata
Rank Newbie
Rank
Newbie

I've managed to produce a slightly more up-to-date table of CT-VOICE.DRV compatibility in DOSBox with various sbtype settings. My test was a simple program I cobbled together that loaded the driver and plays a VOC file if anyone's interested in it.

edit: The reason for my testing is that I had trouble getting digital sound working in Innocent Until Caught. The v1 drivers initialised but produced no sound. In the end I used sbtype=sbpro2 and the v2 drivers.

Attachments

Reply 68 of 79, by keropi

User metadata
Rank l33t++
Rank
l33t++

Hypothetically speaking - is there any reason why some patched ct-voice.drv that works with every sound hardware out there does not exist?
Does this driver rely on SB ADPCM decoding or some similar function?

🎵 🎧 PCMIDI MPU , Orpheus , Action Rewind , Megacard and MK8330 soundcard website

Reply 69 of 79, by Akuma

User metadata
Rank Member
Rank
Member
Uka wrote on 2022-05-17, 12:37:

I've found one more game that requires SOUND.COM - it is "Turn It", at least the German version of it:
https://www.mobygames.com/game/dos/turn-it

Added and credited

sonneveld wrote on 2022-06-22, 14:24:

I've managed to produce a slightly more up-to-date table of CT-VOICE.DRV compatibility in DOSBox with various sbtype settings. My test was a simple program I cobbled together that loaded the driver and plays a VOC file if anyone's interested in it.

edit: The reason for my testing is that I had trouble getting digital sound working in Innocent Until Caught. The v1 drivers initialised but produced no sound. In the end I used sbtype=sbpro2 and the v2 drivers.

Thank you, I think you should post that into this thread as well:
Re: Running Innocent Until Caught with SB support

keropi wrote on 2022-06-22, 15:52:

Hypothetically speaking - is there any reason why some patched ct-voice.drv that works with every sound hardware out there does not exist?

I think because its hardware dependent, although the SB v.1x drivers can be used on the newer SB's as well. (I tested this DOSBox only, so this could be different on real hardware)

keropi wrote on 2022-06-22, 15:52:

Does this driver rely on SB ADPCM decoding or some similar function?

Don't know, maybe ripsaw8080 can answer that question for you.

Reply 70 of 79, by llm

User metadata
Rank Member
Rank
Member
sonneveld wrote on 2022-06-22, 14:24:

My test was a simple program I cobbled together that loaded the driver and plays a VOC file if anyone's interested in

im interested in, source available?

found the Sound Blaster Development Kit with headers/examples/libs of some creative drivers like ct-voice.drv and others:
ftp://retronn.de/driver/Creative/Developer/DEVELOPR.SB (needs a ftp client - most web-browsers reject ftp connections)

Reply 71 of 79, by llm

User metadata
Rank Member
Rank
Member

@sonneveld

i've disassembled the 1.13 and 2.12 CT-VOICE.DRV to see the differences between the versions

the newer versions seems to support more driver functions and has a different calling style to invoke driver functions (result return by ax or parameter)

this is the routine that gets invoked when someone far calls the driver

differences3.png
Filename
differences3.png
File size
54.42 KiB
Views
612 views
File license
Public domain

the [bp+0Ch] overwrite in 2.12 changes data in the callers stack, so it could be that newer versions of the CT-VOICE.DRV can corrupt the game state a little (maybe too much)
if the game was developed with a older version of the driver - can someone confirm that finding?

so the stack for the function call needs to be at least

sp+0004 unknown/unused 8 bytes 
sp+000C result offset

for example - this is a valid call to the driver if version 2.12 is used - if im not totaly wrong with my limited 16bit, stack knowledge

push 0
push 0
push 0
push 0
push offset result_var
mov bx,function_nr
call driver_ptr
add sp,10
mov ax,[result_var]

UPDATE: the 4.05 switched back to register ax as result, so its really needed to know the driver version before calling

and the code is all-in-all a little bit silly assembler code: for example: all variables get addressed by cs but every access to variables sets ds before to cs, instead of just accessing with cs:variable and also forcing ds segment

Reply 72 of 79, by llm

User metadata
Rank Member
Rank
Member

with the help from reddit/asm: https://www.reddit.com/r/asm/comments/vp65mu/ … rsed_dos_sound/
i've understood that the bp+0Ch actually targets the pushed ax register on stack - so the pop ax at end will contain the value comming from the called sub-function - is that typical asm code? looks a bit strange

so the 1.13 and 2.12 code is more or less doing the same and there is NO problem with corruption using newer drivers

Reply 74 of 79, by llm

User metadata
Rank Member
Rank
Member
sonneveld wrote on 2022-06-22, 14:24:

I've managed to produce a slightly more up-to-date table of CT-VOICE.DRV compatibility in DOSBox with various sbtype settings.

i've updated your matrix with my findings - the pre 2.x versions didn't check for the exact hardware - thats why the 1.x working for all combinations
some of the drivers identical, some got only minor differences like some bytes (base-adress etc.)

matrix.png
Filename
matrix.png
File size
232.81 KiB
Views
517 views
File license
Public domain

nearly code identical, only base-address different and another port-adress, only 2 bytes different

CT-VOICE.DRV\2.11\SB20\CT-VOICE.DRV 3910  -> CT-VOICE.DRV\2.10\SB20\CT-VOICE.DRV
CT-VOICE.DRV\2.11\SBM\CT-VOICE.DRV 3910 -> CT-VOICE.DRV\2.10\SB20\CT-VOICE.DRV

Reply 76 of 79, by llm

User metadata
Rank Member
Rank
Member
pan069 wrote on 2022-07-02, 20:36:
llm wrote on 2022-07-02, 06:08:

anyone know how to actually "load" a CT-VOICE.DRV before starting a game?

If a game requires CT-VOICE.DRV it will load it itself.

so i need to change the CT-VOICE.DRV file in the game installation if i want to use a different driver version?
or is the CT-VOICE.DRV file usually reachable through PATH?
are there games that include the driver directly in code - because technical there is no need to have a free floating CT-VOICE.DRV file around - could be part of the game executable

Reply 77 of 79, by Gmlb256

User metadata
Rank Oldbie
Rank
Oldbie
llm wrote on 2022-07-03, 05:50:
pan069 wrote on 2022-07-02, 20:36:
llm wrote on 2022-07-02, 06:08:

anyone know how to actually "load" a CT-VOICE.DRV before starting a game?

If a game requires CT-VOICE.DRV it will load it itself.

so i need to change the CT-VOICE.DRV file in the game installation if i want to use a different driver version?

Yes.

or is the CT-VOICE.DRV file usually reachable through PATH?

Installing the Sound Blaster drivers normally will add the SOUND environment variable which is a directory path that contains the DRV subfolder and said subfolder has the CT-VOICE.DRV file. However, not all the games will check that environment variable.

Reply 78 of 79, by Akuma

User metadata
Rank Member
Rank
Member
llm wrote on 2022-07-02, 06:08:

anyone know how to actually "load" a CT-VOICE.DRV before starting a game?

The attendance to my own threads everywhere is flaky at best lately 😉

I assume you want to switch between versions, for testing purposes:

  • Change the path eg: SET SOUND=C:\DOS\CT-VOICE\2.12, but some games do not use or respect the SOUND path.
  • Overwrite CT-VOICE.DRV with the version you want to test, which always works.
  • Write a loader to intercept the CT-VOICE.DRV path and redirect it (which is a lot of work to get 100%)

Reply 79 of 79, by llm

User metadata
Rank Member
Rank
Member
Akuma wrote on 2022-08-05, 07:36:
I assume you want to switch between versions, for testing purposes: […]
Show full quote

I assume you want to switch between versions, for testing purposes:

  • Change the path eg: SET SOUND=C:\DOS\CT-VOICE\2.12, but some games do not use or respect the SOUND path.
  • Overwrite CT-VOICE.DRV with the version you want to test, which always works.
  • Write a loader to intercept the CT-VOICE.DRV path and redirect it (which is a lot of work to get 100%)

are there games that do not load a single file but got the driver integrated (could be also part of other game resources, there is no need for a single file load as long as the driver code is segment aligned)