-
Notifications
You must be signed in to change notification settings - Fork 1
Extra commands
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)
Some commands executes enemy commands:
C2/1A03: B2 19 (1E) (Enemy Roulette)
C2/1A07: 72 50 (20) ([[#$F2 Command script]])
C2/1A09: D1 50 (21) (#$F3 Command script)
C2/1A0B: 0B 50 (22) (Poison, Regen, and Seizure/Phantasm damage or healing)
C2/1A0D: 57 4F (23) (#$F7 Command script)
C2/1A0F: 97 4F (24) (#$F5 Command script)
C2/1A11: CD 50 (25)
C2/1A13: 5F 4F (26) (Doom cast when Condemned countdown reaches 0; Safe, Shell, or
Reflect* cast when character enters Near Fatal (* no items
actually do this, but it's supported); or revival due to Life 3.)
C2/1A15: DD 50 (27) (Display Scan info)
C2/1A19: 61 51 (29) (Remove Stop, Reflect, Freeze, or Sleep when time is up)
C2/1A1B: DE 20 (2A) (Run)
C2/1A1D: 2D 64 (2B) (#$FA Command script)
C2/1A21: B2 51 (2D) (Drain from being seized)
C2/1A23: FA 1D (2E) (#$F8 Command script)
C2/1A25: 1A 1E (2F) (#$F9 Command script)
C2/1A27: 5E 1E (30) (#$FB Command script)