A modder known as Throaty Mumbo has built a desktop-style environment that runs on unmodified NES hardware, using the console's cartridge slot to host the processing power the task requires. The project, shown in a video, presents a Windows-like interface with a Start menu, program icons and a working game of Minesweeper. It follows earlier attempts with ROMs pulled from the internet, including a Chinese Windows 98 ROM whose programs were only images and did not function, and NES86, a Linux ROM by decrazyo that Throaty Mumbo found too slow to use.

The NES's 6502 8-bit microprocessor was too slow to emulate x86, so Throaty Mumbo turned to the EverDrive N8 Pro, an ARM-based Cyclone IV FPGA cartridge. The cartridge sits in the NES slot and exploits cartridge-side processing, in effect acting like an external graphics card by offloading work to another processing unit. To run x86, he used Next186, an open-source FPGA soft processor core that lets the FPGA execute Intel 80186-compatible instructions as if it were an x86 CPU.

A command-line version of the project came first, demonstrating fast navigation of the environment and command-line programs. Throaty Mumbo showed tty-tetris, which did not work well at the NES's low resolution, and a command-line train animation that ran smoothly. The finished desktop environment resembles a very stripped-down version of the earlier Windows 98 ROM but is more functional, replacing the EverDrive N8 Pro menu ROM and offering icons that launch game ROMs and open files stored on the cartridge.

Input proved a persistent problem. Moving a cursor and typing with an NES controller did not make for a good desktop, and an attempt to adapt a Family BASIC keyboard for the Famicom through the NES expansion slot and a breakout board with jumper wires failed: each keystroke produced multiple letters and symbols, and the keyboard's bulk kept the console from sitting flat. Throaty Mumbo then used an RP2350 microcontroller with custom firmware to accept USB devices through the NES controller ports, which allowed smooth mouse input but only one USB port, so a keyboard or a mouse could be connected, not both. A keyboard with a built-in USB hub solved that.

The same USB input was also tried as a MIDI device, with a USB piano keyboard played through a basic digital audio workstation and Mario soundtracks played from NSF (Nintendo Sound Format) files. Throaty Mumbo added his earlier 3D-printed NES CD drive project, the NESCD, which connects to a port on the EverDrive N8 Pro cartridge and to the expansion slot, letting music play in the background during a game without a performance loss. He then upgraded the NESCD with a Seeed Studio XIAO ESP32 for WiFi, reaching 4 MB/s downloads and 90 KB/s uploads.

Because the console's internet capabilities are very limited, it routes requests through Throaty Mumbo's laptop as a proxy, which fetches them from the internet and simplifies them for the NES's limited resolution. An option to connect directly to the internet was also added, though the modder described that route as a miserable experience.

More software news from TechManNews.