1
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

2
00:00:04,560 --> 00:00:08,800
that you, of course, acquired in a totally legit way on a different system.

3
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.

4
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?

5
00:00:18,640 --> 00:00:21,760
You're trying to run a game designed for a completely different piece of hardware.

6
00:00:21,760 --> 00:00:26,480
But hold on, because you need emulators for some of your old PC games too,

7
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,

8
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?

9
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

10
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

11
00:00:53,760 --> 00:00:58,800
can still require emulators. You see, back in the day, most computers used 16-bit architectures,

12
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,

13
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

14
00:01:14,400 --> 00:01:18,960
introduced 32-bit computing, where systems could handle up to 4 gigabytes of memory.

15
00:01:18,960 --> 00:01:23,040
However, running old 16-bit software required a bit more work,

16
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.

17
00:01:28,960 --> 00:01:33,120
One was that programs written for one architecture can't natively run on another.

18
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.

19
00:01:38,320 --> 00:01:43,280
The other was that many 16-bit DOS applications ran in a processor mode called

20
00:01:43,280 --> 00:01:48,080
real mode, which allowed any program to access any portion of memory space,

21
00:01:48,080 --> 00:01:51,600
including portions of memory being used by other programs.

22
00:01:51,600 --> 00:01:56,560
This obviously meant that real mode had real security and stability issues,

23
00:01:56,560 --> 00:02:00,640
as there were no checks in place to make sure that a malicious or misbehaving program

24
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.

25
00:02:04,960 --> 00:02:09,920
So a new processor mode called protected mode became the norm in the mid-1980s,

26
00:02:09,920 --> 00:02:14,400
which isolated memory spaces from each other and gave programs different privileged levels

27
00:02:14,400 --> 00:02:18,240
to prevent programs that weren't device drivers or the operating system

28
00:02:18,240 --> 00:02:25,440
from executing certain instructions. However, lots of older programs could only operate in real mode.

29
00:02:25,440 --> 00:02:30,480
So combined with the 16- to 32-bit transition, 16-bit real mode had to be

30
00:02:30,480 --> 00:02:36,880
virtualized to a special mode called virtual 8086 mode that set up a virtual real mode.

31
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.

32
00:02:44,880 --> 00:02:48,800
For a long time, having this capability was viewed as essential

33
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,

34
00:02:56,480 --> 00:03:01,600
a built-in emulator called NTVDM allowed old-school DOS programs to run.

35
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,

36
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,

37
00:03:15,680 --> 00:03:21,760
and an inability to slow down modern CPUs, which can make games run way too fast.

38
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.

39
00:03:29,040 --> 00:03:34,000
The issue is that nowadays, most systems are shipping with 64-bit operating systems rather

40
00:03:34,000 --> 00:03:38,480
than 32-bit, primarily because they can support more than 4 gigabytes of memory.

41
00:03:38,480 --> 00:03:44,640
However, running a 64-bit OS requires an entirely new processing mode called long mode,

42
00:03:45,120 --> 00:03:49,680
which would have required Microsoft to build a whole new piece of software to virtualize a

43
00:03:49,680 --> 00:03:52,800
16-bit environment for running really old programs.

44
00:03:52,800 --> 00:03:58,400
And while 16-bit programs were still important when 32-bit computing became popular back when

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

46
00:04:03,680 --> 00:04:10,080
modern era, so Microsoft simply did not bother re-engineering a built-in emulator.

47
00:04:10,160 --> 00:04:16,160
Therefore, 64-bit versions of Windows simply cannot run old DOS programs natively.

48
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

49
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,

50
00:04:25,600 --> 00:04:31,120
with game support being a particular focus, making it a superior solution to NTVDM.

51
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

52
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.

53
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

54
00:04:47,120 --> 00:04:50,400
your own suggestions for what videos we should cover in the future.
