diff --git a/src/4cade.a b/src/4cade.a index 5f836ae1e..7901a7afd 100644 --- a/src/4cade.a +++ b/src/4cade.a @@ -212,7 +212,7 @@ HGRLoad jsr AddToPath jsr LoadFile !word gPathname - jsr SkipALineHGR;FizzleHGR; + jsr InterlockingHorizontalHGR;InterlockingVerticalHGR;FizzleHGR; jmp WaitOnScreenshot DHGRLoad @@ -326,7 +326,8 @@ kAttractModeConfFile !source "src/parse.common.a" !source "src/parse.games.a" !source "src/fx.hgr.fizzle.a" - !source "src/fx.hgr.skipaline.a" + !source "src/fx.hgr.interlockingvertical.a" + !source "src/fx.hgr.interlockinghorizontal.a" !source "src/fx.dhgr.fizzle.a" gGamesListStore !word *+2 ; address of first okvs store diff --git a/src/fx.hgr.interlockinghorizontal.a b/src/fx.hgr.interlockinghorizontal.a new file mode 100644 index 000000000..d87bc3804 --- /dev/null +++ b/src/fx.hgr.interlockinghorizontal.a @@ -0,0 +1,80 @@ +index1 = $FE +index2 = $FF + +InterlockingHorizontalHGR + lda #$27 + sta index1 + lda #$00 + sta index2 +@outerloop + ldy #$5F ; logical row index +@innerloop + lda @data1,y + sta @sub2+2 + clc + adc #$20 + sta @sub1+2 + lda @data2,y + sta @sub1+1 + sta @sub2+1 + lda @data3,y + sta @sub4+2 + clc + adc #$20 + sta @sub3+2 + lda @data4,y + sta @sub3+1 + sta @sub4+1 + ldx index1 +@sub1 lda $FDFD,x +@sub2 sta $FDFD,x + ldx index2 +@sub3 lda $FDFD,x +@sub4 sta $FDFD,x + dey + bpl @innerloop + lda #$40 + jsr @wait + lda $C000 + bmi @exit + inc index2 + dec index1 + bpl @outerloop +@exit rts + +@wait sec +@wait1 pha +@wait2 sbc #1 + bne @wait2 + pla + bit $C000 + bmi @exitwait + sbc #1 + bne @wait1 +@exitwait + rts + +@data1 !hex 20283038202830382129313921293139 + !hex 222A323A222A323A232B333B232B333B + !hex 20283038202830382129313921293139 + !hex 222A323A222A323A232B333B232B333B + !hex 20283038202830382129313921293139 + !hex 222A323A222A323A232B333B232B333B +@data2 !hex 00000000808080800000000080808080 + !hex 00000000808080800000000080808080 + !hex 28282828A8A8A8A828282828A8A8A8A8 + !hex 28282828A8A8A8A828282828A8A8A8A8 + !hex 50505050D0D0D0D050505050D0D0D0D0 + !hex 50505050D0D0D0D050505050D0D0D0D0 +@data3 !hex 3F372F273F372F273E362E263E362E26 + !hex 3D352D253D352D253C342C243C342C24 + !hex 3F372F273F372F273E362E263E362E26 + !hex 3D352D253D352D253C342C243C342C24 + !hex 3F372F273F372F273E362E263E362E26 + !hex 3D352D253D352D253C342C243C342C24 +@data4 !hex D0D0D0D050505050D0D0D0D050505050 + !hex D0D0D0D050505050D0D0D0D050505050 + !hex A8A8A8A828282828A8A8A8A828282828 + !hex A8A8A8A828282828A8A8A8A828282828 + !hex 80808080000000008080808000000000 + !hex 80808080000000008080808000000000 diff --git a/src/fx.hgr.skipaline.a b/src/fx.hgr.interlockingvertical.a similarity index 98% rename from src/fx.hgr.skipaline.a rename to src/fx.hgr.interlockingvertical.a index 8fc84bd5e..0b870a363 100644 --- a/src/fx.hgr.skipaline.a +++ b/src/fx.hgr.interlockingvertical.a @@ -1,4 +1,4 @@ -SkipALineHGR +InterlockingVerticalHGR ldy #$5F ; logical row index @loop lda @data1,y