Homebrew/Nintendo 3DS

De TheNets Wiki
Ir para: navegação, pesquisa

Guia de como começar a desenvolver homebrews para o Nintendo 3DS.

Baseado em: 3dbrew - Setting up Development Environment

Ambiente

Todo o guia será feito considerando um ambiente Ubuntu/Debian.

Recomendo que utilize o Ubuntu 18.04 que foi usado para desenvolver este guia.

Instalar bibliotecas e dependências

Instale o devkitArm. Ele é uma parte do projeto devkitPro para processadores ARM e possui conjuntos de bibliotecas para trabalhar com Nintendo GBA, Nintendo DS, Nintendo 3DS, Nintendo Switch e outros.

Instale o gerenciador de pacotes do devkitPro. É uma modificação do Pacman, que é o gerenciador de pacote do Arch Linux. Aliás, NÃO SIGA ESTE TUTORIAL se vc utiliza alguma distribuição que já utilize o Pacman.

1 # Instale o wget
2 sudo apt install -y wget
3 
4 # Baixe e instale o devkitpro-pacman
5 wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb
6 sudo dpkg -i devkitpro-pacman.deb
7 rm devkitpro-pacman.deb

Agora é hora de instalar o devkitArm e as bibliotecas necessárias para desenvolvermos para o Nintendo 3DS.

1 # Atualize os pacotes de Pacman (não execute como root!)
2 dkp-pacman -Sy
3 
4 # Instale os pacotes do Nintendo 3DS (não execute como root!)
5 dkp-pacman -Sl 3ds-dev

Tudo instalado, agora precisamos definir os caminhos das bibliotecas instaladas para serem reconhecidas pelo compilador posteriormente:

1 # Os comandos abaixo irão adicionar as variáveis de ambiente do
2 # devkitPro no arquivo `.bashrc`. Essas variáveis são carregadas
3 # sempre que um novo terminal for iniciado.
4 echo '' >> ~/.bashrc
5 echo '# DevKitPro' >> ~/.bashrc
6 echo 'export DEVKITPRO=/opt/devkitpro' >> ~/.bashrc
7 echo 'export DEVKITARM=$DEVKITPRO/devkitARM' >> ~/.bashrc
8 echo 'export PATH=$PATH:$DEVKITARM/bin' >> ~/.bashrc

Tudo pronto! :D Agora é hora de preparar o emulador para executar nossos códigos.

Instale um emulador

Para executar os nossos códigos no computador utilizaremos um emulador. O Citra é o projeto de emulador de 3DS mais popular.

Siga os passos abaixo para iniciar o instalador do Citra. Após executar, uma janela com instruções para o processo de instalação aparecerá. Apenas siga até o final e o emulador será instalado em ~/.citra.

 1 # Instale as dependências do Citra para Ubuntu
 2 sudo apt install -y libsdl2-dev qtbase5-dev libqt5opengl5-dev qtmultimedia5-dev cmake git
 3 
 4 # Clone o projeto em `~/.citra`
 5 git clone --recursive --depth 1 https://github.com/citra-emu/citra ~/.citra
 6 
 7 # Construa o projeto e instale
 8 cd ~/.citra
 9 mkdir build && cd build
10 cmake ../
11 make
12 sudo make install

Criar um novo projeto

A maneira mais simples de começar um novo projeto é copiar algum dos projetos que já vêm junto com o devkitArm.

Você pode navegar por todos os exemplos do projeto em https://github.com/devkitPro/3ds-examples. Recomendo que veja e tente modificar os projetos. É a melhor maneira de entender o funcionamento da plataforma e como controlar o hardware.

1 # Cria um diretório para projetos no diretório do seu usuário
2 mkdir ~/Projects
3 
4 # Copia um novo projeto
5 cp -r $DEVKITPRO/examples/3ds/templates/application ~/Projects/my3dsproject

Construir meu primeiro app

Agora é hora de construir o nosso primeiro homebrew e executá-lo no emulador Citra.

1 # Acesse o diretório do projeto
2 ~/Projects/my3dsproject
3 
4 # Execute o `make`
5 make
6 
7 # Liste os arquivos
8 # Notará que os arquivos `.elf`, `.smdh` e `.3dsx` foram criados
9 ls

Note que foram gerados os arquivos ~/Projects/my3dsproject/my3dsproject.{elf,smdh,3dsx}. Estes arquivos já podem ser executados no emulador e no 3DS através do Homebrew Launcher. Baste copiar para o arquivo .3dsx no diretório sdcard://3ds/ do 3DS.

Executar o app

Com o emulador instalado e nosso projeto construído, agora é hora de executar o projeto e vê-lo funcionando pela primeira vez.

Como descrito na sessão acima, se quiser verificar o projeto no 3DS, basta copiá-lo para o diretório sdcard://3ds/ e executá-lo a partir do Homebrew Launcher.

Porém, para desenvolvermos, podemos e devemos usar um ambiente emulado que permita executar o código de maneira rápida e que permita diagnóstico. Para isso, basta executar o arquivo .3dsx com o Citra:

1 # Acesse o diretório do projeto
2 cd ~/Projects/my3dsproject
3 
4 # Execute o app com o Citra
5 citra my3dsproject.3dsx

Pronto! :D tudo pronto! Agora é começar a fuçar e aprender com os exemplos da comunidade!

Construir arquivo CIA

TODO