Sunday, February 28, 2010

Perfecting the IBM Model M Keyboard

The IBM Model M Keyboard is among the best keyboards ever made.  However, technologically it has shown its age a bit, and even IBM cut a corner or two to reduce the cost of production.  If I had the means, I would make the following improvements:

1.  Make a 103-key Keyboard. 

Some people like to have Windows keys.  Sometimes even I can see their utility.  Windows + D makes a good "boss key".  Learing how to use the key combinations can make working in Windows more efficient.  However, I would prefer a longer spacebar than Windows keys the same size and Ctrl and Alt.  The 101-key Model M has empty spaces, the size of a regular key, in between each set of Ctrl and Alt.  Why not put Windows key in those spaces?  People who hate the Windows key can easily disable it in software.  For Macintosh users, perhaps an option could be made for a shorter spacebar and a "Windows" key the same size as the Ctrl and Alt keys.  On no account would I want a Menu key cluttering up the row, that key's function can be replicated by Shift F10.  However, should one want one, a standard size keycap with the Menu graphic can be included if one was willing to sacrifice a Windows key. 

2.  Improve the internal assembly

The assembly of the Model M, once the keycaps and keystems are removed, is one plastic layer with holes for the keys, three membrane layers, and a metal back.  The greatest dangers to the Model M, regardless of version, are liquids.  I spilled some wine into my Unicomp Model M, and despite the drain holes, the conductive membrane was ruined.  Later, I spilled a little G2 into my 1987 Model M and the B and M keys would give VB and NM when pressed.  In the latter case, I was able to open keyboard up and save the keyboard by wiping up the liquid.  The membrane is NOT internally sealed, nor can it be, but the membrane itself is three sheets of translucent plastic that could easily be replaced. 

The problem with replacing the membrane is that IBM secured the upper plastic layer to the metal layer by melting the upper plastic layer through holes in the membrane and metal layer (in the assembly) and letting the melted plastic cool into studs on the bottom of the metal plate.  There are lots of these plastic nubs throught the back of the keyboard assembly.  The issue is that the can break after a hard impact or by wear over time.  Once all are broken off, there is no way to resecure the plastic layer to the metal layer.  At that point, you had best buy a new keyboard. 

The solution is to use screws instead of melted plastic.  This way the user can unscrew the keyboard and clean or replace the membrane.  I believe this is how the Tandy Enhanced Keyboard operates.  (A nut should be used.)  Yes, it increases costs, but I believe it is better to extend the life time of the investment.

3.  Improve the controller

The Keyboard controller circuit has some issues.  First, it only supports AT & PS/2 style connections.  Since the AT connection is a thing of the past and the PS/2 connector is a legacy port on modern motherboards, the controller should add USB support.  Second, some Model Ms have controllers than can work with the original IBM PC and IBM PC/XT and (with a custom an adapter) the IBM PC Portable (before 2nd BIOS in the latter two cases).  Most do not, I do not have any that do.  I would love a truly IBM PC Compatible keyboard.  The Tandy Enhanced Keyboard works perfectly with an IBM PC 5150 and with any other true IBM PC-compatible computer. 

The IBM Model Ms I have ## 1390120 (ledless), 1390131 (silver logo), & 1391401 (grey oval logo) have a 6-pin RJ-45-like port on the rear to attach a cable.  IBM generally supplied AT & PS/2 cables, coiled.  Why not make a sturdy USB cable?  Since only four pins are used, the other two can tell the controller that a USB cable is being attached.  While there are AT-PS/2 adapters and PS/2-USB adapters (and vice versa), permanency is prized by some people. 

Finally, why not have a wireless dongle attachment?  If it attaches to the back, another dongle can attach to the PC.  Rechargeable through USB. 

4.  Add support for N-Key and 6-Key Rollover

The Model M does not support N-key Rollover.  In fact, depending on the keys pressed, it cannot register three keys at the same time.  Try pressing r y u all at once.  Unlimited key rollover is supported through the PS/2 interface, but only 6-key rollover through USB.  6-key is not that terrible, after all the functional limit is 10 keys unless the user is a rare polydactyl with a functioning extra finger.  In order to have unlimited N-key rollover, each key on the membrane needs to be isolated with a diode.  As this is rather difficult to achieve with a thin plastic membrane, please see my next suggestion.

5.  Use Printed Circuit Board Contacts

The IBM Model F keyboards used a Printed Circuit Board with key contacted etched in the board, and the key mechanism used a carbonized switch to conduct electricity between the two halves of the contact.  This denoted significantly higher build quality.  Also, it gives an easy platform to install the diodes needed for N-key rollover.  Get rid of those flimsy plastic membranes which true rubber domes use. 

6.  Fix the layout shortcomings

The IBM Model M keyboard had a few shortcomings over the older Model Fs.  One, the function keys were relegated to the top instead of the side of the keyboard.  Savvy keyboard users with the space can use extra function keys, so add a set of function keys on the left side of the keyboard.  F11 and F12 would go to the left of the top function key row.  This is nothing new, the Northgate Omnikey Ultra and Ultra T featured two sets of function keys in this fashion.

The ~` and Esc key can be exchanged using removable keycaps, so no adjustment need be made there.

Some people prefer that the L. Ctrl should be where the Caps Lock key is on a Model M.  All that is required here is to make a Caps Lock keycap and a Ctrl key (since the Model M's Caps Lock has cap and stem fused together).  I would also make two models of Ctrl key, one with the lowered area (so people would not strike it by trying to hit the A key) and one without.  Also, why not make a Caps Lock key without the lowered area. 

L shaped Enter key?  I have no particular views toward or against the big L shaped Enter key, which was a staple of the AT Model F keyboard.  But since it replaces the | \ key, the usual alternatives are not very good.  One option is to put it to the left of the Backspace key, which requires that key to be shortened.  I have never liked this option, which is perhaps the AT Model F's biggest shortcoming.  The next option is to put it to the right of the Shift key, ala the Northgate Omnikey Ultra and Avant Stellar Prime, which is better but unlike a laptop we are not pressed for space here.  The best place to put it is where one of the Windows keys go.  I do not feel that sacrificing a Windows key to be that great of a loss.

7.  Make the Keyboard Fully Programmable

While the keyboard can be reprogrammed in software, there are times when the keycodes being reported from the keyboard to the system would actually match what the key cap indicates.  This is especially true when you have reconfigured your keycaps to match a DVORAK or AZERTY layout.  No need to load drivers or special software.  Volatile memory on the keyboard contoller should be used to indicate which scancode it outputs for each key, so the programming can be platform independent.  A USB cable may need to be used for the programming option.

Friday, February 26, 2010

Famicom AV: Best Overall Choice for the running NES & Famicom Cartridges


I am a real fan of the Nintendo Entertainment System.  This little gray box is the reason why we still play video games today  We have not forgotten about it, we still enjoy playing many, many of the approximately 750 unique North American games released during the console's lifespan.  While there is something to be said for emulating the games, there is nothing quite like playing on a real system connected to a television screen. 

Using the NES today has one problem, but it is a big one, the gray box (which in enthusiast circles is called the front loader) is terribly unreliable.  Back in the day, the push-in-and-down cartridge slot caused stress on the connectors.  Eventually obtaining and maintaining good contact between the 72 pins of the cartridge and the connector was no longer guaranteed.  If contact was broken, then the game would fail to start or crash.  On pressing the power button, if you saw a blinking screen or a solid screen of one color, that meant there was not good contact between the cartridge and connector. 

Two other issues exacerbated this unreliable mechanism.  First was the NES lockout chip.  The lockout chip inside the cartridge communicated with the one inside the system, and if the could not establish or maintain their delicate serial communications, the system would reset about twice a second.  This meant flashing screens.  Second, children discovered that by blowing on the contacts of the cartridge or system, they could often disperse the dust causing the faulty connection.  The side effect is that the saliva being blown onto the cartridge connector would, over time, corrode the contacts.  Hence more unreliable connections. 

Many companies sell replacement cartridge connectors or refurbished NES units.  There are issues here too.  First, all connectors are not created equal, and many of them are so tight that you practically need a pair of pliers to extract the cartridge when you want to change a game.  Second, the tightness of the connectors causes them to wear out more quickly than looser connectors.  Eventually, the connectors will wear out.  Refurbishing the connectors yourself requires a lot of time and the patience to slightly bend pins back to give a proper connection. 



Fortunately, there are other options.  First is the Redesigned NES, better known as the Top Loader.  The Top Loader was released at the end of the NES's life in 1993 as a cheap, entry level system.  It was a seriously cost reduced design.  Gone is the lockout chip and the unused expansion port.  As its nickname suggests, the cartridge slot consists of a vertical slot and a dust cover.  The PCB is as simplified as it gets without getting rid of any essential components.  Games tended to work much more reliably in the vertical slot, no extra stress on the pins from having to rotate the cartridge to make contact with both sets of pins in the slot. 

Two issues developed with the Top Loader, one major, one minor.  The minor one apparently is that it would not work with certain unlicensed games that relied on the presence of a lockout chip and defeat it before the game would work  I have never been able to confirm this, except for the licensed rarity known as the Nintendo World Championships 1990 cartridge.  The Game Genie's PCB may be too thick to fit inside the slot, and there was an adapter to make it work, but it is now extremely rare. 

The major issue is that the Top Loader has the worst video quality of any official NES-compatible hardware.  Vertical lines run down the screen every other pixel it seems.  This is especially apparent on backgrounds of certain solid colors, which is common on older NES titles.  Add to this the R/F only output, (whereas the front loader has composite video as well), and you have a serious barriers to oldskool enjoyment. 



Before releasing the NES in the United States, Nintendo had already enjoyed great success with the basic hardware, the Famicom, in Japan.  The Famicom and NES are virtually identical from a programmer's perspective.  Hardware-wise, they use different cartridge connectors, the Famicom uses a 60-pin connector while the NES uses a 72-pin connector.  Using US cartridges on a Famicom requires a 72-60 pin converter.  Other disadvantages of using a Famicom is that the controllers are hardwired to the system and the cables are very short.  The cables tend to be approximately 3' long whereas NES controllers are 6' long. Replacing worn out controllers is not as easy as it is for the NES.

The other big issue with using a regular Famicom is that the R/F signal was designed to be tuned to Japanese standards, which are just different enough from US standards to be annoying.  While a regular NES or other console RF system tunes to channel 2, 3 or 4, you need to set your TV to channel 95 or 96 to get the proper frequency for the Famicom's RF signal.  Not all TVs can do that, although more modern ones can more easily.  The Twin Famicom by Sharp (designed by Nintendo) has the same problems but has a Famicom Disk System inside the unit.

More interesting is the Sharp Famicom Titler.  While it has the attached controllers, it also has composte and S-Video outputs.  While they provide a sharper picture, they have graphics issues.  Normal US NES and Famicoms use a 2C02 Composite Video PPU, the Titler and the Playchoice-10 devices use a 2C03 RGB Video PPU.  The Titler has a chip that converts the RGB output from the PPU to S-Video, composite video and R/F video.  The 2C02 cannot output a good S-Video signal because the luma and chroma signals are mixed within the chip.  The RGB PPU generates graphics with some differences from the composite PPU, leading to issues.  The RGB and Composite palettes are generally similar to each other but there are color differences.  The Composite PPU can generate more gray shades than the RGB.  Games like The Immortal will not show graphics on the RGB PPU because they use a feature (color emphasis bits) that works as intended on the Composite PPU (diming the brightness generally) which will give a solid white screen on an RGB device. 



Finally, let me discuss the Famicom AV.  This unit was first released in 1993 or 1994 just as Nintendo was ready to stop producing games for the Famicom.  It is the smallest true Nintendo NES/Famicom device.  Because of its relative newness, you can find them in good shape. 

It uses the Nintendo Multi-Out A/V connector that the SNES, N64 and Gamecube use.  (The RGB and S-Video cables will not output video).  Unlike the first model SNES, it does not have an R/F output, but the Nintendo RF adapter which plugs into the Multi-Out should work.  It uses the same power requirements as a SNES power adapter but the plug which it expects is different.  The system did not come with a power adapter as it was assumed the purchaser would use his or her original Famicom power adapter.  The adapter for a Sega Master System or Sega Genesis Model 1 fits and works perfectly with the Famicom AV.  The adapter's ratings are DC 10v, 850mA, center tip negative.

The Famicom AV is chiefly distinguished by its video quality.  It has the best true composite output of any other NES/Famicom.  With licensed and unlicensed cartridges, the vertical stripes are non-existent.  Even on the front loader NES they can be visible at times.  The audio is still mono as with any unmodified NES/Famicom; each audio outputs jack on any cable will output the exact same sound. 

The Famicom AV has the same two controller ports as found in the NES.  It also comes with two "new-style" (dogbone) controllers.  I personally prefer to use dogbones over the original old-style rectangular NES controllers because they are more comfortable to hold in your hands over an extended period of time and the concave buttons are easier on the thumb than the convex buttons of the old-style controller.  However, the controllers that come with the Famicom AV only have a cable length of 3 feet, NES controllers have 6 foot cables.  Gamers in Japan generally have less room than US, so the cable lengths are shorter.  Top loader NESes came with 1 dogbone controller, but it had a 6 foot cable length. 

The Famicom AV, just like the original Famicom, supports all official Famicom cartridges, including ones that have extra sound hardware within.  It also supports the Famicom Disk System.  However, games that made use of the microphone on the second attached original Famicom controller will not be able to make use of that functionality.  Fortunately, the functionality is not important in any game a non-Japanese person is likely to play.  The Legend of Zelda uses it to kill the Pols Voice monsters, Kid Icarus to lower the shopkeeper's prices.

The more important limitation of the Famicom AV's second controller port is that it does not support the NES Zapper or the Arkanoid NES Vaus Controller.  The reason why is because there are two data lines which are connected on the NES's second controller port but not on the Famicom AV's.  Fortunately, soldering two wires inside the unit can fix this, if you are brave enough to take an iron to the Famicom AV.

Playing NES games with the Famicom AV requires the player to use a 72-60 pin converter between cartridge and console.  These used to be very difficult to find.  60-72 pin converters (they have ribbons attached) were much more common because more people were interested in playing Famicom games in their NES than vice-versa.  However, with the greater availability of Famicom clones, 72-60 pin converters have become more available.  Even so, not all are created equal.  The "Family Converter" works perfectly with all NES cartridges, but it is no longer in production.  More recent converters tend not to connect certain pins on the bus to the Picture Processing Unit & Video RAM inside the NES.  While this is okay for almost all released NES games, 10 games (including Gauntlet, After Burner & Castlevania III) will be unplayable due to graphic errors.  The PowerPak also will not work with cheap converters.  With some soldering and trace cutting on the converter, this problem may be fixable.  

Having explained the caveats, I still maintain that the Famicom AV is the best way to go to play commercial NES and Famicom games.  You will enjoy the best overall experience.

Wednesday, February 10, 2010

Choices for Roland LA Synthesis

My principal interest in PC games generally begins at the "true" DOS games era, which began roughly in 1987.  Before that time, most games published for the IBM PC platform were ports from other systems.  Most games published prior to that time did not require DOS to run, they booted off a floppy disk when the machine was turned on.  Games generally supported the Color/Graphics Adapter (CGA), most often capable of four colors, and the PC Speaker, a mono device without a volume control that could change the frequency of a simple square wave.  If these games supported more advanced  graphics or sound options, the user needed a special system to enjoy these features.  The special systems, most typically the IBM PCjr. and Tandy 1000 line, had less than 100% compatibility with the IBM PC. 

In 1988 games that supported the sixteen color Enhanced Graphics Adapter (EGA) began to really emerge in the marketplace.  While some games had appeared in the previous years, 1988 marks the first year when, unless you had a Tandy, you really should have bought a PC with EGA card inside it.  Also in 1988, sound cards finally began to be supported by the major gaming companies.  Many early cards competed for a coveted expansion slot in a user's computer, but only two really gained any market acceptance.  The first was the Adlib card.  This card contains a Yamaha sound chip that works via frequency modulation (FM) synthesis.  As it was reasonably priced ($190) and offered far better sound than the PC Speaker or the Tandy/PCjr. sound chip and could be installed in any computer with an available slot, it rapidly became the sound card of choice. 

On the high end, game developers had begun to support Roland Corporation's MT-32 multitimbral sound module.  This was an external midi sound module that interfaced to the computer through an MPU-401 interface card and breakout box.  This device was intended primarily for computer composers and cost approximately $600 between the module and the interface.  However, the synthesis method used, LA synthesis, produced sounds far better than the Adlib's chip.  What is more, the user could program his own sounds into the unit and make music with it from a physical keyboard.

Thus, there were choices for both types of computer user.  Many, many games supported both devices.  The music quality generally was far more impressive on the MT-32 than an Adlib.  Soon, however, there was competition in this area.  Creative Labs' Sound Blaster cards quickly eclipsed the Adlib by using the same chip and adding a midi/joystick interface and digitized sound playback and recording at around the same price.  The lack of standardization in the midi world in which the MT-32 was designed was solved when the General Midi standard became effective.  Once GM devices began to proliferate, companies quickly abandoned the prickly MT-32.

The MT-32 and compatible modules may have been resigned to obscurity, and the games which used them to obsolescence, if not for the DOSBox emulator and the retro computing hobby.  The DOSBox emulator has long supported games which use the MT-32 by emulating an MPU-401 interface.  By connecting a physical unit to the modern machine's midi hardware (I use the USB Roland UM-1X), the music will play through the unit just as it would through a classic computer.  Retro computer enthusiasts bypass the emulator and use a hardware MPU-401 interface. 

No longer having to settle for Adlib music or having to pay extreme prices for the hardware, what is a lover of DOS games to do?  There is an MT-32 emulator called Munt.  While it is always in development, the current versions of the emulator sound very good and often indistinguishable from the real thing. Moreover, it can also emulate the CM-32L/LAPC-I and its extra sound effects.  But if you are committed to real hardware, let this post act as a guide.

The MT-32 and all compatible devices are based off Roland's LA32 chip and there are only eight devices that are truly compatible.  In addition to the MT-32, there is the CM-32L, CM-32LN, CM-64, CM-500, MT-100, LAPC-I, LAPC-N.  Having had personal experience with all but three of these devices in the past decade, I would like to give the pros and cons of each:

First Generation LA32 Synthesis

The first generation devices are very speed sensitive.  They required a 40ms delay between sending midi messages.  While this was fine on a 286 machine, the speeds of a 486 and higher 386s would cause the game to send messages too quickly, leading to Buffer Overflows, stuttering or wrong sounds and lockups.  The first generation devices are noticeably noisier than the later generations.  However, a few games from Sierra and other companies exploit bugs in first generation devices to produce sound effects which the later generation devices will not play correctly.

MT-32


This is the original module, and it has 128 preset instruments and 30 rhythm sounds.  It also has memory for 64 user-defined sounds which the musician sends via sysex.  It has 9 parts, with each part set to a different instrument and supports 32-note polyphony.  All external modules have three standard midi ports, one IN, one OUT and one THRU.

It has a twenty character LCD display which many games used to send cute text messages via sysex.   It has a buttons on the front to control various part parameters.  It can control the volume of each part as well as the overall volume digitally.  There is a key combination (press Master Volume and Rhythm at the same time, then press the 1 Button) to reset the module without turning it off.  There is also a diagnostic mode.  You can even see the Control ROM version info.  This module has 1/4" left and right audio output jacks. 

One lesser known difference between the early MT-32 and later modules is that the volume control knob sets the volume digitally on the early MT-32.  The later modules with volume control knobs set the volume at the analog amplifiers.

Second Generation LA32 Synthesis

These modules sound less noisy than the first generation modules.  They no longer require a delay between midi messages.  This means they are suitable to be used with any computer system, regardless of processor speed.  Some games will only work with second and third generation devices because they do not delay their midi messages. 

MT-32

The second generation of the MT-32 has a 1/4" stereo headphone jack.  All modules following will have right/left and stereo headphone 1/4" jacks.  The late MT-32 also contains demo tunes not present in the CM/LAPC series or the early MT-32s. 

MT-100


This module is a bit more obscure than the others in this category.  It is a combination of the capabilities of an MT-32 (minus some controls) and the Roland PR-100 sequencer.  Its status panel only displays eight characters at a time (as opposed to the MT-32's twenty character display) and will NOT display sysex messages.  Although its disk drive looks like a standard 3.5" drive, it uses 2.8" Quick Disks.  These are the epitome of rare media in this country. 

LAPC-I


This is the only LA32 device that is found on a PC expansion card.  This is an 8-bit ISA (f.k.a. XT bus) card.  It is 13" long, which is the maximum length of a PC expansion card.  It can be connected to an MCB-1 midi expansion box to interact with external devices.  This card adds 33 sound effects to the MT-32's capabilities, and certain DOS games used these sounds.  It also has a Roland MPU-401 interface on board, which many MT-32 compatible DOS games require to produce MT-32 sounds.  This makes it a very valuable card to retro computing enthusiasts. 

This card has left and right audio RCA jacks and a stereo 1/8" minijack.  Its MCB-1 has four midi jacks, 1IN, 2 OUTs and a SYNC.  The OUTs can become THRUs by programming the MPU-401 interface.

In addition to requiring a unobstructed full-length ISA slot (it won't fit inside any Tandy 1000, for example), this card also requires a -5v power source.  Modern ATX (2.0 or above) power supplies do not offer -5v power, and many computer cases cannot house 13" cards.  These problems are not new, however, as Tandy 1000 compatible machines cannot accept 13" cards and sometimes do not supply -5v power.  As this is an ISA card, it is more susceptible to electrical noise from the rest of the PC, but I have never read of any serious complaints. 

It may be possible that the earliest LAPC-I cards may not have jumper blocks to allow the user to select the I/O ports and/or IRQ to be used for the MPU-401 interface.  I have never seen a card lacking them.  Besides, many games expect a Roland MPU-401 to use I/O 330-331 and IRQ 2/9 and fail to work if the card isn't using those resources.

Because of this card's MPU-401 interface, Windows XP and older OSes can detect and install the card as a midi device.  DOSBox can use it directly in this fashion as can DOS games run in a DOS window.  If your DOSBox machine lacks ISA slots, you may wish to look at a USB2ISA adapter, but they are expensive and whether the card will work with such an adapter is uncertain.  Instead, you should stick it in a retro computer and connect your modern machine's midi interface to the MCB-1 midi box. 

If you use this method, in order to avoid resetting or restarting the retro machine every time you play a new game, you will need to send a reset command through a sysex program or embedded in a midi file.  However, by default the MPU-401 interface will not transmit sysex from the MCB-1 to the LA32 synthesis component on the card.  From the retro computer, you will need to run a program called MPUTHRU to instruct the MPU-401 interface to allow sysex messages to be accepted and sent to the LA32 component. 

CM-32L


This module has the same hardware features as the LAPC-I, minus the MPU-401 interface.  All the CM modules only have an analog volume control knob on the front of the unit, no display, no buttons to change parameters.  To reset these modules, you have to turn them off and back on, send a sysex message or play a midi file with the reset command embedded within. 

CM-64


This module has a CM-32L board and combines it with a CM-32P board, all in a plastic enclosure the same size as either unit.  The CM-32P uses PCM (pure samples) synthesis and has a slot to insert cards that will add additional sounds.  These modules are designed to co-exist, with the CM-32L using midi channels 2-10 and the CM-32P channels 10-16.  No DOS games are known to intentionally support CM-32P features.  Because there are two PCBs in this enclosure, the resulting noise floor is higher than using the CM-32L.  There is also an annoying feature: games that are not CM-32P/CM-64 "aware" and send data to the midi channels reserved to the CM-32P will produce unintentional, obtrusive sounds.  Sierra's titles from 1988 and early to mid 1989 suffer from this problem, fortunately you can use drivers from later games in all instances except early versions of King's Quest IV and Leisure Suit Larry II.  If you have one of these games, you can send a MIDI message to turn channels 10-16 off.

LAPC-N


This is just like the LAPC-I, but it is designed for the Japanese PC-98xx series of computers.  It uses the C-bus, which is similar to the ISA bus of the IBM PCs but utterly useless on them.  The only practical value this rare device may have for PC games is if you use it with its Midi Expansion Box (MCB-2), installed inside a PC-98xx machine and use the combo as a midi module.

There is a device called the C86BOX which allows you to interface with a pair of C-bus audio cards.  http://c86box.com/  The device is not cheap, but it can allow you to use an LAPC-N like an external module if you have the MCB-2 expansion.  The C86BOX can communicate with the cards by way of USB.  While the programs developed to communicate with the C86BOX are for the PSGs and FM chips found on many PC-98xx sound cards, this box will provide power to the LAPC-N.  Unlike the LAPC-I, the LAPC-N has "LA IN & OUT" ports which communicate directly with the synthesizer unit on the card, bypassing the MPU-401 interface.  You will not need a program like MPUTHRU to allow the MPU-401 to pass system exclusive messages to the LAPC-N.

Third Generation Roland LA32 Synthesis

Third generation modules have the best sound output quality to them, but the vibrato is noticeably different sounding, leading most users to prefer a first or second generation module. 

CM-500


This used to be a very prized device, as it is a combination of a Roland CM-32L and a Roland CM-300.  The Roland CM-300 is the barebones version of the Roland Sound Canvas SC-55, which is GS and (with later models) General Midi compatible.  A four-position switch on the back of the module needs to be set to use one, the other or both.  The switches are as follows:

Mode A - CM-300 & CM-32L at the same time
Mode B - CM-64 emulation
Mode C - CM-300 only
Mode D - CM-300 on midi channels 1-10, CM-32L on channels 11-16. 

Mode D is useless for DOS games that support MT-32 or compatibles, since they expect the module to use channels 2-10.  Mode C is ideal for DOS games that support General Midi, but useless for MT-32 or compatible games.  Mode B is generally useful for MT-32 compatible games, but it has the same problem as the CM-64 with regards to unwanted sounds coming from the emulated CM-32P.  Using Mode A will solve that problem, but it requires the user to send a command to turn off the CM-300 parts before starting a game.  You will not observe any results of changing the switch until you turn the device off and back on.

CM-32LN

This is another Japanese PC-98xx exclusive device, this time it was intended to connect to PC-98xx compatible notebooks through a special 110-pin connector.  Fortunately it also has standard-sized midi jacks, so it can be used with IBM PC games without difficulty.  It is also is grey in color, unlike the beige look of the rest of the CM modules.

Conclusion

If you want a module that just works with everything without any fuss, I would suggest a CM-32L.  If you have a retro machine that can fit the card, try to get the LAPC-I, but they are not cheap anymore.  If you want the best of both worlds, however, a combination of a first generation MT-32 and a CM-32L would work perfectly.  If you also want GM/GS compatibility and not a bunch of modules cluttering your house, try for a CM-500.  As far as places to buy, eBay is the obvious place but you should also consider Japanese Auction sites as well for some deals.