Microsoft developer demos .NET on the NES — delivers .NES

.NET for NES running in the anese NES emulator.
(Image credit: Microsoft Developer on YouTube)

Ever wanted to see a Nintendo Entertainment System released in 1986 run the .NET Framework released for Windows platforms in 2000? If you're the same kind of techno-degenerate who enjoyed .NET being backported to Windows 95, you're most likely in the right place, though of course the NES isn't going to be nearly as capable as your average Windows 95 PC. 

Before proceeding, let's take a moment to put the processing power of the mighty Nintendo Entertainment System in context — since it was powerful for its day, after all. The NES boasts an 8-bit CPU running at 1.78 MHz — that's right, MHz, not kHz!— and enjoys a generous 2 Kilobytes of RAM and of VRAM allocation. 

It can also handle game cartridges with up to 512 Kilobytes of storage, which our needlessly determined .NET porter (Microsoft's Jon Peppers) noted would barely be enough for modern Android/iOS app icons. The most popular iOS/Android apps also tend to run the gamut from 55-206 MB, which is orders of magnitude higher than anything an NES could ever hope to comprehend.

So, why was this done? A wide assortment of reasons are provided in the original presentation. These include learning how to convert MSIL to 6502 assembly, for API design and .NET development experience, and most importantly a simple "Nerd Flex". Although, for a "Nerd Flex", this one seems fairly limited in its uses compared to the last .NET Framework-related nerd flex that actually fundamentally improves Windows 95. Right now, .NET on NES isn't even playing any games, it's mostly just running Hello World and other simple demos.

But it's still pretty cool, especially considering the fact it works at all. Several components of .NET were cut from this implementation to make it work on the NES' limited hardware, including a lot of compatibility-related code, the debugger, and other optional components of .NET. Or, "optional" if you happen to be running it on an NES, I guess.

In the cruel absurdity of the universe at large, never forget that your old hardware can always be put to use as long as it still functions. Usually, that means something like playing old games, but sometimes it means creating entirely new games and expansions to keep old hardware alive. Other times, it's about fixing or fundamentally replacing old hardware to keep the aesthetics alive without sacrificing too much functionality.

As the author? My personal favorite has still got to be porting N64 games to PC with ray-tracing and uncapped FPS, though that's keeping software alive rather than hardware.

Christopher Harper
Contributing Writer

Christopher Harper has been a successful freelance tech writer specializing in PC hardware and gaming since 2015, and ghostwrote for various B2B clients in High School before that. Outside of work, Christopher is best known to friends and rivals as an active competitive player in various eSports (particularly fighting games and arena shooters) and a purveyor of music ranging from Jimi Hendrix to Killer Mike to the Sonic Adventure 2 soundtrack.

  • bit_user
    2 Kilobytes of RAM and of VRAM allocation.
    This is the part that utterly blows my mind about running any kind of modern software on the NES.
    Reply
  • ekio
    Instead of wasting time and money doing useless stuff like that, they could finish the UIs for win11, this mess is still unfinished.
    They could drop their awful C:\ paths to embrace the infinitely superior Unix / standard.
    Reply
  • USAFRet
    ekio said:
    They could drop their awful C:\ paths to embrace the infinitely superior Unix / standard.
    Thereby breaking 3 decades of backward compatibility.
    Reply
  • bit_user
    ekio said:
    They could drop their awful C:\ paths to embrace the infinitely superior Unix / standard.
    You can run other shells on Windows, if you so desire. I use the cygwin/X11 port of GNU tools on my Windows boxes, which includes the bash shell. All of the commandline tools in the cygwin port also accept UNIX-style paths.

    FWIW, people who don't want that can use the MinGW port of select GNU tools, which (IIRC) accept regular DOS-style paths.
    Reply
  • Speeddymon
    USAFRet said:
    Thereby breaking 3 decades of backward compatibility.
    There's a precedent for breaking compatibility: https://www.bleepingcomputer.com/news/microsoft/microsoft-to-start-killing-off-vbscript-in-second-half-of-2024/
    It starts with security. Find a security flaw that forces them to change from this archaic system to a proper hierarchy and they will.
    Reply
  • USAFRet
    Speeddymon said:
    There's a precedent for breaking compatibility: https://www.bleepingcomputer.com/news/microsoft/microsoft-to-start-killing-off-vbscript-in-second-half-of-2024/
    It starts with security. Find a security flaw that forces them to change from this archaic system to a proper hierarchy and they will.
    Killing vbscript is trivial to redoing the entire drive path ecosystem.
    Reply