Electric Sheep - Jannone's blog

Saturday, September 1, 2007

How-to: Gamecube/Wii Homebrew - Parte 2

Se você seguiu as instruções da Parte 1, já deve ter agora uma base sobre a qual desenvolver e compilar seus homebrews.

Porém ainda assim o processo de compilação requer alguns cuidados. Então, para facilitar, estou colocando aqui um pacote de projeto (com Makefile), que você pode baixar e extrair dentro do diretório onde instalou a libOGC:

* Download do projeto Hello World

A idéia geral desse Makefile é compilar os objetos binários a partir do seu código em C, e então linkar o resultado num arquivo executável .ELF. Feito isso, é preciso converter esse .ELF em um .DOL que pode ser carregado pelos loaders mais comuns.

O Makefile fará tudo isso automaticamente, desde que você declare a variável DEVKITPPC conforme explicado na Parte 1, e desde que o diretório de projeto ("prj") se encontre dentro do diretório da libOGC. Caso contrário, ajustes precisam ser feitos.

Segue abaixo algumas linhas que devem ser adaptadas para outros projetos:

Estas se referem a versão e ao nome do arquivo final do projeto:
VERSION := 1
PROJ := Hello

Esta aponta para o "ogc.ld", se você trocar de local, precisa redefinir o caminho
LDFLAGS := $(COMMON_FLAGS) -T../ogc.ld -mogc

O caminho para os módulos da libOGC, bem como quais deverão ser linkados (veja no diretório "lib" os arquivos *.a disponíveis)
LIBS := -L../lib -logc

E, finalmente, os objetos binários a serem compilados (use o continuador "\" para incluir mais linhas):
OBJS := \
$(OBJ_DIR)/hello.o


Compilado o projeto (com make), seu arquivo Hello.dol deverá estar no subdiretório "dist". Agora é hora de testar. Porém vou quebrar minha promessa e deixar essa parte para o próximo post :)

Stay tuned.

Update: incluída a seção OBJS do Makefile (ops!)

Labels: , , , , , ,

Friday, August 31, 2007

How-to: Gamecube/Wii Homebrew - Parte 1

Estes são meus achados em relação à desenvolvimento de homebrews para Gamecube e, consequentemente, para Wii (já que este possui compatibilidade para trás). As instruções abaixo foram escritas para o Linux, mas você pode adaptá-las para outros SO.

Ingredientes:

* Faça download do devkitPPC, que é um conjunto de compilador, linker e assembler para PPC num único pacote. Acredite, é mais fácil simplesmente baixar esse pacote do que tentar utilizar o gcc que você já tem instalado

* Faça download dos fontes da libOGC. Não baixe o binário pré-compilado. Você foi avisado.

* Pegue um dos exemplos contidos aqui. Não seja megalomaníaco: o "Hello World" já é um excelente começo.

Modo de Preparo:

* Descompacte o devkitPPC no diretório de sua escolha (ex.: ~/src/devkitPPC)

* Descompacte os fontes da libOGC em algum outro diretório (ex.: ~/src/libogc)

* Exporte a variável de ambiente DEVKITPPC, apontando para o diretório do devkitPPC, ex.:

export DEVKITPCC=~/src/devkitPPC


* Compile a libOGC, entrando em seu diretório e utilizando "make"

... se tudo correu bem, você agora deve ter vários arquivos *.a no subdiretório "lib"

Bom, e o que isso faz?

libOGC é uma biblioteca, ou conjunto de bibliotecas para acesso ao hardware do Gamecube, dentre outras coisas. Com ela você pode não somente inicializar os modos de vídeo e fazer leitura de joystick, como também acessar cartões SD, descomprimir arquivos JPEG, e etc.

No próximo post vou falar sobre a compilação do Hello World, e sobre os métodos disponíveis para testar seu homebrew. Até lá, vale a pena dar uma estudada no arquivo hello.c, pois ele contém a base para uma aplicação gráfica no cubo.

Stay tuned.

Labels: , , , , , ,