Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ===========================================================================
- ; loc_D27C:
- SwScrl_CPZ:
- move.w (Camera_X_pos_diff).w,d4
- ext.l d4
- asl.l #5,d4 ; d4 = CamXdiff / 8 (16 fixed)
- move.w (Camera_Y_pos_diff).w,d5
- ext.l d5
- asl.l #6,d5 ; d5 = CamYdiff / 4 (16 fixed)
- bsr.w SetHorizVertiScrollFlagsBG ; scroll layer #1!
- move.w (Camera_X_pos_diff).w,d4
- ext.l d4
- asl.l #7,d4 ; d4 = CamXdiff / 2 (16 fixed)
- moveq #4,d6 ; set bit #2 of scroll flags
- bsr.w SetHorizScrollFlagsBG2 ; scroll layer #2!
- move.w (Camera_BG_Y_pos).w,d0
- move.w d0,(Camera_BG2_Y_pos).w
- move.w d0,(Vscroll_Factor+2).w ; set Y-pos to VSRAM buffer
- move.b (Scroll_flags_BG).w,d0
- or.b (Scroll_flags_BG2).w,d0
- move.b d0,(Scroll_flags_BG3).w
- clr.b (Scroll_flags_BG).w
- clr.b (Scroll_flags_BG2).w
- ; --------------------------------------------------------------
- ; NEW SCROLL CODE
- lea (Horiz_Scroll_Buf).w,a1
- move.w (Camera_X_pos).w,d0
- neg.w d0
- swap d0 ; setup plane A scrolling
- move.w #224,d4 ; d4 = lines counter
- move.w (Camera_BG_X_pos).w,d0
- neg.w d0
- move.w #$120,d1
- sub.w (Camera_BG_Y_pos).w,d1 ; d1 = lines until ripple
- beq.s SwScrl_CPZ_Ripple ; if BG starts on ripple or lower, branch
- bmi.s SwScrl_CPZ_Ripple
- ;bhi?
- subq.w #1,d1
- ; ---------------------------------------------------------------
- ;SwScrl_CPZ_Top:
- - move.l d0,(a1)+
- subq.w #1,d4
- beq.s SwScrl_CPZ_End
- dbf d1,-
- moveq #$F,d2
- bra.s +
- ; ---------------------------------------------------------------
- SwScrl_CPZ_Ripple:
- moveq #$F,d2
- add.w d1,d2
- bmi.s SwScrl_CPZ_Bottom ; if BG starts past ripple, branch
- + move.w (TempArray_LayerDef).w,d1
- move.b (Timer_frames+1).w,d3
- andi.b #%111,d3
- bne.s +
- subq.w #1,d1
- + andi.w #$1F,d1
- lea SwScrl_RippleData(pc),a2
- lea (a2,d1.w),a2
- move.w d1,(TempArray_LayerDef).w
- move.w d0,d1
- / move.b (a2)+,d0
- ext.w d0
- add.w d1,d0
- move.l d0,(a1)+
- subq.w #1,d4
- beq.s SwScrl_CPZ_End
- dbf d2,-
- ; ---------------------------------------------------------------
- SwScrl_CPZ_Bottom:
- move.w (Camera_BG2_X_pos).w,d0
- neg.w d0
- subq.w #1,d4
- bmi.s SwScrl_CPZ_End
- - move.l d0,(a1)+
- dbf d4,-
- ; ---------------------------------------------------------------
- SwScrl_CPZ_End:
- rts
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement