This is an enhanced version of the JFF Computer by @Skoti, which enables the use of the TMS9928A or TMS9929A Video Display Processors (VDPs), in addition to the TMS9918A VDP.
✅ Completed!
The modified JFF mainboard 1.1b-TMSHAT Build1 has been successfully designed, built and tested (as of Aug 20th, 2025). See warning on the next paragraph.
The TMSRGBCustom TMSHAT Build1 has been successfully designed, built and tested (as of Sep 11th, 2025). It has been successfully tested for RGB output on the modified JFF mainboard 1.1b-TMSHAT Build1 with both a TMS9929A NL (50Hz) and a TMS9928AN (60Hz).
The TMSRGBv2 TMSHAT Build1 has been successfully designed, built and tested (as of Oct 11th, 2025). It has been successfully tested for RGB output on the modified JFF mainboard 1.1b-TMSHAT Build1 with a TMS9928AN (60Hz) and a TMS9929A NL (50Hz).
Warning
While building the JFF mainboard it has been detected that the original JFF mainboard revision 1.1b has a bug in the general purpose IO ports schematic similar (but different) to the bug that affected the Omega Home Computer prior to version 1.5 which the modified JFF mainboard revision 1.1b-TMSHAT Build1 has inherited. The bug does not affect MSX joysticks, only IO devices which require output to the trigger pins are affected.
For existing original JFF revision 1.1b mainboards (and for the modified JFF mainboard revision 1.1b-TMSHAT Build1), the JFF joyfix board interposer board has been developed to fix the joystick circuit problem, and has been already validated (as of Oct 3rd, 2025).
A new revision 1.1c of the original JFF mainboard that fixes the joystick circuit bug has been published by @Skoti (as of Oct 6th, 2025) solving Issue #3.
And the equivalent JFF-TMSHAT Mainboard revision 1.1c-TMSHAT has been released by @herraa1 (as of Oct 6th, 2025), but has not been built nor tested.
Note
Everything stated here about revision 1.1b-TMSHAT is applicable to 1.1c-TMSHAT. The only difference between the two board revisions is the fix for the joystick circuit bug.
The fabrication of the Build1 mainboard 1.1b-TMSHAT, Hat-TMSRGBv2 and Hat-TMSRGBCustom PCB prototypes has been kindly sponsored by PCBWay, a global quality-focused PCB manufacturer which provides sponsorship for the KiCad project as well as many educational and open source hardware projects.
KiCad is the open source EDA platform of choice used to design the hardware circuitry provided in the JFF-TMSHAT project.
The JFF Computer by @Skoti is a MSX1 compatible computer which uses the TMS9918A VDP which is part of the TMS9918 family of Video Display Processors from Texas Instruments. The TMS9918A outputs a 60Hz composite NTSC video signal, and thus the JFF has a single RCA video output connector with a composite video signal.
The TMS9928A and TMS9929A VDPs, from the same family of Video Display Processors, output instead analog luminance (Y) and color difference (R-Y and B-Y) signals. Except for the video output signals, the TMS9918A, TMS9928A and TMS9929A VDPs behave identically and have an almost identical pinout.
The difference in the pinout of the TMS9918A, TMS9928A and TMS9929A VDPs affects the following pins:
| Pin Number | TMS9918A Name | TMS9918A Description | TMS9928A/TMS9929A Name | TMS9928A/TMS9929A Description |
|---|---|---|---|---|
| 35 | EXTVDP | External VDP input | B-Y | B-Y color difference output |
| 36 | COMVID | Composite video output | Y | luminance/sync output |
| 38 | CPUCLK | VDP color burst frequency clock | R-Y | R-Y color difference output |
Given that the JFF Computer does not use VDP pins 35 nor 38, and just uses pin 36 for composite video output, it should be relatively straightforward to allow the use of the TMS9928A or TMS9929A VDPs alternatively to the TMS9918A VDP. Using the luminance and color difference signals provided by the TMS9928A or TMS9929A VDPs, an enhanced output video signal like RGB or component video can be generated for a better user experience.
The JFF computer mainboard is modified as described here.
-
A new audio/video header J13 is added to the JFF computer mainboard, which can be used to select between the TMS9918A or TMS9928A/TMS9929A VDPs, and to provide the required audio and video signals to an external companion card called TMSHAT which converts them into a specific audio/video output.
The header provides access to the following signals:
Pin Number Name Type
(from JFF connector point of view)Function 1 GND Power Common ground 2 +5V Power 5V power rail 3 CPUCLK/R-Y OUT direct signal from pin 38 of VDP 4 EXTVDP/B-Y OUT direct signal from pin 35 of VDP 5 COMVID/Y OUT direct signal from pin 36 of VDP 6 COMVID_OUT IN connected to JFF mainboard composite video output circuit 7 NC (reserved) 8 AUDIO OUT final mixed audio signal A total of 8 pins are used for the audio/video header, giving 1 extra pin for future use.
Allowed VDP configurations:
-
TMS9918A
To use a TMS9918A VDP, pins 5 (COMVID/Y) and 6 (COMVID_OUT) of J13, which use inverted colors in the silkscreen text, must be bridged and a TMS9918A must be installed in U6. In this configuration the modified JFF computer works identically as the original JFF computer with a TMS9918A and outputs a composite video signal on the motherboard video RCA connector.
-
TMS9928A/TMS9929A
To use a TMS9928A or TMS9929A VDP, a companion TMSHAT card needs to be connected to J13 and a TMS9928A or TMS9929A VDP must be installed in U6. In this configuration the modified JFF computer will provide an audio and video output according to the capabilities of the TMSHAT card connected.
-
-
A small clearance area is defined between the power barrel connector and the DIN8 cassette connector in the JFF computer mainboard.
This allows to, as long as they fit, seamlessly place in that area the additional audio/video connectors provided by the TMSHAT cards. Note that the additional audio/video connectors are never part of the JFF computer mainboard, they are instead soldered to the TMSHAT cards. But, for convenience, the mentioned area allows making such connectors available on the back of the JFF computer as if they were on the mainboard.
The power led is relocated next to the Audio connector in the JFF computer motherboard to allow the described clearance.
-
Enough clearance is preserved too for the DD1718PA +12V/-12V voltage module converter to be installed upside-down in the J5 header.
-
A new extra 3mm hole is added to the JFF computer mainboard.
A TMSHAT card must be properly attached to the JFF computer mainboard, specially as it has to deal with cable insertion/removal forces when audio/video connectors are present on the TMSHAT card itself.
The top-left 3mm hole and the new 3mm hole on the JFF computer mainboard are the mechanical attachment points for the TMSHAT cards, while the audio/video header attachment provides the electrical signals.
-
External companion TMSHAT cards are designed to be connected to the new audio/video header J13, attached to the previously described mainboard holes and shaped to avoid any collision with existing components in the JFF computer. The TMSHAT cards provide a specific audio/video output using one or more embedded connectors in the card itself.
As an example, a pair of TMSHAT card implementations are provided to convert the luminance and color difference signals of the TMS9928A and TMS9929A VDPs to RGB, and output both the audio and RGB video signals through a DIN8 connector compatible with audio/video cables for Panasonic MSX2+ machines.
This project provides source files for the following hardware designs:
-
JFF mainboard revisions 1.1b-TMSHAT and 1.1c-TMSHAT aka JFF-TMSHAT-Mainboard
-
TMSHAT for RGB output using a standard TMS-RGBv2 module, aka JFF-TMSHAT-Hat-TMSRGBv2
-
TMSHAT for RGB output using a custom TMS-RGB implementation, aka JFF-TMSHAT-Hat-TMSRGBCustom
This mainboard design allows using a TMS9928A or TMS9929A VDP in combination with a TMSHAT, or a TMS9918A VDP by just closing a jumper.
✅ Revision 1.1b-TMSHAT of this board has been successfully built and tested.
| JFF mainboard 1.1b-TMSHAT Build1 PCB unpopulated top |
JFF mainboard 1.1b-TMSHAT Build1 PCB unpopulated bottom |
| JFF mainboard 1.1b-TMSHAT Build1 PCB populated top, with a TMSRGBCustom TMSHAT Build1 connected |
This section provides visual details on how to configure the JFF mainboard 1.1b-TMSHAT for different VDPs.
-
Insert a TMS9918ANL into U6
-
Use a jumper to bridge pins 5 and 6 of J13
-
Connect a composite display to the RCA video connector of the JFF mainboard
-
Insert a TMS9928AN/TMS9929ANL into U6
-
Remove all jumpers from J13, if any
-
Install two 20mm long vertical aluminum round posts on the JFF mainboard holes dedicated for TMSHATs
-
Insert the TMSHAT by connecting it to the J13 header and using two M3 screws to secure it to the vertical round posts.
-
Connect a 15KHz RGBS display (or a 15KHz video converter suitable for your modern display, like the OSSC) to the Panasonic-compatible DIN8 video connector of the TMSHAT
TMS9929A (50Hz) with a TMSRGBCustom TMSHAT TMS9928A (60Hz) with a TMSRGBCustom TMSHAT
This TMSHAT provides RGB output via a DIN8 connector compatible with audio/video cables for Panasonic MSX2+ machines when using a TMS9928A or TMS9929A VDP.
It requires a TMS-RGB v2 module by Nicholas Piegdon.
✅ This board has been successfully built and tested.
| TMSRGBv2 TMSHAT Build1 PCB unpopulated top |
TMSRGBv2 TMSHAT Build1 PCB unpopulated bottom |
| TMSRGBv2 TMSHAT Build1 PCB populated top with TMSRGBv2 connected |
| TMSRGBv2 TMSHAT Build1 PCB populated bottom with TMSRGBv2 connected |
This TMSHAT provides RGB output via a DIN8 connector compatible with audio/video cables for Panasonic MSX2+ machines when using a TMS9928A or TMS9929A VDP.
It implements a custom TMS-RGB directly in the TMSHAT.
✅ This board has been successfully built and tested.
| TMSRGBCustom TMSHAT Build1 PCB unpopulated top |
TMSRGBCustom TMSHAT Build1 PCB unpopulated bottom |
| TMSRGBCustom TMSHAT Build1 PCB populated top |
| TMSRGBCustom TMSHAT Build1 PCB populated bottom (I) |
| TMSRGBCustom TMSHAT Build1 PCB populated bottom (II) |
TMSRGBCustom TMSHAT Build1 PCB populated bottom (III) |
| Motherboard | VDP | TMSHAT | Video Output | Result |
|---|---|---|---|---|
| rev 1.1b-TMSHAT Build1 | TMS9918ANL | None (bridge 5&6) | Composite 60Hz | OK |
| rev 1.1b-TMSHAT Build1 | TMS9928AN | TMSRGBCustom Build1 | RGBS 60Hz | OK |
| rev 1.1b-TMSHAT Build1 | TMS9929ANL | TMSRGBCustom Build1 | RGBS 50Hz | OK |
| rev 1.1b-TMSHAT Build1 | TMS9928AN | TMSRGBv2 Build1 | RGBS 60Hz | OK |
| rev 1.1b-TMSHAT Build1 | TMS9929ANL | TMSRGBv2 Build1 | RGBS 50Hz | OK |
- The external connectors in the mainboard of the original JFF computer must not be relocated
- Modifications to the original JFF computer must be kept to the minimum necessary to achieve the functional goals
- The modified JFF-TMSHAT computer must behave exactly as the original JFF computer when configured in TMS9918A mode
- A TMSHAT card must not collide with components of the JFF computer nor with the DD1718PA voltage converter module
- The female header of the TMSHAT card must use long enough pins to account for the height of the connector used in the TMSHAT
- A minimum of 20mm of separation is required between the mainboard PCB and the TMSHAT PCB in order to use an inverted DIN8 connector in the TMSHAT card
Skoti's JFF Computer