Thread: Scorpion Engine
View Single Post
Old 23 July 2019, 12:09   #85
earok
Registered User
 
Join Date: Dec 2013
Location: Auckland
Posts: 3,543
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
earok is offline  
 
Page generated in 0.04482 seconds with 11 queries