sovereignx/README.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

129 lines
4.9 KiB
Markdown
Raw Normal View History

2016-09-03 22:25:34 +01:00
# Pokémon Emerald
This is a fork of the [matching decompilation](https://github.com/pret/pokeemerald) at [PRET](https://github.com/pret).
2016-09-03 22:25:34 +01:00
This fork tries to maintain vanilla compatibility whenever possible. It doesn't increase the size of any save data structure or the object event structure.
2016-09-03 22:25:34 +01:00
2023-02-11 00:59:02 +00:00
There are several branches, each with one main feature (and sometimes some extra stuff):
2016-09-03 22:25:34 +01:00
**followers** branch:
2024-01-27 00:23:17 +00:00
* [HGSS-style pokémon followers](https://bulbapedia.bulbagarden.net/wiki/Walking_Pok%C3%A9mon#Pok.C3.A9mon_HeartGold_and_SoulSilver) for all 386 pokémon (including forms & shinies)
* Includes follower emotes and a majority of the HGSS messages
* Custom pokeball sprites for Gen 1-7 pokéballs
* Followers can use field moves in the overworld
* Overworld form changes for Ditto, Mew, Castform, etc.
* Asymmetrical & 64x64 OW support
* Dynamic Overworld Palette System (DOWP) & reflections compatible with berry trees, etc.
2023-12-31 06:40:24 +00:00
> Note: Unless you have a specific need for it, you should probably use `followers-expanded-id` over this.
2024-01-27 00:23:17 +00:00
![Pokeball](https://i.imgur.com/OMbS67Q.gif)
![Messages](https://i.imgur.com/sTbGVEY.gif)
![Forms](https://i.imgur.com/wDhFNf4.gif)
![HM](https://i.imgur.com/lnXJGHd.gif)
**icons** branch:
* Everything from the **followers** branch.
2021-12-23 04:28:27 +00:00
* All pokemon icons updated to Gen 6, based on [this repo](https://github.com/msikma/pokesprite/tree/master/icons/pokemon/regular)
* This includes compatibility with the PC, trade, contests, mail, Battle Dome. Examples:
![PC](https://i.imgur.com/wzwJfd1.png)
![Party](https://i.imgur.com/8hbE88t.png)
![Contest](https://i.imgur.com/S9mCEFL.png)
* Icons share palettes with front sprites, meaning that shiny pokemon will also have shiny icons!
**lighting** branch:
* Everything from the **followers** branch.
* Day/night shading compatible with weather.
* GSC-style window lights.
* WIP interframe-blended lamp lights at night, i.e in Rustboro.
2021-12-23 04:28:27 +00:00
* HGSS-style alpha-blended shadows for object events.
2017-09-05 00:41:47 +01:00
2023-10-29 20:01:48 +00:00
**just-lighting** branch:
* `lighting-expanded-id` but with following pokémon code & assets completely removed. (This allows for more than 255 OW graphics)
2024-01-27 00:23:17 +00:00
* Saves with following pokémon can still safely be loaded.
2023-10-29 20:01:48 +00:00
2023-12-31 06:40:24 +00:00
**followers-expanded-id** branch:
* Like `followers`, but includes expands OW graphicsIds to 16-bits
in a backwards compatible way
* Includes support for compressed OW graphics
Additional branches to mention:
2023-02-11 00:59:02 +00:00
* `lighting-expanded-id` - like the above but for `lighting`.
To set up the repository, see [INSTALL.md](INSTALL.md).
2017-09-05 00:41:47 +01:00
2024-01-27 00:23:17 +00:00
**guillotine** branch:
* ~~Decapitates~~ Decapitalizes **all** text at runtime, with some exceptions (see the [FAQ](#guillotine-q-how-can-i-keep-my-strings-from-being-decapped))
* Future-proof, does not require mass-replacing strings
To set up the repository, see [INSTALL.md](INSTALL.md).
2023-12-31 06:40:24 +00:00
## FAQ
### `(followers*)` Q: Where are the config settings?
A: Configuration for the follower system is mostly in [event_objects.h](include/constants/event_objects.h):
```c
// If true, follower pokemon will bob up and down
// during their idle & walking animations
#define OW_MON_BOBBING TRUE
// If true, adds a small amount of overhead
// to OW code so that large (48x48, 64x64) OWs
// will display correctly under bridges, etc.
#define LARGE_OW_SUPPORT TRUE
2024-01-27 00:23:17 +00:00
// Followers will emerge from the pokeball they are stored in,
// instead of a normal pokeball
#define OW_MON_POKEBALLS TRUE
2023-12-31 06:40:24 +00:00
```
### `(lighting)` Q: How do I mark certain colors in a palette as light-blended?
A: Create a `.pla` file in the same folder as the `.pal` with the same name.
In this file you can enter color indices [0,15]
on separate lines to mark those colors as being light-blended, i.e:
`06.pla:`
```
# A comment
0 # if color 0 is listed, uses it to blend with instead of the default!
1
9
10
```
You might have to `make mostlyclean` or change the `.pal` file to pick up the changes.
2024-01-27 00:23:17 +00:00
### `(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
// _C = fixed (C)ase string!
const u8 gText_IDNumber[] = _C("IDNo.");
```
ASM strings: Replace `.string` with `.fixstr`:
```arm
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:
```arm
.string "{FIXED_CASE}WARNING!{UNFIX_CASE}\p"
```
For a placeholder (only the placeholder will be fixed-case):
```arm
.string "{STR_VAR_2_FIXED} was transferred to\n"
.string "BOX “{STR_VAR_1}.”$"
```
See also the configuration in [text.h](gflib/text.h).
There's also special handling for "separated bigrams"; basically, two letter words.
This includes: `"TM01", "PC", "EV"`, any two uppercase characters surrounded by digits, whitespace, or the start/end of a string. These will not be decapped.
2017-09-05 00:41:47 +01:00
## See also
For contacts and other pret projects, see [pret.github.io](https://pret.github.io/).