OneGSCTrainer is an another program written in Python which enables you to edit trainer data. What are its main features?
1. Supports Gold, Silver and Crystal versions.
2. Allows to add, delete and edit trainers and their pokemons - no limitations! The only limit is amount of empty space left.
3. Reads pointers. Note that if your trainer data contains trash bytes you won't be able to use the tool.
4. Versatility - just see by yourself.
Credit me if you use my tool to edit your data.
Note: This is first released version - I might not be aware of some bugs. For the safety of your project, use 'Save as...' instead of 'Save' option.
Waiting for your feedback, feel free to test for bugs I haven't found out yet. Also, mind that due to preparing comboboxes of names, moves and items for all 6 pokemon the program takes few seconds to load.
I can't give you precise answer if I can't see your ROM, but I can assume it's because your ROM file trainer data structure is not correct. For example, not ending one trainer name with 0x50 causes program to freeze, while in game this can be undetectable if you don't fight with such trainer.
I would send you a link to article about trainer structure in Gen 2, but this forum doesn't allow me to because of irrational reasons.
I tried using it with Pokemon Silver and it worked. All my trainers in my hack work fine in game, even the ones I added and edited. If there are more than 494 trainers and the pointers to these trainers' data is different than the original Silver Rom would that cause it to crash? I've been using another GSC trainer Editor before I found yours but that one did not allow me to add trainers and change their data type, etc. So I had to do all of that manually but otherwise that trainer editor works fine with all of my trainers. I also went ahead and copied my hack, got rid of all the extra trainers so there were only 494 trainers, and I redid my pointers. The 494 trainers were still not the same as the original silver but I didn't think it should have mattered because the pointers still pointed to the correct offsets. However, after all the effort, it still wouldn't respond. I know for a fact there are no errors in my trainer data or else my other GSC trainer editor would have crashed as well. Is there a way I could send you my hack?
I really want to use your hack because through yours I can add and edit trainer data without having to move things around in the rom with a hex editor.
Well, you can upload it on a storage site like speedyshare.com and send me a private message with link.
Ok, I've got your PM with ROM file.
I'm not into the code of my tool anymore because it's few months since I've released it, but let me try to explain:
In the beginning, the program loads trainer class pointers. These pointers point to start of each trainer class data. In order to find ending of current class data, the tool finds a pointer which points to lowest offset which is higher than start data offset (finds the next higher value).
It seems like you have some bad pointers. For example 915C at offset 0x39958 which points to 0x39c91 which is in the middle of Karen data, before Koga entry. The tool recognizes it as the end of Karen data and then freezes because this incomplete part of Karen data doesn't end with 0xFF.
It's very possible that there are more errors of this kind in your data.
That's all for now, I've got to go sleeping.
Google "wiki iimarck trainers", the first result should link you to article explaining trainer data.