Go Down

Topic: Hackvision now available (Read 4539 times) previous topic - next topic

cr0sh

Quote
I think that the fact it can't do colour or really high res powerful games is one of the great things about it.


If the resolution was just a tad bit higher (or maybe the aspect ratio changed a bit - since the following depends more on horizontal resolution than vertical), one could achieve artifact colors, at least on NTSC (PAL doesn't do artifact colors well or possibly at all).

On the TRS-80 Color Computer 1 & 2, using an NTSC television or composite monitor, there was the screen known as "PMODE 4", which was technically a 2-color screen (black and white; ok black and "buff" - which wasn't quite white, according to the manual), but it had enough resolution horizontally (256 pixels H x 192 pixels V) that in the NTSC mode, when placing vertical lines next to each other in different patterns, one could obtain two other artifact colors - a "red"-like hue, and a "blue"-like hue. It actually worked really well; tons of games used the colors (one of my favorite, though more obscure titles: Robot Odyssey by The Learning Company - http://en.wikipedia.org/wiki/Robot_Odyssey).

The PAL "version" of the Color Computer couldn't do the proper artifact colors - supposedly they saw green and purple stripesl. Artifact colors were used by some on other systems as well; interestingly, the CGA adaptor could do them (if you had a proper composite monitor hooked up), but most people used a standard color monitor, and so it wasn't a widely used mode for the IBM. A similar thing occurred on the later Tandy Color Computer 3: When it was launched, it had the ability to use an RGB monitor, which a lot of users purchased (the CM-8). It could still hook up to a television or composite monitor, but in order to use the higher resolution displays and 80 column text modes, the display was crisper and led to less eye strain on the monitor, so a lot of users went this route.

This led to an unfortunate oversight by the community, one that wouldn't be resurected until late last year (2009): The Color Computer 3 640x192x4 color artifact mode. In this mode, if you selected that screen (HSCREEN 4, IIRC), then set the color palette to the four grey-scale colors available (white and black, plus two intermediate greys) - then with the right patterns on-screen with an NTSC monitor or TV - you could suddenly get hundreds of colors! This has been called a "256 color" mode - whether that is true or not, I don't know - but it is quite amazing to see:

http://www.atariage.com/forums/blog/105/entry-6693-color-computer-3-artifact-art/

Unfortunately, it drops the "usable" resolution down to 160x192 pixels (note where it says in that posting "200" vertical pixels - by default, the Color Computer 3's maximum vertical resolution was 192 pixels, but there were ways to increase that number). Whether such a system could've been used for games or other applications is unknown, but I bet had the community been widely aware of this "mode" at the time (mid-late 1980s), applications would've been developed. I say "widely", because from what I have found, this mode was actually discovered by someone at the time, but was only published in a small Color Computer magazine that didn't have the wide circulation of the main CoCo mag, The Rainbow - and so the mode and technique was quietly ignored.

So - you can see that if the resolution of the TVOut library was changed slightly, we could potentially get four colors. If there was just a way to employ more bits per pixel, we could potentially get even more (perhaps up to 8) - but unfortunately, there isn't enough memory. Now - if someone wanted to figure out how to replicate the Atari 2600 graphics hardware in a couple of ATMega328s - that might be possible, but it wouldn't be anywhere near as easy to code for...

:)
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Tornadoboy

Don't get me wrong, I'm under no dillusions that it has to be capable of high-res etc to be worthwhile, I've always had a fantasy of building my own unique, commercial quality (if only compared to 70's genre)coin operated video game from scratch and perhaps HV is a means to that. Yeah sure I could build a MAME cab and run and a homemade game written to run under XP, but there's something phony about that, I'd like it to be totally dedicated hardware.

cr0sh

Quote
Don't get me wrong, I'm under no dillusions that it has to be capable of high-res etc to be worthwhile, I've always had a fantasy of building my own unique, commercial quality (if only compared to 70's genre)coin operated video game from scratch and perhaps HV is a means to that.


It's probably as close as you're going to be able to manage with a simple-to-use library that gives you worthwhile resolution, provided you don't mind "black and white".

That doesn't mean you couldn't get full color rendering, etc from a 168/328 - look at this:

http://www.linusakesson.net/scene/craft/

That was done with an ATMega88 - and a ton of finely crafted assembler code, running @ 20 MHz, on a VGA monitor. However, that assembler code is probably anything but simple, and it is probably hand-tuned to exact cycle counts.

Depending on how good you were, you might be able to do something like that, but still have the chip talk over I2C - and thus create an I2C capable "video chip". Elsewhere on that guy's site is a SID emulator based around the ATMega - so you could do the same for multi-voice sound ala the C=64. A third chip could handle I/O (joysticks and buttons), and the fourth could be running the game and communicating with the other three.

In theory.

In practice it would probably be a nightmare, even if you were as well versed as that guy in the internals and everything else needed to realize such a system. It would be one heck of a hack to see, though!

:)
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

mowcius

cr0sh, interesting reading!

Quote
I've always had a fantasy of building my own unique, commercial quality (if only compared to 70's genre)coin operated video game from scratch and perhaps HV is a means to that. Yeah sure I could build a MAME cab and run and a homemade game written to run under XP, but there's something phony about that, I'd like it to be totally dedicated hardware.

Did you see this beast of a home made games console?

http://hackaday.com/2010/09/29/lazarus-64-not-actually-64-bit-but-still-blows-our-minds/

:D

Mowcius

mowcius

Quote

That doesn't mean you couldn't get full color rendering, etc from a 168/328 - look at this:

http://www.linusakesson.net/scene/craft/

That was done with an ATMega88 - and a ton of finely crafted assembler code, running @ 20 MHz, on a VGA monitor. However, that assembler code is probably anything but simple, and it is probably hand-tuned to exact cycle counts.

Yeah that dude is insane.  ;)

Tornadoboy

#20
Oct 22, 2010, 07:31 pm Last Edit: Oct 22, 2010, 07:31 pm by Tornadoboy Reason: 1
Well building the cab, wiring it and physically putting the circuitry together shouldn't be too tough for me, I'm already building a couple from scratch with pre-existing game PCBs pulled from scrapped cabs, but doing the actual code on the other hand... well that might take me a while to figure out.  :-/

cr0sh

Here's something interesting:

http://humaneinfo.com/pc.html

Uses 3 ATMega328p microcontrollers - one for video, one for USB, and one for the "main" processor. Tons of other "features" too...

:)
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

mowcius

Quote
Here's something interesting:

http://humaneinfo.com/pc.html

Uses 3 ATMega328p microcontrollers - one for video, one for USB, and one for the "main" processor. Tons of other "features" too...

Indeed that is interesting. I wonder if they can still do $20 in bulk quantities with the price of ATmega328 chips up through the roof...

Mowcius

mdmetzle

#23
Oct 22, 2010, 10:07 pm Last Edit: Oct 22, 2010, 10:11 pm by mdmetzle Reason: 1
Given a device with enough memory TVout can already go up to 256x216 for NTSC and 256x260 for PAL. I have also considered creating a new render mode that would use the second USART on some devices in SPI transmit mode with no start stop or parity bits to create a faster method of output(360 pixels/line @16mhz).

I also already plan on implementing 2bit gray-scale version when I get it to a feature complete point, which would just involve changing the core and leaving the public interface alone. If I ever have time I also would like to create a VGA version this library that would have 4bit color(16 colors) however the highest possible resolution for VGA @16mhz would be 128x96, or 16x120 @20mhz (if I remember correctly).

Im very intrigued as to how this artifact color is actually generated, the pictures are very impressive.

liudr

You will spoil me with this. I want Contra. I love the music and the ability to defy physics in air. They say there's a secret game in contra, where you have to follow one particular enemy in the laser (6?) level and wait till he changes into a gaint crab, jump ahead of it and then you can run into the secret stage. I've tried so hard but never got in.

cr0sh

Quote
Im very intrigued as to how this artifact color is actually generated, the pictures are very impressive.


If you do some googling on "Color Computer 3 256 color artifact mode" or similar; also "CoCo 3 artifact color", etc - you should find some useful info about how the patterns were generated to make the proper colors. Lemme see...

Here's a couple more links:

http://www.coco3.com/community/2010/01/256-artifact-color-slideshow-demo
http://www.coco3.com/community/2010/03/320-pixel-mode-artifact-samples

Do some more searching on coco3.com - its where it was first announced (there, and the maltedmedia email listserv - so you might look up that archive and search around the December 2009 archives).

Something else to note - the pictures look waaay better on a real NTSC monitor/TV - particularly tube-based CRTs; some LCDs can't properly do the artifacting (some do, though) - and photos of the screens don't show the effect as nicely as "in person".

:)
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

cr0sh

Here's another link:

http://www.coco3.com/community/2010/01/a-640x4-artifact-bmp-viewer-and-more-details-on-the-mode
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

focalist

#27
Oct 22, 2010, 11:56 pm Last Edit: Oct 23, 2010, 12:07 am by focalist Reason: 1
This was also done for other machines, in fact, I remember clearly writing code for Atari 400 that does color by artifact.  Note that I think it only works for CRT's, I don't think the process would work on an LCD or other screen.  You should be able to experiment to get the effect... the whole idea is spacing vertical, horizontal, or diagonal lines at regular intervals.  You essentially cut your resolution by using two (or more) pixels per "dot", but you gain some basic "color".  To test it for yourself, just write some code for your lib there, and see what "colors" you get using different patterns.  If I remember, it only gave you a palette of half a dozen psuedo-colors, but it was useful when you had nothing else..

I do also think it required that hrez be rather high (320 or more) because it had to do somehow with overscan..

I remember that the base code that I used was from COMPUTE! magazine, if I had to guess, probably 1984-85ish, if that helps..
When the testing is complete there will be... cake.

cr0sh

Quote
Note that I think it only works for CRT's, I don't think the process would work on an LCD or other screen.


From what I remember in the discussion on the CoCo lists I frequent, artifacting does work on certain LCD televisions; it just depends on how faithful the LCD TV is at interpreting the NTSC signal (ie, does it interpret it warts and all, or does it "improve" it to make the picture look better).

I will agree that if you want to make sure that artifacting works, use a real NTSC tube CRT...

:)
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Senso

Now I understand the NTSC-Never The Same Colour.
Thats some pretty awesome things!

Go Up