27

Early gaming consoles were quite simple machines (from today's point of view). So simple in fact that often the games were the initial "entry point" for the CPU on boot and the games had to set up the hardware first. For example, the game cartridge of a Sega MegaDrive/Genesis had to setup the interrupt vectors, initialize the graphic and sound chips and do some other low-level tasks before the actual game code could start. As far as I know, virtually every functionality had to be provided by the game, though I can imagine the console vendors like Nintendo and Sega probably provided SDKs which implemented some common tasks.

By contrast, modern gaming consoles run full Operating Systems, and games are merely applications and can build on functionality provided by the OS and its libraries (citation needed).

When did this transition from "no OS" to "some/full OS" happen? The PlayStation 1 must already have had an OS since its games come on CDs: these have a filesystem, the console must be able to set itself up, load code from the CD and provide a game functionality to access the CD's filesystem. Was there an intermediate step, like a ROM similar to a PC BIOS that provided some tools at a time when the game still was the first thing the CPU booted into?


For the sake of this question, "Operating System" can be used loosely. It should satisfy at least these simple conditions:

  • A game is not the primary entry point of the CPU. First, some software (ROM, flash, whatever) is running which sets up the hardware and then starts the game (directly or after user selects it in a UI).
  • Utility functions are provided by the OS to games for common operations. For example, memory management, reading files, rendering support for fonts, playing sound samples in common formats, … (Not all must be present, but there must be some useful functionality that abstracts hardware access or simplifies common tasks.)

So an IBM PC BIOS would already qualify: it's what's run after the CPU starts up, initializes hardware, then searches a medium, loads code from it and hands execution to that code. It provides APIs to access disks and some video (text) services. But not much else, so it's probably the absolute bare minimum to consider for this question. I'm more interested in the earliest systems that provide more functionality than that.

6
  • 4
    Anything that boots from a CD can be done without an OS. Your PC has BIOS or UEFI and can boot from hard drive, CD, USB, and even from network, and still no one calls it an OS.
    – Justme
    Commented Feb 1 at 7:42
  • 1
    @Justme: Alright, that would be the "intermediate step" from my last paragraph. Problem is, the line between a ROM that's "just" a BIOS and is already something one could call an OS is a bit blurry, isn't it? A full UEFI has a dynamic linker, drivers, FS support, and even a shell. Why would you not call this an OS, when it's possibly more powerful than MS-DOS? Just because it's not intended to be the "place" users are supposed to do their work?
    – DarkDust
    Commented Feb 1 at 8:17
  • 3
    But then it all boils down to what you count as an operating system and what doesn't count, so which console is the first to fulfill your definition of an OS. Do you have a definition? You can have an OS in ROM, and to counter that, you can run a game from any media without an OS anywhere.
    – Justme
    Commented Feb 1 at 9:41
  • 2
    @Justme: I've updated the question to include the bare minimum definition for an answer to qualify.
    – DarkDust
    Commented Feb 1 at 10:23
  • 2
    @Justme "to counter that, you can run a game from any media without an OS anywhere" I'd say that's the important point he's in for: Systems where the game was not in total control right from the start (or at all).
    – Raffzahn
    Commented Feb 1 at 14:31

4 Answers 4

38

TL;DR: For early consoles, having an OS was the norm; lacking one was an exception

Even the very first second-generation consoles - that is, the ones using a micro-processor (*1) - commonly had some kind of monitor system, something that today is usually called an OS (*2). Almost all early systems came with on-board ROM and a good number of them started into those for system setup and management.

Well known examples (by date):

Atari's 1977 VCS is something of an outlier among the second-generation consoles by not providing any built-in ROM and no runtime at all. Then again, it was this absolute minimalist design which allowed a very low price point - and ultimately, command of the market by 1980.


Details

The list is by no way complete and focuses on more well-known systems.

Fairchild Channel F / VES / Saba VideoPlay

Introduced November 1976.

This line includes the very first second-generation System - at least the first one that sold in notable numbers. The Channel F is built around the Fairchild F8 CPU (*3), a very unusual design by today's standards, as the ROM chips contained pointer registers including each a PC of its own. Not a bad idea, as it would allow ROMs of indefinite size :) In reality the local PC was 16 Bit, so ROM size was limited to 64 KiB per ROM. The VES had 2 ROMs of 1 KiB each, containing a monitor system and two games. The cartridge slot had 5 ROM-select lines, so up to 322 KiB of ROM ... not bad for the very first one :))

RCA Studio II

Introduced January 1977.

The RCA 1802-based Studio II provided 2 KiB of onboard ROM with basic I/O functions and five simple games. It only partially fits this list, as ROM cartridges could disable the internal ROM and most did. Due to this it might in fact also qualify as the first console able to run without OS support :))

Bally Astrocade

Introduced April 1978.

This Z80-based system featured an 8 KiB ROM, mapped at 0000h. Of this, the first half holds the OS, while the other half contains the 4 applications. ROM cartridges could have up to 8 KiB and were mapped right after the built-in ROM at 2000h. On startup it checks the game ROM, lists its application and after that the built-in ones. Cartridges were hot-pluggable and it seems that they were originally planned to enable the OS to support media change by change of cartridge without reset.

Philips G700 / Odyssey 2

Introduced December 1978.

The G7000 was based on a ROM-programmed 8048 (1 KiB). EA is fixed to ground, so the internal ROM is always enabled and takes control after reset or any interrupt (Timer, Video). The 8048 can only address a maximum of 4 KiB at once, but two port lines allow extending that to 16 KiB of ROM.

Mattel Intellivision

Introduced January 1979.

The Intellivision uses General Instrument's CP1600 and a 4 KiB 'Exec' which could be classified as an early game engine. Besides basic system setup, it supplied main game loop items and related I/O handling, greatly reducing code in cartridges. Most early games are written as applications for this. The downside was of course management overhead resulting in a 20 Hz frame rate. Later, when ROMs grew large and cheap, more cartridges included their own handlers, pushing up to 60 fps.

Coleco ColecoVision

Introduced August 1982.

Coleco's second gen console was Z80-based and featured an 8 KiB monitor system, called BIOS. It sets up the system, displays a copyright notice, and then transfers control to the game cartridge if present. The BIOS is always mapped at 0000h, thus all interrupt handling goes through its code. Cartridges are mapped at 8000h. The BIOS also contains bitmap fonts and various utility routines for games.


*1 - Second Generation is defined as the period between first use of microprocessors in 1976 and the North American video game crash of 1983, making the Vectrex eventually the last second-generation and the NES the first third-generation console. This classification may seem arbitrary in most parts of the worlds as the 'crash' was a strictly North American phenomenon. Still, the classification of console generations is mostly helpful in many ways.

*2 - The term OS is a later term coined in computer science classes. Originally the term Monitor was used - no matter whether it included some (human) command interface or not. The term prevails until today for low level OSes. In that context I would classify the IBM BIOS as OS. After all, we call DOS an OS and all it does is add a file system handler above the BIOS's disk handler.

*3 - Which itself is a licensed version of the German AEG/Olympia CP3-F design.

3
  • It seems all of them booted into a BIOS, and some also had utility methods that can be used by games… though it looks like at least for some of them they were not officially documented and not meant to be used outside the BIOS. Anyway, the timeframe is clear: one of the systems of the late 70s/early 80s matches what I was looking for, and that's much earlier than I anticipated. Thanks.
    – DarkDust
    Commented Feb 2 at 8:47
  • 3
    Not sure what _"not officially documented" is intended to mean. Consoles weren't exactly known for publicly available documentation. You may want to look up the History of Activision and how much Atari disliked it. Before ca. 1980 there were no independent game developers for consoles. In fact Activision might have been the first. Profit was in selling cartridges, not consoles. Hard and software documentation were trade secrets, watched for and distributed only in house and in small numbers. Unlike documentation for computer programming, where third party programming was the goal.
    – Raffzahn
    Commented Feb 2 at 11:46
  • 1
    @DarkDust same reason why later consoles added complex signature schemes: Protecting revenue by making developers share theirs. And still today. Apple Store is a gatekeeper for the iPhone, so Apple can milk developers.
    – Raffzahn
    Commented Feb 2 at 14:40
13

I'd go for the Philips CD-i system, released 1990. It used an operating system called CD-RTOS. Similar to modern consoles it could play audio & video discs as well as games.

3
  • 1
    Commodore CDTV also has an OS albeit it arrived one year later than CD-i.
    – wizofwor
    Commented Feb 1 at 10:00
  • The definition for an OS seems to be updated to just "BIOS-alike system/boot ROM that can load and run game code and provides some services", so it does not have to be a real OS.
    – Justme
    Commented Feb 1 at 11:34
  • 1
    This is probably more what I in mind when I originally thought about this question: that does look like an OS in the modern sense. Since I had to find a bare-minimum definition for this question, Raffzahn's answer lists earlier example. But your answer is a surprising entry as well. Thanks!
    – DarkDust
    Commented Feb 2 at 8:50
12

This all boils down to what is counted as an OS to begin with.

First consoles such (e.g. NES) had no ROM in them and CPU started the execution from cartridge ROM directly.

The next step is to have a some sort of boot ROM to initialize the system and make sure the ROM is somewhat valid before running it, e.g. Game Boy, but it does not provide any services.

The next level is a console with ROM BIOS which not only jumps to run valid game code, but stays present and provides services that the game code can utilize.

There is no limit what such a ROM BIOS can do or provide or manage the hardware, and it is perfectly possible that it could contain a primitive OS of some kind, for example Playstation 1 can show you a boot splash screen and if there is no game disc inserted, it allows you to manage a memory card and play audio CDs. But while it allows the user to operate the system, is it an OS, or just non-OS program or system ROM or bootloader that runs and lets you do things.

The Playstation 2 is also said to have just system software like this but can it be called an OS is another thing, because it was possible to officially boot up a Linux-based operating system on the PS2.

The original Xbox [2001] is said to run an OS as the system software, and it is based on modified Windows 2000. However, the OS unloads itself while a game is run to let the game handle all the console resources.

The PlayStation 3 [2006] runs CellOS/GameOS which is based on FreeBSD and NetBSD.

The first console to run internal ROM code and providing a system call API could be Mattel Intellivision [1979].

1
  • 4
    NES is hardly a "first console". I had a Magnavox Odyssey a decade earlier, and Atari was 5 years earlier.
    – Barmar
    Commented Feb 2 at 3:05
7

Based on the updated definition, I’d nominate the Intellivision. As per Wikipedia:

Inside every Intellivision console is 4K of ROM containing the Exec software. It provides two benefits: reusable code that can effectively make a 4K cartridge an 8K game, and a software framework for new programmers to develop games more easily and quickly.

The drawback is that to be flexible and handle many different types of games, the Exec runs less efficiently than a dedicated program. Intellivision games that leverage the Exec run at a 20 Hz frame rate instead of the 60 Hz frame rate for which the Intellivision was designed.

i.e. there’s a basic game framework built in, which does so much for you that it even dictates your frame rate.

Picking up some crumbs from elsewhere, a "hello world" tutorial which is actually just an appropriate cartridge header to indicate a game title of 'hello world' so that it'll be displayed by the machine's built-in splash screen and then an infinite spin:

The main point of this particular header is to provide the EXEC the minimum amount of information it needs to jump to your code and get everything started.

...

The "keyclick" functionality only works if you rely on the EXEC for keypad input.

1
  • I think it's so bizarre that the Intellivision supports 16-bit instruction streams and 10-bit instruction streams Commented Feb 1 at 16:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .