diff options
| author | Clownacy <Clownacy@users.noreply.github.com> | 2020-07-02 16:28:42 +0100 |
|---|---|---|
| committer | Clownacy <Clownacy@users.noreply.github.com> | 2020-07-02 16:28:42 +0100 |
| commit | 0df9c4f0c6b431da3dba6f2b3a8310caa06cc7b1 (patch) | |
| tree | c778daccc077baf8ce915efd1445dd9bd84db4d0 /_inc | |
| parent | ce6b117ddb67e762ab7ca848734e4ba11e76ef1a (diff) | |
| parent | 2af5f41b28b0ad4ba290f253c74e3be99d656ad3 (diff) | |
Merge branch 'master' into AS
Diffstat (limited to '_inc')
| -rw-r--r-- | _inc/DeformLayers (JP1).asm | 412 | ||||
| -rw-r--r-- | _inc/DeformLayers.asm | 20 |
2 files changed, 241 insertions, 191 deletions
diff --git a/_inc/DeformLayers (JP1).asm b/_inc/DeformLayers (JP1).asm index c2f226a..17ba626 100644 --- a/_inc/DeformLayers (JP1).asm +++ b/_inc/DeformLayers (JP1).asm @@ -7,11 +7,11 @@ DeformLayers: tst.b (f_nobgscroll).w - beq.s loc_628E + beq.s .bgscroll rts ; =========================================================================== -loc_628E: + .bgscroll: clr.w (v_fg_scroll_flags).w clr.w (v_bg1_scroll_flags).w clr.w (v_bg2_scroll_flags).w @@ -45,6 +45,7 @@ Deform_Index: dc.w Deform_GHZ-Deform_Index, Deform_LZ-Deform_Index Deform_GHZ: + ; block 3 - distant mountains move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #5,d4 @@ -52,70 +53,79 @@ Deform_GHZ: asl.l #1,d4 add.l d1,d4 moveq #0,d6 - bsr.w ScrollBlock5 + bsr.w BGScroll_Block3 + ; block 2 - hills & waterfalls move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #7,d4 moveq #0,d6 - bsr.w ScrollBlock4 + bsr.w BGScroll_Block2 + ; calculate Y position lea (v_hscrolltablebuffer).w,a1 move.w (v_screenposy).w,d0 andi.w #$7FF,d0 lsr.w #5,d0 neg.w d0 addi.w #$20,d0 - bpl.s loc_62F6 + bpl.s .limitY moveq #0,d0 -loc_62F6: + .limitY: move.w d0,d4 move.w d0,(v_bgscrposy_dup).w move.w (v_screenposx).w,d0 - cmpi.b #id_Title,($FFFFF600).w - bne.s loc_630A - moveq #0,d0 -loc_630A: + cmpi.b #id_Title,(v_gamemode).w + bne.s .notTitle + moveq #0,d0 ; reset foreground position in title screen + .notTitle: neg.w d0 swap d0 - lea ($FFFFA800).w,a2 + ; auto-scroll clouds + lea (v_bgscroll_buffer).w,a2 addi.l #$10000,(a2)+ addi.l #$C000,(a2)+ addi.l #$8000,(a2)+ - move.w ($FFFFA800).w,d0 + ; calculate background scroll + move.w (v_bgscroll_buffer).w,d0 add.w (v_bg3screenposx).w,d0 neg.w d0 move.w #$1F,d1 sub.w d4,d1 - bcs.s loc_633C -loc_6336: + bcs.s .gotoCloud2 + .cloudLoop1: ; upper cloud (32px) move.l d0,(a1)+ - dbf d1,loc_6336 -loc_633C: - move.w ($FFFFA804).w,d0 + dbf d1,.cloudLoop1 + + .gotoCloud2: + move.w (v_bgscroll_buffer+4).w,d0 add.w (v_bg3screenposx).w,d0 neg.w d0 move.w #$F,d1 -loc_634A: + .cloudLoop2: ; middle cloud (16px) move.l d0,(a1)+ - dbf d1,loc_634A - move.w ($FFFFA808).w,d0 + dbf d1,.cloudLoop2 + + move.w (v_bgscroll_buffer+8).w,d0 add.w (v_bg3screenposx).w,d0 neg.w d0 move.w #$F,d1 -loc_635E: + .cloudLoop3: ; lower cloud (16px) move.l d0,(a1)+ - dbf d1,loc_635E + dbf d1,.cloudLoop3 + move.w #$2F,d1 move.w (v_bg3screenposx).w,d0 neg.w d0 -loc_636E: + .mountainLoop: ; distant mountains (48px) move.l d0,(a1)+ - dbf d1,loc_636E + dbf d1,.mountainLoop + move.w #$27,d1 move.w (v_bg2screenposx).w,d0 neg.w d0 -loc_637E: + .hillLoop: ; hills & waterfalls (40px) move.l d0,(a1)+ - dbf d1,loc_637E + dbf d1,.hillLoop + move.w (v_bg2screenposx).w,d0 move.w (v_screenposx).w,d2 sub.w d0,d2 @@ -128,14 +138,14 @@ loc_637E: move.w d0,d3 move.w #$47,d1 add.w d4,d1 -loc_63A4: + .waterLoop: ; water deformation move.w d3,d0 neg.w d0 move.l d0,(a1)+ swap d3 add.l d2,d3 swap d3 - dbf d1,loc_63A4 + dbf d1,.waterLoop rts ; End of function Deform_GHZ @@ -147,19 +157,22 @@ loc_63A4: Deform_LZ: + ; plain background scroll move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #7,d4 - move.w ($FFFFF73C).w,d5 + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #7,d5 - bsr.w ScrollBlock1 + bsr.w BGScroll_XY + move.w (v_bgscreenposy).w,(v_bgscrposy_dup).w lea (Lz_Scroll_Data).l,a3 lea (Drown_WobbleData).l,a2 - move.b ($FFFFF7D8).w,d2 + move.b (v_lz_deform).w,d2 move.b d2,d3 - addi.w #$80,($FFFFF7D8).w + addi.w #$80,(v_lz_deform).w + add.w (v_bgscreenposy).w,d2 andi.w #$FF,d2 add.w (v_screenposy).w,d3 @@ -174,16 +187,18 @@ Deform_LZ: neg.w d0 move.w (v_waterpos1).w,d4 move.w (v_screenposy).w,d5 -loc_6418: - cmp.w d4,d5 - bge.s loc_642A + ; write normal scroll before meeting water position + .normalLoop: + cmp.w d4,d5 ; is current y >= water y? + bge.s .underwaterLoop ; if yes, branch move.l d0,(a1)+ addq.w #1,d5 addq.b #1,d2 addq.b #1,d3 - dbf d1,loc_6418 + dbf d1,.normalLoop rts -loc_642A: + ; apply water deformation when underwater + .underwaterLoop: move.b (a3,d3),d4 ext.w d4 add.w d6,d4 @@ -194,7 +209,7 @@ loc_642A: move.w d4,(a1)+ addq.b #1,d2 addq.b #1,d3 - dbf d1,loc_642A + dbf d1,.underwaterLoop rts Lz_Scroll_Data: @@ -224,6 +239,7 @@ Lz_Scroll_Data: Deform_MZ: + ; block 1 - dungeon interior move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #6,d4 @@ -231,37 +247,42 @@ Deform_MZ: asl.l #1,d4 add.l d1,d4 moveq #2,d6 - bsr.w ScrollBlock3 + bsr.w BGScroll_Block1 + ; block 3 - mountains move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #6,d4 moveq #6,d6 - bsr.w ScrollBlock5 + bsr.w BGScroll_Block3 + ; block 2 - bushes & antique buildings move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #7,d4 moveq #4,d6 - bsr.w ScrollBlock4 - move.w #$200,d0 + bsr.w BGScroll_Block2 + ; calculate y-position of background + move.w #$200,d0 ; start with 512px, ignoring 2 chunks move.w (v_screenposy).w,d1 - subi.w #$1C8,d1 - bcs.s loc_6590 + subi.w #$1C8,d1 ; 0% scrolling when y <= 56px + bcs.s .noYscroll move.w d1,d2 add.w d1,d1 add.w d2,d1 asr.w #2,d1 add.w d1,d0 -loc_6590: + .noYscroll: move.w d0,(v_bg2screenposy).w move.w d0,(v_bg3screenposy).w - bsr.w ScrollBlock2 + bsr.w BGScroll_YAbsolute move.w (v_bgscreenposy).w,(v_bgscrposy_dup).w + ; do something with redraw flags move.b (v_bg1_scroll_flags).w,d0 or.b (v_bg2_scroll_flags).w,d0 or.b d0,(v_bg3_scroll_flags).w clr.b (v_bg1_scroll_flags).w clr.b (v_bg2_scroll_flags).w - lea ($FFFFA800).w,a1 + ; calculate background scroll buffer + lea (v_bgscroll_buffer).w,a1 move.w (v_screenposx).w,d2 neg.w d2 move.w d2,d0 @@ -277,38 +298,42 @@ loc_6590: move.w d2,d3 asr.w #1,d3 move.w #4,d1 -loc_65DE: + .cloudLoop: move.w d3,(a1)+ swap d3 add.l d0,d3 swap d3 - dbf d1,loc_65DE + dbf d1,.cloudLoop + move.w (v_bg3screenposx).w,d0 neg.w d0 move.w #1,d1 -loc_65F4: + .mountainLoop: move.w d0,(a1)+ - dbf d1,loc_65F4 + dbf d1,.mountainLoop + move.w (v_bg2screenposx).w,d0 neg.w d0 move.w #8,d1 -loc_6604: + .bushLoop: move.w d0,(a1)+ - dbf d1,loc_6604 + dbf d1,.bushLoop + move.w (v_bgscreenposx).w,d0 neg.w d0 move.w #$F,d1 -loc_6614: + .interiorLoop: move.w d0,(a1)+ - dbf d1,loc_6614 - lea ($FFFFA800).w,a2 + dbf d1,.interiorLoop + + lea (v_bgscroll_buffer).w,a2 move.w (v_bgscreenposy).w,d0 - subi.w #$200,d0 + subi.w #$200,d0 ; subtract 512px (unused 2 chunks) move.w d0,d2 cmpi.w #$100,d0 - bcs.s loc_6632 + bcs.s .limitY move.w #$100,d0 -loc_6632: + .limitY: andi.w #$1F0,d0 lsr.w #3,d0 lea (a2,d0),a2 @@ -323,12 +348,14 @@ loc_6632: Deform_SLZ: - move.w ($FFFFF73C).w,d5 + ; vertical scrolling + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #7,d5 bsr.w Bg_Scroll_Y move.w (v_bgscreenposy).w,(v_bgscrposy_dup).w - lea ($FFFFA800).w,a1 + ; calculate background scroll buffer + lea (v_bgscroll_buffer).w,a1 move.w (v_screenposx).w,d2 neg.w d2 move.w d2,d0 @@ -343,34 +370,38 @@ Deform_SLZ: moveq #0,d3 move.w d2,d3 move.w #$1B,d1 -loc_6678: + .starLoop: move.w d3,(a1)+ swap d3 add.l d0,d3 swap d3 - dbf d1,loc_6678 + dbf d1,.starLoop + move.w d2,d0 asr.w #3,d0 move.w d0,d1 asr.w #1,d1 add.w d1,d0 move.w #4,d1 -loc_6692: + .buildingLoop1: ; distant black buildings move.w d0,(a1)+ - dbf d1,loc_6692 + dbf d1,.buildingLoop1 + move.w d2,d0 asr.w #2,d0 move.w #4,d1 -loc_66A0: + .buildingLoop2: ; closer buildings move.w d0,(a1)+ - dbf d1,loc_66A0 + dbf d1,.buildingLoop2 + move.w d2,d0 asr.w #1,d0 move.w #$1D,d1 -loc_66AE: + .bottomLoop: ; bottom part of background move.w d0,(a1)+ - dbf d1,loc_66AE - lea ($FFFFA800).w,a2 + dbf d1,.bottomLoop + + lea (v_bgscroll_buffer).w,a2 move.w (v_bgscreenposy).w,d0 move.w d0,d2 subi.w #$C0,d0 @@ -388,10 +419,10 @@ Bg_Scroll_X: andi.w #$F,d2 add.w d2,d2 move.w (a2)+,d0 - jmp loc_66EA(pc,d2.w) -Loop_Bg_Scroll_X: + jmp .pixelJump(pc,d2.w) ; skip pixels for first row + .blockLoop: move.w (a2)+,d0 -loc_66EA: + .pixelJump: move.l d0,(a1)+ move.l d0,(a1)+ move.l d0,(a1)+ @@ -408,7 +439,7 @@ loc_66EA: move.l d0,(a1)+ move.l d0,(a1)+ move.l d0,(a1)+ - dbf d1,Loop_Bg_Scroll_X + dbf d1,.blockLoop rts ; --------------------------------------------------------------------------- @@ -419,7 +450,8 @@ loc_66EA: Deform_SYZ: - move.w ($FFFFF73C).w,d5 + ; vertical scrolling + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #4,d5 move.l d5,d1 @@ -427,7 +459,8 @@ Deform_SYZ: add.l d1,d5 bsr.w Bg_Scroll_Y move.w (v_bgscreenposy).w,(v_bgscrposy_dup).w - lea ($FFFFA800).w,a1 + ; calculate background scroll buffer + lea (v_bgscroll_buffer).w,a1 move.w (v_screenposx).w,d2 neg.w d2 move.w d2,d0 @@ -443,24 +476,27 @@ Deform_SYZ: move.w d2,d3 asr.w #1,d3 move.w #7,d1 -loc_6750: + .cloudLoop: move.w d3,(a1)+ swap d3 add.l d0,d3 swap d3 - dbf d1,loc_6750 + dbf d1,.cloudLoop + move.w d2,d0 asr.w #3,d0 move.w #4,d1 -loc_6764: + .mountainLoop: move.w d0,(a1)+ - dbf d1,loc_6764 + dbf d1,.mountainLoop + move.w d2,d0 asr.w #2,d0 move.w #5,d1 -loc_6772: + .buildingLoop: move.w d0,(a1)+ - dbf d1,loc_6772 + dbf d1,.buildingLoop + move.w d2,d0 move.w d2,d1 asr.w #1,d1 @@ -475,13 +511,14 @@ loc_6772: move.w d2,d3 asr.w #1,d3 move.w #$D,d1 -loc_6798: + .bushLoop: move.w d3,(a1)+ swap d3 add.l d0,d3 swap d3 - dbf d1,loc_6798 - lea ($FFFFA800).w,a2 + dbf d1,.bushLoop + + lea (v_bgscroll_buffer).w,a2 move.w (v_bgscreenposy).w,d0 move.w d0,d2 andi.w #$1F0,d0 @@ -499,17 +536,20 @@ loc_6798: Deform_SBZ: tst.b (v_act).w - bne.w Bg_Scroll_SBz_2 + bne.w Deform_SBZ2 + ; block 1 - lower black buildings move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #7,d4 moveq #2,d6 - bsr.w ScrollBlock3 + bsr.w BGScroll_Block1 + ; block 3 - distant brown buildings move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #6,d4 moveq #6,d6 - bsr.w ScrollBlock5 + bsr.w BGScroll_Block3 + ; block 2 - upper black buildings move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #5,d4 @@ -517,12 +557,14 @@ Deform_SBZ: asl.l #1,d4 add.l d1,d4 moveq #4,d6 - bsr.w ScrollBlock4 + bsr.w BGScroll_Block2 + ; vertical scrolling moveq #0,d4 - move.w ($FFFFF73C).w,d5 + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #5,d5 - bsr.w loc_6AF8 + bsr.w BGScroll_YRelative + move.w (v_bgscreenposy).w,d0 move.w d0,(v_bg2screenposy).w move.w d0,(v_bg3screenposy).w @@ -532,7 +574,8 @@ Deform_SBZ: or.b d0,(v_bg2_scroll_flags).w clr.b (v_bg1_scroll_flags).w clr.b (v_bg3_scroll_flags).w - lea ($FFFFA800).w,a1 + ; calculate background scroll buffer + lea (v_bgscroll_buffer).w,a1 move.w (v_screenposx).w,d2 neg.w d2 asr.w #2,d2 @@ -548,31 +591,34 @@ Deform_SBZ: moveq #0,d3 move.w d2,d3 move.w #3,d1 -loc_684E: + .cloudLoop: move.w d3,(a1)+ swap d3 add.l d0,d3 swap d3 - dbf d1,loc_684E + dbf d1,.cloudLoop + move.w (v_bg3screenposx).w,d0 neg.w d0 move.w #9,d1 -loc_6864: + .buildingLoop1: ; distant brown buildings move.w d0,(a1)+ - dbf d1,loc_6864 + dbf d1,.buildingLoop1 + move.w (v_bg2screenposx).w,d0 neg.w d0 move.w #6,d1 -loc_6874: + .buildingLoop2: ; upper black buildings move.w d0,(a1)+ - dbf d1,loc_6874 + dbf d1,.buildingLoop2 + move.w (v_bgscreenposx).w,d0 neg.w d0 move.w #$A,d1 -loc_6884: + .buildingLoop3: ; lower black buildings move.w d0,(a1)+ - dbf d1,loc_6884 - lea ($FFFFA800).w,a2 + dbf d1,.buildingLoop3 + lea (v_bgscroll_buffer).w,a2 move.w (v_bgscreenposy).w,d0 move.w d0,d2 andi.w #$1F0,d0 @@ -580,15 +626,17 @@ loc_6884: lea (a2,d0),a2 bra.w Bg_Scroll_X ;------------------------------------------------------------------------------- -Bg_Scroll_SBz_2:;loc_68A2: +Deform_SBZ2:;loc_68A2: + ; plain background deformation move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #6,d4 - move.w ($FFFFF73C).w,d5 + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #5,d5 - bsr.w ScrollBlock1 + bsr.w BGScroll_XY move.w (v_bgscreenposy).w,(v_bgscrposy_dup).w + ; copy fg & bg x-position to hscroll table lea (v_hscrolltablebuffer).w,a1 move.w #223,d1 move.w (v_screenposx).w,d0 @@ -596,9 +644,9 @@ Bg_Scroll_SBz_2:;loc_68A2: swap d0 move.w (v_bgscreenposx).w,d0 neg.w d0 -loc_68D2: + .loop: move.l d0,(a1)+ - dbf d1,loc_68D2 + dbf d1,.loop rts ; End of function Deform_SBZ @@ -614,21 +662,21 @@ ScrollHoriz: bsr.s MoveScreenHoriz move.w (v_screenposx).w,d0 andi.w #$10,d0 - move.b ($FFFFF74A).w,d1 + move.b (v_fg_xblock).w,d1 eor.b d1,d0 - bne.s locret_65B0 - eori.b #$10,($FFFFF74A).w + bne.s .return + eori.b #$10,(v_fg_xblock).w move.w (v_screenposx).w,d0 sub.w d4,d0 ; compare new with old screen position - bpl.s SH_Forward + bpl.s .scrollRight bset #2,(v_fg_scroll_flags).w ; screen moves backward rts -SH_Forward: + .scrollRight: bset #3,(v_fg_scroll_flags).w ; screen moves forward -locret_65B0: + .return: rts ; End of function ScrollHoriz @@ -721,7 +769,7 @@ loc_664A: bne.s loc_66A8 loc_6656: - clr.w ($FFFFF73C).w + clr.w (v_scrshifty).w rts ; =========================================================================== @@ -740,7 +788,7 @@ loc_666C: bgt.s loc_66F6 cmpi.w #-6,d0 blt.s loc_66C0 - bra.s loc_66AEa + bra.s loc_66AE ; =========================================================================== loc_6684: @@ -749,7 +797,7 @@ loc_6684: bgt.s loc_66F6 cmpi.w #-2,d0 blt.s loc_66C0 - bra.s loc_66AEa + bra.s loc_66AE ; =========================================================================== loc_6696: @@ -758,14 +806,14 @@ loc_6696: bgt.s loc_66F6 cmpi.w #-$10,d0 blt.s loc_66C0 - bra.s loc_66AEa + bra.s loc_66AE ; =========================================================================== loc_66A8: moveq #0,d0 move.b d0,(f_bgscrollvert).w -loc_66AEa: +loc_66AE: moveq #0,d1 move.w d0,d1 add.w (v_screenposy).w,d1 @@ -824,33 +872,35 @@ loc_6724: move.l d1,d3 sub.l (v_screenposy).w,d3 ror.l #8,d3 - move.w d3,($FFFFF73C).w + move.w d3,(v_scrshifty).w move.l d1,(v_screenposy).w move.w (v_screenposy).w,d0 andi.w #$10,d0 - move.b ($FFFFF74B).w,d1 + move.b (v_fg_yblock).w,d1 eor.b d1,d0 - bne.s locret_6766 - eori.b #$10,($FFFFF74B).w + bne.s .return + eori.b #$10,(v_fg_yblock).w move.w (v_screenposy).w,d0 sub.w d4,d0 - bpl.s loc_6760 + bpl.s .scrollBottom bset #0,(v_fg_scroll_flags).w rts ; =========================================================================== -loc_6760: + .scrollBottom: bset #1,(v_fg_scroll_flags).w -locret_6766: + .return: rts ; End of function ScrollVertical ; ||||||||||||||| S U B R O U T I N E ||||||||||||||||||||||||||||||||||||||| +; Scrolls background and sets redraw flags. +; d4 - background x offset * $10000 +; d5 - background y offset * $10000 - -ScrollBlock1: +BGScroll_XY: move.l (v_bgscreenposx).w,d2 move.l d2,d0 add.l d4,d0 @@ -858,17 +908,17 @@ ScrollBlock1: move.l d0,d1 swap d1 andi.w #$10,d1 - move.b ($FFFFF74C).w,d3 + move.b (v_bg1_xblock).w,d3 eor.b d3,d1 - bne.s loc_6AF8 - eori.b #$10,($FFFFF74C).w - sub.l d2,d0 - bpl.s loc_6AF2 + bne.s BGScroll_YRelative ; no change in Y + eori.b #$10,(v_bg1_xblock).w + sub.l d2,d0 ; new - old + bpl.s .scrollRight bset #2,(v_bg1_scroll_flags).w - bra.s loc_6AF8 -loc_6AF2: + bra.s BGScroll_YRelative + .scrollRight: bset #3,(v_bg1_scroll_flags).w -loc_6AF8: +BGScroll_YRelative: move.l (v_bgscreenposy).w,d3 move.l d3,d0 add.l d5,d0 @@ -876,19 +926,19 @@ loc_6AF8: move.l d0,d1 swap d1 andi.w #$10,d1 - move.b ($FFFFF74D).w,d2 + move.b (v_bg1_yblock).w,d2 eor.b d2,d1 - bne.s loc_6B2C - eori.b #$10,($FFFFF74D).w + bne.s .return + eori.b #$10,(v_bg1_yblock).w sub.l d3,d0 - bpl.s loc_6B26 + bpl.s .scrollBottom bset #0,(v_bg1_scroll_flags).w rts -loc_6B26: + .scrollBottom: bset #1,(v_bg1_scroll_flags).w -loc_6B2C: + .return: rts -; End of function ScrollBlock1 +; End of function BGScroll_XY Bg_Scroll_Y: move.l (v_bgscreenposy).w,d3 @@ -898,47 +948,47 @@ Bg_Scroll_Y: move.l d0,d1 swap d1 andi.w #$10,d1 - move.b ($FFFFF74D).w,d2 + move.b (v_bg1_yblock).w,d2 eor.b d2,d1 - bne.s Exit_Bg_Scroll_Y - eori.b #$10,($FFFFF74D).w + bne.s .return + eori.b #$10,(v_bg1_yblock).w sub.l d3,d0 - bpl.s loc_6B5C + bpl.s .scrollBottom bset #4,(v_bg1_scroll_flags).w rts -loc_6B5C: + .scrollBottom: bset #5,(v_bg1_scroll_flags).w -Exit_Bg_Scroll_Y: + .return: rts ; ||||||||||||||| S U B R O U T I N E ||||||||||||||||||||||||||||||||||||||| -ScrollBlock2: +BGScroll_YAbsolute: move.w (v_bgscreenposy).w,d3 move.w d0,(v_bgscreenposy).w move.w d0,d1 andi.w #$10,d1 - move.b ($FFFFF74D).w,d2 + move.b (v_bg1_yblock).w,d2 eor.b d2,d1 - bne.s Exit_Scroll_Block2 - eori.b #$10,($FFFFF74D).w + bne.s .return + eori.b #$10,(v_bg1_yblock).w sub.w d3,d0 - bpl.s loc_6B8C + bpl.s .scrollBottom bset #0,(v_bg1_scroll_flags).w rts -loc_6B8C: + .scrollBottom: bset #1,(v_bg1_scroll_flags).w -Exit_Scroll_Block2: + .return: rts -; End of function ScrollBlock2 +; End of function BGScroll_YAbsolute ; ||||||||||||||| S U B R O U T I N E ||||||||||||||||||||||||||||||||||||||| +; d6 - bit to set for redraw - -ScrollBlock3: +BGScroll_Block1: move.l (v_bgscreenposx).w,d2 move.l d2,d0 add.l d4,d0 @@ -946,26 +996,26 @@ ScrollBlock3: move.l d0,d1 swap d1 andi.w #$10,d1 - move.b ($FFFFF74C).w,d3 + move.b (v_bg1_xblock).w,d3 eor.b d3,d1 - bne.s Exit_Scroll_Block3 - eori.b #$10,($FFFFF74C).w + bne.s .return + eori.b #$10,(v_bg1_xblock).w sub.l d2,d0 - bpl.s loc_6BC0 + bpl.s .scrollRight bset d6,(v_bg1_scroll_flags).w - bra.s Exit_Scroll_Block3 -loc_6BC0: + bra.s .return + .scrollRight: addq.b #1,d6 bset d6,(v_bg1_scroll_flags).w -Exit_Scroll_Block3: + .return: rts -; End of function ScrollBlock3 +; End of function BGScroll_Block1 ; ||||||||||||||| S U B R O U T I N E ||||||||||||||||||||||||||||||||||||||| -ScrollBlock4: +BGScroll_Block2: move.l (v_bg2screenposx).w,d2 move.l d2,d0 add.l d4,d0 @@ -973,21 +1023,21 @@ ScrollBlock4: move.l d0,d1 swap d1 andi.w #$10,d1 - move.b ($FFFFF74E).w,d3 + move.b (v_bg2_xblock).w,d3 eor.b d3,d1 - bne.s Exit_Scroll_Block4 - eori.b #$10,($FFFFF74E).w + bne.s .return + eori.b #$10,(v_bg2_xblock).w sub.l d2,d0 - bpl.s loc_6BF4 + bpl.s .scrollRight bset d6,(v_bg2_scroll_flags).w - bra.s Exit_Scroll_Block4 -loc_6BF4: + bra.s .return + .scrollRight: addq.b #1,d6 bset d6,(v_bg2_scroll_flags).w -Exit_Scroll_Block4: + .return: rts ;------------------------------------------------------------------------------- -ScrollBlock5: +BGScroll_Block3: move.l (v_bg3screenposx).w,d2 move.l d2,d0 add.l d4,d0 @@ -995,16 +1045,16 @@ ScrollBlock5: move.l d0,d1 swap d1 andi.w #$10,d1 - move.b ($FFFFF750).w,d3 + move.b (v_bg3_xblock).w,d3 eor.b d3,d1 - bne.s loc_6C2E - eori.b #$10,($FFFFF750).w + bne.s .return + eori.b #$10,(v_bg3_xblock).w sub.l d2,d0 - bpl.s loc_6C28 + bpl.s .scrollRight bset d6,(v_bg3_scroll_flags).w - bra.s loc_6C2E -loc_6C28: + bra.s .return + .scrollRight: addq.b #1,d6 bset d6,(v_bg3_scroll_flags).w -loc_6C2E: + .return: rts diff --git a/_inc/DeformLayers.asm b/_inc/DeformLayers.asm index d679105..cd98a72 100644 --- a/_inc/DeformLayers.asm +++ b/_inc/DeformLayers.asm @@ -7,11 +7,11 @@ DeformLayers: tst.b (f_nobgscroll).w - beq.s loc_628E + beq.s .bgscroll rts ; =========================================================================== -loc_628E: + .bgscroll: clr.w (v_fg_scroll_flags).w clr.w (v_bg1_scroll_flags).w clr.w (v_bg2_scroll_flags).w @@ -128,7 +128,7 @@ Deform_LZ: move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #7,d4 - move.w ($FFFFF73C).w,d5 + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #7,d5 bsr.w ScrollBlock1 @@ -204,13 +204,13 @@ Deform_SLZ: move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #7,d4 - move.w ($FFFFF73C).w,d5 + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #7,d5 bsr.w ScrollBlock2 move.w (v_bgscreenposy).w,(v_bgscrposy_dup).w bsr.w Deform_SLZ_2 - lea ($FFFFA800).w,a2 + lea (v_bgscroll_buffer).w,a2 move.w (v_bgscreenposy).w,d0 move.w d0,d2 subi.w #$C0,d0 @@ -257,7 +257,7 @@ loc_6482: Deform_SLZ_2: - lea ($FFFFA800).w,a1 + lea (v_bgscroll_buffer).w,a1 move.w (v_screenposx).w,d2 neg.w d2 move.w d2,d0 @@ -314,7 +314,7 @@ Deform_SYZ: move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #6,d4 - move.w ($FFFFF73C).w,d5 + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #4,d5 move.l d5,d1 @@ -347,7 +347,7 @@ Deform_SBZ: move.w (v_scrshiftx).w,d4 ext.l d4 asl.l #6,d4 - move.w ($FFFFF73C).w,d5 + move.w (v_scrshifty).w,d5 ext.l d5 asl.l #4,d5 asl.l #1,d5 @@ -486,7 +486,7 @@ loc_664A: bne.s loc_66A8 loc_6656: - clr.w ($FFFFF73C).w + clr.w (v_scrshifty).w rts ; =========================================================================== @@ -589,7 +589,7 @@ loc_6724: move.l d1,d3 sub.l (v_screenposy).w,d3 ror.l #8,d3 - move.w d3,($FFFFF73C).w + move.w d3,(v_scrshifty).w move.l d1,(v_screenposy).w move.w (v_screenposy).w,d0 andi.w #$10,d0 |
