Title: Multimedia Programming
1Multimedia Programming
Sara Garcia Ramirez 66406B Maria Yolanda Raton
Perez 66424A Javier Moreno Molinero 66419S Jorge
Navarro Medrano 66421U
2Contents
- History of game consoles
- Nokia N-Gage
- Sony PlayStation 2
- Microsoft XBox360
3Evolution Hw / Sw in game consoles 1950s and
1960s
- 1952 OXO ? the first known graphical game to run
on a computer. - The player plays against the computer.
- Tic-tac-toe .
- output was displayed on the computer's 3516
pixel cathode ray tube. - 1966 Chase ? a simply video game that could be
displayed on a standard television. - 1968 Ralph Baer had a prototype that could play
several different games, including versions of
table tennis and target shooting. - 1967 Bill Harrison developed the light gun and,
with Bill Rusch, created video games
4Evolution Hw / Sw in game consoles 1970s
- 1972 Atari ? founded by Nolan Bushnell.
- Pong ? The first arcade video game success.
- The coin-operated arcade video game craze had
begun. - Monitor Raster, standard resolution, 33
cm/13-inches (Horizontal) Black and White. Input2
rotary controllers. - 1972 Tic-Tac-Toe ? The first portable, handheld
electronic game. - fragile LCD display and a very narrow selection
of games. - they paved the way for more advanced single-game
handhelds, called "LED games" or "LCD games"
depending on their display system .
5Evolution Hw / Sw in game consoles 1970s
- The first home video games
- 1972 Magnavox Odyssey ? the first video game
console for the home market. - the Odyssey is analog rather than digital.
- gamers could put on their TV screen to simulate
colour graphics, though only two TV sizes were
supported.
6Evolution Hw / Sw in game consoles 1970s
- Used a type of removable circuit card that
inserted into a slot similar to a cartridge slot.
- The Odyssey was successful enough to support an
add-on peripheral ("light gun").
7Evolution Hw / Sw in game consoles 1970s
- Early 8-bit home consoles
- By the mid-1970's video games were found on
cartridges. - Programs were burned onto ROM chips that were
mounted inside plastic cartridge casings that
could be plugged into slots on the console. - Microprocessors in the consoles read the
cartridge memory and ran whatever program was
stored there. - 1976 ? The Fairchild VES was the world's first
cartridge-based video game console.
8Evolution Hw / Sw in game consoles 1970s
- 1977 Atari ? released its cartridge-based console
called the Video Computer System (VCS), later
called Atari 2600. - 1978 Magnavox ? released its
- cartridge-based console, the Odyssey 2
- alphanumeric membrane keyboard,
- standard joystick design
- music, and sound-effects enhancement.
9Evolution Hw / Sw in game consoles 1980s
- 1980 Intellivision ? introduced by Mattel.
- processor with instructions 10 bits and
- registers 16 bits
- 1982 Vectrex ?
- own monitor.
- illusion of color
- peripherals light pen
- and 3D imager
10Evolution Hw / Sw in game consoles 1980s
- 1982 Colecovision ?
- The controller joystick, two side buttons, and a
number-pad - A second module came with steering wheel and
pedal controllers - the first console to feature the hit Donkey Kong,
by Nintendo. - Cartridges were 2KB ROMs for Atari 2600 and 4K
for Intellivision - This upper limit grew steadily from 1978 to 1983,
up to 16KB for Atari 2600 and Intellivision, 32KB
for Colecovision
11Evolution Hw / Sw in game consoles 1980s
- 1985 Nintendo Entertainment System (NES)
- 8-bit video game console released by Nintendo
- Designed to resemble the front-loading mechanism
of a VCR. - It was bundled with Super Mario Bros
72-pin cartridges - RF modulator and RCA composite
- output cables.
- The game controller, simple five-button layout
two round buttons labelled "B" and "A," a "Start"
button, a "Select" button, and a cross-shaped
D-pad to replace the bulkier joysticks that most
earlier gaming consoles had utilized
12Evolution Hw / Sw in game consoles 1980s
- 1986 Master System
- An 8-bit video game console released by Sega
- Graphics VDP (Video Display Processor)
- 256 possible colors.
- 8x8 or 8x16 pixel sprites, max 64
- Horizontal, diagonal, vertical, and partial
screen scrolling - ROM 64 kbit (8 kB) to 2048 kbit (256 kB),
depending on built-in game - Main RAM 64 kbit (8 kB)
- Video RAM 128 kbit (16 kB)
- Notable games Sonic
- Evolution with Master System II
13Evolution Hw / Sw in game consoles 1990s
- 1989 Game Boy
- CPU Custom 8-bit Sharp Z80
- RAM 8 kByte S-RAM.
- Video RAM 8 kByte
- Sound4 channel stereo sound.
- Display Reflective LCD 160 x 144 pixels
- Color Palette 4 shades of "gray" (green to
black) - Communication Up to 4 Game Boys can be linked
together via serial ports - Evolution Game Boy Pocket, Game Boy Light , Game
Boy Color, Game Boy Advance, Game Boy Advance SP,
Game Boy Micro
14Evolution Hw / Sw in game consoles 1990s
- 1991 Sega Game Gear
- Main processor Zilog Z80 (8 bit)
- Processor speed 3.58 MHz (same as NTSC dot
clock) - Resolution 160 x 144 pixels
- Colors available 4,096
- Colors on screen 32
- Maximum sprites 64
- Sprite size 8x8 or 8x16
- Screen size 3.2 inches (81 mm)
- Audio 4 channel tone generator
- RAM 8 KiB
15Evolution Hw / Sw in game consoles 1990s
- 16-bit era
- 1990 Super Grafx
- Memory Work RAM 8KB, Video RAM 64KB
- Colors available 512
- 1990 Neo-Geo
- Internal RAM Work RAM 64 KB, Video RAM 68 KB,
Z80 RAM 2 KB - Removable Memory Card 8kb or 68-pin
16Evolution Hw / Sw in game consoles 1990s
- 1990 Sega Mega drive
- Converted to display PAL 50-Hz signal
- English-language settings
- Cartridge lock removed
- High Definition Graphics
- Stereo Sound
17Evolution Hw / Sw in game consoles 1990s
- 1991 Super nintendo
- Sound Controller Chip 8-bit Sony SPC700 CPU for
controlling the DSP - Sound RAM 64 KB shared between SPC700 and S-SMP.
- Picture Processor Unit 16-Bit
- Video RAM 128 KB
- 64 KB of VRAM for screen maps and tile sets
- Palette 256 entries 15-Bit color depth (RGB555)
for a total of 32,768 colors.
18Evolution Hw / Sw in game consoles 1990s
- 32-bit era
- 1994 Sega Saturn
- Processors Two Hitachi SuperH-2 7604 32-Bit RISC
processors at 28.6MHz (50-MIPS),SH-1 32-bit RISC
processor (controlling the CD-ROM) - Memory 1MB (8 Megabits) SDRAM, 1MB (8 Megabits)
DRAM, 512KB (4 Megabits) VDP1 video RAM - Peripherals Saturn digital gamepad (8-way pad, 6
buttons)
19Evolution Hw / Sw in game consoles 1990s
- 1995 PlayStation
- MIPS R3000A-compatible (R3051) 32bit RISC chip
running at 33.8688 MHz - Operating Performance of 30 MIPS
- Bus Bandwidth 132 Mbit/s
- Instruction Cache 4 kB
- Data Cache 1 kB (non associative, just 1024 bytes
of mapped fast SRAM) - Maximum of 16.7 Million Colours
20Evolution Hw / Sw in game consoles 1990s
- Resolutions from 256224 to 640480
- Adjustable frame buffer
- Unlimited Colour Lookup Tables
- Maximum of 4000 88 pixel sprites with individual
scaling and rotation - Evolution Ps one, Ps one Lcd
21Evolution Hw / Sw in game consoles 1990s
- 1996 Nintendo 64
- Processor Custom 93.75 MHz MIPS R4300i series
64-bit RISC CPU - RAM 4 MB Rambus RDRAM
- Bandwidth 562.5 MB/s
- Bus Custom 9-bit Rambus at 500 MHz (max)
- Graphics SGI 62.5 MHz contains two
sub-processors. - RSP (Reality Signal Processor) controls 3D
graphics and sound - Resolution 256x224 to 640x480 pixels
flicker-free, interlaced - Colors 16.7 million (32,000 on screen)
- Sound 16 bit ADPCM Stereo
- Evolution games Super Mario 64, Zelda
22Evolution Hw / Sw in game consoles 1990s
- 1999 Dreamcast
- CPU SH-4 RISC CPU with 128 bit graphic
- Memory Main RAM 16 MB (Hyundai), Video RAM 8
MB - Sound RAM 2 MB
- Sound Engine Sound Processor with 47MHz 32-Bit
ARM7 RISC CPU GD-ROM Holds up to 1.2 GB of data.
- Inputs USB-like "Maple Bus". Four ports support
devices such as digital and analogy controllers,
steering wheels, joysticks, keyboards and mouse
23Evolution Hw / Sw in game consoles 2000s
- 2000 Sony released the PlayStation 2.
- The Sims was released.
- 2001 Nintendo released the GameCube and the
successor to the Game Boy Color, the Game Boy
Advance. - Microsoft entered the videogame console industry
by releasing its new home console, the Xbox. - 2004 Nintendo released a brand new type of
portable handheld console, the Nintendo DS. - 2005 Sony PlayStation Portable (PSP)
- Microsoft announces Xbox 360
24Contents
- History of game consoles
- Nokia N-Gage
- Sony PlayStation 2
- Microsoft XBox360
25Nokia N-Gage
- Offers communication and entertainment, game,
music, e-mail client, Bluetooth connectivity. - "N-Gage is still being sold but it was not a
success in the sense of developing a new
category," said Antti Vasara, Nokia's vice
president for corporate strategy, admitting his
failure.
26Nokia N-Gage Technical Specs
- Operating System
- Symbian OS v6.1
- Java Technology
- CLDC 1.0
- Wireless Messaging API (JSR-120)
- Mobile Media API
- (JSR-135)
- MIDP 1.0
- Nokia UI API
- Browser
- WAP 1.2.1
- XHTML
- Sound Formats
- AAC
- AMR (NB-AMR)
- MIDI tones (poly 24)
- MP3
- WAV
- Colour Formats
- Color Depth 12 bit
- Resolution 176 x 208
- Video Support
- 3GPP formats (H.263)
27Software development for Ngage
- For N-gage the Nokia developer's Suite for J2ME
is called N-gage developer program
28Software development for Ngage
- The Nokia Developer's Suite for J2ME
- A UI Designer, which enables drag-and-drop
creation of user interface layouts and tiled
layers for games. - A Screen Flow Designer, which provides
drag-and-drop features that speed up the creation
of application logic
29Software development for Ngage
- Normally, the games for mobile phones are
implemented using Java (Mobile Java) - But, as N-gage uses Symbian OS, it is possible to
implement games for this mobile phone/console
using C.
30APIs for Nokia N-gage
- Java APIs
- CLDC 1.0 - MIDP 1.0
- The Mobile Information Device Profile (MIDP),
when combined with the Connected Limited Device
Configuration (CLDC), is the Java runtime
environment for today's most popular compact
mobile information devices, - Nokia UI API
- Low level access to image pixel data
- Transparency support
- Full screen drawing
- Sound
- Vibration and device lights control
- Wireless Messaging API
- Mobile Media API
31Contents
- History of game consoles
- Nokia N-Gage
- Sony PlayStation 2
- Microsoft XBox360
32PlayStation 2 Introduction
- Release in Japan on March 2000.
- The PlayStation brand's strength has lead to
strong third-party support for the system. - More popular gaming console (90 millions unit
shipped). - Extraordinary good platform to develop multimedia
applications.
33PlayStation 2 - HW Overview
- Processor 128-bit "Emotion Engine"
- Processor clock speed 300 MHz
- Floating point unit (FPU) co-processor operating
at 6.2 gigaflops - Bus speed 3.2 GB per second
- Main processor MIPS R5900 CPU core, 64 bit
- Original Play Station CPU core as I/O processor
- Graphics "Graphics Synthesizer" clocked 150 MHz
- Embedded cache
- 4 MB VRAM
- Resolution 640x480 or 320x240 interlaced.
Colours 24-bit(16,777,216) maximum, as well as
16-bit (65,536) mode - Geometry engine
- Alpha channel , Anti-aliasing, Bezier surfacing ,
Gouraud shading, Mip mapping, Perspective
correction , Z-buffer. - Polygon rendering 75 million polygons per second
34PlayStation 2 - HW Overview
- Audio SPU2 (CPU)
- Channels 48
- Sample rate 44.1 KHz or 48 KHz
- Memory 2 MB RAM
- Optical digital output
- Memory 32 MB RDRAM
- Operating system Proprietary Sony
- Game medium Proprietary 4.7-GB DVD
- Supports original PlayStation CDs
- Video DVD support
- Audio CD support
- Drive bay (for hard disk or network interface)
- Other features Two memory card slots, Two USB
ports, FireWire port (called iLink by Sony) .
35PlayStation 2 Emotion Engine
- The Emotion Engine is the name of the Central
Processing Unit (CPU). - Designed by Toshiba and Sony.
- Two times faster than a 733 MHz Pentium III.
- 128 bit technology, integrated on a single 0.18
micrometer process technology chip. - Based on the MIPS R5900, is sort of a combination
CPU and DSP processor, whose main function is
simulating 3D worlds. - Image processing unit (basically an MPEG2
decoder).
36PlayStation 2 Technical Data
- R5900
- instructions and computations performed by the
processor are simpler and fewer. - Superscalar they can perform multiple
instructions at the same time. - Floating point unit (FPU) a special processor
that is dedicated to handling complex
mathematical equations, with floating point
operations. - The complexity of such numbers can create a
tremendous bottleneck if the main processor. To
alleviate this, the non-integer numbers are sent
to the FPU (6.2-gigaflops) .
37PlayStation 2 Technical Data
- Hardware effects that are handled by the Graphics
Synthesizer - Alpha channel to add transparency effects to an
object. This is a special graphics mode used by
digital video, animation and video games to
achieve certain looks - 24 bits are used to define the amounts of red,
green and blue, 8 bits each, needed to create a
specific colour. Another 8 bits are used to
create a Gray-scale mask that acts as a separate
layer for representing levels of object
transparency. - The degree of transparency is determined by how
dark the gray in the alpha channel is. By making
an area of the mask dark gray, you can make an
object appear to be very transparent By making
it light grey, you can create special fog or
water effects.
38PlayStation 2 Technical Data
- Bezier surfacing is a 3-D modelling process that
calculates how many polygons are needed to create
an object. - Perspective correction makes the texture map
resize at the same rate as the object that it is
mapped on. - Mip mapping It is a form of texture mapping
whereby different sizes of each texture map are
made. In essence, the processor replaces the
appearance of an object with a more detailed
image as you move closer to the object in the
game .
39Multimedia Features
- Compatible with older PlayStation games
- DVD Video playback, CD-ROMs or higher-capacity
DVD-ROMs. - USB and FireWire ports.
- Online play separate unit called the Network
Adaptor. Dynamic Network Authentication System
(DNAS). The purpose of this system is to prevent
piracy and online cheating.
40Hardware Features
The incredible amount of heat generated by the
processors requires this huge heat sink. View of
the Emotion Engine and Graphic Synthesizer
processors.
41Multimedia Features
- Controller
- Is the primary user interface for the PlayStation
2. - With its winged shape, analog controls and
abundance of well-positioned buttons, it is easy
to use yet powerful. - The standard PS2 controller has 15 buttons all
of them, except for analog, Start and Select are
analog (pressure-sensitive), As the button is
pressed harder, more of the disk comes into
contact with the strip, gradually increasing the
level of conductivity .
42Multimedia Features
- PS2 controllers also have two analog joysticks.
- Two potentiometers, variable resistors, are
positioned at right angles to each other below
the joystick. - Dual Shock 2 controller, actually the reason for
its name, is force feedback. This feature
provides a tactile stimulation to certain actions
in a games.
43Software Development
- The PS2 is a powerful machine that has the
potential to be used in a lot more ways than just
a games machine. - Currently there are a number of different avenues
to develop programs for PlayStation2 - PS2DEV home brew development community. These
are people that use open source, GPL free
software to develop programs for PS2. - Sony released Linux for the PS2 in 2002. It
includes a hard drive, LAN connection and other
bits and pieces to turn PS2 into a Linux machine.
44Software Development
- Official Development Kits (If you have plenty of
money to throw around) you could always approach
Sony for an official development kit. - Sony used to make its official PlayStation 2 API
available only to licensed PlayStation
developers. This is because Sony wanted to
restrict how many people could write a
PlayStation 2 game, and wanted to profit from
them as much as possible. - Develop Tools
- Toolchain GCC EE/IOP/DVP compilers for Win32,
buildscripts for EE and IOP, PS2Dev Environment
for Win32 - Misc image/texture/icon utilities. PS2 Image
Studio byLion, bmp2icon v0.2, MilkShape
plug-in Icon Importer/Exporter v0.8 - Debugging Tools.Win32 Cvgwin Remote GDB, test
release, ps3reg PS2DIS Hanimars disasembler.
45Software Development
- PlayStation 3 is based entirely on open and
publicly available APIs - Cg, Nvidia's C-like shading language.
- COLLADA, an open, XML-based file format for 3D
models. - OpenGL ES 2.0, the embedded version of the
popular OpenGL graphics API. - OpenMAX, a collection of fast, cross-platform
tools for general "media acceleration," such as
matrix calculations. - OpenVG, for hardware-accelerated 2D vector
graphics.
46Contents
- History of game consoles
- Nokia N-Gage
- Sony PlayStation 2
- Microsoft XBox360
47XBOX 360 Introduction
- The last game consoling launched (22-11-2005)
- Developed by Microsoft. XBOX is the Microsofts
first inclusion in game consoling. - XBOX 1 (the previous model) sold more than 20
millions units. - Microsoft predicts to sell 5 millions of XBOX 360
until March
48XBOX 360 Hardware
- Custom IBM PowerPC-based CPU
- Three symmetrical cores running at 3.2 GHz each
- Two hardware threads per core
- 128 128 bits registers per hardware thread
- 1 MB L2 cache
- CPU Game Math Performance
- 9 billion dot product operations per second
- Custom ATI Graphics Processor
- 10 MB of embedded DRAM
49XBOX 360 Hardware
- Memory
- 512 MB
- Storage
- Detachable and upgradeable 20-GB hard drive
- 12x dual-layer DVD-ROM
- I/O
- Support for up to four wireless game controllers
- Three USB 2.0 ports
- Two memory unit slots
50XBOX 360 Multimedia
- Optimized for Online
- Nowadays, all the consoles must be prepared for
network gaming - Ethernet port
- Wi-Fi 802.11a, 802.11b and 802.11g
51XBOX 360 Multimedia
- Digital Media Support
- Support for DVD-Video, DVD-ROM, DVD-R/RW,
DVDR/RW, CD-DA, CD-ROM, CD-R, CD-RW, WMA CD, MP3
CD, JPEG Photo CD - High-Definition Game Support
- Standard-definition and high- definition video
output supported - Audio
- Multi-channel surround-sound output
- Supports 48-KHz 16-bit audio
52Programming games for XBOX 360
- Xbox 360 games are programmed using the Microsoft
Visual Studio development system. - Development kit (XDK) supports development using
either C or C. - Recommended software for writing Xbox 360 code
using a PC - Microsoft Visual Studio 2005 or Visual Studio
.NET 2003 - Direct3D 9.0 Software Development Kit
- Microsoft Cross-Platform Audio Creation Tool
(XACT)
53Programming games for XBOX 360
- Multithread your game engine. Single-threaded
games use only a third of the processing power. - Prefer using native Windows thread APIs and
synchronization primitives. - A simple architecture for multithreading on Xbox
360 uses one thread for world updates and another
thread for graphics processing. - An additional CPU core can be used for audio,
decompression, geometry generation or other game
tasks. - Another way to utilize additional cores is with
OpenMP.
54Programming games for XBOX 360
- Xbox 360 does not have hard disk paging like
Windows. - Access memory carefully.
- Optimize for the L2 cache. Xbox 360 has a 1MB L2
cache. - Avoid walking linked-lists that has nodes spread
across memory. - Avoid walking any large data structure more than
once per frame. - Prefer contiguous data structures, like arrays.
55Programming games for XBOX 360
- Prefer calculating data to loading it. The Xbox
360 CPU is a mathematical monster. - For best performance, prefer native Windows
functions to C runtime functions. For instance,
prefer ReadFile over fread.
56Programming games for XBOX 360
- Graphics
- Target the Direct3D 9.0 interface
- Direct3DX utility functions are not tuned for
Xbox 360 - Support a minimum frame buffer size of 1280
720. - HLSL shader model 3.0 programming is the right
way to harness the GPU. - Avoid using the fixed-function pipeline. It is
not supported on Xbox 360. - Use PIX, a performance-analyzing tool for game
and graphics tuning.
57Programming games for XBOX 360
- Audio
- XACT is the preferred way of creating and playing
audio content on both PC and Xbox. - Source material should be sampled at a minimum
rate of 48KHz. - XMA is the native audio format for Xbox 360.
58Programming games for XBOX 360
- Networking
- Use basic sockets or Winsock for network
programming - Prefer UDP as the network protocol for most games
- Plan for voice chat within your game
- Contents
- Update your content pipeline to support
big-endian hardware. Intel-based PCs are
little-endian, while Xbox 360 is big-endian. - Ensure the game art pipeline supports features
like vertex compression, texture compression, and
triangle stripping.
59Programming games for any console
- Design for controller input, not for keyboard
mouse input - Use fonts that are readable on televisions.
- Use simple menus avoid long scrolling lists.
- Consider using a television as an output device
during development. - Minimize load times.
- Not all the console player has a memory unit.
- Be aware of the title-safe region on televisions
60References
- History of the game consoles
- www.wikipedia.com
- N-Gage
- www.n-gage.com
- www.hta-bi.bfh.ch/Projects/polyphm2/javadoc/nokia_
j - http//java.sun.com/products
- Playstation
- www.ps2-pro.com
- http//playstation2-linux.com/
- http//ps2dev.org/ps2/
- www.arstechnica.com
- X-BOX 360
- www.tmstation.scei.co.jp
- www.technology.scee.net/middleware
- www.xbox.com