WEBVTT

00:00:00.000 --> 00:00:04.560
When you think of an emulator, you probably think of something that allows you to play copies of games

00:00:04.560 --> 00:00:08.800
that you, of course, acquired in a totally legit way on a different system.

00:00:08.800 --> 00:00:14.400
So think a Game Boy emulator for your smartphone, or an N64 emulator for your desktop PC.

00:00:14.400 --> 00:00:18.640
And the fact that you need a special program to run these games makes intuitive sense, right?

00:00:18.640 --> 00:00:21.760
You're trying to run a game designed for a completely different piece of hardware.

00:00:21.760 --> 00:00:26.480
But hold on, because you need emulators for some of your old PC games too,

00:00:26.480 --> 00:00:34.320
even if you're trying to play them on another PC. I mean, sure, modern hardware is quite a bit faster than whatever you were using 20 years ago,

00:00:34.320 --> 00:00:41.680
but it still should be more or less compatible, shouldn't it? So why do you still need a program like, say, DOSBox to run your old game?

00:00:41.680 --> 00:00:47.920
Well, yes, we did give an overview of various reasons why new PCs often cannot run old games

00:00:47.920 --> 00:00:53.760
in this video. Right now, let's dig a little bit deeper and talk about why ostensibly compatible hardware

00:00:53.760 --> 00:00:58.800
can still require emulators. You see, back in the day, most computers used 16-bit architectures,

00:00:58.800 --> 00:01:07.680
both for their CPUs and operating systems, meaning that they handled data in 16-bit chunks and could address 2 to the 16th bytes of memory,

00:01:07.680 --> 00:01:14.400
so 64 kilobytes. This obviously wasn't very much, so later on, processors like the Intel 386

00:01:14.400 --> 00:01:18.960
introduced 32-bit computing, where systems could handle up to 4 gigabytes of memory.

00:01:18.960 --> 00:01:23.040
However, running old 16-bit software required a bit more work,

00:01:23.120 --> 00:01:28.960
as the transition to the 32-bit era introduced a couple of significant problems for older programs.

00:01:28.960 --> 00:01:33.120
One was that programs written for one architecture can't natively run on another.

00:01:33.120 --> 00:01:38.320
That is, a program written for a 16-bit system can't run on a 32-bit system without some tweaking.

00:01:38.320 --> 00:01:43.280
The other was that many 16-bit DOS applications ran in a processor mode called

00:01:43.280 --> 00:01:48.080
real mode, which allowed any program to access any portion of memory space,

00:01:48.080 --> 00:01:51.600
including portions of memory being used by other programs.

00:01:51.600 --> 00:01:56.560
This obviously meant that real mode had real security and stability issues,

00:01:56.560 --> 00:02:00.640
as there were no checks in place to make sure that a malicious or misbehaving program

00:02:00.640 --> 00:02:04.960
wouldn't get into other parts of the memory and threaten data or take down the system.

00:02:04.960 --> 00:02:09.920
So a new processor mode called protected mode became the norm in the mid-1980s,

00:02:09.920 --> 00:02:14.400
which isolated memory spaces from each other and gave programs different privileged levels

00:02:14.400 --> 00:02:18.240
to prevent programs that weren't device drivers or the operating system

00:02:18.240 --> 00:02:25.440
from executing certain instructions. However, lots of older programs could only operate in real mode.

00:02:25.440 --> 00:02:30.480
So combined with the 16- to 32-bit transition, 16-bit real mode had to be

00:02:30.480 --> 00:02:36.880
virtualized to a special mode called virtual 8086 mode that set up a virtual real mode.

00:02:37.440 --> 00:02:44.880
And yes, that's definitely an oxymoron. It's set it up by emulating an entire old-school 8086 processor.

00:02:44.880 --> 00:02:48.800
For a long time, having this capability was viewed as essential

00:02:48.800 --> 00:02:56.480
due to how common 16-bit programs were. Even in versions of Windows based on Windows NT, which didn't run on top of DOS,

00:02:56.480 --> 00:03:01.600
a built-in emulator called NTVDM allowed old-school DOS programs to run.

00:03:02.160 --> 00:03:08.400
NTVDM is present or can at least be installed in every 32-bit version of Windows NT,

00:03:08.400 --> 00:03:15.680
including Windows 10. However, NTVDM has its own issues such as low refresh rates, poor audio support,

00:03:15.680 --> 00:03:21.760
and an inability to slow down modern CPUs, which can make games run way too fast.

00:03:21.760 --> 00:03:29.040
But this still doesn't explain why old-school DOS games often won't run at all on new systems.

00:03:29.040 --> 00:03:34.000
The issue is that nowadays, most systems are shipping with 64-bit operating systems rather

00:03:34.000 --> 00:03:38.480
than 32-bit, primarily because they can support more than 4 gigabytes of memory.

00:03:38.480 --> 00:03:44.640
However, running a 64-bit OS requires an entirely new processing mode called long mode,

00:03:45.120 --> 00:03:49.680
which would have required Microsoft to build a whole new piece of software to virtualize a

00:03:49.680 --> 00:03:52.800
16-bit environment for running really old programs.

00:03:52.800 --> 00:03:58.400
And while 16-bit programs were still important when 32-bit computing became popular back when

00:03:58.400 --> 00:04:03.680
we were all using operating systems like Windows 95, they're basically considered obsolete in the

00:04:03.680 --> 00:04:10.080
modern era, so Microsoft simply did not bother re-engineering a built-in emulator.

00:04:10.160 --> 00:04:16.160
Therefore, 64-bit versions of Windows simply cannot run old DOS programs natively.

00:04:16.160 --> 00:04:21.440
So this is why, if you want to play old DOS games on your fancy new PC, you'll probably

00:04:21.440 --> 00:04:25.600
need a third-party emulator like DOSbox, that's had a lot more work put into it,

00:04:25.600 --> 00:04:31.120
with game support being a particular focus, making it a superior solution to NTVDM.

00:04:31.120 --> 00:04:38.400
And what's more, it's free. It's amazing how resourceful the gaming community can be when they're really determined to do

00:04:38.960 --> 00:04:43.200
Now if you'll excuse me, I've got a copy of the original Doom that's calling my name.

00:04:43.200 --> 00:04:47.120
So thanks for watching guys, like, subscribe, and be sure to hit us up in the comments with

00:04:47.120 --> 00:04:50.400
your own suggestions for what videos we should cover in the future.
