Notes from Day 5 of UCalgary CPSC 585 Winter 2014

Final day!

Tuesday 7th:

Console Architecture

Our lecturing developers are quite console focused so they should know lots of interesting tidbits.

We’ll talk about

  • what is a console
  • console component
  • differences between consoles and pcs
  • benifits of console development
  • development environment
  • console game design
  • ps3 in detail

What is a console

  • dedicated game machine
  • nintendu wii(U)
  • gamecube
  • n64
  • nds
  • etc

Console history

  • Playstation (1995) – 33MHz mips, 2MB ram, cd storage
  • Plystation 2 (2000) – 300MHz mips, 32MB ram, dvd storage
  • Platstaion 3 (2006) – 3GHz PowerPC, 256MB ram and 256MB vram, dual layer Blu-ray
  • Playstation 4 (2013) – 1.6GHz 8 core x86, 8GB ram, four layer blu-ray + HDD

Differences between consoles and tv

  • TV vs higher resolution monitor
  • tv vs high color accuracy monitor
  • No HDD on some consoles
  • No virtual memory (on linux malloc will never fail since the memory is not allocated until you write to a page).
  • No keyboard nor mouse – makes FPS and RTS hard to implement

Console benefits

  • Fixed target, you can make assumptions without crying in a month
  • “dedicated” hardware, not sure how Xbone falls under this
  • consoles are “cheaper”
  • consoles are “more secure”, “less” copyright infringement “Please ignore the dreamcast”
  • more people buy games, meanwhile I have 144 games in steam. Yes, I’m not a console gamer
  • “Consoles are where the money is for games developers, certainly compared to pc”

Console liabilities

  • underpowered
  • little or no operating system
  • Lots of hardware level programming, DMA, task scheduling
  • closed production and distribution models, I agree

Development environment

  • Games are written on host machine
  • cross-compiled, visual-studios for xbox, GCC and SN for PS3, clang for PS4, codewarrior for nintendo wii.
  • Download to dev console over network or usb.

The Wii was a bit crazy. During development it would be connected over ethernet, usb, scsi, and serial. All at the same time.

Testing and debugging

  • game runs on dev console
  • debugging is done on host connected by network
  • xbox through visual studios
  • ps3 debugged over SN Debugger
  • Emulate DVD instead of burning disk

Development libraries

  • No Operating system but often have libraries
  • Lots of variation between consoles
  • early generation support will be weak
  • sometimes poorly translated from japanese
  • “On the PS2 sony had a nack for writing documentation which was correct, and on time, and useless”. “This sentence describes the exact behaviour for this instructions but not what or why you might use it. It could be useful for clipping but they don’t tell you”. “The assembly documentation gave everything in opcode order. If you knew the opcode of the instruction then fine, but otherwise you’d be doing a linear search. Oh, and there was no index.”

Game design on consoles

  • limited memory
  • lower resolution
  • played in a living room and sometimes in a party

“The GPU in the ps2 was called the emotion engine, granted it did make us feel emotions. Like rage, sadness, and hopeless-ness”

PS3 architecture


  • powerpc
  • Two hardware threads required to capture full performance
  • 2 x 32K L1

7 “synergistic” processing elements SPU, co-processor

  • custom instruction set
  • 256K embedded SRAM
  • 128 x 128bit SIMD registers
  • main memory access via DMA only


High latency but high thurough-put. Every PS3 has 8 SPUs but they were having problems with silicon yield. On average every chip had an error killing at least one SPU.


  • fast to read from GPU (22 GB/s)
  • fast to write from CPU (4GB/s)
  • slow to read from CPU (16MB/s!)

RSX graphics chip

  • 550MHz
  • based on GeForce 7800
  • 8 vertex shaders
  • 24 pixel shaders
  • 24 texture filtering units
  • 8 texture addressing units
  • peak theoretical pixel fill rate 4.4 Gpixel/s

GPU was what held the PS3 back. It betrayed the complex architecture. You cannot use the SPUs to interesting things because they are being used to make up for the power GPU. Each SPU in theory is equal to a 360’s main CPU core but the SPUs are all being used else-where.

Development Environment

  • Compilers, was GCC fork by sony, now SNC made by sony
  • IDEs, Visual Studios plugin available
  • Debuggers, ProDB from sony
  • OpenGL like PSGL
  • GCM used for high-performance

Playstation 3 issues

  • Memory dichotomy, everything is split
  • heterogeneous CPU architecture is hard to program
  • PSX performance is poor. RSX was an afterthought and designed from the beginning.
  • 360 had a more gradual and less rocky path to multithreading

Console Transitions

Warning that he cannot talk much about our current transition due to NDA and not knowing all the interesting tidbits.

  • transitions tend to happen at the same time
  • this generation some exclusive games are launching on both an old and new console.
  • current transition started by WiiU, this might have sparked Sony and Microsoft to release a year later
  • business turmoil, some one might get “dreamcasted”.

Loading times on consoles

  • Each generation RAM increases by 10-16x but optical disk bandwidth only by 2x
  • So for the PS4 and Xbone the goal is getting data on the hdd
  • But a full install takes an hour or more so now you can play a game while installing

We took a break at 10:45 until 11:00, now we’re talking about future of gaming.

Lunch at 12:00

Coming back at 13:00 I asked him about Mantle. He said he could not talk about that, which I think is good news since we can talk about the Ouya.

Had lecture on Memory & Data

Now lecture on Project Management

Took 15 minute break at 15:00. At 15:15 we started looking at Fifa 14 and NBA Live 14.

For our last lecture is a talk on getting a game in the games industry. If you’re interested in working in the games industry you’ll want to take this course. Sorry I will not be blogging this part, I’ll leave it as a treat for future students.

Leave a Reply

Your email address will not be published. Required fields are marked *