ASCII by Jason Scott

Jason Scott's Weblog

What a Wonder is a Terrible Monitor —

While doing some preliminary interview footage for the Arcade Documentary project, I asked a bunch of teenagers what most surprised them at the MAGFest pop-up arcade, where dozens of games of all stripe were right there ready to be played. To a person, it was one thing:

The vector monitor on Asteroids.

If you see Asteroids online, the “screen” probably looks like this:

That is, it’s a JPEG or PNG or whatever, with the source likely being an emulator of some sort. So everything is crisp, and rasterized, and generated as if were a screen map, that is, from the assumption that it’s a raster screen. Playing the emulator itself is similar – there it is on your recently-vintaged flatscreen, perfectly sharp, definitely of the modern desktop era.

When you see it in the arcade, an original Asteroids machine screen looks kind of like this:

The vector lines, which are created by aiming a beam DIRECTLY AT YOUR EYES only to be stopped by a coated piece of glass, have a completely different feel. The phosphor glows, the shots look like small stars floating across the glass, and a raster line is not to be seen. It’s an entirely different experience, and the teenagers at MAGfest had never seen it before, and unfortunately, it is well on its way out.

(It would be worth it for myself or someone else to do research into “so what is the deal with CRT and vector monitors these days”. Some other time.)

So there’s several ways to go about this “problem”, assuming you recognize it as a “problem” that various types of monitors are disappearing with great speed, every year. One is to hoard old monitors. This is short-sighted and doomed. Another is to forget those monitors never existed. On the plus side, not much energy is required to do that. But these monitors are worth remembering, and it’s certainly the case that the software was written with these old display devices in mind.

Enter geekery.

Originally, emulators were trying to adapt this old software to be useful or at least pretty to modern systems – so the efforts were around scaling and smoothing. I can’t find the at-arms’-reach citation for when this started, but it’s at least a decade old. You could choose to smooth, upscale and anti-alias the graphics for your now-kickass setup, historically wrecking the item, but making it a lot easier to look at. (If you want an earlier situation that’s the same, there’s the adventure of DOOM and OpenGL.)

But meanwhile, CRTs started falling out of favor in a big way, and slightly rounded glass screens and beige enclosures began falling in front of Plasma and LCD.

Ian Bogost used slave student labor and created a Television Simulator to work out some themes in the excellent Racing the Beam book about the Atari 2600’s programming and context. It really opens your eyes to see the difference between the “original” emulated image and the “CRT simulated” graphics:

Suddenly, it’s pretty clear how the perfection of emulation takes away a lot of the analog fog that made digital compelling in a certain way.

Now, not unexpectedly, people were not happy with this implementation, since it wasn’t perfect and it wasn’t flexible. So work continued.

Some time ago, I was shown this image in relation to efforts with simulating a CRT monitor:

We’re getting into the Twilight Zone of Maybe You Don’t See All This Shit Going On, and that’s entirely fine. For some folks, the binary situation of “I can see it / I can not see it” is quite enough – that things are emulated at all is the end of the story. But still, it is quite amazing to me to see such subtle aspects as the curve of the monitor, the glow of pixels against glass, and the bleeding of voltages and scan lines all being emulated in software (sometimes with graphics hardware doing some of the lifting). In fact, working this hard to make these graphics look slightly ‘bad’ is a ton of work.

There’s a bunch of advancement being done with this outlook, using the MAME and MESS emulators. The direct name for this particular project is HLSLMAME. There’s a thread of discussion here about it. (There’s another thread over here as well.)

The images of the screenshots have a haunting quality to them, old but not old. Perfect but imperfect. I really love looking at them.

For an extra bonus, I was sent a few videos of this software CRT emulation in action.

I’ve uploaded them to the Internet Archive, where you can check them out. While you can play them on the Internet Archive’s player, I would not recommend this – all the subtle changes to the video signal are just not as obvious through the compression. Pull down these tens-of-megabytes files and see the changes in the video look through the settings.

When you look at the example configuration files, you realize how much of a tweaker’s paradise this is:

hlsl_enable 1
hlslini %g
hlsl_prescale_x 4
hlsl_prescale_y 4
hlsl_preset -1
hlsl_write 
hlsl_snap_width 2560
hlsl_snap_height 2048
shadow_mask_alpha 0.00
shadow_mask_texture aperture.png
shadow_mask_x_count 320
shadow_mask_y_count 256
shadow_mask_usize 0.187500
shadow_mask_vsize 0.09375
curvature 0.02
pincushion 0.02
scanline_alpha 0.450000
scanline_size 1.25
scanline_height 0.750000
scanline_bright_scale 1.000000
scanline_bright_offset 0.750000
scanline_jitter 0.25
defocus 1.0,1.0
converge_x 0.0,0.0,0.0
...

….and so on. SO MUCH TWEAKING AND KNOBS. But it’s from this we can get some amazingly refined experiences and ideas.

This HLSLMAME thing is currently Windows only, and it’s a little involved to get running, but the point remains the same: this is valuable work, affecting perceptions of the software after its true mechanical components are gone off the earth.

There’s plenty of other aspects awaiting this effort, too: the sounds, the ambience, the buzzing of speakers and the hum of deflection coils. There’s been attempts to make controllers that act like the originals, and there’s always been some leaning towards getting the speed just exactly right, which is harder than it seems.

In all this, it’s the not wanting to lose something than many don’t even notice is lost that’s the critical move. It’s sometimes a bit too OCD and always a little annoying if it’s not that important to you, but realizing what, exactly, has changed for software makes bringing it back that much more likely. It’s a respect for the past beyond the idea of it. It’s messy and weird and geeky but that’s just the way I like it.

Here’s to terrible monitors!

thanks to DFJustin for his assistance

the lion’s share of programming of HLSLMAME is by Ryan Holtz / MooglyGuy


Categorised as: computer history

Comments are disabled on this post


31 Comments

  1. ROlson says:

    Please suggest that the original sounds of the disk drives should be part of this experience: http://www.atarimuseum.com/computers/8BITS/XL/xlperipherals/atari1050.html and the other platforms’ drives were a key piece to this experience.

    • Dru Nelson says:

      Totally agree. The way the atari played sounds when loading was so cool. Nobody who experienced the Apple II can forget those drives either!

      • I remember so vividly the emotional responses that drive activity noise would trigger in me when I was a kid playing Oregon Trail in the computer lab at school…there was a very recognizable difference between a “you’re dead” reaction from the game and any other. Since the drive noise happened well before the screen drew anything, I always knew when that was coming (DOH).

      • Totally true. There was a visceral feel to those sounds. I was more used to the harmonious melodies of the 1541 drive. They were so loud and distinct… can’t forget the excitement of discovering the IBM PC accompanied by its grunting 5.25’s …

  2. Gil Megidish says:

    I love this post so much! :)

  3. Jason Eppink says:

    Killer! Going further back in time, Phil Budne’s DEC XY Simulator is an attempt to recreate the vector monitor-like qualities of the PDP-1’s Type 30 and the PDP-11’s VT11 displays: http://www.ultimate.com/phil/xy/ Obviously limitations of contemporary hardware means it can’t capture the original brilliance, but I’ve been meaning to test if a rear-projected image could capture that.

  4. Graeme says:

    I am reminded of how Neuromancer’s opening line – “The sky above the port was the color of television, tuned to a dead channel” – probably conjures up a completely different image for readers who grew up with the perfect blue of an untuned LCD, versus the angry static greys of a CRT.

    • Egan Ford says:

      +1. My kid loves that line. She’s an art student at NYU and loves the look of CRTs and uses them for art installations (she gets them from Craigslist at no cost). She’s also a retro gamer and insists on using the “real” thing on a CRT–her art studio is littered with vintage game consoles–great kid.

      IMHO, there is an undeniable intensity and beauty in a CRT that even the young can recognize.

      • James Baker says:

        Your kid is awesome. Score another for the CRT purists!
        Seriously, I won’t use an emulator for old raster consoles unless I can at *least* put proper scanlines in, Blargg’s NTSC filters are even better (thank you, snes9x!)
        All the old consoles are upstairs on the giant NEC multisync CRT. No upscaling in my house!
        I detail a bit of the sync seperator I built for the xm29plus on my site, might be of some interest to anyone trying to hook up old systems to a multisync CRT over RGB.

  5. Geoff Shearer says:

    Also along these lines – Cathode for MacOS really takes you back. http://www.secretgeometry.com/apps/cathode/
    So glad to see these efforts

    • Egan Ford says:

      As does OpenEmulator (Apple 1/II emulation). Marc spent a tremendous amount of time getting the CRT (barrel, scan lines, etc…) just right. I am also encouraged at the progress being made to bring vector-like games to the retina iPad. The recent Vectrex release is not too bad.

  6. Les Orchard says:

    Yeah, the sounds of peripherals of home machines can be interesting. I remember playing Zork I on a C64, and knowing I’d figured something out when the disk spun up and the game paused while it loaded up a new hunk of content.

    Been thinking I need some arcade machines, particularly those with vector CRTs (eg. tempest, asteroids). Just a *little* intimidated about needing to learn their care & feeding, though.

  7. koz says:

    The XRGB3 device, which can be found on ebay for $300 or so, contains “scanline generator” routines that allows you to recreate 240p output that old 8 and 16 bit consoles had onto modern LCD monitors.

    So while this can be done in the emulator for computer output, if you want these artifacts from a physical console, you use a scanline generator like this…

  8. phuzzphuzz says:

    I got a chance to play on an original Asteroids machine a few years ago, and not even that second screenshot does the effect of the phosphor screen justice.
    When you fire, it’s basically just a single pixel (iirc), so on a modern screen (and even when I played asteroids on my Amiga on a CRT back in the day) you jsut see this little pixel flying along.
    On the original screen the slow fade (basically an analog version of ‘ghosting’) leaves a little trail behind each shot, which being so smooth actually looks better than any simulated trail you could program until some time later.

    tl/dr an original Asteroids machine looks really cool in person. If I could buy one original arcade machine it would be Asteroids.

  9. […] “What a Wonder is a Terrible Monitor“.  A Jason Scott article about emulating old monitors in software, with videos showing the difference.  I’ve seen the hardware difference he’s talking about.  I’m distressed just knowing my children probably don’t recognize analog static.  (via) […]

  10. Chris M. says:

    NTSC emulation is a must for machines like the Apple II series since it’s video modes rely on the quirks of the actual monitors. The concept of emulating the monitor is fairly recent, but the results sure beat the older dithering algorithms emulator developers used to use. (see link)

    http://www.openemulator.org/screenshots.html

    The VLC folks are also trying to emulate CRT behavior (mainly phosphor decay), mostly to handle interlaced content on a progressive display. Don’t worry about CRTs becoming an endangered species quite yet. They tend to work for a much longer time compared to modern LCD and plasma displays.

  11. Damian says:

    Awesome post! Thanks. :)

  12. I dunno, while it’s nostalgic and pretty cool to see this type of “analog fog” being “preserved”, having grown up with a 2600, CoCO 2 computer & 800XL, Colecovision and so on, all connected to 2nd hand color TV’s (and even some computer monitors), I am still very happy to play and relive a lot of those old games on a nice clean, large display on a modern TV. Too many nights of “why the hell is channel 3 creeping into channel 2! I can’t see the words on my 32×32 character screen!: :)

    Also, on an Asteroids Deluxe cabinet which I had at one time, the beam is bounced off a mirror on the back and then at you. On a Star Castle cabinet I had, it was shot directly at your face, but went through a colored piece of plastic to simulate colors for the rings.

  13. […] Scaled down it’s not as obvious that this image isn’t a crystal clear rendering of Mortal Kombat gameplay. But we’ve linked it to the full size version (just click on the image) so that you can get a better look. Notice the scan lines? This is the result of an effort to more accurately mimic the original hardware displays used in classic games. [Jason Scott] takes a look at the initiative by describing what he thinks is missing with the picture perfect quality of modern emulators. […]

  14. Dru Nelson says:

    So glad to see this post. I have a stand up Battlezone and my kids were blown away at how sharp the lines are. Zero jaggies.

    These experiences need to be preserved, somehow. The old monitors are dying and are becoming harder to come by. Recently I was looking for a CRT for an old Apple II just so I can grab the images off of some old floppies (an old project). It was quite a wake up call to learn that the sub 30khz world is ancient history! I did find a monitor, but it took quite some time.

  15. Jimmy says:

    I’m sorry for being dense, but I can’t seem to find the code anywhere, is it available ? :) Also, on another, more important note; AWESOME. WORK. I’d love to see this in action on my own pc.

  16. Chris says:

    Any project that have come further with the Vector display bits than AAE ( https://www.youtube.com/watch?v=Z4lHsVueSj0 ) or Arcan ( https://www.youtube.com/watch?v=kmF1Jxe0gtg )

  17. Gregg Eshelman says:

    When is someone going to actually finish an implementation of LASER MAME? Real vector scan Asteroids, Lunar Lander and other classics on a big screen, that’s what I want to see!

    Does this CRT emulation also do dot triad and Trinitron or does it only do slot mask? Dot triad was the original shadow mask for color televisions and early computer monitors. It was expensive and printing dots of phosphors on the inside of a compound curved piece of glass was a finicky process.

    But the tinier the dots the smoother the picture and the higher the resolution of computer graphics that could be displayed – at higher cost of course.

    Sony invented the ultimate in CRT brightness technology by eliminating most of the shadow mask with a simple series of vertical wires on a screen shaped as a section of a large cylinder. That also made it much easier to apply the phosphors in plain straight lines.

    Makers of dot triad CRTs countered with the slot mask. Taking Trinitron’s vertical wires and bridging across horizontally to split the screen into pixels. That also countered the vertical color bleeding a Trinitron can have. Look at many slot mask CRTs and you’ll find a variety of slightly different arrangements, mostly in how much and which way the rectangles are staggered. A “square” or vertically staggered arrangement allows the phosphors to be put on the glass in vertical lines like a Trinitron, but they can’t be perfectly parallel on curved glass. A horizontally staggered slot mask has most of the same issues with phosphor application as the dot triad.

    Metal alloys were developed that distorted less at CRT operating temperatures, enabling nearly flat screens. Then someone came up with the idea of pre heating and stretching the mask then molding a glass or composite frame around the edge to keep it taught. Then the framed mask was sandwiched between a truly flat front glass and the rear of the CRT. Phosphor application became even easier than on a Trinitron. Super high resolution dot triad CRTs could have been made, but weren’t because “brighter is better” even if it’s like watching TV through a screen door.

    Around then is when the Trinitron patents expired. A few companies made clones but the nearly flat and true flat CRTs kicked the cylindrical Trinitron and clones to the curb.

    Sony didn’t care because plasma and LCD production scaled up and made all CRT technology obsolete.

    And now people want to emulate the crappiest, cheapest, lowest quality, highest distortion CRTs that the long chain of progress from Philo T. Farnsworth’s first transmitted line image in the late 1920’s to the true flat CRT sought to overcome. :-)

  18. Screwtape says:

    For anyone who’s interested in a more portable approach to CRT emulation for old emulators, there’s cgwg’s OpenGL-based CRT shader. It’s described in detail (with lots of screenshots) here:

    http://filthypants.blogspot.com.au/2012/07/customizing-cgwgs-crt-pixel-shader.html

    …and it’s available (along with many other shaders) from my XML shader repository:

    http://gitorious.org/bsnes/xml-shaders/trees/master

    The shader files in that repository should work with a number of emulators, including bsnes, snes9x, and the multi-system RetroArch.

  19. […] shared by The Stinger Report, that they found through The Verge which takes you to another link to Jason Scott’s blog. He is taking a look at trying to emulate monitors more than the games. This of course has become […]

  20. […] Fantastic article about capturing the unique character of vintage monitors and hardware in software emulators: ascii.textfiles.com/archives/3786 […]

  21. […] Nós, do Retrocomputaria, temos uma posição que vocês sabem há tempos, e que eu não vou repetir por aqui. Mas uma curiosidade relacionada surgiu recentemente, pelas mãos de nada mais, nada menos do que Jason Scott, e que vocês podem ver no blog dele clicando aqui. […]

  22. […] Look at those pixels: clear as a crisp Spring morning! For a lot of people, this signifies a retro aesthetic. It’s also a wholly modern aesthetic, divorced from the experience of playing on physical monitors in the 80s. (Jason Scott wrote a good article about how most old games look better on old monitors.) […]

  23. Michael Huth says:

    The human machine interface is something that is still at a crude level in a lot of emulations. The focus to mimic also the interface was brought up in the last years, since the typical cpu power is high enough to cover all the technical emulation functionality.
    There are even great efforts in C64 interface emulation now, while the technical emulation is merely perfect compared to other emulators. f.e. in this project: http://www.micro64.de/

    On the other hand, people with real systems try to improve the signal quality of audio and video where the questions comes up, what does original mean? Just to give an example, if I capture a video from original hardware, is it ok to use new quality enhancing hardware or should it be captured from stock e.g. composite signal with all the analog/digital noise, bleeding etc.?

    Or for the Dosbox emulator, has anyone measured the frequency response function of the output stage of a real soundblaster 16 or gravis ultrasound? In emulation it just sounds identical.

    For such more realistic human machine interface it would be worthwhile to define certain standard profiles for terrible monitors for emulation and other interface devices.
    (This is btw. already the way it is done for SID6581 filters.)