Why are the advantages/disadvantages of using an X86-based CPU in a console?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Cogman

Lifer
Sep 19, 2000
10,286
145
106
Original Xbox had a 733Mhz Coppermine CPU.

Any advantage x86 has is porting games over to PC doesn't mean anything when the hardware cost would be too high compared to licensing n IBM or ARM design. Neither Intel or AMD will allow another company to license a design out and have Microsoft or Sony manufacture it where ever they want. Microsoft found this out the hard way for Xbox when they couldn't renegotiate with Intel or Nvidia to get lower cost as new processes came around.

Intel is the only company that can allow an x86 design to be licences out. It is a small miracle that global foundries ever took off.
 

Bryf50

Golden Member
Nov 11, 2006
1,429
51
91
I remember reading that the issue with x86 processors in consoles is that Intel and AMD don't sell the plans for their processors but the cpu's themselves. So every Pentium 3 processor in the Xbox had to be made by Intel and if Intel stopped fabing them they'd be shit out of luck. Whereas IBM and ARM don't sell the processors but the designs for them.
 

(sic)Klown12

Senior member
Nov 27, 2010
572
0
76
It is a small miracle that global foundries ever took off.

Didn't that happen because Intel still had the case against hem from AMD in the courts? I thought they backed off on that and renegotiated the cross-license agreement so AMD would agree to settle out of court.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
Didn't that happen because Intel still had the case against hem from AMD in the courts? I thought they backed off on that and renegotiated the cross-license agreement so AMD would agree to settle out of court.

Yes, that is pretty much how it went down. There were a couple of suits going through on both sides for lots of stuff. It doesn't seam like AMD gave much for dropping their suits, though, Intel doesn't really see them as a strong competitor (more of "anti-monopoly" insurance).
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
I remember reading that the issue with x86 processors in consoles is that Intel and AMD don't sell the plans for their processors but the cpu's themselves. So every Pentium 3 processor in the Xbox had to be made by Intel and if Intel stopped fabing them they'd be shit out of luck. Whereas IBM and ARM don't sell the processors but the designs for them.

Intel, up until very recently, has had a strict "You must do your own fabbing" clause on their x86 architecture. They simply were not willing to bend on this for anyone.
 

Anarchist420

Diamond Member
Feb 13, 2010
8,645
0
76
www.facebook.com
Dx11 is irrelevant, it doesn't offer more functionality nor performance comparing to Dx9 other than cleaner interface (except in some rare cases).
Actually XBOX was the most powerfull console at the time ( but on paper maybe it didn't look so). Even GC looks better than PS2 especially when you both compare it on emulator in full HD. And NullDC is working fine.
The reason Dolphin looks better than PCSX2 is because Dolphin doesn't use the low precision RGBA format that the Gamecube used. Granted, Gamecube games did often have more detail than PS2 games, but they also had a lot more artifacts because the gamecube had much less frame buffer precision (both RGBA and depth) and it used a 6:1 texture compression ratio for textures.

And no, nullDC isn't working fine yet, as it has neither aa support nor the depth precision that the original Dreamcast had and that's because the latest nullDC build is only using DX9. DX9 can't do AA with deferred rendering without hackery, and it's limited to 24 bit depth buffer precision. The DC used 32 bit FP depth testing.
 

wahdangun

Golden Member
Feb 3, 2011
1,007
148
106
the cons :
1. its will be easy to be hacked and modded
2. not to secure
3. easily reverse engineered so there will be emulator, and there is an emulator for the first X-box, I even playing turok and Hallo games with it with my P4 very easy.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
the cons :
1. its will be easy to be hacked and modded
2. not to secure
3. easily reverse engineered so there will be emulator, and there is an emulator for the first X-box, I even playing turok and Hallo games with it with my P4 very easy.

1. Not true. an x86 platform can be just as hard to hack/mod as a regular architecture.
2. Also not true. Security is more a software issue than a hardware issue.
3. Not accurate. The Xbox emulator out there simply sucks and has done so for years. In fact, turok and Halo are about the only games it CAN play. The PS2 has had an emulator almost as long as Xbox has had an emulator. It, on the other hand, can play a multitude of games.
 

Tuna-Fish

Golden Member
Mar 4, 2011
1,676
2,558
136
1. Not true. an x86 platform can be just as hard to hack/mod as a regular architecture.
Any architecture that doesn't carry around things like the A20 gate will be harder to hack/mod.

2. Also not true. Security is more a software issue than a hardware issue.
This is completely false. When the attacker has full physical access, there's basically nothing you can do to stop him from doing what he wants by software alone. Securing a console against it's users is very much about hardware, and x86 is worse there because of the decades of hacks and quirks it carries with it that makes it hard to reason about. Also, hardware security requires you to consider the security aspects of every feature of the processor, both as isolated and as parts of the whole, which is something that is simply not done in x86.

As an example, do you know what happens when instead of ram, there is a fpga plugged into the ram socket that usually acts as ram, but sometimes sends unsolicited "responses" back to the cpu meant to corrupt on-chip ram?

hint: something horrible for security on x86. Spoofing outside buses is a technique that's actually being used by bored poor 20-something hackers.
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,286
145
106
Any architecture that doesn't carry around things like the A20 interrupt will be harder to hack/mod.
An X86 SOC is going to be just as impossible to hack/mod as any other SOC architecture. Using encrypted modules, translator modules, etc will also significantly increase the difficulty. Be assured, there are several things that can be done to make the x86 arch harder to hack into.

This is completely false. When the attacker has full physical access, there's basically nothing you can do to stop him from doing what he wants by software alone. Securing a console against it's users is very much about hardware, and x86 is worse there because of the decades of hacks and quirks it carries with it that makes it hard to reason about. Also, hardware security requires you to consider the security aspects of every feature of the processor, both as isolated and as parts of the whole, which is something that is simply not done in x86.

As an example, do you know what happens when instead of ram, there is a fpga plugged into the ram socket that usually acts as ram, but sometimes sends unsolicited "responses" back to the cpu meant to corrupt on-chip ram?

hint: something horrible for security on x86. Spoofing outside buses is a technique that's actually being used by bored poor 20-something hackers.

When he said "secure" I took that to mean secure communication, not secure from hacking (as that overlaps his first point).

None of the attacks you listed would necessarily be fixed by moving to a new architecture. I agree, once the attacker has physical access, it is pretty much impossible to keep something secure forever. But it is possible to delay them (from any arch). Which is one reasons why I think DRM is somewhat retarded.
 

Gundark

Member
May 1, 2011
85
2
71
PS3 have an awesome hardware level of security, but it didn't help them when an serious effort to hack it was made. I remember an interview with one hacker who worked on jailbreak and he said that it took them just a few weeks to do it ( altough, i didn't find that article right now, so i might be wrong).

You surely did not played Turok and Halo on "one" emulator. There was Xeon that was capable only for Halo "ingame" and nothing else.
Other than that there are cxbox capable of Turok, Futurama, Smashing drive and Robotech, and dxbox (Smashing drive, Battlestar galactica, Gauntlet).

As for being it easy to reverse engeneering and making it easier to make emulator compared to other consoles, here is what cxbox developer have to say about it.

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

Cogman

Lifer
Sep 19, 2000
10,286
145
106
PS3 have an awesome hardware level of security, but it didn't help them when an serious effort to hack it was made. I remember an interview with one hacker who worked on jailbreak and he said that it took them just a few weeks to do it ( altough, i didn't find that article right now, so i might be wrong).

You surely did not played Turok and Halo on "one" emulator. There was Xeon that was capable only for Halo "ingame" and nothing else.
Other than that there are cxbox capable of Turok, Futurama, Smashing drive and Robotech, and dxbox (Smashing drive, Battlestar galactica, Gauntlet).

As for being it easy to reverse engeneering and making it easier to make emulator compared to other consoles, here is what cxbox developer have to say about it.

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

Sorry, but a lot of his complaining is really due to bad design decisions. For example, Why is he trying to reimplement every x86 instruction? If he makes the assumption that the code is going to run in an x86 environment, things becomes a whole heck of a lot easier. Things only get difficult in that aspect if you are trying to go from x86 to, say, ARM.

That being said, there are definitely difficult things that he would have to dealt with, but I personally think they took the wrong approach.
 

wahdangun

Golden Member
Feb 3, 2011
1,007
148
106
1. Not true. an x86 platform can be just as hard to hack/mod as a regular architecture.
2. Also not true. Security is more a software issue than a hardware issue.
3. Not accurate. The Xbox emulator out there simply sucks and has done so for years. In fact, turok and Halo are about the only games it CAN play. The PS2 has had an emulator almost as long as Xbox has had an emulator. It, on the other hand, can play a multitude of games.

1. why not just use different architecture that no one use like then? It will be harder and cheaper in the long run
2. Yes it is, the first xbox easyly hacked because x86 and they use security hole in the james bond games, it can even allow them to install linux in it.
3. Not true like other have said there are other emulator that can play different games, and because the first xbox is not popular, and majority of its games have been released to pc, so the emulator development become stall and just a few that intrested in it.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
1. why not just use different architecture that no one use like then? It will be harder and cheaper in the long run
Look, don't get me wrong, I'm NOT advocating the x86 for consoles (I've been pretty clear about that) but rather, I'm pointing out that this reason for not using it was not accurate.

2. Yes it is, the first xbox easyly hacked because x86 and they use security hole in the james bond games, it can even allow them to install linux in it.
So, it was hacked because of a software issue that had nothing/little to do with the x86 arch.

3. Not true like other have said there are other emulator that can play different games, and because the first xbox is not popular, and majority of its games have been released to pc, so the emulator development become stall and just a few that intrested in it.
So its count is up to what? 5, 10 games? Come on. I've looked into xbox emulators, NOBODY uses them because they blow. Just about any other platform (other than the newest) has a better emulator than the xbox. Hell, the TI-89 has emulators that are pretty much spot on, are you seriously going to try and argue that the TI has greater interest from an emulation stand point than the second most popular gaming console of its time?
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
21,074
3,577
126
i dont think consoles will ever be x86 due to security reasons.

it would open up a lot more trouble then merit purely from a economics standpoint.

functionality wise, it would be better. Make everything universal, the pc you use directly in the same family as the gaming console.

Even down to the OS, to replace the HTPC all together into a console / htpc.

However once again... purely a security point nightmare in every angle i look at it.
 

ElFenix

Elite Member
Super Moderator
Mar 20, 2000
102,402
8,574
126
Original Xbox had a 733Mhz Coppermine CPU.

Any advantage x86 has is porting games over to PC doesn't mean anything when the hardware cost would be too high compared to licensing n IBM or ARM design. Neither Intel or AMD will allow another company to license a design out and have Microsoft or Sony manufacture it where ever they want. Microsoft found this out the hard way for Xbox when they couldn't renegotiate with Intel or Nvidia to get lower cost as new processes came around.

and there is the real problem with using x86. the console market is all about driving down cost as much as possible by large scale integration of the various processors that make up the first chipset. intel refuses to do that. amd's license probably doesn't allow it to do that.