Dividindo ISOs de Jogos PS2 pelo Linux




  Quando está usando o OPL (Open PS2 Loader) para jogar através de ISO no PS2, você tem que colocar a ISO respectivamente nas pastas CD e DVD na Raid do dispositivo usb (Pendrive ou hd externo). Esse dispositivo tem que estar formatado como FAT32.

  O FAT32 tem o limite de tamanho por arquivo de 4GB, e muitas imagens de jogos tem mais de 4GB.

  Para poder colocar o jogo por inteiro no dispositivo temos que dividir ele em partes. No windows temos um programa chamado USBUtil. Mas como usuário Linux não encontrei em nenhum lugar como fazer No linux você pode compilar o aplicativo iso2opl. Antes de descobrir que havia esse programa para o linux tive que dar meu jeito.

Para os que estiverem com dificuldades de compilar o iso2opl. Nos comentários dessa publicação, tem a contribuição do Guaripolo, que fez um fork do projeto iso2opl melhorando o makefile afim de corrigir erros encontrados por ele na compilação.

 Então Assim Foi Feito:

   Localize o ID do jogo da seguinte forma: 
   - Abra o arquivo system.cnf em um editor de texto (Gedit, Vim ou outro). Para acessar o system.cnf, você pode montar a iso ou abrir com o Gerenciador de Compactação (DEBIAN), 7zip ou similar.

   - Ao abrir o system.cnf você irá encontrar:
BOOT2 = cdrom0:\SCUS_972.12;1
VER = 1.01
VMODE = NTSC
     O que está em vermelho é o ID do Jogo. Guarde esse ID.

   - Escolha um nome para o jogo, com o limite de até 32 caracteres. Guarde esse nome.

  - Crie uma pasta com o NOME DO JOGO que escolheu (para poder trabalhar com os arquivos).

  - Mova a ISO para a pasta criada.

   - Você terá agora que dividir a ISO (pelo terminal). Entre na pasta da ISO e digite o seguinte comando:

dd if=ARQUIVO.ISO | split -d -b 1024m
   No lugar de ARQUIVO.ISO tem que colocar o nome do arquivo ISO, e no lugar de 1024m você colocará o tamanho máximo que cada arquivo irá ter. LEMBRANDO QUE NÃO pode ser mais do que 4GB.
   Esse processo demora um pouco. E como resultado dele, ele irá criar alguns arquivos x00 x01 ...

   - Agora vamos criar o arquivo ul.cfg, que é responsável por listar o jogos.  Para isso, vamos executar o código abaixo:

printf "NOME DO JOGO\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ul.SCUS_972.12\x00\x05\x14\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" > ul.cfg
NOME DO JOGO\x00\x00... = Nome do jogo de até 32 caracteres, seguidos por \x00 para cada caractere restantes para completar 32.

SCUS_972.12 = ID do jogo, localizado no system.cnf da ISO.

\x05 = Quantidade de partes do jogo depois do SPLIT. Ou seja o número de arquivos gerados pelo "dd | split". Este valor é hexadecimal, logo, se o "dd | split" gerou 12 arquivos você deve preencher com \x0C.

\x14 = Indica o tipo de mídia da ISO. Para ISO de CD use \x12 e para DVD use \x14.

Para o restante do código que não foi listado na legenda acima, mantenha do jeito que foi apresentado. Preste atenção em um \x08 que tem no meio do código.

    - Vamos renomear os arquivos criados pelo "dd | split". Essa parte é um pouco complicada! Para isso tive que converter a função de CRC32 do código do USBÚtil de C para JavaScript, assim poder executar em qualquer navegador. Isso foi necessário pois esses arquivos devem ser renomeados com o CRC32 (Diferente do habitual):

    mv x00 ul.5A0050A9.SLES_532.37.00
5A0050A9 = CRC32 do nome do jogo 

**** O gerador de CRC32 Não funciona em todos os casos. Devido ao Javascript não trabalhar com os tipos u32 do C. Tentei utilizar >>> 0  para conversão mas não funcionou. Se alguém souber e quiser corrigir o código está no final da página, envie nos comentários.

SLES_532.37 = ID do jogo

00 = número sequencial das partes

    - Depois disso mova os arquivos renomeados para a raiz do dispositivo USB.

    - Mova o ul.cfg para a raiz do dispositivo USB, se já não houver. Caso contrário, você deve concatenar o arquivo ul.cfg criado com o já existente, para isso (pelo terminal na pasta do ISO) digite :

cat ul.cfg >> /CAMINHO/DO/DISPOSITIVO/USB/ul.cfg

/CAMINHO/DO/DISPOSITIVO/USB/ = Caminho para seu pendrive/hd externo


Pronto! Depois que fizer isso tudo o OPL irá reconhecer o jogo. Mas aconselho desfragmentar o dispositivo USB antes de tentar rodar o jogo. Mas com fazer isso pelo pelo Linux vai ficar para uma próxima.

Como desfragmentar discos FAT32 para PS2





Código Fonte do Gerador de CRC32 em Javascript

function crc32(string) {
  var crc, table, count, byte, crctab = [];
  string += String.fromCharCode(0);
  string = string.substr(0,32);
  for (table=0; table<256; table++) {
    crc = table << 24;
    for (count=8; count>0; count--) {
      if (crc < 0) crc = crc << 1;
      else crc = (crc << 1) ^ 0x04C11DB7;
    }
    crctab[255-table] = crc;
  }
  try {
    do {
      byte = string[count++].charCodeAt(0);
      crc = crctab[byte ^ ((crc >> 24) & 0xFF)] ^ ((crc << 8) & 0xFFFFFF00);
    } while ((string[count-1] != "\u0000") && (!!string[count-1]));
  } catch (e) {}
  return crc;
}

Comentários

  1. Hola, hace poco me compré una ps2 para trastear (vengo del mundillo de la dreamcast) y buscando como dividir una imagen me encontré con tu tutorial. Te comento que encontré una utilidad en el repositorio del Open PS2 Loader que realiza lo mismo, inclusive actualiza el archivo ul.cfg

    La subí a mi repositorio propio porque la que está en el repo del OPL tiene un makefile que falla. La dirección es:
    https://github.com/arcadenea/iso2opl

    Es muy facil de compilar y usar. Saludos y gracias!

    ResponderExcluir
    Respostas
    1. Olá Guaripolo,
      Me sinto muito satisfeito em saber que minha postagem está sendo útil as pessoas. E estou muito agradecido de você ter compartilhado sua melhoria/correção do projeto iso2opl aqui na página.

      Excluir
  2. e ai gente boa engresei no linux a pouco tempo e tenho ja meu pen driver pronto so queria adicionar mais games nele no windows eu tinha um programa que eu colocava a iso la mas no linux eu não achei nada parecido.o wine eu não consegui fazer nada lá por enquanto , tem algum programa similar para poder fazer isso?

    ResponderExcluir
    Respostas
    1. Jannotti8/24/2020

      Então, esse post disse o passo a passo e i clusive os programas utilizados.

      Quero te ajudar, mas preciso que você seja mais específico na sua dificuldade.

      Excluir
  3. Este comentário foi removido pelo autor.

    ResponderExcluir
  4. Excelente solução! Parabéns e muitíssimo grato por disponibilizá-lo!

    ResponderExcluir

Postar um comentário

Postagens mais visitadas