• Print



Virtu is an Apple IIe emulator for the .NET Framework using C# with Silverlight, WPF, and XNA.


The Apple IIe left an indelible mark on my teenage psyche. Virtu was born out of an interest in emulators and wanting to wallow in nostalgia. Over time it has also become a vehicle to explore developer environments.

Originally developed for RISC OS 3.11 on the Acorn Archimedes in 1995 using some C but mostly ARM assembly language. Published on the cover disk of the October 1997 issue of Acorn User. Later that year we started porting Virtu to Microsoft Windows 95 on the 'PC' using C++ with DirectX. A port to Microsoft Windows CE 2.11 soon followed. These were tweaked over the next couple of years but never published. Fast forward to the present and the latest incarnation of Virtu, this time ported to the Microsoft .NET Framework using C# with Silverlight (on Windows, Mac OS X, and Windows Phone 7); WPF (on Windows only); and XNA (on Windows, Xbox 360, and Windows Phone 7).


The target platform has been abstracted to a software framework which can take advantage of the various implementations and subsets of the framework to get more portability. I'm currently interested in all of the above for various reasons and couldn't choose which to target, so I thought it would be interesting to target them all, and thereby compare and contrast them to learn the pros and cons of each. Check out the Virtu Silverlight, WPF & XNA wiki pages for platform specific details.


After a successful build, you should be able to run the emulator and perform a self test by pressing the key combination Control+OpenApple+CloseApple+Reset. Boot to the monitor (after Reset) where you can program interactively using Applesoft BASIC or CALL-151 to use 6502 assembly language. Of course disk images can also be booted to complete the nostalgia experience.

The current release is an early work in progress and has many rough edges. Most notably, there is no user interface for configuring the emulator, but this can be worked around by editing the default machine settings source at build time, or in some cases pressing a hotkey at runtime. Any platform specific issues will be listed on their wiki page.


Xbox 360 Controller for Windows, or Xbox 360 Console and Xbox 360 Chatpad