• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

RPCS3 Is A New PS3 Emulator, Still In Early Stage, Boots Commercial Game

Occam

Member
It will be really interesting to revisit this thread in 10+ years when the PS3 emulator is actually playable. It will be like a time capsule. How many grey names will there be? Will we be playing PS5 then? What's going to become of the video game industry? Will the current big three still exist and still be in the video game console business? Will Amazon be successful? By then we'll know. Interesting times ahead.
 

FourMyle

Member
It will be really interesting to revisit this thread in 10+ years when the PS3 emulator is actually playable. It will be like a time capsule. How many grey names will there be? Will we be playing PS5 then? What's going to become of the video game industry? Will the current big three still exist and still be in the video game console business? Will Amazon be successful? By then we'll know. Interesting times ahead.

You forgot the "FIND OUT NEXT TIME ON DRAGON. BALL. Z!"
 
It will be really interesting to revisit this thread in 10+ years when the PS3 emulator is actually playable. It will be like a time capsule. How many grey names will there be? Will we be playing PS5 then? What's going to become of the video game industry? Will the current big three still exist and still be in the video game console business? Will Amazon be successful? By then we'll know. Interesting times ahead.

You'll be quoted ironically I'm sure. :p
 

spons

Gold Member
This is exciting news. If this takes off with some good developers on the team we'll be set in a couple of years without needing to scavenge the few physical consoles still in working order. Since that Netflix-like streaming thing will use actual PS3 hardware we won't see any quality improvements? This sounds like a better alternative as we can actually own the games either way.
 

Alo81

Low Poly Gynecologist
If that code is the one I'm thinking of, it actually halves the game speed and then you have to run the emu at double speed which causes all sorts of other issues.

That was the original one. There is another one that just unlocks the framerate to 60fps.
 

cheezcake

Member
What kind of background knowledge and education do you need to make something like this?

I assume it's more than knowing C++

Some decent knowledge of low level computer architecture (instruction set architectures, interrupt handling etc) and most importantly access to hardware documentation on the system you're trying to emulate.

Source: Wild guesses from an electrical engineering student
 
Dont expect this to run at half decent fps on your rig before 2020.

That said, can't wait to play Bayonetta, RDR with glorious visuals in the next decade.
 

Thorgal

Member
You have absolutely no idea just how significant this is.

I do understand very well what an achievement it is to get a ps3 game to actually boot up like this .

I was commenting on the low frame rate on the display and Dario already clarified that it is only running on a interpreter above .
 
What kind of background knowledge and education do you need to make something like this?

I assume it's more than knowing C++

Not a programmer but probably

- Having sufficient documentation about what you're emulating
- Knowledge about how the hardware of the console works
- Knowledge about the software that the console runs

Sort of unrelated but also related is blueshogun96's (creator of some of the only Xbox emulators) post on Xbox emulation

blueshogun96 said:
"Xbox is just like a PC, it's easy to emulate!"

Yes, we've all heard this silly and pointless argument a million times and it usually ends in the same, and rather ignorant conclusion (or should I say assumption) that just because the Xbox is PC similar, it's hardware should be relatively easy to emulate. That's a very wrong frame of mind. How hard can it be? Very. Xbox's hardware is very complex and still poorly documented to this day. This requires some explanation.

1. Is a PC easy to emulate? Well, I wouldn't say so myself. Take a look at the source code from bochs. A lot of source code/work isn't it?

2. Emulating an x86 CPU is a lot harder than it sounds. I don't know where this mindless assumption comes from. Yes, there's loads of documentation on how the x86 processor works, but that doesn't exactly make it easy. First of all, the x86 instruction set is M-A-S-S-I-V-E! There can be at least 20 different versions of one instruction (i.e. There are many different versions of the MOV instruction, as well as INC, DEC, ADD, SUB, SHR, SHL, AND, OR, XOR etc.) and it takes time to implement them all. Of course, that's not exactly difficult. The real problem is that any modern x86 processor including the Pentium III can execute multiple instructions at once. So it's not like emulating a Z80 doing one instruction at a time. The actual algorithm and how x86 does this is undocumented and still unknown. In short, the Xbox's CPU can be emulated, but not accurately.

3. Emulating any hardware by NVIDIA is not a walk in the park! The Xbox's GPU, the NV2A is often assumed just a GeForce 3. It's not! It's similar but not identical. It has some GeForce 4 capabilities too, so it's more of a cross between an NV20 and NV25. This is by no means easy to emulate either. NVIDIA's GPUs have very large register sets and afaik not even half of them have been discovered, and a large portion of known registers have unknown purposes. There is little to no documentation on how NVIDIA GPUs work. The best thing to do is to look at similar GPUs such as RIVA, TNT, and older GeForce cards. Some registers are similar, but not identical. The best place to look for information is in open source drivers available on the net. Adding to the dificulty is that no one has ever discovered how pixel shaders work on NV2x cards, vertex shaders yes though. The Xbox GPU also has exclusive registers that are not found in other GeForce cards. Information on the NV2A's GPU registers are just now beginning to be discovered a few months ago. And yet, there's still a long way to go. The GeForce 3 series is the most mysterious of all NVIDIA GPUs (G7x and G8x aside) and the NV2A is alot worse. "But can't you just directly execute the NV2A instructions on another NVIDIA card?". No, I get alot of questions concerning this, and it is impossible. It's MMIO addresses are different and the exclusive registers must be emulated. Plus, in windows, we don't have ring 0 access anyway, so you all can scratch that idea now. Then comes the NForce 2 chipset. This is where it get easier. The NVIDIA MCPX is the control center for things such as audio, USB for input, Network adapters, PCI, AGP, etc. These things are not really that difficult to emulate IMO except for the audio.

4. The Audio system is rather complex. Xbox's audio consists of at least 4 DSPs, and audio codec (AC '97) and an NVIDIA SoundStorm APU. The DSPs shouldn't be a problem (just figuring out what they all are is) nor should the AC '97 but the NVIDIA SoundStorm APU is the really difficult part. So far I haven't found any information on this thing, but right now, it's relevance is low.

5. The Xbox BIOS isn't fully understood. The basic execution process of the BIOS is understood, but details on the process are at a loss. What we do know gives us hints, but before the BIOS can be emulated, we'll need a better understanding of the Xbox hardware layout because the BIOS does some unknown hardware initialization at boot time and writes to the hardware directly without using any XDK stuff. It will take some time, and effort, but I'll eventually get it working.

6. Video Encoder "Hell". Instead of using a RAMDAC for video output, the Xbox uses a Video Encoder. What makes this suck a pain? Microsoft sought the need to change the video encoder every other Xbox version (there are seven in all, 1.0 - 1.6). Why, I dunno, it's a Microsoft thing, they always tend to try to "fix" things that aren't broken >.> AFAIK, there are at least 3 different Video Encoders used: Conexant CX25871, Focus FS454, and Xcalibur. For more information in Xbox video encoders, click here. Emulating all three video encoders is only less than half the battle, the real problem is that BIOSes can be specifically tied to a specific encoder depending on it's version (don't quote me on this though). Like PS2, every Xbox model revision has a updated BIOS and has different expectations. This is a potential problem, but not exactly major.

Basically, I'm trying to get this "Xbox should be easy to emulate because it's just like a PC" crap out of your heads. I'm sure that most of you will disagree with me on this, but for these reasons and more, on a low level, Xbox is harder to emulate than PS2.

^ The exception to that above is that the NV2A is much better documented now, but not fully. There's an open source library for the OpenXDK called pbKit. It interfaces directly with the hardware to fully expose it's potential. This is what Microsoft should have done all along (or at least wrote a low-level OpenGL implementation)
 
Disgaea 3:

videotest.png


video2.png

This is crazy. And brings back so many memories of first DC, N64 and PS2 emulators only launching title screens of some shitty 2D games at 5 fps. The rest is history.

It has begun and wow I cannot wait to replatinum Demon's Souls in full HD with anti-aliasing and nVidia's 3D.

Can you imagine TLOU in 1920x1080? It will happen sooner or later. The baseline - a working PS3 emulator, even if slow like shit - is finally there.
 
Since the PS4 and Xbone are largely based on off the shelve components, does anyone think we might see emulators for them in the next 1 or 2 years? They have to be easier to emulate than the PS3.

Being made from "off the shelf parts" isn't as meaningful as you'd think. And X86 doesn't turn emulation into some easy task. See the original Xbox.
 

JNT

Member
What kind of background knowledge and education do you need to make something like this?

I assume it's more than knowing C++

Emulation, at its core, is remarkably simple to do once you know how to write programs (if you are interested, Google CHIP-8 emulation tutorial).

However, it's not really the emulation that is difficult to do when writing an emulator; It's understanding a given architecture to the point where you know intimate details about it even the developers have forgotten (or even never knew!). This was fairly simple in the days where processors had a handful of instructions to emulate, but these days there could be as many as 20 different instructions dedicated to adding two registers together (and these are only the trivial problems). Documentation helps greatly in that regard, but the level of documentation needed is rarely the level of documentation provided, so you often have to rely on prior knowledge to get the work done.
 

Suikoguy

I whinny my fervor lowly, for his length is not as great as those of the Hylian war stallions
Dont expect this to run at half decent fps on your rig before 2020.

That said, can't wait to play Bayonetta, RDR with glorious visuals in the next decade.

I have a feeling the new consoles will require some serious programming wizardry to be properly emulated since computer technology has stopped moving vertically, and instead has progressed horizontally with more processors (cores) instead of faster processors.

Pending Quantum computers yielding far faster single threads, it's likely emulation of newer hardware will hit a wall.
 
Thanks for this exceptionally competent insight.
The Cell is such an alien CPU and has so many cores in it that I don't see how it can be properly emulated on a traditional PC even with a quad core CPU. Some games that don't utilize all the cores properly may get emulated easier, but then there are ones like God of War 3 that don't have a chance in hell.
 
Since the PS4 and Xbone are largely based on off the shelve components, does anyone think we might see emulators for them in the next 1 or 2 years? They have to be easier to emulate than the PS3.
Unified RAM pool on PS4 tells me no, so does sophisticated RAM setup in the XBOne.
 

Sentenza

Member
The Cell is such an alien CPU and has so many cores in it that I don't see how it can be properly emulated on a traditional PC even with a quad core CPU. Some games that don't utilize all the cores properly may get emulated easier, but then there are ones like God of War 3 that don't have a chance in hell.
I'll be honest, this to me reads more or less: "I heard things on the internet and I'm going to repeat them to make it sound like I know what I'm talking about".
 
What kind of background knowledge and education do you need to make something like this?

I assume it's more than knowing C++

On top of what the other guys have noted, I'd note that emulation requires at the very least basic knowledge of how chips operate, how compilers work, multithreaded computing, driver/OS architecture, etc, since you have to know about the tools you're reproducing. For example, if you have to make a console graphics library work, you may have to rewrite it-- then the API spelunking begins. And emulation requires even more spelunking because a lot of games run on dangerous, shaky code held together by the consistency of the consoles' locked clockspeeds and the only-one-target thing. Not only do you have to reproduce the architecture's main features, not only do you have to reproduce the weird ones, you also have to reproduce the bugs, and even the timings (!!!). Can't have function calls returning in a different order than they did on the retail hardware, hmm?
 
The Cell is such an alien CPU and has so many cores in it that I don't see how it can be properly emulated on a traditional PC even with a quad core CPU. Some games that don't utilize all the cores properly may get emulated easier, but then there are ones like God of War 3 that don't have a chance in hell.

Why are you talking about quad core CPUs as a justification for "never?" One day someone will be playing God of War 3 running on a quantum computer and laughing at this post.
 

cyberheater

PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 PS4 Xbone PS4 PS4
Very impressive that they can get any game to boot. Even if it is at 3-5 frames per second.

Optimisations come later. I do wonder what kind of a monster PC you'll need to get a Uncharted game to run at 60fps at 1080p.
 

Sentenza

Member
Why are you talking about quad core CPUs as a justification for "never?" One day someone will be playing God of War 3 running on a quantum computer and laughing at this post.
One day someone will be playing God of War 3 running on his wristwatch, which is why long term predictions like "never" are always laughable.
 

2San

Member
Put me in the camp that thinks it's a bit sad that PS3 emulation has gotten farther than the og xbox. I have already seen the explanation why it's hard to emulate xbox games, doesn't make it less sad. Otogi and Otogi 2 look pretty cool to play, but you can't play them on the x360 and buying an xbox seems like overkill.
 

hateradio

The Most Dangerous Yes Man
I still remember when PCSX2 showed some screenshots of FFX years ago. I don't really expect this to go very far, but at least there's a chance that the PS3 will live on in other forms.
 

Rocky

Banned
Not a programmer but probably

- Having sufficient documentation about what you're emulating
- Knowledge about how the hardware of the console works
- Knowledge about the software that the console runs

Sort of unrelated but also related is blueshogun96's (creator of some of the only Xbox emulators) post on Xbox emulation

I'm not a programmer either but the reasons about why its not easy to emulate the OG Xbox are a bit confusing. For one thing, he talks about emulating an x86 processor. Why would it need to be emulated when you are running on an x86 processor? Couldn't the emulator be created as a sort of hybrid that utilizes the PCs hardware for some things and just emulates other parts of the Xbox?
 

Sentenza

Member
I'm not a programmer either but the reasons about why its not easy to emulate the OG Xbox are a bit confusing. For one thing, he talks about emulating an x86 processor. Why would it need to be emulated when you are running on an x86 processor? Couldn't the emulator be created as a sort of hybrid that utilizes the PCs hardware for some things and just emulates other parts of the Xbox?
Yeah, his arguments never convinced me too much, either, for the same reasons.
"Emulating a x86 on a x86 is hard".
Well, but you are not supposed to. At least theoretically, some sort of wrapper capable of intercepting/translating instructions should be enough.

Of course, there still is the problem of the lack of documentation (and arguably of interest), but that's a very different issue.
 
There no way the PS3 will ever get emulated properly at full speed

Fools said the same thing about PS2 emulation.

Very impressive that they can get any game to boot. Even if it is at 3-5 frames per second.

Optimisations come later. I do wonder what kind of a monster PC you'll need to get a Uncharted game to run at 60fps at 1080p.

That kind of CPU/ GPU probably doesn't exist yet. 30fps@720p should be doable on some monster octo rigs with SLI Titans after final version of the emu is released.
 

Window

Member
I don't know much about emulation but was curious if hardware emulation using fpga's has been looked into or if it's just infeasible/expensive. A quick google search shows the NES and Genesis have been successfully implemented on an fpga but nothing on the Snes or beyond.
 

JNT

Member
Fools said the same thing about PS2 emulation.



That kind of CPU/ GPU probably doesn't exist yet. 30fps@720p should be doable on some monster octo rigs with SLI Titans after final version of the emu is released.

Actually, I'm not so sure about this. An eight core CPU is necessary in my opinion since you would generally want to outsource SPU code execution to individual cores (or on the GPU perhaps?), but the main workhorse core on the Cell will require a massive amount of sequential power that adding more cores to the mix will never make up for. As for the graphics side of things, it depends on how well libGCM code lends itself high-level emulation concepts.
 
The Cell is such an alien CPU and has so many cores in it that I don't see how it can be properly emulated on a traditional PC even with a quad core CPU. Some games that don't utilize all the cores properly may get emulated easier, but then there are ones like God of War 3 that don't have a chance in hell.

The Cell only has 1 "core" and the 8 (really 7 since one is disabled to improve yields) SPEs are not much more advanced than shaders on a graphics card. They are great at parallel simple tasks, they are not designed and can't run as true CPU cores.

It'll be a few years yet before CPUs and the actual emulator are in a state that can run these things, but it'll definitely happen.

Actually, I'm not so sure about this. An eight core CPU is necessary in my opinion since you would generally want to outsource SPU code execution to individual cores (or on the GPU perhaps?), but the main workhorse core on the Cell will require a massive amount of sequential power that adding more cores to the mix will never make up for. As for the graphics side of things, it depends on how well libGCM code lends itself high-level emulation concepts.

This is definitely the biggest hurdle.
 

chrislowe

Member
only written a 6502 emulator in pascal many many years ago, but I guess if you have the ability to execute own programs on a PS3 (or xbox og) you can understand how things work easier.
reverse engineer some code, make som alternations and see the behaviour. I did this once on the Amiga when a developer didnt want to give me the specifics about a library :)
 

Vashetti

Banned
There no way the PS3 will ever get emulated properly at full speed

People said exactly the same about the PS2 and its emulator PCSX2.

They've already got title screens up and running. I don't doubt within 10 years this thing will be running fantastically, and even at resolutions higher than 1080p (as PCSX2 supports nowadays).
 
May i ask how long it took for the PS2 to be emulated. This is impressive for sure but kinda hard to imagine getting completed within the next few years.

Kudos to the people who work on emulators though. I'd call them programming geniuses, as it requires a lot of efforts and reverse engineering to make these emulators.
 

JNT

Member
The Cell only has 1 "core" and the 8 (really 7 since one is disabled to improve yields) SPEs are not much more advanced than shaders on a graphics card. They are great at parallel simple tasks, they are not designed and can't run as true CPU cores.

It'll be a few years yet before CPUs and the actual emulator are in a state that can run these things, but it'll definitely happen.

The SPUs are an interesting challenge. Shoving SPU code execution over to individual CPU cores under-utilize that core so DirectCompute/OpenCL might be an attractive option.
 
May i ask how long it took for the PS2 to be emulated. This is impressive for sure but kinda hard to imagine getting completed within the next few years.

PCSX2 is 12 years old in 2 weeks (March 23rd) if you go by the date of the first publically released version. It was actually in production for a year before anything was released so you could say 13 years from today.

The first version considered "playable" would probably have been version 0.9.1. This introduced a much faster recompiler and was at a time when quite a few games were playable (I believe FFX was playable at this point, though with graphic errors).

0.9.1 was released in July '06... so 3-4 years or so after PCSX2 first started working with the PS2 bios (which is probably about on par with what the PS3 emu is currently at)

The Cell only has 1 "core" and the 8 (really 7 since one is disabled to improve yields) SPEs are not much more advanced than shaders on a graphics card. They are great at parallel simple tasks, they are not designed and can't run as true CPU cores.

It'll be a few years yet before CPUs and the actual emulator are in a state that can run these things, but it'll definitely happen.

The SPUs are an interesting challenge. Shoving SPU code execution over to individual CPU cores under-utilize that core so DirectCompute/OpenCL might be an attractive option.

The only problem I can foresee is that individual shaders aren't very fast on GPU hardware (PC's preferring slower but more of them approach), and I'm not sure if individual SPE work could be successfully split... I'm kind of doubtful on that. It may end up being that a super fast CPU with an SPE emulated per core will be necessary...

It'll likely probably be very dependent on individual games and their tolerance on timings and how well optimized the SPE code work can be done.
 

JNT

Member
The only problem I can foresee is that individual shaders aren't very fast on GPU hardware (PC's preferring slower but more of them approach), and I'm not sure if individual SPE work could be successfully split... I'm kind of doubtful on that. It may end up being that a super fast CPU with an SPE emulated per core will be necessary...

It'll likely probably be very dependent on individual games and their tolerance on timings and how well optimized the SPE code work can be done.

Such an in-between architecture... Interesting times ahead.
 
Top Bottom