After reading this page I decided to try out the method at the bottom to initialize the SAM9407\9707 in DOS with 94DINIT.EXE.
1After this the Dream chip is visible at port 330 and can be configured with 94DINIT.EXE. This tool loads the firmware, sets the soundfont and switches the chip to UART mode to receive MIDI notes. The notation is 94DINIT F=firmware S=Sound_Bank_name P=port. The defaults for 94dinit are 'gm94' for firmware, '4mg1' for sound bank and '330' for port. The extension bin and 94b for firmware and sound bank have to be left out. However the ROM sound bank of the card already counts as a loaded sound font and prevents loading any to the RAM. So the line looks like this: 294DINIT.EXE F=94pc4m1 S=rom P=0x330
Since this card doesn't have a ROM, I just copied the default 1MB GM bank file to the same directory as 94DINIT. I also copied the 105KB 97PNP2.BIN firmware file on the hunch that the file was so huge because it was intended to be for the SAM9707 rather than for the little PNP EPROM chip.
So, in pure DOS I typed this...
94DINIT.EXE F=97PNP2 S=GMBK9708 P=0x330
... and got no errors!
Amazingly, when I run the DOS sound setup program for various games it actually detects a sound card after this and allows me to run sound tests, but I get no audio. It detects a Roland RAP-10 for digital and a Sound Canvas\MPU-401 at 330 for MIDI. Digital test gives no sound, but also no errors. MIDI test gives a few short blips of static noise... so it's doing something!
I tried using the default 94PC4m1 firmware that comes with 94DINIT, but it said it failed to initialize UART mode and doesn't seem to have any affect on sound setup programs.
It seems like maybe the mixer isn't being initialized or something, since sound is being sent to the chip without errors, but I'm getting nothing recognizable out of the sound card.
I don't expect to have usable digital sound but if I can get MIDI working I'll be happy.
It's doubtful but wonder if that "SAM9707 4 wires high speed serial link" at J8 just below the SIMM slot would have any audio output coming through it? Kind of like the Goldfinch connector on AWE32 Upgrade cards.
Last edited by Ozzuneoj on 2023-01-24, 04:22. Edited 1 time in total.
What it appears to be: Either a prototype or sample of a Windows 9x "studio" oriented MIDI card based on the Dream SAM9707 synthesis chip. It came with a CD and a manual (which appears to have been printed from a document included on the CD). It is an ISA card but seems to have been made sometime after 1998, with the latest dates being in 2001.
Not a prototype exactly, it's a reference design as the CD-ROM says. Something dream would have sold as an example of how to build a sound card based on their product - the SAM9707 chip. Thats why the CD-ROM doesn't just contain drivers but also schematics, gerbers, test tools, datasheets, PnP ROM source, etc. Pretty much everything you'd need if you were planning to make and sell a sound card based on the SAM9707 except driver source code and a commercial license for those samples licensed from Roland.
Wow, on the CD in "SNDBANK\LETCUST.PDF" is actually recognized by their CEO back then, that they copied the Roland GS sounds without permission, what I pointed out few years ago here:
Wow, on the CD in "SNDBANK\LETCUST.PDF" is actually recognized by their CEO back then, that they copied the Roland GS sounds without permission, what I pointed out few years ago here:
basically, as far as we know "GSSBK320.94B" bank is close to exact copy of the Roland SC-55 GS ROM sounds.
Yes, I mentioned that earlier in the thread. Pretty neat to see it in writing, but it's been a well known thing for many years that Dream copied Roland sounds and there was a court settlement regarding this in the late 90s.
This is why you will often see posts about Dream "CleanWave" synths and Dream synths that pre-date "CleanWave". The CleanWave samples are the ones they made after this court case and they do not use any Roland sounds. The ones that predate CleanWave are effectively the same as Roland samples.
Not a prototype exactly, it's a reference design as the CD-ROM says. Something dream would have sold as an example of how to build a sound card based on their product - the SAM9707 chip. Thats why the CD-ROM doesn't just contain drivers but also schematics, gerbers, test tools, datasheets, PnP ROM source, etc. Pretty much everything you'd need if you were planning to make and sell a sound card based on the SAM9707 except driver source code and a commercial license for those samples licensed from Roland.
Ah, that makes sense. That's pretty much what I meant when I said it may be a "sample".
I'd be curious to know if there are any newer drivers or applications floating around the internet that may not have the crashing problem I'm running into under Windows 98SE. I kind of doubt there were any SAM9407 or SAM9707 retail products made after 2001.
Last edited by Ozzuneoj on 2023-01-24, 04:10. Edited 1 time in total.
@Ozzuneoj :
unfortunately, when in that old thread we actually cracked the encryption of all Roland GS ROMs SC-55, SCC-1, up to SC-88, etc. there was no any interest in helping me extracting the same sound from the 94B banks and compare them or even we make 94B bank with the sounds from SC-55 ROM ourselves - I just don't know enough, actually I know almost nothing about 94B (all I know I said in that old thread). So, I hope now there will be new interest in the topic. In any way, great find, that's no doubt priceless addition to your collection! and for the rest of us what is left is we just study the files on the CD in hope to get more information and understanding of 94b and its features.
The card is similar to the Guillemot maxi sound line of cards. I have such a card Maxi sound 64 game theater"SC8600" which uses the same sound fonts and probably verysimilar drivers. Elianda posted alot about this card before. Re: Guillemot Maxi Sound home studio 64 pro - no music in pure DOS
It is possible to generate a 94B soundfont from a DLS soundfont using the Maxi Sound 64 Utilities in Windows. The Utilities run on any Maxi Sound with the Dream chip, maybe even on other with standard firmware and Dream95 driver (not tested).
Go to the Soundbank tab choose a bank, rightclick Load
Choose a DLS file
The Utilities will extract, map and generate a temporary 94B soundfont file. (Basically what dlsreader does only with the additional step that it joins the files together again)
Now if it can load the 94B file afterwards it will ask for a save dialog.
Sometimes the tool can not load the 94B file due to bugs*. However the file is fine, so if the error pops up it shows the path to a TMP file in C:\WINDOWS\TEMP which is the actual 94B soundfont generated.
Leave the error message open and copy the file somewhere else to some .94B file.
The soundfont loads usually with the DOS maxinit tool or some other card. Sometimes it is sufficient to hard reset the card.
Happy converting...
* This seems to be an issue with the Win9x drivers for the Dream DSP. It does not happen in NT4 and it works also from DOS.
I tried a bit more and found some additional information:
-> The DLS file must be DLS Version 1.
-> The Maxi Sound 64 Utilities in Win9x work best for converting, the Maxi Sound 64 Utilities in NT4 are still beta and show issues.
-> The converted 94B sound fonts work only with the Maxi Sound 64 cards that use Dreams default firmware. On a EWS64 with Terratecs own firmware it crashes when such a 94B sound font is loaded and a Midi gets played. It plays a few notes and then MPU Transmission Time-Outs occurs and notes stay stucked.
It is a bit unlucky since the Maxi Sounds can have only 16 MB RAM while the EWS64 can be equipped with 64 MB.
Warlordwrote on 2023-01-24, 22:12:The card is similar to the Guillemot maxi sound line of cards. I have such a card Maxi sound 64 game theater"SC8600" which uses […] Show full quote
The card is similar to the Guillemot maxi sound line of cards. I have such a card Maxi sound 64 game theater"SC8600" which uses the same sound fonts and probably verysimilar drivers. Elianda posted alot about this card before. Re: Guillemot Maxi Sound home studio 64 pro - no music in pure DOS
It is possible to generate a 94B soundfont from a DLS soundfont using the Maxi Sound 64 Utilities in Windows. The Utilities run on any Maxi Sound with the Dream chip, maybe even on other with standard firmware and Dream95 driver (not tested).
Go to the Soundbank tab choose a bank, rightclick Load
Choose a DLS file
The Utilities will extract, map and generate a temporary 94B soundfont file. (Basically what dlsreader does only with the additional step that it joins the files together again)
Now if it can load the 94B file afterwards it will ask for a save dialog.
Sometimes the tool can not load the 94B file due to bugs*. However the file is fine, so if the error pops up it shows the path to a TMP file in C:\WINDOWS\TEMP which is the actual 94B soundfont generated.
Leave the error message open and copy the file somewhere else to some .94B file.
The soundfont loads usually with the DOS maxinit tool or some other card. Sometimes it is sufficient to hard reset the card.
Happy converting...
* This seems to be an issue with the Win9x drivers for the Dream DSP. It does not happen in NT4 and it works also from DOS.
I tried a bit more and found some additional information:
-> The DLS file must be DLS Version 1.
-> The Maxi Sound 64 Utilities in Win9x work best for converting, the Maxi Sound 64 Utilities in NT4 are still beta and show issues.
-> The converted 94B sound fonts work only with the Maxi Sound 64 cards that use Dreams default firmware. On a EWS64 with Terratecs own firmware it crashes when such a 94B sound font is loaded and a Midi gets played. It plays a few notes and then MPU Transmission Time-Outs occurs and notes stay stucked.
It is a bit unlucky since the Maxi Sounds can have only 16 MB RAM while the EWS64 can be equipped with 64 MB.
Thanks for the info!
As mentioned earlier, I was able to make some progress using the 94dinit DOS utility for the MaxiSound64. Maybe other information in that thread will help me sort out the issues. I think the main hurtle here is that I have no way to interact with the digital (non-MIDI) portion of this sound card in DOS because it doesn't seem like many\any sound cards actually used the SAM9407\SAM9707 chip itself for digital audio in DOS. Also, the mixer may not be set up properly to hear anything even if the MIDI is playing.
If the volume.exe program interacts directly with the SAM9x07's mixer then it may be possible to make that work (after using 94dinit), regardless of whether the maxinit tool works or not.
Okay, I have had a few minutes to look at this again tonight.
I made a nice discovery regarding loading sound banks in Windows 9x. If I use "Bank.exe" from the MaxiSound CD, it allows me to load any sound bank to the card without any errors or crashing. The only issue I have is that when "deleting" sound banks it will remove them from the various slots but it will not free up space, so deleting and adding more sound banks doesn't work with bank.exe. If I use the Dream Bank Editor's "reset" button, it fixes the free space and then bank.exe will allow me to upload banks again. Tedious, but there could very well be yet another tool, or another version of bank.exe that works without issues.
So, this is a great sign for the card. Everything seems to work perfectly under Windows 98 as long as I use the right software.
DOS is definitely proving to be a tougher problem. MAXINIT.EXE complains that there is no Maxi Sound detected, of course, so that doesn't work.
I think Unisound could fix it, since I seem to be limited by the initialization tools, but I'm not giving up just yet.
Okay... so far the only programs I can get to work with this thing in DOS are the ones that came on the CD with it and the 94DINIT.exe from the MaxiSound64 drivers I found earlier.
One interesting development:
Previously, the CD:\Hardware\PNP\ENPNPNS.EXE program required to enable the MPU-401 port in DOS would not work at all and would give a generic error suggesting maybe there was an EEPROM incompatibility. This is, I believe, the program that initializes the NM95MS14 PNP chip (the chip that contains the tiny 100 byte EEPROM).
There is also an identical copy of this program at CD:\Hardware\Test which does the same thing. I was poking around in the test folder and ran a program called 94COMT.EXE, which seemingly does nothing... but after running THAT then ENPNPNS.EXE now works! Well, at least it shows the following message:
NSM
MPU-401 enabled at I/O 330 IRQ 9
Soo... great, right? Well... sadly, nothing changes at this point. Games don't act any different, the 94DINIT program still initializes without errors, seemingly uploading the firmware and sound bank to the SAM9707 and setting the MIDI port to 0x330... but there is absolutely no difference that I can find, despite the PNP chip being initialized and now saying that everything was enabled.
Interestingly, when I run the DOS application DIAG, under "Sound Cards" it does not detect anything at all after ENPNPNS saying the MPU-401 port is enabled. But, if I run 94DINIT.exe (even without running 94COMT or ENPNPNS), DIAG will report that there is an MPU-401 card available at least.
It feels like I'm soooo close to getting this thing playing MIDI music in DOS... and yet, all I get is a blip\scratch\pop from the speakers when sending MIDI data from a game in DOS.
I have tried other slots on my motherboard (440BX with 3 ISA slots), I have tried a slower CPU (from PIII 850 to PII 266), I've tried monkeying with PNP settings in the BIOS, specifically, setting PNP OS from NO to YES makes the 94DINIT program not detect the card (which is expected).
If anyone has any suggestions, I'm open to any ideas at this point.
EDIT: Also, one neat thing...
I figured out that if I run EWSINIT.EXE /L from the EWS64XL driver package (DOS folder), it will seemingly read the PNP EEPROM settings on this card! I say this because the readout from that program almost exactly matches the contents of the 94PNP.PNP file, which is the plain-text firmware file in the Hardware\PNP folder:
1DATA SEGMENT 2;------------------------------------------ 3; Plug&Play Ressource file for 94PNP2 - NS95MS14 4; By : CD Date : Oct 14, 1996 5; (c)1996 Dream SA 6; Process as follows : 7; MASM 94PNP2.PNP; 8; LINK 94PNP2; 9; EXE2BIN 94PNP2; 10; Use 94PNP2.BIN to code EEPROM 11;------------------------------------------ 12; One logical devices : 13; Device 0 : SAM9407 14; 15;------------------------------------------ 16; Power-on NS95MS14 configuration load 17 DW 010FH ;extended interrupt mode, unqualif CS0/ 18 DW 0 ;no DMA 19 DW 7543H ;IRQ selects 20 DW 0CBA9H ;IRQ selects 21 DW 3 ;SAM9407 is 4 bytes (assumes no OPL3) 22 DW 0 ; 23 DW 0,0,0,0,0,0,0,0,0,0 ;RFU 24 25; PnP Header 26 DB 3AH,6DH ;Vendor ID NSC 27 DB 95H,14H ;9514 28 DW 0FFFFH 29 DW 0FFFFH ;serial # 30 DB 08 ;checksum 31; PnP version 32 DB 0AH,10H,11H 33; Id string 34 DB 82H,23,0 35 DB "DREAM 94PnP Home Studio" 36 37; Logical device 0 38;----------------- 39 DB 15H 40 DB 3AH,6DH,00H,00H 41 DB 2 ;IO range check possible 42 43 DB 82H,28,0 44 DB "SAM9407 Enhanced Wave + Midi" 45; Config 1 : Optimal 46 DB 31H,0 47; IRQ9 48 DB 22H,0,2 49; Port 330 50 DB 47H,01H ;16 bit decode 51 DB 30H,03H 52 DB 30H,03H ;Base = 330H 53 DB 4,4 54 55; Config 2 : Acceptable 56 DB 30H 57; IRQ 5,7,9,10,11 58 DB 22H,0A0H,0EH 59 60; Port 300 to 360 by steps of 16
…Show last 27 lines
61 DB 47H,01H 62 DB 00H,03H 63 DB 60H,03H 64 DB 16,4 65 66; Config 3 : Sub-optimal 67 DB 31H,2 68; IRQ 3,4,5,7,9,10,11,12 69 DB 22H,0B8H,1EH 70; Port 200 to 360 by steps of 4 71 DB 47H,01H 72 DB 00H,02H 73 DB 60H,03H 74 DB 4,4 75 76 DB 38H ;end dependencies 77 78; End-------------------------- 79 DB 79H 80 DB 00H ;Place holder for checksum 81 82 DB 0,0,0,0 ;add few bytes for fun!!! 83 84DATA ENDS 85END 86 87
There are some slight differences with the 97PNP2's PNP firmware of course... like the name of the product for example, and all of the comments (;) aren't there, but at the very least I can confirm then that the contents of the PNP firmware on THIS card match the earlier version and should hopefully be sufficient to allow this card to work in DOS once initialized.
So much information, but so little to show for it... argghh... 🤣
try running a game like tyrian from restart in ms dos mode. and set the environmental variables same as it is in windows.
I have tried the sound setup programs for Descent, Daggerfall and Nascar Racing and I have the same result on all three. It detects an MPU-401 MIDI device, and it sends the test music to it, but I just get a few random blips\pops from the speakers. No music.
where "HOON4D" in your case is "97PNP2" (the BIN file from your CD, i.e. Dream Firmware file for that specific design) and "GMSBK040" is "GMBK9708"
So, I don't know, maybe "MXSET97" is setting some mixer settings for the "Crystal CS4237" ISA chip found on that particular card and is useless for your card. In any way, I am attaching the above files that I found on one of my old hard drives (they included "1.bat" and "2.bat" files that give me the idea about the 2 steps - I don't know/remember anymore the source of the files) - I guess in worst case "MXSET97" will fail for you with error message "Crystal CS4237 not found" or something like that, but it's possible "MXSET97" is setting the Mixer of the DSP inside the Dream chip and so you can try with the files from the attachment:
and see what will happen... [UPDATE] I found 2 more such "mixer files" with the following note:
Mixer file supports popular games. Currently supported games as follows. We will support more games.
Warcraft II 2-Way Mixer, 4-Way Mixer
attaching them as well. So, I do believe maybe those mixer files really set the DSP inside the Dream chip and not the "Crystal CS4237" chip (unless that one has DSP inside as well), because I guess in case of Warcraft II they add some "sound effects" (probably in case of 4-Way Mixer, 4-channel that is "3D" audio or something like that), i.e. there is DSP processing involved.
[EDIT] one last thought - if the Mixer files are for "Crystal CS4237", then it's still interesting to be revered-engineered, because tools like "Unisound", which as far as I can tell supports "Crystal CS4237" chip and its mixer settings then can be used to load specific game profile mixer settings.
with the schematic and the GERBER files. So, if you're that interested you can order PCB for yourself right away. it's another story if you can source any of the necessary ICs though.
where "HOON4D" in your case is "97PNP2" (the BIN file from your CD, i.e. Dream Firmware file for that specific design) and "GMSBK040" is "GMBK9708"
So, I don't know, maybe "MXSET97" is setting some mixer settings for the "Crystal CS4237" ISA chip found on that particular card and is useless for your card. In any way, I am attaching the above files that I found on one of my old hard drives (they included "1.bat" and "2.bat" files that give me the idea about the 2 steps - I don't know/remember anymore the source of the files) - I guess in worst case "MXSET97" will fail for you with error message "Crystal CS4237 not found" or something like that, but it's possible "MXSET97" is setting the Mixer of the DSP inside the Dream chip and so you can try with the files from the attachment:
and see what will happen... [UPDATE] I found 2 more such "mixer files" with the following note:
Mixer file supports popular games. Currently supported games as follows. We will support more games.
Warcraft II 2-Way Mixer, 4-Way Mixer
attaching them as well. So, I do believe maybe those mixer files really set the DSP inside the Dream chip and not the "Crystal CS4237" chip (unless that one has DSP inside as well), because I guess in case of Warcraft II they add some "sound effects" (probably in case of 4-Way Mixer, 4-channel that is "3D" audio or something like that), i.e. there is DSP processing involved.
[EDIT] one last thought - if the Mixer files are for "Crystal CS4237", then it's still interesting to be revered-engineered, because tools like "Unisound", which as far as I can tell supports "Crystal CS4237" chip and its mixer settings then can be used to load specific game profile mixer settings.
Thank you for finding this! I'll give it a shot when I can, hopefully today. I found some reference to Hoontech earlier and I was hoping they were using a more reference-design for their SAM9x07 devices, so I guess we'll see. 😀
It's worth a shot! The other day I tried directly using EWS software (which is how I found their bank loader that works in Windows for this card) for DOS, but ran into similar issues as with the MaxiSound where the drivers seem to look for a specific card rather than just directly configuring the SAM9x07 chip. From what I have read, I believe EWS used an almost entirely proprietary approach with these cards so their software works differently than other devices that use similar hardware. Still, it can't hurt to just put an M= in a command line I guess.
Hopefully these two leads will get me somewhere. My next thought is that it may be a sound bank issue... like the banks aren't loading into memory properly for some reason. I have seen the funky things this card can do if I use two different bank programs to load banks, then delete banks without space being cleared... it ends up showing garbage characters in the list of loaded banks in Windows. So, it is possible that the banks are being corrupted when loaded by 94DINIT for some reason which is why music just gives me blips and pops.
... actually, now that I think about it, if anyone has a 94DINIT.EXE program from a driver package or elsewhere, let me know what the size and file date are, or just upload it here. I did not get one with this card, seemingly because by 2001 Dream no longer felt the need to support cards in DOS, but it's possible that it needs the newest version to actually work properly.
The 94DINIT.EXE program in the .rar file that mattw posted is nearly twice the size of the one that I was using from the MaxiSound driver package. It is also about two years newer, being from October 8th, 1998.
Using the newer 94DINIT actually made the card produce music in DOS!!! ... with two small caveats.
Using GSSBK320 (~3.78MB GS) from the Dream CD produced some of the craziest digitized-noise glitchy MIDI music I've ever heard. It sounds crazy enough that I'd consider it a feature... it's listenable in a "Star Wars droids making music" kind of way. Using GMBK9732 (~3.67MB GM) sounds similarly crazy, but with more normal drums.
However, with GMBK9708 (1MB GM) the music sounds perfectly normal! And it WORKS! Using GSSBK080 (1MB GS) also works, but the percussion sounds a little off, likely because it's a GS bank. I'm admittedly not familiar with how GM and GS differ when mixing and matching banks and tracks, so this is may be expected behavior.
So, where does the 97PNP2's DOS support stand as of now?
Using 94DINIT.EXE dated October 8th 1998 with 1MB GM banks seems to work perfectly fine under pure DOS. All that is required is that EXE file, the appropriate .BIN firmware for the card and the compatible sound bank in .94B format. You run the command (example: 94DINIT.EXE F=97PNP2 S=GMBK9708 P=330) and the card will give you wavetable MIDI in DOS with no TSR or other configuration needed. 😀
Why the 1MB limitation? I have no idea... I was thinking it had something to do with reading from the SIMM memory because this card has 2MB of RAM on board, but I think that chip is bypassed when the jumpers are set for the SIMM slot, so I don't know how it could be using it. Maybe the card reacts strangely to the jumpers under DOS in this particular setup? Who knows.
I will try ~2MB banks, and I will try jumpering the card for different capacities. And if I can, I'll try a different sized SIMM.
EDIT: By the way, the Hoontech mixer application complains about a lack of a sound blaster port being detected, so it does not run on this card. If there's a switch to bypass that check then it may still be possible to get it to make adjustments to the Dream chip's mixer settings, but I haven't messed with it yet.