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

Question: Emulation for next-gen consoles. Possible?

With the Xbone and PS4 being of a standard x86 architecture, does that mean years down the line we might get emulators for these? I know past generations are extremely hard to emulate with their unique architecture are damn near impossible to emulate, but is that going to change?

Granted, I'm not saying anytime soon. I know the hardware would have to be pretty powerful to do it, but I'm thinking about into the future here.
 
The Original Xbox still hasn't been properly emulated as far as I know, so its not just a cake walk. That being said, its probably more probable we get emulators for PS4/Xbox One than we do of Xbox 360/PS3 just because the processing power to emulate Cell or PPC is orders of magnitude higher than just virtualizing an x86 chip.
 

chaosblade

Unconfirmed Member
The Original Xbox still hasn't been properly emulated as far as I know, so its not just a cake walk.

Yeah, that's the best comparison, though the new consoles are still a different beast than that was.

Basically, PC-like does not mean easy emulation.
 
Isn't it more of an interest thing? I mean, there's a working Wii emulator.
I don't think so but I can imagine it being discouraging when you struggle to do anything and everyone around you is like "trolollolol its a PC shoud be EZ!".

Wii on the other hand progressed from existing Gamecube emulation. It might have just been waiting for the disc encryption crack for it to explode.

The emulator scene JUST got SNES emulation right apparently (bs-snes or what that emulator is called).
But is has been perfectly functional for a decade (the occasional annoyance with some games and/or chip games). Then there is hardware accurate which is a crazy ambition.
 

kpjolee

Member
Difficulty of Xbox emulation is already well known, because of complexity of x86 instruction and lack of documentation on Nvidia media co-processor.
 

AColdDay

Member
The emulator scene JUST got SNES emulation right apparently (bs-snes or what that emulator is called).

Yeah, but we have had pretty spot on SNES emulation for over a decade.

I'm really interested in emulation, and I have read that it is really just an interest problem right now. I remember reading a very detailed blog post from somebody in the scene which detailed the hurdles of Xbox 360 emulation and how they could be overcome, and IIRC it is just a matter of the right group of people making it a priority. The hardware required would be immense but I don't feel like it would take anything orders of magnitude more advanced than what we have now.

http://www.noxa.org/blog/2011/02/23/building-an-xbox-360-emulator-part-1-feasibilitycpu/
 
That is not true in this case, as you'd be using virtualization instead of emulation for the x86 CPU.

We dont know if they have special instructions that our cpus dont have in the console version.

Also they use unified memory so we cant use the assembler code 1:1 in our cpus.
 
Difficulty of Xbox emulation is already well known, because of complexity of x86 instruction and lack of documentation on Nvidia media co-processor.

No, the lack of proper Xbox emulation in 2013 really is because nobody cares about working through the issues and actually develop something.

With the Xbone and PS4 being of a standard x86 architecture, does that mean years down the line we might get emulators for these? I know past generations are extremely hard to emulate with their unique architecture are damn near impossible to emulate, but is that going to change?

Granted, I'm not saying anytime soon. I know the hardware would have to be pretty powerful to do it, but I'm thinking about into the future here.

It's all heavily contingent on interest from the coding community. Modern emulation development is a lot of reverse-engineering and a LOT of work that needs a team of dedicated coders to get it off the ground.

But yes, custom X86 emulation / virtualization is definitely possible.
 

JNT

Member
With a little luck you could use a virtualize the PS4 and XBone CPUs at near native speed. However, there are more components that need emulation that are much harder. I hear GPUs can be really difficult for instance.
 
That is not true in this case, as you'd be using virtualization instead of emulation for the x86 CPU.

consoles are more then just a CPU. You have to emulate all other areas of the design as well. that APU, the ram, the bus speeds, ARM core, memory speeds, etc and so forth, all have to be taken into consideration.
 
The original Xbox is particularly problematic as Nvidia did a very poor job of documentation. Newer consoles are still going to be very, very, tricky, but the OG Xbox is a huge outlier.
 

kpjolee

Member
No, the lack of proper Xbox emulation in 2013 really is because nobody cares about working through the issues and actually developing something.

I am sure it was more of a technical issues because of lack of documentation. It is like trying to solve a complex math problem without any formulas given.
 
I hope SEGA wakes the fuck up and support PSN XBLA like service and capitlize on it's past console library

and no, I'm not talking about always chosing the same 6 games first. I'm talking like a SEGA store inside Marketplace and PSN Store of Sega games

SEGA is sits on a gold mine, it is up to them to do something about it
 

gngf123

Member
No, the lack of proper Xbox emulation in 2013 really is because nobody cares about working through the issues and actually developing something

It's honestly a mixture of both. What he said about the difficulties are absolutely correct, but almost all efforts to actually work past it stopped a while back. There's cxbx that still gets an update now and then, but that's it.
 

Portugeezer

Member
Yep, just pop in a PS4 game and change to Windows 7 compatibility mode.

Also you can take a PC game, pop it into your PS4 and it will automatically convert to PS4 mode.

Amazing.
 

jett

D-Member
The Original Xbox still hasn't been properly emulated as far as I know, so its not just a cake walk. That being said, its probably more probable we get emulators for PS4/Xbox One than we do of Xbox 360/PS3 just because the processing power to emulate Cell or PPC is orders of magnitude higher than just virtualizing an x86 chip.

There's no interest in emulating the Xbox, that's the short of it. The whole emulation scene seems to have died down some over the last couple of years to be honest.
 
I am sure it was more of a technical issues because of lack of documentation. It is like trying to solve a complex math problem without any formulas given.

The technical issues have been a big setback, but you have to realize that the Xbox has been out for twelve years now. If there was a dedicated team of people committed to solving these problems, we would have something TWELVE YEARS after the console has been released.

Instead, for many years it looks like Blueshogun has been the ONLY one working on CXBX development, and even then, he's only been working on it once in a while when he has free time.

It's not like Xbox emulation hasn't made ANY ground. There are several games in the latest builds that are actually playable. But Xbox emulation development just doesn't receive even close to the same priority as behemoths like Dolphin (Gamecube + Wii).
 

AColdDay

Member
There's no interest in emulating the Xbox, that's the short of it. The whole emulation scene seems to have died down some over the last couple of years to be honest.

I've noticed this too. Has anybody figured out why? It's like ninjas assassinated the top emulation enthusiasts.
 
I've noticed this too. Has anybody figured out why? It's like ninjas assassinated the top emulation enthusiasts.

I think some of the top devs were hired away by companies that needed devs to either develop virtualization or emulation solutions (both gaming and non gaming)
 
consoles are more then just a CPU. You have to emulate all other areas of the design as well. that APU, the ram, the bus speeds, ARM core, memory speeds, etc and so forth, all have to be taken into consideration.

Sigh. I always get bitten in the butt when I assume people will fill in the blanks themselves.

Obviously you're emulating that stuff. But its not nearly as intense as emulating a CPU. CPU by far is the most intensive thing to emulate. The problem with CPUs is that for each CORE you need a CPU that is far more powerful than it to emulate it. You can't split across emulation of a single CPU across multiple cores.

That being said, the emulation of the rest of the individual components can be split apart multiple cores and can be accounted for. You'll probably still need a more powerful system than we currently have, but lets say by the end of the generation, there probably will be off the shelf hardware out there that could theoretically do it.

Whether theres a will to do it, or whether there are other stumbling blocks (such as encryption) is another question.
 

AColdDay

Member
Sigh. I always get bitten in the butt when I assume people will fill in the blanks themselves.

Obviously you're emulating that stuff. But its not nearly as intense as emulating a CPU. CPU by far is the most intensive thing to emulate. The problem with CPUs is that for each CORE you need a CPU that is far more powerful than it to emulate it. You can't split across emulation of a single CPU across multiple cores.

That being said, the emulation of the rest of the individual components can be split apart multiple cores and can be accounted for. You'll probably still need a more powerful system than we currently have, but lets say by the end of the generation, there probably will be off the shelf hardware out there that could theoretically do it.

Whether theres a will to do it, or whether there are other stumbling blocks (such as encryption) is another question.

I just want to play RDR in 1080p using a 360 emulator. IS THAT SO MUCH TO ASK?
 

Swifty

Member
Even if you have an x86 machine you want to emulate, good luck decoding those shader binaries based off of custom graphics hardware. I can't even imagine how you would translate that into HLSL or GLSL.
 

s_mirage

Member
I've noticed this too. Has anybody figured out why? It's like ninjas assassinated the top emulation enthusiasts.

If I were to guess I'd say that it's largely due to the barrier to entry these days. The newer systems require so much work, in comparison to the 8 and 16-bits during the emu scene's heyday, to get anything running at all that there aren't many people with both the skills and the time to undertake such projects. There are also far less systems left to emulate than there were back in the day.
 

OuiOuiBa

Member
You need 6-10x power of emulated platform.
^ This.
A low-level emulator needs far more power than the actual machine being emulated.
For instance, the likes of MAME/MESS, that focus on accuracy, have heavy requirements even for Playstation or Saturn hardware.

Another thing to consider is that for a long time, the CPUs single-threaded performance increase has been slowing down quite a bit.
Multi-core CPUs is not "just more power" like single-CPU huge improvements used to be : parallelization makes development more complicated and sometimes isn't applicable at all.
Here is an interesting read on the subject, that accounts for automatic parallelization (which makes a huge difference, provided the sources of the programs are available, which of course is not the case for emulated software).

High-level emulation / virtualization may be different stories but I wouldn't be too optimistic about it.
 

M3d10n

Member
The technical issues have been a big setback, but you have to realize that the Xbox has been out for twelve years now. If there was a dedicated team of people committed to solving these problems, we would have something TWELVE YEARS after the console has been released.

Instead, for many years it looks like Blueshogun has been the ONLY one working on CXBX development, and even then, he's only been working on it once in a while when he has free time.

It's not like Xbox emulation hasn't made ANY ground. There are several games in the latest builds that are actually playable. But Xbox emulation development just doesn't receive even close to the same priority as behemoths like Dolphin (Gamecube + Wii).

Blaming solely lack of interest is being disingenuous. The technical hurdles are real and should not be ignored, specially when it comes to the GPU.

For consoles like the PS2 and Gamecube, it's always possible to get low-level info about the GPU from leaked documentation, since the graphics APIs for those consoles are nothing more than syntax sugar on top of writing to memory addresses and registers directly: the games are almost always talking directly to the hardware.

The Xbox, however, uses a custom version of DirectX libraries, which does the actual handling of the GPU. So, none of the low-level GPU information relevant for emulation like registers and memory addresses is present in the documentation, since that's off limits for developers. This makes reverse engineering much more costly and time-intensive than on a PS2 or GC, because you basically need to reverse engineer NVidia's binary drivers.

CXBX works by hijacking the calls to the Xbox's DirectX libraries and translating them to Windows' DirectX. The problem is that games that went through link-time optimization have their code shuffled around in a way that makes it impossible to do, because the code for many DirectX calls will get mixed with the game code in the process. The only way to get those games working is to emulate the GPU at a lower level, so that the original Xbox DirectX can be used and tricked into thinking it's talking to the Xbox GPU.

The Xbox 360 has the same problem as the original Xbox: the DirectX library is a black box.

The PS3, on the other hand, has a graphics API that works much like those in the PS2 and GC, so it's entirely possible to figure out where are the memory addresses and registers used to drive the GPU. It might also be possible to use DirectX 11 GPU compute capabilities to emulate the SPUs, but I'm not sure.
 

LukeTim

Member
Is there really a need to emulate an x86 on an x86?

I don't know exactly how emulators work, but I think I understood that their main task was to read foreign machine code and translate it to the current machine's native code, at a very basic level, of course there will be other things to consider.

Surely, given that PS4 and Xbone games will be compiled for an x86, PC-style architecture, "emulation" should be a bit easier (in a sense) than it was previously... mainly only having to consider OS differences, rather than Instruction Set/Architectural differences. And so emulation for those machines on a PC should be very achievable.


I'm definitely not asserting anything, this is just what I think based on what I (think I) know. Please, call me out if this is BS.
 
Top Bottom