Is there any RGB444 homebrew?

Talk about anything else you want

Moderator: BigEvilCorporation

Post Reply
twosixonetwo
Very interested
Posts: 58
Joined: Tue Feb 25, 2014 3:38 pm

Is there any RGB444 homebrew?

Post by twosixonetwo » Tue Nov 11, 2014 9:45 pm

Is there any homebrew that uses 4bits per RGB channel?

There has been some talk on the sega-16 forums back in 2009 about how it could be done (link), and it seems like MtChocolate has done a hardware mod that supports this:
Schematic
VDP soldering
Done?

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Tue Nov 11, 2014 11:13 pm

Awesome ! Really need to see a game using this extension :)
From the schematic it looks like the patch increase the palette number to 16:
4 base palettes * 2 (SPR/BG pin) * 2 (shadow pin).
And it uses 2*256 bytes chips for the CRAM connected to 3 4bits DAC for RGB444 output. Actually that is how the Megadrive should have been from the beginning :p

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Post by Mask of Destiny » Tue Nov 11, 2014 11:52 pm

Neat to see someone use the digital video data bus . It's not clear from the schematic how writing to this new CRAM is handled though, or if it's even possible. The schematic shows !WE held high and I don't see anything connecting it to the 68K's bus.

A "proper" implementation would probably be pretty complicated since you would need to detect writes to the VDP's internal CRAM and replicate them to the new CRAM for compatibility which would require replicating a fair chunk of the VDP's internal state. I suppose you could just have some kind of switch for selecting compatibility mode if you want to avoid all that.

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Wed Nov 12, 2014 12:27 am

Oh you are right, how this new CRAM is being write O_o ?
I guess there is no pin on the VDP to trace internal CRAM write :-/
The digital video data bus are the AD0 to AD7 pins ?

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Wed Nov 12, 2014 2:27 am

This has ROM palettes, no writability.
Easiest way to go about it is to add the CRAM into the address space somewhere. That is how things work with some arcade boards that use MD VDP with external CRAM.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy » Wed Nov 12, 2014 6:45 am

If you're going to make a board like that, it really should make the palette 24-bit. Any DAC you get these days will be 24-bit. There are quite a few spaces in the IO range that you can use to write the entries in a RAMDAC. I'd go with a RAMDAC rather than separate RAM and DACs. It makes the design much easier.

twosixonetwo
Very interested
Posts: 58
Joined: Tue Feb 25, 2014 3:38 pm

Post by twosixonetwo » Wed Nov 12, 2014 11:26 am

Chilly Willy wrote:If you're going to make a board like that, it really should make the palette 24-bit.
Doesn't that kinda defeat the purpose though? Of course it's a very arbitrary decision, but to me a 4bit enhancement would represent what sega could have done at the time while keeping the mega drive at a reasonable price. Also 24bit would limit h-blank color changes, as you would have to write 1 byte more per color.

Perfect backwards compatibility might however require a fpga to read the vdp reads and look for cram writes. Also you would need to to emulate the shadow/highlight behavior, and for that you would need Information about highlighted pixels (I guess the HL pin on the VDP provides this?).

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy » Wed Nov 12, 2014 8:28 pm

Yes, it is one more byte, but then you'll have to design around extra chips to do the same as a single ramdac. Also, most ramdacs use multiport ram for the cram, so you can write it at any time. If you map it to someplace outside the VDP, you should be able to write it with the 68000 at any time other than VDP DMA from the rom (which halts the 68000).

Remember that limits on WHEN you can write the cram vanish with this external design... if you design it right. Use multiport ram for the cram and you'll be able to write during the entire line. Tiny multiport rams like cram would use are also not that expensive. So if you really want 12 bit color to save that extra byte, you should still use multiport ram. Take a look at this chip

http://www.digikey.com/product-detail/e ... ND/2011340

2Kx16 async dual-port sram. Yes, it's bit larger than needed. It's as small as you can go at Digikey. I'd suggest making a bank register you can set so that you can quickly switch the entire palette... maybe separate bank registers for background vs sprites.

Post Reply