Emulation

I, Robot 2020

I've finally gotten around to writing an updated version of my classic emulator. Porting to DirectX 10 and C# / .NET, I've completely rewritten most of my original code base and heavily refactored the rest. C# is a great language and has generally helped make the source code cleaner and more understandable.

The primary goal of this emulator is to upgrade the game visuals and do other sorts things that a modern graphics pipeline can do. Basically putting a fresh coat of paint on top the classic gameplay.

Unlike MAME which is interested in accurately reproducing cycle accurate game emulation, my emulator intercepts the high-level scene drawing commands issued by the CPU to the Mathbox and interprets them using a modern graphics pipeline. This allows my emulator to do all sorts of things not possible on a real machine. Modern graphics effects such as z-buffering, anti-aliasing, texture mapping are all possible. I can even "move" the camera in space, and generally tinker with behind the scenes rendering options. A big goal of this project is to get emulation running in a VR headset.

Binaries and source code are hosted on Github:

https://github.com/manfreda-dot-org/I-Robot-Project

Classic Emulation

The MAME emulator does an amazing job duplicating the pixel perfect / cycle accurate emulation of the game. This is the best place to get your 1984 low-res arcade fix.


High Definition Widescreen Emulation

My emulator allows for high resolution widescreen gameplay. Check out the difference between the game visuals when running in original arcade resolution and the current emulator on a high definition display.


Arcade resolution 256 x 232

High Definition Widescreen Mode

Game ROMs

The original ROM images from I, Robot are required to run either emulator. These images can be dumped from a working I, Robot arcade game. The copyright on the ROMs is owned by Atari, and so for legal reasons I can't distribute them.

Legacy Emulators

Way back in 1998 I wrote the first game emulator for I, Robot. No small feat considering a 100 MHz PC was considered fast at the time! I was young and didn't know any better. Over the years I've attempted to update the emulator on numerous occasions, in 2003 I got close with a port written in Borland C++ Builder (ah the gold old days).

Even though the emulators are a bit long in the tooth, they're still (as far as I know) the only emulators that intercept/interpret the 3D rasterization commands, letting you play the game in a higher resolution (640 x 480) than the native hardware supported (256 x 232). Also let's not forget very cool (but little known) "screen dump to vector graphics" feature that I've never seen implemented anywhere.

The MAME team eventually got around to adding I, Robot, and the rest, so they say, is history.

You can find my legacy emulators on the downloads page. I've also uploaded the original source code archive to Github.

Emulator Mark 1 - 1998

Even though it was written to run on Windows 95 with DirectX 3.0, it actually still runs on Windows as of 2020. My personal copy of Windows doesn't seem happy about switching the video driver into legacy DirectX 3 mode, but once the game is running the emulation is fine.

Requirements from back in the day.

Pentium or better PC running Windows 95/98 or Windows NT. DirectX 3.0 or better support is required. A sound card with DirectSound support is required for sound emulation.

Emulator Mark 2 - 2003

Requirements

DirectX 9.0 required

PC performance: unknown

Emulation performance depends upon overall system performance, but will mainly be influenced by processor speed, and the performance of the video and sound cards.