The NES Gets Its Own OS

Until recently, most video game systems didn’t need their own operating systems in order to play games. Especially in the cartridge era — the games themselves simply ran directly on the hardware and didn’t require the middleman of an operating system for any of the functionality of the consoles. There were exceptions for computers that doubled as home computers such as the Commodore, but systems like the NES never had their own dedicated OS. At least, until [Inkbox] designed and built the NES-OS.

The operating system does not have any command line, instead going directly for a graphical user interface. There are two programs that make up the operating system. The first is a settings application which allows the user to make various changes to the appearance and behavior of the OS, and the second is a word processor with support for the Japanese “Family Keyboard” accessory. The memory on the NES is limited, and since the OS loads entirely into RAM there’s only enough leftover space for eight total files. Those files themselves are limited to 832 bytes, which is one screen’s worth of text without scrolling.

While it might seem limited to those of us living in the modern era, the OS makes nearly complete use of the available processing power and memory of this 1980s system that was best known for Super Mario Bros. and Duck Hunt. It’s an impressive build for such a small package, and really dives into a lot of the hardware and limitations when building software for these systems. If you need more functionality than that, we’d recommend installing Linux on the NES Classic instead.

20 thoughts on “The NES Gets Its Own OS

    1. Sadly it seems the distinction was lost long ago.
      After witnessing a large group of people writing an autoexec.bat script and claiming they wrote an OS for dos, and more people defending their use of the term, it was clear to me there was no point explaining the difference, and that knowledge wasn’t wanted or desired any longer.

        1. It’s a manager for low-level functions of the computer allowing scheduling of tasks, interactions between the user, programs and hardware, managing memory and scheduling long-running tasks including swapping background and foreground processes. It’s also responsible for determining the separation between various programs access to resources (to whatever degree)

          so… it’s possible to have an operating system within an operating system, but it’s impossible to run a computer without one

      1. Technically, since batch commands have been shown to be Turing complete, you could write a hosted OS…. but I’m sensing that you’re saying they wrote a glorified menu system and called it an OS.

          1. By incorrect, did you mean the bit where he said
            “soโ€ฆ itโ€™s possible to have an operating system within an operating system.”

            Or was there something going on in your head where you thought I mean SOLE operating system when I said hosted OS.

        1. That wasn’t a sticking point at the time. Windows 3.1 was a graphical shell. Windows 95 was where people started to question the distinction, but since Windows 95 gui could easily be turned off and direct-to-dos boots were possible, it was basically a tightly integrated gui.
          Win98 (and especially 2000) was when “Windows” was considered the OS, because key features were increasingly only available in the GUI.
          We’ve almost come full circle now, with PowerShell and the linux subsystem for Windows, to a point where we’ll probably start seeing text-based remote access available again in some years, though it kind of is if you’re doing limited stuff with PowerShell.
          I doubt the disctinction will be made again, though, but it’s possible.

          1. “Windows 3.1 was a graphical shell.”

            Yes, but more than this, also. It was a graphical extension. It had important parts that are an attribute of an OS, namely:

            – it’s own executable format (NE)
            – its own ABI/API
            – a printer spooler ;)
            – cooperative multitasking
            – virtual memory
            – its own HDD driver (FastDisk)
            – replacing of DOS int21h functions (with FastDisk)
            – its own driver format (DRV, 386/VXD)
            – its own graphics system (GDI, DCI, WinG, etc)
            – Media Control Interface (MCI)
            – etc

            So even if we ignore these things, WfW 3.11 IS an OS, at least. It qualifies as a network operating system.

            Also, it adds these things:
            – a HDD cache
            – a network stack (TCP-32 optional)
            – hardware detection (NICs)
            – IFS (installable filesystem), VFAT

            If FastDisk and the HDD cache are active, WfW 3.11 is fully self-sufficient. In practice, it won’t switch back to DOS routines anymore, they are filtered/handled by FastDisk. :)

  1. I don’t mean to be disrespectful, but there are Famiclones with a more complete software library. This old article comes into mind, for example: https://hackaday.com/2010/09/30/printing-from-a-famicom-clone-computer/

    That being said, please don’t get me wrong. It’s a start. It’s not easy to work with the limited specs of the Famicom/NES, so kudos to the author. ๐Ÿ™‚๐Ÿ‘

    External mappers and bankswitching would be needed to overcome these limitations, partially at least. I just hope this isn’t the end and the OS gets an upgrade within the next years.

    There are so many cool things that could be implemented. Some random examples:

    A world clock, a PET emulator (resource issues, but same CPU), an ISS tracker, a melody maker, a speech synthesizer, fractal generator, a fortune teller (displays words of wisdom each day), NSF player (via Disk Station), a terminal program (rs232 on cartridge?), some news reader/RSS reader (ethernet, wifi or rs232, on cartridge again?), some irDA support for messages (like GBC, leds on cartridge), a wave recorder/player or audio scope (mic on Famicom pad), a daylight logger/scope (via photo diode on cartridge or mic input), temperature/humidity logger/scope (via cheap i2c sensor), an APRS monitor (rs232), etc etc.

    So many possibilities. The NES/Famicom or a cheap Famiclone could be turned into a little useful computer for so many tasks! ๐Ÿ™‚โค๏ธ

    1. Yes, but it’s ugly. And not very elegant, either. It got no love, apparently.
      With the exception of the colorful C64 version, which is visually pleasing.
      Let us just look what they did to the C128 version. It’s shameful. ๐Ÿ˜Ÿ

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.