Emulation

I'm a bit of a brainlet and don't understand a whole lot about how consoles or vidya work.
Can somebody explain to me why emulation can be so hit or miss? Like surely computers these days are powerful enough to be able to run PS2 games with no issue right?
Even if it isn't the same hardware shouldn't they still be able to brute force it or something? Why is emulation so finicky?

Also feel free to talk about anything you've been emulating recently.

Attached: Dolphin.jpg (900x900, 47K)

Other urls found in this thread:

emulation.gametechwiki.com/index.php/High/Low_level_emulation
twitter.com/NSFWRedditGif

Madara Uchiha.

Attached: file.png (505x815, 306K)

Which one are we talking about?

I've tried to emulate Crash Nitro Kart but for some reason the controls are fucked in every version

So I’m assuming you’re 15 or 16 so here is your spoon feed

The programs that emulate consoles are written by teams of autists in their basements collaborating through Forums.

By scratch they write the software. Most consoles have custom hardware that are specifically designed to play these games.

Since the developers have to guess on how to design it since there isn’t accurate documentation available, it can be a crapshoot.

Since our PC hardware is also running an OS, and then this emulation software our hardware has to be substantially better than the system we emulate

It’s surprising with these qualifiers emulation is even as good as it is

Attached: Emulating an instruction.png (1200x2600, 151K)

emulation.gametechwiki.com/index.php/High/Low_level_emulation

PS2 emulation is so spotty because of the way the hardware works and subsequently needs to emulated and there's comparatively low interest in improving on it as a result.

To expand in my post. If you have retard code, even adding a supercomputer would run the retard code poorly.

The emulator needs to be written better so more games play better. However since documentation isn’t there, a lot of devs even the PCSX2 ones lose moral and just being able to play from start to finish is good enough

Here's why some emulators run well and others don't. Emulators rely on the fact that instead of software working directly with hardware, it creates another layer of software, in which the software (ISOs, ROMs, etc.) runs on another software, which is being run as it reinterprets the hardware (your hardware) to a version the software can understand. The reason why some emulators run better than others is because of documentation. Things like the SNES, NES, and GameCube were made with popular, well-documented processors that make it fairly easy to reverse engineer the rest and create a good emulator. In contrast, the N64 and PS2 have proprietary, poorly-documented hardware that make it very hard to create an accurate emulator.

Best answer. Architectural differences cause most of the issues

Why did Microsoft and Nintendo use the weirdo PPC platform in the Gamecube, Wii, and Xbox 360?

Ok so I'm pulling the 1s and 0s out of my asshole, but imagine that requesting something like a = b + c on SNES hardware looks like 0001100101110011 (which would make the cpu draw two values from some places and save their sum to a third place). Now if you send the same set of signals to your PC's processor you won't get jackshit, because it's physically built to understand a completely different set of commands than SNES. So instead you have to code a program which simulates the way SNES works which then interprets commands from SNES games. Massive, massive overhead.

Why did you capitalize the word "Forums" like an autist?

The problem with emulation today is people recommending old as fuck emulators that are shit.

Here's the best emulators:

SNES: USE HIGAN ZSNES IS SHIT
PS1: Use Madnafen
PS2: literally buy a fat PS2 and soft mod it then install games to it's HDD PCSX2 is shit
3DS: Citra
Saturn: Madnafen

PS2 emulation is spotty because they do bandaid solutions

a lot of irony in this post

People still use ZSNES? There's a few ROM hacks that literally have special instructions for ZSNES that say you can't use ZSNES for it.

People are literally retarded and haven't looked into the emulation scene since they downloaded ZSNES 10 years ago

Because phone posting

The basic architecture that powers your PC is very different from the dedicated stuff they use in consoles. Your PC was built for generalized computing. Consoles were built for very specific sorts of calculations needed in rendering games. Even if the marketing numbers say your PC is technically stronger, the PS2 was just built to do a lot of stuff directly on the hardware instead of trying to pass shit through software simulation (which is what emulation is).

This is getting less and less relevant over the years. The PS3 was the last console to have really "dedicated" architecture (which is what made it so expensive and nogaems early in its lifecycle).
More recent consoles are basically just x86 PCs in fancy boxes. Expect future emulation to be almost flawless.

Attached: 1497676231485.jpg (960x619, 133K)

The PS2 used some crazy processor called the "Emotion Engine" developed by Sony and Toshiba. I'm guessing it would have had its own unique set of instructions. Instructions are the most basic thing the processor understands. You know how people talk about 64 bit processors? That means that the instructions for that processor are 64 bits (binary integers) long - that is, a string of 64 ones and zeroes ("ones" and "zeroes" actually meaning two different voltages, 0 volts and then somewhere around 1 volt, depending on the chip, and depending on the current load).

Your typical desktop or laptop uses a processor with the x86 instruction set. So like you can see here - - an emulator consists of a bunch of code that tries to translate an instruction from one instruction set into something that would mirror its function, as closely as possible, on your desktop PC x86 instruction set. Essentially you are trying to backwards engineer an implementation of that instruction, in your own code, which will then run on your x86 architecture, such that the end result when running a game is the same as if you were running on the native hardware.

But yeah, the PS2's "Emotion Engine" probably has some crazy proprietary instruction set which has never had public documentation released. I don't know though, I'm guessing. But the Gamecube, Wii and Xbox 360 use the PowerPC instruction set (IBM processors), and that instruction set probably has had public documentation released, because it was also used in personal computers (e.g. Apple Macs were all PowerPC up until around 2006 or something).

PC games, even old ones, have the advantage that the vast majority of desktop PCs (especially those that ran Windows or, earlier, DOS) have used the x86 instruction set for decades. It has been extended since, but I assume all the original instructions are still there. So an old game will still work on a modern processor without any emulation required.

I appreciate the responses.
Guess there's a lot more to it than I thought.

Let's see if I can bastardize a food analogy out of this.

>have a lasagna
>want to emulate a hamburger
>the lasagna needs to be able to hold the weight of the hamburger, while still being a functional lasagna.
>if the hamburger is too big, the lasagna will be crushed
>if the hamburger tastes too funny, and the lasagna doesn't put a proper buffet inbetween it and the burger, both of them will taste horrible
>this is even worse when it's some special snowflake dish made by some pretentious hipster and it doesn't even taste good on its own, let alone ontop of a lasagna

Now, add onto this the fact that the chefs don't have the recipe for the hamburger, so they have to guess what it's made out of. If they actually had the official recipe, companies would sue for illegal reverse engineering. That's why they have to remake it from scratch.

Attached: 1557698219142.jpg (686x751, 54K)

>PS2
To be honest most of the important PS2 games (GTA III, VC, SA) are on PC anyway. Same with a lot of the popular multiplats of the time like Tony Hawk and Need for Speed. Also some multiplats that didn't come to the PC (e.g. TimeSplitters 2) did come to the Gamecube, so can be played on Dolphin.

VITA EMULATOR FUCKING WHEN

>More recent consoles are basically just x86 PCs in fancy boxes. Expect future emulation to be almost flawless.
But it isn't that simple is it. The OG Xbox famously hasn't had anywhere near good emulation for years, and I think from what I've heard (I'm no expert on computer hardware at all but this is what I heard) it has a special API, modified from DirectX, and that's one reason why emulating has been challenging. Although also there's the fact that most of the Xbox's most popular exclusives (Halo, Halo 2, KOTOR) were released on PC as well so I guess this probably meant there was less effort put into making a good Xbox emulator.

it's being worked on slowly

I've found a quick Google for best settings/plugins for the game you want to play in particular helps you play most games on ps2 emu. There's a bit of fucking around and it will probably never be perfect but shit is so cash. Playing persona 3 atm and it runs great on a cucked Intel notepad (poorfag hence pirate).

It has 3 games that haven't been ported elsewhere that are worth checking out.

How do you emulate Android at 60 FPS????

Attached: 33481015d04b3974f9ed7acf616592901b13507ebdabf48ee1d6d09d63acc2c4.jpg (800x450, 53K)

if you want the real brainlet analogy answer, think of each console like a different language and the emulator is like a translator. it takes a lot of work for a translator to be able to do their job really well, and some languages are fucking bullshit and take a ton of work to learn

i've always found it weird how xbox emulation never took off

wasn't it supposed to be the 6th-gen console with the most pc-like architecture of the bunch?

Isn't EE just a custom MIPS CPU?

fucking nvidia, there's a bunch of articles about why it's happened extremely slowly

It's finicky as it's akin building a complete computer in software, usually without any kind of documentation nor help from the original devs. Systems like the PS2 are hard to make an emulator for because they use a lot of non-standard parts. Even people with proper documentation had a hard time even writing software for the thing.
It's almost 100% an R&D problem. Dolphin works so well as the GCN and Wii use PowerPC which is very well documented and people wanted to play it's exclusives. The PS2 used almost 100% custom parts and didn't have that many big ticket exclusives, so people didn't sink as much time into it.

The average person doesn't have access to console design documentation.
Building an emulator for such systems is effectively trying to solve a problem where you don't know most factors, thus regardless of how much processing power you have on hand your computer won't be able to do much.
Another problem is that many architectural designs are fundamentally different to the way desktop CPUs work, and attempts to bridge the gap may result in solutions that are painfully inefficient.

Mednafen is outdated, it's been replaced by Beetle in Retroarch

Snes9x is also almost as good as Higan, but 10x less demanding

People still use ZSNES and ePSXe and there's no amount of pestering any of us can do to change that because their users do not care to be reasoned with.

No-one

I think ZNES is probably the one I used back in about the year 2000, a very long time ago.

I hadn't heard of Higan but I might check it out. The one I've used in the last few years is Snes9x because it comes bundled with OpenEmu on MacOS, and also there is a port for it on PSP, and I've played SNES games on that.

>Snes9x is also almost as good as Higan, but 10x less demanding
That's good to hear the one I've been using is good then. I'll try Higan but maybe it won't run that well on my not-exceptionally-powerful MacBook.

Autism
Xbox was too irrelevant to be emulated