Hollywood (graphics chip)
Hollywood is the name of the graphics processing unit (GPU) used in Nintendo's Wii video game console. It was designed by ATI (now AMD), and is manufactured using the same 90 nm CMOS process as the "Broadway" processor. Very few official details were released to the public by Nintendo, ATI, or IBM. The Hollywood GPU is reportedly based on the GameCube's "Flipper" GPU and is clocked 50% higher at 243 MHz, though none of the clock rates were ever confirmed by Nintendo, IBM, or ATI.
Hollywood is a multi-chip module (MCM) package containing two dies under the cover. One of the two chips, codenamed Napa, controls the I/O functions, RAM access, the Audio DSP, and the actual GPU with its embedded DRAM, and measures 8 × 9 mm. The other, codenamed Vegas, holds 24 MB of "internal" 1T-SRAM and measures 13.5 × 7 mm.
Hollywood also contains an ARM926 core, which has been unofficially nicknamed Starlet. This embedded microprocessor performs many of the I/O functions, including controlling the wireless functionality, USB, the optical disc drive, and other miscellaneous functions. It also acts as the security controller of the system, performing encryption and authentication functions. The Hollywood includes hardware implementations of AES and SHA-1, to speed up these functions. Communication with the main CPU is accomplished via an IPC mechanism. The Starlet performs the WiiConnect24 functions while the Wii console is in standby mode.
- 243 MHz graphics chip
- 3MB embedded GPU memory (eDRAM)
- 2MB dedicated to Z-buffer and framebuffer
- 1MB texture cache
- 24MB 1T-SRAM @ 486 MHz (3.9GB/s) directly accessible for textures and other video data
- Fixed function pipeline (no support for programmable vertex or pixel shaders in hardware)
- Texture Environment Unit (TEV) - capable of combining up to 8 textures in up to 16 stages or "passes"
- ~30GB/s internal bandwidth^
- ~18 million polygons/second^
- 972Mpixels/sec peak pixel fillrate
(Note: ^ denotes speculation: using confirmed AMD GameCube data x 1.5, a crude but likely accurate way of calculating the Wii's results based on clock speeds and identical architecture)
Texture Environment Unit
The Texture Environment Unit (TEV) is a unique piece of hardware exclusive to the GameCube and Wii. The Wii inherited the TEV from Flipper, and the TEV is - to use an analogy from Factor 5 director Julian Eggebrecht - "like an elaborate switchboard that makes the wildest combinations of textures and materials possible."
The TEV pipeline combines up to 8 textures in up to 16 stages at once. Each stage can apply a multitude of functions to the texture. This was frequently used to simulate pixel shader effects such as bump-mapping, or to perform effects such as cel shading. The TEV pipeline is completely under programmer control; as a result, the more time the developer puts in to write effects in software, the better results they will get. On the GameCube, Factor 5's Star Wars: Rogue Squadron II used the TEV for the targeting computer effect and the simulated volumetric fog. In another scenario, Wave Race: Blue Storm used the TEV notably for water distortion (such as refraction) and other water effects. The Wii's TEV unit and TEV capabilities are no different from the GameCube's, excluding indirect performance advantages from the faster clock speeds.
Use in games
Hollywood itself is the subject of much speculation in terms of true potential: some developers claim to have pushed 20 million polygons/sec or more in real world game scenarios, however according to ATI's original data this exceeds the theoretical polygon count.
Developers working with Hollywood face the obvious obstacle of resolution (vs. PS3, 360, PC), video memory, bandwidth and the lack of pixel/vertex shaders. This makes programming for the Wii a challenge compared to other systems. However, developers became familiar with the system over time and managed to work around its limitations.
The resolution is capped at an absolute maximum of 640x480; most games use a figure close to this, such as 640x460, with slightly reduced vertical resolution to compensate for "overscan" on CRT displays. Fortunately, this was used to the Wii's advantage in many cases; despite the lack of definition and clarity, developers used this lack of clarity to hide shortcuts and get away with more than they would have been able to on PS3 or 360. The lower resolution also mitigated the issue of pixel fillrate and memory bandwidth.
The TEV was used to overcome the lack of pixel and vertex shaders. While having no hardware functionality to replace or use standard shaders was a pain initially, developers began to use the TEV to substitute and in some cases, even exceed what may have been possible on a similar system with pixel and vertex shaders. A high-profile example of this is The Conduit and Conduit 2 by High Voltage Software; using their own Quantum3 engine. The engine supports dynamic bump-mapping (via tangent space normals or embossing), reflection and refraction (via real-time cube or spherical environmental maps), light/shadow maps, projected texture lights, specular and Fresnel effects, emissive and iridescent materials, advanced alpha blends, light beams/shafts, gloss and detail mapping, seamless resource streaming, projected shadows, heat distortion and motion blur, interactive water with dual-wave channels and complex surface effects, animated textures, and more.