Video Overlay..looking for schematics ?

Page 2/2
1 |

By madscient

Master (179)

madscient's picture

14-12-2015, 20:10

In my schematic, synchronization is performed with /HRESET and /VRESET terminal input of V9958.
This functionality expects that master clock is shared in both VDP.

By MSX Crazy

Supporter (7)

MSX Crazy's picture

15-12-2015, 11:23

madscient wrote:

In my schematic, synchronization is performed with /HRESET and /VRESET terminal input of V9958.
This functionality expects that master clock is shared in both VDP.

The TMS9918 datasheet show a VERY simplistic dual video set-up, using two TMS9918s run from a common Clock (10.7MHz). I would be using a 21.477MHz Master clock, fed into the TMS9918 after being divided by 2 so giving 10.7MHz. Thus 21.477MHz for the V9938 and 10.7Mhz for the TMS9918 whether this will work is yet to be determined, but probably worth a try.

By MSX Crazy

Supporter (7)

MSX Crazy's picture

15-12-2015, 14:21

RetroTechie wrote:
madscient wrote:

I was considering twin VDP system with V9958 and 315-5124(a.k.a. SMS VDP).

Here is my superimpose circuit diagram:
https://twitter.com/madscient/status/653552892691898370

This circuit has no external genlock since it was based on prerequisite that both of VDPs share the same clock.

MSX Crazy wrote:

The V9938's composite signal would be fed straight into the TMS9918 EXTVID input , the TMS9918 has an internal BIT which allows an external composite signal to be input and the TMS9918 video would be 'Superimposed' on-top of the V9938s video signal. As long as the two signal are synchronised from the same clock, this should work.

There seems to be some confusion here. Running from the same master clock != synchronized. This just means: running at the exact same clock speed.

But depending on VDP's used, one may produce a few more screen lines. One may spend 603 clock cycles on a screen line, while the other uses 607 clock cycles for the same (just a random example). TMS9918A/9928A produce 60 frames/sec with 262 lines/frame, for TMS9929A this is 50 frames/sec with 313 lines/frame. So even running from the same master clock, they would start frames at different times, and would start screen lines at different times. Same thing with TMS9918A + V9938 or similar combo's.

The way a genlock circuit solves this, is by varying the VDP clock (+/- a few %) such that the VDP can 'catch up' with the external video source (or slow down until external video source has caught up with the VDP). And perhaps (if possible) use input signals that tell the VDP something like "start a new frame NOW!". As said, all of that is very much non-trivial. Hence why Philips 8280, Sony HB-G900 etc have such complex video circuitry.

Bottom line: you need 2 EXACT same type VDP's. And feed them the same master clock. And pay extra attention to things like the reset circuitry. And even then it may not work (depending on what type VDP you started with). OR you need a genlock circuit with all the complexity that comes with it.
Switching between video signals is NOT the hard part. Getting those video sources synchronized, is. And simply starting with the same master clock won't do the trick. That's where a genlock circuit comes in.

One other thing: 192K VRAM on a V9938/58 isn't much use, the extra 64K can't be used as additional display pages. Whatever goes in there, has to be copied back & forth to the regular 64 or 128K VRAM in order to appear on screen. So it's just a block of 64K RAM that happens to be controlled by the VDP.
This is why practically no software uses it. Just a gimmick, really.

** So is there a schematic/circuit/PCB to use two V9958s or two V9938s ??

By tvalenca

Paladin (728)

tvalenca's picture

15-12-2015, 16:55

MSX Crazy wrote:

** So is there a schematic/circuit/PCB to use two V9958s or two V9938s ??

Yes and it's (somewhat) documented on V9938 and V9958. The V9938 has a small synchronization circuit design because of the multiple-function pins. V9958 is more straightfoward on this, you just connect /VRESET and /HRESET to VSYNC and HSYNC signals coming from the other VDP/video source and you're good to go (Actually, you have to change a bit on one VDP register before activating video output on the VDP that had its /VRESET and /HRESET inputs connected). Then, you have to take care of the /Ys signal, use a fast enough switcher for video information on RGB pins, and activate external synchronization on the VDP, and if you're using any kind of composite video (S-Video is still composite because its color encoded on either NTSC or PAL) I don't know exactly which kind of video switcher circuit you need (working with RGB is less complex IMHO). If you are using an external video source (like a VCR, LaserDisk or DVD), you'll need a Genlock and the VDP will work on "slave" configuration (clock generated by genlock instead of crystal, /VSYNC and /HSYNC inputs connected) and if you use "twin VDP" layout, one VDP will be "master" (/VSYNC and /HSYNC pulled up, external video synchronization bit reset) and the other will be "slave" (/VSYNC and /HSYNC connected to "master" vdp, external video synchronization bit set). on this particular implementation, you won't need a genlocker, because you can simply use the same oscillator to drive both VDPs. (but you need a complete oscillator circuit, you cant connect the same crystal to both VDPs)

What the V99x8 datasheet doesn't comment is on twin-VDP implementations, you don't have a HSYNC output, but a CSYNC output instead (and weirdly enough, VSYNC output too) so I THINK (I couldn't test this properly since I can't find proper time) we should stripe away VSYNC information from CSYNC provided from master V99x8 before feeding slave V99x8 synchronization inputs. And contrary to "popular belief" our friend LM1881 won't help here, because it only outputs CSYNC and VSYNC, not HSYNC.

And finally when we think on ways you can have this on any MSX, you realize It can easily be done inside a cartridge containing the VDP, but since you don't have a "VDP master clock output" you will suffer having the CSYNC signal multiplied back to 21.47MHz (in theory you could just multiply bus signal CPUCLK by 6, but some computers have a different osclillator for CPUCLK than the VDP output so they won't work), so it's simpler design to have it installed internally (which is harder to install because the board will need some mods and each MSX has a different board layout)

This looks simple to me because I've been studying this matter for a while, but it may be complicated for someone else.

By MSX King

Supporter (8)

MSX King's picture

17-12-2015, 11:06

So this means that using two identical VDPs should be reasonably easy to do ?? like two V9958s or two TMS9918s, but using two different VDPs much more difficult. The best choice would clearly be use a V9990 for background and a V9958 superimposed to give MSX 2 compatibility...but this I'm assuming would be quite difficult to achieve ?

** But Is there not already a Commercial Cartridge for sale that does this sort of thing ?

By megatron

Resident (41)

megatron's picture

17-12-2015, 15:52

I was thinking of building a V9990 + V9958 , but soon realised it was too difficult (For me anyhow)!

By msx_manic

Supporter (1)

msx_manic's picture

17-12-2015, 15:59

The Idea of interfacing a TMS9918,TMS9928,TMS9929 to SRAM sounds interesting, but how would you do it.. I mean interfacing the multiplexed DRAM address lines to the SRAM ! The idea of having multiple pages of VRAM which can be switched rapidly in and out could produce some very interesting video effects. Hannibal

By l_oliveira

Hero (520)

l_oliveira's picture

17-12-2015, 16:08

Using SRAMs on the TMS9118/9128/29 should be easier than using with TMS9918/9928/29 because TMS91xx chips are designed to use fully separated data/address buses.

I think the method with the latch and the inverter used here:
http://bitcycle.org/retro/spectrum/SRAM_replacement/
may work alright for the TMS91xx series of VDPs.

By tvalenca

Paladin (728)

tvalenca's picture

17-12-2015, 16:14

MSX King wrote:

So this means that using two identical VDPs should be reasonably easy to do ?? like two V9958s or two TMS9918s, but using two different VDPs much more difficult. The best choice would clearly be use a V9990 for background and a V9958 superimposed to give MSX 2 compatibility...but this I'm assuming would be quite difficult to achieve ?

** But Is there not already a Commercial Cartridge for sale that does this sort of thing ?

Two V9958? I think so. (harder if you want to use the internal VDP of any MSX).
Two TMS9918? A little harder (this VDP don't have a transparent color output pin among other things), but the schematics on datasheet are pretty straightfoward.

And no, there aren't any commercial cartridges with another VDP and superimposition of signals.

By madscient

Master (179)

madscient's picture

17-12-2015, 19:25

Personally, I think we MSX users should forget V9990 once.
There are many VDP that more easy-to-use, easy-to-procure, cheaper, and high-functionality.

Page 2/2
1 |