View Single Post
Old August 2nd, 2011 (3:14 PM).
Join Date: Jul 2010
Posts: 275
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.
Reply With Quote