So sc7, would something along the lines of an in-game XMB be difficult to code into the OS, or is this something straightforward? I'd love to talk code with you sometime you're free.
Ah, I love to talk code, ask me any time, I'll be glad to discuss.
Anyway, in game XMB is theoretically tougher for the PS3 because of the way it uses the Cell. I'll start by saying that it's usually not a difficult feature to code at all, depending on how deep you want to let it go. Look at the Xbox 360, it was there from the start, and it's a limited function of what you could do at the dashboard. Obviously, it would be in Sony's best interest if the entire XMB wasn't included (do I need access to preferences, videos, and photos in game? No, just music and Playstation Network). Therefore, they'd only need to code an extension to the XMB. Now, I'm not sure how the XMB is configured in their software, but they way they pop new things into the XMB, I'm going to assume it's some sort of resource list file that links to all of the functions, and they could easily create a specific different list for the in game mode, so that only the desired functions are there.
Now, the Xbox 360 was so easy to code, because the 360's CPU has 3 PPUs, or "General Purpose" cores, (why many argue the point the 360 is "better for gaming"). This leads me to an aspect many debating the subject overlook, and fail to understand the complexity. When you press the dashboard button on the 360, the background game dims, and either freezes or pauses. For all intents and purposes, because it was a built in feature of the console (making it easier), I'm going to say it's an entirely different command the game gets from either pause or a CPU freeze, and rather, that's up to the developer. For the PS3, since games are already out with no such feature (actually, when you press the PS button, I believe the game continues to play). If not, probably the PS3's largest hurdle is getting the screen to dim and the game to either freeze, or get the pause command and display the pause menu wherever it is. (Could be sticky with online modes).
To the point as to why this is so much harder on the PS3 than the Wii or 360 would and is, is because direct communication from an SPU to a PPU isn't easy. That may be one of the reasons I know it doesn't freeze PS2 mode (doesn't interact directly with the Emotion Engine), (It will, in the end, be like 360 is with Xbox games, dashboard unavailable). But the main part Sony may have to tinker with is the SPU having to "interact" directly, with code running in the PPU, and being able, essentially, for the SPU to directly control whatever is going on in the PPU. (I read somewhere such is routed through the RSX, which would REALLY be tricky).
And I think this is why some people claim the PS3 is convoluted to develop for, 3 PPU cores are undoubtedly easier to have "intercommunication", than when you have specialized cores. Many also claim because the 360's ram is combined (ableit giving more overall memory), that it bottlenecks compared to how the PS3 has it split.
To conclude, it's more difficult to code, but not neccisarily impossible. The idea of an in game XMB is easy, but it's the PS3's hardware which greatly complicates the design of such a feature. That said, it's nothing compared to writing a game that utilizes all SPUs directly, as they'd all have to, at some point, communicate with code running in the PPU.
sc7