Switch to full style

TMS9929 (Sega etc.) display direct to modern TV!

Seek advice, give advice or tell others about your repair and restoration projects

Re: TMS9929 (Sega etc.) display direct to modern TV!

by honestbob » Thu Feb 09, 2017 11:03 pm

Hi All

Here's a draft pdf of my latest Sega SC-3000 component video daughterboard design. It performs just as well as the previous one, but it is a lot simpler.

http://www.sc3000-multicart.com/downloa ... EagleD.pdf

Main changes are:

1. I got rid of the THS7314/7316. If you did not have to get rid of the R-Y and B-Y back porch pulses then this would be awesome (eg. for a TMS9928A). But it just complicated things once I had to get rid of the back porch pulses. Also it requires a 5v supply which means soldering a supply wire from the SC-3000 motherboard.

2. Uses 3 x AD828 op amps

3. It averages R-Y and B-Y together to give Vnocolor and get rid of the pulses in the back porch / burst interval area of the R-Y and B-Y signals instead of the sample / hold technique of my earlier schematic. This works because the pulses have the same amplitude but opposite phase. Same end result as the sample hold circuit approach - this is just a different solution to the same problem.

4. DC coupled input and output. You could easily add 47uF or larger capacitors to the output if you want, but the DC range should be reasonable at the TV so I haven't bothered. The input MUST be DC coupled for the averaging to work without a DC restore.

5. The first circuit required you to solder a +5v feed from the Sega SC-3000 motherboard. This one runs directly off the horrible 10V +/- 1v input with 100Hz ripple feed from the unregulated 9v Sega power brick (that is what is passed to the daughterboard connector by the motherboard). That 2v / 100Hz ripple sounds awful, but if you think about it the supply voltage only changes a tiny fraction across a single horizontal line scan, so it seems to be well within the capability of the AD828 to adjust.

This gives beautiful output on both my 32" Bauhaus LCD and my 29" Panasonic CRT TV. Stunningly good (well, for a 16 colour palette anyway). I never knew the Sega SC-3000 games looked that good :)

I will tidy up the schematic and draw up a PCB for it when I get some spare time.

Note: Your TV has to support a 288p (progressive scan) signal rather than a standard 576i (interlaced) signal for this to work over component. But if your TV works over the standard composite AV input with a Sega SC-3000 then there is a good chance it will also work over component. However like anything your mileage may vary. One of my TVs has two component inputs. It supports 288p on one component input but not on the second component input.

Cheers
honestbob
 
Posts: 91
Joined: Thu Jan 05, 2012 8:21 am
Location: New Zealand

Re: TMS9929 (Sega etc.) display direct to modern TV!

by kevman3d » Sat Feb 25, 2017 8:56 pm

That's really cool and thanks for posting it up! :) Its the one part of the 3000H here that is actually missing (apparently it was faulty, so father-in-law threw it in the bin rather than leaving it in the machine :( )

How hard is this to construct? The only reason I'm asking is that while I can work out what's going on with your diagram using my very primitive knowledge of electronics, I'm not sure if I could build something without seeing a physical unit in detail.
"kevman3d" on trademe.
Blog
Youtube
kevman3d
 
Posts: 392
Joined: Sun Jul 22, 2012 2:54 pm

Re: TMS9929 (Sega etc.) display direct to modern TV!

by honestbob » Sun Feb 26, 2017 6:40 am

kevman3d wrote:That's really cool and thanks for posting it up! :) Its the one part of the 3000H here that is actually missing (apparently it was faulty, so father-in-law threw it in the bin rather than leaving it in the machine :( )

How hard is this to construct? The only reason I'm asking is that while I can work out what's going on with your diagram using my very primitive knowledge of electronics, I'm not sure if I could build something without seeing a physical unit in detail.


Hi Kev

It is a shame your father-in-law threw the original daughterboard out. I think it would take several hours to construct one of these on vero board or similar and have a lot of fiddly, annoying wiring and it would be hard to debug. Here is the breadboard layout for reference.

20170226_breadboard_componentvideo.JPG
SC-3000 Component Video Breadboard
20170226_breadboard_componentvideo.JPG (139.95 KiB) Viewed 2721 times


However the good news is I actually have most of an Eagle PCB design done and I may make up a few boards for sale to recoup some costs if you're interested. Here's a draft layout. It still needs a few tweaks but is reasonably close. I used through hole components on the Sega SC-3000 Multicart so I thought this would be a good chance to try some surface mount work.

The main thing I'm playing around with now is to see if I can get rid of the faint jailbars (vertical bands) that show up in large areas of solid colour on my LCD TV. I still can't work out if it is part of the circuit design, part of the TMS9929A output, or just an artifact of how this one TV processes the 288p signal. I don't think there is anything I can do about it as I have tried a range of different techniques and chips and they are still there. Not a major until you start obsessing over trying to fix it :)

One thing to note is that it won't work on all TVs. Some newer TVs can't handle a 288p signal over component, and as you probably know with vintage computers your mileage will vary with how modern digital TVs interpolate and try to 'improve' the signal for display :) The newest TV I've tried is a 50" Panasonic Plasma we've had since about 2011. That isn't as good as my older two TVs but is still a lot better than composite.

I'm going for a 'no solder' installation for the end user. So all you would have to do is pop the case open, swap in the daughterboard, and make a small cut in the case for 3 x RCA female jack wires to run out the back. The sound would still come out the existing 5 pin DIN on the back of the SC-3000. If you wanted a more factory look you could always drill holes for RCA sockets and wire those up, or modify the 5 pin DIN and use a 5 pin DIN to 4xRCA cables (that's what I've done on mine), but that requires cuts to some traces on the motherboard.

Cheers

20170226_ComponentVideoPCB_draft.png
Sega SC-3000 Component Video Daughterboard draft layout
20170226_ComponentVideoPCB_draft.png (44.09 KiB) Viewed 2721 times
honestbob
 
Posts: 91
Joined: Thu Jan 05, 2012 8:21 am
Location: New Zealand

Re: TMS9929 (Sega etc.) display direct to modern TV!

by kevman3d » Thu Mar 09, 2017 7:07 am

Ooh. A PCB would be nice, and I would be interested if you planned on producing some. Obviously, the easier it is for a lay-person to do, the better lol! :lol:

Its odd that my father-in-law would throw anything out (he's a hoarder when it comes to electronics - as I've seen by the several boxes of old motherboards dating back god-knows how many decades).

Odds are when he said "Thrown out", he meant thrown in a box buried randomly somewhere in his mountain of boxes and doesn't know what he did with it. :roll:
"kevman3d" on trademe.
Blog
Youtube
kevman3d
 
Posts: 392
Joined: Sun Jul 22, 2012 2:54 pm

Re: TMS9929 (Sega etc.) display direct to modern TV!

by honestbob » Thu Mar 09, 2017 8:49 am

Hi Kev

No worries. I will let you know when I've made the boards up - I guess about 3 months from now.

I'm actually going to have one last go at a couple of alternative designs on the breadboard first to see if I can do anything with the faint jailbars on my LCD TV and I'm waiting on some parts from eBay. Going back to a sample-hold circuit, and putting the signal scaling prior to the amps. Then going to try pure op-amp design vs THS7314 (with 5th order butterworth filter) and THS7374 (with optional 6th order butterworth filter) again to see if there is any difference. The THSxxxx design requires a 5v regulator on the daughterboard though because the connector from the SC-3000 only feeds +9v (actually around 10v with 2v ripple) from the power brick. The op-amps tolerate that, but not the THSxxxx chips. I want to do that so the daughterboard is plug and play and you don't have to solder a 5v feed from the motherboard.

Note - all of the designs that I have tried actually give very similar real world performance. Although I can see the difference in the output signals in a scope, I honestly can't tell a lot of difference between the different designs when I look at the TV screen. But I want to build something a little more elegant if I can :) And one day I might do a CPLD version of the Sega SC3000 multicart, so learning SMD design and soldering will come in handy.

Jailbars are an interesting issue - these are vertical bands that show up in regions of solid colour. They are generally only a problem on high res digital TVs, not analog CRTs or (probably) lower res digital CRTs.

The signal output by the TMS9929A is actually pretty noisy. There is appears to be around +/- 40mV noise at the TMS9929A outputs (hard to say for sure as the breadboard wires are likely to increase noise). That is pretty significant once you realize that Vblack to Vwhite is only 700mV. So you can have over 10% variation in the source signal, which may well be worse by the time it has run through your circuit. And the voltage difference between some colour levels is very small too (the TMS9929A only has a 15 colour palette). It may be that just by making a real PCB instead of having the breadboard wires the noise levels drop considerably, but won't know until I try it.

The ADC (digitizer) on the TV then has to take your 288p signal which on the SC-3000 contains 256 x 192 lines of pixels plus borders, and convert that to a native 1280 x 720 or 1920 x 1080 signal to drive your nice new LCD display. If you have a regular repeating background noise signal (perhaps switching noise from the 8 x VRAM chips that the TMS9929A uses), then your high res display may well pick up on the signal variations when displaying a large solid block of colour because the actual screen can display several physical LCD pixels for every 'pixel' in your 288p signal and you get faint but noticeable vertical lines through that colour block. And of course this will vary from TV to TV too (it didn't happen on my 50" plasma, but did on my 32" LCD). But I figure the cleaner I can get the input signal, the better chance the TV has of handling it well. So I'm giving it one last go :)

Cheers
honestbob
 
Posts: 91
Joined: Thu Jan 05, 2012 8:21 am
Location: New Zealand

Re: TMS9929 (Sega etc.) display direct to modern TV!

by kevman3d » Sat Mar 11, 2017 10:43 pm

Sounds awesome, and look forward to see what you come up with... You're definitely talking a little beyond my expertise in this area (I understand what you're saying in simple laymans terms - but that's about it) :roll: .
"kevman3d" on trademe.
Blog
Youtube
kevman3d
 
Posts: 392
Joined: Sun Jul 22, 2012 2:54 pm

Re: TMS9929 (Sega etc.) display direct to modern TV!

by bhabbott » Tue Mar 21, 2017 7:25 pm

honestbob wrote:One thing to note is that it won't work on all TVs. Some newer TVs can't handle a 288p signal over component
Which make/model TVs have you tried that it does work on?
bhabbott
 
Posts: 6
Joined: Wed Aug 06, 2014 3:46 am
Location: Hastings, New Zealand

Re: TMS9929 (Sega etc.) display direct to modern TV!

by kevman3d » Mon Jun 19, 2017 8:36 pm

Howdy! :)

Quicky Q... Has there been any update on your PCB Daughterboard project? Thought I'd just pipe in and bump the thread. :lol:
"kevman3d" on trademe.
Blog
Youtube
kevman3d
 
Posts: 392
Joined: Sun Jul 22, 2012 2:54 pm

Re: TMS9929 (Sega etc.) display direct to modern TV!

by honestbob » Thu Jun 29, 2017 5:20 am

kevman3d wrote:Quicky Q... Has there been any update on your PCB Daughterboard project? Thought I'd just pipe in and bump the thread. :lol:


Hi Kev

Just struggling for spare time, unfortunately. I got stuck at this point:

I'm actually going to have one last go at a couple of alternative designs on the breadboard first to see if I can do anything with the faint jailbars on my LCD TV and I'm waiting on some parts from eBay. Going back to a sample-hold circuit, and putting the signal scaling prior to the amps. Then going to try pure op-amp design vs THS7314 (with 5th order butterworth filter) and THS7374 (with optional 6th order butterworth filter) again to see if there is any difference. The THSxxxx design requires a 5v regulator on the daughterboard though because the connector from the SC-3000 only feeds +9v (actually around 10v with 2v ripple) from the power brick. The op-amps tolerate that, but not the THSxxxx chips. I want to do that so the daughterboard is plug and play and you don't have to solder a 5v feed from the motherboard.


First, my Rigol oscilloscope went nuts just as I built my next circuit. That took me a few weeks to fix. Many thanks to Rob from Taupaki Technologies for all the encouragement in fixing it. It turned out to be something around the HScale encoder. It was either one of the diodes on the encoder, or it was a bad joint or something else about it. I'm still not certain. I ran through the schematics and I was certain it was one of the diodes on the HScale encoder causing the weird problems. But then I replaced the diode and it was still reading bad. Then I sucked a bit of solder off the HScale encoder mounting point, then hooked it back up, and it worked. So I'm still not certain exactly which of my actions fixed it.

I also had a slightly scary reminder of why you don't get lazy and you should disconnect the power EVERY time you work on the PCB and then remount it properly in the case rather than get lazy. I got sick of pulling the bloody thing in and out so I left the mounting screws off. The PCB then shifted slightly and shorted out a live power trace on the PCB to the grounded metal case of the scope. Big bang / flash / lots of stinky magic smoke and a good fright. Luckily it was just a power trace that burned out so I was able to replace with a wire. And lucky I didn't learn a more permanent lesson. It does show that having earthed cases is a very important safety feature though.

After that, I built another sample-hold based circuit which I thought would be perfect. Except it wasn't. Getting some weird spikes and voltage shifts I couldn't explain which took a lot more research.

So... I think I'm back at the point where I will finish off my 'averager' circuit PCB when I get some time. It isn't adjustable, but it does seem to give very good performance on the TVs I've tried it with. And it will run off the 9v feed from the SC-3000 and doesn't require a seperate power regulator to drop to 5v like the THSXXXX chips require. And I was still getting that faint banding on my Bauhaus TV even with the THSXXXX chips and the buttleworth filters, so I think that is just a property of the digitizer in this particular TV - I can't see anything on the scope that would explain the bands from the actual signal.

Ah... that's right. One tradeoff of my current averager design is that if you don't have large capacitors on the output lines, then the output is out of spec. From memory the black level is supposed to be +/- 1v or something like that, and my current circuit relies on the TV being able to handle a slightly higher level than that, which they will - but not ideal.

I might also dump the surface mount components and go back to a through hole design. I bought in all the components I need and DAMN some of those are fiddly to work with :) I wanted practice with surface mount, which would be fine for the first couple, but I'm struggling to see how I could assemble several of these in reasonable time.

So anyway, it is still ticking along. Just busy.

Cheers
honestbob
 
Posts: 91
Joined: Thu Jan 05, 2012 8:21 am
Location: New Zealand

Re: TMS9929 (Sega etc.) display direct to modern TV!

by kevman3d » Tue Jul 11, 2017 8:23 pm

lol! Don't worry - I know exactly what you mean with lack of spare time. :lol:
"kevman3d" on trademe.
Blog
Youtube
kevman3d
 
Posts: 392
Joined: Sun Jul 22, 2012 2:54 pm

Re: TMS9929 (Sega etc.) display direct to modern TV!

by ti99user » Tue Aug 15, 2017 6:31 pm

honestbob wrote:Hi All

Here's a draft pdf of my latest Sega SC-3000 component video daughterboard design. It performs just as well as the previous one, but it is a lot simpler.

http://www.sc3000-multicart.com/downloa ... EagleD.pdf



Great work. Can you share your Eagle files, too?

That should solve the wrong colors on my experiments I worked on with the TI99/4A (which also uses the TMS9929A). Especially e.g. Parsec has a blue instead of black background.

Thnx.

ti99user
ti99user
 
Posts: 4
Joined: Tue Aug 15, 2017 5:39 am

Re: TMS9929 (Sega etc.) display direct to modern TV!

by ti99user » Tue Aug 15, 2017 6:34 pm



Hello,

Great job. Can you share a full scan of your work (some parts on the left and bottom are missing).

Thnx.

ti99user
ti99user
 
Posts: 4
Joined: Tue Aug 15, 2017 5:39 am

Re: TMS9929 (Sega etc.) display direct to modern TV!

by ti99user » Tue Aug 15, 2017 6:40 pm



Find also that schematic usefull

ti99user
Attachments
RGB Encoder - PAL Modulator - TI99.jpg
RGB Encoder - PAL Modulator - TI99
RGB Encoder - PAL Modulator - TI99.jpg (910.82 KiB) Viewed 1778 times
ti99user
 
Posts: 4
Joined: Tue Aug 15, 2017 5:39 am

Re: TMS9929 (Sega etc.) display direct to modern TV!

by ti99user » Wed Aug 16, 2017 8:31 am

ti99user wrote:
honestbob wrote:Hi All

Here's a draft pdf of my latest Sega SC-3000 component video daughterboard design. It performs just as well as the previous one, but it is a lot simpler.

http://www.sc3000-multicart.com/downloa ... EagleD.pdf



Great work. Can you share your Eagle files, too?

That should solve the wrong colors on my experiments I worked on with the TI99/4A (which also uses the TMS9929A). Especially e.g. Parsec has a blue instead of black background.

Thnx.

ti99user


My calculations:
================================================================================================================================================================
20170209_ComponentVideo_RY_BY_Averager_EagleD.pdf:
Input 1Vpp signal without sync @ 470E:
Yout=Yin*(1+1k/2.56k)*75E/(75E+75E)*1Vpp=0.6953125Vpp => v=0.6953125Vpp/0.7Vpp=~1
Pr=(R-Y)*75E/(75E+75E)*1Vpp=0.5Vpp => v=0.5Vpp/0.7Vpp=0.71428571428571428571 => correct (ideal: 0.71326676176890156919)
Pb=(B-Y)*859E/(240E+859E)*75E/(75E+75E)*1Vpp=0.39080982711555959964Vpp v=0.39080982711555959964Vpp/0.7Vpp=0.55829975302222799948 => correct (ideal: 0.56433408577878103837)
================================================================================================================================================================
https://hackaday.io/project/13056-tms99 ... nt-adapter
TMS9929_RGB_Adapter.pdf
========================================
= Variant Y R-Y B-Y ("YUV")
========================================
Input 1Vpp signal without sync @ 470E:
Yout=Yin*(1+1k/2k)*75E/(75E+75E)*1Vpp=0.75Vpp => v=0.75Vpp/0.7Vpp=1.07142857142857142857
(R-Y)out=(R-Y)*(1+1k/2k)*75E/(75E+75E)*1Vpp=0.75Vpp => v=0.75Vpp/0.7Vpp=1.07142857142857142857
(B-Y)out=(B-Y)*(1+1k/2k)*75E/(75E+75E)*1Vpp=0.75Vpp => v=0.75Vpp/0.7Vpp=1.07142857142857142857

========================================
= Variant RGB
========================================
Input 1.5Vpp signal without sync after U1A, U2A, U3A:
Y=0.299*R+0.587*G+0.114*B

Rout=(1+1.2k/1k)*(1.5Vpp*Y*1k/(1k+1.2k)+1.5Vpp*(R-Y)*1.2k/(1k+1.2k))*75E/(75E+75E)=(1+1.2k/1k)*(1.5Vpp*Y*1k/(1k+1.2k)+1.5Vpp*(R-Y)*1.2k/(1k+1.2k))*0.5=1.5Vpp*Y*1.0*0.5 + 2.2*1.5Vpp*(R-Y)*54/99*0.5=0.75Vpp*Y +0.9Vpp*(R-Y)=0.9Vpp*R-0.15Vpp*Y=0.9Vpp*R-0.15Vpp*(0.299*R+0.587*G+0.114*B)=0.85515Vpp*R-0.08805Vpp*G-0.0171Vpp*B => correct
Bout=(1+1k/1k)*(1.5Vpp*Y*1k/(1k+1k)+1.5Vpp*(B-Y)*1k/(1k+1k))*75E/(75E+75E)=(1+1k/1k)*(1.5Vpp*Y*1k/(1k+1k)+1.5Vpp*(B-Y)*1k/(1k+1k))*0.5=1.5Vpp*Y*2.0/2.0*0.5 + 2.0*1.5Vpp*B*0.5*0.5 - 2.0*1.5Vpp*Y*0.5*0.5=0.75Vpp*Y + 0.75Vpp*B - 0.75Vpp*Y = 0.75Vpp*B => correct
Gout=(1.5Vpp*Y*1k/(1k+1k)*(1+3.6k/(6.2k||9.1k))+1.5Vpp*(R-Y)*(-3.6k/6.2k)+1.5Vpp*(B-Y)*(-3.6k/9.1k))*75E/(75E+75E)=
=(1.5Vpp*Y*0.5*1.97624955689471818504-1.5Vpp*R*0.58064516129032258065+1.5Vpp*Y*0.58064516129032258065-1.5Vpp*B*0.3956043956043956044+1.5Vpp*Y*0.3956043956043956044)*0.5
=1,47328075150655795818Vpp*Y-0,43548387096774193548Vpp*R-0,2967032967032967033Vpp*B=1,47328075150655795818Vpp*(0.299*R+0.587*G+0.114*B)-0,43548387096774193548Vpp*R-0,2967032967032967033Vpp*B=0.00502707373271889402Vpp*R+0.86481580113434952145Vpp*G-0.12874929103154909607Vpp*B => correct
================================================================================================================================================================
ti99user
 
Posts: 4
Joined: Tue Aug 15, 2017 5:39 am

Previous

Who is online

Users browsing this forum: No registered users and 4 guests