49

While for other platforms of that era (primarily, Amiga), putting a game on a bootable disk was quite a normal practice, this approach never taken off on IBM PC. Why not?

I do remember people having multiple menu-driven autoexec.bat and config.sys configurations because one would have to boot MS-DOS with only the bare minimum to satisfy the requirements of some memory-demanding games. Since MS-DOS was by and large a single-task operating system, wouldn't booting a game directly from disk be more efficient than going through all the hassle of finding a working configuration of HIMEM, EMM386 and whatever else?

Even when Windows took over, would there be benefits for a demanding game to have full control over the PC resources as opposed to competing with a multitude of random background processes potentially spoiling the smooth FPS?

I understand that games in such a scenario would have to include a minimalist operating system, but I guess a carefully tuned Linux kernel along with drivers for all the popular graphics cards would be enough? This is for the Windows era, that is - for MS-DOS, I guess all the essentials games of that time needed were available directly from BIOS (well, file system support could have been an issue but I recall Amiga games of that time used to read the game data directly from sectors on the disk).

smci
  • 178
  • 1
  • 5
DmytroL
  • 2,162
  • 1
  • 12
  • 20
  • 19
    Note hard disks (in various forms) spread relatively early in the PC world, much earlier than on other platforms. Hard disk based games would have ben a nightmare to handle without the OS and its drivers. – tofro Jul 08 '19 at 13:50
  • 35
    https://en.m.wikipedia.org/wiki/List_of_PC_booter_games lists over 200, including at least one from as late as 1988. – Tommy Jul 08 '19 at 14:58
  • 1
    The Apple 2 world also had this, iirc 95%+ of games were "booters" until the advent of the //gs, and even then it was pretty common. Business software as well tended to be boosters. On a ][, ][+, //e, or //c, the only typical reason to boot from your basic DOS disk was to access utilities and BASIC programming. – Robert Columbia Jul 08 '19 at 16:53
  • 10
    Would you really want to reboot Windows just to play a game? The were a few games that you had to, and not just booters, but why would you think this would be something that gamers would want? DirectX was invented so games could have more or less direct access to the hardware, and in the Windows 95/98 days there weren't a multitude of random background processes like there are today. –  Jul 08 '19 at 23:32
  • For what it's worth - I used to make them myself ;) But they were just dos disks with autoexec.bat pointing at the game in question. Not quite what I suspect you're going for. – Shadow Jul 09 '19 at 03:53
  • 10
    This question makes a false assertion: there were plenty of booter games for the PC. Of course they fell out of fashion with the advent of affordable hard disks and, later, Windows. – Aaron F Jul 09 '19 at 08:19
  • 2
    Another bonus point due to hard drives - they were much faster than floppies. A game running from HDD would start much faster even including the DOS boot time, than a game running from a floppy. Indeed, most of the time of the boot was long before DOS started booting, so even if floppies weren't so slow, it would be a pointless waste of time to reboot the machine just to start a game. This wasn't the case on many other platforms, where the machine was only really used to launch one thing and than be turned off - with all their flaws, DOS machines were used a lot more "persistantly". – Luaan Jul 09 '19 at 08:24
  • I remember that a DOS game called Caesar would load itself into the boot part of the system. I was a kid and had no idea how to deal with it, until I found that quitting the game removes it from boot again. – Tomáš Zato Jul 09 '19 at 12:58
  • 10
    but I guess a carefully tuned Linux kernel along with drivers for all the popular graphics cards would be enough? It's hard enough getting a Linux kernel with all of the drivers to work correctly in 2019, when there's only 3 major vendors of desktop GPUs, not to talk about sound drivers. I imagine this was next to impossible in 1995. – Pod Jul 09 '19 at 15:31
  • 3
    @RossRidge "Would you really want to reboot Windows just to play a game?" - at a certain point in time, I actually used to reboot into "clean DOS" for playing a game quite frequently. I would think it was late 1990s when many cool DOS games were still in fashion for which no decent Windows alternatives existed. – DmytroL Jul 10 '19 at 11:36
  • 1
    PC games rarely even had any concept of smooth framerates in the early days. It's one of the thing that people coming from Amiga and C64 couldn't believe. Even on the very humble Speccy many games had beeng going for 50fps for years. People I knew weren't impressed by the PC until Doom and Linux appeared and I don't think even Doom had smooth framerate from memory. I recall a friend who was doing both Amiga and PC coding investigating and finding that at the time only a minority of graphics cards provided a way to sync with the beam. Might be some good new questions there? – hippietrail Apr 28 '20 at 12:03
  • @hippietrail sounds like your hardware was bad in the early days, friend. Back in the day most if not all of the graphics processing was done by the CPU, so you could double your framerate by overclocking a 386 SX from 16Mhz to 32Mhz (which was often possible without even adding a heatsink!) But stepping up to a 486 DX4 100 resulted in framerates beyond your wildest dreams (often you had to slow such a system down to stop games running too fast!) – Geoff Griswald Apr 28 '21 at 14:21
  • 1
    @GeoffGriswald: Fast framerates and smooth framerates are not the same thing. Luckily now we all have both. – hippietrail Apr 29 '21 at 02:26
  • @hippietrail I wonder if vertical blank sync was a problem back at the VGA era? I vaguely remember that PC video adapters at that time did not have a reliable vblank interrupt and one had to poll a status register, thus eating precious CPU cycles – DmytroL Apr 29 '21 at 15:10
  • 1
    @DmytroL: Something like that. At the time a good friend was moving from the Amiga to 486 PC after having been a C64 guy and was endlessly bemoaning the lack of a way to sync with the vblank. I seem to recall that a couple of cards may have had something but most didn't, 'standards' at the time were just whatever had been reverse engineered from IBM and/or had caught on to some degree. – hippietrail Apr 29 '21 at 23:26
  • There's a video on YouTube with a guy implementing Tetris on PC hardware (in an emulator) and calling his game an 'entire OS' based on the fact that the game runs on boot. So I guess lots of my old games were actually operating systems back in the day (-: https://www.youtube.com/watch?v=FaILnmUYS_U – hippietrail Apr 29 '21 at 23:30

9 Answers9

94

Bootable game disks do exist for the IBM PC. Conflict in Vietnam is an example of such a game. As can be seen on page 8 of the manual, the game boots directly without loading DOS first.

The main reason it wasn't common was for compatibility. A self booting game has to have its own drivers for all the hardware it wants to support. As PCs quickly diversified and software was used to provide compatibility with the original IBM hardware, it became much easier to use DOS drivers instead. In comparison the Amiga hardware was largely fixed and compatible through it's entire commercial lifespan under Commodore, and no clones ever gained significant market share.

user
  • 15,213
  • 3
  • 35
  • 69
  • 6
    I had quite a number of bootable game disks for my old PC XT clone. It was fairly common back in the day. – Brian Knoblauch Jul 08 '19 at 16:41
  • 7
    There weren't really any DOS drivers for anything games typically used. The main disadvantage is that these games couldn't read or write from FAT formatted drives, which meant they couldn't be installed on hard disks and usually had a simple or non-existent save mechanism. –  Jul 08 '19 at 23:25
  • 1
  • 1
    @R.. Yah, that would be one exception. –  Jul 09 '19 at 04:14
  • 3
    @RossRidge what about VESA/VBE (I needed univbe for some cards, For example S3 trio did not work without drivers any different than just basic VGA)?, Sound cards (only original SB 1.0 and COVOX DACs where without drivers all others needed init/emulation/drivers)? – Spektre Jul 09 '19 at 07:06
  • 2
    @Spektre this was well before VGA, but you are on the right path. For example, machines with an EGA card might need DOS software to put the card in CGA emulation mode for CGA games. Some machines with joysticks used software to make the stick emulate key presses (Amstrad). – user Jul 09 '19 at 08:34
  • And also memory. The original PC could have very little memory where DOS would leave less for the game. – Thorbjørn Ravn Andersen Jul 09 '19 at 13:52
  • @Spektre Very few MS-DOS games supported SVGA, while on the other hand MS-DOS games had to implement their own support (or use a third part library like Miles) for soundcards. Unlike VBE for SVGA, there was no soundcard driver standard under MS-DOS. Most games supported a much wider number of soundcards than you suggested. –  Jul 09 '19 at 14:43
  • Additionally, the original IBM PC had 8 KB of BIOS ROM while the original Amiga 1000 had 256 KB. This reduced development effort for bootable software (no need to write certain drivers, etc.), and allowed the actual game to occupy more of the diskette's limited storage space (360 KB on IBM PC, 880 KB for Amiga). If you agree with this reasoning, then for posterity please feel free to add it to your answer. – snips-n-snails Jul 09 '19 at 18:28
  • A lot of sound cards could work just fine with the right Sound Blaster driver, @Spektre, at the very least; the SB line was a de facto standard, to the point that "Sound Blaster compatible" was sometimes even a selling point for clones (especially during the ISA/PCI switch, when mobos offered both slots and Creative was trying to start moving to PCI). They wouldn't always have their full feature set available, but it made sound cards one of the easier parts to configure pre-PnP. (A lot of games flat-out assumed you had a Sound Blaster of some sort, generally at address 220h with IRQ 5 or 7.) – Justin Time - Reinstate Monica Jul 09 '19 at 18:50
  • @RossRidge you missed my point lot of the "compatibles" required to run a configuration and or emulation SW prior to usage which is not possible in custom boot (as there you can not run MS-DOS executables). For example those SB compatible like Yamaha etc. without running the init the SB sound does not work. The same goes for newer SB from creative too... see Getting Music Functioning for Raptor: Call of the Shadows (1994) So in custom boot you can not use vendor drivers and need to write your own even for stuff that i scompatible – Spektre Jul 09 '19 at 20:33
  • @RossRidge so even supporting "comaptible" HW will not work on most generic cards ... you would need to implement custom driver for each vendor and version of each card you want to be supported. In the early days there where not as much HW and was still doable but once more vendors add to the chaise custom boot for games would be unmanageable and expensive in comparison to just use a common OS supported by the vendors ... – Spektre Jul 09 '19 at 20:37
  • 1
    @Spektre In practice MS-DOS games did implement custom "drivers" for each of the various different soundcard they supported. Games with support for dozen different soundcards weren't uncommon at the end of the MS-DOS era. –  Jul 09 '19 at 22:50
  • @RossRidge: Some games offered maybe a half-dozen or so sound output options; I can't think of any that offered "dozens" of sound options that would need to be programmed differently. – supercat Jul 11 '19 at 19:39
  • @supercat I said "dozen" not "dozens". An example of such would be Descent, which had 13 digital soundcard options (plus 5 overlapping music soundcard options). –  Jul 11 '19 at 23:04
  • @RossRidge: How many common options were there, if one doesn't count e.g. "Disney sound source on LPT1", "Disney sound source on LPT2", etc. as different options? If a game was designed to use an interrupt to output each individual sample, the only "driver" most games would need would be a list of I/O addressses and values for initialization, and then something to specify the I/O address for each sample, and offer to include a "driver" for every sound card whose maker supplies the information and a free card for testing, but I don't think any games that did anything... – supercat Jul 14 '19 at 16:34
  • ...more complicated with sound cards would have included anywhere near that many choices. For music driver, the choices would be PCjr/Tandy, AdLib, maybe Creative labs' proprietary thing which could do stereo, but which CL didn't document in their dev package(!?), possibly MIDI, and of course PC speaker. For "chunked" wave output, the Sound Blaster's DMA and the Disney Sound Source (hardware buffering) would be the dominant choices. – supercat Jul 14 '19 at 16:36
  • @supercat 13, as I said. –  Jul 14 '19 at 16:48
  • @RossRidge: If "Disney Sound Source on LPT1" and "Disney Sound Source on LPT2" weren't considered separate, how would one have indicated which printer port to use? – supercat Jul 15 '19 at 14:52
  • @supercat Once you select which kind of soundcard you can select which port, interrupt, and DMA addresses it uses as applicable. –  Jul 15 '19 at 15:04
  • @RossRidge: If a game has separate interrupt handlers for that many sound cards, I'm impressed. The programs I've seen which had support for a large number of sound options used a timer-tick interrupt to output each and every sample, rendering DMA and IRQ configurations irrelevant [if memory serves, at least some had an option to simply specify an I/O address directly, in which case they'd be able to work just fine even with sound cards the authors knew nothing about, provided the user first ran a program that set up the sound card and left it configured, and supplied the right I/O address. – supercat Jul 15 '19 at 16:21
  • Viruses were rampant on shared bootable games like "Dig Dug". – mckenzm Aug 09 '19 at 02:42
26

Well there were some PC booter titles (MobyGames lists 249), but most of these were quite early games, even before hard drives, XMS or EMS even existed. These were almost always self contained single floppy games, that could run on the very specific hardware that existed. All they used was BIOS for disk access. Also DOS was not the only operating system, so it sort of made sense to have a simple booter game that could be booted from a single floppy, without a specific OS. As the game itself does not require DOS for anything, it would have taken too much floppy space to include DOS just for the purpose of loading a game.

When games became larger and hard drives mainstream, and in practice the consumer OS had settled to DOS, it was much simpler to boot the PC to DOS as usual and then run the game executables either from floppy directly or from the hard drive. Also games that have multiple files like graphics and sound files can just very easily read those files under DOS, without understanding anything about the actual file system structures.

Even later, with 386 and 32-bit protected mode games, DOS was just used as the platform that was able to execute the DOS extender and load the 32-bit game executable into memory for the purpose of running it.

hippietrail
  • 6,646
  • 2
  • 21
  • 60
Justme
  • 31,506
  • 1
  • 73
  • 145
  • 1
    If it helps for perspective, I think there are even a couple of booters for the original Macintosh — not just titles with an appropriate version of the System already on the disk, but that don't use the RAM-resident parts of Mac OS at all. My point being: some people will ship a booter no matter how unsuitable the idea is for the platform. – Tommy Jul 08 '19 at 14:54
  • @Justme "games that have multiple files like graphics and sound files can just very easily read those files under DOS, without understanding anything about the actual file system structures" - so do I get it right that on the Amiga, booters used Amiga DOS routines from Kickstart ROM for this purpose? Well, maybe games did, but I am pretty sure I've heard of Amiga bootable disk demos (think demoscene) using very custom disk formats for storing their data. – DmytroL Jul 11 '19 at 08:34
  • @DmytroL I haven't said anything how Amiga works and what it has in ROM, but whether Amiga or PC, it may or may not use what is provided by system ROM/BIOS and PC provides bare sector access, no file system without DOS. – Justme Jul 11 '19 at 14:52
  • @Justme Right. What I was trying to say was "There were Amiga games and demos that were only using bare sector access routines from the system ROM" - so given that having only raw sector access was definitely not a roadblock on the Amiga, I am trying to understand why would it have been a roadblock on the PC. – DmytroL Jul 12 '19 at 16:38
  • @DmytroL For a single floppy bootable game, it wasn't. As hard drives started to exist and games got larger than single floppy, at some point they wanted to be installed from floppies to hard drive, so OS was a requirement. – Justme Jul 12 '19 at 20:41
  • Yes and no. The Amiga 500 launched in 1987 and self-booting games on the Amiga became popular by 1989. There were 3 types of Amiga at that time and they all had standard BIOS / Kickstart configurations. On the PC in 1989 there were at least 50 different competing manufacturers and untold different configurations of hardware. You couldn't just assume that the user's BIOS would have the command you needed to load your game. Since DOS was the defacto standard by then, it made far more sense to rely on it instead. – Geoff Griswald Apr 28 '21 at 14:12
22

The IBM PC was NOT a Game Machine

Plenty of people played plenty of games on IBM & compatible computers. But the IBM PC was designed as a business machine, not a game machine.

This is most obvious with audio capabilities. Where Atari 400/800, VIC-20, Commodore 64, Amiga and many other machines of the era included some (for the time) serious sound capabilities, the IBM PC did not. As a result, within a short amount of time, there were a number of different sound cards available, each of which needed a driver or specific application programming to work.

Video was not quite as bad, but even there, the original PC had a choice of two very different video cards (MDA & CGA) and soon EGA and others came along, each with their own video modes (bit depth, resolution, memory-mapped video RAM location, etc.), while many of the other popular machines had video, often with better support for games (e.g., sprites), built in to the motherboard.

Due to the sheer size of the market, there were many games available for the IBM PC. But due to design issues, many of these games needed either extra hardware (e.g., sound card) or extra software (to support different sound, video, extended/expanded memory), all of which was a lot easier to support by booting into MS/PC-DOS first. In addition, hard drives were quite common with the IBM PC (at least after the introduction of the XT), so installation of a game onto the hard drive, sometimes with insertion of the original floppy at the beginning of the game for copy protection, made a lot more sense than trying to cram everything into one or two bootable floppy disks.

  • 6
    Confusingly enough, one of the PC’s launch titles was a game, Microsoft Adventure (which also happens to be a booter). So while the PC wasn’t designed as a games machine, IBM did intend people to play (some) games on it... – Stephen Kitt Jul 08 '19 at 15:36
  • 1
    @StephenKitt No question they wanted the PC to be used for games, as well as business. But this was also a text based game, which didn't have the issues of video, audio, etc. which became much bigger issues as the game software market evolved. Plus no hard drives on that first day. Etc. – manassehkatz-Moving 2 Codidact Jul 08 '19 at 15:41
  • 4
    I’m not disagreeing with your answer (although comparing booter-period PCs to the Amiga is anachronistic; and sound cards only appeared in 1987), I’m just saying that the messaging was confusing right from the outset. – Stephen Kitt Jul 08 '19 at 15:50
  • No time to research & revise now. But you're right - Amiga is not he best comparison because it was a few years later, but even the VIC-20 (a year earlier and a LOT cheaper) had better sound hardware than the IBM PC. – manassehkatz-Moving 2 Codidact Jul 08 '19 at 15:54
  • 2
    Yes, many home micros had better graphics and sound than the PC ;-). 8-bit Ataris for example... – Stephen Kitt Jul 08 '19 at 16:02
  • Sound cards under MS-DOS didn't use standalone drivers - the game had to drive them directly, so it wouldn't matter whether the game was a booter or not for that. Other than access to the hard disk filesystem, the first game-relevant hardware that really needed DOS driver support was CD-ROM drives. – caf Jul 09 '19 at 01:41
  • 2
    @caf Most sound cards didn't, though even those sometimes benefited from configuration in autoexec.bat or config.sys. A better example would be EMS/XMS, HDD, mice, CD-ROM, and some "specialised" hardware like SCSI or some network hardware. The main thing is in the trade-offs - you get a bit of extra compatibility for free, and in return... you're easier to use. The only real drawback was some systems might lack conventional memory due to other drivers/residents. There wasn't much reason to build a booter - you got just as direct access to the hardware from DOS wherever you needed it. – Luaan Jul 09 '19 at 08:20
  • The Amiga and ST were designed as hybrid gaming / productivity machines, hence having game-friendly Disk Operating Systems on onboard ROM chips. The PC, being more business-focussed, was designed assuming that users would want to use their own OS. Also, at the time the PC was designed, ROM chips large enough to hold an OS were very expensive. By the time the Amiga rolled around, it was down to an acceptable price to include 512K of operating system on ROM on an affordable, consumer-priced system like the Amiga. – Geoff Griswald Jul 12 '19 at 10:49
16

There were three primary reasons:

  1. Space - PC games were at an awkward juncture in time where both the OS and the games had grown but floppy disks had not, so there was often too little space on the disk to include the OS, even for single-disk games, let alone multi-disk games.

  2. License - They couldn’t just throw a copy of DOS on the disk; that would be piracy. They'd have to have a license to include it, but that would have increased the price of the games which were often already quite expensive.

  3. Variation

    Apologies if I was vague in my wording. Take Doom, Heretic or Hexen as an example. These games were using a so called "DOS extender" which, in a way, was a mini-kernel running in protected mode that didn't rely on MS-DOS for anything but probably accessing the file system. So, assuming that a game like this a) would be able to boot from CD by using only BIOS routines and b) would include a FAT driver for making "saves" on the HDD - such a game wouldn't need MS-DOS at all. Ideally it wouldn't even use BIOS since calling BIOS from protected mode was royal pain in the ... – DmytroL

    Games that required DOS extenders did come with them. It sounds like you’re asking why PC games didn't include their own (mini) OS, as opposed to running on DOS at all. If so, I assume you’re referring to how some Amiga games had custom boot-blocks that bypassed Kickstart and didn’t use AmigaOS. That was because doing things like graphics, sound, and input was simple enough on the Amiga that they could do that. However, it was not a common practice, it was usually only done by “bedroom-coders” who enjoyed digging into the system and “hacking” things for themselves. Studio games rarely did that unless there was a pressing need like squeezing out every byte of disk space.

    On PCs, it was more of a pain to do low-level things manually, so it was rarely worth the effort (though it did occasionally happen; it's not a game, but even today, “DOS” copies of MemTest86+ come in a non-FAT disk image and boot directly into the program using a custom version of Linux, as does Clonezilla).

    A big reason for programming on PCs being harder than on Amigas, C64s, game consoles, etc. is that unlike original IBMs and other systems that had a defined specification, PCs (IBM clones) quickly became a morass of complexity with a wide variation of hardware. Therefore, it was a lot more work (especially before each standard was established) to accommodate differing hardware; it was easier to just let the installed operating system and drivers do that work. (This was still an issue even in Windows until Microsoft unified the programming experience with DirectX.)

user3840170
  • 23,072
  • 4
  • 91
  • 150
Synetech
  • 292
  • 1
  • 4
  • 2
    It might be helpful to add why DOS was a necessity. – wizzwizz4 Jul 09 '19 at 15:53
  • 1
    What? Why? The question is asking why DOS games didn't usually come with DOS. The OP already knows why DOS is necessary; that doesn't need to be part of the answer. – Synetech Jul 10 '19 at 17:31
  • 2
    The question uses phrases like "games" and "a game", but never says "DOS games". Some of the sentences in the question don't make much sense under the assumption that the OP is talking about DOS games, imo. – wizzwizz4 Jul 10 '19 at 17:35
  • 3
    @wizzwizz4 Apologies if I was vague in my wording. Take Doom, Heretic or Hexen as an example. These games were using a so called "DOS extender" which, in a way, was a mini-kernel running in protected mode that didn't rely on MS-DOS for anything but probably accessing the file system. So, assuming that a game like this a) would be able to boot from CD by using only BIOS routines and b) would include a FAT driver for making "saves" on the HDD - such a game wouldn't need MS-DOS at all. Ideally it wouldn't even use BIOS since calling BIOS from protected mode was royal pain in the ... – DmytroL Jul 11 '19 at 08:28
  • @wizzwizz4 > The question uses phrases like "games" and "a game", but never says "DOS games" Huh? It says IBM PC games and DOS was the main OS on IBMs (discussing alternative OSes in this context would be pedantry, especially for games). Also, even the very first revision mentioned DOS numerous times as well as DOS components like HIMEM and EMM386. Maybe you're looking at a different question? – Synetech Jul 11 '19 at 18:14
  • you refer to DOS4GW.EXE, which still required DOS to actually run. Games did distribute DOS4GW.EXE, but could not distribute DOS, they still needed it to initialise the extender, you couldn't just run it from BIOS.Also, by the time DOS4GW was starting to become popular, games were coming on 8-10 discs anyway, making the idea of a bootable floppy ridiculous, since you would want to run them from hard drive, not floppy. – Geoff Griswald Jul 12 '19 at 10:52
  • Synetech and @JohnEddowes - thanks so much for your valuable insights! Exactly what I wanted to know. – DmytroL Jul 15 '19 at 13:10
  • 2
    @Synetech Yes, MemTest86+ was exactly the thing that prompted the original question. My train of thought was like this: "if MemTest could pull it off, why games couldn't". But now I see that what is suitable for a simple single-purpose program like MemTest would not be suitable for much more complex requirements games had. – DmytroL Jul 15 '19 at 13:12
  • 1
    Many Amiga games didn't use the Amiga operating system for much either, just loading everything into RAM and then hitting the hardware directly. PC games could have done that too, without DOS. Except the last point about PC hardware being more diverse. – Prof. Falken Mar 06 '20 at 08:26
  • Also note that DOS extenders imply the 386, which took quite a while before it was what most users had, and at that time harddisks were the norm. – Thorbjørn Ravn Andersen Apr 28 '20 at 16:45
12

Games that were designed to be run from floppy were usually self-booting, and often could only be run by booting from floppy. In many cases, the game code could be stored in ways that would not be understood by MS-DOS (using things like non-standard sector sizes), and booting into a game would be faster than booting MS-DOS and then booting the game. The big problem was that a self-booting game would be generally be able to access anything that required any sort of loadable device driver, nor--in most cases--any information that was stored on a normal MS-DOS disk. If one wanted to save one's progress in Zork I or Wizardry, one would have to format a disk specifically for that purpose, as opposed to merely being able to store a file on an existing MS-DOS volume [I think Wizardry used disks formatted to the UCSD P-system standard, and its save files might have been able to co-exist with files for other P-system applications, but Wizardry is the only one I know of].

Note that if a game knows that it will need to use a certain specific set of files, it can simply have a list of files and their locations built into the game's code. If a game were using MS-DOS and wanted to read foo.dat, it would need to read one or more sectors of directory information, then one or more sectors of the FAT, before finally being able to read the data for the file of interest. If instead the game code is hard-coded table that says file #23 is stored from sectors 293 to 299, the code can simply read those sectors directly, thus offering faster performance than if the game were using DOS to read the information from floppy (though probably slower than using DOS to read from a hard drive).

supercat
  • 35,993
  • 3
  • 63
  • 159
  • 1
    I've got a copy of the original 1987 PC version of Pirates! and its copy protection and save game system was exactly this. I'm glad that the disks never became unreadable when I owned computers that were slow enough to play the game! It did boot very quickly however. – ErikF Jul 08 '19 at 22:24
  • Wizardry was special as it was written in UCSD-Pascal, which made it portable, and the runtime did not use or require DOS. It is debatable if that alone made it a booter or as-such copy protection - if I recall correctly there was also an uncopyable bit of the disk (played the first one quite a bit back then). – Thorbjørn Ravn Andersen Jul 09 '19 at 17:02
  • @ThorbjørnRavnAndersen: Do you know of any P-system-based programs other than Wizardry that were ever popular on the PC? – supercat Jul 09 '19 at 17:06
  • No but that is just me being ignorant. – Thorbjørn Ravn Andersen Jul 09 '19 at 17:19
  • @supercat "one would have to format a disk specifically for that purpose, as opposed to merely being able to store a file on an existing MS-DOS volume" - but how hard would it be to include a FAT filesystem driver directly into the game code? Linux had one as of 1996 at least, so licensing didn't seem to be an issue. – DmytroL Jul 11 '19 at 08:31
  • @DmytroL: Most self-booting games were produced in the 1980s, before open-source software became "a thing". – supercat Jul 11 '19 at 15:24
  • +1. There were some floppy-based PC games which ran like any other DOS program, but only worked from floppy, or at least required the floppy to be present; Lemmings is one famous example. (But if we were to continue down this route we’d end up discussing all the floppy-based copy-protection methods used on PCs; while the possibilities were more limited than on the Apple II, C64, or Amiga, there were still quite a few...) – Stephen Kitt Jul 12 '19 at 07:47
  • "Games that were designed to be run from floppy were usually self-booting" False. While a few early examples of PC games did contain enough of an OS to run the game, this was the exception rather than the rule. Even in 1981 when 11 games for the PC existed total, and all of them designed to run from floppy, only 1 of them was a self booter. – Geoff Griswald Jul 12 '19 at 12:10
  • @JohnEddowes: I should have said "copy-protected games", since many games were of course just distributed as files. – supercat Jul 12 '19 at 16:06
  • I think this is the crux of it. Copy protection was the reason many games used custom bootloaders on the Amiga instead of using AmigaDOS. Crackers and pirates quickly learned how to manipulate AmigaDOS to get around any copy protection added to a game, so using it became a much less attractive option and they needed to adapt. To try to do the same thing on the PC always proved ultimately futile or unreasonably expensive and awkward. – Geoff Griswald Jul 13 '19 at 14:54
  • @JohnEddowes: If someone has four games for the PC, each of which takes 64K or less, copying all four games onto a bootable floppy may make them more convenient to play than having each on its own disk. If, however, one would need to insert the original disk to play a game, booting directly into it would be more convenient than booting to DOS first if the computer was off to start, and would be no less convenient in cases where one was starting at the DOS prompt. – supercat Jul 14 '19 at 16:29
11

Your question is backwards, the Amiga and Atari ST were really the only computers that had mainly bootable games on floppy, pretty much every other disk-based PC required you to boot into the OS first, then boot your game. There are a very small number of exceptions on the PC, but they are rare.

The simple answer is that the Amiga and ST had part of their OS stored on ROM, for the Amiga this was named a "Kickstart" ROM and this could be updated or flashed with new versions. This was effectively "DOS" for the Amiga, and it was built into every machine. You could load the more fleshed-out "Workbench" from floppy or HDD, but Kickstart was always loaded when the machine turned on.

If a game wanted to be self-booting on the Amiga, all they needed to do was issue a few Kickstart commands and you would be ready to go.

If a game wanted to be self-booting on the PC, there was no built-in OS, just some very high-level BIOS commands as standard. The game would have to have an entire kernel and OS included, and you couldn't just distribute DOS with your game. So unless you wanted to code an entire IBM PC kernel and OS (which was far more possible in the early days when there was only three types of CPU, two types of graphics adapter and one type of sound hardware), then you would have to rely on the user to already have DOS.

Geoff Griswald
  • 282
  • 1
  • 6
  • 4
    "high-level BIOS commands" - did you mean "low level" ? – StayOnTarget Jul 10 '19 at 20:29
  • 3
    Apple II machines booted games from floppies; self-booting games were the rule rather than the exception, pretty much. Commodore 64's almost booted game disks by themselves: LOAD “*”,8,1., (sigh). – Kaz Jul 10 '19 at 21:55
  • 2
    You didn't need an "entire kernel and OS" for running a bootable game on a PC. The BIOS and I/O system already provided enough functionality and accessing them wasn't any different than when running a DOS game. You just lacked the DOS API (software interrupts) so if you could without these you were fine. DOS didn't provide graphics or sound APIs so each game had to include these themselves anyway. I had quite a bunch of bootable games on my 8088. – DarkDust Jul 11 '19 at 07:01
  • 1
    PC booter games weren’t rare in the early days of the PC. According to MobyGames, in 1981 10 DOS games were released for 1 PC booter, in 1982 100 for 22, in 1983 98 for 62, and in 1984 107 for 65; at their height in 1984, PC booter games represented a third of all games available for PCs. There were many other home computers which would boot games from disks; comparing with the ST and Amiga is anachronistic. – Stephen Kitt Jul 11 '19 at 07:40
  • 2
    This is completely wrong. For a start, PCs had the BIOS that provided similar services to Kickstart, at least in terms of what games used. Most games didn't use AmigaDOS, they had custom disk formats the same as bootable PC games. All the same limitations applied, e.g. lack of HDD support, only supporting the standard base hardware. – user Jul 11 '19 at 08:29
  • Agreed with some of this. Sure, back in 1981 when only 11 games existed, a whole 9% of them were self-booters, and yeah, a few games that ran on the 8088 were booters, but it's really the exception rather than the rule. And yeah, after a certain point in time Amiga games stopped using AmigaDOS and started relying on custom bootloaders and so on, but the fact it existed on ROM was the whole reason earlier games were able to self-boot without any effort on the developer side. – Geoff Griswald Jul 12 '19 at 10:42
  • Sure you don't "need" an entire kernel and OS, but it sure makes game development a hell of a lot easier, cheaper, more scalable and repeatable, not to mention your game being able to run on a far wider range of hardware configurations. – Geoff Griswald Jul 12 '19 at 12:08
  • 1
    @JohnEddowes very few games use AmigaDOS. They might use some ROM routines for loading sectors from the disk, but they don't use an AmigaDOS filesystem. They don't use the kernel's memory allocation, they don't multitask. The Kickstart ROM is used much like the BIOS. – user Jul 14 '19 at 20:20
  • Even Kickstart wasn't needed, because the first Amiga model (the A1000) had to load it from floppy, and only subsequent models included a Kickstart ROM. – Hugh Allen Jul 15 '19 at 05:11
  • Many games have their own trackloader,, directly accessing the hardware. This was quite common on Amiga, as opposed to the PC, which doesn't have THE hardware. Also saying that pretty much every other disk-based PC seems backward, because you phrase it as if there were only Amiga, ST or PCs, while there were others as well. – Devolus May 13 '21 at 09:26
  • No "pretty much every other disk-based PC" implies there are several other disk-based PCs other than the Amiga and ST. None of them used bootloaders to run games, they all made you load some kind of OS. Only the Amiga and ST had this as a "mainstream" and "default" way to load games. – Geoff Griswald May 13 '21 at 13:31
5

I'd like to question the premise, here.

I understand that games in such a scenario would have to include a minimalistic operating system, but I guess a carefully tuned Linux kernel along with drivers for all the popular graphics cards would be enough?

Space is an issue, so it would be beneficial if it were possible to have the kernels separately, or else have multiple different copies of the game with different sets of drivers. The "separate kernel" model seems more efficient, and what is DOS if not this?

Now, even when Windows took over, would there be benefits for a demanding game to have full control over the PC resources as opposed to competing with a multitude of random background processes potentially spoiling the smooth FPS?

There is a convenience in being able to start your games quickly, and to Alt-Tab, and to use the network you've already configured your computer to use, etcetera. And computers powerful enough to run Windows were often powerful enough to run most games without stuttering, especially since Windows gave priority to the programs the user was interacting with.

Nevertheless, many games on my Arcade ClassiX CD-ROM required me to boot into single-process (MS-DOS) mode in order to run properly; it appears that such games existed. It wouldn't surprise me if such bootable disks as you describe in your question also existed. But such launch systems reduce the target audience with very little benefit, so I wouldn't expect many to exist.

wizzwizz4
  • 18,543
  • 10
  • 78
  • 144
  • 1
    The benefits did outweigh the negatives for a little while: Early PC hardware was extremely limited in power, and speed was an issue. early MS-DOS disk read routines for example were inefficient, and also prioritised error correction and filesystem integrity checks over reading data. You could make your game load much faster by booting into your own custom OS which had optimised disk access routines. Similar with graphics, you could access the hardware in ways that DOS couldn't, and speed up framerates etc. These benefits only really lasted until MS updated DOS. – Geoff Griswald Jul 12 '19 at 12:15
  • DOS games existed before Windows. – Devolus May 13 '21 at 09:27
  • @Devolus I'm not sure what you're trying to say. – wizzwizz4 May 13 '21 at 21:50
1
  1. Floppy disks were extremely unreliable. As a consumer, if I knew a game would only be usable by booting from it's own floppy disk, I'd be immediately turned off on buying that game because I know that sooner or later, that floppy disk is going to be rubbed raw by the floppy drive's read heads and turned into rubbish. Then I'll be out of my money and without my game. Even if the bootable game didn't employ copy protection schemes (which most bootable games did), I'd still be out the cost of a replacement floppy disk.

    Hard drives, while still a bit unreliable back then, were significantly better.

  2. Self booting means you don't have access to any of the FAT filesystem code in DOS. That means you can't safely access the hard disk. In fact, you couldn't even use many of the standard C library routines. You'd have to make BIOS calls yourself and try accessing the raw disk directly, which is pretty impractical. Tiny games could be contained within the size limitations of a floppy so that using raw BIOS reads (without a filesystem) might be manageable, but beyond that it was so much more reasonable to just simply require DOS.

  3. Booting was really slow in the old days. Many BIOS's would do a Power On Self Test procedure that would take way too long. Imagine trying to develop a game where you had to reboot to test each iteration of your code? Pretty impractical. So, most programs were developed under DOS where you could switch back and forth between testing your code and running your development environment pretty quickly. Your game was by default already DOS compatible at this point, so making it into a self-booting image meant you had to do MORE development before you could release. Waste of time for most people, other than those bent on implementing copy protection schemes.

  4. Incompatibility. The IBM PC was largely popular because there were so many competing vendors producing different, yet still mostly compatible clones of each other's hardware, driving down costs of computers. The problem is, you often needed software to, at the very least, initialize the hardware into a state of compatibility at boot time. Or in the case of Mice and CD-ROM drives, you needed a terminate and stay resident driver that knew how to talk the proprietary hardware protocols, while providing a generic API for applications. Making a self booting game meant that your game very likely would have compatibility problems for many of your otherwise potential users.

K9spud
  • 119
  • 3
  • Re #1, I really wonder how was this - I totally agree, very real - problem addressed on Amiga / Atari ST? – DmytroL Jul 11 '19 at 08:12
  • Re #3, I wonder if the slow boot was an IBM PC-specific problem? And if it was, I recall one could turn POST off in BIOS settings? I have never owned an Amiga or Atari, so unfortunately don't have first-hand experience with those platforms. Still, from what I can recall from visiting my university buddy who did own an Amiga, the boot process wasn't blazing fast either. Although I agree that POST could have been a hindrance as the Amiga didn't seem to have anything like that. – DmytroL Jul 11 '19 at 08:16
  • Re #4, the case with CD-ROM is an interesting one. I somehow implicitly assumed that BIOS routines could work with CD drives as well (after all, CD drives had the same IDE interface as usual HDD drives, hadn't they?). Now, as other users have correctly pointed out that floppy disks would be too small to keep all the code and data of any decent game of that time, I was thinking of a game bootable from a CD-ROM drive - but if accessing a CD would require a loadable driver, that would nullify the whole idea. – DmytroL Jul 11 '19 at 08:19
  • Re #2, I'm having a real hard time imagining a game on the IBM that would be worth playing and could fit within the few hundred bytes available to the bootloader. – user Jul 11 '19 at 15:55
  • @DmytroL The Amiga booted tolerably quickly (I at one point had an A500), and pretty much all of that boot time was to get the OS to a usable state. As for BIOS settings, that really wasn't much of a thing until the 1990s; the BIOS setup might offer a way to configure the type of floppy disk drives and hard disk installed, set the system clock and a few other odds and ends, but BIOSes were still rather limited in what they did, and the POST served a real purpose in not just getting the machine running, but also making sure it wasn't somehow broken. The time wasn't spent in wait loops. – user Jul 11 '19 at 15:59
  • @DmytroL: Interestingly, IBM never provided a means for consumers to avoid the really slow POST, but at least the version of the BIOS on the Portable PC (basically a PC-XT in a luggable case with built-in monitor) will look for special diagnostic signals from the keyboard-connector on startup and bypass most of the POST if they are received. – supercat Jul 11 '19 at 19:36
  • @a CVn - You're right. The MBR at 512 bytes would be pretty much a no-go, even for a tight assembly language game. I've adjusted the answer text accordingly. @DmytroL - All of the early CD-ROM drives used proprietary interfaces of very different sorts. Later, some moved to SCSI, and eventually, everybody settled upon the ATA (i.e. IDE) interface, but that was a lot later as far as I can recall. – K9spud Jul 12 '19 at 03:38
  • Bootable CD-ROMs weren't possible until the Red Hat Linux and Windows 95OSR2/Windows 98 era. If I recall properly, the very first Windows 95 CD wasn't bootable by itself - you had to boot from a floppy disk containing DOS, install Windows 95 to hard disk, and then you were good to go. Similarly, I recall having to install my first version of Slackware Linux from a huge stack of 1.44MB floppy disks, despite having received it on CD-ROM. Oh what a PITA that was when a couple of my last floppy disks turned out to be faulty after proceeding practically all the way through the installation - twice! – K9spud Jul 12 '19 at 04:10
  • Floppies might have been unreliable, true, but for about 10 years that was pretty much all anyone ever used. Hard drives were horrendously expensive until the early 90s really, and you were stuck using floppies for nearly all home computing tasks. Once PCs started coming with Hard Drives as standard, then you're right this is a reason that self-booting games didn't exist, but there was a very long period where PCs only really had floppy drives, much like the Amiga. – Geoff Griswald Jul 12 '19 at 10:57
  • @K9spud but of course a booter game would have a custom bootloader fitting into the MBR that would load the rest of the game code and data into RAM. Or, the 512 bytes bootstrapper would load a more advanced bootloader like grub2 does in Linux. – DmytroL Jul 12 '19 at 16:40
  • The Amiga used a specific disk format that was less prone to error. They didn't use the highly error-prone "High Density" disks common in PCs, they were limited only to the much more reliable "Double Density" type. Also they didn't use the less reliable FAT format which gave 720kb of usable space on the PC, they used the custom "ADF" format which provided about 800kb of usable space and had more reliable error handling. Not to say that disk errors did not occur on Amiga floppies, for sure they did, but they weren't nearly as common as they were in PC 3.5inch "HD" floppies. – Geoff Griswald Apr 29 '21 at 15:44
  • Power on Selftest was certainly not a problem, because the devs sure wouldn't have booted for every iteration. Bootloader and the game can be developed independently and then merged later, so only the bootloader needs to go through the selftest on iteration. – Devolus May 13 '21 at 09:29
1

Firstly, it's not true. There were many bootable games for DOS. The most popular answer here names a bootable DOS game, then goes on to explain why they might not be as popular(?) Perhaps your question makes sense for the original IBM PC. That brings up another distorting variable; PCs have been around since 1981, and today's PCs are direct descendants. In comparison Amiga was only made by Commodore from 1985 to '96.There were many features later PCs and "clones" had that the original PC and PC XT didn't have, but by 1986, Compaq had put out the first 386 desktop PC, the Deskpro. If your friend had a PC that was as new as your Amiga, a PC which would probably have been running Windows 3.1 on a hard drive, you would have a very different experience. Also, making a floppy disk bootable in DOS was as simple as, "sys a:". This would put a boot sector, and a "DOS BIOS" (IO.SYS) file and a DOS kernel (MSDOS.SYS), on the disk. (IBM renamed these to IBMBIO.COM and IBMDOS.COM.) It's a rather trivial operation, and it's no wonder over 200 major games included this feature, and probably a number of homebrew games as well. There's also the fact that two floppy drives became vary popular soon after the IBM PC came out. The first successful "clone", the Compaq Portable had two floppy drives. The Apple IIe was also commonly bought with two drives, but not the Amiga. For most non-business purposes, the DOS disk was kept in one drive (A: or B:), and games and other applications in the second drive. Even if the game was bootable, it was common to run it after the DOS disk was already present and booted. This might be what distorts your memory of PCs.

Cuvtixo
  • 11
  • 3