Why can most computers run modern games really well but extremely stutter when emulating old games

506 views

Why can most computers run games like RDR2, Cyberpunk, etc. Really fast but when emulating ps3/Xbox360 games it lags and can barely run it?

In: 690

20 Answers

Anonymous 0 Comments

to put simply, one is simulating a game, other is like simulating a game running another game.you can think it as writing a book.

when someone asks you to write a book, it is hard. but **imagine you are asked to write a book where your main character writes a russian book**.

so now you have to deal with another story embedded inside your story and it is also in a language you don’t know and it takes longer because you keep checking the dictionary.

Anonymous 0 Comments

Another thing that I haven’t seen mentioned is that many of those emulated games didn’t run especially well on the original hardware, either. In the PS3/Xbox 360 generation games running at a 720p resolution and capped at 30fps was the standard. If you can emulate one of those games at, say, 1440p and 60fps, then your PC is actually running the foreign instructions significantly better than the original hardware the games were built for. That’s basically pushing out 8 times as many pixels per second as the original hardware.

Anonymous 0 Comments

The issue here is not age, but emulation.

Console games are built to run on their respective consoles. On them, they can run optimally, because the system architecture of your average console doesn’t change significantly over its lifetime. Sure, you might have increased storage, or a newer model of the same processor, but generally, the system architecture stays the same.

A game that is released both for console and PC generally runs better on console, because the devs know exactly what system to expect on console. However, a PC game has to be able to run on any system configuration that can realistically run the game. This means you can’t optimize it for one setup, as this reduces performance on everything else.

Emulation has a similar issue. Unlike with a direct port, when you emulate games, you essentially make the game think it runs on console when it isn’t. However, this is just not what is happening. With older games, and i mean anything before the 1990s, this is not an issue for most people. Sure, the emulator might not be 100% accurate, but unless you’re a speedrunner, these tiny deviations probably don’t impact your experience. However, when you get into the 2000s, and consoles reach a realm where their processing power is, at the very least, comparable in order of magnitude to modern PCs, even if your average purpose-built gaming PC blows a PS3 or an XBox 360 out of the water in terms of power, these differences add up.

One example of this is found in the WiiWare version of Mario 64. In this game, there is a type of platform that moves up and down in a repeating cycle. Or at least, it’s supposed to. And while it does on the original hardware, in the WiiWare version (which is also just emulation at the end of the day), there is a bug where, due to a rounding error that occurs because the Wiis processor rounds differently from the N64s, the platforms will slowly (and i mean over the course of several hours) migrate upwards, as they move upwards a tiny bit more than they move downwards.

Of course, you could instruct the Wiis processor to use the correct rounding type here, but since this bug won’t ever affect the vast majority of players, and it would decrease performance to fix something that is so obscure, the devs probably didn’t know about it until a speedrunner found it by leaving his Wii running overnight by accident, it’s not worth doing. If this bug were more pronounced, however, they would have to make sure the emulator processes this properly. Of course, with a game like, say, Pokemon Yellow, which is, quite frankly, primitive by today’s standards, even if it was quite a feat back then (and also quite a broken mess), these slowdown are barely noticable, because a modern computer could run this game without flinching. Play something like RDR on an emulator though, and these tiny slowdowns add up, because the game is orders of magnitude more complex.

Anonymous 0 Comments

Consoles are not PCs. They have very specialized, specific hardware that serves very specialized, specific purposes and before a PC can run those games, it has to first *emulate* the environment of the console, *then* run the game through that emulation.

When you run that same game on the console it was originally designed to run on, it doesn’t have to emulate anything.

Emulation can be costly. It’s an entire process your device has to run in addition to running the game.

Running just the game = smooth.

Running game through emulator = extra work = less smooth.

Anonymous 0 Comments

Emulating a game is basically translating the game into another language.

So, say, for example, the command on the console was “output (“Hello World”)” to print the worlds “Hello World” to screen. In the computer however, the command may be “print “Hello World”;.

So you need to translate from one to the other, IN REAL TIME. The real time is hard enough, but it gets harder when the commands get significantly more complicated.

For example, the console probably had specific commands for drawing things, resizing sprites, rotating sprites, etc. The computer likely does not have these same commands. Because why would it? The computer does not really ever have to resize or rotate sprites. Modern 3d graphics don’t work the same way. So say, rotating a sprite may be easy on the console, but EXTREMELY time consuming, or requiring many commands to do so on the computer.

Of course, this is all high level. In reality we’re converting from one INSTRUCTION SET to another. And those instruction sets are VERY specific to the hardware built. This is the reason why intel and AMD processors for your computer aren’t interchangeable.

Anonymous 0 Comments

Two reasons.

First reason is translation. In terms of emulation, not all systems are built on the same architecture. In basic terms you can think of this as a default baked list of operations in a chip. That means they have to be translated over to run on your chip, and this translation is done in real time. This is a performance hog.

Second reason is individual core speed. Ive noticed cpus went more in the direction of higher core counts over clock speed. Base clocks as low as 2ghz. Especially when you are doing those translations mentioned above, clock speed is important. A 4.5ghz quad core would slap a 3.2ghz octacore out of the water for a task like this. This is especially a problem with devices like laptops where thermals are infamously bad and requires the cpus installed often to run at the base clock, which is often in the 2ghz range, unless you want your laptop to turn in to an aircraft and lift off.

Anonymous 0 Comments

A CPU core is like a handyman in his garage. Me for instance. I have plenty of tools, a workbench and I can make most things if I need to. For example, I could make a birdhouse.

If you ask me to make many birdhouses, I would do them one at a time because I only have one set of clamps and regular wood glue that needs a few hours to cure before removing clamps.

A modern CPU and well structured program might split the job over multiple cores. Make 4 different handymen make two birdhouses each.

A modern computer will also have GPU, which is a processor with hundreds of simple cores that are good at doing simple tasks quickly in parallel. For example, if you wanted to decorate 100 birdhouses with fun paint designs, rather than have your handymen do it one by one in their garage, it’d be faster to take them all to a local daycare or school and let the kids paint them all during crafts time. *Casually passes over implications of child labour*.

That’d be more equivalent to how a GPU would work. GPUs are great at determining what color and brightness are needed for every pixel of a screen using mathematical formulas for shaders, reflections, etc. They’re relatively simple jobs for a CPU, but it just takes too long for a CPU to do all of those low-skill tasks.

A gaming console also has a GPU-like processor for the final output step, but where they really deviate from computers is in CPU design. They don’t need a jack of all trades handyman of a processor. Gaming console processors get to be specialists.

A gaming console that makes birdhouses would be more like an assembly line. It’d be a few complex, dedicated machines. You feed in a wood board, it planes, sands, cuts, and glues it into a birdhouse. It has a fast-curing glue and it uses infrared lasers to speed up glue-curing. Birdhouses pop out one every two minutes. Another machine cuts dowels and feeds a peg into front face. A third machine applies paint.

When the console developer makes a new game, they design custom settings and tooling for the machines, and now instead of making birdhouses it makes jewelry boxes. Same machine, different settings.

When a third party developer wants to make a game, they have to get their hands on a set of these machines (they have to go buy a few consoles and an instruction manual on how they work), figure out how they could make special tools and settings to make their product. It takes them a bit longer, but they figure it out, and now they can sell the programming and tool set that gets the machine to make something new entirely like a wooden stool.

As the years go on, both first and third party developers learn to use the machines better and more efficiently to make better games. They often find the weaknesses to avoid and the quirks of the machines that let them do some pretty cool things. Perhaps the part of the machine originally designed to drill holes in the birdhouse can be fit with a rounded router bit instead of a drill bit, and with some clever programming can be used to articulate and act more like a CNC. With that, a third party developer makes a program and tool set that makes intricate wood carvings. It’s not as good as a purpose built CNC machine, but it’s pretty damn good for a machine sold 6 years ago.

When a developer makes a cross platform game, they have to figure out how to get their game to run on each different platform’s infrastructure. On an Xbox they needed to figure out Microsoft’s architecture. On a Playstation they had to map it all to Sony’s. On the Nintendo Wii, they needed to repeat it but also find a way to integrate the Wii’s unique controls.

When developing for PC, it’s a different ball game entirely. They need to figure out how to make the game run smoothly on a jack of all trades CPU, and which tasks to offload to the GPU, etc. The developer often has different teams of programmers specializing on each platform, because they’re fundamentally different. It’d be like a lifetime automotive design engineer trying to design a boat. Sure they could figure it out, but they have to think fundamentally differently. That’s why there are so many exclusive titles, and why there are a lot of games available for consoles but not PCs, and an order of magnitude more for PCs but not consoles.

So why can’t PC’s run old Xbox games? It’s because that old xbox game was using a birdhouse assembly line to make birdhouses. The PC is super powerful and fast, but it’s fundamentally different from an assembly line.

The emulator acts as a middle man. It gives the CPU instructions to “build and operate a virtual xbox”. In our analogy, that’d be like telling me to “build and operate a birdhouse assembly line in your garage”. That’s a lot harder of a task than building birdhouses, and would use a lot more power and space than making birdhouses.

The only other alternative would be to fundamentally change the game as you port it to Xbox. If you had the skills and resources to custom port an old game to run on PC, you would be better off just using those skills to make a living as a game dev instead of risking your future to copyright infringement and IP theft charges.

Anonymous 0 Comments

For 2D games in particular, a significant component is converting 2D pixel map in low resolution to something that would be visually pleasing in high resolution.

Essentially, in old 2D programming you would have direct access to the image as a 2D array of pixels, and expect the graphic card to do all the job for you. Mind it that the pair “CRT monitor/video card’ was quite powerful, as it would allow different 2D resolutions out of the box natively (not something possible with LCD anymore), and with physical CRT effects (some blur, some stay power, etc.) making the picture considerably nicer than on comparable LCD display.

With modern emulators, this is no longer feasible. As a result, typically there is a library where a picture would be formed already upscaled/preprocessed for the output. Which modern computers can do very efficiently, but often quite differently from how it was done 30 years ago, so in some cases the cause of freezing would be in this graphic output module.

Anonymous 0 Comments

Computers have not gotten faster since the mid 2000s. They’ve gotten bigger. They can run a whole lot more processes per second than an old computer. But its not doing any of those processes faster. An old game can’t use that breadth of power, and by running it on an emulator you’re forcing it to do 2 or 3 additional processes for every one it would have before

Anonymous 0 Comments

Normal games have normal access to your hardware. Emulation involves virtualizing the emulated console itself, adding an abstracted hardware layer before your actual hardware. So your computer is running it’s normal OS, the OS of the emulated game console, and the emulated game itself whereas normal games just involve your OS and game.