Post on 18-Mar-2016
description
transcript
Michal Hapala
Programování na konzolích: (hlavně) Nintendo DS
Obsah• Nintendo DS
• Programování• Grafika• Limity• Výhody
• PS3 IBM Cell• Letem světem
Nintendo DS
BREAK THE MOLDCREATE 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 II
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
Zobrazení II
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
Kam s tím? Do VRAM
Omezení VRAM
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ě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?
PS3 a IBM 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
Přehled
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
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?