Thanks guys, I appreciate it!
AmigaBill's trying out Alex Kidd tomorrow.
https://www.twitch.tv/events/7DahCtDCQ0OrrvcdpcQOyA
It's 99% BB, though there's some tiny bits and pieces in ASM. Eg, I wanted to be able to blit directly between memory addresses, so I whipped this up -
Code:
Statement DoTileBlit{source.l,dest.l,tilesize.w}
!WaitBlit{1}
Move.l #$09f00000,$DFF040 ;A->D copy, no shifts, ascending mode
Move.l #$ffffffff,$DFF044 ;no masking of first/last word
Move.w $0,$DFF064 ;A modulo=bytes to skip between lines
Move.w #ScreenModulo,$DFF066 ;d modulo=bytes to skip between screen lines
Move.l D0,$DFF050 ;Source
Move.l D1,$DFF054 ;Destination
Move.w D2,$DFF058 ;Start Blit
End Statement
Statement DoMaskTileBlit{source.l,dest.l,tilesize.w,masksize.w}
!WaitBlit{2}
Move.l #$0fca0000,$DFF040 ;Masked copy
Move.l #$ffffffff,$DFF044 ;no masking of first/last word
Move.w #0,$DFF064 ;A modulo=bytes to skip between lines
Move.w #0,$DFF062 ;B modulo=bytes to skip between lines
Move.w #ScreenModulo,$DFF060 ;c modulo=bytes to skip between screen lines
Move.w #ScreenModulo,$DFF066 ;d modulo=bytes to skip between screen lines
Move.l D0,$DFF04C ;Image - B
Add.l D3,D0 ;Get the mask Address
Move.l D0,$DFF050 ;Mask - A
Move.l D1,$DFF048 ;Destination - C
Move.l D1,$DFF054 ;Destination - D
Move.w D2,$DFF058 ;Start Blit
End Statement