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

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

Embed Size (px)

Citation preview

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

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

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

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

Spacewar (1962)

Pong (1966/1972)4

Exemplos

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

Space Travel game (1969)

5

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

Apple I (1976)6

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

Dispositivos atuais para homebrews

7

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

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

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

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

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

Nintendo DS:

Arquitetura e funcionamento

12

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

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

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

Memória principal:

4MB RAM

15

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

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

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

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

19

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

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

Desenvolvimento de Homebrews no NDS

21

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

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

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

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

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

PAlib

26

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

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

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

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

DEMO Hello World

30

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

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

DEMO Follow Stylus

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

DEMO Grafitti Recognizement

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

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

Perguntas & Dúvidas

35

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

Obrigado! Bernardo Bosak de Rezende

[email protected] Tiago Moreira Totti

[email protected]

37