Spend enough time on YouTube and you’ll uncover numerous videos showing some kind of video game being played on an oscilloscope. The most popular game choices for these videos seem to be the old Doom and Quake games and Pong, the first real video game released in 1972. Perhaps the main reason for Doom’s popularity is that its source code was released in 1999 under the GNU General Public License v2.0 or later. Quake’s source code has been released as well. Pong’s popularity is easy to understand–it’s table tennis concept, with just moving paddles and a ball, is computer-graphically pretty simple.
However, there is no one single way of implementing a video game on a scope. The approaches we’ve seen can depend on the particular operating system running the scope and particular features the scope implements. Here’s a rundown on the basics of what we’ve found.
One widely used approach to hacking digital scopes for games is to trick the scope into stopping the scope software and interacting with the scope operating system directly. Generally speaking, once you have control of the scope operating system, running Doom is the easy part.
Another approach involves scopes that have not just the customary X and Y inputs, but also a Z input. The Z input controls the intensity of the trace. A point to note is that not all scopes have a Z input.
To actually generate the Quake graphics, Väänänen accessed the scene geometry in the game via a modified Quake engine source code called DarkPlaces. The engine was patched to save all the clip-space triangle edges sent for drawing, and then transferred to a synthesizer process.
The synthesizer spends time getting rid of duplicate and unseen line geometry because the time budget per frame is tight and time spent on redundant lines is wasted. Väänänen admits he’s not particularly happy with the resulting scenes–the stability and quality of the rendering leaves something to be desired. But he also says there’s room to improve the scene-generating algorithms.
Leave a Reply
You must be logged in to post a comment.