Why can’t new hardware simply run old software?

341 views

I downloaded an old PC game onto my laptop and had to use DOS Box to run it, because Windows 11 wouldn’t allow a 16-bit application to run.

Why is it that a much more powerful laptop can’t deal with software my PC had no problems with 20 years ago? Same thing with backwards-compatible video games.

In: 3

12 Answers

Anonymous 0 Comments

The issue here isn’t the hardware. It’s the operating system standing between the program and the hardware.

The program needs to ask the OS for many things, such as memory in which to store data. The OS needs to be able to understand these requests.

Modern iterations of Windows aren’t designed to be backwards compatible in that way because it would be complex and costly to implement, not really be something people care all that much about, and has a simple alternative: emulating an old OS and running the program there, which is what you’re doing.

Anonymous 0 Comments

It’s not the hardware. It’s the OS. You kind of answered your own question there. It’s not that Win11 wouldn’t “allow” it, it’s that windows 11 no longer includes the code to allow 16-bit compatibility, because literally no one cares about that stuff anymore. By installing Dosbox you added that functionality back into your installed OS.

Anonymous 0 Comments

In order to run 16 bit software, the environment it ran in – DOS, and the BIOS that came with PC hardwares – needs to be provided as well. Also the actual hardware, like a VGA graphics card and how it worked. That’s not available directly, so software must be written to fake it.

Microsoft gave up on that a LONG time ago. They don’t do that any more. You’ll need DOSBOX to provide it instead.

Anonymous 0 Comments

>Why is it that a much more powerful laptop can’t deal with software my PC had no problems with 20 years ago?

It can. If it couldn’t, DOSBox wouldn’t have helped. But software needs a compatible operating environment in which to run. There comes a point where maintaining compatibility in newer versions of the OS stops being cost effective to support, so it gets dropped.

Games consoles are a different matter, as not only are their software environments different but often their hardware architecture too – the chips effectively speak different languages, so code written for one will be incomprehensible to the other, even if it is more powerful. (Some recent systems, like PS4/5 and the entire XBox line have adopted more PC-like architecture, and differ less from each other, which is one of the reasons they’ve seen better cross-generation compatibility).

Anonymous 0 Comments

Operating systems run on a set of instructions that are essentially equivalent to being able to speak a certain language. Lets say modern operating systems ‘speak’ English, and older ones ‘speak’ German.

Your 20 year old game was designed to run on an operating system that speaks German. When you try to feed it into an English speaking operating system, your computer doesn’t know what to do with it because it can’t read German.

The reason the game works when you run it through DOS Box is because DOS Box is literally acting like a language translator. It’s taking the game written in German and translating it into English so your computer knows how to read it.

It has nothing to do with how ‘powerful’ your computer is. You can have a ‘English speaking’ super-computer but if you feed it a nursery rhyme written in German, it still can’t read German.

Anonymous 0 Comments

16-bit CPUs processed data in 16-bit chunks. Their input and output buffers are literally hard-wired with 16 little conductors that pass binary strings 16 bits in length.

Operating systems and software are compiled to be compatible with particular CPUs, or CPU class specifications.

As CPU bit-lengths grew, it became too onerous to compile operating systems and software to accomodate them all. So the operating system you run now won’t understand the insructions the old software tries to send it because it isn’t designed to process instructions of the word length that the software provides.

Anonymous 0 Comments

Those old 16 bit DOS PCs didn’t run 8 bit software from CP/M either… those bastards, just to make us buy new stuff.

Anonymous 0 Comments

Can you read/ write in cuneiform? Or hieroglyphics?

Why not? After all these are old methods and you are a new person…

This is the same reason that Windows11 no longer bothers to invest in deciphering 16 bit applications either.

If you absolutely have to run it, then get an emulator.

Anonymous 0 Comments

OS’ generally only support 2, maybe 3 generations of bit architectures. We’re on 64bit now, with support for some limited 32bit (Program files(x86)), and we’ll likely see removal of 32bit, before we see 128bit going forward.

Anonymous 0 Comments

Your problem is not the hardware it is the operating system.

Think of it like a sandwich or a burger or some other food related stack. The operating system runs on top of the hardware and the application runs on top of the Operating system.

The hardware is at the bottom, the OS in the middle and the app on top. The app never speaks directly to the hardware (normally) it only talks to the OS. You can switch out the bottom layer without affecting the top one since they don’t touch.

You could totally wipe your laptop and install old MSDOS 6.21 or Windows 98 as an OS on it and your old game will run on that.

You might even Install a 32-bit version of Windows 10 on the laptop and get your 16-bit application to run on that if you are lucky.

The hardware isn’t really the problem. the problem is that the application was designed to run on a certain OS and expects parts of the OS to be there.

If you are running Windows as an OS you can run old applications from quite some time ago, but there are limits.

For example a 64-bit windows OS will only run 64 and 32 bit apps. The old 16 bit stuff from the 90s will no longer run on modern 64 bit windows OS directly.

You can however still run the old stuff on your new 64-bit OS via virtualization. This mostly involves adding another layer to the stack described above. a piece of software that pretends to be Hardware to the layer above it and allows you to install different and old operating systems to run on the fake hardware.

You can run an entire fake computer on your computer and run the old OS and software from over a quarter of a century ago on that.