News
Welcome to NeoRHDN! This place is still a work-in-progress, so pardon the construction...

Chat on Discord
Views: 800,639
Sections: Documents | Utilities | ROM Hacks | Games | Translations | Homebrew | Fonts | Community
Site: Main | Rules/FAQ | Discord | Memberlist | Latest posts | Stats | Ranks | Online users
12-03-24 05:43 PM
Guest: Register | Login

0 users currently in Hacking Help | 1 bot

Main - Hacking Help - Dictionary of ROMhacking Terms, The Book of Knowledge (5)


Fangamestalgia
Posted on 08-18-24 07:43 AM, in Link | ID: 244
Newcomer

Level: 3

Posts: 4/5
EXP: 119
Next: 9

Since: 08-12-24

Last post: 105 days
Last view: 83 days
ROMhacking.net Dictionary of ROMhacking Terms
The Book of Knowledge

Overview
This is a dictionary we here at ROMhacking.net have put together just for you. It's not just any dictionary. It's a special dictionary specific to ROM hacking and includes all the ROM hacking terms we think you might need to know to really understand what people are talking about around here as well as understand the many documents we have here.

Don't be afraid of all the technical jargon, abbreviations, and language thrown around the community. Read and learn! Knowledge is power!

List of Terms
*ASM Hacking
*Assembly / ASM
*Binary
*Bit
*Cavespeak
*Dual/Multi Tile Encoding (DTE)
*Emulator
*Font
*Hex Editor
*Hexadecimal Numbering
*ISO / Disc Image
*Patch
*Pointer
*Relative Search
*ROM
*ROM Hacking
*ROM Image
*Script
*Script Dumping
*Script Editor/Formatter
*Script Insertion
*Tracer
*Translation Hacking
*Translator
*VWF (Variable Width Font):


ASM Hacking
One with knowledge of the target system’s assembly language reprograms small portions of the target game’s code. This is done for reasons such as: resizing a window, adding or removing compression on text or graphics, or moving data to another location in the ROM where editing may be easier to perform.

Assembly / ASM
Refers to game code written using only instructions directly convertable to binary code that the CPU of the target system can understand. This is a so-called “low-level” language that operates very close to hardware. Unlike high-level languages like “C” or “Basic”, ASM code cannot be easily ported to different hardware using another compiler.

Binary
The numbering system used by all digital electronics hardware. It is also known as base 2 in mathmatical number system terms. There are only two digits available “0″ and “1″. For example the number “6″ in decimal is “110″ in binary. Digital electronics can only distinguish between “current” or “no current” (on/off) and so this numbering system is used. This is both for reliability and simplicity.

Bit
The smallest possible information unit for storing data. It can only contain “0″ or “1″.

Cavespeak
When the Japanese font has been replaced by Latin characters the game displays the Japanese strings with Latin characters. This looks like trash as “Dg(k ,. Po§_3-*”. That gibberish is called cavespeak by hackers.

Dual/Multi Tile Encoding (DTE)
An encoding/compression scheme where one hexadecimal number is used to represent two or more letters. Adding or removing this requires ASM modification, though it is usually regarded as one of the easier ASM hacks.

Emulator
A program that mimics a target hardware’s behavior to execute software of the target hardware on different hardware. A SNES Emulator for example lets you run games that were designed for the specific SNES hardware on your PC. They are important for ROM hacking, because they often deliver special debugging features, which make hacking easier. It is often also difficult/expensive to bring the altered ROM images back on a cartridge/Disc the actual Hardware can use.

Font
The font is the collection of the characters a game can display as text. In English games this includes a-z, A-Z, 0-9 as well as any special characters like $,% and punctuation. These characters are stored as graphical data in the ROM. For Japanish-English translations the Japanese characters often must be replaced by Latin ones. Some games already include a Latin font though.

Hex Editor
A program used to edit the binary data of a ROM image.

Hexadecimal Numbering
In low-level programming languages like Assembler every number is stored in binary format because the hardware works with these. Since endless columns of zeros and ones are extremley difficult to work with, the data is usually displayed in hexadecimal format. Unlike decimal numbering (the system we use in daily math) the system has 16 digits from 0-F. The number “10″ for example is “A” in hex. To distinguish the systems from each other hexadecimal numbers are usually followed by “h” (e.g.: 3Bh) and decimal numbers by d (e.g.: 25d). In Programming Languages hexadecimal numbers are most times expressed with a “$” or “0x” in front of them (e.g.: $2C 0×2C).

ISO / Disc Image
When you extract data from a optical medium or a hard drive, it is not called ROM but “Disc Image”. The short name “ISO” is common because the format the data is stored is called ISO9660. Unlike ROMs, ISOs do not only contain only the binary data but also information like directory structure or even several data tracks like separate audio.

Patch
A File that contains information on how to change data of a ROM image. Hacks are distributed as patches because the distribution of pre-altered ROM images is illegal due to several reasons. There are a few formats for patches like IPS, PPF and NINJA, which can be applied with appropriate tools, however ROM hackers also often write small executables that patch the game on their own.

Pointer
Address value that references or “points” to other data. They are found in the file image and memory image of a program. Can be absolute or relative. Absolute means a file or memory address is specified; relative means the specified value is an offset from a base address.

Relative Search
A method of search for finding the hex codes that make up the characters in a game. The process involves entering a search string, usually a word, that the program will read & then decipher the differences of values between each character. For example, the search string “copyright” may be entered. The program will see that the value of the letter “c” is 12 less than the letter “o,” & that “o” is 1 less than “p.” The program will then find a hex string that matches the differences in value. The hex will look something like “A8B4B5BEB7AEACADB9,” where “A8″ equals “C,” “B4″ equals “O,” & “B5″ equals “P.” Note that relative searching for an alphabet will only work when the hex string is arranged in alphabetical order.

ROM
Short for Read Only Memory. This is the chip inside a game cartridge in which the physical data of the game is stored. It cannot be altered by the hardware, thus called read only. It contains all data of the game including the actual game code that is executed, as well as graphics and music. A ROM hacker modifies this code to produce different effects such as having the text in English instead of Japanese. In ROM hacking the term is usually used as a short form of “ROM image”.

ROM Hacking
Modifying the data in a ROM image to achieve such purposes as playing the game in a different language than intended, creating new levels for old games, or maybe playing with a different skill level than intended.

ROM Image
A binary copy of the physical data that is stored in a ROM chip. There are a lot of different formats for each system in use. These images are altered and later patched by ROM hackers. To use the hacks on real hardware one must transfer it back onto a actual cartridge. You need special hardware to do this (usually called “Copiers” or “Flasher”)

Script
All the raw text inside a ROM. This includes all story dialogue, monster names and skill names. Any text you see in the game is part of the script.

Script Dumping
If a ROM hacker has located the text inside a ROM, it needs to be extracted to be translated. Replacing every string of a game individually by hand is extremley tedious if not impossible. Another problem is that this work can usually only be done by the hacker himself as it requires technical knowledge a translator does not have. Because of that the hacker writes a program that extracts all the text into a specially formatted text file. There are generic tools to do this as well but they usually don’t work on every game. This process is called “Script Dumping”. With this text file it is comfortable to translate a ROM and the translator does not need to know the technical details of the game.

Script Editor/Formatter
A person, usually someone directly involved in the translation (hacker, translator, etc), who edits the translated scripts so that they will be displayed correctly in-game. This includes adding line-breaks where necessary and sometimes even rewriting portions of the script for either clarity or due to space limitations (or for making use of extra ROM space, allowing for a more “colorful” script). More advanced hackers handle the formatting portion automatically by either an in-game hack or a custom external script formatting utility.

Script Insertion
After the Script has been dumped and translated the text must be reinserted into the ROM. This is usually more difficult than the extraction because the size of the script has most likely changed.

Tracer
An emulator that can be set to report a record of all code executed during a specific timeframe (usually reporting to a window, or to a large text file). This will allow one with assembly skills to look for things like compressed text/graphics, screen layout information (such as window coordinates and sizes), and more.

Translation Hacking
Hacking a game with the intent to translate it into a different language.

Translator
A person who is fluent in the native language of the game being translated and hacked. This person receives the scripts (usually Japanese) from the hacker to translate. Some times his/her job may include formatting and proofreading the script.

VWF (Variable Width Font):
Japanese Kanji are always square and of the same size. Latin characters though are of different sizes (e.g.: “w” and “i”). This produces 2 problems: First it just looks bad to have words displayed like “wi zar d.”. The other problem is that you waste a lot of space. Only a limited amount of letters can be displayed per line and in sentences with lots of “i”s and “l”s you’ll run out of space even though you could display a lot more. To get around these problems ROM hackers implement a so-called variable width font. They alter the text drawing code so small characters take only the space they really need. This is a complex hack that requires profound assembly skills.





NOTICE:

This text is a copy of the 'Dictionary' page from the ROMhacking.net website. This page also had the title "ROMhacking.net Dictionary of ROMhacking Terms, The Book of Knowledge."

Link to this page:
Online version: https://www.romhacking.net/dictionary/
Archived version: https://archive.is/oGMb4

AutumnShinespark
Posted on 08-19-24 05:04 PM, in Link | ID: 279

Bronto Burt

Level: 8

Posts: 14/28
EXP: 1560
Next: 627

Since: 08-14-24

Last post: 38 days
Last view: 3 days
Cool idea for a topic. Could probably add to this.
(Under Translator, using his/her is antiquated in favor of their)

____________________
If you need me, I'll be overanalyzing how games work. Y'know, instead of playing them.

Fangamestalgia
Posted on 08-19-24 11:34 PM, in Link | ID: 281
Newcomer

Level: 3

Posts: 5/5
EXP: 119
Next: 9

Since: 08-12-24

Last post: 105 days
Last view: 83 days
Posted by AutumnShinespark
Cool idea for a topic. Could probably add to this.
(Under Translator, using his/her is antiquated in favor of their)


1) Language: I'm not familiar with English.

Moreover, certain rules in English are strange to me.

Example:
In English: red card
In Portuguese: cartão (card) vermelho (red)

2) Furthermore, since the site ROMhacking.net will probably go offline, this article is a copy from there. I explained this at the end of the text, and I also provided a link to the RHDN page and a link to an archived version of the page.

The owner of ROMhacking.net (RHDN) is the user Nightcrawler. This user was already involved with ROM hacking with the aim of doing translations in 1997. It was in that year that he founded TransCorp (Nightcrawler's Translation Corporation), and in 2005 he founded RHDN. So, based on this, he has been involved with ROM hacking for 27 years. I’m not sure if he did anything before that.

I don't know if that's the reason the text is like that; maybe that's why.


Slidelljohn
Posted on 08-23-24 05:07 AM, in Link | ID: 400

Red Tektite

Level: 12

Posts: 46/70
EXP: 6187
Next: 1734

Since: 08-14-24
From: Slidell, Louisiana

Last post: 57 days
Last view: 43 days
Good stuff!. Might be a good idea to add a Ram term. I still remember when I first started hacking I didnt know what rom or ram was. When I first seen what ram was and how it worked everything started falling into place for me. I'm no word smith so maybe someone can come up with something for ram if Fangamestalgia would like to add it.

____________________
Give someone a fish and you feed them for a day, teach them how to fish and you feed them for life.

Giga Otomia
Posted on 08-25-24 05:48 PM, in Link | ID: 493
Newcomer

Level: 2

Posts: 2/2
EXP: 29
Next: 17

Since: 08-17-24
From: Wood Zone

Last post: 99 days
Last view: 28 days
I am a wordsmith, but I don't have a full understanding of what exactly RAM is, other than it being an acronym for "Random Access Memory". No idea where specifically it's stored, whether that's different on a per-hardware basis, whether hardware can modify it, etc.

Given enough time, a wiki page, and maybe some in-person help, I can get something thrown together.

Slidelljohn
Posted on 08-26-24 12:55 AM, in (rev. 3 of 08-26-24 01:14 AM by Slidelljohn) Link | ID: 502

Red Tektite

Level: 12

Posts: 61/70
EXP: 6187
Next: 1734

Since: 08-14-24
From: Slidell, Louisiana

Last post: 57 days
Last view: 43 days
This is a wiki link that explains what ram is. Here is some example code using snes asm:

$C0/A6EC A9 4A 01 LDA #$014A A:05F7 X:0A00 Y:0005 D:0000 DB:00 S:02FA ;
$C0/A6EF 85 8D STA $8D [$00:008D] A:014A X:0A00 Y:0005 D:0000 DB:00 S:02FA ;


The LDA #$014A is loading rom data (0x014A) into the A: register.
The STA $8D is storing that data that is in the A: register into ram at address 7E:008A.
As far as I know ram is for storing data but you can also read that stored data.
Ram keeps track of scores, life points, events that occurred/didn't occur, decompressed data...
As you can see, I'm no word smith. :|

Edit:
Also ram is different locations per hardware. For the snes there is wram which is inside of the console and is your main ram for scores, life points…, you have aram which is inside of the console and is for the audio, you have vram which is for the ppu that’s store’s graphics data that is displayed on screen, you have oam ram which I think is inside of the ppu but I could be wrong but it is for the sprite information, you have cgram which is for the color palettes which I think is also in the ppu but I could be wrong, and you have sram which is inside of the cart and is usually for save data but it could be used for other things besides save data.

____________________
Give someone a fish and you feed them for a day, teach them how to fish and you feed them for life.

MegaFucker man
(post deleted) ID: 608

AutumnShinespark
Posted on 09-02-24 08:11 PM, in (rev. 2 of 09-02-24 08:16 PM by AutumnShinespark) Link | ID: 630

Bronto Burt

Level: 8

Posts: 17/28
EXP: 1560
Next: 627

Since: 08-14-24

Last post: 38 days
Last view: 3 days
RAM is editable memory, it's what the game uses to keep track of the game's current state. Your current number of lives, the level you're on, the items you've collected... those are all tracked by RAM. When the game turns off, RAM is not saved and the game starts from the beginning again. (Save RAM or SRAM, is a special kind that is stored on a battery to avoid data loss.)

In contrast, ROM is not editable. It's the program code that tells the game what to do, it's got the game's graphics and music, it says everything about how the game works.


You can mess with RAM using a cheat device (GameShark etc). For instance, you could give yourself infinite lives while the device is active. You can remove the cheats and the game will play normally for everyone again. On the other hand, messing with the ROM (or ROM hacking) means you're editing the game's code for everybody. A simple example of ROM hacking would be changing "Mario" to say "Wario".

____________________
If you need me, I'll be overanalyzing how games work. Y'know, instead of playing them.

Main - Hacking Help - Dictionary of ROMhacking Terms, The Book of Knowledge (5)

Affiliates:


Acmlmboard v2.5.6+neo (2024-08-13)
© 2005-2024 Acmlm, Emuz, NinCollin, et al.

Page rendered in 0.077 seconds. (860KB of memory used)
MySQL - queries: 71, rows: 428/436, time: 0.064 seconds.