Não ajuste o auto-ajuste

Life, the Universe and Everything

Não ajuste o auto-ajuste header image 2

Aventuras em ps2dev’ing

May 31st, 2006 · No Comments · Uncategorized

Bom, por onde eu começo ? Já faz algum tempo que tenho brincado com ps2dev (playstation 2 development), mas sempre aos pouquinhos…

Como todo mundo sabe… err.. como todo mundo que eu conheço sabe… err… tá.. Como algumas pessoas sabem, eu já “brinquei” um pouco com gbadev, vide o SpacewarZ Advance.

Daí recentemente me caiu a ficha: Oras, se eu já programei pra GBA sem ter um (se quiserem me dar de presente eu não reclamo, hehe), porque não programar para o meu há-alguns-meses-comprado PS2 ?

Seguindo a intuição de que o apelido de desenvolvimento pra GBA é gbadev, desenvolver pra ps2 é ps2dev. Orando para o Grande Google, encontrei o devkit que eu preciso — basicamente, versões do gcc-e-seus-amigos para compilar programas para os processadores do play2, Emotion Engine (aka EE) e I/O Processor (aka IOP) — além de uma ps2sdk que o povo que já brinca com isso desenvolveu — bibliotecas pra lidar com joypads, memory cards, som, matemática 3d , etc… — enfim, tudo que eu precisava pra brincar.

Claro que um dia eu pretendo escrever tutoriais pra explicar como eu fiz o que fiz (até pra eu mesmo saber fazer de novo quando precisar…). Mas pra quem quiser hackear (do zinigistanês Raqeahr, “fuçar”) por conta própria, visitem PS2dev.org, que é onde encontrei a maior parte das coisas que usei… Embora para ter em linux o devkit e o sdk, o melhor parece ser o http://www.oopo.net/consoledev/, onde há um script que já baixa e compila tudo. (novamente: num futuro tutorial vou descrever melhor todas as armad.. digo, todos os detalheses)

Agora, o caro leitor deve se perguntar “Tá e daí, você programa em C, compila, e aí ? Como que eu rodo o programa no playstation ?”. Simples! err… não… nem tanto. Pulando todos os detalhes (eu já disse que quero fazer um tutorial ? :-) ), você liga o micro e o ps2 com um cabo de rede crossover, e boota no ps2 o programa PS2Link (1.46 no meu caso, YMMV). No micro usa-se um programa cliente para conectar com ele; no meu caso o ps2client 3.0.0 (para linux, linha de comando - no ruimdows qualquer tentativa de rodar um cliente resulta em BSOD). O cliente permite que você mande o ps2 rodar seus executáveis, entre outras coisas… (um programa rodando no ps2 pode até abrir e gravar arquivos no pc)

A parte mais “aventurosa” da coisa foi quando eu quis rodar esse ps2link no ps2. Peguei os arquivos, gravei no meu CDRW, e pá, vamo bootá! Nada - nadica de nada… Depois de 1000 tentativas, decidi que o CDRW é que era o culpado. A seguir, comprei 3 CD-R; oras, um deles deve funcionar…

Antes de testar com o ps2link, resolvi gastar o primeiro CD com uma cópia do HDLoader [o programa que permite salvar e rodar jogos de ps2 num hd]. Se essa cópia rodasse, significa que consegui gravar um CD-R ps2-bootable, e que o segundo CD iria funcionar com o PS2Link (e eu precisava mesmo de um becápe pro HDLoader, o meu “original” já tá meio acabadinho)

E… finalmente… nada… O HDLoader não rodava! Mas como ? Eu até gravei em ISO modo 2 como eu tinha lido ! Pera lá, era modo 2 mesmo ? Deixa eu ler de novo, tenho isso escrito em algum lugar… cadê… aqui, “gravar em ISO modo 1″ - d’oh!

Bem, segunda tentativa! Gravar o HDLoader num CD-R em ISO modo 1… E… E… Não é que funcionou !? Aêê!!!

Terceiro e último disco, dessa vez para o PS2Link: legal! consegui bootar também! Mas esse CD passou - ao longo dos meus usos - a dar algum trabalho. Muitas vezes não bootava, tinha que ligar o console com outro disco dentro antes… enfim… bem estranho. Daí caiu a ficha de algo que eu li: no disco só havia o programa básico, que é bem pequeno… e o console não gosta muito de discos com “pouca coisa”, e acaba não reconhecendo. Por isso, é bom criar um arquivo “dummy”, por exemplo com 25MB de zeros :-)

Tá na cara que eu não me lembrei disso e portanto não tinha dummy no meu 3o. disco, né ? E agora, não sobrou mais nenhum disco pra testar… Wendel em modo Gambi-level-1: Coloco o HDLoader no play2, e vou salvar o “jogo” PS2Link no HD! Mas infelizmente, o aparelho não reconhece o disco e não deixa gravar ;_;

Então, Wendel entra em modo “Vamos a lá Gambi, Ô! ô ô ô ô! “: Desligo e ligo o ps2; assim ele reconhece o ps2link e boota ele. Agora, eu posso mandar rodar qualquer executável (pra ps2, d’oh) a partir do pc, né ? E, que legal! Tem uma cópia do HDLoader no meu micro! [claro, afinal eu usei ela como cobaias #1 e #2] Então eu usei o ps2client pra rodar o HDLoader do micro no ps2. Estando numa sessão de HDLoader na qual o console JÁ reconheceu o PS2Link, eu pude mandar salvá-lo como um jogo no HD, e voila! PS2Link 1.46 sem necessidade de CD :-)

Ufa… só de escrever essa história já foi cansativo. Imagina como foi pensar-e-fazer tudo issaí… O_o

E, o que eu fiz até agora, além de compilar coisas dos outros ? Bem, juntei dois demos pra fazer um cubo giratório colorido na tela, movido por joypad, que por sua vez vibra em função da velocidade de giro do cubo. “Mas isso é muito inútil não ?”, pensa aquele leitor alí na terceira fileira. É, eu também acho ;-)

Então agora meu novo projeto é algo beeem mais útil: Salvar backups de Memory Cards no micro, e poder restaurá-los depois. A primeira parte já funciona ( mc2pc.elf ); falta fazer a segunda parte ( pc2mc.elf ). Só dá vontade de matar quem fez o jogo do James Bonde, onde tem arquivo com nomes tipo foo\bar.bin [não, o "\" não é de diretório - o ps2 usa / - é \ em pleno nome de arquivo mesmo, e o ps2 não consegue criar esse arquivo no meu micro, nada que uma gambi-san não resolva (tomara que não exista nenhum arquivo com '^' no nome XD ) ]

Assim que tiver algo 100% funcional nos dois sentidos eu coloco disponível pro público - isso se tiver algum público interessado, off course.

Agora, xá eu terminar que tá tarde…

ps off topic: quero esganar quem escreveu que 0.4+0.6X é melhor que 0.0+1.0X … [o que isso quer dizer ? se-gre-do :-) ]

Tags: ······

0 responses so far ↓

  • There are no comments yet...Kick things off by filling out the form below.

Leave a Comment