Bug report: Wild Pokemon corruption on delete
Deleting wild Pokemon encounter lists will corrupt them, making it impossible to edit wild data for that map. Easiest solution, I think, would be to remove the ability to delete these lists, instead requiring the user to set the encounter ratio to 0.
Bug report: Map Connections are randomly corrupted
Also, AM will randomly and unpredictably corrupt maps' Map Connections data. The corruption ranges from mild to major and can usually be repaired in a hex editor
if one can find the problem. The corruption happens to random maps (not just the ones that have actually been edited). In some cases, it gets ridiculous; for example, I just finished removing
140MB of null data that AdvanceMap tacked onto the end of a ROM when it tried to edit a map's connections.
Feature request: Error messages that are actually useful
On a related note, improvements could be made in how AdvanceMap handles corrupted data in maps. Currently, you have to jump through hoops in order to find out
what in a map was corrupted. It would be nice to see a useful error message when loading the map ("Map connections for ROUTE 21 are corrupt!") instead of a message that reveals almost nothing about what actually went wrong ("ERROR: (ENotAPointer) AdvanceMapError(5): The value at $352C84 is not a Pointer!").
* * * * * * * * * *
If anyone else is having problems with AdvanceMap corrupting data, then here's how to figure out where the damage happened. Note, you'll still need to find and repair/repoint the data with a hex editor to actually fix it:
- Open AM. Load your ROM. Don't open any maps.
- Open Map A.
- If you see an error message, and if most of the tabs (i.e. "Wild Pokemon") don't do anything when clicked, then Map A is corrupted.
- Open Map B, a non-corrupted map.
- Open Map A again.
- Check Map A's Wild Pokemon. If you see Map B's Wild Pokemon instead, then this is what got corrupted in Map A.
- Check Map A's Map Connections. If you see Map B's Map Connections instead, then this is what got corrupted in Map A.
- And so on and so forth for all other map data.