One consequence of the steady increase in computer power is that newer machines can emulate the behavior of older ones, with software running fast enough to simulate operations that formerly required hardware.
It's not all easy going, though. Perhaps the most advanced embodiment of the Web-app future, Google's Chrome OS, is stumbling on its way to market. Its troubles aside, however, it's clear more and more gets done in a browser window.
The handheld computer introduced two decades ago didn't have much horsepower. The Game Boy came with a modified Zilog Z80 processor, an 8-bit model that could only address a 16-bit memory space of 65,536 bytes--less than a thousandth of what typical computers have today.
Its screen was simple, too. The display measured just 160x144 pixels, each able to display black, dark gray, light gray, or white. The entire thing fits easily into a patch of "frame buffer" memory controlled through the HTML Canvas element.
Nazar also has figured out how to simulate the input controls--a relatively simple layout with a four-way rocker switch and four control buttons.
Nazar didn't have to figure out the hardware details himself. "The Game Boy hardware is very well documented, since so many people have reverse-engineered its internals over the years. Pan/ATX compiled the more-or-less definitive specification of the Game Boy hardware; I've got it mirrored."
The games themselves are hosted on his server, from which the emulator retrieves them to load them. "All the games I've used to build and test the emulator are public-domain and available on pdroms.de, apart from a recompiled version of Tetris built from reverse-engineered source code," he said.
Perhaps later he'll tackle the color version of the Game Boy, he said.
"The color Game Boy is a significantly more complicated beast, but I won't rule out putting together an emulation of it," Nazar said. "It won't be for a while yet, though."
Updated 9:58 a.m. PTwith comments from Nazar.