Rangi
Rangi
The only new features are specifying a palette base offset, and supporting 1bpp and 8x16 for DMG/CGB; it *has* been a while, but maybe some of the open bug issues...
@basxto Do you have an example input which fails to do this?
`strtoul` works fine in C++ too. It also offers `std::stoi` but that throws an exception on failure.
Your image is not an even number of tiles wide. Pad its right side so it's 64px (8 tiles) wide and it will work. 
Assuming we come up with meaningful constant names, this looks good. I'm not sure if the constant should be first or the pointer label. It's an issue that was also...
One time I added an `object_event` with a text ID higher than the `bg_event` ones, and it broke a sign: https://github.com/Rangi42/redstarbluestar/issues/3 I had to put object events first, then bg...
> Now, between `.camelCase` and `.snake_case`, my preference is for `.snake_case`, but given that it's only 10% of all local labels, I'd be okay with going all-in with `.camelCase` if...
I agree about `Evolution_LoadPic` and such.
Yeah, https://github.com/mid-kid/pokecrystal/tree/splitting has a workable system for that already with its version/ directory.
I wouldn't mind names like `CeladonGymLass1TrainerHeader` or `FuchsiaGymTamerTrainerHeader`. A few are already like that, e.g. `ZapdosTrainerHeader` (could have been `PowerPlantZapdosTrainerHeader` too but that's not necessary).