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

Will the PS4's X86 'Supercharged PC Architecture' be easy to emulate?

onken

Member
I think a better thing to hope for is for someone to dump the PS4 OS and have it installed on a PC as a dual boot setup (like how you can make a OSX box). You may need to have specific CPU/GPU setup for it to work reliably (or at all), but I could see that happening far before seeing actual emulation in windows.
Uh yeah it doesn't work like that.
 

~Kinggi~

Banned
If their always online drm is sophisticated enough it might be a bitch to emulate. Especially if you need files from Sony.
 

FyreWulff

Member
Wasn't aware of this concept. Has that ever been done for a previous console?

BSNES does this I believe. It also requires a 3GHz processor, minimum, to emulate an SNES.

Also, I seem to remember that Atari 2600 emulators need to emulate both the Atari and the television, as the Atari 2600 didn't have a framebuffer.
 

Dash Kappei

Not actually that important
But seriously, how many good xbox games didn't come out on PC and other well-emulated consoles? Phantom Dust, Panzer Dragoon Orta, the Conker remake and...

...Jet Set Radio Future, Rallisport Challenge 2, Otogi 1 and 2, Crimson Skies, Gun Walkyrie, Kingdom Under Fire, Ninja Gaiden + Black, PGR2, Steel Battalion 1 and 2.
 

Mystery

Member
It couldn't be simpler. They have already given us the architecture in the presentation.

In fact, I've already drawn up what I believe is a fairly accurate representation of what the final PS4 will look like.

ps4_zpsd8c09e45.jpg

I just spent a good 2 minutes laughing at this a lot harder than I should have.
 

zoku88

Member
BSNES does this I believe. It also requires a 3GHz processor, minimum, to emulate an SNES.

Also, I seem to remember that Atari 2600 emulators need to emulate both the Atari and the television, as the Atari 2600 didn't have a framebuffer.
Sorry, I misspoke, so we are not on the same page. I want to add that any console emulator is technically emulating the hardware to some extent.

When I said hardware emulator, I really meant emulating the instruction set.

So, I was wondering, to run a PS4 game, would a binary + reimplementations of PS4's libraries be enough (like Wine on Unix-likes)? Or, would you have to emulate some closer, like the communication between the different parts of the SoC (different core and gpus) for timing reasons (like, being in sync.) (like pcsx2)
 

TrantaLocked

Neo Member
here is what cxbx developer wrote about xbox emulation some time ago

Can someone explain something about this whole GeForce 3 thing. My question is, how can the registers be unknown when those parts were all designed by human engineers? There must be many people who not only know but have all of the low level details stored away somewhere. So...why doesn't someone just talk with one of those guys? Is EVERY SINGLE ONE really so loyal to Microsoft that they won't share some info about a 15 year old console?
 
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).

Also PS3 emulation is making strides, saying it'll never come out due to its premature state would be like saying Dolphin or PCSX2 would never come out due to it's earlier builds being skeletal.
 

PFD

Member
Can someone explain something about this whole GeForce 3 thing. My question is, how can the registers be unknown when those parts were all designed by human engineers? There must be many people who not only know but have all of the low level details stored away somewhere. So...why doesn't someone just talk with one of those guys? Is EVERY SINGLE ONE really so loyal to Microsoft that they won't share some info about a 15 year old console?

People usually sign non-disclosure agreements when they do this kind of work. They can't just publicly share company secrets.
 
Can someone explain something about this whole GeForce 3 thing. My question is, how can the registers be unknown when those parts were all designed by human engineers? There must be many people who not only know but have all of the low level details stored away somewhere. So...why doesn't someone just talk with one of those guys? Is EVERY SINGLE ONE really so loyal to Microsoft that they won't share some info about a 15 year old console?

I may be wrong but I believe that part of the reason emulators are legal is because they reverse engineered the hardware without relying on illegal sources. If an engineer illegally released documentation and an programmer used that to build an emulator it would probably violate the DMCA.
 

krizzx

Junior Member
Wasn't OG XBOX x86 too and it's almost impossible to emulate?

Its not really "that" difficult. I'd say its under NAOMI emulation and they managed to do that. Its more to do with popularity and how much effort people are willing to put into versus more popular hardware. There were plenty of emulators started, but no one really cared enough to push through. They generally all stopped after emulating Halo. There is still one that I think is in development, but once again, no one really wants to make it. Its not popular enough.

If it wasn't for the Japanese scene, we still wouldn't have a decent Saturn Emulator.
 

Waaghals

Member
Its not really "that" difficult. I'd say its under NAOMI emulation and they managed to do that. Its more to do with popularity and how much effort people are willing to put into versus more popular hardware. There were plenty of emulators started, but no one really cared enough to push through. They generally all stopped after emulating Halo. There is still one that I think is in development, but once again, no one really wants to make it. Its not popular enough.

If it wasn't for the Japanese scene, we still wouldn't have a decent Saturn Emulator.

I'm pretty that all that was working at a low framerate was Turok Evolution. I'm not sure Halo was ever emulated.

Not to say that there isn't lack of interest, but I don't think there are any properly functioning xbox emulators out there.

Correction: There is one from 2003 that runs the NTSC-version of Halo at low frame rate. As far as I can tell there are no proper functioning emulator though, only proofs of concept ones that run one game a 1-3 fps and a few SDK demos.
 

krizzx

Junior Member
I'm pretty that all that was working at a low framerate was Turok Evolution. I'm not sure Halo was ever emulated.

Not to say that there isn't lack of interest, but I don't think there are any properly functioning xbox emulators out there.

Correction: There is one from 2003 that runs the NTSC-version of Halo at low frame rate. As far as I can tell there are no proper functioning emulator though, only proofs of concept ones that run one game a 1-3 fps and a few SDK demos.

All emulators were like that in the beginning. Complexity never stopped emulator makers before. I still remember the times when they were still trying to crack the decompression on SNES games that used special chips.

The Xbox1 is simply not popular enough. If it had more software that people wanted to play on it and couldn't get anywhere else, then there would be a larger movement to emulate the system. People just don't seem to want to make the effort being it that most of the games on the console that were actually good were available through some other means.

Difficulty of doing something is one thing. Difficulty with little payoff is something else.

As far as the thread title goes, people really need to get out of this mindset that X86 is some miraculous, super easy to understand architecture. Its just the most common and familiar, not the easiest to use or emulate.
 

Lazaro

Member
Isn't it possible to use a wrapper instead? That seems better than emulating the whole system, hardware and OS.

I'm not quite sure how wrappers work :p
 

Raticus79

Seek victory, not fairness
WTF is that?

Looks like they started with a plastic milk crate, cut out holes for their components, and then held things in place while spraying filler foam and voila, custom PC case with things easily accessible at whatever orientation you want. Just need to put up with it looking terrible and overheating in seconds.

Can someone explain something about this whole GeForce 3 thing. My question is, how can the registers be unknown when those parts were all designed by human engineers? There must be many people who not only know but have all of the low level details stored away somewhere. So...why doesn't someone just talk with one of those guys? Is EVERY SINGLE ONE really so loyal to Microsoft that they won't share some info about a 15 year old console?

Yes, think about the risk/reward for the people who are being asked for those details. "Hmm, maybe someone will be able to make an emulator, and I'll be able to console myself with that thought while I'm broke from lawsuits / blacklisted and unemployable / in jail".

(Thread was necro'd)
 

Tain

Member
As a PC gamer, Uuuuu no. Lol. After Halo and Halo 2 PC came out there wasn't much that PC gamers absolutely needed.

As a PC gamer, you're crazy:

Steel Battalion, Line of Contact
Breakdown
Spikeout Battle Street
Crazy Taxi 3
Panzer Dragoon Orta
Jet Set Radio Future
Phantom Dust
Gunvalkyrie
Ninja Gaiden Black
Otogi, Otogi 2
Metal Wolf Chaos
Rallisport Challenge, Rallisport Challenge 2
PGR, PGR2
Crimson Skies
DOA2U, DOA3
Mechassault, Mechassault 2
THPS 2x
...and some more I'm forgetting, surely.

Not even considering all of the multiplatform games the Xbox had the best versions of that didn't make it to PC, meaning they might as well be exclusives for anybody seriously wanting to play them in 2014. Stuff like Def Jam Vendetta, FFNY, Burnout, Burnout 2, Burnout 3, Fatal Frame, Fatal Frame II, and so on.

but yeah lol sure no games
 
As a PC gamer, you're insane:

Steel Battalion, Line of Contact
Breakdown
Spikeout Battle Street
Crazy Taxi 3
Panzer Dragoon Orta
Jet Set Radio Future
Phantom Dust
Gunvalkyrie
Ninja Gaiden Black
Otogi, Otogi 2
Metal Wolf Chaos
Rallisport Challenge, Rallisport Challenge 2
PGR, PGR2
Crimson Skies
DOA2U, DOA3
Mechassault, Mechassault 2
...and some more I'm forgetting, surely.

Not even considering all of the multiplatform games the Xbox had the best versions of that didn't make it to PC, meaning they might as well be exclusives for anybody seriously wanting to play them in 2014. Stuff like Def Jam Vendetta, FFNY, Burnout, Burnout 2, Burnout 3, Fatal Frame, Fatal Frame II, and so on.

but yeah lol sure no games

Correct me if I'm wrong. But wasn't Crazy Taxi 3 released on PC?
 

Krejlooc

Banned
You won't need CPU emulation as most envision it, they'll instead use a compatibility layer software application like WINE.
 

Tain

Member
Correct me if I'm wrong. But wasn't Crazy Taxi 3 released on PC?

Oh, I'll be damned, it did get a PC release. Japan and Europe only, 2004. Wonder how it is. The PC version of the original Crazy Taxi is pretty jank, to the point where I prefer the Dreamcast release (even with music mods on PC), hopefully that's not the case here.

That does remind me, though, that House of the Dead 3 is still realistically best on Xbox despite having a PC port.
 
Oh, I'll be damned, it did get a PC release. Japan and Europe only, 2004. Wonder how it is. The PC version of the original Crazy Taxi is pretty jank, to the point where I prefer the Dreamcast release (even with music mods on PC), hopefully that's not the case here.

That does remind me, though, that House of the Dead 3 is still realistically best on Xbox despite having a PC port.

OG Crazy Taxi in DC had the original soundtrack, while PC version didn't. That being said, even if that is a huuuuuuge pro of the DC/Arcade version, you could mod the PC version of the game and use some standard MP3 files to replace the music.

Other than that, they were very similar (I think).
 

Tain

Member
OG Crazy Taxi in DC had the original soundtrack, while PC version didn't. That being said, even if that is a huuuuuuge pro of the DC/Arcade version, you could mod the PC version of the game and use some standard MP3 files to replace the music.

Other than that, they were very similar (I think).

The tracks don't fully line up, in my experience. The mods I've tried will have duplicate tracks or keep some of the new tracks. The branding being different and the resulting customer silence is obnoxious, too, as is the vsync stutter on most setups (though that's probably no longer an issue for me, thankfully, due to gsync). I'm pretty anal about Crazy Taxi, though, as you can see lol.
 

Herne

Member
I always just assumed a lack of interest. There's what, less than 5 worthwhile xbox exclusives?

A lot of people who work on emulation do it out of an interest in just getting it done, seeing if it's possible, and to do it before anyone else, not, or at least not primarily, due to an interest in the games. If it was possible to emulate the XBox, someone would've done it by now.
 

R_Deckard

Member
Actually, it was a Power PC, and while emulation isn't as trivial as many imagined, if you don't see working Xbox emulators today more it's probably more for a lack of interest than for technical limitations.
No... It's wasn't it was an x86 Pentium III

Edit: just saw this was necro from last year...what.......
 
A lot of people who work on emulation do it out of an interest in just getting it done, seeing if it's possible, and to do it before anyone else, not, or at least not primarily, due to an interest in the games. If it was possible to emulate the XBox, someone would've done it by now.

There is one though. It's just in extremely early stages and can only boot up to the Halo menu. Nobody has touched it in years though
 
The tracks don't fully line up, in my experience. The mods I've tried will have duplicate tracks or keep some of the new tracks. The branding being different and the resulting customer silence is obnoxious, too, as is the vsync stutter on most setups (though that's probably no longer an issue for me, thankfully, due to gsync). I'm pretty anal about Crazy Taxi, though, as you can see lol.

Oh wow, you truly are a Crazy Taxi purist. Can't argue against that, lol.
 

Fafalada

Fafracer forever
Nerfgun said:
What was the deal with the OG Xbox, that made it hard to emulate, anyways?
It didn't have the entire low-level hw documentation released to public like the PS2 for instance.

And the part where instruction set isn't any particular advantage (you're not gonna get native execution in the emulator either way) somehow gets translated to "ok if it's not easy, then it's impossible".

Krejlooc said:
You won't need CPU emulation as most envision it, they'll instead use a compatibility layer software application like WINE.
Console CPUs still get to talk directly to hw - so it would never be as simple as reimplementing target kernel-calls in the host OS - you'd need to virtualize at least parts of the CPU. And reversing Console kernels is probably more work than doing the same for hw.
 

rav

Member
You guys should check this thread out, particularly this:
It's one of the major modifications by the hardware team:

Enabling the Vision: How Sony Modified the Hardware

The three "major modifications" Sony did to the architecture to support this vision are as follows, in Cerny's words:
"First, we added another bus to the GPU that allows it to read directly from system memory or write directly to system memory, bypassing its own L1 and L2 caches. As a result, if the data that's being passed back and forth between CPU and GPU is small, you don't have issues with synchronization between them anymore. And by small, I just mean small in next-gen terms. We can pass almost 20 gigabytes a second down that bus. That's not very small in today’s terms -- it’s larger than the PCIe on most PCs!"
 

Melchiah

Member
Given that the early Sony PS4 dev systems where high end PC's then I think it must be possible at some point.

Maybe 4 or 5 years down the road. Maybe earlier for some of the simpler arcade games that don't require that huge memory bandwidth.

Weren't the early PS3 dev systems similar, with 7800 GPU in them? Yet the PS3 is still not emulated.


EDIT: Damn, necrobump.
 
Top Bottom