Doom engine - sound driver hacking

Getting old DOS games working. (DOSBox topics belong in DOSBox areas below, not here).

Doom engine - sound driver hacking

Postby tikalat » 2013-7-07 @ 02:07

Chex Quest (1996)
Chex Quest 2 (1997)
Doom (1993)
Doom II: Hell on Earth (1994)
Final Doom (1996)
HacX (1997)
Heretic (1994)
Heretic: Shadow of the Serpent Riders (1994)
Hexen: Beyond Heretic (1995)
Hexen: Deathkings of the Dark Citadel (1996)
Raptor: Call of the Shadows (1994)
Strife (1996)
Ultimate Doom, The (1995)


Title: Driver fixes
Date: July 7, 2013 (#2)


About:

General MIDI
- Send GS reset
- Disable GM off sysex


Generic patcher for Doom engine games. May add reverb to some Yamaha cards. Compatibility fix when game shutdown (GM off = borks some devices)

v2 - add Raptor: Call of the Shadows
Attachments
Doom engine - genmidi.7z
v2 kit - DOS
(359.42 KiB) Downloaded 241 times
Last edited by tikalat on 2013-7-07 @ 13:05, edited 1 time in total.
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby leileilol » 2013-7-07 @ 05:41

It's probably possible to apply this to Raptor Call of the Shadows, as DMX is present in that too IIRC
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
DOSBox is not for running Windows 9x
SGL != Glide
User avatar
leileilol
l33t++
 
Posts: 9370
Joined: 2006-12-16 @ 18:03

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-7-07 @ 13:06

Right you are - Doom sound engine detected. Added.
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-11-12 @ 03:24

Started looking at Doom2 first.

Code: Select all
D_DDTBL2.mus / D_DDTBL3.mus / D_DDTBLU.mus / D_DOOM.mus / D_DOOM2.mus
- Castanets, Shaker  (3+ each)

D_STALKS.mus / D_STLKS2.mus / D_STLKS3.mus
- Castanets, Shaker, Mute Surdo  (3+ each)


D_DM2INT.mus / D_OPENIN.mus
- Instrument = Fl. Key Click
- Each has only 1 note
(needs checking I guess)


Confirmed D_STALKS.mus (M2) plays GS percussion in logs. Like 12x each.
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby d1stortion » 2013-11-12 @ 03:44

I don't think there was PC#122 in D_DM2INT. In D_OPENIN it's the same principle as in his Duke tracks. Fl. Keyclick very most likely.
d1stortion
Oldbie
 
Posts: 1702
Joined: 2012-7-19 @ 20:42

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-11-12 @ 04:38

Check around 1:32 for D_DM2INT. You'll see program change and there should be around 6 hits total from then on.
http://www.doom.com.hr/public/doom2/music/midi/

Thanks for the D_OPENIN info.


Problem is going to be... how to fix this? Unless there's a bank controller I didn't see. And then patching the wad files to include the changes. Hmm..


Did check Doom 1 - very clean. No GS percussion / banks.
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby d1stortion » 2013-11-12 @ 04:52

Huh, that MIDI is very different from the one I had downloaded from mirsoft. Maybe same thing as with the Duke MIDIs, i.e. different soundtracks in one file.
d1stortion
Oldbie
 
Posts: 1702
Joined: 2012-7-19 @ 20:42

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-11-12 @ 14:20

I checked the mirsoft MIDIs. They look wrong - zero program changes once score starts. Doom 2 raw recordings have lots of patch modifications mid-track.

There's just 1 soundtrack that covers both FM + MIDI.
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby keropi » 2013-11-12 @ 14:28

it seems there isn't a source to get good midis... sad for people that leave game soundtracks playing in the background :neutral:
User avatar
keropi
l33t++
 
Posts: 6571
Joined: 2003-9-08 @ 06:45
Location: Greece

Re: Doom engine - sound driver hacking

Postby leileilol » 2013-11-12 @ 15:11

The Mirsoft midis were converted with DEU back in 1994, might want to try using a different MUS to MIDI converter if that makes any difference.
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
DOSBox is not for running Windows 9x
SGL != Glide
User avatar
leileilol
l33t++
 
Posts: 9370
Joined: 2006-12-16 @ 18:03

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-11-12 @ 20:27

Heretic

MUS_CPTD.mus / MUS_E1M2.mus / MUS_E1M6.mus / MUS_INTR.mus
- Shaker



Hexen

BLECHR.mus / CHAP_2R.mus / CRUCIBR.mus
- sticks

CHAP_1R.mus / CRUCIBR.mus / JACHR.mus / LEVELR.mus / PERCR.mus / VOIDR.mus
- shaker

CRUCIBR.mus
- metronome bell

FALCONR.mus
- jingle bell


Code: Select all
BLECHR.mus

[001A4E]  00 ____ 99 2A 41
[001A52]  6B ____ 89 2A 40
[001A56]  1C ____ 80 1C 40
[001A5A]  33 ____ E1 00 1D
[001A5E]  2A ____ B1 07 3C
[001A62]  00 ____ 99 2A 27
[001A66]  07 ____ E1 00 1C
[001A6A]  5D ____ E1 00 19
[001A6E]  1D ____ 89 2A 40

note: methinks pitch wheel error; next program is Slow Strings much down later
[001A72]  15 ____ E1 00 18
[001A76]  4F ____ B1 00 2D(@@@  GS bank select - high) (###)
[001A7A]  00 ____ B1 07 37
[001A7E]  00 ____ 99 2A 41

[001A82]  0E ____ E1 00 16
[001A86]  2B ____ E1 00 15
[001A8A]  40 ____ 89 2A 40
[001A8E]  1D ____ E1 00 12
[001A92]  39 ____ E1 00 11
[001A96]  1D ____ 90 1D 7F
[001A9A]  00 ____ B1 07 32
[001A9E]  00 ____ 99 2A 20
[001AA2]  4E ____ E1 00 0E
[001AA6]  16 ____ 89 2A 40
[001AAA]  1C ____ E1 00 0D
[001AAE]  64 ____ E1 00 0B
[001AB2]  00 ____ B1 07 2D
[001AB6]  00 ____ 99 2A 32
[001ABA]  32 ____ E1 00 09
[001ABE]  2B ____ 89 2A 40
[001AC2]  4F ____ E1 00 07
[001AC6]  32 ____ E1 00 06
[001ACA]  07 ____ B1 07 28


Code: Select all
GROVER.mus

[000066]  B6 07 64
[000069]  C6 2E
[00006C]  B7 07 64
[00006F]  C7 30
[000072]  BF 07 64
[000075]  CF 00
[000078]  BF 07 64
[00007B]  BF 07 64

???
[00007E]  C9 71     (@@@  GS drum kit = ELECTRONIC + SFX) (###)

[000081]  BF 07 64
[000084]  20 --
[000085]  93 1D 50
[000088]  9F 24 4C
[00008B]  9F 2A 40
[00008E]  10 --
[00008F]  8F 24
[000091]  8F 2A
[000093]  30 --
[000094]  9F 2A 49
[000097]  11 --
[000098]  8F 2A
[00009A]  10 --



; normally this would be sticks
[001360]  1F 1F 45   (@@@  GS percussion = Drum kit 114 - Instrument 31)
[00137D]  1F 1F 17   (@@@  GS percussion = Drum kit 114 - Instrument 31)
[001397]  1F 1F 3D   (@@@  GS percussion = Drum kit 114 - Instrument 31) (3+)


NewRisingSun says 71h = ELECTRONIC + SFX (SC-55).
I wonder what SC-88 would do here...
VSC reverts to STANDARD (as expected).

Roland experts? :)


Good news is that Hexen actually sent bank controller change. So I can punch it into Doom2 MIDIs and figure out how to rewrite WAD later.

Going to check out more games before updating the master list.
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby d1stortion » 2013-11-12 @ 20:47

If you could call someone on here a "Roland expert" it's Cloudschatze, too bad he doesn't post in these threads :)

What precisely do you want me to check on SC-88?
d1stortion
Oldbie
 
Posts: 1702
Joined: 2012-7-19 @ 20:42

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-11-12 @ 22:27

SC-88 has that 'No instrument' message when using melodic CTF. I wonder if it does the same thing with 'bad' drumkits (no percussion plays)? Or does this special drumkit even exist on SC-88?

To be more precise, does the percussion sound the same on SC-88 vs SC-55 non-GM vs Yamaha when using this drumkit? I'm just crazy curious if it actually sounds different or not. ^^
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby d1stortion » 2013-11-13 @ 02:45

Ah that's what you meant. No, I believe it'll show a "No DRUM SET" and stay on whatever last drum set was played. And maybe I misunderstand something here, but there certainly are SFX and ELECTRONIC drumkits; what is meant with this combination?

About Hexen: I've never seen this game use any GS drumsets (ingame that is), so I'm a bit surprised that you come up with this. Do you want to say it's supposed to do so but something went wrong with the driver? It doesn't show No DRUM SET...

Also, I just tested Doom2 entryway on my SC-88. With the regular map it simply doesn't have that "muted" cymbal behavior, regardless of GS/GM mode. It's like the Yamaha GM recording I posted. Turning on SC-55 map, everything is like on the SC-55 or TG300B Yamaha recording, both modes. This really points at the SC-55 sample set being the cause of this. So in that respect, Yamaha's Roland compatibility mode is rather elaborate, switching out those samples...
d1stortion
Oldbie
 
Posts: 1702
Joined: 2012-7-19 @ 20:42

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-11-13 @ 05:15

what is meant with this combination?


I don't know. It's what NewRisingSun said once in the Sierra thread when I asked about his SQ5 driver. So I only know based on that - I take his word that it exists but don't know how it sounds / works. xx(



For Hexen, type this: visit11
https://doom.wikia.com/wiki/Hub_2:_Sacred_Grove

Code: Select all
raw midi capture

[0002C7]  00 ____ B5 07 40
[0002CB]  00 ____ C5 30      (program)
[0002CE]  00 ____ B6 07 40
[0002D2]  00 ____ C6 2E      (program)
[0002D5]  00 ____ B7 07 40
[0002D9]  00 ____ C7 30      (program)
[0002DC]  00 ____ B9 07 40
[0002E0]  00 ____ C9 00      (program)
[0002E3]  00 ____ B9 07 40
[0002E7]  00 ____ B9 07 40


; Drum kit here...
[0002EB]  00 ____ C9 71      (program)


[0002EE]  00 ____ B9 07 40
[0002F2]  81 64 ____ 93 1D 50
[0002F7]  00 ____ 99 24 4C
[0002FB]  00 ____ 99 2A 40
[0002FF]  72 ____ 89 24 40
[000303]  00 ____ 89 2A 40
[000307]  82 57 ____ 99 2A 49
[00030C]  79 ____ 89 2A 40
[000310]  73 ____ 99 24 47
[000314]  72 ____ 89 24 40
[000318]  72 ____ 99 2A 47
[00031C]  72 ____ 89 2A 40
[000320]  82 5E ____ 99 2A 49
[000325]  73 ____ 89 2A 40
[000329]  82 57 ____ 99 24 51
[00032E]  00 ____ 99 2A 4E
[000332]  72 ____ 89 24 40



Also, I just tested Doom2 entryway on my SC-88. With the regular map it simply doesn't have that "muted" cymbal behavior, regardless of GS/GM mode. It's like the Yamaha GM recording I posted. Turning on SC-55 map, everything is like on the SC-55 or TG300B Yamaha recording, both modes. This really points at the SC-55 sample set being the cause of this. So in that respect, Yamaha's Roland compatibility mode is rather elaborate, switching out those samples...


OOh. Nice find!
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby d1stortion » 2013-11-13 @ 05:27

Well, if you don't see that it exists on VSC then it doesn't exist on SC-55 either...

About Hexen: yeah, wtf. Do you already have any clue what causes this? I mean literally, most/all of the other tracks are using STANDARD...
d1stortion
Oldbie
 
Posts: 1702
Joined: 2012-7-19 @ 20:42

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-11-13 @ 14:23

Checked all of VSC documentation and nothing about drum kits 70h - 73h. Just 7Fh = CM-64 / 32L. I'll remap it to STANDARD.


Drum kit is hard-coded into the physical MIDI score itself. It's the only one in any Doom-engine game so far.
(Raptor: Call of the Shadows = plain GM)

GROVER.mid uses ch1-8 + ch10. The way the setup is structured, it seems like to me C9 71 was originally another channel that got dropped. But author forgot to cleanly fix it.


Code: Select all
[000042]  B0 07 64
[000045]  C0 2D

[000048]  C1 59
[00004B]  B1 07 64

[00004E]  C2 36
[000051]  B2 07 64

[000054]  C3 3D
[000057]  B3 07 7F

[00005A]  C4 20
[00005D]  B4 07 64

[000060]  B5 07 64
[000063]  C5 30

[000066]  B6 07 64
[000069]  C6 2E

[00006C]  B7 07 64
[00006F]  C7 30

- Doom engine maps this to ch10
[000072]  BF 07 64
[000075]  CF 00

[000078]  BF 07 64
[00007B]  BF 07 64

- Originally unused channel 9,11-15?
[00007E]  CF 71
[000081]  BF 07 64


I believe you're right - it's STANDARD. Will fix that too. Thanks! :)
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39

Re: Doom engine - sound driver hacking

Postby tikalat » 2013-11-15 @ 02:46

Strife has no GS percussion. But 1 drum CTF
Code: Select all
D_SLIDE.mus

; CTF = Jazz
[000019]  C9 26

[00001C]  99 29 51
[00001F]  B9 0A 32
[000022]  99 24 63
[000025]  99 26 43


Track has 1 instrument - percussion channel only. So it looks intentional enough.


So Hexen + Strife are now added to patcher. But there's this too:
http://www.doomworld.com/vb/source-port ... -format/1/
tikalat
Member
 
Posts: 287
Joined: 2012-4-13 @ 16:39


Return to DOS

Who is online

Users browsing this forum: No registered users and 1 guest