Well, you can halve the speed by changing this part:
Code LDA !RAM_ExtraBits,x ;\ use extra bits to determine direction of rotation
LDY #$02 ; | (original uses sprite x position)
AND #$04 ; |
BNE CODE_02D63B ; |
LDY #$FE ; |
into this:
Code LDA !RAM_ExtraBits,x ;\ use extra bits to determine direction of rotation
LDY #$01 ; | (original uses sprite x position)
AND #$04 ; |
BNE CODE_02D63B ; |
LDY #$FF ; |
but I can't seem to figure out what exactly controls where the chain tiles are placed. It seems to be handled the CODE_02D870 routine, but I'm having trouble making sense of all the bitwise rotations.
(also it seems like I completely messed up with interpreting the division in that routine when I originally commented the code :V)
EDIT: If you're just doubling the radius, I think I might have a solution: try adding an ASL on line 425, between the ROL and the PLP.