I don't know why, but that's glitching all sprites for me... also, here's one major correction:
Code LDA $07F000,x ; |
PLX ; |
STA $15EA,x ;
RTS
should be:
Code LDA $07F000,x ; |
PLX ; |
STA $15EA,x ;
RTL
(notice the RTL)
EDIT: the problem with your code is you test every offset, but the interval should be 4
CodeSearchAlgorithm:
%bulkSpeedup($FC-15)
%bulkSpeedup($EC-15)
%bulkSpeedup($DC-15)
%bulkSpeedup($BC-15)
%bulkSpeedup($AC-15)
%bulkSpeedup($9C-15)
%bulkSpeedup($8C-15)
%bulkSpeedup($7C-15)
%bulkSpeedup($6C-15)
%bulkSpeedup($5C-15)
%bulkSpeedup($4C-15) ; covers $3D through $4C
%speedup($3C)
; %speedup($3B)
; %speedup($3A)
; %speedup($39)
%speedup($38)
; %speedup($37)
; %speedup($36)
; %speedup($35)
%speedup($34)
; %speedup($33)
; %speedup($32)
; %speedup($31)
%speedup($30)
Codemacro bulkSpeedup(arg)
%speedup(<arg>+15)
; %speedup(<arg>+14)
; %speedup(<arg>+13)
; %speedup(<arg>+12)
%speedup(<arg>+11)
; %speedup(<arg>+10)
; %speedup(<arg>+9)
; %speedup(<arg>+8)
%speedup(<arg>+7)
; %speedup(<arg>+6)
; %speedup(<arg>+5)
; %speedup(<arg>+4)
%speedup(<arg>+3)
; %speedup(<arg>+2)
; %speedup(<arg>+1)
; %speedup(<arg>+0)
endmacro
EDIT2: but there's still the problem with sprites not changing frames, and the venus fire traps rocketing out of the pipes. also, my YI piranha plant won't open its mouth
EDIT3: actually, I think the sprites stay in their INIT state for some reason, even if the level does not use SP header 10
EDIT4: it doesn't happen in all sprites, but it's either something that has to do with INIT or something with timers
EDIT5: it was the timers, you left 1 too many NOP's in there so it overwrote some of the timer decrementing code (yay! no more skyrocketing venuses!)
EDIT6: some final fixes...
after "BEQ ?notFound" put "LDA.b #<offset>" (the .b seems to be necessary)
remove the "TYA" after ".foundSlot"
remove the long %speedup(*)'s at the end (not bulkspeedups) and put %bulkSpeedup($3C-15)
Follow Us On