• 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

dogmaan

Girl got arse pubes.
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.

One problem I can see in trying to map SPU's to GPGPU style programming is, SPU's have the ability to use DMA to transfer data between their local store and main memory, and also between their local store to another SPU's local store.
 
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.



This is definitely the biggest hurdle.

So it will come down to Mantle and the new versions of DX12 and OpenGL that help the utilization of CPU/GPU?
 

lmpaler

Member
Considering that we still dont have a 100percent foolproof n64 emulator I am not holding my breath for this


Very intriguing that ots being attempted though!!!

Really? My buddy and I ran one and played Smash Bros at work against each other and it ran flawless. It was only one game though, but I assumed that it was on the up and up because N64 was so long ago and the emus before it were perfect.

I still run Chrono Trigger time and again on the SNES emu, fuck now I want to do that
 
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.

If this is just a few people working on it in their spare time, do you think a team working full time could produce something commercially viable (like in the Bleem! days)?

I'd actually consider buying it if it worked well enough.
 

Rolf NB

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.
Entirely false. They are turing complete and can do everything. The DMA-gated main memory access is the only thing that makes them different from any other "real" CPU core.

Mapping SPU code to GPGPU is not going to work.
 

JNT

Member
If this is just a few people working on it in their spare time, do you think a team working full time could produce something commercially viable (like in the Bleem! days)?

I'd actually consider buying it if it worked well enough.

Throwing some money at it might make things move along a bit faster, but without proper documentation there could easily be unforeseen obstacles that will stall development regardless of monetary factors.

Entirely false. They are turing complete and can do everything. The DMA-gated main memory access is the only thing that makes them different from any other "real" CPU core.

Mapping SPU code to GPGPU is not going to work.

As some people have stated here anyway, SPU code on GPU might be infeasible for a variety of reasons, but I was led to believe OpenCL, CUDA and the like are Turing complete. Is this false?
 

Reese-015

Member
Man... I've got programming experience and I've got some very vague insight into assembler code and stuff but I've got no idea how they do crazy complex emulators like PCSX2 and now RPCS3...

What's the process like?
 

Durante

Member
As some people have stated here anyway, SPU code on GPU might be infeasible for a variety of reasons, but I was led to believe OpenCL, CUDA and the like are Turing complete. Is this false?
Sure they are. Lots of things are turing complete, it's rather irrelevant to this discussion.

You won't be doing general-purpose emulation of SPEs on GPUs. For that, you'll need a sufficient number of fast general purpose CPU cores.
 
Wow, this is quite the progress. Very impressive work from the dev team! I look forward to seeing Killzone 2 rendered correctly but at 1 fps. Seriously would not even care that it is 1 fps.
 

gngf123

Member
Sweet, a whole 0.21 fps!

But seriously, that is pretty amazing progress. I didn't think we'd be able to get in-game at all for a while yet.
 

Famassu

Member
So they can now emulate a PS1-level PS3 game extremely slowly and with tons of glitching? Uncharted 3, here we come!
in 20 years
 

dwells

Member
It would surprise me if this generation of consoles is ever successfully emulated. It's not just that the hardware is higher performance, it's that it's orders of magnitude more complex than prior consoles. Due to anti-piracy and the higher stakes/cost involved with console development now, security is also substantially higher. So I imagine that the kind of low-level hardware documentation that would be instrumental to properly understanding the system architecture well enough for emulation is well guarded and won't be leaking out any time soon.

Perhaps there's some future in high-level solutions involving wrappers/cross compilations/kernel hijacking and API intercepts. If I remember correctly, caustik was leaning toward this route and looking into .xbe to .exe conversion for Xbox emulation before he abandoned the project.

So while there may be some options way down the line that allow for running of modern console games on PC, I think true low-level game console emulation is pretty much over.
 
Wasn't the PS3's security totally compromised a few years back? I think the toughest thing to work out will be getting the rather exotic CPU working at anything close to playable frame rates, unless the SPE units lend themselves well to each being taken by x86 cores without tons of latency.

Anyway, hopefully this will lead to me being able to play the definitive Tales of Vesperia in english in a few years.

Of course, Bamco could release Tales of Vesperia HFGBRVBS edition before then
 

dwells

Member
Wasn't the PS3's security totally compromised a few years back? I think the toughest thing to work out will be getting the rather exotic CPU working at anything close to playable frame rates, unless the SPE units lend themselves well to each being taken by x86 cores without tons of latency.

The actual system security has been fairly compromised on 360 and PS3 and actually shouldn't be a huge hurdle to emulation.

I was speaking more toward company internal security. MS and Sony take that type of thing a lot more seriously now, so I wouldn't expect white papers detailing low level hardware specifications, system calls, GPU and CPU features and instruction sets, etc. to leak out. And given the complexity of these systems, I think you'd really need those things to be able to do low level emulation of them.

Regarding the original Xbox, even Microsoft had trouble with that. The Xbox 360 had to use per-title compatibility profiles and still ran into all sorts of problems emulating Xbox games. This from a company that had a team assigned to just that task and presumably had the original Xbox hardware engineers available to assist and the documentation to match. That said, I suspect the team responsible for the backwards compatibility emu was both rushed and small (especially seeing how quickly they stopped providing updates or support for it).
 
The actual system security courtesy has been fairly compromised on 360 and PS3 and actually shouldn't be a huge hurdle to emulation.

I was speaking more toward company internal security. MS and Sony take that type of thing a lot more seriously now, so I wouldn't expect white papers detailing low level hardware specifications, system calls, GPU and CPU features and instruction sets, etc. to leak out. And given the complexity of these systems, I think you'd really need those things to be able to do low level emulation of them.

I'd imagine there should be papers floating around for CELL - sony, IBM & toshi were pushing that chip pretty heavily for a few years. Wouldn't decapping remain a possible (while difficult) option too?

Regarding the original Xbox, even Microsoft had trouble with that. The Xbox 360 had to use per-title compatibility profiles and still ran into all sorts of problems emulating Xbox games. This from a company that had a team assigned to just that task and presumably had the original Xbox hardware engineers available to assist and the documentation to match. That said, I suspect the team responsible for the backwards compatibility emu was both rushed and small (especially seeing how quickly they stopped providing updates or support for it).

Euro version of Panzer Dragoon Orta freezes after stage one. The ONLY game I cared about too. To rub salt into the wound, the US version apparently runs fine. :/
 

dwells

Member
I'd imagine there should be papers floating around for CELL - sony, IBM & toshi were pushing that chip pretty heavily for a few years. Wouldn't decapping remain a possible (while difficult) option too?

Euro version of Panzer Dragoon Orta freezes after stage one. The ONLY game I cared about too. To rub salt into the wound, the US version apparently runs fine. :/
I'm sure there's some information for Cell floating around (there's even docs and code samples for the RSX, the PS3 GPU). The problem would be with PS3-specific implementation of Cell. Referencing the original Xbox again, that system uses what is essentially a Pentium 3. Hell, you can even do a CPU swap into the original Xbox with an off the shelf CPU. But there's specifics with how the console handles and addresses various things that makes everything that much more complicated. Decapping a chip can provide some useful info, but it's also a complicated, time consuming, and expensive process.

Then you've got the BIOS, scaler chips, hypervisor, audio processors, etc. to deal with still. I really just think it's too much. Maybe if you had a team of people working full time on a project it might be feasible. But it's not like the past where it was feasible for one or two very dedicated people to do as a personal project.

Oh, and for Panzer Dragoon there's a workaround for the PAL version that involves unlocking the level select menu so you can skip past the crash point.
 

androvsky

Member
The actual system security has been fairly compromised on 360 and PS3 and actually shouldn't be a huge hurdle to emulation.

I was speaking more toward company internal security. MS and Sony take that type of thing a lot more seriously now, so I wouldn't expect white papers detailing low level hardware specifications, system calls, GPU and CPU features and instruction sets, etc. to leak out. And given the complexity of these systems, I think you'd really need those things to be able to do low level emulation of them.

Since Sony, IBM and Toshiba were pushing it to be used as a general purpose CPU and Sony allowed Linux to be installed on the PS3 with full access to the Cell, it's extremely well documented. The only parts of it that weren't covered were handled when the system got hacked. IBM even had a software emulator for the Cell anyone could download for free (no source though, runs slow).

The RSX is more difficult, but still doable. Back in the early days of Linux someone discovered a bug in the hypervisor that allowed them to access the GPU directly. Within a month or so most of the RSX's major functions had been discovered. Since then, there's been multiple SDK leaks as well as a lot of people hacking away on systems with CFW and full access to the GPU.

That said, it's still a really complicated system that's going to take a while to get running solidly, and a lot longer to get running at a decent speed.
 
I played past Stage 1 recently. PAL version.

Yeah, just double checked, it's stage 3.

Then you've got the BIOS, scaler chips, hypervisor, audio processors, etc. to deal with still. I really just think it's too much. Maybe if you had a team of people working full time on a project it might be feasible. But it's not like the past where it was feasible for one or two very dedicated people to do as a personal project.

I don't think it ever really was. It's taken byuu 10 years of crazily amazing dedication, on top of the initial work done by others, and the help he got from others in the community and far cheaper then usual decapping. At least optical disc games don't have any custom chip surprises. I think one of the shogi games had a chip that in some ways was more powerful then the snes...

That said, there were a lot of people who thought that no ps3 emulator would ever do anything with commercial games, and we're there now so who knows.

Oh, and for Panzer Dragoon there's a workaround for the PAL version that involves unlocking the level select menu so you can skip past the crash point

Yeah, not really the same feel though. :/ Hopefully sega will rerelease the game someday...unless they've lost the source code again.
 

The Llama

Member
Since Sony, IBM and Toshiba were pushing it to be used as a general purpose CPU and Sony allowed Linux to be installed on the PS3 with full access to the Cell, it's extremely well documented. The only parts of it that weren't covered were handled when the system got hacked. IBM even had a software emulator for the Cell anyone could download for free (no source though, runs slow).

The RSX is more difficult, but still doable. Back in the early days of Linux someone discovered a bug in the hypervisor that allowed them to access the GPU directly. Within a month or so most of the RSX's major functions had been discovered. Since then, there's been multiple SDK leaks as well as a lot of people hacking away on systems with CFW and full access to the GPU.

That said, it's still a really complicated system that's going to take a while to get running solidly, and a lot longer to get running at a decent speed.

Crazy. Seems like its just a matter of needing the manpower and machine power in order to get the PS3 emulated.
 

Oemenia

Banned
Since Sony, IBM and Toshiba were pushing it to be used as a general purpose CPU and Sony allowed Linux to be installed on the PS3 with full access to the Cell, it's extremely well documented. The only parts of it that weren't covered were handled when the system got hacked. IBM even had a software emulator for the Cell anyone could download for free (no source though, runs slow).

The RSX is more difficult, but still doable. Back in the early days of Linux someone discovered a bug in the hypervisor that allowed them to access the GPU directly. Within a month or so most of the RSX's major functions had been discovered. Since then, there's been multiple SDK leaks as well as a lot of people hacking away on systems with CFW and full access to the GPU.

That said, it's still a really complicated system that's going to take a while to get running solidly, and a lot longer to get running at a decent speed.
Thats really interesting, guess it wont take as long as we might think.
 

Dario ff

Banned
Seems like they're motivated to start fixing stuff pretty quickly.

HX42ZNB.jpg
 

Sails

Banned
I would just like to point out that Disgaea 3 started life as a PS2 game and near the end of development was quickly ported to PS3. Chances are it uses nearly zero PS3 specific CPU/GPU functions and is likely running off of known PS2 emulated architecture with some modifications for resolution. I'd hardly call this a PS3 emulator, it's a lot like the very early Xbox 1 emulator that only ran Halo because the console was essentially a PC and they probably got lucky with finding some devkit "emulation"...Now look where Xbox 1 emulation is nowadays.
 
I would just like to point out that Disgaea 3 started life as a PS2 game and near the end of development was quickly ported to PS3. Chances are it uses nearly zero PS3 specific CPU/GPU functions and is likely running off of known PS2 emulated architecture with some modifications for resolution. I'd hardly call this a PS3 emulator, it's a lot like the very early Xbox 1 emulator that only ran Halo because the console was essentially a PC and they probably got lucky with finding some devkit "emulation"...Now look where Xbox 1 emulation is nowadays.
You think they're emulating a ps2 game disguised as a PS3 game using a ps2 emulator disguised as a ps3 emulator?
 

Truespeed

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

Not much more than a advanced shader? Please, they deserve more credit than that. They're more like specialized 3 GHz cores with their own MMU and storage. And while they may not be 'true' general purpose CPU cores they do run all of the systems in games while the PPU is relegated to a job scheduler.
 
I would just like to point out that Disgaea 3 started life as a PS2 game and near the end of development was quickly ported to PS3. Chances are it uses nearly zero PS3 specific CPU/GPU functions and is likely running off of known PS2 emulated architecture with some modifications for resolution. I'd hardly call this a PS3 emulator, it's a lot like the very early Xbox 1 emulator that only ran Halo because the console was essentially a PC and they probably got lucky with finding some devkit "emulation"...Now look where Xbox 1 emulation is nowadays.

That's not how it works. Disgaea 3 is a very simple looking game that most likely runs solely on Cell's PPU and doesn't use any other than the most basic GPU functions (no shaders). That is what it makes easier to emulate. But it's still 100% PS3 binary code, otherwise it wouldn't run on PS3. And since PS3 shares no resemblance to PS2 at all, there is no way they would profit from knowing how the game would be if it were on PS2.
 

The progress on this emu has been pretty great all things considered. I wouldn't have expected anything to be running for another couple years.

As for people complaining about speed... I don't even think they have a dynarec up and running for it yet. And I wouldn't expect them too till they have a reasonable compatible interpreter working.

That said, even then we're looking at maybe 10x the performance (so instead of 1.5 fps, something like 15fps). Machines won't be running commercial PS3 games at full speed for many many years.
 

JohnnyFootball

GerAlt-Right. Ciriously.
I don't believe for one second that this will work reliably or even remotely close to it.
I'd live to play the resistance games on PC though.
 

Tagyhag

Member
Nice, aside from the terrible FPS this is a LOT more far ahead that I thought PS3 emulation would be. (I didn't expect it until >2020 or just never like the half-assed Xbox emulation.)
 

ethomaz

Banned
I remember when the development of the first PS2 emulator started... 10 years after and it is playable but have a lot of work to be made yet ;)
 

Foffy

Banned
Reallllllly hoping this proves to be fruitful like Dolphin, PCSX2, PPSSPP, and all of the various other emulators have for the community. It's not just getting games in better visual quality; this opens the door for fan translations much more than what's available with hacked PS3s.

I suppose it's just going to take many years for that to be as accessible and easy. :p
 
Top Bottom