[PSX] Suikoden

Iniciado por Luke, Novembro 13, 2016, 15:02:41 PM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

Rafael Quinalha

Citação de: Luke online Dezembro 19, 2016, 00:41:53 AM
Citação de: Rafael Quinalha online Dezembro 18, 2016, 23:53:33 PM
Citação de: Tiozinho da Telesena online Dezembro 17, 2016, 21:19:41 PM
Citação de: Rafael Quinalha online Dezembro 16, 2016, 23:53:06 PM
PQP!!!!
Direto do sarcófago essa tradução. Agora me empolguei em tocar a tradução do 2. Parabéns a equipe.

Eu acho que se precisar de ajuda pro dois podemos fazer algo.  :cuteeyes:
Opa, por que não?
Vou terminar de extrair tudo, depois que estiver na mão, podemos unir os projetos para criar um padrão e seguir o mesmo esquema de nomes, etc, o que acha? Conversa com a equipe. Valeu.

Bacana Quinalha, podemos fazer esse esquema aí mesmo, nós temos coisas técnicas também, a gente ownou bastante coisa, desde redimensionamento de janelas à gráficos.
Você ainda tem o programa dos scripts, da equipe polonesa, do ffgriver?
A gente tá usando tool própria no nosso.

Abraços.
Carvalho!!! Memória de elefante a sua, heim!!! Sim estou com a tool do ffgriever, ela é bem legal, mas só edita os textos dos diálogos da história, nada de editar itens, etc e é muito limitada, por exemplo, não posso ultrapassar o número de caracteres por arquivo, se tiver 1030, terei que traduzir em cima disso, e tbm não dá pra extrair os arquivos de forma prática, tenho que copiar e colar um por um manualmente e depois inserir manualmente tbm. Mas fazer o que, né? É o que eu tenho na mão, como não sei programar nada, melhor usar essa tool ao invés de fazer usando um editor Hex, kkkkkk. Mas se o Denim quiser ajudar, melhor ainda. Vamos que vamos.
Projeto Atual: Xenosaga 3
Projetos Concluídos: [PSX] Parasite Eve, [PS2] Xenosaga, [PSP] Final Fantasy Tactics, [PS2] Xenosaga 2, [PSX] Fear Effect 1
Projeto Cancelado: [PSX] Xenogears

Luke

#31
Então Quinalha, os itens, redimensionamento de janelas e manipulações de ponteiros do main do jogo, eu fiz na mão mesmo, sem tool.
Não lembro dos detalhes da tool do ffgriver.
Ela redimensiona ponteiro?
Basicamente, a tool que o Denim fez,  foi somente para o textos principais também, extrai o texto do blocos, você consegue traduzir o bloco, não pode extrapolar ele, depois ele inseri recalculando os ponteiros, geralmente, quando ultrapassa muito o bloco, eu corto o texto final e depois redimensiono manualmente o que faltou, entendeu?
Pra mim, tá ótimo, redimensionando já me salva tempo pra cacete.
Não sei como funciona a do ffgriver.
A tool dos gráficos, que só o denim tem posse, não sei como funciona, mas conseguimos editar as imagens,e o sistema de compressão foi ownado por ele, então a gente tá de boa com os gráficos
Lê a MP que te mandei, deixei um link do projeto online :D

Abraços.

Rafael Quinalha

Citação de: Luke online Dezembro 19, 2016, 13:44:22 PM
Então Quinalha, os itens, redimensionamento de janelas e manipulações de ponteiros do main do jogo, eu fiz na mão mesmo, sem tool.
Não lembro dos detalhes da tool do ffgriver.
Ela redimensiona ponteiro?
Basicamente, a tool que o Denim fez,  foi somente para o textos principais também, extrai o texto do blocos, você consegue traduzir o bloco, não pode extrapolar ele, depois ele inseri recalculando os ponteiros, geralmente, quando ultrapassa muito o bloco, eu corto o texto final e depois redimensiono manualmente o que faltou, entendeu?
Pra mim, tá ótimo, redimensionando já me salva tempo pra cacete.
Não sei como funciona a do ffgriver.
A tool dos gráficos, que só o denim tem posse, não sei como funciona, mas conseguimos editar as imagens,e o sistema de compressão foi ownado por ele, então a gente tá de boa com os gráficos
Lê a MP que te mandei, deixei um link do projeto online :D

Abraços.
Estou impressionado com a organização desse projeto, quando crescer quero ser assim... :cuteeyes:
Quanto a tool, é praticamente a mesma coisa que você disse aí, ela recalcula ponteiros, mas não redimensiona janela de menus, nem consigo editar nada que não sejam os diálogos do jogo. Mas tá ótimo, ele gentilmente me cedeu essa ferramenta. O resto vou tentando aqui na mão também. Quanto aos gráficos, só modifiquei a fonte principal, já a fonte especial e o remapeamento do NEW GAME/CONTINUE e o now loading, nem passei perto. Sei onde está os textos, mas não consegui remapear, só com ASMhack.
Achei essa parada aqui na internet para descomprimir os gráficos do Suikoden 2

    //size_pac - compressed file length
    //packed - compressed data buffer
    //unpacked - uncompressed data buffer
    //decompressor stub translated into c++ directly from asm (original file SLUS_009.58)
    //decompression function is placed at 0x80075F58 in memory (main executable section)

    void decompress(u32 size_pac, u8* packed, u8* unpacked)
    {
      u8 frame[1024];
      u8 ctrl;
      u32 tempCtrl;
      u8* end = packed + size_pac;
     
      u32 frameOffset = 0x3de;
      u8* currFrame = &frame[frameOffset];
      u32 remain;
     
      u32* tempFrame = (u32*)frame;
      while ((u32)tempFrame < (u32)currFrame)
      {
        *tempFrame = 0;
        tempFrame++;
      }
     
      while (1)
      {
        ctrl = *packed;
        packed++;
       
        if (packed >= end)
        {
          return;
        }
        tempCtrl = ctrl | 0xff00;

        do
        {
          if (tempCtrl & 1)
          {
            s8 tempCtrl2 = *packed;
            packed++;
            s32 cnt;
            if ((u8)tempCtrl2 < 0x80)
            {
              remain = *packed;
              packed++;

              u8 temOff = (tempCtrl2 & 3);
              tempCtrl2 = (tempCtrl2 >> 2) + 2;

              remain |= (temOff << 8);
              cnt = 0;
              if (tempCtrl2 >= 0)
              {
                do
                {
                  currFrame = &frame[frameOffset];
                  frameOffset++;
                  frameOffset &= 0x3ff;

                  u8* tempFrame = &frame[(remain + cnt) & 0x3ff];
                  ctrl = *tempFrame;
                  *unpacked = ctrl;
                  unpacked++;
                  *currFrame = ctrl;
                  cnt++;
                } while (cnt <= tempCtrl2);
              }
            } else if ((u8)tempCtrl2 < 0xc0)
            {
              remain = tempCtrl2 & 0xF;
              tempCtrl2 = ((tempCtrl2 & 0x30) >> 4) + 1;
              cnt = 0;
              if (tempCtrl2 >= 0)
              {
                do
                {
                  u32 tempFrameOffset = frameOffset - remain;
                  currFrame = &frame[frameOffset];
                  frameOffset++;
                  frameOffset &= 0x3ff;
                  tempFrameOffset &=  0x3ff;
                  u8* tempFrame = &frame[tempFrameOffset];
                  ctrl = *tempFrame;
                  *unpacked = ctrl;
                  unpacked++;
                  *currFrame = ctrl;
                  cnt++;
                } while (cnt <= tempCtrl2);
              }
            } else
            {
              tempCtrl2 = (tempCtrl2 & 0x3f)+7;
              cnt = 0;
              if (tempCtrl2 >= 0)
              {
                do
                {
                  ctrl = *packed;
                  packed++;
                  currFrame = &frame[frameOffset];
                  *unpacked = ctrl;
                  unpacked++;
                  *currFrame = ctrl;
                  frameOffset++;
                  if (frameOffset >= 0x400)
                  {
                    frameOffset = 0;
                  }
                  cnt++;
                } while (cnt <= tempCtrl2);
              }
            }
          } else
          {
            ctrl = *packed;
            packed++;
            if (packed >= end)
            {
              if (packed == end)
              {
                *unpacked = ctrl;
              }
              return;
            }

            *unpacked = ctrl;
            currFrame = &frame[frameOffset];
            *currFrame = ctrl;
            frameOffset++;
            unpacked++;
            if (frameOffset >= 0x400)
            {
              frameOffset = 0;
            }
          }
          tempCtrl >>= 1;
        } while (tempCtrl & 0x100);
      }
    }


Sinceramente, nem sei compilar isso.
Quando eu terminar de extrair tudo e organizar, eu te aviso, aí tentaremos unificar as traduções, ou pelo menos, deixar um padrão para ambas.
Projeto Atual: Xenosaga 3
Projetos Concluídos: [PSX] Parasite Eve, [PS2] Xenosaga, [PSP] Final Fantasy Tactics, [PS2] Xenosaga 2, [PSX] Fear Effect 1
Projeto Cancelado: [PSX] Xenogears

spyblack

Citação de: Rafael Quinalha online Dezembro 20, 2016, 00:39:05 AM
Citação de: Luke online Dezembro 19, 2016, 13:44:22 PM
Então Quinalha, os itens, redimensionamento de janelas e manipulações de ponteiros do main do jogo, eu fiz na mão mesmo, sem tool.
Não lembro dos detalhes da tool do ffgriver.
Ela redimensiona ponteiro?
Basicamente, a tool que o Denim fez,  foi somente para o textos principais também, extrai o texto do blocos, você consegue traduzir o bloco, não pode extrapolar ele, depois ele inseri recalculando os ponteiros, geralmente, quando ultrapassa muito o bloco, eu corto o texto final e depois redimensiono manualmente o que faltou, entendeu?
Pra mim, tá ótimo, redimensionando já me salva tempo pra cacete.
Não sei como funciona a do ffgriver.
A tool dos gráficos, que só o denim tem posse, não sei como funciona, mas conseguimos editar as imagens,e o sistema de compressão foi ownado por ele, então a gente tá de boa com os gráficos
Lê a MP que te mandei, deixei um link do projeto online :D

Abraços.
Estou impressionado com a organização desse projeto, quando crescer quero ser assim... :cuteeyes:
Quanto a tool, é praticamente a mesma coisa que você disse aí, ela recalcula ponteiros, mas não redimensiona janela de menus, nem consigo editar nada que não sejam os diálogos do jogo. Mas tá ótimo, ele gentilmente me cedeu essa ferramenta. O resto vou tentando aqui na mão também. Quanto aos gráficos, só modifiquei a fonte principal, já a fonte especial e o remapeamento do NEW GAME/CONTINUE e o now loading, nem passei perto. Sei onde está os textos, mas não consegui remapear, só com ASMhack.
Achei essa parada aqui na internet para descomprimir os gráficos do Suikoden 2

    //size_pac - compressed file length
    //packed - compressed data buffer
    //unpacked - uncompressed data buffer
    //decompressor stub translated into c++ directly from asm (original file SLUS_009.58)
    //decompression function is placed at 0x80075F58 in memory (main executable section)

    void decompress(u32 size_pac, u8* packed, u8* unpacked)
    {
      u8 frame[1024];
      u8 ctrl;
      u32 tempCtrl;
      u8* end = packed + size_pac;
     
      u32 frameOffset = 0x3de;
      u8* currFrame = &frame[frameOffset];
      u32 remain;
     
      u32* tempFrame = (u32*)frame;
      while ((u32)tempFrame < (u32)currFrame)
      {
        *tempFrame = 0;
        tempFrame++;
      }
     
      while (1)
      {
        ctrl = *packed;
        packed++;
       
        if (packed >= end)
        {
          return;
        }
        tempCtrl = ctrl | 0xff00;

        do
        {
          if (tempCtrl & 1)
          {
            s8 tempCtrl2 = *packed;
            packed++;
            s32 cnt;
            if ((u8)tempCtrl2 < 0x80)
            {
              remain = *packed;
              packed++;

              u8 temOff = (tempCtrl2 & 3);
              tempCtrl2 = (tempCtrl2 >> 2) + 2;

              remain |= (temOff << 8);
              cnt = 0;
              if (tempCtrl2 >= 0)
              {
                do
                {
                  currFrame = &frame[frameOffset];
                  frameOffset++;
                  frameOffset &= 0x3ff;

                  u8* tempFrame = &frame[(remain + cnt) & 0x3ff];
                  ctrl = *tempFrame;
                  *unpacked = ctrl;
                  unpacked++;
                  *currFrame = ctrl;
                  cnt++;
                } while (cnt <= tempCtrl2);
              }
            } else if ((u8)tempCtrl2 < 0xc0)
            {
              remain = tempCtrl2 & 0xF;
              tempCtrl2 = ((tempCtrl2 & 0x30) >> 4) + 1;
              cnt = 0;
              if (tempCtrl2 >= 0)
              {
                do
                {
                  u32 tempFrameOffset = frameOffset - remain;
                  currFrame = &frame[frameOffset];
                  frameOffset++;
                  frameOffset &= 0x3ff;
                  tempFrameOffset &=  0x3ff;
                  u8* tempFrame = &frame[tempFrameOffset];
                  ctrl = *tempFrame;
                  *unpacked = ctrl;
                  unpacked++;
                  *currFrame = ctrl;
                  cnt++;
                } while (cnt <= tempCtrl2);
              }
            } else
            {
              tempCtrl2 = (tempCtrl2 & 0x3f)+7;
              cnt = 0;
              if (tempCtrl2 >= 0)
              {
                do
                {
                  ctrl = *packed;
                  packed++;
                  currFrame = &frame[frameOffset];
                  *unpacked = ctrl;
                  unpacked++;
                  *currFrame = ctrl;
                  frameOffset++;
                  if (frameOffset >= 0x400)
                  {
                    frameOffset = 0;
                  }
                  cnt++;
                } while (cnt <= tempCtrl2);
              }
            }
          } else
          {
            ctrl = *packed;
            packed++;
            if (packed >= end)
            {
              if (packed == end)
              {
                *unpacked = ctrl;
              }
              return;
            }

            *unpacked = ctrl;
            currFrame = &frame[frameOffset];
            *currFrame = ctrl;
            frameOffset++;
            unpacked++;
            if (frameOffset >= 0x400)
            {
              frameOffset = 0;
            }
          }
          tempCtrl >>= 1;
        } while (tempCtrl & 0x100);
      }
    }


Sinceramente, nem sei compilar isso.
Quando eu terminar de extrair tudo e organizar, eu te aviso, aí tentaremos unificar as traduções, ou pelo menos, deixar um padrão para ambas.
Esse script parece ser C++ ou alguma tool que usa C++ para scriptar coisas.

Tiozinho da Telesena

Olá amigos, só acrescentando ao que o Luke falou, a tradução das armas e itens levou em conta muitas coisas, pesquisamos sites especializados, nomes em japonês/chines e as imagens das armas para que a tradução ficasse a melhor possível, digo o mesmo para os itens...

:charuto: Não se preocupem, que não será uma tradução porca, "nois agarantio" ou devolveremos o seu dinheiro!!  :scripts:
Todas as minhas traduções e projetos estão aqui - Repositório do Tiozinho -

pvmambembe

Desenterrando aqui...
Sei que a tradução desse game é complicada, tbm sei que não tenho nenhuma experiência em tradução de roms, mas tenho tempo de sobra, amor pela franquia e já traduzi jogos de PC.

A tradução ainda é viva? Estou disposto a ajudar.

denim

Se não me engano, o HD do Luke que tinha os arquivos da tradução queimou. Então não sei se vai sair essa tradução tão cedo...

yusukke

#37

ah o bom e velho back-up na nuvem...
Boa sorte Luke
Não conheci o Romhacko por querer!

Elizomar

Citação de: yusukke online Junho 02, 2018, 15:19:32 PM

ah o bom e velho back-up na nuvem...
Boa sorte Luke

Macaco velho já devia ter isso em mente.... mas é vida que se segue.  :assobio:

ØX-Carnage

Citação de: Elizomar online Junho 03, 2018, 00:15:17 AM
Citação de: yusukke online Junho 02, 2018, 15:19:32 PM

ah o bom e velho back-up na nuvem...
Boa sorte Luke

Macaco velho já devia ter isso em mente.... mas é vida que se segue.  :assobio:

Mas ai não tem graça.
A graça e esperar o makako mijão chegar, viver perigosamente.....  :scripts: :scripts:

Luke sai da PSN para de gastar comprando jogos, olha ai a última atualização do projeto.



Tenho um Backup comigo.

Gamerulez

Nossa esse projeto ainda existe, lembro que ajudei em 1 mísero script hsuhusuhs e confundi com um jogo de nome parecido
"O único momento em que um advogado pode chorar é quando tudo estiver acabado." - Godot

Elizomar


radamantys07

Citação de: Elizomar online Agosto 05, 2018, 00:17:16 AM
Citação de: Gamerulez online Agosto 01, 2018, 22:59:35 PM
Nossa esse projeto ainda existe

Espero que continue. :huh:

Foi um dos jogos que mais joguei quando criança, suikoden 1 e 2, espero que saia a tradução pra ver como que fica em portugues!!!

leonardo_a

Como faz para ajudar na tradução? Não tenho muito tempo livre, mas sou fluente em inglês e Suikoden é um dos meus RPG's favoritos, então, sempre que tiver um tempinho traduzo algo.

Tricotreco

Resposta dada ao LordDan
Citar
Olá,
Pode ficar sossegado que nossa equipe está utilizando os nomes japoneses, estamos tentando fazer o melhor possível, claro que temos limitações de espaço e alguns nomes tivemos que readaptar, mas no contexto geral, tá ficando bem bacana, não estamos usando as sugestões a torto a direito, elas nos ajudam a ter outras opções, visto que Eu e o Tiozinho somos fãs da série e sabemos por exemplo que, オデッサ・シルバーバーグ é a amada de Flick.
Abraços.

Citei a resposta acima, que foi dada ao LordDan, para que eu possa enviar a minha mensagem. Então é o seguinte: você disse que fará adaptações, certo? Bom, sabemos que isso é ruim, principalmente, quando se trata de um RPG. Ainda mais um RPG tão bom. Não teria uma forma de evitar essas adaptações? Ou seja, abreviações ou substituições de palavras longas por palavras curtas que não tem nada a ver com o sentido real. Isso costuma gerar confusões durante o jogo. Por exemplo: pode atrapalhar o entendimento da história ou dificultar o andamento do jogo. Seria muito bom se vocês pudessem aumentar o espaço pra todos os caracteres necessários. Assim, podemos ter uma tradução perfeita e uma história 100% autêntica e fiel à original. Outra coisa que queria falar é que, seria interessante se vocês checassem a versão japonesa e ver se não há aqueles típicos erros de tradução e censuras das versões americanas. Outra coisa muito importante: já que a tradução havia ficado tanto tempo parada, corre se o risco de ter alguns erros antigos que podem passar despercebidos. Sabe quando deixamos algo parado por muito tempo e, depois quando revisitamos, descobrimos que naquela época não tínhamos tanta experiência assim? Então, seria bom revisar e comparar com os textos originais, em inglês — mais uma vez. Pode ter alguma coisa daquela época que vocês não usariam ou fariam hoje em dia. Em fim, parabéns pela iniciativa deste maravilhoso projeto de tradução.