programação de homebrews 1 bernardo bosak de rezende tiago moreira totti diversão & jogos
TRANSCRIPT
Nintendo DS
Programação de homebrews
1
Bernardo Bosak de RezendeTiago Moreira Totti
Diversão & Jogos
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
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
Spacewar (1962)
Pong (1966/1972)4
Exemplos
Space Travel game (1969)
5
Apple I (1976)6
Dispositivos atuais para homebrews
7
Nintendo DS:
Aparência e Interface com humano
8
Duas telas TFT
Tela inferior é sensível a toque (touch screen)
9
Suporte integrado à redes wireless via Wi-Fi
12 botões para interação
10
16 canais de saída de som
Microfone integrado para reconhecimento de voz
11
Nintendo DS:
Arquitetura e funcionamento
12
CPU primária:
ARM9 67 MHz, 200-300 MIPS, 16/32 bit
13
CPU secundária:
ARM7 33 MHz, 20 MIPS, 16/32 bit
14
Memória principal:
4MB RAM
15
Memória de vídeo dedicada
656 KB16
Outros bancos de memória:
ARM9 caches, ARM7 Fast RAM, shared Fast RAM, DTCM and ITCM
17
Duas portas para memoria Flash externa:
Porta p/ software DS software & Porta p/ software GBA (legado) 18
19
Duas CPUs = Duas funções main()
ARM7
ARM9
20
Desenvolvimento de Homebrews no NDS
21
Open SDK
$399 - $499 (Novo)
$500 - $800 (Usado/Destravado)
Sem Suporte a Homebrews
$115 - $130 (Novo)
$40 - $75 (Usado)
Nintendo DS Apple iPhone
22
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
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
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
PAlib
26
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
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
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
DEMO Hello World
30
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
DEMO Follow Stylus
DEMO Grafitti Recognizement
GPS on the DS (using Google Maps)
Cool Stuff
34
Perguntas & Dúvidas
35
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