Programação de homebrews 1 Bernardo Bosak de Rezende Tiago Moreira Totti Diversão & Jogos

Preview:

Citation preview

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

Obrigado! Bernardo Bosak de Rezende

◦ bernardo.rezende@pucrs.br Tiago Moreira Totti

◦ tiago.totti@pucrs.br

37

Recommended