More minor fixes

This commit is contained in:
Lucas Scharenbroich 2022-06-21 10:06:17 -05:00
parent 553fd3c02a
commit 400851259d
3 changed files with 51 additions and 5 deletions

View File

@ -358,7 +358,7 @@ FastOverNV dw _TBCopyDataVFast,GenericOverZero,_OneSpriteFastOverV
;FastOverNV dw _TBCopyDataVFast,GenericOverVFast,_OneSpriteFastOverV
FastUnderZA dw _TBConstTile0,GenericUnderZero,GenericUnderZero
FastUnderZV dw _TBConstTile0,GenericUnderZero,GenericUnderZero
FastUnderNA dw _TBConstTile0,GenericOverZero,_OneSpriteFastOver0
FastUnderNA dw _TBConstTile0,GenericOverZero,_OneSpriteFastUnderA
FastUnderNV dw _TBConstTile0,GenericOverZero,_OneSpriteFastOver0
;FastUnderNA dw _TBCopyDataFast,GenericUnderAFast,_OneSpriteFastUnderA
;FastUnderNV dw _TBCopyDataVFast,GenericUnderVFast,_OneSpriteFastUnderV

View File

@ -188,3 +188,49 @@ FastCopyTileDataV
plb
rts
FastCopyTileDataAndMaskA
ldy TileStore+TS_TILE_ADDR,x ; load the tile address
pei DP2_TILEDATA_AND_TILESTORE_BANKS
plb ; set to the tiledata bank
]line equ 0
lup 8
lda tiledata+{]line*4},y
sta tmp_tile_data+{]line*4}
lda tiledata+{]line*4}+32,y
sta tmp_tile_mask+{]line*4}
lda tiledata+{]line*4}+2,y
sta tmp_tile_data+{]line*4}+2
lda tiledata+{]line*4}+32+2,y
sta tmp_tile_mask+{]line*4}+2
]line equ ]line+1
--^
plb
rts
FastCopyTileDataAndMaskV
ldy TileStore+TS_TILE_ADDR,x ; load the tile address
pei DP2_TILEDATA_AND_TILESTORE_BANKS
plb ; set to the tiledata bank
]src equ 7
]dest equ 0
lup 8
lda tiledata+{]src*4},y
sta tmp_tile_data+{]dest*4}
lda tiledata+{]src*4}+32,y
sta tmp_tile_mask+{]dest*4}
lda tiledata+{]src*4}+2,y
sta tmp_tile_data+{]dest*4}+2
lda tiledata+{]src*4}+32+2,y
sta tmp_tile_mask+{]dest*4}+2
]src equ ]src-1
]dest equ ]dest+1
--^
plb
rts

View File

@ -128,11 +128,11 @@ _FillPEAOpcode
; Drawing under the zero tile is the same as not drawing a sprite fo both the fast and slow cases
_OneSpriteFastUnderA
jsr _CopyTileDataAndMaskToDP
jsr FastCopyTileDataAndMaskA
bra _OneSpriteFastUnder
_OneSpriteFastUnderV
jsr _CopyTileDataAndMaskToDPV
jsr FastCopyTileDataAndMaskV
_OneSpriteFastUnder
lda TileStore+TS_CODE_ADDR_HIGH,x ; load the bank of the target code field line
@ -144,12 +144,12 @@ _OneSpriteFastUnder
]line equ 0
lup 8
ldal spritedata+{]line*SPRITE_PLANE_SPAN},x
ora tmp_tile_mask+{]line*4}
and tmp_tile_mask+{]line*4}
ora tmp_tile_data+{]line*4}
sta: $0004+{]line*$1000},y
ldal spritedata+{]line*SPRITE_PLANE_SPAN}+2,x
ora tmp_tile_mask+{]line*4}+2
and tmp_tile_mask+{]line*4}+2
ora tmp_tile_data+{]line*4}+2
sta: $0001+{]line*$1000},y
]line equ ]line+1