VOGONS


First post, by dondiego

User metadata
Rank Member
Rank
Member

Wenas. I have a couple of c-media CMI8738/PCI-SX cards one it's the 037D-GS revision (Hercules gamesurround muse LT) and the other one is the 037D revision (chinese clone).
My motherboard is an intel 810 based soyo sy-7iwm/l. I don't get FM neither in dos nor on windows 98 with the VXD driver. I'm initializing the card with setaudio in dos before loading windows. SFX (PCM) work with some games even in dos. I cannot get FM to work using remapcmi either, my base address is c000.
Now i want to enable FM writing to the pci register using peritool.
According to the datasheet (CMI8738_spec_v06_reg.doc)

Micellaneous Control Register Address 18H
Bit(s) R/W Name Description
19 FM_EN Legacy FM enable

And according to this Re: I've got the OPL3 synth from a CMI8738 working in Windows 7 x64
i need to poke 08 to the c01a address. Is that right? And why? I still don't know how to use peritool. Thanks.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 1 of 6, by dondiego

User metadata
Rank Member
Rank
Member

Peridos gives some information:

PCI bios found, version 02.10, last bus # 01
bus dev fun venid devid svnid sdvid class
00 00 0 8086 7120 0000 0000 060000 bridge
00 01 0 8086 7121 8086 7121 030000 display
00 1e 0 8086 2428 0000 0000 060400 bridge
00 1f 0 8086 2420 0000 0000 060100 bridge
00 1f 1 8086 2421 0000 0000 010180 mass storage
00 1f 2 8086 2422 0000 0000 0c0300 serial bus
01 0a 0 13f6 0111 13f6 0111 040100 multimedia
PCI bios found, version 02.10, last bus # 01
codes:
n\p: (not) prefetchable, r\R: ROM ((dis\EN)abled), i: IO space
start end c bus device fun bar venid devid classcode
0000c000 ffffc0ff i 01 0a 0 0 13f6 0111 040100 multimedia
0000d000 ffffd01f i 00 1f 2 4 8086 2422 0c0300 serial bus
0000f000 fffff00f i 00 1f 1 4 8086 2421 010180 mass storage
d8000000 dbffffff p 00 01 0 0 8086 7121 030000 display
dc000000 dc07ffff n 00 01 0 1 8086 7121 030000 display
list of PCI commands:
probe (report all busses and devices)
map (report PCI bus address use)
rconf [bus device function size register] (read config register)
wconf [bus device function size register data] (write config register)
list of IO commands:
peek [size address] (peek IO location)
poke [size address data] (poke IO location)
pokepeek [size address data] (poke IO location with readback)

I must use "pt PCI wconf" but i still need to figure out what comes after that.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 2 of 6, by dondiego

User metadata
Rank Member
Rank
Member

I've added this to the previous post:

list of IO commands:
peek [size address] (peek IO location)
poke [size address data] (poke IO location)
pokepeek [size address data] (poke IO location with readback)

If i use the PCI command i must write the full register now i think i must use the IO command.
I've tried "pt IO peek 1 0xc01a" as a guy on another forum suggested and i get 0x00 . Does it make sense?
@Stretch I think you know peritool.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 3 of 6, by dondiego

User metadata
Rank Member
Rank
Member

I've tried "pt IO peek 1 0x0388" and i get FF.
Then "pt IO poke 1 0xc01a 0x08" and i get 00 for the peek. According to that it should work and wolf3d detects adlib but i can't hear anything.
Lauching setaudio with /F388 i also get 00 for the peek and adlib is detected but it doesn't work. Also randomly adlib is detected without the parameter.
Another bug is that sometimes you get IRQ A for SB and you don't get SFX, Phil experienced that. The card uses the same IRQ for PCI and legacy audio BTW and i set it at 5.
So crappy broken drivers and crappy card. Those chips are old, later versions still have FM so it should have it but i get no music. May be some chips were defective i dunno.
It happens with two different cards, i don't think it's the motherboard. I get sfx even in real dos and no FM on windows either with the old driver and the OPL synth.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 4 of 6, by Stretch

User metadata
Rank Member
Rank
Member

I suggest reserving IRQ 5 for ISA/Legacy in the BIOS. I also could never get SFX working in MS-DOS, but FM worked in the usual suspects like Doom, Duke3d, etc.

Win 11 - Intel i7-1360p - 32 GB - Intel Iris Xe - Sound BlasterX G5

Reply 5 of 6, by dondiego

User metadata
Rank Member
Rank
Member

Wenas. So i guess the peritool thing was right. I tried reserving IRQ 5 at first but the card uses the same IRQ for pci and soundblaster. With IRQ 9 i got sfx in wolf3d but the machine hung after the first shot. No sound at all in doom. Using IRQ 5 for the card i got sfx to work in wolf3d but doom crashed when it tried to output sound (i heard the pop).
That when the card didn't try to use IRQ A of course xD.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 6 of 6, by dondiego

User metadata
Rank Member
Rank
Member

I've just tried with an asus p3b-f and it's the same. No FM but only sfx in dos. Seems some chips were defective and somehow they disabled the FM module.
I confirmed that the software enables FM at least sometimes but i don't get any music.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)