Jump to content

Photo

CRT simulation for Stella


54 replies to this topic

#1 ibogost OFFLINE  

ibogost

    Chopper Commander

  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 4:43 AM

I'm really excited to let you know about a forthcoming CRT television simulation system, which a handful of Georgia Tech CS students have been developing with me as their senior capstone project. My goal was to bring more of the visual features of the television to the Stella emulator, including beam separation, screen texture, color bleed, and even more frame-to-frame afterimage.

I've attached a sample but invite you to read more here.

Posted Image

The students (Edward Booth, Michael Cook, Justin Dobbs, Will Rowland, and Prince Yang) are working to roll this back into the Stella codebase, so hopefully it will be available for everyone as an option in the program's video configuration soon. There is still more refinement that can be done, not to mention optimization, but I'm really happy with the results; they did a great job.

#2 Tom-Lynx OFFLINE  

Tom-Lynx

    Dragonstomper

  • 715 posts
  • Location:NW Chicago Suburbs, IL

Posted Wed Apr 22, 2009 5:22 AM

Is this being done together with Stephena also?

#3 Mirage OFFLINE  

Mirage

    Quadrunner

  • 6,624 posts
  • Have a problem? Hire the Envious Snakes!
  • Location:Milwaukee, WI

Posted Wed Apr 22, 2009 5:23 AM

Can you add in where you have to whack the monitor on the side occasionally to get the picture to come back in after it randomly drifts out a bit... and an occasional snippet of a TV program interrupting gameplay for a quick second? I remember both of those in the '80s!

j/k... this looks really great. Getting just a step closer to truly making emulation a replacement for hardware. Good work!

EDIT: I just looked at the other pictures. That does more for me that I would expect to really set the mood for how the games were back in the day. Truly great work. This is a major step forward for emulation.

Edited by Mirage1972, Wed Apr 22, 2009 6:10 AM.


#4 roland p OFFLINE  

roland p

    Stargunner

  • 1,878 posts
  • $23
  • Location:The Netherlands

Posted Wed Apr 22, 2009 6:04 AM

Nice work. Yar's looks very CRT-like.

When you use openGL as a renderer, maybe you could add barrel distortion effects too, as old crt's are curved.

Edited by roland p, Wed Apr 22, 2009 6:05 AM.


#5 ibogost OFFLINE  

ibogost

    Chopper Commander

  • Topic Starter
  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 6:13 AM

Is this being done together with Stephena also?


We've indeed been in touch with Stephen regarding the project and integrating it into the Stella codebase.

#6 ibogost OFFLINE  

ibogost

    Chopper Commander

  • Topic Starter
  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 6:14 AM

Nice work. Yar's looks very CRT-like.

When you use openGL as a renderer, maybe you could add barrel distortion effects too, as old crt's are curved.


Yes, I thought about this too! It's not in there yet, but it's a good idea for a future release. I think some GL optimization is required first (it can really chug at 4x size). I also considered a tube reflection, as one might see on the curved glass surface.

#7 ibogost OFFLINE  

ibogost

    Chopper Commander

  • Topic Starter
  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 6:16 AM

EDIT: I just looked at the other pictures. That does more for me that I would expect to really set the mood for how the games were back in the day. Truly great work. This is a major step forward for emulation.


Awesome, glad to hear it!

#8 roland p OFFLINE  

roland p

    Stargunner

  • 1,878 posts
  • $23
  • Location:The Netherlands

Posted Wed Apr 22, 2009 6:22 AM

Nice work. Yar's looks very CRT-like.

When you use openGL as a renderer, maybe you could add barrel distortion effects too, as old crt's are curved.


Yes, I thought about this too! It's not in there yet, but it's a good idea for a future release. I think some GL optimization is required first (it can really chug at 4x size). I also considered a tube reflection, as one might see on the curved glass surface.


I know someone who did the barrel-distorion effects in his emulator. You can see it here:http://www.gagaplay....emu2/jemu2.jnlp (java) choose for renderer-3d

#9 Trebor OFFLINE  

Trebor

    River Patroller

  • 2,812 posts

Posted Wed Apr 22, 2009 6:44 AM

It would be great if the end results looked like Blargg's NTSC Libraries, here:

http://slack.net/~ant/libs/ntsc.html

kat5200 has incorporated an NTSC filter - and it really is fantastic. As shown in the link above there has been NTSC filters incorporated in various other system emulators (including Nestopia). It would be great to see an Atari 2600 emulator and an Atari 7800 emulator with such an effect.

All the best with this endeavor, ibogost. I'm looking forward to the end results.

-Trebor

Edited by Trebor, Wed Apr 22, 2009 7:14 AM.


#10 ibogost OFFLINE  

ibogost

    Chopper Commander

  • Topic Starter
  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 7:10 AM

I know someone who did the barrel-distorion effects in his emulator. You can see it here:http://www.gagaplay....emu2/jemu2.jnlp (java) choose for renderer-3d


Ha! It looks great. Maybe a bit too much distortion even, but the effect is really nice. Thanks for pointing me to it.

#11 ibogost OFFLINE  

ibogost

    Chopper Commander

  • Topic Starter
  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 7:11 AM

kat5200 has incorporated an NTSC filter - and it really is fantastic. As shown in the link above there has been NTSC filters incorporated in various other system emulators (including Nestopia). It would be great to see an Atari 2600 and an Atari 7800 with such an effect.


These are indeed fantastic, thanks for sharing them.

#12 BigO OFFLINE  

BigO

    River Patroller

  • 3,320 posts
  • Location:Phoenix, AZ

Posted Wed Apr 22, 2009 8:32 AM

Interesting. So much effort going into making the picture from an emulator look more like the old original hardware CRT images while in another camp we have people working hard to make the original hardware render images less like the original hardware.

#13 ibogost OFFLINE  

ibogost

    Chopper Commander

  • Topic Starter
  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 8:43 AM

Interesting. So much effort going into making the picture from an emulator look more like the old original hardware CRT images while in another camp we have people working hard to make the original hardware render images less like the original hardware.


Yeah, different approaches. Just shows the breadth of interest in the VCS, I suppose.

#14 stephena ONLINE  

stephena

    River Patroller

  • 2,529 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Wed Apr 22, 2009 9:08 AM

Interesting. So much effort going into making the picture from an emulator look more like the old original hardware CRT images while in another camp we have people working hard to make the original hardware render images less like the original hardware.

At first glance it may seem strange, but it really isn't when you think about it. First of all, each camp is completely separate. For example, the typical RF output is absolutely horrible, so people try to get a better image. I'm personally in that camp; I'm waiting for an S-Video mod for my heavy sixer right now. But then there's the emulation camp, where the image really is too sterile, so it would be nice to 'dirty it down' a little.

Both groups want to improve the images on their systems for various definitions of 'improve'. In the end, it's about having choice (particularly on the emulation side, where all this is completely configurable).

And BTW, I just wanted to add how excited I am about all this. Better filtering was one of my main goals back when I first started working on Stella, and it's absolutely wonderful to see it being finally added. :D

#15 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash

  • 18,894 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany

Posted Wed Apr 22, 2009 10:19 AM

I just found this thread due to Stephen's post at [stella]. :thumbsup:

This is fantastic stuff and I hope it will become integrated into the Stella codebase soon.

A few questions:
- Will there be PAL emulation too? I suppose some effects might look different on PAL TVs (e.g. color bleeding).
- Will the effects be adjustable or just on and off? I would like them to be adjustable and maybe the parameters could be stored into a property file, so people can exchange them.
- How about the palettes? Is there a chance that the palettes will be profiting from this new code too? Adjustable palettes (property file again) would be great.

#16 stephena ONLINE  

stephena

    River Patroller

  • 2,529 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Wed Apr 22, 2009 10:43 AM

I just found this thread due to Stephen's post at [stella]. :thumbsup:

This is fantastic stuff and I hope it will become integrated into the Stella codebase soon.

A few questions:
- Will there be PAL emulation too? I suppose some effects might look different on PAL TVs (e.g. color bleeding).
- Will the effects be adjustable or just on and off? I would like them to be adjustable and maybe the parameters could be stored into a property file, so people can exchange them.
- How about the palettes? Is there a chance that the palettes will be profiting from this new code too? Adjustable palettes (property file again) would be great.

I haven't seen the code yet, but based on the UML diagrams I have seen, it looks to be an 'on or off' thing. And I think the first pass will be just that as well. I'm not opposed to making the parameters adjustable and exposing them through the UI, but I think that will have to come in a later release, when I'm more familiar with the new code.

#17 SpiceWare OFFLINE  

SpiceWare

    Quadrunner

  • 8,261 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Wed Apr 22, 2009 12:50 PM

Cool!

I've messed with a number of these options in MAME. The one I like best is raster lines - makes the images look a lot less pixelated.

#18 frogstar_robot OFFLINE  

frogstar_robot

    Dragonstomper

  • 751 posts

Posted Wed Apr 22, 2009 1:12 PM

If implemented as a library, this could show up in other emulators and join the other scalers and filters emulators offer. If it were an SDL driver then these effects could be applied to any SDL software. There's a lot of things that could happen.

The thing I've always thought needed more thought is vector monitor behavior. I know there is no way an LCD or even a plasma can draw the super bright lines of a vector monitor but there is much that can be done. I don't play vector games in MAME much. Take Asteroids for instance. On the original displays, a shot looked like a Great Ball Of Glowing Plasma Death. In MAME, shots are dim little points. Even playing around with settings like Beam Width and Brightness don't really help much as the best I can create are shots that are fuzzy squares. And some of that glowing effect wasn't just the vector monitor alone. The monitor was under glass that reflected some of the light back and created a penumbra effect around objects. Take the shots in Asteroids again. Thanks to the glass, a shot was a bright round point surrounded by a round aura at perhaps 5% of the brightness of the central point. All of this contributed to the look of the original game. Emulators turn the great vector games into dim uninspired lines.

Edited by frogstar_robot, Wed Apr 22, 2009 1:13 PM.


#19 ibogost OFFLINE  

ibogost

    Chopper Commander

  • Topic Starter
  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 1:41 PM

I just found this thread due to Stephen's post at [stella]. :thumbsup:

This is fantastic stuff and I hope it will become integrated into the Stella codebase soon.

A few questions:
- Will there be PAL emulation too? I suppose some effects might look different on PAL TVs (e.g. color bleeding).
- Will the effects be adjustable or just on and off? I would like them to be adjustable and maybe the parameters could be stored into a property file, so people can exchange them.
- How about the palettes? Is there a chance that the palettes will be profiting from this new code too? Adjustable palettes (property file again) would be great.


It's a great point about PAL. I don't know that we're familiar enough with the PAL TV appearance here in the States. I'd love to learn more about those differences anyway (differences in subtle appearance, I mean).

We also talked about palettes, because the filters do alter the perceived colors in undesirable ways at some stages. But we didn't bake in any auto-paletting solution. It might be worthwhile to create some palette revisions to use (manually) in tandem with these.

I haven't seen the code yet, but based on the UML diagrams I have seen, it looks to be an 'on or off' thing. And I think the first pass will be just that as well. I'm not opposed to making the parameters adjustable and exposing them through the UI, but I think that will have to come in a later release, when I'm more familiar with the new code.


Yes, currently it's on/off. It could be parameterized, but I'd prioritize that after optimization.

#20 ibogost OFFLINE  

ibogost

    Chopper Commander

  • Topic Starter
  • 139 posts
  • Location:Atlanta

Posted Wed Apr 22, 2009 1:49 PM

If implemented as a library, this could show up in other emulators and join the other scalers and filters emulators offer. If it were an SDL driver then these effects could be applied to any SDL software. There's a lot of things that could happen.


I agree, lots to think about. Check out the C SDL code linked above too.

Take Asteroids for instance. On the original displays, a shot looked like a Great Ball Of Glowing Plasma Death. In MAME, shots are dim little points. ...


Yes! I think about this a lot. In addition to everything you've said, different Asteroids cabinets would have different intensities of beam strength and different phosphor coatings, so each one had a kind of signature.

Interesting Asteroids port tidbit (I think we mention this in Racing the Beam): Asteroids was the only original Xbox game to run at 1080i (on one of those Arcade Collections). They couldn't recreate phosphor glow on an LCD, but they could recreate very high resolution graphics.

#21 SRGilbert OFFLINE  

SRGilbert

    River Patroller

  • 2,498 posts
  • Location:Lansing, MI

Posted Wed Apr 22, 2009 5:57 PM

Interesting. So much effort going into making the picture from an emulator look more like the old original hardware CRT images while in another camp we have people working hard to make the original hardware render images less like the original hardware.

Not to mention all the time, money and effort people put into upgrading old consoles to support S-video outputs and 2 channel audio! :)

I'm glad that someone is offering this, but honestly I can't imagine I'd use it.

#22 Keatah ONLINE  

Keatah

    Quadrunner

  • 7,810 posts

Posted Wed Apr 22, 2009 7:24 PM

Nice work. Yar's looks very CRT-like.

When you use openGL as a renderer, maybe you could add barrel distortion effects too, as old crt's are curved.


Yes, I thought about this too! It's not in there yet, but it's a good idea for a future release. I think some GL optimization is required first (it can really chug at 4x size). I also considered a tube reflection, as one might see on the curved glass surface.


I'm not to worried about a tube reflection, you can always get glare-free viewing by playing with your orientation with respect to the other lights in the room. But if you want, you can overlay a .png file or something as the reflected image.

What is more important, to me, is somehow simulating the crt electrical noise. The pictures on the the old tubes were never really stable like today's lcd monitors. There was some random fuzziness always present. and you could see it by looking real close. there was always some tiny static and shakiness in the image.

I have seen some of the mame filters and only a few look halfway good. It is nowhere near enough to just round the edges, you have to round them due to bleeding and glowing.


Everybody remembers playing these games on crappy crts. Some of us had good ones, some not so good. It is important to allow us to adjust the parameters based on what tv we had. It would be too much of a hassle to emulate all the types of tv tubes, but not much of a hassle to put in adjustable controls. Fuzziness, bleed, noise, stability, convergence, mis-convergence, saturation, brightness, luminance, chroma, type of phosphor mask, persistence, aperture grille. etc.. etc..


Someone previously said vector emulation pales in comparison to the real thing. Sure that's probably true, bit it *is* getting better. And yes, they have made a basic attempt at emulating phosphor glow too!

look at these -

http://xout.blackene.../Gravitron.html
http://wiebo.wordpre...om/my-pc-games/
http://worldofstuart...m/grid/wars.htm

and then there's this -
http://typhoon.kuto.de/shots.html

Not really emulation related or anything, but I do like the openGL glow effects. So it can be done to a certain extent.

Edited by Keatah, Wed Apr 22, 2009 7:30 PM.


#23 revolutionika OFFLINE  

revolutionika

    Quadrunner

  • 10,749 posts
  • Location:NC

Posted Wed Apr 22, 2009 7:26 PM

nice :)

#24 Wickeycolumbus OFFLINE  

Wickeycolumbus

    River Patroller

  • 4,742 posts
  • Location:Michigan

Posted Wed Apr 22, 2009 7:30 PM

I am very excited to see this in a future release of Stella :)

#25 Artlover OFFLINE  

Artlover

    Super Amazing Guy

  • 6,355 posts
  • Bad ass mother 4000, twice as fast as your ass.
  • Location:Miami, FL

Posted Wed Apr 22, 2009 7:32 PM

I don't see scan lines. :P




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users