Enthusiast demos ancient MS-DOS and games running 'from the metal' on modern PC system
YouTuber Inkbox tests DOS without emulation using modern CPUs.
In the world of computer software, x86 and x86-64 are by far the leading CPU architectures in terms of overall software compatibility, particularly for legacy software with or without emulation. However, as YouTuber Inkbox has pointed out and tested, most modern AMD and Intel CPUs can still run pre-Windows DOS "to the metal" via plain old backward compatibility, no emulation needed.
For those who don't know exactly what "emulation" is, it's best to think of it as a piece of software that imitates a (usually) fixed hardware platform to then run software targeted only at that original platform. In modern consciousness, the most popular use case of emulation is for achieving backward compatibility with past game consoles, arcade boards, and retro PCs (often with non-x86 architectures) for retro gaming purposes. The cutting-edge of emulation also tends to add support for features like replacing models and textures or upping the framerate, often on a per-game basis.
As recapped by Inkbox, modern x86 and x86-64 CPUs go through something of a cycle when first booted up — their initial state, a 16-bit "Real Mode", closely imitates that of the original 1979 Intel 8086 before shifting into 32-bit or 64-bit depending on the specifications of the CPU in question. This Real Mode exists for the sake of backward compatibility and has been present in some form or another since the 80s and the influx of IBM PCs that ignited the home PC market around the world. Since an overwhelming majority of PC software targeted the Intel 8086, then, supporting its 16-bit instruction set became a vital feature of every successive x86 and eventual x86-64 CPU.
But what does all of this mean for you, the end user? Well, seeing as your PC most likely doesn't have a floppy drive, you'll likely need to follow Inkbox's footsteps by installing MS-DOS and all the programs you would like to run on it on a bootable flash drive through the Rufus utility. Otherwise, as long as your PC supports UEFI and a legacy BIOS boot mode, you should be good to go — but if your UEFI has no support for a "Legacy" mode at all, you may not be able to run DOS and its software "to the metal" as done in Inkbox's video.
In Inkbox's testing, an Intel Celeron N3450 is used. This is an "Apollo Lake" Intel CPU with "Goldmont" cores targeted at low-power Atom, Celeron, and Pentium devices from 2016, which is from the same era as Intel's 6th Gen "Broadwell" Core CPUs. Using an Icewhale ZimaBlade Mini PC with support for 16GB of LPDDR4 RAM, Inkbox was able to boot MS-DOS 8 and MS-DOS 1.0 straight "from the metal" by setting the flash drive as the boot device in the BIOS and subsequently play a variety of games including the original DOOM (1993), Tetris (DOS vers.1988), and even The Last Ninja (1987). However, he also chose to play without sound enabled due to suspected limitations of the ZimaBlade Mini PC, so YMMV on whether or not you should even bother with this methodology.
It is certainly cool that DOS can still be run like a modern OS on modern CPUs and motherboards that still support legacy BIOS operation. However, emulation (as well as the slightly different virtualization) and modern CPU power have gone so far that emulation overhead hasn't been a concern for decades. Additionally, emulation software does at least let you use the rest of your modern system and its modern OS as intended in the background, so it is probably preferable for the casual and curious.
Stay On the Cutting Edge: Get the Tom's Hardware Newsletter
Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.
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.
-
Neilbob I think I remember, after an enormous amount of tinkering with AUTOEXEC.BAT and CONFIG.SYS, I managed to get about 620 KB of the 640 KB free.Reply
I'd like to say it was fun to go through that, but my hazy memory (which is down to quite a bit less than 640 KB these days) must have let that part slip.
As for this, all very interesting from an academic/enthusiast perspective, but not really much use in practice when DOSBox does most of the work now. That said, I do sometimes wish I had a really old PC from the DOS 6.22/Windows 3.1 era just so I can play Magic Carpet 2 for more than few minutes without it glitching out. One of my all-time favourite games, but none of my DOSBox fiddling has ever been able to get it stable. -
davidjao
I assume you mean "Magic Carpet 2 - The Netherworlds" by Bullfrog Productions, Ltd. released in 1995. I don't know anything about this game, so I can't play it skillfully, but I am able to play it for as long as I want without glitches using 86Box.Neilbob said:I think I remember, after an enormous amount of tinkering with AUTOEXEC.BAT and CONFIG.SYS, I managed to get about 620 KB of the 640 KB free.
I'd like to say it was fun to go through that, but my hazy memory (which is down to quite a bit less than 640 KB these days) must have let that part slip.
As for this, all very interesting from an academic/enthusiast perspective, but not really much use in practice when DOSBox does most of the work now. That said, I do sometimes wish I had a really old PC from the DOS 6.22/Windows 3.1 era just so I can play Magic Carpet 2 for more than few minutes without it glitching out. One of my all-time favourite games, but none of my DOSBox fiddling has ever been able to get it stable.
86Box config is as follows. Operating system is MS DOS 6.22 with VIDE-CDD / SHSUCDX and CTMOUSE drivers, although I assume the classic OAKCDROM / MSCDEX / MOUSE.COM drivers would also work.
vid_renderer = qt_software
confirm_save = 0
confirm_reset = 0
confirm_exit = 0
host_cpu = 13th Gen Intel(R) Core(TM) i7-1365U
uuid = 56fe3928-d8a8-58da-b03a-5f3684acb78c
force_43 = 1
machine = 486sp3c
cpu_family = i486dx2
cpu_speed = 66666666
cpu_multi = 2
cpu_use_dynarec = 1
fpu_softfloat = 0
time_sync = utc
fpu_type = internal
mem_size = 16384
gfxcard = stealth32_vlb
mouse_type = ps2
fm_driver = nuked
sndcard = sbawe32
net_01_link = 0
net_02_link = 0
net_03_link = 0
net_04_link = 0
hdc = ide_vlb_2ch
cassette_mode = load
fdd_01_type = 35_2hd
cdrom_01_parameters = 1, atapi
cdrom_01_ide_channel = 1:0
fdd_02_type = 525_2hd
cdrom_01_image_path = /home/user/src/dos/magic_carpet_2/MagicCarpet/mc.cue
cdrom_01_type = 86BOX_CD-ROM_1.00
hdd_01_parameters = 63, 16, 1024, 0, ide
hdd_01_fn = drive_c.vhd
hdd_01_vhd_blocksize = 4096
hdd_01_speed = ramdisk
hdd_01_ide_channel = 0:0 -
Neilbob
Ooh, that could be worth a try. I'll give it a shot (when I have a few minutes).davidjao said:I assume you mean "Magic Carpet 2 - The Netherworlds" by Bullfrog Productions, Ltd. released in 1995. I don't know anything about this game, so I can't play it skillfully, but I am able to play it for as long as I want without glitches using 86Box.
86Box config is as follows. Operating system is MS DOS 6.22 with VIDE-CDD / SHSUCDX and CTMOUSE drivers, although I assume the classic OAKCDROM / MSCDEX / MOUSE.COM drivers would also work.
-
jp7189
Stealth VLB... chuckle. I still keep a Vesa local bus motherboard and a S3 Diamond Stealth VLB in a drawer for when I'm old and bored and feeling nostalgic.davidjao said:I assume you mean "Magic Carpet 2 - The Netherworlds" by Bullfrog Productions, Ltd. released in 1995. I don't know anything about this game, so I can't play it skillfully, but I am able to play it for as long as I want without glitches using 86Box.
86Box config is as follows. Operating system is MS DOS 6.22 with VIDE-CDD / SHSUCDX and CTMOUSE drivers, although I assume the classic OAKCDROM / MSCDEX / MOUSE.COM drivers would also work.
vid_renderer = qt_software
confirm_save = 0
confirm_reset = 0
confirm_exit = 0
host_cpu = 13th Gen Intel(R) Core(TM) i7-1365U
uuid = 56fe3928-d8a8-58da-b03a-5f3684acb78c
force_43 = 1
machine = 486sp3c
cpu_family = i486dx2
cpu_speed = 66666666
cpu_multi = 2
cpu_use_dynarec = 1
fpu_softfloat = 0
time_sync = utc
fpu_type = internal
mem_size = 16384
gfxcard = stealth32_vlb
mouse_type = ps2
fm_driver = nuked
sndcard = sbawe32
net_01_link = 0
net_02_link = 0
net_03_link = 0
net_04_link = 0
hdc = ide_vlb_2ch
cassette_mode = load
fdd_01_type = 35_2hd
cdrom_01_parameters = 1, atapi
cdrom_01_ide_channel = 1:0
fdd_02_type = 525_2hd
cdrom_01_image_path = /home/user/src/dos/magic_carpet_2/MagicCarpet/mc.cue
cdrom_01_type = 86BOX_CD-ROM_1.00
hdd_01_parameters = 63, 16, 1024, 0, ide
hdd_01_fn = drive_c.vhd
hdd_01_vhd_blocksize = 4096
hdd_01_speed = ramdisk
hdd_01_ide_channel = 0:0