Showing posts with label Mods. Show all posts
Showing posts with label Mods. Show all posts

Friday, October 31, 2014

Console Upgrading Overkill

Sometimes, upgrades to a console are a good thing.  For example, I have no quarrel with flash carts.  Even though they were not period correct for the most part, the convenience of using one beats buying dozens and dozens of rare and expensive cartridges to play your favorite games.

I have no issue with repairs to a console, where feasible.  Some repairs, like recapping a Turbo Duo or replacing the CD lens of a Playstation SPCH-1001, are necessary to restore the console to working order.  Recapping a board may require a certain advanced level of skill, but it may be necessary to return the console to something as close to the out-of-the-box experience as possible.  For systems with ABS plastic yellowed by UV light, retr0bright and repainting may be the way to go.  I modded my precious Famicom AV, which I bought new in the box around 2003, to support a NES Zapper Light Gun in Controller Port 2.  The mod was simple, I only needed to solder two wires to connect the necessary bits from the 15-pin expansion port to the 2nd controller port.  You would not be able to tell the board had been modified unless you completely removed the PCB from the shell.

However, certain mods I am very uncomfortable with.  Modding a NES to display graphics above composite video quality is one of them.  The true Famicom and NES used the 2C02 PPU that generated NTSC composite color signals, mixing the brightness, hue and saturation signals inside the chip.  The video output is on one pin, making composite video the best video available from the chip.  (S-video would require two pins). For the original Famicom and NES Top Loader, RF was officially the only output available.  Composite video was available from the NES Front Loader and Famicom AV.

The 2C02 PPU has an official RGB variant called the 2C03 PPU which was used in the Playchoice-10 arcade machine and an identically functioning 2C05 PPU used in the Sharp Famicom Titler.  You can replace a 2C02 with a 2C03 in a Famicom or NES, but desoldering the chip is not for beginners.  The 2C03s are hard to come by and extremely expensive.  However, the 2C03 PPU is not 100% compatible with its composite brother.  Two of the grays in the composite PPU are missing from the RGB PPU, which will render them as black, resulting in a loss of detail in games that use them.  Colors will look a bit off and rather garish compared to the composite PPU.  Second, The Immortal, James Bond Jr., Just Breed, Magician, The Jungle Book, the Lion King, Noah's Ark and Felix the Cat use the color emphasis bits to darken the entire screen with a composite PPU, but with an RGB PPU, these games will show a totally white screen, making them completely unplayable.  (Just Breed is one of the very few Japanese games to use color emphasis throughout the game, so the issue is not as pronounced for Japanese games.)  A few other games, Final Fantasy 1 and 2, Super Spy Hunter and The Fantastic Adventures of Dizzy, use color emphasis for minor effects that do not affect gameplay.  The Titler converts RGB into S-Video, it doesn't output RGB natively but can do so without too much trouble.  Now there is one caveat to the rule that NES games should always use composite video.  It would seem likely that Nintendo's in-house development hardware may have used 2C03 PPU.

Today there is a modification board called the NESRGB.  This is a daughterboard which you mount the PPU into (after desoldering it from the NES mainboard).  The FPGA on the NESRGB monitors PPU accesses, take information from the palette registers and combines them with the video output signal to digitally convert the color into RGB.  This mod has the huge advantages of not requiring a rare 2C03 and does not perform an imprecise analog composite to RGB conversion like the French NES.  Unfortunately, the mod is more difficult than the 2C03 mod because you must save the 2C02 PPU.

Kevin Horton (kevtris) and Jason over at Game-Tech.us are deep in development of a Hi-Def NES mod that installs similarly to the NESRGB.  However, it outputs to an HDMI cable at 720p or 1080p.  It also emulates the NES and expansion audio channels, because they cannot be captured digitally like the video can.  It can also apply smoothing scalers and scanline filters.

If you don't want to mod your NES, then you could consider the Super 8-bit Video Game System :  https://www.tindie.com/products/low_budget/super-8-bit-console-with-new-v30-pcb/
At $499.00, it will hit the wallet really hard.  Its case is made out of aluminum and it supports RGB, S-Video, composite video and stereo sound.  It uses 2A03s and 2C02s reclaimed from Nintendo machines but the PCB is a custom design and the rest of the components are new.  It has a NESRGB board built in. It has two NES controller ports properly spaced for the four player adapters and a Famicom expansion port.  The latest revision of the PCB also supports the Famicom microphone, something not implemented elsewhere outside an original Famicom.

Bunnyboy of NES PowerPak fame has been devolping an HDMI NES.  This is a complete clone, and should be far more accurate than the typical Taiwanese System-on-a-Chip designs.  However, the hardware that will emulate the NES is far, far more powerful than the NES, so I ask how different is it than running a NES emulator and outputting it to a TV?  One advantage will be that there will be less, if any input lag to deal with from reading the controllers or having the LCD interpolate the standard definition frame, since the system will output in 720p/60fps.  The picture will be sharp as it can be on modern LCD TVs, hopefully the device will be able to get all the PPU and APU quirks right.

Another unnecessary NES mod is the so-called stereo sound mod.  The 2A03 CPU contains an Audio Processing Unit that outputs audio on two pins.  One pin contains the two pulse wave channels and triangle wave channel, the second pin contains the noise and PCM channel.  These can be split into separate outputs easy enough, but the NES was not designed for stereo sound.  Most games use the pulse and triangle waves for music and the noise and PCM for percussion and sound effects.  I think the resulting sound is very unbalanced toward the waveform output.  Earlier games tended not to use the PCM channel, so the output for it and noise would sound very quiet.

On the other hand, modding the original Famicom or Top Loader NES to output composite video is a worthy endeavor.  The Famicom was RF only, and the Japanese RF channels are well-nigh impossible to turn perfectly to US TVs.  Composite video is universal in NTSC countries, RF is not.  When the Famicom was released, the Sharp My Computer C1 TV was also released and it used an internal composite video connection.  Gaming magazines would take their screenshots from this TV because of the improved picture quality.  The video output quality of a standard Top Loader NES is comparative garbage, but it can be brought into line with the Front Loader NES and Famicom AV with a mod.  The Sega Master System Model 1 has composite and RGB output at its DIN, but the Model 2 has RF only and requires a mod to support either.

When you upgrade to the 4th and 5th generation systems, then RGB becomes available for all of them, many via a modification, but the original SNES, Playstation, NeoGeo, Atari Jaguar, Phillips CD-i, the Sega Master System, Sega Genesis Models 1 and 2, Sega Saturn and Dreamcast offer it on their AV connector.  The N64, Turbo Grafx, CD-i and 3D0 can be modified to support it, one way or another.  For those of us in the United States, true analog 15kHz RGB monitors were rare.  Component video is the closest substitute, but RGB to Component video conversion requires a converter box.  RGB is pushing it, especially with the Genesis.  The Genesis was known to use dithering that NTSC resolution and decoding would not completely resolve, but would look extremely pixelated on an RGB system.  The SNES games can also take advantage of the fuzziness of composite video when dithering.  The early 3D consoles like the N64 and Playstation tend to take advantage of the natural anti-aliasing effect that composite video can produce.  Viewing these consoles in RGB, where most of their 3D is in a low resolution form, shows sharp jaggies.

One last issue I want to address is how many people enjoyed RGB when these consoles were the current generation?  RGB, even in Japanese (JP-21 connector) and European TVs (SCART connector) was strictly high end in the 1990s.  The main TV may have had a connection in the more affulent homes, but many video game consoles tended to be relegated to the second TV.  Hours of video game playing tended to tie up the main TV, so parents tended to insist that a video game system be connected to another TV.  The second TV would be lucky to have composite video, and many people didn't know better and simply used their RF switch.

Saturday, October 25, 2014

Famicom AV : Issues and Solutions


Famicom AV Box, Console and One Controller (Not Shown, Second Controller, AV Cable, Manual and Warning Card)

One of my first blog posts was about the Famicom AV, the final iteration of the 8-bit NES hardware.  Released in late 1993, it was modeled after the NES Top Loader.  Unlike the Top Loader, or the original Famicom which it replaced, it boasts the best composite video quality of any of the NES consoles.  It completely lacks the video jailbars that are notorious on the Top Loader, quite visible on the Famicom and still can be seen in a small way even on the NES Front Loader.


It is much more import friendly because it does not use an RF adapter tuned to odd frequencies as in the Famicom (US Channels 95-96) and does not have the Famicom's hard-wired controllers.  It retains compatibility with the Famicom Disk System and all Famicom expansion controllers and devices.  It can play any US game with a pin converter and doesn't care about a lockout chip.  These were the last systems Nintendo made, and they are very reliable and well-built.  Fortunately, using one outside of Japan is easier (if not cheaper) than ever before, so with that I present an updated guide :

1.  Power Supply


If you get a Famicom AV in the box, it comes with the console, two restyled "dogbone" controllers and the manual.  It did not come with a power supply because it was intended to replace the buyer's existing Famicom.  The buyer was expected to use his original power supply.  The NES power adapter will not work because it outputs AC and is converted to DC in the console.  It should never, ever be inserted.  The SNES power adapter would work, but the connector is very different.

The proper Famicom or Famicom AV power supply adapter is rated for 10v DC, 850mA, center tip negative.  Fortunately, the most convenient solution in the United States and Europe came, ironically, from arch-rival Sega.  The power supply adapter for the Sega Master System and Sega Genesis/Mega Drive Model 1 fits in the Famicom AV's power socket and has the correct specs.  These power supplies, or third-party adapters, are common enough to find.  Radio Shack should have a suitable power supply adapter, and  you should use an M Adaptaplug with it on the Famicom AV.

2.  Controller Cables


The cables on the included dogbone controllers are only 3' long.  This made some sense for a Japanese household where space is at a premium, but a US household has much more square footage.  NES controllers are 6' long.  One solution is to use NES extension cables, which are much easier to find today than they were 10 years ago.  Another solution is to use the NES Satellite or Four-Score, which can act as an extension.  The NES Satellite or Four-Score will NOT allow you to play as player three or four in Famicom games, they only work with NES games.  You can play NES 4-player games on the Famicom AV with a suitable pin adapter.

3.  Zappers and other Controller Port 2 Input Devices


While the Famicom AV's controller sockets look identical to the NES's sockets, there is a difference between them.  The NES connects +5v, Ground, Clock, Latch/Output, D0, D3 & D4 on both ports.  The Famicom AV's ports leave out D3 and D4.  The standard controller only uses D0.  The Zapper (including workalikes like the Konami Laser Scope), Power Pad, Arkanoid VAUS Controller all rely on D3 and D4.


Fortunately, the signals for the second controller port D3 & D4 are available on the 15-pin Famicom expansion port.  You can solder a pair of wires from that port to their respective lines on the second controller port on the front of the Famicom AV.  Here is a photo that shows the wiring :


Taken from : http://forums.nesdev.com/viewtopic.php?p=34665#p34665

One alternative is to obtain the Famicom equivalent of the Zapper, the Video Shooting Series Light Gun which looks like a western six-shooter : http://famicomworld.com/system/controllers/video-shooting-series-light-gun/  It is nowhere near as common as the Zapper.  The Japanese version was never bundled with the console and only supported in five Famicom games, as opposed to fifteen licensed and unlicensed NES games.

The Famicom equivalent of the Power Pad is called the Family Trainer Mat and was only released by Bandai in Japan.  It supports ten unique games, five of which found their way to the NES.  The NES has one exclusive, Short Order / Eggsplode!.

Unfortunately, the Famicom Arkanoid controller will not work with the US version of Arkanoid, and the US version of the Arkanoid controller will not work with the Japanese versions of Arkanoid, Arkanoid 2 or Chase HQ.

If you want to make sure own adapter, you will need the end of a Famicom expansion port controller or a Neo Geo MVS Controller expansion cable and a NES expansion cable or controller socket.  I would strongly suggest a continuity tester to determine what wire connects to which pin.

4.  AV Port


While the Famicom AV comes with a stereo AV cable, if you buy a loose console, you can use any SNES, N64 or Gamecube Composite Stereo or Mono AV cable.  The Famicom AV's audio is mono only, both the red and white jack outputs the same signal.  No NES or Famicom supports stereo audio.

You may need an RCA splitter if you have a mono cable and your TV has stereo inputs.  Otherwise you may hear sound only out of one speaker.  S-Video and RGB-SCART (only) Nintendo Multi-out cables will show no video, the Famicom AV is composite only. There is no internal RF adapter in the system, but the RF adapter and cable that attach to the Nintendo Multi-AV Out port will also work or you can use an external RF adapter such as from Radio Shack.

5.  Flash Carts


The best flash cart for either the Famicom or Famicom AV is the Everdrive N8, which has a 60-pin Famicom version.  No need to fiddle around with converters as with a NES PowerPak or Everdrive N8 NES version.  The Everdrive supports expansion audio, Famicom Disk System images, the common mappers. and several Japanese-only mappers.  It also has a battery for saving games to RAM without turning off the cartridge.  It does not add nearly to the jailbars in the video output, unlike the PowerPak.

6.  NES-to-Famicom Cartridge Converter

The NES uses a 72-pin cartridge connector, the Famicom uses a 60-pin cartridge connector.  Unfortunately, most of the ones available on the market are not fully compatible with certain NES games.  Lazy and cheap converters tie Famicom pins 48 & 49 together. These are three of them :



This what most, but far from all, Famicom or NES cartridges do.  Some NES cartridges (MMC5 games, Gauntlet, Rad Racer 2, After Burner) that do advanced things with the graphics name tables need the pins separate and fail to work when they are not.  Additionally, the Everdrive N8 and NES PowerPak need those pins separated.  You will have to cut the pins and wire them up to the appropriate pins.

This is the best converter I have found.  While it needs the mod, it fits well inside a Famicom AV.








1.  Fixing the Cartridges that use advanced Nametable Mirroring methods

Most Famicom cartridges tie pins 48 and 49 together.  Similarly virtually all NES cartridges tie pins 57 and 58 together.  When they are tied together, regular nametable mirroring methods are available.  Nametables are the name given to the tile maps for the backgrounds and the NES has enough internal RAM for two. When separated, the cartridge can add additional nametables with RAM inside the cartridge or map Character ROM directly to nametables.  The following NES cartridges have the hardware that can or does take advantage of this :

After Burner
Bandit Kings of Ancient China
Castlevania III: Dracula's Curse
Gauntlet
Gemfire
L'Empereur
Laser Invasion
Nobunaga's Ambition II
Gauntlet
Romance of the Three Kingdoms II
Uncharted Waters

Castlevania III is the only game on this list to have a licensed PAL release.  In addition, the PowerPak and the Everdrive N8 require these pins separate as well.  There is also a reproduction NES cartridge of Rocman X by Sachen (which may have originally been a Famicom cart) which requires this mod to run in the converter.  More advanced experimental and hobbyist NES boards will require it.  There are more Famicom cartridges that use ROM or RAM nametable mapping or require the pins to be separated, including all MMC5 games and all Namco 129/163, Konami VRC6 and Sunsoft-4 games and Napoleon Senki.  Any reproduction or pirate NES cartridge of those games will also need the mod as well.

The fix is simple enough, first cut the trace on the Famicom cartridge edge between pins 48 and 49.  Next, solder a wire from NES pin 58 to Famicom pin 49.  Finally, solder another wire from NES pin 57 to Famicom pin 48.  

2.  Adding Expansion Sound

The NES PowerPak and Everdrive N8 NES Edition support expansion audio.  They use NES pin 51 to output the expansion audio. Because the NES had no official method of routing expansion audio, the PowerPak decided to use the otherwise unused NES pin 51 and the Everdrive followed suit.  Any NES reproduction cartridge of a Famicom game like Gimmck! or Just Breed will also follow suit.  NES pin 51 connects only to the unused expansion connector on the underside of a front loader, and a resistor can connect that pin (pin 3) to the pin (pin 9) with  47K resistor that will mix the cartridge audio with the internal NES audio. 

Fortunately, the Famicom does not need a mod because it has a pair of pins, 45 and 46, which allow a Famicom cartridge to mix in cartridge based audio.  If the cartridge hardware does not support external audio, these pins will be connected together.  If it does, then it will separate the pins and mix the internal Famicom audio coming in from pin 45 with the cartridge audio and send the mixed signal to cartridge pin 46. From there it goes directly to the Famicom's RF unit or the Multi AV of the Famicom AV.  

This mod is really easy, but you will be using 10K resistors to perform the connections.  First, cut the bridge between Famicom pins 45 and 46 on the converter.  Next, solder a resistor from NES pin 51 to Famicom pin 46.  Finally, solder a second resistor from pin 45 to the leg of the resistor nearest the Famicom pin connector.  If you find the resulting audio not to your liking, you can use potentiometers instead.  I would suggest using a value of less than 10K on the resistor coming from the AV Famicom, as its volume output is slightly lower than the older Famicoms.  

7.  Microphone


One minor issue with the Famicom AV is that it does not support the microphone on the second controller of the Famicom.  You can find a list of games that use it in this thread : http://www.famicomworld.com/forum/index.php?topic=2355.0

In most instances, the microphone only has marginal use at best, but there are three or four Japanese games that require using the microphone at some point to progress.

An alleged issue is that expansion audio from those cartridges which contain it supposedly drown out the internal audio.  Non-AV Famicom with earlier circuit boards have been said to have louder internal audio output, but Famicoms with later circuit boards have quieter internal audio.  In my opinion, there is little in the way of solid, concrete evidence to support this.  In fact, the audio circuits seem to be the same regardless of Famicom or Famicom AV console used.  Additionally, there is no apparent difference in the loudness between the 2A03G used in later Famicoms and the 2A03H used in most Famicom AVs.  There is a difference between the 2A03E used in the earlier Famicoms and the late Famicoms, so expansion audio will be a little more punchy with the Famicom AV.  However, it is a mistake to believe that expansion audio drowns out internal audio in the Famicom AV.

Saturday, October 18, 2014

Hand-held gaming mods : Success and FAILURE!

If failure is one of the basic freedoms, as the Fourth Doctor tells D84, a sentient robot in the Robots of Death, then I have had been feeling very free lately.

Lately I have had a resurgent interest, as regular readers of this blog may note, in the Game Boy line.  I had a Game Boy Pocket and finally decided to try to install a backlight into it.  I ordered my backlight from Hand Held Legend, and it came very quickly.  I wanted a white backlight so as to minimize the color change when the backlight is installed.  While it will not look exactly the same, the Pocket's screen is close to true grayscale.

Before I could add the backlight, I discovered that the A/C power socket was not providing power to the system.  Batteries would work, so I guessed it was a bad connection.  I did not have a multimeter handy which I could use as a continuity tester.  The only schematic I had was for a Game Boy Color, and while the power section is very similar, there are differences.  I was able to fix the issue by soldering a wire from the positive pin to the positive battery terminal.  I do not believe that socket is connected exactly in this way and I may have destroyed an Official Nintendo Game Boy Pocket AC Adapter getting it to work.  I believe that at the very least there is a diode between the positive pin and terminal.  Fortunately, I had bought a Radio Shack (Enercell) 3v/700W AC adapter that worked.  You need to get an Adaptaplug Type A and the tip must be positive.  Unfortunately the wire I used for the patch was a bit too thick at .22 or .24AWG to snake it comfortably around the case.  Most Game Boy cases are tight, and tighter than they look when it comes to mods.

Okay, I fixed the AC power socket so I could use my 64MB GB Smart Card.  With the AC attached, there are no issues with contrast fluctuations with the screen.  I have read that this is also a concern with the vastly superior EverDrive GB, one of which I hope to obtain by this Christmas.

Now came time to install the backlight.  To install a backlight in a Game Boy or Game Boy Pocket, you need to remove the reflective and polarizing layers from the glass Liquid Crystal Display.  In order to remove these two layers, you have to wedge a razor blade between the layers and the glass, get a corner separated and then carefully pull the layers from the glass without destroying the screen.  The screen has connections horizontally and vertically, and the layers are affixed to the screen with some kind of adhesive.

The hardest part of the mod is removing these layers without cracking the screen or irreparably damaging the connections between the screen and ribbon cable.  While the screen comes totally away from the PCB, the ribbon cable goes up the back where you need to pull.  You have to get your razor blade in there without slicing the ribbon and pull all the layer off without damaging the ribbon or dislodging the ribbons connections.  I thought I did it right, but after I removed the layers from the Game Boy Pocket's screen, I found I had damaged the connection between the screen and ribbon cable.  There was a large gap in the scrolling "Nintendo", at least 16 pixels wide.  Unfortunately, unlike with an original Game Boy, heating up the area where the ribbon cable meets the screen with a soldering iron will not fix it.  I was able to get the lines appear some of the time by bending the ribbon on the bottom forward quite a bit, but this was obviously not a solution that would work in the long term.  Scratch one Game Boy Pocket.

I was not dispirited by this disappointment, and I knew that my local vintage gaming shop had an Original Game Boy, and I bought it off them for $20.  It was a bit dirty, the screen protector needed replacement and I could see that dirt had found its way onto the screen, but nothing that my used toothbrush and can of compressed air couldn't fix.  Fortunately the backlight I acquired can work in either a Game Boy or a Game Boy Pocket, and can fit inside the area for the screen without cutting.  Unlike the Pocket, the screen does not come totally off the PCB (the Game Boy has two PCBs).  The ribbons are soldered to the PCB, and you need to lift the screen up enough to get at the layers but not so much that you rip the ribbons from the PCB.

People online said that removing the layers from a Game Boy's screen was easier than the Game Boy Pocket's screen.  Unfortunately, I found it to be six-of-one, half-a-dozen of the other.  The inner layer did not come off easily, I had to peel it off pieces at a time and probably left razor nicks in the glass.  When I put it back together, I found that I did not have dead pixel columns.  Instead, the lower right corner looked like I had cracked it when I peeled the last of the layers off.  It looked similar to how a broken pocket calculator's LCD looked.  The rest of the screen functioned normally.  Scratch one DMG Game Boy.

The Game Boy after the back-light was installed, I threw out the Pocket before I could take its picture.
In one day I had essentially destroyed two great vintage video game systems.  However, I was still undaunted and determined to mod a hand-held system successfully.  Ten years ago I had bought an Afterburner Kit for my Game Boy Advance.  The complexity of trying to install the front light in my GBA put me off trying it, and once the front-light GBA SP came out, I bought one and the Afterburner went into my miscellaneous console stuff drawer.  Occasionally I would pull it out and contemplate installing it, but I would look at the lengthy instructions and turn back to my backlit GBA SP.  However, determined to have something to show for all my modding efforts, I grabbed a lightly used GBA I acquired and went to work.

The Afterburner is a PITA to install, no bones about it.  The hardest part for me was scraping down the plastic in the screen area.  All those little bits of plastic tend to create dusty conditions that tend find their way in between the screen.  I did not use a dremel because I did not know if I would carve too much and create holes in the front of the case.  That was a mistake.  I apparently lost the included 44 ohm resistor that goes to reduce the screen brightness.

They also give you these really tiny wires, which were difficult to strip with my wire stripper.  In addition to the front light, there is a piece of anti-reflective film that is supposed to go between the front light and LCD screen. Getting this thing on the LCD without bubbles forming was impossible.  Snaking those wires around the PCB was a miserable experience, and soldering the wires to the tiny potentiometer to control screen brightness and mounting it to the case was a miserable experience.  When everything was finally done, the case did not have the same snug fit as it did before I touched it.

I installed the backlight and found the result to be terrible.  The screen looked totally washed out and I had a hard time making out objects on the screen.  Game boy games were a little easier to see.  I thought installing the potentiometer would improve things, but it really didn't.  It was easier to make out the screen from an angle than from a head on view.  I thought I may have screwed up the AR film somehow.  I opened up the system, fiddled around with with and found that things looked better when the AR film was not present!  Maybe my AR film was defective or maybe I lost the proper layer in the last ten years.  I reassembled the GBA and found the results to be more tolerable, although it pales in comparison to my back-lit GBA (for which I had traded in my front-lit GBA).  Unfortunately when I was playing around with the front light and AR film, I had caused a few, quite visible, scratches to appear on the front light.  There is a bit of dust on the bottom part of the screen, but still I consider this mod much more successful than my Game Boy backlight mods.

The Game Boy Advance after the front-light was installed, the horizontal lines are a camera artifact.
The same system at an angle, you can see the scratches and dust, but the graphics are clearer than they appear.
Lessons I have learned from these experiences:

1.  Use thin wires, but thick enough to strip.

2.  A dremel is a wonderful tool, worth every penny.

3.  Have a safety razor handy.

4.  See through consoles help with threading wires.

5.  Have a spare screen protector ready

6.  If you don't break your Game Boy or Game Boy Pocket screen installing a back light, consider yourself fortunate.

7.  A dab of hot glue is not an evil thing.

Tuesday, September 16, 2014

Tandy 1000s and Interlnk and the Laplink Cable

You may recall that I hypothesized that the Tandy 1000 parallel port was actually useful for more than just printers, http://nerdlypleasures.blogspot.com/2014/03/a-hypothesis-of-tandy-1000-parallel.html, and now I have proof that it is so.  Using the MS-DOS Interlnk program, you can use the Tandy 1000 parallel port to transfer data to and from the Tandy 1000 with a second computer.

First, let us review some of the flaws in the Tandy 1000 parallel port.  First, most of them use a card edge connector instead of the common DB-25 connector.  To use it with anything except some Tandy printers or with a Tandy cable (rare) requires making an adapter.  Second, one of the signals for the Control Port, the Select Input signal, is not present on the connector.  Third, the Select signal on the Status port must be jumpered inside the system.

In most 1000 systems, the Select signal has a 2-pin header.  In the TL/2, RL and maybe the SL/2, you will need to solder in a 2-pin a header or connect the pins through some solder.  For the TL/2, the points are marked E1 and E2, unlike the other systems, this was not generally documented.  In most systems, the jumper is usually in a fairly inaccessible place, like underneath the power supply.  You will need to jumper the Select Printer signal to use Interlnk.  If you have an RLX, RSX or TL/3, then you won't have any of these problems.

Pinouts


Signal Name IBM Printer Port DB-25 Centronics 36-pin Cable Tandy 1000 34-Pin Card Edge Motherboard/Multifunction 26-pin Header
Strobe 1 1 1 1
Data 0 2 2 3 3
Data 1 3 3 5 5
Data 2 4 4 7 7
Data 3 5 5 9 9
Data 4 6 6 11 11
Data 5 7 7 13 13
Data 6 8 8 15 15
Data 7 9 9 17 17
Acknowledge 10 10 19 19
Busy 11 11 21 21
Paper End/Out of Paper 12 12 23 23
Select Printer 13 13 25 25
Auto Linefeed 14 14 27 2
Error/Fault 15 32 28 4
Init/Reset 16 31 30 6
Select Input 17 36
8
Ground 18-25 16, 19-30, 33 2, 4, 6, 8, 10, 12, 16, 18, 20, 24 10, 12, 14, 16, 18, 20, 22, 24
Not Connected
15, 17-18, 34-35 14, 26, 34 (+5v) 26 (key)

Constructing an Adapter

In order to construct an adapter, you need three things, a 34-pin IDC Card Edge Connector, a length of 34-pin ribbon cable (less than one foot) and a DB-25 female connector.  The Card Edge connector can be harvested off floppy drive cables, but you will need to grind out the bit of plastic inside with a small knife or screwdriver because the Tandy printer card edge has no slot for the function of this plastic bit, which is intended to make sure that you don't insert the connector the wrong way.  Pin 1 of the card edge parallel port is always on the side closest to the expansion slots on the Tandy 1000s.  Align it with the red stripe of the ribbon cable.


The DB-25 connector ideally should have the same type of crimp connectors as the Card Edge connector.  With the crimp connectors, you don't have to solder.  An alternative would be a parallel port with a ribbon cable that attaches to a header on the motherboard or a multifunction card like the AST Six Pak Plus.  I have included the pinout for them above.  In fact, if you remove the BERG-style connector, you will have pre-crimped wires that correspond almost exactly to the Tandy pinout.  This is probably the best way to go about it, and you can find keyless IDC 34-pin connectors.


If you go with the crimping DB-25 connector, I would recommend connecting all the Card Edge connector pins to the ribbon cable, then attaching the appropriate wires to the DB-25, which should give you more room to work with.  You only really need to connect a few of the ground wires, but make sure they aren't being cut into by other wires.

Custom Converter Cable
If you go with the ribbon DB-25 connector, I recommend pulling all the not connected pins, 14, 26 and 34, to make your job easier.  For your first cable, you may want to go easy on yourself and only connect the ten pins needed for a Laplink cable, which are 3, 5, 7, 9, 11, 19, 21, 23, 25, 28 and the two ground pins 16 and 18 on the card edge.  I recommend pulling all the other pins in this case.

Custom Converter Cable Closeup

Laplink Cables

While you can use Interlnk with either a serial null-modem or parallel port, the parallel port transfer is much faster and your Tandy's single built-in serial port, if you have one, should be used for a mouse.  This cable is called a Laplink cable, and originally it was most useful for laptops to access larger hard drives on desktops. A proper Laplink cable only connects certain wires, and here is the pinout :

Signal Name Pin Pin Signal Name
Data 0 2 15 Error/Fault
Data 1 3 13 Select
Data 2 4 12 Paper End/Out of Paper
Data 3 5 10 Acknowledge
Data 4 6 11 Busy
Acknowledge 10 5 Data 4
Busy 11 6 Data 3
Paper End/Out of Paper 12 4 Data 2
Select 13 3 Data 1
Error/Fault 15 2 Data 0
Ground 25 25 Ground

Testing the Adapter with a Laplink Cable

A Laplink cable acts like a loopback cable in that it feeds the output of one computer into the inputs of another computer and vice versa.  The Laplink cable sends and receives five bits.  The output port of a computers first parallel port, called LPT1 in DOS, is typically located at I/O address 0x378.  This is an 8-bit port, but in the Laplink cable, only the lower five bits are used.  The input port of LPT1 is located at 0x379, but this port only uses the upper 5-bits of the port.  Thus, the input will be shifted three bits to the left compared to the output.  In addition, the high bit of the input port is inverted.  

Debug has the i and o commands that can be used to output and input bytes from I/O ports.  The output command is o 378 xx and the input command is i 379.  Try outputting a byte from one machine and then read the input from a second machine.  You should use the following commands :

Host              Client
- o 378 10     - i 379
                       00 (IBM) or 07 (Tandy) - All bits cleared to 0

- o 378 0F      - i 379
                       F8 (IBM) or FF (Tandy) - All bits set to 1

Do this in both directions.  If the value you receive on the input does not equal the results above, you have a faulty wire.  Convert the number to binary to see which bit(s) is or are not working.

Only the top five bits of the result are important for Interlnk.  The lower three bits seem to be set to 0s on IBM parallel ports and 1s on Tandy parallel ports.

The DOS Interlnk Device Driver and Program

Interlnk was first introduced in IBM PC-DOS 5.02 and can be found in MS-DOS 6.0 through 6.22.  It can also be found somewhere in a Windows 9x installation.  It consists of two components, INTERLNK.EXE and INTERSVR.EXE.  INTERLNK.EXE functions both as a device driver and external DOS command.   INTERSVR.EXE is run at the command line.

INTERLNK is a program that allows you to access drives remotely, and its really easy to use once you figure out which computer is going to the host and which will be the client.  The host computer is the one being accessed, the client is the one performing the access.  On the host PC, all you need do is run the INTERSVR.EXE program at the command prompt.  Make sure to run it first.  It usually does not need any command line arguments, but you can use the /X=A: /X=B: to exclude the floppy drives.  

On the client PC, you will need to load INTERLNK.EXE in CONFIG.SYS.   To use the parallel port, I would suggest the following line in CONFIG.SYS :
DEVICE=C:\DOS\INTERLNK.EXE /NOPRINTER /LPT1

If you are successful, INTERLNK.EXE will inform you which drives it has discovered and will allow you to access them as if they were physically attached to the client machine.  Typically this will add at least drive D: to the client machine.  

You must all the INTERSVR.EXE program to remain running on the host machine, otherwise the benefits will be lost.

You can type INTERLNK at the command line of the client computer to determine the status of the INTERLNK connection.  

All Tandy 1000s can use MS-DOS 6.22, and the INTERLNK.EXE device driver takes up a very reasonable 7K.  INTERLNK requires a fully working parallel port adapter for the Tandys.  I would suggest using drivparm=/d:1 /f:x in your CONFIG.SYS for MS-DOS to fully recognize 720KB floppy drives, replacing the x with 0, 1 or 2 depending on which drive is a 720KB drive.

With a Tandy 1000 TX, you may be able to obtain a 40KB transfer rate from and to a hard drive.  If you are reading from or writing to floppy disks, expect something in the neighborhood of 5-8K.

Early Tandy 1000s

This guide applies to the Tandy 1000 EX, HX, SX, TX, TL, TL/2, SL, SL/2, RL and RL-HD.  The Tandy 1000/A/HD has an earlier version of the card edge port that puts Autoline Feed on pin 32, which is not relevant for the Interlnk cable but may be for other parallel devices.  They may connect the Select In pin instead of the Select pin.  If that is true, then the port is useless unless you connect the pin from the Parallel Port Array chip to the card edge.  However, the Tandy Technical Information Series Notes and Jumpers indicates that the Tandy 1000A and HD have a jumper to connect the printer select to the parallel port like the later models.

Wednesday, April 16, 2014

Simple Soldering Mods for Vintage PC Components

There are some simple, yet extremely useful modifications you can perform to some vintage PCs and cards using a soldering iron and a bit of solder or a few wires.  In this post, I am going to outline some well-known, highly useful modifications requiring soldering no more than three wires or chips.  Of course, you should have a solder sucker or desoldering braid to repair any mistakes.

Before I detail the mods, there is a debate between lifting pins and cutting traces.  In my opinion, its easier to cut a trace than it is to lift a pin.  I once broke a pin off an IC and had to remove and replace the whole IC.  Cut traces can easily be repaired by wiring the two pins connected by that trace together.

IBM XT & Portable 640KB System Board

All IBM XTs and Portables use the same basic motherboard design.  For those motherboards marked 64KB-256KB System Board, there is an empty socket at U84.  These Boards were intended to support only 256KB, but through a very easy mod and a chip replacement, they can all support 640KB on the motherboard.  This is the maximum amount of RAM that an 8-bit PC compatible is designed to use and it saves an expansion slot.

First, fit a 74LS158 chip into the U84 socket.  Second, replace the 64Kx1 DRAM chips in banks 0 & 1 with 256Kx1 chips, 150ns or better.  That is 18 chips (since the XT uses parity memory).  If banks 2 & 3 are empty, you can put those 64kx1 chips in those sockets.  Third, bridge the two points marked with an E2 on the motherboard.  It is near the power supply.  You just need solder and maybe a bit of wire to make the connection, because this is not a mod you are likely to want to reverse.  Finally, set switches 3 & 4 to the Off position if you haven't already done so.  This informs the system that all four banks of memory are populated.  More detailed instructions are here :
http://www.uncreativelabs.net/textfiles/hardware/XTMB640K.MOD

IBM Bidirectional Parallel Port

The IBM 8-bit cards all had a unidirectional parallel port, but could be modified to support a basic PS/2-style bidirectional port with one wire.  To do this, you need to solder pin 1 of the appropriate 74LS374 to pin 15 of the appropriate 74LS174.  You also need to cut away the trace that connects pin 1 of the 74LS374 to ground or lift the pin out of its solder hole.  Here are the correct chip numbers for each card :

IBM PC Monochrome Display and Printer Adapter :
74LS374 - U41
74LS174 - U39

IBM PC Printer Adapter :
74LS374 - U4
74LS174 - U7

IBM PC AT Serial/Parallel Adapter :
74LS374 - U18
74LS174 - U4

IBM PCjr. Parallel Printer Attachment :
74LS374 - ZM4
74LS174 - ZM11

Hercules Graphics Card (long, 13" version)
74LS374 - U32
74LS174 - U22

AST Six Pak Plus Type 1
74LS374 - U73
74LS174 - U81

AST Six Pak Plus Type 2 or Type 3

74LS374 - U76
74LS174 - U71

IBM LPT2 Parallel Port

The IBM Parallel cards, with the exception of the IBM PC AT Serial Parallel Adapter, are set to use only one set of addresses.  The IBM PC Monochrome Display and Printer Adapter uses addresses at 3BC-3BF and these should never be changed.  The BIOS will always assign LPT1 to a Monochrome card's parallel port, and the port must be at those addresses.  For the standalone parallel adapters, while they are set at 378-37F, they can be changed to use 278-27F.  The BIOS will assign LPT1 (assuming no mono card is in the system) to the parallel port at 378 and LPT2 to the parallel port at 278.

To make the IBM PC Printer Adapter use address starting at 278, you need to cut the trace connecting J1.  To reverse this, you need to solder a pair of staking pins to the pads at J1 and place a jumper over them.  Some solder sucker should be used to obtain clean holes first.

To change the address on a IBM PCjr. Parallel Printer Attachment, there are two traces that need to be cut and two wires soldered.  The instructions are here : http://www.brutman.com/PCjr/lpt2_mod.html

IBM CGA Thin-font

The IBM CGA card contains two character sets or fonts in its character generator ROM.  The standard font is the thick-font, which was designated as the default font because the characters were much easier to see on a TV screen or a composite monochrome monitor.  There is also a thin font available by connecting the two solder pads just below pins 1 & 2 of the 6845 CRTC chip.  Solder in a two-pin header and you can use a jumper to switch between the two.

IBM PCjr. Tandy-mod

One of the most popular modifications to enhance the PCjr.'s graphical capabilities is to install the Tandy mod.  This mod, which requires one common 74 series TTL chip, cutting a trace and soldering three wires, is relatively easy to do.  With the mod, the problem of the Venetian Blinds with games only supporting Tandy 320x200 and 640x200 (if there are any) graphics will go away.  This will fix many games.  The best instructions can be found here : http://vintagemashups.net/2011/12/ibm-pcjr-tandy-1000-graphics-mod/

So, shouldn't all PCjr.'s have this mod installed?  Well, in my opinion, a PCjr. should be used and maintained as a unique computer, not an ersatz Tandy 1000.  Unlike the Tandy 1000s with their speed options (7.16MHz 8088s to 10MHz 80286s), the PCjr. is stuck at 4.77MHz as a practical matter.  Even installing a V20 and RAM above 128KB is not going to provide the speed necessary to run many games at a good speed which use the ubiquitous graphics 320x200x16c Mode 09h.  While it is possible to increase the clock speed of a PCjr. above 4.77MHz, the modification is much more involved than the Tandy mod and the results are not very reliable above 7.37MHz.

In addition, the Tandy mod does not solve all compatibility problems that a game specifically supporting only Tandy graphics and sound would have on the PCjr.  A review of the technical references of the Tandy 1000 and the PCjr. (available online) shows many differences in their respective graphics registers.  Their keyboard handling at the hardware level is very different.  Even their sound chips (the PCjr, uses a true TI SN76496, the Tandys typically use a NCR 8496 clone, discrete or integrated) have their differences.

In short, if you have or intend to acquire a Tandy 1000, leave your PCjr. alone.  If you have no interest or desire for a Tandy 1000 machine, then by all means consider the mod, but

CMOS Battery Replacement

CMOS batteries typically give 3-6V.  They generally come in three varieties for generic motherboards, the Dallas 1287 or 12887 RTC module, the barrel-type and the CR2032 coin-style with holder.  Each variety was common until the Pentium era, where the coin-style battery holder became ubiquitous.  The CR2032s can be readily replaced, because only the holder is soldered to the board.  The Dallas RTC module has a battery built-in that will eventually fail.  In these cases, the part is typically socketed and can be replaced.  A coin-style battery holder can be soldered to the appropriate legs, thereby extending the life of the part indefinitely.  A sharp hobby knife, or better still a dremel, will be needed to cut away enough of the plastic to expose the "thick" portion of the legs to solder the battery holder terminals.  Detailed instructions can be found here : http://www.mcamafia.de/mcapage0/dsrework.htm or here : http://www.classic-computers.org.nz/blog/2009-10-10-renovating-a-dallas-battery-chip.htm

The barrel style batteries are the most annoying of the bunch.  Too frequently they corrode and leak, causing damage to the motherboard.  If you buy a motherboard with one, remove it immediately, even if it hasn't leaked. Remove the leads from the motherboard using solder braid or a solder sucker, or simply solder the battery holder terminals to the extended leads.  Some of the barrel batteries are Ni-Cd rechargeable types, and standard batteries will not take the recharge current.  With a bit of searching, you can find modern Ni-MH barrel-style batteries that will work as a direct replacement.  Here is an example : http://www.jameco.com/1/1/48175-5560830312-nimh-rechargable-batteries-3-6v-rechargeable.html
If you want to instead solder a battery holder, you will need to wire a schottky diode in between the battery's + terminal and the motherboard's + point to prevent the current from going from the motherboard to the battery.

If you do not want to solder a battery clip, some motherboards have a pin header to connect an external battery.  There are 3xAA and 4xAA battery holders with 2-pin or 4-pin connectors ideal for the task.  3xAA is 4.5v, which is quite sufficient to power CMOS, but 2xAA is only 3v, which is the bare minimum.  3 and 4 battery holders will last longer.

Saturday, June 22, 2013

The Sound Blaster 2.0 and the C/MS Upgrade

I decided to make this post to gather all the known, accurate and current information about the C/MS Upgrade for the 2.0.  This post supersedes anything I have said in prior blog posts.  As you should know, Creative Labs' first PC sound card of any note was the Creative Music System card (C/MS), later re-marketed as the Creative Game Blaster.  This card was based off two sound chips CL labeled as CMS-301, but were actually Phillips SAA-1099s.  The C/MS card was not a great seller, and even the name change failed to dislodge the Ad Lib card from its increasingly dominant position in the affordable PC sound card market.  Thus Creative came up with the "killer card", the Sound Blaster.  This card combined the full functionality of the Ad Lib card with almost all of the functionality (detection chip was eliminated) of the Game Blaster card and more.

While the Sound Blaster, with its joystick/midi port and digital sound processor began to sell well, the design was definitely in the past with lots of TTL logic chips.  The card was originally marketed as a "stereo" card, but the only thing stereo about it was the Game Blaster chips.  In the first production runs, the two Game Blaster chips, marked with a CMS-301 sticker were soldered onto the motherboard (so were the Ad Lib chips, marked FM1312 and FM1314).  However, almost nobody really cared about Game Blaster when the Adlib was also present, and virtually all games that supported the Game Blaster also supported the Adlib, so for the 1.5 version of the Sound Blaster, the chips were not installed by default.  The two empty sockets could be populated with chips purchased from Creative Labs fr the low, low price of $29.95.

After CL released its new flagship product, the Sound Blaster Pro, it redesigned the original Sound Blaster as a budget card and released it in late 1991.  CL enhanced the new card's capabilities by allowing it to record up to 44.1kHz, but it was still a mono card.  The C/MS chips were left off the board again, but this time there was a third empty socket.  A special version of the upgrade was required from CL, one not really well-identified in the catalog accompanying the card.  The third chip had a sticker marking it as 0048013500, and underneath it was a pre-programmed PAL (Programmable Array Logic) chip.  (A PAL16L8 chip with the security fuse blown so it could not be dumped).  Eventually, CL stopped advertising the upgrade completely, and without the PAL chip the CMS functionality would not work even with the Phillips chips were installed.  Given the rarity of boards with the upgrade found in the wild and the lack of advertising, few upgrade kits must have been sold.

However, in 2012, a long-time member of the Vintage Computer Forum named Chuck(G) devised a method to determine the way in which common PALs were programmed.  He analyzed the PAL on an officially upgraded Sound Blaster 2.0 and released the instructions to replicate the programmed logic on a GAL (Generic Array Logic) chip.  Unlike PALs, GALs can be reprogrammed and do not require expensive and hard to obtain hardware to program.  The GAL required is a GAL16V8 and the file to program the chip can be found here : http://www.vintage-computer.com/vcforum/entry.php?328-Cloning-a-HAL-PAL-Part-11.  The programmed chip is inserted in the only empty socket that can fit it, the one just above the FM1312 /YM-3812 chip.  However, in almost one year following the first successful report of a GAL SB 2.0 CMS upgrade, not all boards have worked with the upgrade.  Below I try to identify each board known whether or not to work with the upgrade.

Board Types :

The earliest known boards are CT-1350B boards marked with a rev 2, 3 or 4 and do not have "SOUND BLASTER" silkscreened.  Here is a photo of a rev. 3 board :


And here is a rev. 4 board :


Between the rev 2 and 3 and the rev 4 and later boards, there is one obvious difference.  The rev 4 added a DMACTL jumper.  This jumper will disable the DMA capabilities of the Sound Blaster, virtually eliminating its ability to reproduce digitized sound.  However, and it may not be truly visible in the photo, but both share a CT1336 Bus Interface Chip and a CT1351 DSP chip, version v2.01.  You can identify the DSP chip by this silkscreened text on the chip "CT1351V201", with the "V201" indicating the version number.

These boards have been proven time and time again to work with the CMS upgrade, whether a GAL or PAL.  Apparently there is no difference between Lattice Semiconductor and National Semiconductor GALs. Apparently SGS Thompson GALs do not work.

Later boards look like this :


Now the words "SOUND BLASTER" are next to the CT1350B.  This board's revision can be determined by the six digit number silkscreened to the lower left of the address jumpers.  The above board is a 049151 and it works with the upgrade.  059316 and 069328 are also known to exist and shown below :



Note the new CT1336A and DSP v2.02 on these boards.  The 059316 also has small surface mounted versions of the YM3812 and Y3014 chips and a 1993 copyright date silkscreened onto the board.  The last four digits refer to the design date of the revision in year-week format.  The 059316 and 069328  are the first boards confirmed not to work with the CMS upgrade, regardless of whether a CL PAL or a modern-programmed GAL is used.  However, the 049151 is not guaranteed to work, as can be seen here : 



It seems that the first two digits, 04, 05 or 06, refer to a revision number.  There are some mysteries remaining.  For example, will either one of these boards work :



The first is a 049151 with a v2.02DSP and a CT1336 chip, the second one is identical except for the word "SOUND MACHINE".  

After further testing, it has been determined that that the DSP version does not matter, the CT1336 version does.  If your card has a v2.01 DSP or v2.02 DSP, the upgrade will work.  If your card has a CT1336 Bus Interface Chip, the upgrade will work.  On the other hand, if your card has a CT1336A Bus Interface Chip, the upgrade will not work!  Since v2.02 DSPs tend to be paired with CT1336A chips, be very careful to check the bus interface chip before you buy.  Make sure your seller shows you a photo of the exact card you will receive.  

2019 Update

In the past year or so, one or two people found a Sound Blaster 2.0 card with an original Creative PAL, the two Creative-marked CMS-301/SAA-1099P chips and a CT1336A Bus Interface Chip, and the Game Blaster functionality worked!  Apparently CL revised the programming for the PAL to work with the CT1336A chip at some point, presumably when they started manufacturing CT1336A chips.  That way, when a customer called with an upgrade request, one PAL would work for all SB 2.0 cards.  This newer PAL has been reversed engineered and can be purchased as a GAL, see here for details : https://www.vogons.org/viewtopic.php?f=5&t=30242&view=unread#p726379