310 likes | 475 Views
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
E N D
Programování na konzolích: (hlavně) Nintendo DS Michal Hapala
Obsah • Nintendo DS • Programová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, 256x192 • 2 ARM procesory 67/33 MHz • 4 MB RAM • Touch panel • Wi-Fi IEEE 802.11 • Mikrofon
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
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
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...
Stylus a mikrofon • Rozpoznávání • Obrazce • Řeč • Auto-sampling jen pro jeden modul • Pressure? • Homebrew Colors
Wi-Fi • „Free, Comfortable, Simple“ • LAN • DS vs DS • Wii vs DS • Internet Wi-Fi • Friends • Rivals
Vývoj • Code • Hardware debugger • CodeWarrior IDE (MSVS, Eclipse bez nativního debuggeru) • Grafika • Character Studio • Photoshop • …
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í
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
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
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”
3D Grafika • 2048 tris / frame • 6144 vert / frame • Double buffered • Alpha-blending, Mlha, AA • Toon Shading • Depth Buffer
Character studio • Characters • Background • Cell • Screens • Cells • Multi-Cells
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
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
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
DS Závěrem Understand 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?
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
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 andother features that we take for granted. A move to these new architecturesmay be slow and painful ...” • Michal Hapala ;), Data structures for ray tracing on specialized hardware, 2009
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ů
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í
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?