Code: Select all
%ext ck1
%version 1.31
#Skip diagonal-key checking - make room
%patch $55EF $EB $4A #jmp short 0x563B
#Jump to offset
%patch $3E52 $E9 $179CW #jmp near 55F1
#Recoil Code
%patch $55F1 $56 #push si
%patch $55F2 $57 #push di
%patch $55F3 $BE $0030W #mov si, RECOIL_RAMPDOWN (keen_pos_x)
%patch $55F6 $BF $0200W #mov di, RECOIL (delta_x) #keen is moved RECOIL/100h pixels the frame after firing
%patch $55F9 $A1 $604CW #mov ax, keen_facing (word_1909C)
%patch $55FC $3D $0000W #cmp ax, word 0x0
%patch $55FF $7E $04 #jle short (+4)
%patch $5601 $F7 $DE #neg si
%patch $5603 $F7 $DF #neg di
%patch $5605 $89 $36 $8240W #mov [keen_pos_x], si
%patch $5609 $89 $3E $823CW #mov [delta_x], di
%patch $560D $5F #pop di
%patch $560E $5E #pop si
%patch $560F $83 $C4 $08 #add sp, byte 0x8 (patched over this instruction at $3E52)
%patch $5612 $E9 $E840W #jmp near 3e55
#Wait time after shooting
%patch $3E6A 1E #sprite_sync value