Pocket 386 retro laptop experiments: AdLib, Covox, and VGA

0.00 avg. rating (0% score) - 0 votes

The Pocket 386 comes with an OPL3 sound card, which is just barely enough for DOS gaming. For a $200 retro laptop, I would expect at least a Sound Blaster 16 with full support PCM sounds and MIDI audio. A Sound Blaster ISA card via the ISA expansion port worked well with my unit, but was too clunky to be used daily. Eventually, I decided to just be happy with the built-in OPL3 card, enjoying Adlib Jukebox music:

IMG_3513

TEST.EXE which comes with the Adlib’s driver disk works fine on the Pocket 386, playing several test notes:

IMG_3764

Most DOS games with Adlib support will work well with this OPL3 card, since OPL3 is backwards compatible with Adlib. Obviously, OPL3-specific features such as stereo sounds or additional FM channels will not be used unless the software specifically supports OPL3. During my experiment, I wasn’t able to find any true OPL3 player for DOS which worked well with the Pocket 386. One particular player, VGMSlap, seemed to play the audio fine, but crashed upon exit.

Under Windows 95, the OPL3 card is automatically detected as Ad Lib Gold Compatible (OPL3), allowing the built-in Media Player (MPLAYER.EXE) to play MIDI files:

IMG_3766

Out of the box, Windows 3.1 only supports Adlib (OPL2) but not Adlib Gold (OPL3). Installing the default Adlib (OPL2) driver allowed me to hear the Windows startup and exit sound, but nothing more. I tried installing different versions of Adlib driver disks I found online, but all I could play was a few ROL samples using Adlib’s demo player. I was eventually able to get MIDI playback to work with the OPL3 card by downloading FM MIDI Synth driver Version 2.14 by Jamie O’Connell and installing it from Control Panel > Drivers:

IMG_3514

With this, MIDI playback works fine using MPLAYER.EXE. Sound quality is great and the system remains responsive, even with Microsoft Word 6.0 running. On Windows 95, playing MIDI while using Microsoft Word would not be possible.

IMG_3768

There is a driver called ADLIBWV which allows you to play wave file on your Adlib card. During my tests, 8-16kHz mono WAV files work great, producing much better audio quality than the PC Speaker’s WAV driver for Windows 3.1, at the expenses of audio volume and system responsiveness. For a few WAV files, the output volume was too soft, even on an external speaker. I had to use an AliExpress headphone amplifier before I could hear anything. Surprisingly, the amplified audio is still almost noise-free. Not high fidelity of course, but good enough for me to enjoy, especially given the simplicity of the hardware:

IMG_3769

MediaSauce 1.1 is my favourite media player for Windows 3.1. It is lightweight, much more responsive than Windows Media 5.2 Beta 16-bit version and supports MID, WAV, AVI (Video for Windows codec only) as well as audio CD. WAV and MIDI playback from a playlist works well on my Pocket 386 using the Adlib wave driver. The user interface, perhaps developed in Visual Basic 3.0, with only standard Windows controls and beautified using colors and animated graphics, makes me feel nostalgic. It brings back memories of the time when computers were much simpler. Until today, I still remember most VB3.0 functions by heart without looking up even the built-in help. Modern languages with complicated syntax, multiple libraries, and forever-changing dependencies are not usable without constant Googling.

IMG_3517

ADLIBW driver works fine on Windows 95 too, allowing both Media Player and MediaSauce to play WAV files. Windows Media Player however complains that the hardware is not supported. I suspect Windows Media Player reads several additional fields to identify the playback capabilities of the hardware, which are not set properly by this driver. Audio quality with ADLIBW on Windows 95 is worse than Windows 3.1, especially if a heavy app like Microsoft Word is running.

On a whim I decided to purchase a Covox Speech Thing clone from eBay for $10, just to see if the audio quality could be better. As expected, the Covox is nothing more than an LPT DB25 adapter with a resistor ladder and a 3.5mm headphone socket. The ribbon cable connects to the Pocket 386 DB25 port at the back:

IMG_3518

Using CVXSND.COM (part of the Digipak driver collection) and SBPLAY, WAV audio was smooth, noise-free and overall much better than ADLIBWV:

IMG_3527

I also tried the Windows 3.1 and Windows 95 drivers for the Covox. Both worked fine. As the Covox has no built-in buffer and requires constant CPU time for smooth audio, the system slowed down significantly. On Windows 3.1, my mouse still worked and I could click Stop on the player to restore normal system operation. On Windows 95, my mouse became too slow to be used and I had to stop playback using keyboard shortcut. I eventually uninstalled the Covox Windows drivers, reverted to ADLIBW, and used SBPLAY for DOS to listen to my WAV files.

Interestingly, while ADLIBWV and Jamie O’Connell’s FM MIDI Synth drivers can be installed on the same system, only one could be active at any time. After playing a MIDI file (which activated the FM driver), WAV playback will not work until Windows is restarted, or until some changes to driver settings are made. On Windows 3.1, this can be triggered by going to Control Panel > Drivers. On Windows 95, doing the same is not possible since ADLIBWV does not show up in Device Manager – you will have to restart Windows to reset the state. Due to the lack of a Device Manager entry, to remove ADLIBWV from Windows 95, you will need to edit SYSTEM.INI.

There is an option for Disney Sound Source in the sound settings for Prince of Persia (both v1 and v2). This will not work with the Covox, as it expects a hardware audio buffer, which the Covox lacks. If you try this, all you will hear is loud white noises and some static.

IMG_3534

To give Prince of Persia a fighting chance on my Covox, I installed Visual Sound Blaster, part of the TEMU-VSB package, which emulates a Sound Blaster DAC using the Covox:

IMG_3528

With the sound device set to the emulated Sound Blaster, and the music synthesizer set to Adlib, Prince of Persia 2 launched just fine. The background music started, followed by the voice of the narrator. It worked well, or so I thought. Unfortunately, after a few seconds, the voice of the narrator stopped at “who climbed the palace wall to see her.” The game did not hang, the background music continued to play and I was still able to play the game, just without the emulated Sound Blaster DAC audio. I tried disabling the mouse driver, tweaking DMA as well as various BIOS settings, which didn’t seem to change anything. I believe PRINCE.EXE started to play with DOS memory right after that scene and caused the VSB TSR to stop working.

I took the opportunity to test the all-in-one Covox/Disney/Faster-Than-Light LPT sound adapter, purchased from eBay a few months back. Unlike the Covox which is just a simple resistor ladder DAC, this adapter comes with a few ICs for the Disney Sound Source hardware buffer, as well as some DIP switches and LEDs for mode selection. In Disney mode, the device worked well with Prince of Persia, although the audio quality was somewhat inferior to my Visual Sound Blaster.

IMG_3525

Unfortunately, Digipak’s driver for the Disney Sound Source (SOURCE.COM) did not work with SBPLAY on this board. I could only hear static during my tests. Even on Prince of Persia, occasionally there would be no audio until a cold reboot. I believe this is due to my adapter’s less-than-perfect implementation of the Disney Sound Source, rather than any bug with the game. I did not experience this issue on my Disney Sound Source adapter back then.

TEMU is an emulator for the Tandy 1000 3-voice sound chip. It will initialize fine on the Pocket 386, provided that no mouse driver has been loaded. Running TEMU with an existing mouse driver may hang the system.

IMG_3743

To get Deskmate to play any sound on TEMU, see this trick described in my previous article. In short, use the MUSIC.PDM and SOUND.PDM and associated resource files (such as .SND and .SNG) from DeskMate v3.01 which was released in early 1988, and not the versions that came with DeskMate v3.05. This is needed because later versions of these programs perform more stringent checks for Tandy compatibility and will not work with TEMU. You might also need to disable the mouse in Deskmate (using F10 > Setup from the desktop), otherwise MUSIC.PDM will hang, likely due to an IRQ conflict.

IMG_3778

With this, MUSIC.PDM was finally able to play the sample songs it came with. During playback, the software just said “press any key to cancel playing” without any visual advancement of the score or indication of the currently sounding note. From a modern perspective – human-computer interaction, user experience design or ergonomics, whatever they call it – the lack of ongoing feedback was a clear limitation. Yet somehow I did find joy in mucking with MUSIC.PDM, learning how to follow the music aurally rather than visually, internalizing rhythm and contours by ear. Despite, or perhaps because of its simplicity, that little music composer eventually became my companion, and I would use it every day after school to compose my favourite childhood melodies.

IMG_3530

I went through the SNG song files in Deskmate directory, all of which have not been opened in years. I played each and every song, listening to the melodies once again. The music was playing, the notes were sounding, the three FM channels were unmistakably present. Still, I knew something wasn’t right. It just didn’t sound the way I remembered it on my Tandy 1000. To this day, I still vividly remember the warm sound, the soothing tone, and the lulling rhythm coming from that machine. Just like how I remember my grandfather’s voice when he passed me the Tandy. “I hope you will build a career on this”, he said. I continued to use the machine well into high school, and eventually did build a career in software development, just as what my grandpa had hoped for.

Upon closer listening I realized that the articulated sound effect of each note was gone, or at least much less obvious on TEMU. This made the audio harsh, more like three PC speakers beeping in unison, unlike a true Tandy 1000 where each note has an attack and decay reminiscent of struck instruments. Back in the day, Tandy did everything they could to make the audio sound good within the severe constraints of the three-voice hardware. The speaker itself was physically cushioned, lending the sound a softer, warmer character that smoothed out harsh edges and masked many of the system’s limitations. The cheap Tecsun radio I was using as a speaker perhaps did not have any of this, producing audio that was inferior to what I remembered from the original machine.

Just like my previous attempt with Deskmate in DOSBox, I had no luck getting SOUND.PDM to work. It said “Must have digital sound hardware to perform this function”. I believe it checked for a Tandy BIOS, and refused to load when it couldn’t find any:

IMG_3533

An interesting thing about the Pocket 386 is that the seller will randomly pick whichever graphics card he has in stock to install on your device. I have 2 sets, one with a GD5429 2MB card supporting up to 1280×1024 at 256 colors, the other with only 512KB of RAM, which can barely support 800x600x16. To make full use of the 2MB card in Windows 3.1, I installed the official driver and configured the resolution in Main > Windows Setup. You can also do the same in text mode by running SETUP.EXE from the Windows directory:

IMG_3523

Why is the resolution abbreviated as 1280×1K×256 2MB Sfnt instead of being written out in full? Most likely, the abbreviated form exists so the video mode name fits within the fixed-size buffer allocated by the driver, a typical limitation of 16-bit device drivers.

I could not find a suitable Windows 95 driver for this card, although the default Windows driver allowed me to go up to 800×600 at 256 colors. I guess this is good enough:

IMG_3524

If after using Windows 95, you restart the machine and boot to Windows 3.1, there will be some display distortions (such as missing window borders) if the GD5426 display driver is used. I guess the Windows 95 driver sets certain display flags, which are not initialized by the Windows 3.1 driver. To recover, you must turn the Pocket 386 off and then turn it back on.

IMG_3526

This is Microsoft Encarta 1994 in all its glory, running at 1280x1024x256. This used to be my main reference source during my high school days:

IMG_3779

This is Microsoft Bookshell 1991 running on MS-DOS, showing the same dinosaur article. Despite the limited processing power of the 386, the software is very responsive – a keyword search would return results almost instantly:

IMG_3780

CIA World Factbook, released in 1989, allows you to look up known facts (area, population, official language, etc.) of most countries. The ISO file I downloaded from winworldpc.com predates the standardized ISO 9660 format and will not mount on most modern applications. To read it, mount it as a CD drive under VirtualBox, and use the guest OS (such as MS-DOS or Windows) to extract the contents. Take note that the actual text content is only a few megabytes while the rest of the ISO contains maps in bitmap format. To look up a country, enter its name, followed by show, which will then pop up a dialog for you to view the closest match.

IMG_3781

RVMS is my favourite menu utility for DOS. Unlike Norton Commander, it does not take up conventional memory, since each selected application is started from a BAT file, which is only created after RVMS has exited. It lacks an EXIT option (ESC does not work), which can easily be worked around by creating an empty entry called “Exit to DOS”. In the photo below you will see several options I have configured. Microsoft Bookshell 1987 was the first release of Microsoft Bookshell, running as a TSR and can be activated by pressing SHIFT-ALT. This version also allowed you to look up US ZIP codes at the time, a feature which was removed in the 1991 release.

IMG_3782

You can download a ZIP archive containing RVMS, SBPLAY as well as various sound and graphic drivers for the Pocket 386 here.

See also

My journey with the Book 8088: swapping CGA/VGA cards, broken CF slot, and USB booting
Tandy 2500RSX: a solid 386 workhorse from the DOS era

0.00 avg. rating (0% score) - 0 votes
ToughDev

ToughDev

A tough developer who likes to work on just about anything, from software development to electronics, and share his knowledge with the rest of the world.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>