[Tool] Código Phyton para modificação de ponteiros

Iniciado por douglaskraft, Março 30, 2023, 23:06:26 PM

tópico anterior - próximo tópico

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

douglaskraft

Na minha caminhada para tentar traduzir um Jogo, fiz alguns códigos em phyton, que podem auxiliar alguém em algum projeto.
Deixei eles públicos no colab, da para baixar e modificar do jeito que achar melhor.
Estou usando para traduzir Guardian's Crusade, então o exemplo é do jogo.

Sobre o código, são 7 passos, que vão da leitura dos ponteiros do aquivo original e modificada, até a mudança deles.
Para extração e inserção de texto, creio que tem ferramentas eficientes na internet.
Não sou especialista em python então não me perguntem muita coisa, qualquer coisa tem ChatGPT da vida para mudar o código como vcs quiserem kkkk.

Se tiver uma conta google, pode salvar no drive e usar no colab em ambiente virtual.


https://colab.research.google.com/drive/1R4qY4pFFVLQpCQFY9EiV9ZIjQWvH70QC?usp=sharing


2° versão


Vc diz qual o arquivo original e modificado, depois a posição da tabela de ponteiros, e pode executar tudo de uma vez. OBS: tem que modificar o código para cada projeto, o header dos ponteiros do arquivo que estou trabalhando sempre está a 4 byts do início, os textos começam e terminam após valores específicos.



PSGM

Traduções:
Dark Half (SNES)

douglaskraft


Anime_World

Só de ter escrito "Phyton" já perdi a vontade de olhar o código.
nonononono

Breno

Bela iniciativa, é sempre bom compartilhar conhecimentos!

João13

✺ Traduções ✺
⌛: 2
✅: 4
✔️: 10

✮ Veja aqui

𖤐 Servidor do Discord 𖤐


Anime_World

#6
Citação de: douglaskraft online Maio 30, 2023, 13:40:52 PM
Citação de: Anime_World online Maio 26, 2023, 19:38:38 PM
Só de ter escrito "Phyton" já perdi a vontade de olhar o código.
FODA-SE meu irmão
É mais útil tu corrigir e aprender a aceitar as críticas. O correto é Python.
Outra coisa, temos regras de comportamento aqui, acho bom tu dar uma lida.

-----
Bom, fiz um certo esforço pra olhar seu Jupyter Notebook. Ficam aqui mais algumas considerações:
1 - O conteúdo está mal formatado.
2 - Os exemplos dependem de arquivos externos não presentes no ipynb.
3 - Os comentários são muito genéricos e falta uma didática mais assertiva pra explicar o que cada coisas faz. Comentários do tipo "le isso", "faz isso" não auxiliam muito no aprendizado de quem está começando.
4 - A programação é cansativa e depende de muitas linhas para fazer coisas simples, que podem ser resolvidas com 1 ou 2 funções específicas. Mas até ai, da pra passar, você mesmo disse que não é especialista em Python. Mas recomendo refatorar para fazer tudo de forma mais direta e simples.
5 - Não vejo necessidade de iterações com print. Gera uma saída gigante e desnecessária.
6 - Muitas repetições. Quando o código se repete muito algo está sendo feito de forma errada.
7 - Seria de bom tom, adicionar imagens mostrando o arquivo binário e o porque de estar programando para ler de certa forma. Já que sabemos que isso vai mudar de jogo para jogo. Então uma boa explicação de como foi feito a mineração dos dados no binário e sua estrutura é bastante agregador.
8 - Explicar a escolha das funções, dos tipos de iteração e dos tipos de leitura de arquivos escolhidos.
9 - Se você usar o modulo struct fica bem mais formatado o seu código.
10 - Recomendo usar pep8
11 - O Jupyter Notebook permite que você adicione textos e imagens, então elaborar melhor o conteúdo, explicando mais detalhadamente sem embutir no código e fragmentando mais seria mais adequado para o ensino de quem deseja aprender. Caso contrário fica parecendo aqueles tutoriais copia e cola sem assimilar nada ou ChatGPT me explica isso.
12 - Se o intuito era criar um template genérico para reuso, recomendo que você use o Github para disponibilizar o código, assim as pessoas podem criar "forks" do seu template e editar livremente como desejam. Inclusive você pode adicionar o ipynb lá que o Github vai renderizar ele.
13 - A partir do momento em que você se comprometeu a ensinar, não seja econômico em detalhar as explicações. Quanto mais detalhado melhor para o aprendizado e menos confuso fica. Se você não domina o assunto é uma ótima oportunidade pra deixar mais conciso seu conhecimento, ensinar ajuda a consolidar o aprendizado.

O kuroi montou um tutorial recentemente muito bom sobre como escrever dumpers/inserters, recomendo que você de uma lida e veja como ele foi assertivo na didática.
http://www.romhacking.net.br/index.php?topic=842.0
nonononono

douglaskraft

Não criei no objetivo de ser um tutorial, e sim para ser mais como um exemplo,
" se vc está com dificuldade de inserir textos pode fazer com Python", aliás a 2°versão está com alguma falha, que assim que me sobrar tempo corrijo, por mesmo motivo não está no Github.
Esse manual, que já tinha lido, não ajuda em situações que eu estou enfrentando no jogo especifico.
Quem utiliza o colab, sabe que é simples fazer uma cópia e mexer como quiser, sabe como rodar o código inteiro de uma vez, se por algum motivo o Google restringiu o acesso, eu libero novamente.
 
Ultimamente estou sem tempo e cabeça para prosseguir com o desenvolvimento do código/tradução.