Through the looking glass: The .NET framework was originally developed by Microsoft in the early 2000s to simplify software development on Windows. The technology was later ported to other computing platforms, but now resourceful coders are starting to bring .NET to places it was never intended to run.
During this year's Build conference, Microsoft programmer Jon Peppers introduced his pet coding project, demonstrating how he ported .NET technology to the Nintendo Entertainment System. The ".NES" project achieved the seemingly impossible by bringing some core .NET functionalities to a gaming console initially released in 1985.
The NES is equipped with an 8-bit CPU running at 1.78 MHz, 2 KB of RAM, and a mere 512 KB of storage space. The console's hardware wouldn't be sufficient to host icons for modern iOS and Android apps, Peppers said, as the Japanese console's architecture is too outdated for any modern development efforts.
Nevertheless, Peppers turned the console's significant limitations into a personal challenge. The developer learned how to convert .NET's Common Intermediate Language (MSIL) – bytecode instructions executed in the framework's runtime environment – to M6502 assembly. Ultimately, he succeeded in bringing the basic .NET environment to the NES.
After spending considerable time experimenting with reverse engineering, MSIL, binary formats, and more, Peppers successfully ran a "Hello World" code and other simple demos in the newly created .NES environment. However, .NES is not yet capable enough to provide other programmers with an "ideal" way to create games or other NES applications.
Peppers published the alpha code of .NES on GitHub, providing other developers with the tools they need to experiment with his project. The .NES page states that only five C# programs are known to work at this point. Features that are not functional include the debugger and non-ASCII strings, among others.
Early versions of the original .NET Framework were designed to run on Windows 98 or later operating systems, but the technology was recently backported to Windows 95 by another resourceful developer with a penchant for ancient PC operating systems. Thanks to this latest porting project, thousands of games and applications can now run on the first 32-bit version of Windows.