380 likes | 592 Views
Nintendo DS. Diversão & Jogos. Programação de homebrews. Bernardo Bosak de Rezende Tiago Moreira Totti. Agenda. Homebrews Conceito, exemplos ao decorrer da história Nintendo DS Aparência, Arquitetura Desenvolvimento de homebrews no NDS
E N D
Nintendo DS Diversão & Jogos Programação de homebrews Bernardo Bosak de Rezende Tiago MoreiraTotti
Agenda • 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
Homebrew • 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 • MensageirosInstantâneos • Vários tipos de jogos • Emuladores (ScummVM, SNES, Mac+, Commodore64)
Exemplos Spacewar (1962) Pong (1966/1972)
Space Travel game (1969)
Nintendo DS: Aparência e Interface com humano
Duas telas TFT Telainferior é sensível a toque (touch screen)
Suporte integrado à redes wireless via Wi-Fi 12 botões para interação
16 canais de saída de som Microfone integrado para reconhecimento de voz
Nintendo DS: Arquitetura e funcionamento
CPU primária: ARM9 67 MHz, 200-300 MIPS, 16/32 bit
CPU secundária: ARM7 33 MHz, 20 MIPS, 16/32 bit
Memória principal: 4MB RAM
Memória de vídeodedicada 656 KB
Outrosbancos de memória: ARM9 caches, ARM7 Fast RAM, shared Fast RAM, DTCM and ITCM
Duasportasparamemoria Flash externa: Porta p/ software DS software & Porta p/ software GBA (legado)
Duas CPUs = Duasfunções main() ARM7 ARM9
Nintendo DS Apple iPhone Open SDK $399 - $499 (Novo) $500 - $800 (Usado/Destravado) SemSuporte a Homebrews $115 - $130 (Novo) $40 - $75 (Usado)
O DS nãofoiconcebidopara ser um dispositivo de homebrews Preocupaçõesda Nintendo com uso de inovações homebrew paraacessar e jogarjogospirateados
Bibliotecasdisponíveisparaprogramação de homebrew • devkitARM: ARM preprocessor, compiler & linker • libnds:bibliotecabaixo-nível do NDS • palib:biblioteca alto-nível do NDS • dswifi:suporteparawifidalibnds • libfat:gerenciador do sistema de arquivospara i/o • DeSmuME and NO$GBA:emuladoresparateste
ApenasVocêe os Bits & Chips Mesmo com as bibliotecas, vocêdeveteralgumaidéia do queestáacontecendoembaixonível, paragarantirque o códigoiráfuncionar Opçõesparaprogramação: • ARM assembly • C/C++ DS TV tuner
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/
Ambiente de Desenvolvimento • Podemos utilizar Windows, Linux e MacOS como ambiente de desenvolvimento • Ambiente Windows: • Instalar o devkitProhttp://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_Installer.zip
Template de Projeto • 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
DEMO • HelloWorld
Recursos PAlib • 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
DEMO • FollowStylus
DEMO • GrafittiRecognizement
CoolStuff GPS on the DS (using Google Maps)
Referências & Links • http://www.cis.upenn.edu/~palsetia/cit595s08/ • http://www.palib.info/ • http://www.palib.info/wiki/ • http://palib.info/hosted/delfare/viDeoconverterS3.zip • http://palib.info/hosted/delfare/vidtemplate.zip • http://en.wikipedia.org/wiki/DSLinux • http://en.wikipedia.org/wiki/List_of_Nintendo_DS_Homebrew
Obrigado! • Bernardo Bosak de Rezende • bernardo.rezende@pucrs.br • Tiago Moreira Totti • tiago.totti@pucrs.br