VOGONS


Sierra/Dynamix sound driver hacking

Topic actions

Reply 140 of 332, by arablizzard2413

User metadata
Rank Newbie
Rank
Newbie
Great Hierophant wrote:
arablizzard2413 wrote:
tikalat wrote:
Noticed Sierra games use 16-bit DAC: - Eco Quest 2 - Freddy Pharkas - Leisure Suit Larry 6 - Pepper's Adventures in Time - Polic […]
Show full quote

Noticed Sierra games use 16-bit DAC:
- Eco Quest 2
- Freddy Pharkas
- Leisure Suit Larry 6
- Pepper's Adventures in Time
- Police Quest 4
- Quest for Glory 4

Win versions play 16-bit. But DOS plays 8-bit, unless one has Pro Audio 16 card. Meh.

So how do you get 16-bit DAC for Quest for Glory 4 in Dosbox?

Copy the AUDBLAST.DRV from Freddy Pharkas CD or Leisure Suit Larry 6 CD to get 16-bit quality and you can get 16-bit quality from any of the listed games with a Sound Blaster 16.

Quest for Glory 4 is SCI32 and those drivers won't work (SCI1.1), aside from that Leisure Suit Larry 6 doesn't have AUDBLAST.DRV.

Reply 141 of 332, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
arablizzard2413 wrote:
Great Hierophant wrote:
arablizzard2413 wrote:

So how do you get 16-bit DAC for Quest for Glory 4 in Dosbox?

Copy the AUDBLAST.DRV from Freddy Pharkas CD or Leisure Suit Larry 6 CD to get 16-bit quality and you can get 16-bit quality from any of the listed games with a Sound Blaster 16.

Quest for Glory 4 is SCI32 and those drivers won't work (SCI1.1), aside from that Leisure Suit Larry 6 doesn't have AUDBLAST.DRV.

You are right about QG4, it uses DACBLAST.DRV, DACPRO.DRV and DACPRO16.DRV, which are indeed SCI32 drivers, even on a floppy. LSL6 does have AUDBLAST.DRV in the low resolution CD version only. LSL6 high res has the DAC* files. I assume that SCI32 would be able to use 16-bit sound capabilities of a Sound Blaster 16.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 142 of 332, by arablizzard2413

User metadata
Rank Newbie
Rank
Newbie
tikalat wrote:

Win versions play 16-bit. But DOS plays 8-bit, unless one has Pro Audio 16 card. Meh.

Great Hierophant wrote:

You are right about QG4, it uses DACBLAST.DRV, DACPRO.DRV and DACPRO16.DRV, which are indeed SCI32 drivers, even on a floppy. LSL6 does have AUDBLAST.DRV in the low resolution CD version only. LSL6 high res has the DAC* files. I assume that SCI32 would be able to use 16-bit sound capabilities of a Sound Blaster 16.

The low res version isn't SCI32, using AUDBLAST.DRV from either of those games locks up QFG4. The only driver included with the game that does 16-bit according to tikalat is the one for Pro Audio 16. Hence my original question, how do you get 16-bit DAC in the dos version of QFG4 in Dosbox?

Reply 143 of 332, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
arablizzard2413 wrote:
tikalat wrote:

Win versions play 16-bit. But DOS plays 8-bit, unless one has Pro Audio 16 card. Meh.

Great Hierophant wrote:

You are right about QG4, it uses DACBLAST.DRV, DACPRO.DRV and DACPRO16.DRV, which are indeed SCI32 drivers, even on a floppy. LSL6 does have AUDBLAST.DRV in the low resolution CD version only. LSL6 high res has the DAC* files. I assume that SCI32 would be able to use 16-bit sound capabilities of a Sound Blaster 16.

The low res version isn't SCI32, using AUDBLAST.DRV from either of those games locks up QFG4. The only driver included with the game that does 16-bit according to tikalat is the one for Pro Audio 16. Hence my original question, how do you get 16-bit DAC in the dos version of QFG4 in Dosbox?

I can only suggest trying drivers from any of the 10 other SCI32 games and seeing if you get 16-bit sound. This of course assumes that the sound effects were recorded in 16-bit, which is unlikely if you are using the floppy QFG4.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 144 of 332, by tikalat

User metadata
Rank Member
Rank
Member

Hi sorry I didn't get around to this sooner - busy helping some other devs at some other place.

Booted QFG4 DOS (Anthology CD). DOSBox sb16 log shows (intro title):
"DMA Transfer:16-bits PCM Mono Auto-Init freq 11025 rate 11025 size 512"

No special driver needed. I imagine PQ4 is the same way..

------------------------------

Needs the special 16-bit soundblaster driver:
- Freddy Pharkas (DOS) (Floppy)
- Leisure Suit Larry 6 (DOS) (Lores)
- Pepper's Adventures in Time (DOS)

The other games I'd need to find spots where they play 16-bit samples.

There's 2 LSL6 CD versions: compilation (lores)(non-talkie) + talkie (hi-res). I forget which one had which. 😀
- edit: nm. read above post.

Never checked QFG4 floppy. Hmm.
- edit2: floppy plays 16-bit. no special driver.

Reply 145 of 332, by marooned_on_mars

User metadata
Rank Member
Rank
Member

I noticed somebody posted a GM/MT-32 fix for TIM, could anyone make one for TEMIM too? Also, could anyone fix the missing PC speaker songs from both versions and the PS/1 audio from TEMIM? I would really appreciate it ^^;

Reply 146 of 332, by kjps86

User metadata
Rank Newbie
Rank
Newbie

I don't want to seem ungrateful, I love this thread and almost all of the updates included in it. I've learned a lot about Sierra's methods from reading through.

What would it take to create a GMBLAST.DRV file to supplement the MTBLAST.DRV file already offered for Space Quest 3 and other games like it? My generic Windows 7 computer running Dosbox handles General Midi music very well, while in contrast I've never been able to get Munt working, with or without a special build of Dosbox...

Is it just a matter of remapping the instruments from the MT-32 locations to compatible GM locations along with a proper driver?

Reply 147 of 332, by marooned_on_mars

User metadata
Rank Member
Rank
Member
kjps86 wrote:

I don't want to seem ungrateful, I love this thread and almost all of the updates included in it. I've learned a lot about Sierra's methods from reading through.

What would it take to create a GMBLAST.DRV file to supplement the MTBLAST.DRV file already offered for Space Quest 3 and other games like it? My generic Windows 7 computer running Dosbox handles General Midi music very well, while in contrast I've never been able to get Munt working, with or without a special build of Dosbox...

Is it just a matter of remapping the instruments from the MT-32 locations to compatible GM locations along with a proper driver?

Have you placed the MT-32 rom in DosBox's root folder? That's the only explanation why Munt wouldn't work.

Also check this: https://github.com/sergm/munt_devel/downloads for an updated DosBox Munt flavour (updated a few days ago)

Reply 148 of 332, by tikalat

User metadata
Rank Member
Rank
Member

Been a long time.

1) Gabriel Knight 1

Finally checked up on this (floppy).
- MT-32 = remap to GM instrument map
- GM modulation = 100 [short music], 260 [voodoo], 420 [cajun]
- GS percussion = 11, 240, 250, 290, 412, 420, 422, 470, 720, 902
[High Q, Slap, Scratch Push, Metronome Click, Metronome Bell, Casanets]

Shame I can't get VSC or BassMidi (patch93 sc-55 soundfont) to sound like the voodoo recordings on youtube. It's either too 'shallow' or too overpowering with thickness. The strings get all mushy and drown out the... flute? From SCI viewer, I actually preferred the VSC only for its 'cleanness'. 🙁

Then again, I need to play this game in Dosbox to be sure though - maybe the correct settings need to be sent first. Never played using a quality GM device.

2) The Incredible Machine
- MT-32 = remap to GM instrument map
- GM modulation = 1008, 1009 [major themes]
- GS percussion = 1004 [shaker]

I searched the TIM.SX archive for PC Speaker songs. Only found the 2 known ones. No unused ones uncovered.

If there's more, we may need more versions of this game. Can't help much here.

3) The Even More! Incredible Machine

If I'm going to work on this, I need help with the TIM.SX unpacker. It uses compression method 3, which I'm unable to figure out. 29C8:015B is where it decodes the first 2 PCM files (19.SND, 20.SND in that order). I can get the raw pcm data during playback, but the midi dumps are incomplete and missing other device data - does the engine only decompress what it needs and toss the rest? I can't find whole dumps in memory.

It's worth noting that TIM2 uses the same TIM.SX packer method. Throwing the same wall I can't get over.

I did a trial test run of the 2 raw PCM files and got the GM + SB, PS/1 to play the digital. The missing PC speaker + PS/1 audio may be due to the infamous GM bug from TIM1 (missing case statement - probably should check this later). Unless the soundtrack has no PC speaker tracks.

Reminds me of Might & Magic III compression. Jeff Ludwig says no one can figure that out - fortunately it's not important to me. Even 16-bit decoders can be so cleverly insane. 🙁

And I'll need to find some time later this year to hack up the GM drivers for the above 2-3 games (send modulation).

Reply 149 of 332, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

It uses compression method 3, which I'm unable to figure out.

Method 3 is LZHUF.

does the engine only decompress what it needs and toss the rest?

Yep. One way to conserve conventional memory.

Also: If the "Making of" video on the Gabriel Knight 1 CD-ROM is any indication, the target device was not any Sound Canvas, but some Proteus-like module. SC-55 will definitely have polyphony dropouts during some songs.

Reply 150 of 332, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
NewRisingSun wrote:

Also: If the "Making of" video on the Gabriel Knight 1 CD-ROM is any indication, the target device was not any Sound Canvas, but some Proteus-like module. SC-55 will definitely have polyphony dropouts during some songs.

I watched that video, and at 160x120x8 resolution, its tough to make out much of anything. I observed a CM module at 6:19 underneath a computer module

Interesting how Robert Holmes talks about "strong themes" he likes to borrow, er ahem "use".

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 151 of 332, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

I watched that video, and at 160x120x8 resolution, its tough to make out much of anything. I observed a CM module at 6:19 underneath a computer module

I meant from how the music sounds in that video.

Reply 152 of 332, by tikalat

User metadata
Rank Member
Rank
Member

Method 3 is LZHUF.

You saved me! Thank you incredibly much! :mrgreen:

So the update.

1) The Even More! Incredible Machine
- MT-32 plays enough songs / sfx on ch11-15 (....###....)
- GS percussion = 1004, 1020 [Shakers]
- GM modulation = 1008, 1009
- 8 digital-only sfx
- Appears to be 2 PC speaker tunes
- Possibly 4 PS/1 tracks

2) The Incredible Machine 2
- MT-32 plays enough songs / sfx on ch1 + 11-15 (....###....)
- GS reverb + chorus = 1003, 1005
- GM modulation = 1001, 1008, 1013
- No digital PCM detected
- No PC speaker tracks

1003.SND
[0026C8] Control change = B3 5D 32 (*** WARN!!! ***)

1005.SND
[000280] Control change = B1 5B 4B (*** WARN!!! ***)
[000284] Control change = B1 5D 32 (*** WARN!!! ***)
[0012ED] Control change = B1 5B 4B (*** WARN!!! ***)
[0012F1] Control change = B1 5D 32 (*** WARN!!! ***)
[0036B4] Control change = B6 5B 5A (*** WARN!!! ***)
[003DFF] Control change = B6 5B 5A (*** WARN!!! ***)
[003E18] Control change = B7 5B 5A (*** WARN!!! ***)
[004558] Control change = B7 5B 5A (*** WARN!!! ***)

That's enough work to do. Yeow. Sometime this year - definitely probably.

edit:
Side-note. Might & Magic III uses LZHUF - the same one NewRisingSun pointed out. Only difference:
<20><20> = compressed file
<16-bit MSB> = output size
<LZH data> = standard format

ludmeister (Jeff Ludwig) needs to see this. 😉

Reply 153 of 332, by tikalat

User metadata
Rank Member
Rank
Member

The Even More! Incredible Machine (1993, DOS)

Title: Driver + MIDI fixes
Date: July 13, 2013

About:

NewRisingSun fixes
- Sound Blaster initializes on fast systems/at high "cycle" settings
- Stereo FM sound

Roland MT-32
- Play missing music / sfx on channels 2-10

General MIDI
- Sfx now use full channel 1-16
- Send modulation to device
- Fix volume slider

PCM digital
- Works for any combo of devices

######################################
######################################
######################################

I've got a few Sound Canvas questions.

1) Does it matter if I change Bank LSB (cc #32) before Bank MSB (cc #0)?

2) What are the factory reset values for reverb, chorus?
- VSC uses 40,0 (decimal)
- BassMidi uses ...? Probably high values. The chorus seems like it's cranked at max (Betrayal at Krondor - main menu strings).

I'm wondering if that's why games sound somewhat funny to me using BassMidi. VSC is more natural to my ears but some users don't have VSC and I'm curious if the GM / GS reset values are causing a difference between the 2 soft synths (more blur, more richness)

3) Space Quest V GENMIDI driver by NewRisingSun

- drum kit remap

30-37 --> 30
38-3F --> 38
40-6F --> 00

... what are these??
70 --> 70
71 --> 71
72 --> 72
73 --> 73

74-7E --> 00
7F --> 7F

- Modulation

seg000:0172 cmp ch, 1
seg000:0175 jnz short loc_17F
seg000:0177 mov [bx+516h], cl

; modulation / 2 --> send to device
; - Is something special about Roland Sound Canvas devices?

seg000:017B shr cl, 1
seg000:017D jmp short loc_1B1

I'm going to be upset for an hour if I missed something important here
(rewriting lots of drivers later)

Thanks!

Last edited by tikalat on 2013-07-14, 01:25. Edited 4 times in total.

Reply 154 of 332, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie
tikalat wrote:

Does it matter if I change Bank LSB (cc #32) before Bank MSB (cc #0)?

Don't see why it should. SC-55 doesn't recognize cc #32 at all.

tikalat wrote:
... what are these?? 70 --> 70 71 --> 71 72 --> 72 73 --> 73 […]
Show full quote

... what are these??
70 --> 70
71 --> 71
72 --> 72
73 --> 73

Answer:

        byte    112     ; 112 Standard + Sound Effects
byte 113 ; 113 Electronic + Sound Effects
byte 114 ; 114 Brush + Sound Effects
byte 115 ; 115 TR-808 + Sound Effects
tikalat wrote:

; modulation / 2 --> send to device
; - Is something special about Roland Sound Canvas devices?

That's for a GENMIDI.DRV that translates Roland MT-32 tracks to General MIDI, because Modulation is deeper on the former. I suppose you could do without the /2 for original General MIDI tracks.

tikalat wrote:

seg000:0175 jnz short loc_17F

Before you use IDA to disassemble my drivers, just tell me what you want changed, and I'll attach a new one.

Also don't credit me for the LZHUF decoder, since I didn't write it.

Reply 155 of 332, by tikalat

User metadata
Rank Member
Rank
Member

Before you use IDA to disassemble my drivers, just tell me what you want changed, and I'll attach a new one.

Nothing needs modding that I can think of. 😀

I usually like poking around other peoples' work, looking for stuff I may've missed. Or didn't know about. Kinda like this place: http://tcrf.net/The_Cutting_Room_Floor

That's for a GENMIDI.DRV that translates Roland MT-32 tracks to General MIDI, because Modulation is deeper on the former. I suppose you could do without the /2 for original General MIDI tracks.

Okay.... I'd better leave all my Sierra / Dynamix drivers alone for now. Don't think I fully understand for what games that difference occurs.

edit:
I'll change the credit to: info about Dynamix compression (LZHUF)

Time for TIM2 dos.

Reply 156 of 332, by tikalat

User metadata
Rank Member
Rank
Member

The Incredible Machine 2 (1994, DOS)

Title: Driver + MIDI fixes
Date: September 17, 2013

About:

NewRisingSun fixes
- Stereo FM sound
- Fix tracks with wrong pitch bend

Roland MT-32
- Play missing music on channels 2-10

General MIDI
- Sfx now use full channel 1-16
- Send modulation to device
- Send reverb, chorus commands
- Fix volume slider

Last edited by tikalat on 2013-09-17, 13:43. Edited 3 times in total.

Reply 157 of 332, by marooned_on_mars

User metadata
Rank Member
Rank
Member

Thanks guys for fixing the installers, I'll update my recordings with them and post them on VengefulChip with credits to you two =)

Reply 158 of 332, by oasis789

User metadata
Rank Newbie
Rank
Newbie
NewRisingSun wrote:

Also: If the "Making of" video on the Gabriel Knight 1 CD-ROM is any indication, the target device was not any Sound Canvas, but some Proteus-like module. SC-55 will definitely have polyphony dropouts during some songs.

Great Hierophant wrote:

I watched that video, and at 160x120x8 resolution, its tough to make out much of anything. I observed a CM module at 6:19 underneath a computer module.

Would you recommend using an SC-55 soundfont for GK1 or something else non-hardware?

Reply 159 of 332, by tikalat

User metadata
Rank Member
Rank
Member

The Incredible Machine (1992, DOS)

Title: Driver fixes
Date: July 13, 2013

About:

Addendum to NewRisingSun's TIM1 fixes.

General MIDI
- Sfx now use full channel 1-16.
- Send modulation to device.
- Fix volume slider

################################
################################

Gabriel Knight (1993, DOS + WIN)

Title: Driver fixes
Date: July 12, 2013

About:

General MIDI (DOS)
- Sfx now use full channel 1-16
- Send modulation to device
- Fix volume slider

General MIDI (WIN)
- Sfx now use full channel 1-15
- Higher polyphony
- Send GS reset

################################
################################

Hmm.. thought I released earlier Windows kits but no. Might go back and clean up a bit, merge some work and redo the instructions.

################################
################################

EDIT:
Gabriel Knight trivia

(Both versions)

FM pan-pot
- 1, 11, 100, 101, 209, 210, 220, 225 (..)

Modulation = 100, 230, 260, 420, 441, 442

GS = Metronome Bell / Click, Slap, Castanets, Scratch Push, High Q, Shaker, Belltree
11, 240, 250, 290, 412, 420, 422, 470, 480, 720, 902

16-bit PCM mono

(CD version)
GS = 227

Last edited by tikalat on 2013-07-14, 00:33. Edited 4 times in total.