2024-01-07 20:22:34 -05:00
2022-11-27 17:33:09 -05:00
2023-08-04 14:17:28 -04:00
2022-09-11 14:14:49 -04:00
2022-01-22 19:41:31 -05:00
2019-04-07 19:18:42 -05:00
2023-10-23 13:24:38 -05:00
2023-11-12 15:24:10 +13:00
2024-01-07 20:22:34 -05:00
2022-01-22 19:37:46 -05:00
2022-09-11 14:14:49 -04:00
2023-11-24 10:25:39 +13:00

Pokémon Emerald

This is a decompilation of Pokémon Emerald.

It builds the following ROM:

guillotine branch:

  • Decapitates Decapitalizes all text at runtime, with some exceptions (see the FAQ)
  • Future-proof, does not require mass-replacing strings

To set up the repository, see INSTALL.md.

FAQ

(guillotine) Q: How can I keep my string(s) from being decapped?

A: There are a number of ways to make a string "fixed case" so that it will not be decapitalized when displayed:

C strings: Replace the _ with _C:

// _C = fixed (C)ase string!
const u8 gText_IDNumber[] = _C("IDNo.");

ASM strings: Replace .string with .fixstr:

gText_SavingDontTurnOff::
    @ Lasts until the string terminator '$'
	.fixstr "SAVING…\n"
	.string "DON'T TURN OFF THE POWER.$"

You can fix-case/unfix parts of a string like so:

	.string "{FIXED_CASE}WARNING!{UNFIX_CASE}\p"

For a placeholder (only the placeholder will be fixed-case):

	.string "{STR_VAR_2_FIXED} was transferred to\n"
	.string "BOX “{STR_VAR_1}.”$"

See also the configuration in text.h.

There are also a number of bigram exceptions that will not be decapped: TV, TM, HP, HM, PC, PP, PM

See also

For contacts and other pret projects, see pret.github.io.

Languages
C 84.7%
Assembly 12%
C++ 2.5%
Makefile 0.4%
Python 0.4%