10-15-2015, 08:07 PM
Quote:If I'm understanding the code and my observations, what is happening is that the game scans the commands currently held by the permanent party members and checks against the table at CF/FE00 to determine whether a given command should be added to the list. In order to make this properly functional I would have to make it scan each character's starting commands from the default data instead to avoid this issue entirely. Does that sound like an accurate assessment?
Yes, it is correct. You can scan the characters commands from the startup up data (rom) instead of the characters in memory (ram). However, it is much easier to alter the code and use a custom table or a fixed setup in the new code itself. In my opinion, you don't need to check the default commands in the recruited characters.
If you want to follow this route, you can check the function at C0/A07C. It is the event opcode #$40. It loads the character data from rom and save it at ram. It has almost all the fields for the start up characters and their rom/ram offsets. The commands offsets are included.
Quote:When you say the engine can only hold 15 commands, you mean the text for them, right?
Is that because of limited memory space for text?
I don't know the reason. Probably, it is related with the amount of OAM objects reserved for the commands and their setup. You can add more than 15 commands but, in the current screen, their text won't appear and they can appear in relatively weird positions. But they still can be selected, anyway. I recommend to cap the number of commands to 15 or less.