programação de homebrews 1 bernardo bosak de rezende tiago moreira totti diversão & jogos
TRANSCRIPT
![Page 1: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/1.jpg)
Nintendo DS
Programação de homebrews
1
Bernardo Bosak de RezendeTiago Moreira Totti
Diversão & Jogos
![Page 2: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/2.jpg)
Homebrews◦ Conceito, exemplos ao decorrer da história
Nintendo DS◦ Aparência, Arquitetura
Desenvolvimento de homebrews no NDS◦ Bibliotecas, exemplos de código e
demonstrações Links, referências
2
Agenda
![Page 3: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/3.jpg)
O que é?◦ Software desenvolvido (em geral por fãs de video-
game) para hardwares proprietários, com auxílio de kits de desenvolvimento (oficiais ou não-oficiais).
Para que serve?◦ Estudo da arquitetura e funcionamento dos
hardwares proprietários.◦ Desenvolvimento livre de aplicativos como:
◦ Media Players (mp3, Video, ...)◦ Clientes IRC◦ VNC◦ Software de PDA◦ Mensageiros Instantâneos◦ Vários tipos de jogos◦ Emuladores (ScummVM, SNES, Mac+, Commodore64)
3
Homebrew
![Page 4: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/4.jpg)
Spacewar (1962)
Pong (1966/1972)4
Exemplos
![Page 5: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/5.jpg)
Space Travel game (1969)
5
![Page 6: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/6.jpg)
Apple I (1976)6
![Page 7: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/7.jpg)
Dispositivos atuais para homebrews
7
![Page 8: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/8.jpg)
Nintendo DS:
Aparência e Interface com humano
8
![Page 9: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/9.jpg)
Duas telas TFT
Tela inferior é sensível a toque (touch screen)
9
![Page 10: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/10.jpg)
Suporte integrado à redes wireless via Wi-Fi
12 botões para interação
10
![Page 11: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/11.jpg)
16 canais de saída de som
Microfone integrado para reconhecimento de voz
11
![Page 12: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/12.jpg)
Nintendo DS:
Arquitetura e funcionamento
12
![Page 13: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/13.jpg)
CPU primária:
ARM9 67 MHz, 200-300 MIPS, 16/32 bit
13
![Page 14: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/14.jpg)
CPU secundária:
ARM7 33 MHz, 20 MIPS, 16/32 bit
14
![Page 15: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/15.jpg)
Memória principal:
4MB RAM
15
![Page 16: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/16.jpg)
Memória de vídeo dedicada
656 KB16
![Page 17: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/17.jpg)
Outros bancos de memória:
ARM9 caches, ARM7 Fast RAM, shared Fast RAM, DTCM and ITCM
17
![Page 18: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/18.jpg)
Duas portas para memoria Flash externa:
Porta p/ software DS software & Porta p/ software GBA (legado) 18
![Page 19: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/19.jpg)
19
![Page 20: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/20.jpg)
Duas CPUs = Duas funções main()
ARM7
ARM9
20
![Page 21: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/21.jpg)
Desenvolvimento de Homebrews no NDS
21
![Page 22: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/22.jpg)
Open SDK
$399 - $499 (Novo)
$500 - $800 (Usado/Destravado)
Sem Suporte a Homebrews
$115 - $130 (Novo)
$40 - $75 (Usado)
Nintendo DS Apple iPhone
22
![Page 23: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/23.jpg)
O DS não foi concebido para ser um dispositivo de homebrews
Preocupações da Nintendo com uso de inovações homebrew para acessar e jogar
jogos pirateados
23
![Page 24: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/24.jpg)
Bibliotecas disponíveis para programação de homebrew
• devkitARM: ARM preprocessor, compiler & linker
• libnds: biblioteca baixo-nível do NDS
• palib: biblioteca alto-nível do NDS
• dswifi: suporte para wifi da libnds
• libfat: gerenciador do sistema de arquivos para i/o
• DeSmuME and NO$GBA: emuladores para teste
24
![Page 25: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/25.jpg)
Apenas Você e os Bits & Chips
Mesmo com as bibliotecas, você deve ter alguma idéia do que está acontecendo em baixo nível, para garantir que o código irá funcionar
Opções para programação:• ARM assembly• C/C++
DS TV tuner25
![Page 26: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/26.jpg)
PAlib
26
![Page 27: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/27.jpg)
PAlib Biblioteca utilizada para criar jogos e
aplicativos homebrew para o Nintendo DS.
Projetada para ser utilizada fácilmente por leigos na arquitetura DS
Não é suportada oficialmente pela Nintentdo
http://www.palib.info/
27
![Page 28: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/28.jpg)
Podemos utilizar Windows, Linux e MacOS como ambiente de desenvolvimento◦ Ambiente Windows:◦ Instalar o devkitPro
http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=160396
◦ Deletar o diretório “devkitARM” e substituí-lo pelo devkitARM r21
◦ http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=124207&release_id=549080
◦ Baixar o instalador da Palib◦ http://palib.info/downloads/Stable/PAlib_080823_Insta
ller.zip
Ambiente de Desenvolvimento
28
![Page 29: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/29.jpg)
Para escrever código com a biblioteca Palib, podemos partir de um modelo localizado no diretório \Palib\template.
Este modelo é composto por:◦ Diretórios
source -> contém os arquivos de código fonte(.c ou .cpp) include-> conterá os arquivos header (.h) data-> arquivos para imagens, som, etc.
◦ Arquivos Makefile Logo.bmp Build.bat Clean.bat Project.vhw
Template de Projeto
29
![Page 30: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/30.jpg)
DEMO Hello World
30
![Page 31: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/31.jpg)
A Biblioteca traz suporte a:◦ Sprites◦ Planos de Fundo◦ Funções matemáticas◦ Trabalhar com sons◦ Trabalhar com sistema de arquivos◦ Leitura de Vídeos◦ Manipulação da Stylus◦ Transferência de Dados & Multiplayer
Recursos PAlib
31
![Page 32: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/32.jpg)
DEMO Follow Stylus
![Page 33: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/33.jpg)
DEMO Grafitti Recognizement
![Page 34: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/34.jpg)
GPS on the DS (using Google Maps)
Cool Stuff
34
![Page 35: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/35.jpg)
Perguntas & Dúvidas
35
![Page 36: Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13d497959413d8dd853/html5/thumbnails/36.jpg)
http://www.cis.upenn.edu/~palsetia/cit595s08/
http://www.palib.info/ http://www.palib.info/wiki/ http://palib.info/hosted/delfare/viDeoconvert
erS3.zip http://palib.info/hosted/delfare/vidtemplate.
zip
http://en.wikipedia.org/wiki/DSLinux http://en.wikipedia.org/wiki/List_of_Nintendo
_DS_Homebrew36
Referências & Links