But more than that, I was thinking my HTPC has got a dual-core AMD chip in it that was like $50, it's got an ATI Dx10 part that was again about $50. It's got a nice stereo-cabinet like case and it's very cool and quiet. I'm pretty sure I could make a console from off the shelf retail parts that would be faster than an Xbox 360 or PS3. Yeah yeah the 360/PS3 are faster in theory if you just count flops or something, but the massive advantage of a proper PC CISC OO core would make my homebrew console faster on most real world code.
Obviously those parts weren't so cheap when the 360 or PS3 were being developed. Also I guess the cost of all the little bits adds up : case, mobo, PSU, DVD drive, hard drive. Still, it's pretty upsetting that our consoles are these awful PowerPC chips with weird GPUs when a proper reasonable computer is so cheap.
I searched for some historical CPU/GPU data and found this:
ReplyDeletehttp://web.archive.org/web/20050822115210/http://www.cmm.bg/cgi-bin/most/pricelist.pl
A few months before the Xbox 360 launched, a single-core Celeron 1800 or Sempron 2200+ (whatever those numbers mean, probably not MHz) cost around $65; the $60 GPU was either a Geforce 5500 (yuck), or a Radeon 9550 (passable).
Even if we handwave something about retail vs. very-bulk-order prices, and vendor subsidize consoles and go to $120 CPUs, this only gets us a 1.8 GHz Pentium 4, or an Athlon XP "3000+"; the $120 GPU would be either a 6600, or a 9600XT/lower clocked 9800.
My point is... well nothing you didn't know before, but at least I'll be slightly happier tomorrow while weeding out load-hit-stores one by one.
"Yeah yeah the 360/PS3 are faster in theory if you just count flops or something, but the massive advantage of a proper PC CISC OO core would make my homebrew console faster on most real world code."
ReplyDeleteDon't forget memory. Anything you build now will probably have at least 2GB of RAM and 512MB of VRAM. Consoles have a lot of number-crunching power, but one way or another, a notable fraction of that is usually spent dynamically decompressing various types of data, and a lot of the memory bandwidth is tied up in moving the resulting data streams around.
Besides, optimizing for performance is still rewarding work (even though the inorder PPCs just aren't enjoyable chips to program for). Optimizing memory usage, OTOH, is just a chore; the absolute best-case scenario is that everything now fits and the game didn't get uglier or slower in the process. And the more common case ("ok, it fits now, but ugh, some of these textures sure took a beating, and the character animation got a bit wobbly") feels like a pyrrhic victory.