Fórum Unificado de Romhacking e Tradução

Romhacking e Tradução de Jogos => Dúvidas e Ajuda => Tópico iniciado por: Ermanium online Abril 02, 2021, 13:25:00 PM

Título: [N64] Banjo-Tooie-Ponteiros
Enviado por: Ermanium online Abril 02, 2021, 13:25:00 PM
Então, como vocês sabem, eu estou trabalhando num projeto de tradução pt-br do jogo Banjo-Tooie já algum tempo. Eu havia parado por uns meses, mas retomei há uns dias.

A questão é que eu tô batendo cabeça com os ponteiros do jogo, a ROM que eu uso agora é a USA mesmo. Os ponteiros estão localizados entre os offsets 5188 e 12B23. Os ponteiros têm 4 bytes de comprimento, sendo o último quarto byte (alterna entre 16, 13, 17, 04 e outros) o tipo do arquivo comprimido para o qual o ponteiro está apontando (texto, música, etc).

Exemplo: No endereço 84F0 temos o ponteiro para o primeiro texto do jogo: 30 8B B6 13

O último byte (13) é o tipo do arquivo: texto, no caso. Já o 308BB6 é a distância entre o offset de início do bloco onde está localizado o texto comprimido (C359FC) menos o offset do primeiro bloco (12B24); tudo isso divido por 4. A fórmula fica assim:

ponteiro = (offset início do texto - 12B24) / 4

Entretanto mesmo utilizando a fórmula, movendo pro final da ROM, eu não consigo alterar nenhum ponteiro, qualquer valor que eu altere dentro do bloco de ponteiros deixa a ROM em loop infinito, então eu retomo o valor original. Se alguém puder me dar uma luz aqui eu vou ser muito agradecido.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Kamppello online Abril 05, 2021, 11:18:46 AM
Talvez o jogo não permita mover o arquivo de texto para uma posição muito distante, ou talvez haja um bloqueio nesses ponteiros. Eu recuaria um pouca a posição de um desses arquivos para testar.

Caso funcione, você pode usar o espaço que sobrar em um para compensar em outro.

Caso esteja realmente bloqueado, você pode usar a versão europeia, apagando o texto de algum idioma para compensar a falta de espaço no que você quer traduzir, e também para forçar o arquivo a ficar menor que o original após recomprimido e não ter a necessidade de alterar o ponteiro.

O ponteiro interno desses arquivos de texto, indicam a posição de inicio e a quantidade de caráter que o diálogo terá. Não me lembro bem, mas acho que era assim que funcionava.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 05, 2021, 18:32:12 PM
Citação de: Kamppello online Abril 05, 2021, 11:18:46 AM
Talvez o jogo não permita mover o arquivo de texto para uma posição muito distante, ou talvez haja um bloqueio nesses ponteiros. Eu recuaria um pouca a posição de um desses arquivos para testar.

Caso funcione, você pode usar o espaço que sobrar em um para compensar em outro.
Um byte que eu diminua ou aumente em qualquer ponteiro resulta em loop infinito, não funcionou :/

Citação de: Kamppello online Abril 05, 2021, 11:18:46 AM
Caso esteja realmente bloqueado, você pode usar a versão europeia, apagando o texto de algum idioma para compensar a falta de espaço no que você quer traduzir, e também para forçar o arquivo a ficar menor que o original após recomprimido e não ter a necessidade de alterar o ponteiro.
Eu já fazia isso, acho que vou continuar por esse caminho mesmo com a rom europeia já que acho que não vou conseguir manipular os ponteiros... Eu só gostaria de saber se tem como eu remover a opção de escolher idioma do menu do jogo, como eu não sabia fazer eu colocava um "?" como todas as opções de idioma pra driblar isso...

Citação de: Kamppello online Abril 05, 2021, 11:18:46 AM
O ponteiro interno desses arquivos de texto, indicam a posição de inicio e a quantidade de caráter que o diálogo terá. Não me lembro bem, mas acho que era assim que funcionava.
Os ponteiros internos dos arquivos eu sei como funcionam, mais ou menos.

Obrigado pela ajuda! Eu vou tentar ver o que eu consigo fazer por aqui.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Kamppello online Abril 05, 2021, 21:46:35 PM
Infelizmente isso ocorre em muitos jogos do Nintendo 64.

Há 4 anos eu tentei desenvolver uma ferramenta para esse jogo, infelizmente eu não cheguei a finalizar nem o extrator, ainda assim ela ficou mais ou menos.

<e3>: RED FEATHERS ARE NEEDED FOR KAZOOIE TO FLY!<0x0005010001050100>
<e3>: KAZOOIE A BESOIN DE PLUMES ROUGES POUR VOLER!<0x0005010001050100>
<e3>: KAZOOIE BRAUCHT ROTE FEDERN ZUM FLIEGEN!<0x0005010001050100>
<e3>: ¡KAZOOIE NECESITA PLUMAS ROJAS PARA VOLAR!<0x0005010001050100>


<80>: OOOH...AN EGG! I'M SURE WE'LL FIND A USE FOR THIS SOMEWHERE...<0x0005010001050100>
<80>: OHHH... UN OEUF! JE SUIS SÛR QU'IL POURRA NOUS ÊTRE UTILE!...<0x0005010001050100>
<80>: HE, EIN EI! DAS KÖNNEN WIR SICHER IRGENDWO VERWENDEN...<0x0005010001050100>
<80>: OOOH... ¡UN HUEVO! CREO QUE LE ENCONTRAREMOS ALGÚN USO EN ALGÚN LUGAR...<0x00050100>


Imagino que o <e3> seja o BOTTLES, <80> seja o BANJO.

A melhor opção para tentar resolver o problema com os ponteiros é procurar orientação de algum grupo de fora que tenha traduzido o jogo.

Vou deixar os arquivos em anexo, talvez possam servir para consulta.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 05, 2021, 22:37:27 PM
Poxa, que pena que você não finalizou a ferramenta...

Mas de qualquer forma, obrigado pela ajuda, vou ver se consigo mais informações nesses grupos. Apenas o Banjo-Kazooie foi traduzido, mas com base nele eu provavelmente vou achar algo relevante sobre o Banjo-Tooie, talvez eu encontre algo em forums internacionais da rare também.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Anime_World online Abril 06, 2021, 06:28:45 AM
Citação de: Kamppello online Abril 05, 2021, 11:18:46 AM
Talvez o jogo não permita mover o arquivo de texto para uma posição muito distante, ou talvez haja um bloqueio nesses ponteiros. Eu recuaria um pouca a posição de um desses arquivos para testar. .

Não existe isso.
De duas uma, ou a alteração no ponteiro está sendo feita de forma incorreta ou o que você está alterando não é o ponteiro.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 06, 2021, 11:55:16 AM
Pra mim são os ponteiros sim, eles começam bem próximo de onde inicia o bloco de ponteiros do banjo-Kazooie, e eles tem uma padronização com valores crescentes... Utilizando a fórmula eu consigo chegar no valor exato que está lá no bloco de ponteiros, porém como eu já havia mencionado: qualquer valor que eu altere lá resulta em loop infinito, então eu sempre retorno aos valores originais.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Anime_World online Abril 06, 2021, 17:18:16 PM
Citação de: Ermanium online Abril 06, 2021, 11:55:16 AM
Pra mim são os ponteiros sim, eles começam bem próximo de onde inicia o bloco de ponteiros do banjo-Kazooie, e eles tem uma padronização com valores crescentes... Utilizando a fórmula eu consigo chegar no valor exato que está lá no bloco de ponteiros, porém como eu já havia mencionado: qualquer valor que eu altere lá resulta em loop infinito, então eu sempre retorno aos valores originais.

Existe outras coisas que possuem padronização e valores crecentes, como por exemplo, tilemap.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: SBraz Gamer online Abril 06, 2021, 18:42:24 PM
Já viu se recalculando o crc da rom resolve?
Uma vez eu usei uma ferramenta chamada "rn64crc" que corrigiu o loop que estava tendo numa rom de 64.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 06, 2021, 20:23:39 PM
Fiz aqui o que você sugeriu: depois de modificar o ponteiro, usei a ferramenta pra atualizar o crc, mas infelizmente continuou em loop ao tentar emular a ROM, então eu retornei ao ponteiro original.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 06, 2021, 20:48:24 PM
Citação de: Anime_World online Abril 06, 2021, 17:18:16 PM
Citação de: Ermanium online Abril 06, 2021, 11:55:16 AM
Pra mim são os ponteiros sim, eles começam bem próximo de onde inicia o bloco de ponteiros do banjo-Kazooie, e eles tem uma padronização com valores crescentes... Utilizando a fórmula eu consigo chegar no valor exato que está lá no bloco de ponteiros, porém como eu já havia mencionado: qualquer valor que eu altere lá resulta em loop infinito, então eu sempre retorno aos valores originais.

Existe outras coisas que possuem padronização e valores crecentes, como por exemplo, tilemap.

É uma possibilidade, tiveram coisas que me fizeram pensar que esse poderia ser o bloco de ponteiros, mas vou vasculhar outros pontos na ROM que possam ser ponteiros.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Anime_World online Abril 07, 2021, 13:25:14 PM
Citação de: Ermanium online Abril 06, 2021, 20:48:24 PM
Citação de: Anime_World online Abril 06, 2021, 17:18:16 PM
Citação de: Ermanium online Abril 06, 2021, 11:55:16 AM
Pra mim são os ponteiros sim, eles começam bem próximo de onde inicia o bloco de ponteiros do banjo-Kazooie, e eles tem uma padronização com valores crescentes... Utilizando a fórmula eu consigo chegar no valor exato que está lá no bloco de ponteiros, porém como eu já havia mencionado: qualquer valor que eu altere lá resulta em loop infinito, então eu sempre retorno aos valores originais.

Existe outras coisas que possuem padronização e valores crecentes, como por exemplo, tilemap.

É uma possibilidade, tiveram coisas que me fizeram pensar que esse poderia ser o bloco de ponteiros, mas vou vasculhar outros pontos na ROM que possam ser ponteiros.

Essa ferramenta decomprime o conteúdo do jogo:
https://www.romhacking.net/utilities/496/
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 07, 2021, 20:50:30 PM
Pois é, eu já utilizo essa ferramenta, a única questão é os ponteiros mesmo...

Eu andei vasculhando a ROM e encontrei outro ponto que tem uma padronização crescente

-O primeiro intervalo que eu já tinha mencionado era o 5188-12B23 e os ponteiros tinham 4 bytes, utilizando a fórmula eu consigo encontrar o bloco de texto comprimido pra onde o ponteiro aponta (que eu tenho os arquivos .bin descomprimidos em uma pasta graças ao descompactador da rare). Porém, como eu tinha dito anteriormente, eu não consigo modificar os ponteiros sem resultar em loop, eu já mandei o bloco de texto pro final da ROM, já substituí ponteiros por outros existentes dentro do bloco de ponteiros, já incrementei e decrementei o último byte do ponteiro em 1... e nada.

-O outro local que eu encontrei começa no offset 1A14574, que é praticamente no final da ROM (é possível visualizar melhor esse padrão do bloco se cada linha do editor hexadecimal tiver 18 bytes). Porém, esse bloco é bem curto e nem tão padronizado. Além do mais, eu alterei todos os valores crescentes dentro desse bloco pra um já existente ali e não resultou em nada aparentemente (porém sem loop ao tentar emular). Eu gostaria de saber se o bloco de ponteiros pode ser no final da ROM.

Obrigado pela atenção!
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Anime_World online Abril 07, 2021, 21:07:44 PM
Citação de: Ermanium online Abril 07, 2021, 20:50:30 PM
Pois é, eu já utilizo essa ferramenta, a única questão é os ponteiros mesmo...

Eu andei vasculhando a ROM e encontrei outro ponto que tem uma padronização crescente

-O primeiro intervalo que eu já tinha mencionado era o 5188-12B23 e os ponteiros tinham 4 bytes, utilizando a fórmula eu consigo encontrar o bloco de texto comprimido pra onde o ponteiro aponta (que eu tenho os arquivos .bin descomprimidos em uma pasta graças ao descompactador da rare). Porém, como eu tinha dito anteriormente, eu não consigo modificar os ponteiros sem resultar em loop, eu já mandei o bloco de texto pro final da ROM, já substituí ponteiros por outros existentes dentro do bloco de ponteiros, já incrementei e decrementei o último byte do ponteiro em 1... e nada.

-O outro local que eu encontrei começa no offset 1A14574, que é praticamente no final da ROM (é possível visualizar melhor esse padrão do bloco se cada linha do editor hexadecimal tiver 18 bytes). Porém, esse bloco é bem curto e nem tão padronizado. Além do mais, eu alterei todos os valores crescentes dentro desse bloco pra um já existente ali e não resultou em nada aparentemente (porém sem loop ao tentar emular). Eu gostaria de saber se o bloco de ponteiros pode ser no final da ROM.

Obrigado pela atenção!

Nem sempre os ponteiros estão em uma tabela e seguem uma padronização, nem sempre os ponteiros são absolutos, em alguns casos eles são relativos, existindo um ponteiro que aponta para o bloco todo e posteriormente os relativos dentro desse bloco apontando para os dialogos. Você está considerando eles como absoluto, pode ser esse seu erro.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Luke online Abril 08, 2021, 00:25:16 AM
Olá.

Posta o arquivo com a tabela, pra olharmos mais de perto.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Kamppello online Abril 08, 2021, 07:40:49 AM
Substitui o valor de um ponteiro pelo de outro. Já vi isso em outra Rom, funcionou perfeitamente.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 08, 2021, 18:37:57 PM
Citação de: Luke online Abril 08, 2021, 00:25:16 AM
Olá.

Posta o arquivo com a tabela, pra olharmos mais de perto.

Qual arquivo? Eu não utilizo tabela, eu usei o descompactador da Rare pra encontrar os textos comprimidos do jogo. Eu baixei desse link: https://github.com/aybe/N64UniversalCompressor (https://github.com/aybe/N64UniversalCompressor)
A ROM eu baixei daqui: https://vimm.net/vault/2534 (https://vimm.net/vault/2534)

Citação de: Kamppello online Abril 08, 2021, 07:40:49 AM
Substitui o valor de um ponteiro pelo de outro. Já vi isso em outra Rom, funcionou perfeitamente.
Já fiz isso, não funcionou :/
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Luke online Abril 09, 2021, 18:07:24 PM
Quando descomprimo a rom, gera 666 mil arquivos.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 09, 2021, 21:13:42 PM
Como assim? Nossa kkkk mas tipo eu coloquei a ROM em uma pasta em branco e usei o GEDecompressor que está lá na pasta do link que eu coloquei. Quando eu abro o programa eu escolho "Banjo-Tooie" e deixo "Gen Text Files" marcada, daí depois que eu carrego a ROM que eu coloquei na pasta e espero tudo terminar eu fico com 22.211 arquivos na pasta (os .bin + a ROM + os .txt). Foi assim que eu fiz... Será que de repente você não usou um outro descompactador, ou outra ROM, ou esqueceu de escolher "Banjo-Tooie" na lista? Você conseguiu encontrar os textos?
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Luke online Abril 09, 2021, 22:30:15 PM
Citação de: Ermanium online Abril 09, 2021, 21:13:42 PM
Como assim? Nossa kkkk mas tipo eu coloquei a ROM em uma pasta em branco e usei o GEDecompressor que está lá na pasta do link que eu coloquei. Quando eu abro o programa eu escolho "Banjo-Tooie" e deixo "Gen Text Files" marcada, daí depois que eu carrego a ROM que eu coloquei na pasta e espero tudo terminar eu fico com 22.211 arquivos na pasta (os .bin + a ROM + os .txt). Foi assim que eu fiz... Será que de repente você não usou um outro descompactador, ou outra ROM, ou esqueceu de escolher "Banjo-Tooie" na lista? Você conseguiu encontrar os textos?
Então, qual arquivo é que vc ta mexendo? que não consegue usar o ponteiro?
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 10, 2021, 00:25:29 AM
Os ponteiros da ROM que apontam pros textos comprimidos, eles começam no offset 5188 da ROM.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Luke online Abril 10, 2021, 12:00:21 PM
Citação de: Luke online Abril 09, 2021, 22:30:15 PM
Citação de: Ermanium online Abril 09, 2021, 21:13:42 PM
Como assim? Nossa kkkk mas tipo eu coloquei a ROM em uma pasta em branco e usei o GEDecompressor que está lá na pasta do link que eu coloquei. Quando eu abro o programa eu escolho "Banjo-Tooie" e deixo "Gen Text Files" marcada, daí depois que eu carrego a ROM que eu coloquei na pasta e espero tudo terminar eu fico com 22.211 arquivos na pasta (os .bin + a ROM + os .txt). Foi assim que eu fiz... Será que de repente você não usou um outro descompactador, ou outra ROM, ou esqueceu de escolher "Banjo-Tooie" na lista? Você conseguiu encontrar os textos?
Então, qual arquivo é que vc ta mexendo? que não consegue usar o ponteiro?

Então fica 22 mil arquivos pequenos, qual vc está abrindo? onde? não manjo de n64, mas talvez possa te ajudar com esses ponteiros, mas primeiro preciso saber.

1. qual arquivo você está abrindo desses 22 mil arquivos.?
2. onde você está abrindo, qual programa está usando?

fica mais fácil alguém te ajudar, se ao menos a pessoa consiga estar junto com você na situação, assim, escrevendo ponteiro x lugar y, só vai receber mensagem de ajuda vazias.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 10, 2021, 23:25:26 PM
Estou usando o Hex Editor Neo e os arquivos que eu tô editando além da ROM, são os textos descomprimidos: vai do arquivos que estão entre "C359FC.bin" até "C708A4.bin". Eu pesquiso dentro da pasta na caixa de pesquisa por uma palavra do jogo que eu queira encontrar, assim eu chego no arquivo .txt, que tem o mesmo título do .bin que eu vou editar. Pra me auxiliar eu também utilizo a seguinte página: https://hack64.net/wiki/doku.php?id=banjo_tooie:rom_map#text_files (https://hack64.net/wiki/doku.php?id=banjo_tooie:rom_map#text_files)

Na tabela: tem o offset (ROM Address) de onde está o bloco de texto comprimido na ROM e o offset do ponteiro que aponta pra lá (Unpacking Address).
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Anime_World online Abril 12, 2021, 02:07:51 AM
Acho que por serem arquivos compactados, não existe a necessidade de você editar os ponteiros. Bastando somente expandir o arquivo, recompactar e reinserir. Olhando os detalhes do site que você mandou, eles aparentam estar em formato de container, logo faz sentido o processo que citei.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 12, 2021, 22:39:15 PM
O que eu faço é editar o texto no arquivo .bin e recompactar com o compressor e reeinserir o compactado manualmente na ROM, mas às vezes se o texto editado ficar bem maior que o original, o resultado do compactado ultrapassa o tamanho do bloco onde o texto está localizado na ROM, daí não tem como inserir manualmente, por isso eu acho que tem que mover esse trecho pro fim da ROM pra aumentar a capacidade do bloco...
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Luke online Abril 12, 2021, 23:14:08 PM
Citação de: Ermanium online Abril 12, 2021, 22:39:15 PM
O que eu faço é editar o texto no arquivo .bin e recompactar com o compressor e reeinserir o compactado manualmente na ROM, mas às vezes se o texto editado ficar bem maior que o original, o resultado do compactado ultrapassa o tamanho do bloco onde o texto está localizado na ROM, daí não tem como inserir manualmente, por isso eu acho que tem que mover esse trecho pro fim da ROM pra aumentar a capacidade do bloco...
Não vai funcionar assim.
é comprimido, teria que ver se dá pra aumentar o tamanho da leitura do container em especifico, mas ai não tem nada a ver com ponteiro.

Eu vi que o programa faz a compressão e inseri, ele não funciona? a inserção?
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 13, 2021, 01:29:47 AM
Eu nunca consegui usar esse compressor pra reeinserir na ROM, nas versões anteriores da ferramenta eu clicava em "Inject file into ROM" e eu conseguia inserir na ROM, mas sempre congelava quando eu ia testar o texto... Nessa versão que eu tô usando eu clico no botão e não acontece nada. Foi aí que eu passei a inserir manualmente, só peguei o que tava escrito no .bin depois de recomprimir, copiei e colei na ROM no offset com o número correspondente ao nome do arquivo .bin editado.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Anime_World online Abril 13, 2021, 20:28:08 PM
Citação de: Ermanium online Abril 13, 2021, 01:29:47 AM
Eu nunca consegui usar esse compressor pra reeinserir na ROM, nas versões anteriores da ferramenta eu clicava em "Inject file into ROM" e eu conseguia inserir na ROM, mas sempre congelava quando eu ia testar o texto... Nessa versão que eu tô usando eu clico no botão e não acontece nada. Foi aí que eu passei a inserir manualmente, só peguei o que tava escrito no .bin depois de recomprimir, copiei e colei na ROM no offset com o número correspondente ao nome do arquivo .bin editado.

Por isso você está tendo problemas.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 14, 2021, 00:04:52 AM
Mas eu inserindo manualmente tem funcionado, mas apenas se o texto comprimido editado ficar menor ou igual ao original, se ficar com o tamanho maior não funciona...
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Anime_World online Abril 14, 2021, 01:38:13 AM
Citação de: Ermanium online Abril 14, 2021, 00:04:52 AM
Mas eu inserindo manualmente tem funcionado, mas apenas se o texto comprimido editado ficar menor ou igual ao original, se ficar com o tamanho maior não funciona...

Justamente... sem usar a ferramenta só vai funcionar dessa forma.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Luke online Abril 14, 2021, 02:36:21 AM
Citação de: Ermanium online Abril 14, 2021, 00:04:52 AM
Mas eu inserindo manualmente tem funcionado, mas apenas se o texto comprimido editado ficar menor ou igual ao original, se ficar com o tamanho maior não funciona...
Justamente, porque é preciso recalcular o comprimento e o apontamento do arquivo.
se o o autor do programa fez para inserção na rom, provavelmente o programa altera automaticamente os ponteiros e comprimento de cada container, deve ter alguma coisa pra fazer.
ou você tentar entender o funcionamento do tamanho.

Imagina o seguinte. (um exemplo.)

0 A 100 = PSN ONDINHA
101 A 200 = PROMOÇÃO PSN
201 A 300 = RIP ROMHACK

Ai você alterou:

0 A 100 = PSN ONDINHA PROMOÇÃO DE NATAL.
foi para 0 A 130, porque você aumentou o texto certo?
consequentemente os outros arquivos deve ir pra frente também.

131 A 230
231 A 330

e não mais 200 e 300 como antes, devem seguir pra frente porque você expandiu.

o que acontece é que o apontamento do comprimento ou ponteiro ainda continua apontando pro 100.
então ele pega o final da sua alteração e o começo do segundo container, ai dá pau mesmo.

Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 15, 2021, 14:20:22 PM
Pois é, das duas umas:

Ou eu encontro os ponteiros e os edito manualmente, ou eu reinsiro o texto comprimido modificado com a ajuda da ferramenta de compressão, porém não estou conseguindo executar nenhuma dessas duas opções...
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: WolfferroW online Abril 15, 2021, 15:54:38 PM
Esse RN64CRC é meio quebrado (em StarFox64 ele já me deixou na mão), optar por uCON64 (https://ucon64.sourceforge.io/), instale ele e o dat do N64 (https://prdownloads.sourceforge.net/ucon64/n64-20031115.zip?download), esse recalcula de boas, mas não abuse muito das extremidades.

Um detalhe, como é mesmo código HEX desses ponteiros?
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Abril 17, 2021, 00:55:47 AM
Vou dar uma olhada nisso que vc sugeriu...

O código hex eu já mencionei aqui na thread, eu acho
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Maio 06, 2021, 21:05:49 PM
Eu consegui usar o compressor pra inserir na ROM o arquivo modificado, ele comprime e insere na ROM, porém o resultado comprimido tem que ser menor ou igual o tamanho do bloco original... Continua na mesma, eu acho que vou seguir o esquema de usar sinônimos pra escrever textos menores que encaixem dentro do bloco comprimido ou então eu uso a ROM europeia e apago os demais idiomas como eu fazia antes.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Agosto 16, 2021, 16:38:49 PM
Gente, eu consegui sair dos loops infinitos quando inicia a ROM, depois de modificar os supostos ponteiros. Eu usei aquela ferramenta que atualiza o checksum da ROM e funcionou, porém agora aparece NO CONTROLLER quando inicia o jogo, não posso apertar nenhum botão do controle, e tbm não consigo acessar os save states que eu tinha salvo anteriormente. Alguém tem alguma ideia do que possa ser? Eu acredito estar no caminho certo, aparentemente é algo com o checksum, já que antes eu não conseguia modificar nenhum byte no bloco de ponteiros pois terminava em loop infinito.
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Agosto 18, 2021, 18:17:57 PM
Gente, eu usei o ucon64 com o arquivo DAT do n64 pra recalcular o checksum, mas continua aparecendo o NO CONTROLLER na tela e não carrega o save state salvo anteriormente...
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: denim online Setembro 26, 2021, 09:19:07 AM
Citação de: Ermanium online Abril 02, 2021, 13:25:00 PM
Os ponteiros têm 4 bytes de comprimento, sendo o último quarto byte (alterna entre 16, 13, 17, 04 e outros) o tipo do arquivo comprimido para o qual o ponteiro está apontando (texto, música, etc).

Exemplo: No endereço 84F0 temos o ponteiro para o primeiro texto do jogo: 30 8B B6 13

O último byte (13) é o tipo do arquivo: texto, no caso. Já o 308BB6 é a distância entre o offset de início do bloco onde está localizado o texto comprimido (C359FC) menos o offset do primeiro bloco (12B24); tudo isso divido por 4. A fórmula fica assim:

ponteiro = (offset início do texto - 12B24) / 4

Sua suposição está incorreta. Embora o resultado para este caso em especial não altere, o ponteiro não é de 24 bits, mas sim, 26 bits.

Então para o caso que citou, 0x308BB613, removemos os 6 bits menos significativos, resulta em 0xC22ED8, que ao somar com o base 0x12b24 dá 0xC359FC. Portanto, a fórmula correta é ((offset - 0x12b24) * 64) + tipo de arquivo.

Então se o texto estiver no final da rom, por exemplo 0x1ff0002, pela sua fórmula resulta em 0x7F753713, mas pela fórmula correta, temos 0x7F753793

Essa é a primeira observação. Existe uma outra, que é a indicação do tamanho do bloco comprimido. Não existe isso no bloco em si, este tamanho é obtido pela diferença entre o ponteiro atual e o próximo (isso explica o motivo de eles estarem em ordem crescente e também explica o motivo do jogo travar se você trocar dois ponteiros, pois o tamanho acaba ficando negativo em algum deles).

Sendo assim, é necessário que, sua ferramenta insira todos os dados ao mesmo tempo e faça a atualização de todos os ponteiros, mesmo você tendo alterado apenas um pequeno texto. Se tentar mudar apenas um ou alguns, em algum momento vai gerar erros no tamanho do bloco de algum dos dados e vai travar o jogo.

Abaixo, eu fiz a edição do ponteiro de uma das primeiras falas do jogo, movendo o conteúdo para o final da rom, usando o método correto para atualizar o ponteiro.

(https://i.imgur.com/DlWFWhg.png)
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: Ermanium online Outubro 24, 2021, 00:08:46 AM
Então, eu fiz como você falou movi pro fim da ROM nesse mesmo offset que você passou como exemplo e continua aparecendo o NO CONTROLLER no início do jogo (e não dá pra sair dessa dela)...

Você recalculou o checksum? Alterou o tamanho do bloco original comprimido?

Bom, independente se eu conseguir algo ou não... vlw! Você me deu uma luz aqui, eu já suspeitava que a questão poderia estar especificamente nos bits e não nos bytes, mas não fazia ideia que o comprimento era de 26 bits!
Título: Re:[N64] Banjo-Tooie - Ajuda com ponteiros
Enviado por: lucas3562 online Maio 02, 2023, 01:55:02 AM
Vi sua postagem referente ao No Controler, nn seei se ja conseguiu resolver mas estava pesquisando e essa mensagem de erro ocorre pois a rare criou uma trava no banjo tooie para evitar pirataria, acredito que ao tentar modificar o código para traduzir o jogo entende que vc esta pirateando, vi que é referente a eprom, da uma olhada nesse vídeo https://youtu.be/97sISm1hzBU, nn manjo muito mas possa ser q te de uma luz, espero q consiga traduzir estou no aguardo para desfrutar desse grande trabalho  :cuteeyes: