Stegosaur V9958 RGB

Code: DB301
Memory Expansion: DB302

A complete kit to give your RC2014/RCBus platform, the advanced graphic capabilities of the mid to late 80s. It based around the V9958 Video Display Processor (VDP) which powered the MSX2/MSX2+ line of 8 bit Z80 computers.

The main PCB supports the installation of 64K of VRAM, sufficient for all screen modes of the processor. With the use of the optional expansion board, the VRAM can be extended to the full 192K of VRAM that the V9958 is able to address.

This V9958 chip, was produced by Yamaha in the late 80s and was an update to the the V9938 chip, which was itself, a successor to TI’s TMS9918. The V9938/V9958 addressed many of the shortcomings of the original TMS9918.

The V9938 and V9958 are very similar in capability. See the relevant datasheets below to get some details of the differences.

Key features

Images

Bill of Materials

* Self Source Reference are supplied as a guide only. Please double check, in case of typo or errors in listing.

Base Kit

Count Name Self Sourcing*
2 22pF  
1 47pF  
8 0.1uF  
3 10uF  
1 220uF (LOW ESR)  
4 220uF  
1 Round Female Pin Header 1x40  
1 HEADERS 1x3  
1 HEADERS 1x2  
2 SHUNT 1x2  
1 5.6uH Inductor Mouser: 871-B78108S1562K
1 15-PIN DSUB Mouser: 649-ICD15S13E4GV00LF
DigiKey: 609-5180-ND
3 2N3906 Mouser: 637-2N3906
1 2N3904 Mouser: 637-2N3904
6 10k Ω (3.4mm) Mouser: 603-MFR-12FTF52-10K
3 12k Ω (3.4mm) Mouser: 603-MFR-12FTF52-12K
3 27k Ω (3.4mm) Mouser: 603-MFR-12FTF52-27K
1 4k7 Ω (3.4mm)  
1 2k2 Ω (3.4mm) Mouser: 603-MFR-12FTF52-2K2
7 1k Ω (3.4mm) DigiKey: 13-MFR25SFRF52-4K7CT-ND
1 470 Ω (3.4mm) Mouser: 603-MFR25SFTF52-470R
7 100 Ω (3.4mm) Mouser: 603-MFR-12FTF52-100R
1 LM311N Mouser: 926-LM311N/NOPB
DigiKey: LM311NNS/NOPB-ND
1 ATF16V8B-15PU Mouser: 556-AF16V8B15PU
DigiKey: ATF16V8B-15PU-ND
1 21.47727MHz Mouser: 520-HCU2147-SX
2 Right Angle 2x20 Header Mouser: 649-68020-140HLF
DigiKey: 2057-PH2RA-40-UA-ND
1 8 POS IC SOCKET Mouser: 649-DILB8P223TLF
DigiKey: AE9986-ND
2 18 POS IC SOCKET Mouser: 571-1-2199298-5
DigiKey: 2057-ICS-318-T-ND
1 20 POS IC SOCKET Mouser: 571-1-2199298-6
DigiKey: 2057-ICS-320-T-ND
1 64 POS IC SOCKET DigiKey: 1212-1068-ND

(VDP + 64K VRAM)

Count Name Self Sourcing*
1 V9938 or V9958 VDP  
2 41464C RAM  

(VRAM Expansion)

Count Name Self Sourcing*
6 0.1uF  
2 100 Ω (3.4mm) Mouser: 603-MFR-12FTF52-100R
1 Round Hole Pin Header 1x40  
6 41464C RAM  
16 18 POS IC SOCKET Mouser: 571-1-2199298-5
DigiKey: 2057-ICS-318-T-ND

Output connections

You will want to think about how you plan to connect this board to your chosen monitor. The video signals produced by 80’s hardware is not trivial to connect to modern LCD monitors. For such monitors you will need a converter to upscale the output. Although VGA Monitors can accept a RGB signal, they are unlikely to support the lower frequency of 15Khz produced by this module.

The RGBs module provides connection via the 15-pin DSUB/VGA connector. This output is well suited to connect via a VGA cable to a compatible HDMI/VGA up-converter that accepts a RGBs signal over the 15pin connection, such as the GBS-8200 or HD-VC9900 converters. For more information on the DSUB RGB/VGA see RetroRGB’s VGA article

The RetroRGB upscalers article has a good description for some of the converter options.

Items such as retroTink and OSSC are very high quality converters - but also have a decent price tag.

I have found the low cost arcade converters such as the GBS-8200 and HD-VC9900 converters produce excellent results. The upscalers can be acquired through the usual ebay, amazon and other sellers at very reasonable prices.

The GBS-8200 can also be easily modified to produce more customisable and higher quality output - again RetroRGB has it all explained at GBS Control

DSUB pin out

PinSignal
1Red
2Green
3Blue
4NC
5-8, 10-11GND
9, 12NC
13CSync
14,15NC

Upscaling Testing status

As per the Yellow MSX RGB module, I have tested this kit with the low cost GBS-8200 and HD-VC9900 upscalers. These have produced solid stable images for the respective VGA and HDMI output. They seem very tolerant of CSYNC voltage signal levels.

My recommendation is to use GBS-8200 or the HD-VC9900 upscalers. The quality is fine and I do most of my testing on these converters. Just google their codes and you will find the usual retailers/marketplaces (eg: ebay/amazon/aliexpress) have plenty of purchase options.

There are 2 revisions of the GBS-8200 available (V4.x and V5.x). The V5.x produces a poorer quality output. Recommend the older V4 revisions. You can identify the V4 revisions by the colour of the menu control buttons. Black for V4 and Yellow for V5.

GBS8200 - V4 Recommended GBS8200 - V5 Not Recommended

Other upscalers, such as the OSSC and retroTink may work, but I am unable to verify and confirm. Your milage may very. Adapter cables would need to be constructed.

I have not tested the unit on a real RGB CRT monitor.

I have been advised by some builders of the Yellow version of this kit (which has an identical RGB output stage as this module), that they have successfully tested with a real CRT, the OSSC and retrotink devices.

Operation

Sample Apps

For a base ROMWBW build you can find compatible demo apps in the apps-rc2014 directory on the github project site. They can be run under CP/M on a RC2014 system. The prebuilt binaries can be found in the bin directory.

For a MSX-DOS system, binaries for various apps and demos can be found in the github releases

Jumper Settings

J1 - CSYNC Voltage level

This jumper allows for the selection of the voltage level of the CSYNC output. (1VPP or a 5V TTL). For original CRT and old compatible 15Khz monitors, its recommended to set this to 1VPP (short the 2 left pins).

Most upscalers are likely to tolerate a 5V TTL level signal, but supplying 5V signal to a system that expects 1VPP may cause damage to the device. So it is only recommended to set this to the 5V TTL level when the connecting device states it accepts or needs such a signal type.

J3 - BUS CLK

Shorting this jumper, will transmit the clock signal generated by the VDP (3.579545Mhz) to the RC2014/RCBus’s CLK1 lane. This clock signal can then be used to drive your Z80 CPU. Do not short this if you have another clock generator on your platform. For best MSX compatibility, it is recommended to use this clock signal (1/6 of the main V99x8 crystal frequency), and remove any other CLK1 generators.

Port Mapping

The board uses the standard IO addresses for MSX systems.

The first 2 ports are identical as per the TMS9918 chip. The V9938/58 have additional ports to access higher functions.

Port Description
$98 (r/w) VRAM data
$99 (w) VDP register selection
$99 (r) Status register
$9A Palette access
$9B Indirect register access

Programming the chip

Have a look at the sample apps included in this repo apps-rc2014.

For specific details on programming the chip, I recommend:

Schematic

Key difference with Yellow MSX RGB

Description Yellow MSX Version Green Stegosaur Version
Max VRAM on main board 128K 64K
VRAM Expandable? No Yes (up to 192K)
V9958 and V9958 Support Single PCB can support both VDP types Different PCB needed for each VDP type
V9958 WAIT signal supported Yes No
RGB Video output design unchanged unchanged*
Optional 5V out via RGB Connector Yes No
PCB Height 8.0 cm 5.5 cm
Colour Yellow Green

* The Green Stegosaur RGB kit utilizes separate PCB designs for the V9938 and V9958 VDPs. This allows the V9958’s PCB, to refine the layout and tracing of the power delivery components for the V9958’s DAC; minimising, as much as possible, potential EM interference appearing on your display.

Assembly Guide

General guidelines

Soldering item order

Generally, you want to solder items from lowest height to largest height. Review the components you need to solder, and note their progressive heights.

  1. Resistors.
  2. Small ceramic capacitors.
  3. Any other low height components.
  4. The right angle headers (these headers are slightly lower in height than the IC sockets).*
  5. IC sockets, ensuring the sockets are fully flat (solder one or 2 pins first, and visually check its flat before soldering their other pins).
  6. Electrolytic capacitors (note the correct orientation).
  7. Larger connectors, and any other remaining items.

* Note the right angle headers are position correctly and lay flush and at right angle to the main PCB.

Specific Notes

Please note the following specific points regarding this module:

NOTE 1

Due to the finer pitch pins of the V9958, the soldering of this board requires a little more finesse than the typical RC2014 through-hole based boards. If you have built a few boards already, then you should be fine. It’s recommended that a finer pitch soldering tip be used as it can be easy to accidentally bridge some of the pins.

NOTE 2

Extra care needed when inserting the V9958 into its socket - there are lots of pins, take your time to avoid bending pins.

NOTE 3

There is a 220uF capacitor that, due to space constraints, needs to be mounted on the back of the PCB. You can choose to solder this first and applying solder on the front of the PCB. But my personal recommendation is to solder it last. After all other components have been soldered, you can place the capacitor over on its side, as shown below, clipping the wires as required before inserting, and then soldering on the underside of PCB.


NOTE 4

Ensure the 1 x 3 Round Machine Header (low profile) is mounted straight and flush, to ensure a good fit for the optional memory expansion board.


NOTE 5

Pay close attention to the position of Jumper J3 1 x 2 header, the 5.6uH inductor and 0.1uF capacitor, as they have a minimal fit between the 64pin IC socket and mounting right angler header.

NOTE 6 - Assembling/soldering order for the Options Expansion Module

The bottom of the VRAM exapnsion RAM module, once soldered, will make contact with the V99x8 VDP plastic cover. The PCB is designed to be installed at a slight angle. To ensure a good fit perform the assembly in the following process:

  1. Solder the resistors, then the 0.1uF capacitors.
  2. Solder the 6 “18 PIN IC” sockets.
  3. Clip the underside of the soldered pins of all components, including ICs, to allow for as much clearance when installing as possible.
  4. Reflow the solder joints, after clipping, to ensure a good connection of the pins is maintained.
  5. Cut 4 lengths of 18 pins, from the Round Machine male headers.
  6. Cut 1 length of 3 pins, of Round Machine male headers.
  7. Use the V99x8 video module as a jig, by placing the headers into the relevant sockets, with the correct orientation of the pins (see image under Note 7).
  8. Place the VRAM expansion PCB over the top, noting the angle - ensure all headers pins have sufficient height through the VRAM expansion module. (If height is insufficient, review the underside of the VRAM Expansion module to ensure the pins are trimmed sufficiently)
  9. Solder the Headers on the top of VRAM Expansion module.

TODO ADD IMAGES WHEN THE 0.8mm heigh PCB arrives

NOTE 7 - Expansion VRAM pin orientation

Note the orientation of how the round headers need to be soldered to the expansion module.


Disclaimer

Please note that this is a kit, produced by a non-expert (me) for hackers, DIYers’ and retro lovers, to tinker with. Please exercise caution and follow good safety practices. You will be working with sharp knives, a hot soldering iron, and small metal components. Be mindful of the risks involved in the build process. I will do my best to answer any questions you may have.

This kit is provided as-is, with no guarantees or warranties. By assembling and using this kit, you acknowledge that you do so at your own risk.