-
Notifications
You must be signed in to change notification settings - Fork 0
Tips
To compile the ROM file, you will need a C compiler, Python 3, and various build tools. The simplest way to set up the required environment is by following the installation guide from the Pokémon Emerald decompilation project. Be sure to install the full decompilation project as instructed. Once completed, clone this repository using the following command:
git clone https://github.com/krkpdf/pokemon-emerald-latin
The recommended project structure is as follows:
Project Folder
│___ pokemon-master-translated (renamed pokeemerald folder, will contain the translated product)
│___ pokeemerald-latin
While you can rename and reorganize the folders, keep in mind that certain scripts (such as make.sh
and insert_text.py
) may need to be updated accordingly.
To quickly open WSL1 in the Windows mount (/mnt/c
), run:
wsl
Then, navigate to the project directory and execute:
./make.sh
If you encounter internet connectivity issues in WSL1, the following steps may help (source: Stack Overflow):
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf
Only lines formatted as [line number]: "..." are considered valid. Comments can be added freely outside the quotation marks. However, the calc_progress script only processes the quoted text.
The line numbers correspond to those in the original decompilation project. At this time, translated text must maintain the same number of lines as the original.
Pokémon Emerald uses a custom font with varying character widths:
- Most characters: 6 pixels
- , and .: 3 pixels
- !, (space), i, l: 4 pixels
- j, r: 5 pixels
To ensure text fits within the speech box margins, use an editor with a font that closely matches this profile.
Keep in mind that each line should be less than ~208 pixels long. To use the Obsidian editor guidelines, implemented below, each string must begin at the 32nd pixel position. This is equivalent to a 4-digit number + ":" + " ".
For project organization and navigation, Obsidian is recommended. The progress.md file can be used for quick reference and jumping to relevant sections. Suggested Obsidian Plugins
Advanced Tables – Enhances table functionality
Hover Editor – Improves navigation (highly recommended)
Unitade – Enables reading .txt and .json files
Additionally, the following CSS snippet improves readability in progress.md by adding guidelines for text formatting:
.markdown-source-view.mod-cm6 .cm-contentContainer::before {
content: "";
position: fixed;
top: 0;
bottom: 0;
left: 360px; /* Adjust as needed */
width: 28px;
border-left: 1px dashed gray;
border-right: 1px dotted gray;
}
/* Remove formatting and enforce your font */
.markdown-source-view:not(.is-live-preview) * {
background: unset !important;
color: unset !important;
font-size: 1.4rem !important;
font-weight: unset !important;
font-family: "[your font]", monospace !important;
}
/* Reset borders applied by themes */
.markdown-source-view:not(.is-live-preview) *::after {
border: unset !important;
}
/* Adjust heading margins */
h1, .markdown-rendered h1,
h2, .markdown-rendered h2,
h3, .markdown-rendered h3,
h4, .markdown-rendered h4,
h5, .markdown-rendered h5,
h6, .markdown-rendered h6 {
margin-top: 10px;
margin-bottom: 0px;
}
/* Standardize paragraph and list margins */
.markdown-rendered ul, .markdown-rendered ol,
p, .markdown-rendered p {
margin-block-start: 0px;
margin-block-end: 10px;
margin-top: 0px;
margin-bottom: 10px;
}
/* Indent headers for better structure */
.h_1, .h_2, .h_3, .h_4, .h_5, .h_6 {
margin-left: 35px;
margin-bottom: 20px;
}
The following command is useful for locating in-game text within files:
findstr /s /i /c:"[text to be searched]" *.*
Findstr Flags
/m – Displays only file names containing a match
/s – Searches in all subdirectories
/i – Ignores case sensitivity
/c:<string> – Treats the specified text as a literal search string