07-23-2015, 03:32 PM
Apparently, as referenced in the code you posted, the setting for the monster special is from C2/32EE to C2/334E. It doesn't load any data spell. Instead, it directly interprets the monster data and writes the attack data of the monster special in assembler. Because it doesn't load any spell data, your only option is to rewrite the code.
About the fight setting, its initial data apparently is set in the C2/26D3 routine. The routine setups all initial data of the commands. It uses the pointers table at C2/2782:
The fight command, and many others, is setup at C2/2752. The relevant code is:
Please, pay attention to the fact that it is the initial data setup for ALL referenced commands. Their data can be modified later. It can happen anywhere, but generally it happens at the C2/19C7 pointer table. It does many adjustments, specific for each available command. It includes the fight command.
The pointer for the fight command in the table is C2/15C8. The routine handles desperation attacks, offering and Umaro's attacks. Probably, you can rewrite/update this routine for your goals.
There is no easy way. The “fight” command and the “special” pseudo-command are hard coded in assembler. You will have to find your way to rewrite their code, and another pieces of code can be scattered in the rom. Good luck!
About the fight setting, its initial data apparently is set in the C2/26D3 routine. The routine setups all initial data of the commands. It uses the pointers table at C2/2782:
Code:
C2/2782: 52 27 (Fight, Morph, Revert, Steal, Capture, Runic, Sketch, Control, Leap, Mimic,
Row, Def, Jump, GP Rain, Possess)
C2/2784: 3C 27 (Item)
C2/2786: 4D 27 (Magic, SwdTech, Blitz, Lore, Slot, Rage, Dance, X-Magic, Summon, Health,
Shock, MagiTek)
C2/2788: 08 27 (Throw, Tools)
The fight command, and many others, is setup at C2/2752. The relevant code is:
Code:
C2/2752: A9 EE LDA #$EE (select Spell EEh - Battle)
C2/2754: 20 66 29 JSR $2966 (go load spell data)
Please, pay attention to the fact that it is the initial data setup for ALL referenced commands. Their data can be modified later. It can happen anywhere, but generally it happens at the C2/19C7 pointer table. It does many adjustments, specific for each available command. It includes the fight command.
The pointer for the fight command in the table is C2/15C8. The routine handles desperation attacks, offering and Umaro's attacks. Probably, you can rewrite/update this routine for your goals.
There is no easy way. The “fight” command and the “special” pseudo-command are hard coded in assembler. You will have to find your way to rewrite their code, and another pieces of code can be scattered in the rom. Good luck!