1. OCAU Merchandise is available! Check out our 20th Anniversary Mugs, Classic Logo Shirts and much more! Discussion in this thread.
    Dismiss Notice

Grant's Socket 7 FreeDOS box

Discussion in 'Retro & Arcade Worklogs' started by Grant, Dec 30, 2020.

  1. Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    I've mentioned my Socket 7 box a couple of times here, I never wanted to do a worklog but today I found myself writing documentation for it, so I figured I should put some notes here.

    The system I'm recreating was "my" first PC (other than family computers), though my parents bought me this one for school.

    We ordered it from a newspaper ad and it seemed good on paper but had all the corners cut that could be:
    • I don't remember the ad, but I was convinced it was a "Pentium 200 MMX" until I opened it up (after learning a bit about computers) and found an IDT WinChip 2 (which did implement MMX but was a lower performer).
    • I don't remember original 2D graphics card, but I replaced it with an S3 ViRGE I got super-cheap in the hopes of getting some 3D acceleration working in the Tomb Raider demo on a PC magazine. Never did get the S3 ViRGE 3D "deceleration" working, turns out I would have needed an S3-specific build of the game.
    • The sound card was fully Sound Blaster compatible, but it was an Expertcolor OPTi MED3931. Coming from the Amiga, MIDI was a disappointment, but PCs were entering the age of multimedia. I remember the red PCB though.
    • The "LG" monitor that came with it was a counterfeit, which I found out when it died and I took it to a local CRT repair place who had seen a few of them.

    But even though it was a bit shit, I loved it. Played hours of Quake 1 (singleplayer I only had the shareware episode, but Team Fortress over dialup was my first multiplayer game), Quake 2, and anything else I could get my hands on with a software renderer. I had no income myself, and this was supposed to be a school PC, so I was stuck with software rendering for what seemed like an eternity, and would have been at least 3-4 years until I upgraded to a Socket A system (which I still own, and is another worklog).

    It ran Windows 95, 98, 2000, then Debian (after upgrading to my next gaming machine) as my intro to Linux. In keeping with my FOSS hippy-ism, I'm sticking to FreeDOS for this build. Learning DOS has been fun since I've never built a DOS system from scratch.

    These days I'm a bit "bimodal" with spending money on retro stuff. I know that even when splashing out $NNN on an obsolete component it's not the most expensive of hobbies, but I tend to only pay high eBay prices when I have some windfall money to spend. Apart from that, I'm a notorious cheapskate, always keeping the "...but emulation is free and gives a better result" philosophy in mind. This build definitely has a mix, but the cheapskate philosophy fits with the original box.

    Motherboard/CPU/RAM: Achitec ACHI-5VX / Intel Pentium 200 MMX / 128M EDO

    motherboard.jpg

    Purchased on eBay (it was gift money that finally kicked me into building a Socket 7 machine), with zero documentation other than a photo by the eBay seller showing it POSTing. CPU speed is selected by jumper, which I documented through trial and error here: https://forums.overclockers.com.au/posts/18465115/

    I couldn't find an IDT WinChip for cheaper than the Intel 200MMX, so I went with that.

    Purchased EDO RAM off eBay after the 32MB SDRAM stick I tried didn't work (the eBay seller's photo used EDO which is what prompted me), but I'm still not sure what the problem is.

    Other than that, it's pretty good. Has 2 USB ports via motherboard header, and boots from CD-ROM.

    Case: generic beige ATX

    I posted about cleaning up the rust on my old file server case here: https://forums.overclockers.com.au/posts/18707041/ . At this point the Cold Gal spray is wearing off a few contact points, so I might re-home it if I find another good case.

    Bought a ATX->AT converter off eBay, and used a ~300W PSU I had lying around for a while. I recapped the PSU early in the year in anticipation for this build.

    I/O backplate is a blank one off eBay too. Punched a circular hole for the keyboard port with a small flat-head screwdriver and hammer, and cleaned up with a round file.

    Graphics: Expertcolor S3 ViRGE PCI

    Found this in e-waste and the familiar brand was definitely a bit of inspiration to start this project. I need to see Tomb Raider decelerated with this card (the 200MHz CPU always handled software rendering pretty well)

    Optical: beige CD burner

    I think it's got manufacturer info on a sticker, but I forgot to check. This has been stashed away and would have been a part of my 2nd or 3rd PC builds.

    Secondary storage: 16GB ZIF IDE SSD with 3.5" IDE converter

    I think this was in a netbook I owned at some point, I think it's the original drive which I upgraded.

    Precision engineered double-sided tape on a piece of cardboard, for ease of pulling out and imaging.

    Floppy: 3.5" Floppy

    I had a Gotek hooked up to the board for testing before I put the system in a box, but with network and CD booting, I have no real need for floppies, so a real one is fine.

    Network: Intel Pro 10/100 Ethernet (PCI)

    Retro network adapters seem to come free in breakfast cereal boxes or something, so I picked the one I had in my junk bin with the best drivers. It runs a boot ROM during startup which is interesting, but netbooting doesn't interest me at the moment.

    Sound: ongoing, also a separate post

    Peripherals
    Monitor: Samsung Syncmaster 753DFX, bought new, retired, kept at parents place for several years
    Keyboard: AT keyboard I salvaged from someone giving it away a while ago.
    Mouse: Genius 3-button serial mouse, purchased on eBay.

    TL;DR pics

    Nothing fancy, but pics or it didn't happen. Current status:
    front.jpg

    Standard mess of ribbon cables:
    innards-20201228.jpg

    Set up and running Q2DOS under FreeDOS:
    q2dos.jpg
     
    Last edited: Dec 31, 2020
    JaC, juzz86, dalek and 8 others like this.
  2. Vanne

    Vanne Member

    Joined:
    Apr 20, 2003
    Messages:
    3,416
    Location:
    DXB.. mostly.
    Nice little build Grant, i bet you'll enjoy that mate. I have the same feelings for my very first (real) amd k63 build.

    Love the fact youve gone for the same equipment and havent tried to max everything. Love it!
     
    baronbaldric likes this.
  3. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    Installing FreeDOS

    This was fairly straightforward because I could boot from CD, so I used the FreeDOS 1.2 CD installer (the bootable installer is actually Linux-based). It took my 16GB drive and used 8GB of it, partitioned it into a 2GiB primary partition (formatted as C:), an extended partition containing the rest of the space. The extended partition contained 2x 2GiB partitions and a ~1.4GiB partition with the remaining space, these were unformatted. The CD-ROM was available a few drive letters down at G:. I've since formatted the other partitions and I'm keeping all non-OS data on them.

    The AUTOEXEC.BAT script it installs tries does some detection of virtualisation, which incorrectly triggered on my bare metal machine and tried to load some drivers for virtualised hardware, so I had to comment out that stuff.

    Network

    This was my first real foray into DOS drivers. I took a history lesson at the Networking FreeDOS page, and to get TCP/IP networking going in DOS there are 2 components: the packet driver and the TCP/IP libraries/programs.

    The packet driver was commonly available for the Intel 10/100 Ethernet adapter, it's called E100BPKT.COM. Running it on the command line (or via AUTOEXEC.BAT) with the magic parameters "0x60 16" (software interrupt and IRQ) initialises the card and installs the packet driver into memory (the binary is a TSR).

    The packet driver is used by networking libraries, but because DOS doesn't have an OS-wide shared library system, these libraries are compiled into the programs that run them. So the TCP/IP library (of which there are several for developers to choose from) is compiled into ftp.exe, telnet.exe, wget.exe etc. DHCP.EXE works by doing the IP lease, then writing the network information to a config file, which is read by the next program that needs to craft an IP packet or listen on a socket.

    FreeDOS includes some bundles of networking software based on WatTCP and mTCP, so I installed those from the install CD using the FreeDOS package manager FDIMPLES (it's a text-mode GUI program). I mostly use FTP in the mTCP suite to connect to my file server, the command to set active mode is "xfermode port" in the mTCP FTP client (I run a firewall on my file server and don't want to mess around with FTP connection tracking just to get passive mode working)

    Sound

    So the original purpose for this build was mainly to play games with digital audio, but TL;DR I got carried away. Here are the cards I've put in the box so far:

    Sound Blaster Live! PCI

    sblive.jpg

    DOS games that have digital sound mostly use the Sound Blaster driver (at least as the common denominator), and find the hardware either with per-game settings, or the BLASTER variable. This driver does direct I/O via the ISA bus, which is why PCI cards don't work natively in DOS. Creative Labs provided backwards compatibility with DOS in the SB Live! by using a software shim in their driver that emulated an ISA card, and translated the I/O to commands sent to the card on the PCI bus.

    I originally tried getting this working with a generic driver package from Vogons without knowing much about what I was doing, but I ended up getting it working with the package from philscomputerlab, which included some useful documentation and setup scripts. The trick was that you need to run a utility in the driver package that sets up the card's ISA resource settings (the BLASTER settings above), and stores these in the card's flash storage. You can then initialise the card after future reboots using the same settings, and use the corresponding BLASTER variable with games.

    FreeDOS uses an open-source Extended Memory Manager called JEMMEX, which apparently doesn't play nicely with the notoriously finicky SBLive! emulation. There is a switch "/sb" you can provide to JEMMEX in FDCONFIG.SYS (the FreeDOS config file equivalent to CONFIG.SYS) to enable compatibility with the SBLive! driver, but I didn't need to use it in FreeDOS 1.2 (I tried with and without, both worked fine).

    The main compatibility problem I've hit so far is that the Doom source ports that use Allegro don't work with the SBLive! driver for digital sound. They do find the emulated MPU-401 MIDI device and the emulated OPL synth.

    The emulated OPL synth is unreliable with the SBLive! as well. On most programs that use it, it's super slow (as in tempo if you're playing back a song). From memory Stunts worked fine with it though, but that has a bunch of different sound drivers I was trying.
     
    Last edited: Jan 5, 2021
    rugger, Vanne, baronbaldric and 3 others like this.
  4. elvis

    elvis OCAU's most famous and arrogant know-it-all

    Joined:
    Jun 27, 2001
    Messages:
    46,808
    Location:
    Brisbane
    The FreeDOS package manager supplies curl and wget DOS executables, which I found pretty good for grabbing things off my NAS and on to my DOS machines.

    Also check out SHSUCD:
    http://adoxa.altervista.org/shsucdx/index.html

    It allows mounting ISO images in DOS as a virtual drive letter.

    I tried to write a bit of a script to help with this, but it's all a bit crap and alpha quality:
    https://stickfreaks.com/software/dosisoify

    Great to see a FreeDOS project in here! I'm totally in love with it, also it never gets the attention it deserves. I started a thread on it a while back, and have been meaning to do more with it:
    https://forums.overclockers.com.au/threads/freedos.970154/
     
    Last edited: Dec 30, 2020
    baronbaldric, Grant and adz like this.
  5. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    The next chapter is relevant to "CD data on the hard drive"

    Quake

    Like I said in the intro, Quake is to me what Doom is to people who played DOS games before Windows 95. With the SBLive! drivers working, I was getting no digital sound in Freedoom, which came on the FreeDOS install CD so was an easy test. After some troubleshooting, I found SBEGO.EXE in the SBLive! DOS driver suite, which is a sound test program. Digital audio worked there, with cheesy recorded sound effects saying "8-bit testing!" and "16-bit testing!", which are fairly obviously a Silicon Valley engineer working at Creative Labs in the US in the 90s.

    So I copied across the contents of the Quake CD to the SSD, stuck the CD in the drive, and fired it up, and got digital audio from the game right off the bat, but the CD audio wasn't playing. Looking at AUTOEXEC.BAT, FreeDOS uses SHSUCDX by default (as a replacement of MSCDEX) to set up the drives. I found a DOS CD player CDP that doesn't use the MSCDEX-style driver, and that could play a CD, so a bit more digging and this was a known issue with SHSUCDX in FreeDOS 1.2. The main website for SHSUCDX specifically says v3.07 fixes the Quake issue, so I copied it to my system and tried it, still no luck. It possibly needs a newer UDVD2.SYS or kernel or something.

    My solution was to use QDOS, a source port of Quake to DOS, with a bunch of improvements. It supports playing music off the hard disk, so I decompressed the FLACs I have of the soundtrack, and copied them over. As an aside, it was at this point I first learned that the Quake CD audio tracks are pre-emphasised (and I did compare my rips vs. the original CD in a CD player), so I had to run a de-emphasis filter over them first.

    So with that little cheat, my project was effectively a success: I had the crunchy brown-green goodness on a CRT, which IMO looked better than GLQuake for a long time. I also got Q2DOS going almost immediately after, in the same way.

    Mouse

    I've updated the first post with a pic of the motherboard, its input options are:
    • AT keyboard connector
    • PS/2 pin header in place of where a PCB-mounted PS/2 port could go (just under the keyboard connector) I believe the 5 pins means it supports keyboard or mouse
    • 2 10-pin headers between the power connector and EDO RAM slots for serial
    • A parallel port header next to the IDE connectors
    • 2 USB port headers to the left of the top ISA slot
    I really wanted to get a serial mouse going, but I needed to play Quake, so I connected the case's USB ports to the headers and that worked fairly easily. The FreeDOS mouse driver is CTMOUSE ("CuteMouse"), but I needed to run USBUHCI.COM and USBMOUSE.COM (both included in FreeDOS) which set it up as an emulated PS/2 mouse for CTMOUSE. One weirdness I never got to the bottom of was that USBMOUSE would install fine, but make the PC speaker beep and type 0 on the keyboard (not to stdout/stderr). Probably some IRQ probing or something happening.

    Eventually, I got a few DE-9/DB-25 backplates with serial and parallel header plugs from Aliexpress. Plugged one in, plugged my serial mouse in, ran CTMOUSE, no luck. More troubleshooting on the software side, tested the mouse with a USB-serial adapter on a modern PC, and that worked fine ("inputattach" is the program to use on Linux, "sudo inputattach --mouseman /dev/ttyUSB0" worked for my 3-button mouse in both X11 and Wayland).

    I used the USB mouse for a while longer, but recently went back to troubleshoot it. I found this ISA multi I/O card in my parts bin:
    goldstar-prime-2-9226.jpg

    It has the same Goldstar Prime 2 9226 chip as this one documented here, but is a cut-down board with fewer jumpers. More jumper troubleshooting then... I didn't really need to, because I just disabled the on-board serial ports in the BIOS, but I did a little anyway:

    The cluster of 8 3-pin jumper headers in the middle (JP2-JP9) are pictured all in their "enabled" state: the 2 middle columns of pins in the cluster are high, and the columns of pins on the outer edges of the cluster are low. JP2 is COM1, with the DE-9 port hooked up to it, and JP8 is either Floppy Enable or Floppy Address, because the card conflicted with my real drive until I disabled the jumper. JP1 is directly hooked up to pin 39 in the IDE port, which I think is master/slave selection.

    Anyway, plugging the mouse into this card worked fine. I then checked the wiring of the DE-9 port to the IDC connector on the ribbon cable, and sure enough, the Goldstar card had this:
    goldstar-de9.jpg

    Whereas the Aliexpress backplate adapter had this:
    aliexpress-de9.jpg

    I tested the Goldstar cable directly in my motherboard and it worked, so rewired the Aliexpress cable to suit, and now I have the serial mouse working. No idea if the parallel port on the backplate has a similar issue, but I'll keep it in mind. Also, turns out COM1 is the lower of the two 10-pin headers on my motherboard.
     
    Last edited: Dec 31, 2020
    rugger, Vanne, elvis and 2 others like this.
  6. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    Sound Part 2: Fake Chips

    My issues with the SBLive! were:
    • Flaky digital support in eg. Allegro
    • Tried to emulate an OPL2/3 but painfully failed
    • The driver supported the game port for joystick but not as an MPU-401 MIDI interface (it does emulate an MPU-401 but hooks it up to a pretty good wavetable MIDI implementation. On the other hand, I have an MT-32)
    So I was cruising around eBay, and found a cheap board that was oddly sparse but had a Yamaha YMF-719B-S chip on it. It was from Western Europe where genuine retro pulls are common, so I took a chance on it.
    fake-opl-crystal-4232.jpg

    This series of chips is the last of the Yamaha ISA line that had a real OPL3 implementation, and are becoming sought after for DOS.

    Plugged it in, and it showed up in the PnP section of the POST screen as a "YAM719", which looked kinda right. Installed the OPL3-SAx driver package, and ran the SETUPSA.EXE program, which is both a menu-driven configurator (setting hardware resources and mixer levels), and also (with the /S switch) a boot-time initialisation program that loads settings from the config file.

    I was getting into the SETUPSA.EXE interactive menu, but it was failing to set up the card. Sometimes it would fail to load saying there was no card present. So a lot of re-seating and basic troubleshooting, before I grabbed another drive and installed Windows 98. This had some magic card detection that identified the card as a Crystal Semiconductor device. Closer inspection of the chip shows that it's been re-blacked and re-marked.

    I downloaded some Crystal DOS drivers, which detected the card as a CS4232. With headphones the card is quite noisy, and have a headphone-breaking problem that sounds like the capacitors being dumped into the output when the machine is powered off. Through speakers they're okay though. As an aside, when looking for Crystal driver stuff I found a tool that lets you change the PnP string in the card's flash storage...

    The driver sets up the standard I/O port for OPL, but this is intended to drive an external Yamaha chip which isn't present on the board (not even a spot for one). However, the MPU-401 port works, so I could drive my MT-32 for native or MIDI music in games, with digital audio out either the Crystal or SBLive! boards. To play General MIDI out of the MT32, you need to set it up by sending SysEx commands via a MIDI file. Quest Studios was a great resource for this stuff, the site is archived on the Wayback machine and at Midi Music Adventures. I used "playmid mt2gm/mtgm.mid" from the MT2GM.EXE package.

    To play music and digital audio out the same set of speakers, I need to mix the signals. The easiest way is to plug the output of the MT-32 into the line-in on the sound card. It was at this point that I found the DOS drivers for the SBLive! don't support mixing the line-in port, only the internal CD-ROM connector (I could route a plug to it, but haven't gotten to that point yet). The Crystal drivers do, so this basically worked. The Crystal's GUI mixer has an explicit selector for the mixer, and you only get to pick one of line-in, mic, or CD input.

    The downside is the Crystal's Sound Blaster emulation only emulates an 8-bit card (T4 in the BLASTER variable), even though it plays 16-bit audio through WSS. So I could play Doom with music and digital effects that sounded fine, but when I loaded up QDOS, which played the CD audio out of the Sound Blaster driver rather than mixing analogue audio in from the CD-ROM, it sounded noticeably bad.

    I tried using a pair of RCA stereo->mono adapters to mix the MT-32 and sound card outputs into my speaker amp (I'd done this before with other devices), but the MT-32 didn't like it, and I couldn't hear it when the sound card output was connected in parallel. I don't know enough electronics to understand why, so I bought a mixer off Aliexpress, and I'm waiting for it to arrive.
     
    Last edited: Jan 1, 2021
    rugger, Vanne, baronbaldric and 2 others like this.
  7. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    Mini-episode: The Secret of Monkey Island

    This game has always been on my backlog, even though I'm a huge fan of Sierra adventures, but I've been saving it until I could play it on a retro box. I put together the Ultimate Talkie Edition, which puts the voice acting over the VGA version and supports MT-32 music, and loaded it up on my P200 with the MT-32 feeding back into the Crystal card's line in. It loaded up fine and I got the beautiful opening song working, and the first few voice lines, but it would crash after a few seconds no matter what I did.

    Just wanting to play the game, I switched off the P200 (which is quite noisy with a single-speed PSU fan), plonked a modern Linux gaming machine in its place, plugged in a DVI-I->VGA adapter to the video card, a USB->MIDI adapter, a slightly different beige PS/2 keyboard, and the USB->serial adapter with inputattach, and played the game with the monitor/mouse/MT-32 pictured in the first post over the last weekend. Good stuff.
     
    rugger, Vanne, baronbaldric and 3 others like this.
  8. Pierre32

    Pierre32 Member

    Joined:
    Oct 13, 2019
    Messages:
    1,906
    Location:
    Sydney
    Really enjoying this build and all the detail provided. The "rebadged" sound card is a wild and cautionary tale. I've seen that happening with chips being sold in bulk from AliExpress, but not whole cards on ebay!
     
  9. pfrcom

    pfrcom Member

    Joined:
    Aug 23, 2009
    Messages:
    483
    Location:
    3114, Melbourne
    Grant likes this.
  10. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    Sound Part 3: At OPL's Gate

    So I got sold a fake card... the seller offered a refund but I was okay with it given the MPU-401, and it wasn't that expensive to start with. I really like the MT-32 as a MIDI device, but I couldn't rid myself of the appeal of an authentic OPL, and the SBPro mode of the Crystal card was noisy and had the pop-on-shutdown.

    Cruising eBay again and I found a "generic" Yamaha YMF-718-based ISA sound card from a retro shop in Canada, and with untracked shipping it was pretty cheap. I could also match the photo to a known board, a Labway A151-A00:

    labway-ymf-718.jpg

    This was the card I'd hoped for the first time: fairly low noise (although still only a SBPro mode for digital sound, plus WSS), no headphone-shattering pop, and a real OPL implementation to play around with. I know I can't tell the difference between this and emulation, but it definitely levelled up this build, and warranted some Doom time rather than the FreeDoom/Boom community WADs. I used MBF as the engine after getting confused with Doom source port history.

    My notes:

    To get the Crystal card going alongside the SBLive! card, I moved the SBLive!'s resources off the Sound Blaster Pro defaults: A240 I5 D0 H5 P300, although I left the Joystick port at default since that's where I'd plug one in if I decided to do that. This required me to run SBESET.EXE again to set those values on the card's flash storage, but I understood what I was doing this time around, and it means I can just go with "the default" for the Labway or Crystal cards depending on what's in there.

    I don't know if any games require an IRQ for the MPU-401, the Crystal drivers worked with the MPU-401 IRQ set to "off". The Yamaha drivers apparently set this up at "2/9", the de-facto standard, and don't allow it to be changed, so I'm not sure if that will conflict with the SBLive!'s wavetable synthesiser.

    The Crystal card's mixer utility had a radio button to select which input was mixed into the output, the Yamaha SETUPSA.EXE only had volume sliders, but I found I couldn't get the line-in working unless I set the other input sliders to 0.

    I also didn't know about the SB Mixer bug, so I'll need to set that volume level correctly.

    I've also since discovered that some games (which I haven't tried yet) require an intelligent-mode MPU-401 to work with the MT-32. The solution with a UART-only MPU-401 sound card is to use SoftMPU, but the techniques it uses to trap I/O to the MPU-401 only work with specific memory managers, and specifically not JEMMEX/JEMM386 which FreeDOS uses. I think the other proprietary memory managers work on the FreeDOS kernel, but since I wanted to keep the distribution as clean as possible, my snarky solution here will be to use an Amiga.

    Anyway, since I got this card sent untracked (but at least "Small Packet Air") from Canada, I knew it'd be risky. The ETA for that service on their website is still 5-10 business days, and a calendar month later I was starting to get worried, even after experiencing longer COVID-19-induced delays. In my worries, I had some more frivolous budget to spend, so I ordered a Resound 2 Adlib clone board assembled from USA, mainly because I thought it was cool. Their FAQ is clear about how they use grey-market OPL3 chips, but they test each unit before shipping. I'm still waiting for that to arrive, but the Labway card arrived the day after I ordered the Resound 2. This is what I'm starting to mean by the comment in my first post that I got a little carried away.
     
    Last edited: Jan 5, 2021
  11. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    Sound Part 4: Red-tinted glasses

    Like I said in the first post, my original 1996 box had a cheap Sound Blaster "compatible" clone, which I remember for its distinct red PCB: The Expertcolor MED3931. With my rebuild having a decent quality card with a real OPL3 implementation, I had no reason to go for the original. There were some on eBay in the USA for reasonable prices but ridiculous shipping, and a few local ones for prices that I could afford but would be offended to pay. Eventually one came up from a retro seller a few suburbs away from me for a reasonable price, so I went for it for the nostalgia:

    expertcolor-med3931.jpg

    I was surprised by how good this card almost was. It's definitely made for Windows 95, the official driver package only installs under 95 or 3.1. The manual describes the DOS driver a bit and says exactly what it does to your AUTOEXEC.BAT, so it was easy to grab the directory and set the SOUND16 variable up manually for SNDINIT.EXE to run. Rather than the text-mode GUIs for Crystal, Creative, and Yamaha, this was a fancy high-res VGA program with mouse support. I did try the generic OPTi 82c931 driver on the Windows 98 install I had, but the card was showing different auto-detected information than the driver .ini files wanted, and I gave up and used an unpacked DOS directory from the Internet.

    So setup was easy, and I had the standard SBPro 2 emulation with WSS. Testing out the FM synth, it actually wasn't bad. The basics are there, and most things sound quite close to a real OPL. The percussion was a bit off, but where it fell down were that some instruments are just really quiet, where if you didn't know what you were missing you wouldn't hear the part at all. The easiest example I have of this is Asteroid Dance from Tyrian. Compare the first 4 bars from a SB16:



    To OPTiFM (the link is directly to the song start)

    It was the YouTuber above that linked to the unpacked versions of the DOS driver too, they have a couple of other videos with more OPTi renditions of games including Doom..

    I'd love to understand what the actual problem is, it sounds like it could be a minor bug in an otherwise solid FM implementation, where if you just avoid certain limits of the synthesiser it sounds fine. Or it could be that there's an entire chunk of hardware missing from the implementation. There was some chatter in the Retro Sounds thread about coming up with a MDFourier test suite for OPL, I'd be interested in a higher-level "FM test suite" for comparing different implementations.

    So this card is fun, and I'd totally leave it in my build for extended periods while using my MT-32 for music, only that this is the only card in my collection that triggers my rev.0 MT-32's "buffer overflow" bug by sending SYSEX messages too fast down the UART. This is actually where I started looking at SoftMPU, because it can delay SYSEX messages to work around this bug.

    Another thing I found around the time of testing this card was that my planned ideal setup of the emulated SB16 via the SBLive!, with FM coming from a real OPL, doesn't work. Whenever the SBLive! is initialised, its FM emulation is running on I/O port 388h, and it slows down the playback even of a hardware synth listening on the same port. I started poking at driver configs - none of them have a user-selectable AdLib I/O port in their GUI, but most have it set in the relevant config file. I tried changing the I/O port in the file, and the SBLive! driver even reported the different port on initialisation, but that was a display value only - the card still responded on port 388h, and slowed everything down. Allegro (used in the Doom source ports) lets me configure the I/O port for FM synthesis, but I was quickly realising that the port was part of the standard, and it would be too much of a fight with games that assumed that port to try messing with it.

    Sound Part 5: Trying something new

    The Resound 2 arrived, and worked without a hitch:

    resound2.jpg

    There's not much to say about this, it works as advertised. As mentioned on the site, the audio output is low volume, but the card is very low noise and that was a conscious design decision. It does give a pop on shutdown too. I think this card will go in another machine, but it was fun to test.
     
    rugger, baronbaldric, Vanne and 2 others like this.
  12. Vanne

    Vanne Member

    Joined:
    Apr 20, 2003
    Messages:
    3,416
    Location:
    DXB.. mostly.
    thx for the review.. yeah the re-sound sounds good, but ill hold off, i have a lot of /other/ sound cards to test first..

    Love the red PCB, the white.. not so much...
     
  13. baronbaldric

    baronbaldric Member

    Joined:
    Oct 27, 2016
    Messages:
    421
    Location:
    Sydney
    Great build, really enjoyed reading the thread!

    If you are interested in Secret of Monkey Island and want to squeeze every bit of content out of all available assets to date check out this page: http://gratissaugen.de/ultimatetalkies/monkey1.html

    This work both under DOS and on ScummVM.
     
    adz likes this.
  14. rugger

    rugger Member

    Joined:
    Aug 24, 2003
    Messages:
    813
    Location:
    Perth, WA
    Yep, loved reading the thread.

    Thanks for the story!

    If you are interested, and your board runs an Award BIOS, it is quite likely possible that you patch out the hard drive size bugs in the BIOS and allow full 128GiB (137 GB, uggghhh) of hard drive space (with larger IDE drives capping automatically). Of course, you will need an OS that supports that, like Windows 95 OSR2 or Windows 98.
     
    Grant, adz and baronbaldric like this.
  15. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    Ahh thanks, I haven't gone back to repartitioning the drive yet, I didn't realise it was a BIOS LBA bug that could be the issue. My motherboard has an American Megatrends AMIBIOS. It's possible it's a bug, a setting I had in the BIOS options, or just lowest-common-denominator defaults that I got in the FreeDOS installer.
     
  16. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    I was playing around with the OPTi after listening to a bunch of recordings of it. According to people on the Internet, the "missing instruments" seems to be a bug in when the chip is being used as an OPL2, but anything using "OPL3 mode" (which could mean a few things) is fine. The biggest difference I can see is the OPL3 has stereo modes (so maybe OPL2 mode badly mixes down to mono and cancels out some sounds), but it could be something entirely different.

    The noise of the card was still bugging me. Many full-height cards (including my YMF718 card) have a couple of jumpers to set whether the output is "speaker out" (ie. run through the card's amplifier), or "line out" (bypassing the on-board amplifier), where "line out" is much preferred because modern cheap amps these days are much better than whatever's on board.

    The Expertcolor card didn't have such jumpers, so I just ripped out the amp chip and its supporting caps:

    med3931-lineout-front.jpg

    and wired up the lines that go to the amp chip's input directly to the 3.5mm socket:

    med3931-lineout-back.jpg

    Using a battery-powered headphone amp, the result is perfect - silence when nothing's playing, and clear audio when it is. With the noise (and shutdown pop) fixed, I'll definitely run this card a lot more, since it's something unique that DOSBox currently doesn't emulate.
     
    t8y, JaC, juzz86 and 5 others like this.
  17. Pierre32

    Pierre32 Member

    Joined:
    Oct 13, 2019
    Messages:
    1,906
    Location:
    Sydney
    Cheeky mod! Nice one. I don't know if you intended for this build to be a sound card test bed to this extent, but I'm here for it. Regarding the SoftMPU issues under FreeDOS, I wonder if you have considered a PC-MIDI, Orpheus or HardMPU which would negate that requirement (albeit expensively)?

    How did you go with that wee mixer you ordered from AliExpress?
     
  18. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    These literally only arrived this week (about 6 weeks from order), and I didn't have the free audio and power cables to immediately test them, but I plugged one of them in today for a test. I'm impressed, I thought using a mains-powered amp would introduce some 50hz hum, but these are just as quiet to my ears as my battery-powered Fiio amp. The power adapter I used was a fairly average (ie. better than the cheapest crap, but from memory it was from a Chinese manufacturer store on eBay) 12V 2A switchmode adapter.
     
    Pierre32 likes this.
  19. Pierre32

    Pierre32 Member

    Joined:
    Oct 13, 2019
    Messages:
    1,906
    Location:
    Sydney
    Handy to know :thumbup:
     
  20. OP
    OP
    Grant

    Grant Member

    Joined:
    Jan 23, 2002
    Messages:
    1,907
    Location:
    Wollongong
    Update: this is now in a new home thanks to dirkmirk. These things are great:

    * Perfect condition with no yellowing
    * Correct tower size for an AT box (even though it "cheats" by putting the small PSU alongside the motherboard to accomodate an ATX motherboard)
    * Well designed with removable motherboard tray, the weirdly-mounted PSU is on a removable bracket, and everything went together smoothly

    I'm still not one for tidiness when the machine doesn't need heaps of airflow, but there was enough room for everything:
    tsumori-case-inside.jpg tsumori-case-front.jpg
     
    Last edited: Mar 14, 2021
    JaC, dalek, atmo and 6 others like this.

Share This Page

Advertisement: