Skip to content
Clément Gallet edited this page Jul 12, 2014 · 14 revisions

Function C1/7CC8 is jumping to a specific command subroutine whose pointer is computed based on command id:

C1/7CD4:	BD2E20  	LDA $202E,X     (Command id for slot x)
C1/7CD7:	99AF2B  	STA $2BAF,Y
C1/7CDA:	297F    	AND #$7F
C1/7CDC:	0A      	ASL A
C1/7CDD:	AA      	TAX 
C1/7CDE:	7CE97C  	JMP ($7CE9,X)	(Jump to function for player Command)

List of jumping functions from command id (* denotes a available command with aiming byte 41 and mold 4)

 Command 30          Function C1/419C
*Command 31          Function C1/9C2F
*Command 32          Function C1/88E3
*Command 33          Function C1/CBAD
*Command 34          Function C1/F07B
 Command 35          Function C1/A905
 Command 36          Function C1/8D36
*Command 37          Function C1/7BC2
 Command 38          Function C1/04A5
*Command 39          Function C1/1D10
 Command 40          Function C1/96E6
 Command 41          Function C1/5620
*Command 42          Function C1/AD6D
 Command 43          Function C1/7B82
*Command 44          Function C1/4A4A
*Command 45          Function C1/4A4A
 Command 46          Function C1/994A
*Command 47          Function C1/2BB0
*Command 48          Function C1/CAAD
 Command 49          Function C1/9962
 Command 50          Function C1/2BAE
*Command 51          Function C1/80EE
*Command 52          Function C1/EE7B
 Command 53          Function C1/7BCB
*Command 54          Function C1/A560
 Command 55          Function C1/1009
*Command 56          Function C1/E605
 Command 57          Function C1/4C96
*Command 58          Function C1/5628
 Command 59          Function C1/CAAE
*Command 60          Function C1/DA62
 Command 61          Function C1/07A9
*Command 62          Function C1/ED38
*Command 63          Function C1/2020
*Command 64          Function C1/7BAA
*Command 65          Function C1/BFA8
*Command 66          Function C1/A860
 Command 67          Function C1/99C2
*Command 68          Function C1/5DDA
 Command 69          Function C1/C8E8
 Command 70          Function C1/C0C8
 Command 71          Function C1/0010
*Command 72          Function C1/F1D0
*Command 73          Function C1/7BFA
*Command 74          Function C1/ADA8
*Command 75          Function C1/2020
 Command 76          Function C1/851A
*Command 77          Function C1/A536
*Command 78          Function C1/2900
 Command 79          Function C1/D003
*Command 80          Function C1/EE03
 Command 81          Function C1/7B82
 Command 82          Function C1/82AD
*Command 83          Function C1/4A7B
*Command 84          Function C1/4A4A
 Command 85          Function C1/4A4A
*Command 86          Function C1/36C5
 Command 87          Function C1/04D0
*Command 88          Function C1/8D7B
 Command 89          Function C1/7B82
 Command 90          Function C1/851A
 Command 91          Function C1/7B36
*Command 92          Function C1/A9AA
 Command 93          Function C1/9D29
*Command 94          Function C1/5DDA
*Command 95          Function C1/E8E8
*Command 96          Function C1/36C6
 Command 97          Function C1/F7D0
 Command 98          Function C1/82AD
*Command 99          Function C1/107B
 Command 100          Function C1/A90D
*Command 101          Function C1/20F8
*Command 102          Function C1/7DED
*Command 103          Function C1/82AD
*Command 104          Function C1/207B
 Command 105          Function C1/7DCE
 Command 106          Function C1/0B80
*Command 107          Function C1/82AD
 Command 108          Function C1/207B
*Command 109          Function C1/7DCE
*Command 110          Function C1/F0A9
*Command 111          Function C1/ED20
*Command 112          Function C1/EE7D
*Command 113          Function C1/7B81
*Command 114          Function C1/2960
*Command 115          Function C1/4A7F
*Command 116          Function C1/0A4A
*Command 117          Function C1/AA0A
*Command 118          Function C1/04A9
 Command 119          Function C1/3685
*Command 120          Function C1/ACBF
*Command 121          Function C1/C168
*Command 122          Function C1/7399
*Command 123          Function C1/A97A
*Command 124          Function C1/9935
 Command 125          Function C1/7A74
*Command 126          Function C1/C8E8
*Command 127          Function C1/C6C8

Ideally, we want to jump near a jump instruction that can lead us away from bank C1, hopefully into RAM. To do so, we need long opcodes like JML (5C, DC) and JSL (22)


Enemy commands

Some commands executes enemy commands:

  • 20: F2 Command script (Formation change)
  • 21: F3 Command script (Display message)
  • 23: F7 Command script (Special Event)
  • 24: F5 Command script (Unhide or Kill monsters)
  • 2B: FA Command script (Animation)
  • 2E: F8 Command script (Variable Manipulation)
  • 2F: F9 Command script (Variable Bit Manipulation)
  • 30: FB Command script (Miscellaneous)
Clone this wiki locally