Quake On an Oscilloscope
An anonymous reader writes: Developer Pekka Väänänen has posted a fascinating report on how he got Quake running on an oscilloscope (video link). Obviously, the graphic details gets stripped down to basic lines, but even then, you need to cull any useless or unseen geometry to make things run smoothly. He says, "To cull the duplicates a std::unordered_set of the C++ standard library is used. The indices of the triangle edges are saved in pairs, packed in a single uint64_t, the lower index being first. The set is cleared between each object, so the same line could still be drawn twice or more if the same vertices are stored in different meshes. Before saving a line for end-of-the-frame-submit, its indices in the mesh are checked against the set, and discarded if already saved this frame. At the end of each frame all saved lines are checked against the depth buffer of the rendered scene. If a line lies completely behind the depth buffer, it can be safely discarded because it shouldn't be visible."
that old source port from 2000 that had renderer plugins to render the world in a blueprint and pencil sketch mode
Any game at all on the Vectrex.
Inheritance is the sincerest form of nepotism.
He's displaying it on an oscilloscope. Still cool, though.
The irony is that it's only taken 40+ years to get to display resolutions for raster graphics to approximate vector graphics.
Not to say this isn't cool. I like that the youtube video is basically the following chain: raster Quake -> custom vector renderer -> vector scope -> raster camera capture -> raster video upload -> raster youtube video stream -> you eyes
In *no way* is the video as cool as that scope in real life!
No snarky commentary to offer like the above posters.
I am very small, utmostly microscopic.
Please vectorize my dog. Thx.
That is by far the geekiest thing I've seen in a long time. As someone who has also ported Quake to run on hardware it wasn't designed for, my hat's off to you.
Better known as 318230.
In an alternative steampunk universe, this is how graphical displays MIGHT work.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
He didn't find all the secrets...
Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)
http://www.lawrenceperson.com/
Flat out, one of the coolest hacks in history.
Well Done!
Does it run crysis?
:ducks:
I bet the water would have great waves....
now run duke3d on it.
That is some seriously cool stuff. My hat is off to you, sir.
First off, In the late 90's Tektronix made a series of digital oscilloscopes that ran an embedded version of Windows 98.
But really, the easiest way to get Quake running on an oscilloscope is to take the raster signals from an analog CRT controller (like, for instance, a VGA card) and use the vertical and horizontal signals to properly drive the X and Y axis, and feed the video into the Z axis. Like, duh. Why would you vectorize it?
More of this!
The IBM T221 cost $17,999 when it was released. I can't imagine anyone outside a research lab or government agency buying one back then.
Only the State obtains its revenue by coercion. - Murray Rothbard
But it would probably have been better to use something other than audio output.
GPIO on an FPGA board can be driven at several hundred MHz. Probably so could those on some other development board.
This one is classic:
"Please don't support this abuse of technology, Reddit. Oscilloscopes were invented to benefit mankind and save lives by being used for purposes such as monitoring heart rates. It's disgusting seeing a male program it to run a violent video game. This is exactly the same as going to a school for a shootout rather than for education. I hope this travesty is destroyed before a doctor mistakes it as a heart rate monitor and ends up shooting a female patient.
Berta Lovejoy, Feminist, Promoter Of Equality, Love, and Peace."
A decent vector oscilloscope display uses the Z blanking input to turn off the beam when not drawing a line. I see no mention of this in the writeup, and consequently there are ghost lines all over the screen. It would look a whole lot nicer if the Z input were put to use.
The determined Real Programmer can write Fortran programs in any language.
Reminds me of Doctress Neutopia
http://www.lovolution.net/
She was big on usenet in the '90s complaining about men in general
She was begged on by the masses with stories of hunting, barbecue and monster trucks
Many people thought that she was a troll-bot or collaboration of people trying to make all feminists look like looney-tunes
Very little changes
Where is my upvote button? Why can't I fucking upvote this?
Here's to losing my Karma Bonus again....
Oscilloscope master race!
To really make the circle complete he needs to pipe it to a digital phosphor oscilliscope. The would be the height of irony.
Another thought would have been to output the X and Y scans on red and blue of a video card to have much higher bandwidth than the audio channels provided.
In short, where the hell is my Geekport?!
Doom? ;)
the man is.
It is really interesting to see the limits of what is achievable with audio bandwidth. It's also very cool to see the Gibbs phenomenon caused by the digital reconstruction / up sampling filters in the Delta Sigma DACs, and how that shows up as image artefacts (something I had wondered about).
Very cool project.
A 2nd or 3rd order DSM in a cheap FPGA with a good analog low pass filter, clocked at say 50MHz at 32x or even 16x oversampling can easily give you 10 bits of resolution and corresponds to 1.56 or 3.125MHz of bandwidth. With a simple analog low pass filter the DSM noise can still be suppressed and easily achieve 200kHz bandwidth. Couple that with a third output for intensity (since we're doing high speed DSMs anyway) and a hardware CORDIC to draw the lines at different angles (also in the FPGA) and it should be flicker free. Since the line drawing can occur at the sample rate, no reconstruction filters to introduce Gibbs effect. Hmmm...
almost as bad as watching it on a WinCE device (yeah, tried playing Quake on a Dell Axim X5, wasn't happening).
Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel
I really want a render mod for quake now that imitates that oscilloscope look.
The strawman in your head may have mentioned that but a resolution in my post was:
It looks like I'm a bit less fussy than the strawman in your head so I suggest you argue with him instead of me.
Very cool hack! Back in my younger days, I met a lab technician who would impress the much younger engineers by displaying broadcast TV on an oscilloscope.
Mainly juiced up oscilloscopes like Tektronix or pen-plotters. And the early computer graphics languages like GKS were all stroke-based. Raster was a late add-on.
Our first image raster graphics terminal in 1980(AED) had 512x512 8bit-indexed-color resolution and cost $30K ($120K 2014 $$). Most of that was for screen buffer memory which was still several thousand dollars a megabyte then. PC memories were still counted in tens of killobytes (1984 Mac 128KB). I believe you can get this kind of display for a cheap cellphone for about a dollar now. (Moores law in magnitudes is 10x every 5 years, so a million is about right)
Ah, so you've got some special rule so you "win" despite either an epic failure of reading comprehension or a totally invented fantasy. Bonus points for using "conspiracy" on such a mundane topic, very funny.
Please address me and not the strawman in your head. The term fits exactly since you've built something in a parody of my image and set fire to it.
We played Space Wars displayed on an oscilloscope on a PDP 8 at Monash University in 1974 ! They kept telling us the computer was too expensive to play games on...