[Documentação] Dicionário/Glossário do ROMHacking

Iniciado por chatty, Julho 07, 2023, 12:58:52 PM

tópico anterior - próximo tópico

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

chatty

ASM Patching: Técnica que envolve a criação de scripts que serão executados pelo terminal para realizar o patching de scripts, gráficos e código em assembly por cima da ROM original. Aqueles com conhecimento de ASM Patching podem reprogramar pequenas porções do código do jogo, como aumentar o tamanho de uma janela.

Assembly (ASM): Está relacionado com o código do jogo escrito somente com instruções capazes de serem convertidas diretamente para o código binário que a CPU do sistema alvo será capaz de entender. Isto é o que chamamos de uma linguagem de "baixo nível de abstração" ou "low-level" por se operar de forma próxima ao hardware. Código escrito em Assembly não pode ser facilmente convertido para arquiteturas diferentes utilizando um outro compilador.

Binário: O sistema de notação numérica utilizado por todos os eletrônicos. Também é conhecido como um sistema de base 2 em termos matemáticos. Há somente dois dígitos conhecidos: 0 e 1. Por exemplo, o número 6 em decimal se escreve 110 em binário. Eletrônicos digitais só conseguem distinguir entre "corrente" e "sem corrente" (ligado/desligado) e então este sistema numérico é usado. Isso é tanto por ser confiável como por ser simples.

Bit: A menor unidade de informação para armazenar dados. Apenas pode conter "0" ou "1".

Busca Relativa: Um método de busca para encontrar os códigos hexadecimais que compõem determinados dados dentro de um jogo. O processo envolve digitar uma string de busca, geralmente uma palavra, que o programa irá ler e então decifrar as diferenças de valor entre cada caractere.

Compressão: Um esquema de encoding no qual um único byte hexadecimal é utilizado para representar duas ou mais letras. Adicionar ou remover isto requer modificações em Assembly.

Corrupção: Ato de substituir uma porção de dados por informações geradas aleatoriamente, possivelmente deixando esses dados inutilizáveis.

Editor Hexa: Programa usado para editar os dados binários de um arquivo ROM.

Emuladores: Programas que imitam o comportamento de um hardware alvo para executar seu software em um hardware diferente. Um emulador de Super Nintendo, por exemplo, te permite rodar jjogos que foram desenhados com o hardware do SNES em mente no seu computador.

Fonte: Coleção de letras que um jogo é capaz de exibir como texto. Em jogos da língua inglesa costumam estar incluídas as letras a-z, A-Z e os números 0-9, além de sinais gráficos como ! e ?. É necessário hackear as fontes dos jogos para adicionar suporte a caracteres acentuados.

Hexadecimal: Em linguagem de programação low-level como no Assembly todo número é armazenado em dados binários pois o hardware funciona com eles. Já que colunas sem fim de 0s e 1s são muito difíceis de se trabalhar, os dados costumam ser representados no formato hexadecimal. Diferente do sistema decimal (usado cotidianamente) este sistema possui 16 digítos de 0 a F. O número 10 em decimal, por exemplo, é representado pela letra A em hex. O prefixo 0x costuma ser usado antes de números em hexadecimal.

ISO: Nome usado para definir dados extraídos de mídia ótica, como um HD ou um CD. Não confundir com ROM, pois as ISOs não contém apenas dados binários como também informações como a estrutura de pastas ou até dados separados, como áudio.

Patch: Arquivo que contém informações sobre como modificar dados de um arquivo de ROM. Hacks e traduções são distribuídos neste formato para evitar complicações legais. Alguns formatos de patch incluem BPS, IPS e xdelta.

Ponteiro: Valor que referencia ou "aponta" para outros dados. São encontrados tanto nos arquivos quanto na memória de um programa. Podem ser absolutos ou relativos. Absoluto quer dizer que um arquivo ou endereço de memória é especificado; relativo quer dizer que o valor especificado é um offset tirado a partir de um endereço base.

Revisor: Alguém que passa textos traduzidos a limpo, corrigindo erros ortográficos e gramaticais.

ROM (memória): Abreviação de Read Only Memory ou memória de apenas leitura. É o chip dentro de um cartucho de jogo no qual os dados físicos do jogo são armazenados, incapazes de serem modificados pelo hardware, daí o nome "apenas leitura".

ROM (arquivo): Uma cópia binária dos dados físicos que são armazenados dentro de uma placa ROM. Há diversos formatos para cada sistema utilizados. Esses arquivos são modificados e então patcheados pelos ROMHackers. Para usar as traduções em hardware verdadeiro é hecessário transferí-las para um cartucho real, como cartuchos de reprodução.

ROMHacking: Ato de modificar dados contidos em arquivos ROM. Quem engaja nisto é chamado de ROMHacker.

Script: Blocos de textos obtidos de um jogo com a finalidade de serem traduzidos.

huskie

#1
Bom tópico. É útil para novatos se nortearem melhor em seus começos.

Apenas sugiro que edite pra acrescentar complementos como por exemplo na descrição de ROM (Random Only Memory) que, como no caso de arquivos extraídos de um cartucho, por exemplo, é uma imagem do cartuchos, contendo os arquivos e endereçamentos de memória do programa extraído, no caso, um jogo.

Coisas assim. ;)

Tornei o tópico fixo pra ficar sempre no começo da lista pra novatos encontrarem fácil ao entrarem nesta seção.
Through PS4 PSXItarch v3 Linux!

chatty

Que tal agora? Separei ROM em "memória" e "arquivo".

huskie

Está ótimo. Siga assim. Sugiro ir complementando esta postagem com novas mensagens para ir dando os complementos em "níveis" de destrinchamento. Assim, aos poucos, cada item vai sendo esmiuçado com seus detalhes cada vez mais a fundo.

Não esqueça de inserir mais algumas coisinhas como RAM, Calcular endereçamentos (como no caso de se obter mais espaço para caberem frases traduzidas-só descritos brevemente mesmo-) etc.

Podes te guiar em partes de outros tuts (tutoriais-eu, chamos de tuts por preguiça. huahuahua!) de usuários mais antigos daqui do FUT, como do Denim, Anime_World, OX-Carnage, Odin (Ondinha) etc.
Through PS4 PSXItarch v3 Linux!

chatty

 :tonto:

Coisas mais avançadas como por exemplo o que é RAM, calcular endereços etc. eu explico no meu tutorial Zé da Esquina. Meu tutorial não é dos melhores (até porque ele se foca até demais apenas na arquitetura de NES) mas ele é um bom norte.