PS3 emulator?

Page 3 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.
Status
Not open for further replies.




 


http://www.neogaf.com/forum/showpost.php?p=48088464&postcount=26

Originally Posted by blueshogun96
"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).

So please, stop it. The PS3's architecture is near impossible to emulate on a PC architecture. Its not happening.
 
So basically, what needs to be said here is.. BUY a damn PS3 and be done with it. You wouldnt wait nearly as long to have the game devs make a PC version of a PS3 game compared to waiting for a PS3 emulator for PC to be made.
 
This will NOT be kind and yes, I think most of you are idiots.
I facepalmed so hard at this topic that I knocked myself unconscious. You people are intellectually lazy and clearly have no idea about the PS3's architecture (other than, OMG 7 CORES HYPERVISOR LOL XDDDD) and especially no idea about the technicalities of writing emulators. The cure for this is simple, go out and write one. Start small, write a Chip-8 emulator or something. If you refuse to go down that path, go browse the source code of PCSX2, Dolphin or NullDC or something. That is the only way that you will get the required shock, perhaps enough to educate you a little.

There is currently a PS3 emulator which can apparently run some very simple homebrew, which is awesome and should be respected. It's a real attempt at emulating the Cell Broadband Engine architecture as well as the PS3 RSX graphics chip, which I'm sure you know ALL about being geniuses and having read all the IBM CBE (click me) manuals and released documentation on the RSX... Right (haha, nope)? There is no PS3 emulator capable of running the PS3's operating system, not any part of it.

In short, be grateful that there are actual coders out there trying to write real emulators rather than coding some C# bullshit to play a video of some PS3 game. The people doing this and often spreading viruses should be laughed at and ignored.

Sincerely,
Yet another emulator author.
 
sooooo want to change the topic to ps4 emulator i heard that was easier than ps3 since they using literally pc hardware this time so lets throw out some ideas now brain storm and yall thoughts about it
 


No. If anything, the PS4 would be much, much harder to emulate, since you'd essentially be emulating an OOC X86 arch on top of X86.

You aren't emulating an instruction set; you are emulating a piece of hardware. That's the failure that most people simply do not understand.

So all the talk by the BSD/Linux guys are having about "poping in a disk and playing" is just BS. It's not happening.
 


Actually given the projections of graphics cards in the future, the Nvidia volta graphics cards coming out in 2016 where the memory bandwidth is about 166 times greater than current GPU cards such as a 680 GPU since current Badnwidth is about 6 Gbps and volta is theoretically 1 Tbps bandwidth and the power is more than twice that of current kepler cards and is also a large jump from next years maxwell cards. So we will probably have GPUs and CPUs powerful enough by then
 


This is definitely possible to get done with enough discipline and people within 2017(preferrably 150-200 people)

So yeah. Like we said, this is going to take a while, though having a ps4 emulator in 2017 would be pretty cool.
 


woah there. The SteamOS would be dominating by then, along with other linux based OSes.
 


I think we should shoot for a XNintenStation emulator instead, which itself will see a release sometime by the end of this century.
 
^^ Fake. Very common tactic: Create a program that plays a video file taken directly from the PS3, offer download link. Users then go to website with ads, generating revenue. Users get a .zip with nothing in it (or in the case of the '3ds emulator' a link to a link to a link, generating more revenue each time).

I'll put this as bluntly as I can:

ALL PS3 EMULATORS ARE FAKE!
 


Could you please elaborate on this? Why is the Xbox 360 easier to emulate?
 
QUOTED SPAM REDACTED - SS

I have done alot of research on the hacking antion website and ive tried to use his programs myself even, they are fairly well crafted TRICK programs that try to get you to fill out surveys and shit that just makes those so called "developers" money for doing nothing.
 


More PC-like architecture, in that there isn't anything exotic you need to emulate entirely in software. I'd still wager we'll need at least a decade to emulate it though. [And another one to do it well].

The PS3's PPE/8 SPE architecture is going to be near impossible to handle; understand EVERY SINGLE CPU INSTRUCTION has to be handled in the exact order, the local cache kept coherent, the CPU cache and main RAM updated properly, etc. This requires a LOT of software voodoo, and the more cores your PC has, the harder it gets to emulate in software [hence why most emulators use a single thread to handle emulating the main CPU; its impossible to keep the system state coherent if you start using more threads].

Frankly, its going to be so bloody difficult, I doubt we'll ever see a PS3 emulator. I honestly don't think we'll have that much CPU power in my entire lifetime.

I highly recommend reading this: http://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/

Highlights the issues with emulation accuracy.

Also worth noting: The PS2 main CPU runs at 300 MHz [later models]. Running entirely in software through an interpreter, my 2600k gets 1-3 FPS in PCSX2. Even using the recompiler, there's a number of titles that fall into the 40's. Nevermind the recompiler is FAR less accurate, but is "good enough" for most titles, though I have a handful I have to switch to the interpreter to get past certain points. See the above thread for reference on accuracy.

So if we have issues emulating a 300MHz CPU, how are we going to handle the Cell PPE and 8 SPE's running at 3.2 GHz?
 


i think you had the wrong emulator or settings cause i ran pcsx2 at around 60 fps and that was capped for fluent gameplay i haf a a10-5800k/HD 7770/6gb ram
 
i have a i3 3250 1600MHz 4GB with a gtx 650ti boost edition 2GB i get 60 fps on pcsx2

and before i had C2D e8600 1600MHz 4GB GTS 450 on that pc also i was getting 60FPs on every damn game.
 


I specifically said "in interpreter mode", which you have to turn on to get some titles to boot, let alone play, due to flaws in emulating the PS2's main CPU. Some titles REALLY care about cycle accuracy and proper memory handling, and those are the ones you need to run in pure interpreter mode, which is S L O W.
 

So, based on the ps3's difficulty to emulate, do you think the ps4 could be emulated earlier or is that even harder?
 
Status
Not open for further replies.