TMSdigitizer (for ColecoVision and MSX) - c0pperdragon/LumaCode GitHub Wiki
The TMSdigitizer is a small add-on board that can be installed into any machine that uses a TMS9918A/TMS9928A/TMS9929A graphics chip to produce a Lumacode signal. This signal contains all the information of the video screen in a semi-digital form that can be losslessly processed. In conjunction with an RGBtoHDMI upscaler or some other compatible device, this will create a pixel-perfect display.
Mod kit contents
The mod kit comes with a short length of 2-lead wire and an RCA jack for lumacode output that can be mounted to the case. Because there are many different machines where this mod can be installed in, you will need to use your own judgment how to install the provided parts. There already is a very detailed description from Ian of his installation in a TI99/4a
General hints for installation
Best option is of course to put the TMSdigitizer between the TMS chip and its socket if this is possible in your machine. When your chip is not socketed to begin with and you don't have the equipment or skill to desolder it, you are not yet out of luck. When there is no heat-sink on the chip and it also does not get hot during operation, you may piggyback a 40-pin machined socket (as sold on my store) to it. After bending the pins out a little it should fit with a bit of presure and you can solder the pins to the TMS chip. Insert the TMSdigitizer to this socket.
In any case, you need to solder wires to the LUM and GND output holes and bring the signal to the outside of your machine. I recommend using a black RCA jack for this, as it is my recommended color for lumacode signal plugs and sockets.
Installation in my ColecoVision
While it is not possible to give installation instructions for all possible machines (or even all ColecoVision variants), this is how I did the installation in my PAL machine.
In my machine the graphic chip is directly soldered to the board and carries a massive heat sink. Because there is quite some space below the main board, I decided to install the mod board on the underside. To do so, I used individual pins from an precision IC socket to create contacts to the relevant pins in the mod board (which are marked on the underside by white triangles).
Soldering the connector pins to the underside of the main board is quite fiddly, but I succeeded in the end to get good contacts on all of the pins. The lumacode signal goes from the LUM and GND pins to the RCA jack mounted on the case. In my machine there is an unused plastic panel just big enough for three RCA jacks, so this is the perfect place to bring all signals out.
Taking care of audio
When your machine does not provide a dedicated audio signal besides what is provided in an RF output, you may also want to perform an audio modification. As this is not in the scope of this instruction, I will just show how I arrange the external connectors to provide the following signals:
- Composite video as a fallback option (yellow)
- Audio (red)
- Lumacode (black)
Details on color encoding
When connecting the new "lumacode" signal to a normal composite or mono video monitor or TV, you will get a grayscale picture where instead of each original pixel, you get two sub-pixels in one of 4 gray levels. I designed the encoding in a way that the average luminance of both sub-pixels roughly resembles the luminance of the original picture.
first half-pixel | second half-pixel | ColecoVision color | color name | average luminance |
---|---|---|---|---|
0 | 0 | 0 | transparent | 0 |
0 | 1 | 4 | dark blue | 0,166666667 |
0 | 2 | 8 | medium red | 0,333333333 |
0 | 3 | 9 | light red | 0,5 |
1 | 0 | 1 | black | 0,166666667 |
1 | 1 | 6 | dark red | 0,333333333 |
1 | 2 | 5 | light blue | 0,5 |
1 | 3 | 7 | cyan | 0,666666667 |
2 | 0 | 12 | dark green | 0,333333333 |
2 | 1 | 2 | medium green | 0,5 |
2 | 2 | 3 | light red | 0,666666667 |
2 | 3 | 14 | gray | 0,833333333 |
3 | 0 | 13 | magenta | 0,5 |
3 | 1 | 10 | dark yellow | 0,666666667 |
3 | 2 | 11 | light yellow | 0,833333333 |
3 | 3 | 15 | white | 1 |