ibogost Posted April 22, 2009 Share Posted April 22, 2009 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. 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. Quote Link to comment Share on other sites More sharing options...
Tom-Lynx Posted April 22, 2009 Share Posted April 22, 2009 Is this being done together with Stephena also? Quote Link to comment Share on other sites More sharing options...
Mirage Posted April 22, 2009 Share Posted April 22, 2009 (edited) 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 April 22, 2009 by Mirage1972 Quote Link to comment Share on other sites More sharing options...
roland p Posted April 22, 2009 Share Posted April 22, 2009 (edited) 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 April 22, 2009 by roland p Quote Link to comment Share on other sites More sharing options...
ibogost Posted April 22, 2009 Author Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
ibogost Posted April 22, 2009 Author Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
ibogost Posted April 22, 2009 Author Share Posted April 22, 2009 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! Quote Link to comment Share on other sites More sharing options...
roland p Posted April 22, 2009 Share Posted April 22, 2009 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.com/jemu2/jemu2.jnlp (java) choose for renderer-3d Quote Link to comment Share on other sites More sharing options...
Trebor Posted April 22, 2009 Share Posted April 22, 2009 (edited) 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 April 22, 2009 by Trebor Quote Link to comment Share on other sites More sharing options...
ibogost Posted April 22, 2009 Author Share Posted April 22, 2009 I know someone who did the barrel-distorion effects in his emulator. You can see it here:http://www.gagaplay.com/jemu2/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. Quote Link to comment Share on other sites More sharing options...
ibogost Posted April 22, 2009 Author Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
BigO Posted April 22, 2009 Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
ibogost Posted April 22, 2009 Author Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
+stephena Posted April 22, 2009 Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 22, 2009 Share Posted April 22, 2009 I just found this thread due to Stephen's post at [stella]. 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. Quote Link to comment Share on other sites More sharing options...
+stephena Posted April 22, 2009 Share Posted April 22, 2009 I just found this thread due to Stephen's post at [stella]. 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. Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted April 22, 2009 Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
frogstar_robot Posted April 22, 2009 Share Posted April 22, 2009 (edited) 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 April 22, 2009 by frogstar_robot Quote Link to comment Share on other sites More sharing options...
ibogost Posted April 22, 2009 Author Share Posted April 22, 2009 I just found this thread due to Stephen's post at [stella]. 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. Quote Link to comment Share on other sites More sharing options...
ibogost Posted April 22, 2009 Author Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
SRGilbert Posted April 22, 2009 Share Posted April 22, 2009 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. Quote Link to comment Share on other sites More sharing options...
Keatah Posted April 23, 2009 Share Posted April 23, 2009 (edited) 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.blackened-interactive.com/Gravitron.html http://wiebo.wordpress.com/my-pc-games/ http://worldofstuart.excellentcontent.com/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 April 23, 2009 by Keatah Quote Link to comment Share on other sites More sharing options...
Rev Posted April 23, 2009 Share Posted April 23, 2009 nice Quote Link to comment Share on other sites More sharing options...
Wickeycolumbus Posted April 23, 2009 Share Posted April 23, 2009 I am very excited to see this in a future release of Stella Quote Link to comment Share on other sites More sharing options...
Artlover Posted April 23, 2009 Share Posted April 23, 2009 I don't see scan lines. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.