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: , , , , , ,

Monday, May 28, 2007

Nintendo Wii

Hey guys, my Nintendo Wii is now online, thanks to a Linksys WRT54G wireless router :)

I hereby invite everyone to exchange Friend Codes.
Mine is 8996-8472-2270-1746

(Please reply to this comment including your Friend Code after you add mine)

BTW, to this date unfortunately there's still no way to deploy home-brew code that take advantage of the Wii capabilities. I can't hardly wait for the day when we'll be able to natively run MSX emulators on it :)

It is possible however to run Linux over Gamecube, which should run fine on the Wii as well, albeit with the hardware restrictions of good ol' cube. Did anyone try to compile and run OpenMSX on top of that?

Labels: , , , , , , ,