+ All Categories
Home > Documents > Programování na konzolích: (hlavn ě) Nintendo DS

Programování na konzolích: (hlavn ě) Nintendo DS

Date post: 18-Mar-2016
Category:
Upload: feoras
View: 60 times
Download: 7 times
Share this document with a friend
Description:
Programování na konzolích: (hlavn ě) Nintendo DS. Michal Hapala. Obsah. Nintendo DS P rogramování Grafika Limity Výhody PS3 IBM Cell Letem světem. Nintendo DS. BREAK THE MOLD CREATE A NEW GENRE. Nintendo DS. Handheld 275 g 2 obrazovky, 256x19 2 2 ARM procesory 67 /33 MHz - PowerPoint PPT Presentation
31
Michal Hapala Programování na konzolích: (hlavně) Nintendo DS
Transcript
Page 1: Programování na konzolích:  (hlavn ě) Nintendo DS

Michal Hapala

Programování na konzolích: (hlavně) Nintendo DS

Page 2: Programování na konzolích:  (hlavn ě) Nintendo DS

Obsah• Nintendo DS

• Programování• Grafika• Limity• Výhody

• PS3 IBM Cell• Letem světem

Page 3: Programování na konzolích:  (hlavn ě) Nintendo DS

Nintendo DS

BREAK THE MOLDCREATE A NEW GENRE

Page 4: Programování na konzolích:  (hlavn ě) Nintendo DS

Nintendo DS• Handheld• 275 g• 2 obrazovky, 256x192• 2 ARM procesory 67/33 MHz• 4 MB RAM• Touch panel• Wi-Fi IEEE 802.11• Mikrofon

Page 5: Programování na konzolích:  (hlavn ě) Nintendo DS

DS Lite• 218g (21%)• Objem menší o 42%• Větší svítivost obrazovek• Větší stylus• Menší procesor• Odolnější dotykový display• Delší výdrž na baterku

Page 6: Programování na konzolích:  (hlavn ě) Nintendo DS

DS vs PSP• I pro „casual“ hráče• Malé• Nové herní možnosti• Nintendo addons• Vývoj limitován HW

• PS2-like handheld• VRAM 3x větší • RAM 8x větší• Slabší výdrž na

baterku• Poškrábání

obrazovky

Page 7: Programování na konzolích:  (hlavn ě) Nintendo DS

Grafika• 2x 2D engine, 1x 3D engine

• 3D ~ N64• 2D > GBA

• 656KB VRAM v dedikovaných bankách• 6-6-6 RGB

• Víc do detailu za chvíli...

Page 8: Programování na konzolích:  (hlavn ě) Nintendo DS

Stylus a mikrofon• Rozpoznávání

• Obrazce• Řeč

• Auto-sampling jen pro jeden modul• Pressure?

• Homebrew Colors

Page 9: Programování na konzolích:  (hlavn ě) Nintendo DS

Wi-Fi• „Free, Comfortable, Simple“

• LAN• DS vs DS• Wii vs DS

• Internet Wi-Fi• Friends• Rivals

Page 10: Programování na konzolích:  (hlavn ě) Nintendo DS

Vývoj• Code

• Hardware debugger• CodeWarrior IDE (MSVS, Eclipse bez

nativního debuggeru)• Grafika

• Character Studio• Photoshop• …

Page 11: Programování na konzolích:  (hlavn ě) Nintendo DS

Vývoj II

Page 12: Programování na konzolích:  (hlavn ě) Nintendo DS

Vývoj III• Nitro SDK psané v C

• Nitro System• C++ bez problémů• Žádná floating-point jednotka

• Pro čísla větší než 65536 nepřesné• Aproximace sin/cos funkcí

• „Dělička „ a „ odmocňovačka„• Možné použít v async módu

• Omezený bandwith za frame do paměti• Kooperativní multithreading

• Priorita• Thread musí sám předat žezlo• Možné čekat na přerušení

Page 13: Programování na konzolích:  (hlavn ě) Nintendo DS

Zobrazení • Line buffer

• OBJ overflow – omezení na frame• Line overflow – omezení na řádek• 3D je flexibilnější než 2D

• Pevně dané FPS• 256 řádek

• 192 vykreslování• 64 volno na práci s VRAM• 3D dostat ven co nejdříve

Page 14: Programování na konzolích:  (hlavn ě) Nintendo DS

Zobrazení II

Page 15: Programování na konzolích:  (hlavn ě) Nintendo DS

2D Grafika• Layers

• 4 pro BGR• 4 pro OBJ (8x8 až 64x64)

• HW omezení• 128 OBJ na obrazovku (64x64)• 128 OBJ na řádek (8x8)

• Palety

Page 16: Programování na konzolích:  (hlavn ě) Nintendo DS

2D Grafika II.• Atom = 8x8 dlaždice = Character• Palety

• 16 palet x 16 barev• 1 paleta x 256 barev• 16 palet x 256 barev (extended)

• VRAM• Textury• “Characters”• “Screens”

Page 17: Programování na konzolích:  (hlavn ě) Nintendo DS

3D Grafika• 2048 tris / frame• 6144 vert / frame• Double buffered

• Alpha-blending, Mlha, AA• Toon Shading• Depth Buffer

Page 18: Programování na konzolích:  (hlavn ě) Nintendo DS

Character studio• Characters

• Background• Cell

• Screens• Cells• Multi-Cells

Page 19: Programování na konzolích:  (hlavn ě) Nintendo DS

Kam s tím? Do VRAM

Page 20: Programování na konzolích:  (hlavn ě) Nintendo DS

Omezení VRAM

Page 21: Programování na konzolích:  (hlavn ě) Nintendo DS

Kolik ...• Char background (256x256)

• 256 barev = 64kB• 16 barev = 32kB• Screen soubor pro VRAM 2,4,8kB

• Char OBJ (256x256)• Pro 2D kompresi stejné jako bgr• U 1D podle komprese

• Rozšířené palety• 16x256 barev paleta = 8kB

• Textury a palety pro 3D

Page 22: Programování na konzolích:  (hlavn ě) Nintendo DS

Double 3D• 30fps• Střídavé vykreslování 3D• Buffer ve VRAM = méně prostoru pro grafiku• 3D na obou obrazovkách

• 3D sprites• Volnější HW omezení (Víc poly na řádku než OBJ)

• Zůstane: 192kB na 2D, 128kB na textury, 32kB na palety textur, 16kB na 2D palety• Zbytek jsou buffery pro double3D a pro generovaní

fontu

Page 23: Programování na konzolích:  (hlavn ě) Nintendo DS

Omezení a přednosti• Omezení

• Malá a neflexibilní VRAM

• Pevné FPS• Omezení času na

řádku• Pevná řádová čárka• Paletová grafika• Nízké rozlišení• Malý výkon pro efekty

• Přednosti• Malé• Přenosné• Roztomilé ;)• …• Dvě obrazovky• Touch screen• Mikrofon• WiFi

Page 24: Programování na konzolích:  (hlavn ě) Nintendo DS

DS ZávěremUnderstand the capabilities!Design towards strengths!

• Co v DS talku nebylo ... ?• Minimum 3D ;)• Přídavné zařízení (Rumble pack atp.)

Otázky než přijde Cell?

Page 25: Programování na konzolích:  (hlavn ě) Nintendo DS

PS3 a IBM Cell

Page 26: Programování na konzolích:  (hlavn ě) Nintendo DS

PS3• IBM Cell 3.2GHz

• 1x PPU• 6(7)x SPU• ‘Supercomputer on a Chip’

• RSX 'Reality Synthesizer‚• nVidia založená na NV47

• (GF 7800)• 20-160GB disk• Bluetooth• Gigabit Ethernet• USB 2.0• HDMI• Wi-Fi

Page 27: Programování na konzolích:  (hlavn ě) Nintendo DS

Přehled

Page 28: Programování na konzolích:  (hlavn ě) Nintendo DS

IBM Cell

• “… as programmers are usually used to the tranquil garden of modern x86s with abundance of memory, large caches, blazing branch prediction, out-of-order execution and other features that we take for granted. A move to these new architectures may be slow and painful ...”

• Michal Hapala ;), Data structures for ray tracing on specialized hardware, 2009

Page 29: Programování na konzolích:  (hlavn ě) Nintendo DS

Přehled II• PPU

• PowerPC• Jako moderní

procesor• Organizátor

• SPU• RISC• Branch hinting• 256kB Local Store

• Instrukce• Data

• Žádna HW cache• Možná změna

parametrů!• 128x128b registrů

Page 30: Programování na konzolích:  (hlavn ě) Nintendo DS

SPU aplikace• Přistup

• Heterogenní• Homogenní

• Lineární kód• Maximálně

předvídatelné skoky• Vektorové instrukce• Velké dávky výpočtu

bez přerušení

Page 31: Programování na konzolích:  (hlavn ě) Nintendo DS

Závěrem programátorský přehled• Free Cell SDK

• Linux (Fedora 7+)• Simulátor („AS IS“)• Možné pouštět na PS3• Žádný přístup na grafiku

• PS3 SDK• Windows (MSVS)• Hardwarový debugger

• Performance statistiky• nVidia GFX (OGL)

• Programming Cell Broadband Engine AKA Red Book• 666 stránek .. není divu

Otázky?


Recommended