1727 lines
66 KiB
NASM
1727 lines
66 KiB
NASM
; TODOs:
|
|
; - Table effect for returning scroller...
|
|
;
|
|
; Framework settings
|
|
|
|
IFD FW_DEMO_PART
|
|
IFD FW_HD_DEMO_PART
|
|
include "hdtrackmo_settings.i"
|
|
ELSE
|
|
include "trackmo_settings.i"
|
|
ENDC
|
|
ELSE
|
|
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
|
|
FW_HD_TRACKMO_MODE = 0 ; DO NOT CHANGE (not supported for standalone mode)
|
|
|
|
FW_MUSIC_SUPPORT = 0
|
|
FW_MUSIC_PLAYER_CHOICE = 0 ; 0 = None, 1 = LSP, 2 = LSP_CIA, 3 = P61A, 4 = Pretracker (CPU DMA wait), 5 = Pretracker Turbo (Copper wait)
|
|
FW_LMB_EXIT_SUPPORT = 1 ; allows abortion of intro with LMB
|
|
FW_MULTIPART_SUPPORT = 0 ; DO NOT CHANGE (not supported for standalone mode)
|
|
FW_DYNAMIC_MEMORY_SUPPORT = 1 ; enable dynamic memory allocation. Otherwise, use fw_ChipMemStack/End etc fields.
|
|
FW_MAX_MEMORY_STATES = 4 ; the amount of memory states
|
|
FW_TOP_BOTTOM_MEM_SECTIONS = 0 ; allow allocations from both sides of the memory
|
|
FW_64KB_PAGE_MEMORY_SUPPORT = 0 ; allow allocation of chip memory that doesn't cross the 64 KB page boundary
|
|
FW_MULTITASKING_SUPPORT = 1 ; enable multitasking
|
|
FW_ROUNDROBIN_MT_SUPPORT = 0 ; enable fair scheduling among tasks with same priority
|
|
FW_BLITTERTASK_MT_SUPPORT = 0 ; enable single parallel task during large blits
|
|
FW_MAX_VPOS_FOR_BG_TASK = 308 ; max vpos that is considered to be worth switching to a background task, if any
|
|
FW_SINETABLE_SUPPORT = 1 ; enable creation of 1024 entries sin/cos table
|
|
FW_SCRIPTING_SUPPORT = 0 ; enable simple timed scripting functions
|
|
FW_PALETTE_LERP_SUPPORT = 0 ; enable basic palette fading functions
|
|
FW_YIELD_FROM_MAIN_TOO = 0 ; adds additional code that copes with Yield being called from main code instead of task
|
|
FW_VBL_IRQ_SUPPORT = 0 ; enable custom VBL IRQ routine
|
|
FW_COPPER_IRQ_SUPPORT = 0 ; enable copper IRQ routine support
|
|
FW_AUDIO_IRQ_SUPPORT = 0 ; enable audio IRQ support (unimplemented)
|
|
FW_VBL_MUSIC_IRQ = 1 ; enable calling of VBL based music ticking (disable, if using CIA timing!)
|
|
FW_BLITTERQUEUE_SUPPORT = 1 ; enable blitter queue support
|
|
FW_A5_A6_UNTOUCHED = 1 ; speed up blitter queue if registers a5/a6 are never changed in main code
|
|
|
|
FW_LZ4_SUPPORT = 0 ; compile in LZ4 decruncher
|
|
FW_DOYNAX_SUPPORT = 0 ; compile in doynax decruncher
|
|
FW_ZX0_SUPPORT = 0 ; compile in ZX0 decruncher
|
|
|
|
FW_DO_FANCY_WORKBENCH_STUFF = 0 ; enable pre- and post-hook (os startup only)
|
|
|
|
ENABLE_PART_MUSIC = 0
|
|
|
|
ENDC
|
|
|
|
STHAM_WIDTH = 320
|
|
STHAM_HEIGHT = 180
|
|
STHAM_PLANES = 6
|
|
|
|
BENTFONT_WIDTH = 32
|
|
BENTFONT_HEIGHT = 32
|
|
|
|
BENTSCROLLER_WIDTH = 128
|
|
BENTSCROLLER_HEIGHT = 180+2
|
|
|
|
BENTSPRITE_WIDTH = 128
|
|
BENTSPRITE_HEIGHT = 180
|
|
|
|
NUM_BARS = 10
|
|
BAR_HEIGHT = 18
|
|
|
|
CURTAIN_WIDTH = 21 ; in words
|
|
|
|
COP_PREAMBLE_INST = 200 ; bplptrs
|
|
COP_POST_INST = 16 ; wait
|
|
COP_INST_PER_LINE = 1+8+8+1 ; wait, 8 sprxctl, 8 sprxpos, 1 color
|
|
COP_CURTAIN_INST_PER_LINE = 8+1+CURTAIN_WIDTH ; 8 init pos, wait, 21 sprite pos
|
|
COP_LIST_SIZE = (COP_PREAMBLE_INST+COP_CURTAIN_INST_PER_LINE*STHAM_HEIGHT+COP_POST_INST)*4
|
|
|
|
SPRITES_BUFFER_SIZE = (BENTSPRITE_WIDTH/16)*((BENTSPRITE_HEIGHT+2)*2*2)
|
|
|
|
CHIPMEM_SIZE = COP_LIST_SIZE*2+(BENTSCROLLER_WIDTH/8)*BENTSCROLLER_HEIGHT*3+SPRITES_BUFFER_SIZE*2+(CURTAIN_WIDTH*(CURTAIN_WIDTH+2)*16+2)*4
|
|
FASTMEM_SIZE = 4
|
|
|
|
IFND DEBUG_DETAIL
|
|
DEBUG_DETAIL SET 10
|
|
ENDC
|
|
|
|
NEWAGE_DEBUG = 1
|
|
|
|
include "framework.i"
|
|
|
|
|
|
; Memory use:
|
|
; Playfields:
|
|
; - 320 x 180 x 24 = 172800 (6x2 db, 2 draw, 2 fill, 6 original, 2 spare)
|
|
;
|
|
; Scroller mapping:
|
|
; - Scroller texture (W*H): 16 Bit offsets
|
|
; - Table mapping texture: tx/ty, screen x/y, mask (pixel width)
|
|
;
|
|
; move.w (a0)+,d0
|
|
; move.w (a0)+,d1
|
|
; move.w (a1,d0.w),d0
|
|
; and.w (a0)+,d0
|
|
; or.w d0,(a2,d1.w)
|
|
;
|
|
|
|
STRUCTURE BarData,0
|
|
WORD bd_Delay
|
|
LONG bd_YPos
|
|
WORD bd_YSpeed
|
|
LABEL bd_SIZEOF
|
|
|
|
STRUCTURE PartData,fw_SIZEOF
|
|
APTR pd_CurrPlanesPtr
|
|
APTR pd_LastPlanesPtr
|
|
APTR pd_CurrCopListPtr
|
|
APTR pd_LastCopListPtr
|
|
APTR pd_CurrScrollerPtr
|
|
APTR pd_LastScrollerPtr
|
|
APTR pd_CurrBentSpritesPtr
|
|
UBYTE pd_DbToggle
|
|
ALIGNWORD
|
|
|
|
UWORD pd_PartCountDown
|
|
|
|
UWORD pd_CopperChunkyOffset
|
|
|
|
APTR pd_CopperList1
|
|
APTR pd_CopperList2
|
|
|
|
UWORD pd_LetterOffset
|
|
UWORD pd_LetterCountDown
|
|
APTR pd_ScrollTextPtr
|
|
UWORD pd_LetterOrOffset
|
|
UWORD pd_LetterOrCountDown
|
|
|
|
UWORD pd_CurtainOffset1
|
|
UWORD pd_CurtainOffset2
|
|
LONG pd_CurtainPos
|
|
|
|
APTR pd_CurtainDataPtr
|
|
|
|
APTR pd_HamphreyBuffer
|
|
APTR pd_BentScrollerBuffer1
|
|
APTR pd_BentScrollerBuffer2
|
|
APTR pd_BentScrollerTemp
|
|
STRUCT pd_DummyBarTop,bd_SIZEOF
|
|
STRUCT pd_Bars,NUM_BARS*bd_SIZEOF
|
|
STRUCT pd_DummyBarBottom,bd_SIZEOF
|
|
STRUCT pd_BentSprites1Ptrs,8*4
|
|
STRUCT pd_BentSprites2Ptrs,8*4
|
|
STRUCT pd_PreparationTask,ft_SIZEOF
|
|
|
|
STRUCT pd_BQBuffer,1000
|
|
|
|
LABEL pd_SIZEOF
|
|
|
|
IFND FW_DEMO_PART
|
|
include "framework.asm"
|
|
ENDC
|
|
|
|
entrypoint:
|
|
IFD FW_DEMO_PART
|
|
move.l #pd_SIZEOF,d0
|
|
CALLFW InitPart
|
|
ENDC
|
|
|
|
bsr.s sth_init
|
|
|
|
lea sth_copperlist,a0
|
|
CALLFW SetCopper
|
|
|
|
lea sth_hamphrey_palette+2(pc),a1
|
|
moveq.l #15-1,d7
|
|
lea color+2(a5),a0
|
|
.blloop
|
|
move.w (a1)+,(a0)+
|
|
dbra d7,.blloop
|
|
|
|
lea .preptask(pc),a0
|
|
lea pd_PreparationTask(a6),a1
|
|
CALLFW AddTask
|
|
|
|
bsr sth_intro
|
|
bsr sth_main
|
|
bsr sth_curtain
|
|
|
|
CALLFW SetBaseCopper
|
|
|
|
rts
|
|
|
|
.preptask
|
|
IFD FW_DEMO_PART
|
|
move.l fw_GlobalUserData(a6),a0
|
|
move.l pd_HamphreyBuffer(a6),a1
|
|
PUTMSG 10,<"%d: Decrunching from %p to %p">,fw_FrameCounter-2(a6),a0,a1
|
|
CALLFW DecompressZX0
|
|
PUTMSG 10,<"%d: Image decrunched until %p">,fw_FrameCounter-2(a6),a1
|
|
clr.l fw_GlobalUserData(a6)
|
|
ENDC
|
|
bsr sth_create_curtain
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_init:
|
|
bsr sth_init_vars
|
|
bsr sth_clear_sprites
|
|
bsr sth_clear_bent_buffer
|
|
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_init_vars:
|
|
move.l #sth_scrolltext,pd_ScrollTextPtr(a6)
|
|
move.w #-1,pd_LetterOrCountDown(a6)
|
|
|
|
IFND FW_DEMO_PART
|
|
move.l #sth_hamphrey_pic,pd_HamphreyBuffer(a6)
|
|
ELSE
|
|
move.l #(STHAM_WIDTH/8)*STHAM_HEIGHT*STHAM_PLANES*2,d0
|
|
CALLFW AllocChip
|
|
move.l a0,pd_HamphreyBuffer(a6)
|
|
ENDC
|
|
move.l #(COP_LIST_SIZE*2),d0
|
|
CALLFW AllocChip
|
|
PUTMSG 10,<"Copperlist 1 %p">,a0
|
|
move.l a0,pd_CopperList1(a6)
|
|
move.l a0,pd_CurrCopListPtr(a6)
|
|
lea COP_LIST_SIZE(a0),a0
|
|
PUTMSG 10,<"Copperlist 2 %p">,a0
|
|
move.l a0,pd_CopperList2(a6)
|
|
move.l a0,pd_LastCopListPtr(a6)
|
|
|
|
move.l #(BENTSCROLLER_WIDTH/8)*BENTSCROLLER_HEIGHT*3,d0
|
|
CALLFW AllocChip
|
|
PUTMSG 10,<"BentScrollerBuffer 1 %p">,a0
|
|
move.l a0,pd_BentScrollerBuffer1(a6)
|
|
move.l a0,pd_CurrScrollerPtr(a6)
|
|
lea (BENTSCROLLER_WIDTH/8)*BENTSCROLLER_HEIGHT(a0),a0
|
|
PUTMSG 10,<"BentScrollerBuffer 2 %p">,a0
|
|
move.l a0,pd_BentScrollerBuffer2(a6)
|
|
move.l a0,pd_LastScrollerPtr(a6)
|
|
lea (BENTSCROLLER_WIDTH/8)*BENTSCROLLER_HEIGHT(a0),a0
|
|
PUTMSG 10,<"BentScrollerTemp %p">,a0
|
|
move.l a0,pd_BentScrollerTemp(a6)
|
|
|
|
move.l #SPRITES_BUFFER_SIZE*2,d0
|
|
CALLFW AllocChip
|
|
PUTMSG 10,<"BentSprites1Ptrs 1 %p">,a0
|
|
lea pd_BentSprites1Ptrs(a6),a1
|
|
move.l a1,pd_CurrBentSpritesPtr(a6)
|
|
|
|
REPT (BENTSPRITE_WIDTH/16)
|
|
move.l a0,(a1)+
|
|
lea ((BENTSPRITE_HEIGHT+2)*2*2)(a0),a0
|
|
ENDR
|
|
PUTMSG 10,<"BentSprites1Ptrs 2 %p">,a0
|
|
REPT (BENTSPRITE_WIDTH/16)
|
|
move.l a0,(a1)+
|
|
lea ((BENTSPRITE_HEIGHT+2)*2*2)(a0),a0
|
|
ENDR
|
|
|
|
; curtain (<31KB)
|
|
move.l #(CURTAIN_WIDTH*(CURTAIN_WIDTH+2)*16+2)*4,d0
|
|
CALLFW AllocChip
|
|
move.l a0,pd_CurtainDataPtr(a6)
|
|
|
|
lea pd_DummyBarTop(a6),a1
|
|
move.w #-(NUM_BARS+1)*BAR_HEIGHT-256,d0
|
|
move.w d0,bd_YPos(a1)
|
|
move.w #(NUM_BARS-1)*10,d1
|
|
moveq.l #10,d2
|
|
moveq.l #NUM_BARS-1,d7
|
|
.barloop
|
|
addq.l #bd_SIZEOF,a1
|
|
add.w #BAR_HEIGHT,d0
|
|
move.w d1,bd_Delay(a1)
|
|
move.w d0,bd_YPos(a1)
|
|
move.w #100,bd_YSpeed(a1)
|
|
sub.w d2,d1
|
|
addq.w #5,d2
|
|
dbra d7,.barloop
|
|
move.w #STHAM_HEIGHT,bd_YPos+bd_SIZEOF(a1)
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_intro:
|
|
IFD FW_DEMO_PART
|
|
PUTMSG 10,<"%d: Intro part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
|
ELSE
|
|
PUTMSG 10,<"%d: Intro part started">,fw_FrameCounter-2(a6)
|
|
move.w #400,pd_PartCountDown(a6)
|
|
ENDC
|
|
|
|
.loop CALLFW VSyncWithTask
|
|
bsr sth_flip_db_frame
|
|
|
|
bsr sth_drop_bars
|
|
bsr sth_create_intro_copperlist
|
|
|
|
bsr sth_update_copper_list_pointers
|
|
|
|
IFD FW_DEMO_PART
|
|
cmp.w #3072,fw_MusicFrameCount(a6)
|
|
blt.s .loop
|
|
ELSE
|
|
subq.w #1,pd_PartCountDown(a6)
|
|
bne .loop
|
|
ENDC
|
|
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_main:
|
|
IFD FW_DEMO_PART
|
|
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
|
ELSE
|
|
PUTMSG 10,<"%d: Main part started">,fw_FrameCounter-2(a6)
|
|
ENDC
|
|
move.w #800,pd_PartCountDown(a6)
|
|
CALLFW SetBlitterQueueSingleFrame
|
|
|
|
move.w #$000,color(a5)
|
|
REPT 2
|
|
CALLFW VSyncWithTask
|
|
bsr sth_flip_db_frame
|
|
bsr sth_create_sham_copperlist
|
|
bsr sth_update_copper_list_pointers
|
|
ENDR
|
|
|
|
.loop CALLFW VSyncWithTask
|
|
bsr sth_flip_db_frame
|
|
|
|
lea pd_BQBuffer(a6),a4
|
|
|
|
move.l pd_BentScrollerTemp(a6),a0
|
|
move.l pd_LastScrollerPtr(a6),a2
|
|
bsr sth_scroll_buffer
|
|
|
|
move.l pd_CurrScrollerPtr(a6),a0
|
|
move.l pd_BentScrollerTemp(a6),a2
|
|
bsr sth_scroll_buffer
|
|
|
|
bsr sth_convert_scroller_to_sprites
|
|
|
|
bsr sth_push_in_letter
|
|
|
|
TERMINATE_BLITTER_QUEUE
|
|
|
|
BLTHOGON
|
|
BLTWAIT
|
|
lea pd_BQBuffer(a6),a0
|
|
CALLFW TriggerCustomBlitterQueue
|
|
|
|
CALLFW JoinBlitterQueue
|
|
|
|
bsr sth_update_copper_list_pointers
|
|
|
|
subq.w #1,pd_PartCountDown(a6)
|
|
bne .loop
|
|
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_curtain:
|
|
IFD FW_DEMO_PART
|
|
PUTMSG 10,<"%d: Curtain part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
|
ELSE
|
|
PUTMSG 10,<"%d: Curtain part started">,fw_FrameCounter-2(a6)
|
|
ENDC
|
|
move.w #186,pd_PartCountDown(a6)
|
|
CALLFW SetBlitterQueueSingleFrame
|
|
|
|
move.l #482*CURTAIN_WIDTH*4,pd_CurtainPos(a6)
|
|
|
|
REPT 1
|
|
CALLFW VSyncWithTask
|
|
bsr sth_flip_db_frame
|
|
bsr sth_create_simple_copperlist
|
|
bsr sth_update_copper_list_pointers
|
|
ENDR
|
|
|
|
REPT 2
|
|
CALLFW VSyncWithTask
|
|
bsr sth_flip_db_frame
|
|
bsr sth_create_curtain_copperlist
|
|
move.l a0,pd_CurrCopListPtr(a6)
|
|
bsr sth_create_simple_copperlist
|
|
bsr sth_update_copper_list_pointers
|
|
ENDR
|
|
|
|
move.w #$000,color(a5)
|
|
move.w #$000,color+17*2(a5)
|
|
move.w #$311,color+21*2(a5)
|
|
move.w #$621,color+22*2(a5)
|
|
move.w #$a64,color+23*2(a5)
|
|
move.w #$da7,color+25*2(a5)
|
|
move.w #$cca,color+26*2(a5)
|
|
move.w #$bed,color+27*2(a5)
|
|
move.w #$3df,color+29*2(a5)
|
|
move.w #$6ef,color+30*2(a5)
|
|
move.w #$aff,color+31*2(a5)
|
|
|
|
.loop CALLFW VSyncWithTask
|
|
bsr sth_flip_db_frame
|
|
|
|
bsr sth_draw_curtain
|
|
|
|
bsr sth_update_copper_list_pointers
|
|
|
|
subq.w #1,pd_PartCountDown(a6)
|
|
bne .loop
|
|
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_flip_db_frame:
|
|
move.l pd_CurrPlanesPtr(a6),pd_LastPlanesPtr(a6)
|
|
move.l pd_CurrCopListPtr(a6),pd_LastCopListPtr(a6)
|
|
move.l pd_CurrScrollerPtr(a6),pd_LastScrollerPtr(a6)
|
|
move.l pd_HamphreyBuffer(a6),a0
|
|
not.b pd_DbToggle(a6)
|
|
beq.s .selb1
|
|
lea (STHAM_WIDTH/8)*STHAM_PLANES(a0),a0
|
|
move.l a0,pd_CurrPlanesPtr(a6)
|
|
move.l pd_CopperList2(a6),pd_CurrCopListPtr(a6)
|
|
move.l pd_BentScrollerBuffer2(a6),pd_CurrScrollerPtr(a6)
|
|
lea pd_BentSprites2Ptrs(a6),a0
|
|
move.l a0,pd_CurrBentSpritesPtr(a6)
|
|
rts
|
|
.selb1
|
|
move.l a0,pd_CurrPlanesPtr(a6)
|
|
move.l pd_CopperList1(a6),pd_CurrCopListPtr(a6)
|
|
move.l pd_BentScrollerBuffer1(a6),pd_CurrScrollerPtr(a6)
|
|
lea pd_BentSprites1Ptrs(a6),a0
|
|
move.l a0,pd_CurrBentSpritesPtr(a6)
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_update_copper_list_pointers:
|
|
lea sth_extra_copperlist_ptr+2,a0
|
|
move.w pd_CurrCopListPtr(a6),(a0)
|
|
move.w pd_CurrCopListPtr+2(a6),4(a0)
|
|
move.w #copjmp2,6(a0)
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_clear_sprites:
|
|
lea pd_BentSprites1Ptrs(a6),a0
|
|
BLTHOGON
|
|
BLTWAIT
|
|
BLTCON_SET D,0,0,0
|
|
move.w #0,bltdmod(a5)
|
|
move.l (a0),bltdpt(a5)
|
|
move.w #((BENTSPRITE_WIDTH)>>4)|(((BENTSPRITE_HEIGHT+2)*2*2)<<6),bltsize(a5)
|
|
|
|
move.l #(($52<<8)|0)<<16|(((($52+BENTSPRITE_HEIGHT)&$ff)<<8)|1),d0
|
|
BLTWAIT
|
|
moveq.l #8-1,d7
|
|
.loop move.l (a0)+,a1
|
|
move.l d0,(a1)
|
|
dbra d7,.loop
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_clear_bent_buffer:
|
|
BLTHOGON
|
|
BLTWAIT
|
|
BLTCON_SET D,0,0,0
|
|
move.w #0,bltdmod(a5)
|
|
move.l pd_BentScrollerBuffer1(a6),bltdpt(a5)
|
|
move.w #((BENTSCROLLER_WIDTH)>>4)|((BENTSCROLLER_HEIGHT*3)<<6),bltsize(a5)
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_push_in_letter:
|
|
subq.w #2,pd_LetterCountDown(a6)
|
|
bpl.s .nonew
|
|
move.w pd_LetterOffset(a6),pd_LetterOrOffset(a6)
|
|
move.w #44-28,pd_LetterOrCountDown(a6)
|
|
move.w #28,pd_LetterCountDown(a6)
|
|
move.l pd_ScrollTextPtr(a6),a0
|
|
move.b (a0)+,d0
|
|
bne.s .nowrap
|
|
move.l pd_ScrollTextPtr(a6),a0
|
|
move.b (a0)+,d0
|
|
.nowrap
|
|
move.l a0,pd_ScrollTextPtr(a6)
|
|
sub.b #'A',d0
|
|
ext.w d0
|
|
lsl.w #2+4,d0
|
|
move.w d0,d1
|
|
add.w d0,d0
|
|
add.w d1,d0
|
|
move.w d0,pd_LetterOffset(a6)
|
|
.nonew
|
|
move.l pd_LastScrollerPtr(a6),a1
|
|
lea (BENTSPRITE_HEIGHT)*(BENTSCROLLER_WIDTH/8)(a1),a1
|
|
|
|
lea sth_font_data(pc),a0
|
|
move.w pd_LetterOffset(a6),d0
|
|
bmi.s .clear
|
|
adda.w d0,a0
|
|
addq.w #8,d0
|
|
move.w d0,pd_LetterOffset(a6)
|
|
|
|
move.l #$88888888,d6
|
|
REPT 2
|
|
movem.l (a0)+,d0
|
|
|
|
REPT 4
|
|
move.l d0,d4
|
|
and.l d6,d4
|
|
move.l d4,d5
|
|
lsr.l #1,d5
|
|
or.l d5,d4
|
|
move.l d4,d5
|
|
lsr.l #2,d5
|
|
or.l d5,d4
|
|
move.l d4,(a1)+
|
|
rol.l #1,d0
|
|
ENDR
|
|
ENDR
|
|
|
|
.second
|
|
subq.w #2,pd_LetterOrCountDown(a6)
|
|
bmi.s .skip
|
|
move.w pd_LetterOrOffset(a6),d0
|
|
bmi.s .skip
|
|
move.l pd_LastScrollerPtr(a6),a1
|
|
lea (BENTSPRITE_HEIGHT)*(BENTSCROLLER_WIDTH/8)(a1),a1
|
|
|
|
lea sth_font_data(pc),a0
|
|
adda.w d0,a0
|
|
addq.w #8,d0
|
|
move.w d0,pd_LetterOrOffset(a6)
|
|
|
|
REPT 2
|
|
movem.l (a0)+,d0
|
|
|
|
REPT 4
|
|
move.l d0,d4
|
|
and.l d6,d4
|
|
move.l d4,d5
|
|
lsr.l #1,d5
|
|
or.l d5,d4
|
|
move.l d4,d5
|
|
lsr.l #2,d5
|
|
or.l d5,d4
|
|
or.l d4,(a1)+
|
|
rol.l #1,d0
|
|
ENDR
|
|
ENDR
|
|
|
|
.skip
|
|
rts
|
|
.clear
|
|
moveq.l #0,d0
|
|
REPT 8
|
|
move.l d0,(a1)+
|
|
ENDR
|
|
move.l #$88888888,d6
|
|
bra.s .second
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_scroll_buffer:
|
|
lea 1*(BENTSCROLLER_WIDTH/8)(a2),a2
|
|
|
|
SAFE_ADD_TO_BLITTER_QUEUE a4,a3
|
|
addq.w #4,a4
|
|
move.l #.bq_simple_shift_up,(a4)+
|
|
move.l #(((BENTSCROLLER_WIDTH-32)/8)<<16)|((BENTSCROLLER_WIDTH-32)/8),(a4)+
|
|
move.l a2,(a4)+
|
|
move.l a0,(a4)+
|
|
move.w #(32>>4)|(30<<6),(a4)+
|
|
|
|
lea (90-1)*(BENTSCROLLER_WIDTH/8)+(48/8)-2(a0),a0
|
|
lea (90-1)*(BENTSCROLLER_WIDTH/8)+(48/8)-2(a2),a2
|
|
lea sth_scroller_shift_1_bitmap+(90-30-1)*(BENTSCROLLER_WIDTH/8)+(48/8)-2,a1
|
|
|
|
FAST_ADD_TO_BLITTER_QUEUE a4,a3
|
|
addq.w #4,a4
|
|
move.l #.bq_shift_1,(a4)+
|
|
move.l #(((BENTSCROLLER_WIDTH-48)/8)<<16)|((BENTSCROLLER_WIDTH-48)/8),d0
|
|
move.l d0,(a4)+
|
|
move.l d0,(a4)+
|
|
move.l a1,(a4)+ ; bltcpt
|
|
move.l a2,(a4)+ ; bltbpt
|
|
move.l a2,(a4)+ ; bltapt
|
|
move.l a0,(a4)+ ; bltdpt
|
|
move.w #(48>>4)|((90-30)<<6),(a4)+
|
|
|
|
lea ((144-1)-(90-1))*(BENTSCROLLER_WIDTH/8)+(80/8)-(48/8)(a0),a0
|
|
lea ((144-1)-(90-1))*(BENTSCROLLER_WIDTH/8)+(80/8)-(48/8)(a2),a2
|
|
lea sth_scroller_shift_1_bitmap+(144-30-1)*(BENTSCROLLER_WIDTH/8)+(80/8)-2,a1
|
|
|
|
FAST_ADD_TO_BLITTER_QUEUE a4,a3
|
|
addq.w #4,a4
|
|
move.l #.bq_shift_1,(a4)+
|
|
move.l #(((BENTSCROLLER_WIDTH-80)/8)<<16)|((BENTSCROLLER_WIDTH-80)/8),d0
|
|
move.l d0,(a4)+
|
|
move.l d0,(a4)+
|
|
move.l a1,(a4)+ ; bltcpt
|
|
move.l a2,(a4)+ ; bltbpt
|
|
move.l a2,(a4)+ ; bltapt
|
|
move.l a0,(a4)+ ; bltdpt
|
|
move.w #(80>>4)|((144-90)<<6),(a4)+
|
|
|
|
lea (BENTSPRITE_HEIGHT-144+2)*(BENTSCROLLER_WIDTH/8)-(80/8)(a0),a0
|
|
lea (BENTSPRITE_HEIGHT-144+2)*(BENTSCROLLER_WIDTH/8)-(80/8)(a2),a2
|
|
lea sth_scroller_shift_1_bitmap+(BENTSPRITE_HEIGHT-30-1+2)*(BENTSCROLLER_WIDTH/8)-2,a1
|
|
|
|
FAST_ADD_TO_BLITTER_QUEUE a4,a3
|
|
addq.w #4,a4
|
|
move.l #.bq_shift_1,(a4)+
|
|
moveq.l #0,d0
|
|
move.l d0,(a4)+
|
|
move.l d0,(a4)+
|
|
move.l a1,(a4)+ ; bltcpt
|
|
move.l a2,(a4)+ ; bltbpt
|
|
move.l a2,(a4)+ ; bltapt
|
|
move.l a0,(a4)+ ; bltdpt
|
|
move.w #(BENTSCROLLER_WIDTH>>4)|((BENTSPRITE_HEIGHT-144-1+2)<<6),(a4)+
|
|
|
|
lea -2*(BENTSCROLLER_WIDTH/8)(a0),a0
|
|
lea -2*(BENTSCROLLER_WIDTH/8)(a2),a2
|
|
lea sth_scroller_shift_2_bitmap+(BENTSPRITE_HEIGHT-157-1)*(80/8)-2,a1
|
|
|
|
LAST_ADD_TO_BLITTER_QUEUE a4,a3
|
|
addq.w #4,a4
|
|
move.l #.bq_shift_2,(a4)+
|
|
move.l #0|((BENTSCROLLER_WIDTH-80)/8),(a4)+
|
|
move.l #(((BENTSCROLLER_WIDTH-80)/8)<<16)|((BENTSCROLLER_WIDTH-80)/8),(a4)+
|
|
move.l a1,(a4)+ ; bltcpt
|
|
move.l a0,(a4)+ ; bltbpt
|
|
move.l a2,(a4)+ ; bltapt
|
|
move.l a0,(a4)+ ; bltdpt
|
|
move.w #(80>>4)|((BENTSPRITE_HEIGHT-157-1)<<6),(a4)+
|
|
|
|
rts
|
|
|
|
.bq_simple_shift_up
|
|
BLTHOGOFF
|
|
BLTCON_SET AD,BLT_A,0,0
|
|
moveq.l #-1,d0
|
|
move.l d0,bltafwm(a5)
|
|
move.l (a0)+,bltamod(a5) ; and bltdmod
|
|
lea bltapt(a5),a1
|
|
move.l (a0)+,(a1)+ ; bltapt
|
|
move.l (a0)+,(a1)+ ; bltdpt
|
|
move.w (a0)+,(a1)+ ; bltsize
|
|
rts
|
|
|
|
.bq_shift_1
|
|
BLTCON_SET_X ABCD,(BLT_A&BLT_C)|(BLT_B&~BLT_C),1,0,BLTCON1F_DESC
|
|
;BLTCON_SET_X CD,BLT_C,1,0,BLTCON1F_DESC
|
|
move.l (a0)+,bltcmod(a5) ; and bltbmod
|
|
move.l (a0)+,bltamod(a5) ; and bltdmod
|
|
lea bltcpt(a5),a1
|
|
move.l (a0)+,(a1)+ ; bltcpt
|
|
move.l (a0)+,(a1)+ ; bltbpt
|
|
move.l (a0)+,(a1)+ ; bltapt
|
|
move.l (a0)+,(a1)+ ; bltdpt
|
|
move.w (a0)+,(a1)+ ; bltsize
|
|
rts
|
|
|
|
.bq_shift_2
|
|
BLTCON_SET_X ABCD,(BLT_A&BLT_C)|(BLT_B&~BLT_C),2,0,BLTCON1F_DESC
|
|
;BLTCON_SET_X CD,BLT_C,2,0,BLTCON1F_DESC
|
|
move.l (a0)+,bltcmod(a5) ; and bltbmod
|
|
move.l (a0)+,bltamod(a5) ; and bltdmod
|
|
lea bltcpt(a5),a1
|
|
move.l (a0)+,(a1)+ ; bltcpt
|
|
move.l (a0)+,(a1)+ ; bltbpt
|
|
move.l (a0)+,(a1)+ ; bltapt
|
|
move.l (a0)+,(a1)+ ; bltdpt
|
|
move.w (a0)+,(a1)+ ; bltsize
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_convert_scroller_to_sprites:
|
|
PREP_ADD_TO_BLITTER_QUEUE a3
|
|
move.w #(16>>4)|(BENTSPRITE_HEIGHT<<6),d3
|
|
move.l #.bq_generic_ad_with_all,d4
|
|
move.l #.bq_generic_ad,d5
|
|
move.l pd_CurrScrollerPtr(a6),a2
|
|
move.l pd_CurrBentSpritesPtr(a6),a0
|
|
moveq.l #(BENTSPRITE_WIDTH/16)-1,d7
|
|
.sprloop
|
|
FAST_ADD_TO_BLITTER_QUEUE a4,a3
|
|
clr.l (a4)+
|
|
move.l d4,(a4)+
|
|
move.l (a0)+,d0
|
|
addq.l #4,d0
|
|
move.l a2,(a4)+
|
|
move.l d0,(a4)+
|
|
move.w d3,(a4)+
|
|
addq.w #2,a2
|
|
|
|
move.l d5,d4
|
|
|
|
dbra d7,.sprloop
|
|
|
|
TERM_ADD_TO_BLITTER_QUEUE a3
|
|
rts
|
|
|
|
.bq_generic_ad_with_all
|
|
BLTHOGOFF
|
|
move.l #(BLTEN_AD+BLT_A)<<16,bltcon0(a5)
|
|
moveq.l #-1,d0
|
|
move.l d0,bltafwm(a5)
|
|
move.l #(((BENTSCROLLER_WIDTH-16)/8)<<16)|2,bltamod(a5)
|
|
.bq_generic_ad
|
|
lea bltapt(a5),a1
|
|
move.l (a0)+,(a1)+ ; bltapt
|
|
move.l (a0)+,(a1)+ ; bltdpt
|
|
move.w (a0)+,(a1)+ ; bltsize
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_drop_bars:
|
|
lea pd_Bars(a6),a1
|
|
moveq.l #NUM_BARS-1,d7
|
|
.gravloop
|
|
subq.w #1,bd_Delay(a1)
|
|
bpl.s .skip
|
|
move.l bd_YPos(a1),d0
|
|
move.w bd_YSpeed(a1),d1
|
|
add.w #52,d1
|
|
move.w d1,bd_YSpeed(a1)
|
|
ext.l d1
|
|
lsl.l #6,d1
|
|
add.l d1,d0
|
|
move.l d0,bd_YPos(a1)
|
|
.skip
|
|
lea bd_SIZEOF(a1),a1
|
|
dbra d7,.gravloop
|
|
|
|
moveq.l #NUM_BARS-1,d7
|
|
moveq.l #BAR_HEIGHT,d2
|
|
.collloop
|
|
lea -bd_SIZEOF(a1),a1
|
|
tst.w bd_Delay(a1)
|
|
bpl.s .skip2
|
|
|
|
move.w bd_YPos(a1),d0
|
|
move.w bd_YSpeed(a1),d3
|
|
asr.w #1,d3
|
|
move.w d0,d1
|
|
sub.w d2,d1
|
|
cmp.w bd_YPos-bd_SIZEOF(a1),d1
|
|
bge.s .notopcoll
|
|
move.w bd_YPos-bd_SIZEOF(a1),d0
|
|
add.w d2,d0
|
|
move.w d0,bd_YPos(a1)
|
|
move.w d3,d1
|
|
neg.w d1
|
|
move.w d1,bd_YSpeed(a1)
|
|
;asr.w #1,d1
|
|
;neg.w d1
|
|
add.w d3,bd_YSpeed-bd_SIZEOF(a1)
|
|
.notopcoll
|
|
move.w d0,d1
|
|
add.w d2,d1
|
|
cmp.w bd_YPos+bd_SIZEOF(a1),d1
|
|
blt.s .nobottomcoll
|
|
move.w bd_YPos+bd_SIZEOF(a1),d0
|
|
sub.w d2,d0
|
|
move.w d0,bd_YPos(a1)
|
|
move.w d3,d1
|
|
neg.w d1
|
|
move.w d1,bd_YSpeed(a1)
|
|
;asr.w #1,d1
|
|
;neg.w d1
|
|
add.w d3,bd_YSpeed+bd_SIZEOF(a1)
|
|
.nobottomcoll
|
|
.skip2
|
|
dbra d7,.collloop
|
|
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_create_curtain:
|
|
move.l pd_CurtainDataPtr(a6),a0
|
|
PUTMSG 10,<"%d: Curtain %p">,fw_FrameCounter-2(a6),a0
|
|
|
|
move.l #(spr+0*sd_SIZEOF+sd_pos)<<16,d4
|
|
move.l #$1fe<<16,d3
|
|
move.w #(CURTAIN_WIDTH+2)*16,d7
|
|
.lineloop
|
|
moveq.l #15,d0
|
|
and.w d7,d0
|
|
lsr.w #1,d0
|
|
eor.w #7,d0
|
|
move.w #($50<<8)|(64),d4
|
|
sub.w d0,d4
|
|
|
|
moveq.l #CURTAIN_WIDTH,d5
|
|
moveq.l #1,d1
|
|
and.w d7,d1
|
|
lsl.w #3,d1
|
|
move.w d7,d6
|
|
lsr.w #4,d6
|
|
subq.w #1,d6
|
|
bmi.s .tilem1
|
|
subq.w #1,d6
|
|
bmi.s .tilem2
|
|
subq.w #1,d6
|
|
bmi.s .tilem3
|
|
.blackloop
|
|
subq.w #1,d5
|
|
move.l d4,(a0)+
|
|
addq.w #8,d4
|
|
dbra d6,.blackloop
|
|
|
|
.tilem3
|
|
subq.w #1,d5
|
|
bmi.s .skipwhite
|
|
move.w d1,d2
|
|
add.w #spr+2*sd_SIZEOF+sd_pos,d2
|
|
move.w d2,(a0)+
|
|
move.w d4,(a0)+
|
|
addq.w #8,d4
|
|
|
|
.tilem2
|
|
subq.w #1,d5
|
|
bmi.s .skipwhite
|
|
move.w d1,d2
|
|
add.w #spr+4*sd_SIZEOF+sd_pos,d2
|
|
move.w d2,(a0)+
|
|
move.w d4,(a0)+
|
|
addq.w #8,d4
|
|
|
|
.tilem1
|
|
subq.w #1,d5
|
|
bmi.s .skipwhite
|
|
move.w d1,d2
|
|
add.w #spr+6*sd_SIZEOF+sd_pos,d2
|
|
move.w d2,(a0)+
|
|
move.w d4,(a0)+
|
|
|
|
.skipspecial
|
|
subq.w #1,d5
|
|
bmi.s .skipwhite
|
|
.whiteloop
|
|
move.l d3,(a0)+
|
|
dbra d5,.whiteloop
|
|
.skipwhite
|
|
dbra d7,.lineloop
|
|
|
|
moveq.l #CURTAIN_WIDTH-1,d7
|
|
.emptylineloop
|
|
move.l d3,(a0)+
|
|
dbra d7,.emptylineloop
|
|
|
|
PUTMSG 10,<"%d: Curtain done">,fw_FrameCounter-2(a6)
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_draw_curtain:
|
|
move.l pd_CurrCopListPtr(a6),a1
|
|
adda.w pd_CopperChunkyOffset(a6),a1
|
|
|
|
BLTHOGON
|
|
BLTWAIT
|
|
BLTHOGOFF
|
|
BLTCON_SET AD,BLT_A,0,0
|
|
moveq.l #-1,d0
|
|
move.l d0,bltafwm(a5) ; also fills bltalwm
|
|
moveq.l #0,d0
|
|
move.l d0,bltamod(a5)
|
|
|
|
lea sth_curtainsines(pc),a2
|
|
lea sth_curtainsines+256(pc),a3
|
|
lea sth_curtainsines+512(pc),a4
|
|
move.w #(CURTAIN_WIDTH*2)|((1)<<6),d3
|
|
|
|
move.l pd_CurtainDataPtr(a6),a0
|
|
move.w pd_CurtainOffset1(a6),d2
|
|
addq.w #2,d2
|
|
move.w d2,pd_CurtainOffset1(a6)
|
|
move.w pd_CurtainOffset2(a6),d5
|
|
subq.w #3,d5
|
|
move.w d5,pd_CurtainOffset2(a6)
|
|
move.w d5,d0
|
|
add.w d2,d0
|
|
add.w d2,d0
|
|
lsr.w #2,d0
|
|
add.w d2,d2
|
|
add.w d5,d5
|
|
|
|
and.w #254,d2
|
|
and.w #254,d5
|
|
and.w #254,d0
|
|
|
|
move.l pd_CurtainPos(a6),d4
|
|
sub.l #3*(CURTAIN_WIDTH*4),d4
|
|
move.l d4,pd_CurtainPos(a6)
|
|
move.l #(CURTAIN_WIDTH*4)*(((CURTAIN_WIDTH+2)*16)+1),d6
|
|
move.w #STHAM_HEIGHT-1,d7
|
|
moveq.l #0,d1
|
|
.lineloop
|
|
suba.w d1,a0
|
|
addq.b #3*2,d2
|
|
move.w (a3,d2.w),d1
|
|
|
|
subq.b #2*2,d0
|
|
add.w (a3,d0.w),d1
|
|
|
|
subq.b #4*2,d5
|
|
add.w (a4,d5.w),d1
|
|
|
|
ext.l d1
|
|
add.l d4,d1
|
|
bpl.s .nocutoff
|
|
moveq.l #0,d1
|
|
bra.s .nooverfl2
|
|
.nocutoff
|
|
cmp.l d6,d1
|
|
blt.s .nooverfl
|
|
move.w d6,d1
|
|
.nooverfl
|
|
adda.w d1,a0
|
|
.nooverfl2
|
|
BLTWAIT
|
|
movem.l a0/a1,bltapt(a5) ; bltapt = a0, bltdpt = a1
|
|
move.w d3,bltsize(a5)
|
|
lea COP_CURTAIN_INST_PER_LINE*4(a1),a1
|
|
dbra d7,.lineloop
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_create_sham_copperlist:
|
|
move.l pd_CurrCopListPtr(a6),a0
|
|
|
|
move.l pd_CurrBentSpritesPtr(a6),a1
|
|
move.w #sprpt,d1
|
|
moveq.l #(BENTSPRITE_WIDTH/16)*2-1,d7
|
|
.sprloop
|
|
move.w d1,(a0)+
|
|
move.w (a1)+,(a0)+
|
|
addq.w #2,d1
|
|
dbra d7,.sprloop
|
|
|
|
COPIMOVE DMAF_SETCLR|DMAF_SPRITE,dmacon ; enable sprite dma
|
|
|
|
move.l pd_CurrPlanesPtr(a6),d0
|
|
moveq.l #6-1,d7
|
|
move.w #bplpt,d1
|
|
moveq.l #(STHAM_WIDTH)/8,d2
|
|
.bplloop
|
|
move.w d1,(a0)+
|
|
swap d0
|
|
move.w d0,(a0)+
|
|
addq.w #2,d1
|
|
|
|
move.w d1,(a0)+
|
|
swap d0
|
|
move.w d0,(a0)+
|
|
addq.w #2,d1
|
|
|
|
add.l d2,d0
|
|
dbra d7,.bplloop
|
|
|
|
COPIMOVE $6a00,bplcon0
|
|
|
|
moveq.l #-2,d3
|
|
move.w #$51b5,d0
|
|
move.w #$100,d2
|
|
|
|
lea sth_sprite_xpos(pc),a1
|
|
move.w #$5200,d1
|
|
move.w #BENTSPRITE_HEIGHT-1,d7
|
|
lea sth_scroller_gradient(pc),a2
|
|
moveq.l #-1,d5
|
|
moveq.l #-1,d6
|
|
.cprloop
|
|
move.w #((($52+BENTSPRITE_HEIGHT)&$ff)<<7)|1,d4
|
|
move.b (a1)+,d1
|
|
cmp.b d5,d1
|
|
beq.s .skippos
|
|
move.b d1,d5
|
|
|
|
move.w d0,(a0)+
|
|
move.w d3,(a0)+
|
|
|
|
lsr.b #1,d1
|
|
roxl.w d4
|
|
add.b #$40,d1
|
|
|
|
REPT 8
|
|
COPRMOVE d4,spr+sd_ctl+REPTN*sd_SIZEOF
|
|
ENDR
|
|
REPT 8
|
|
COPRMOVE d1,spr+sd_pos+REPTN*sd_SIZEOF
|
|
addq.b #8,d1
|
|
ENDR
|
|
bra.s .addcol
|
|
|
|
.skippos
|
|
move.w d0,d1
|
|
move.b #$d5,d1
|
|
move.w d1,(a0)+
|
|
move.w d3,(a0)+
|
|
.addcol
|
|
cmp.w (a2),d6
|
|
beq.s .nocol
|
|
move.w (a2),d6
|
|
COPRMOVE d6,color+17*2
|
|
cmp.w #BENTSPRITE_HEIGHT-1-31,d7
|
|
bgt.s .nocol
|
|
sub.w #$011,d6
|
|
COPRMOVE d6,color+21*2
|
|
cmp.w #BENTSPRITE_HEIGHT-1-124,d7
|
|
bgt.s .nocol
|
|
sub.w #$011,d6
|
|
COPRMOVE d6,color+25*2
|
|
cmp.w #BENTSPRITE_HEIGHT-1-160,d7
|
|
bgt.s .nocol
|
|
sub.w #$011,d6
|
|
COPRMOVE d6,color+29*2
|
|
.nocol
|
|
add.w d2,d0
|
|
addq.w #2,a2
|
|
|
|
dbra d7,.cprloop
|
|
|
|
move.l d3,(a0)+
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_create_intro_copperlist:
|
|
move.l pd_CurrCopListPtr(a6),a0
|
|
|
|
moveq.l #0,d5
|
|
move.l pd_CurrPlanesPtr(a6),d0
|
|
lea pd_Bars(a6),a1
|
|
moveq.l #BAR_HEIGHT,d6
|
|
moveq.l #NUM_BARS-1,d7
|
|
.findtopbar
|
|
move.w bd_YPos(a1),d4
|
|
PUTMSG 40,<"%d: YPos %d">,d7,d4
|
|
add.w d6,d4
|
|
bgt.s .foundtopbar
|
|
add.l #BAR_HEIGHT*(2*(STHAM_WIDTH)/8)*STHAM_PLANES,d0
|
|
addq.l #bd_SIZEOF,a1
|
|
dbra d7,.findtopbar
|
|
moveq.l #1,d5 ; no bar visible
|
|
moveq.l #0,d6 ; zero height for first bar
|
|
bra.s .noaddsplit
|
|
.foundtopbar
|
|
sub.w d6,d4
|
|
bpl.s .noaddsplit
|
|
add.w d4,d6
|
|
move.w d4,d2
|
|
neg.w d2
|
|
PUTMSG 30,<"Adding %d">,d2
|
|
muls #(2*(STHAM_WIDTH)/8)*STHAM_PLANES,d2
|
|
add.l d2,d0
|
|
moveq.l #0,d4
|
|
.noaddsplit
|
|
|
|
PUTMSG 20,<"Top Y %d, Height %d">,d4,d6
|
|
moveq.l #6-1,d7
|
|
move.w #bplpt,d1
|
|
moveq.l #(STHAM_WIDTH)/8,d2
|
|
.bplloop
|
|
move.w d1,(a0)+
|
|
swap d0
|
|
move.w d0,(a0)+
|
|
addq.w #2,d1
|
|
|
|
move.w d1,(a0)+
|
|
swap d0
|
|
move.w d0,(a0)+
|
|
addq.w #2,d1
|
|
|
|
add.l d2,d0
|
|
dbra d7,.bplloop
|
|
|
|
moveq.l #-2,d3
|
|
move.w #$5207,d0
|
|
move.w #$100,d2
|
|
moveq.l #0,d7
|
|
|
|
tst.w d5
|
|
bne.s .allempty
|
|
lea sth_midbar_gradient(pc),a2
|
|
tst.w d4
|
|
beq.s .startbar
|
|
|
|
COPIMOVE $0000,color
|
|
COPIMOVE $0200,bplcon0
|
|
add.w d4,d7
|
|
|
|
move.w bd_YPos(a1),d1
|
|
sub.w bd_YPos-bd_SIZEOF(a1),d1
|
|
sub.w #BAR_HEIGHT,d1
|
|
move.w d1,d6
|
|
move.w d4,-(sp)
|
|
sub.w d4,d1
|
|
|
|
move.w d6,d4
|
|
add.w d4,d4
|
|
moveq.l #0,d5
|
|
subq.w #1,d1
|
|
bmi.s .skipspecial
|
|
.firstloop
|
|
sub.w d2,d6
|
|
bpl.s .cont2
|
|
.again2
|
|
addq.w #2,d5
|
|
add.w d4,d6
|
|
bmi.s .again2
|
|
.cont2
|
|
dbra d1,.firstloop
|
|
.skipspecial
|
|
move.w (sp)+,d1
|
|
subq.w #1,d1
|
|
beq.s .oneline
|
|
subq.w #1,d1
|
|
bra.s .whiteloop
|
|
|
|
.startbar
|
|
COPIMOVE $0000,color
|
|
COPIMOVE $6a00,bplcon0
|
|
|
|
.barloop
|
|
PUTMSG 30,<"Barloop at %d">,d7
|
|
add.w d6,d7
|
|
move.w d6,d1
|
|
lsl.w #8,d1
|
|
add.w d1,d0
|
|
bcc.s .no255
|
|
move.w #$ffdf,(a0)+
|
|
move.w d3,(a0)+
|
|
.no255
|
|
move.w d0,(a0)+
|
|
move.w d3,(a0)+
|
|
|
|
addq.l #bd_SIZEOF,a1
|
|
move.w bd_YPos(a1),d1
|
|
sub.w d7,d1
|
|
beq.s .nextbar
|
|
|
|
COPIMOVE $0200,bplcon0
|
|
cmp.w #STHAM_HEIGHT,bd_YPos(a1)
|
|
bge.s .lastbar
|
|
.startfirstwhite
|
|
PUTMSG 40,<"White dist %d">,d1
|
|
add.w d1,d7
|
|
move.w d1,d6
|
|
move.w d1,d4
|
|
add.w d4,d4
|
|
moveq.l #0,d5
|
|
subq.w #1,d1
|
|
beq.s .oneline
|
|
subq.w #1,d1
|
|
.whiteloop
|
|
add.w d2,d0
|
|
bcc.s .no255b
|
|
move.w #$ffdf,(a0)+
|
|
move.w d3,(a0)+
|
|
.no255b
|
|
move.b #$3f,d0
|
|
move.w d0,(a0)+
|
|
move.w d3,(a0)+
|
|
;sub.w #128*2,d6
|
|
sub.w d2,d6
|
|
bpl.s .cont
|
|
.again
|
|
addq.w #2,d5
|
|
add.w d4,d6
|
|
bmi.s .again
|
|
.cont
|
|
COPRMOVE (a2,d5.w),color
|
|
move.b #$3f+(STHAM_WIDTH/2),d0
|
|
move.w d0,(a0)+
|
|
move.w d3,(a0)+
|
|
COPIMOVE $0000,color
|
|
dbra d1,.whiteloop
|
|
move.b #$07,d0
|
|
|
|
.oneline
|
|
add.w d2,d0
|
|
bcc.s .no255e
|
|
move.w #$ffdf,(a0)+
|
|
move.w d3,(a0)+
|
|
.no255e
|
|
move.w d0,(a0)+
|
|
move.w d3,(a0)+
|
|
;COPIMOVE $0000,color
|
|
|
|
.nextbar
|
|
cmp.w #STHAM_HEIGHT,bd_YPos(a1)
|
|
bge.s .done
|
|
COPIMOVE $6a00,bplcon0
|
|
moveq.l #BAR_HEIGHT,d6
|
|
bra.s .barloop
|
|
.done
|
|
move.l d3,(a0)+
|
|
rts
|
|
.lastbar
|
|
lea sth_bar_gradient(pc),a2
|
|
move.w d1,d7
|
|
subq.w #1,d7
|
|
moveq.l #0,d5
|
|
bra.s .allloop
|
|
.allempty
|
|
lea sth_bar_gradient(pc),a2
|
|
COPIMOVE $0200,bplcon0
|
|
move.w d4,d5
|
|
neg.w d5
|
|
add.w d5,d5
|
|
move.w #STHAM_HEIGHT-1,d7
|
|
.allloop
|
|
COPRMOVE (a2,d5.w),color
|
|
add.w d2,d0
|
|
bcc.s .no255c
|
|
move.w #$ffdf,(a0)+
|
|
move.w d3,(a0)+
|
|
.no255c
|
|
move.w d0,(a0)+
|
|
move.w d3,(a0)+
|
|
addq.w #2,d5
|
|
dbra d7,.allloop
|
|
|
|
move.l d3,(a0)+
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_create_simple_copperlist:
|
|
move.l pd_CurrCopListPtr(a6),a0
|
|
COPIMOVE DMAF_SPRITE,dmacon ; disable sprite dma
|
|
|
|
move.l pd_CurrPlanesPtr(a6),d0
|
|
moveq.l #6-1,d7
|
|
move.w #bplpt,d1
|
|
moveq.l #(STHAM_WIDTH)/8,d2
|
|
.bplloop
|
|
move.w d1,(a0)+
|
|
swap d0
|
|
move.w d0,(a0)+
|
|
addq.w #2,d1
|
|
|
|
move.w d1,(a0)+
|
|
swap d0
|
|
move.w d0,(a0)+
|
|
addq.w #2,d1
|
|
|
|
add.l d2,d0
|
|
dbra d7,.bplloop
|
|
|
|
COPIMOVE $6a00,bplcon0
|
|
|
|
moveq.l #-2,d3
|
|
move.l d3,(a0)+
|
|
rts
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
sth_create_curtain_copperlist:
|
|
move.l pd_CurrCopListPtr(a6),a0
|
|
move.l a0,a2
|
|
|
|
COPIMOVE DMAF_SPRITE,dmacon ; disable sprite dma
|
|
|
|
COPIMOVE ($6<<8)|(0<<2)|(1<<1),spr+0*sd_SIZEOF+sd_ctl
|
|
COPIMOVE ($6<<8)|(0<<2)|(1<<1),spr+1*sd_SIZEOF+sd_ctl
|
|
COPIMOVE ($6<<8)|(0<<2)|(1<<1),spr+2*sd_SIZEOF+sd_ctl
|
|
COPIMOVE ($6<<8)|(0<<2)|(1<<1),spr+3*sd_SIZEOF+sd_ctl
|
|
COPIMOVE ($6<<8)|(0<<2)|(1<<1),spr+4*sd_SIZEOF+sd_ctl
|
|
COPIMOVE ($6<<8)|(0<<2)|(1<<1),spr+5*sd_SIZEOF+sd_ctl
|
|
COPIMOVE ($6<<8)|(0<<2)|(1<<1),spr+6*sd_SIZEOF+sd_ctl
|
|
COPIMOVE ($6<<8)|(0<<2)|(1<<1),spr+7*sd_SIZEOF+sd_ctl
|
|
|
|
COPIMOVE %0000000000000000,spr+0*sd_SIZEOF+sd_dataB
|
|
COPIMOVE %0000000000000000,spr+1*sd_SIZEOF+sd_dataB
|
|
COPIMOVE %0010110111111111,spr+2*sd_SIZEOF+sd_dataB
|
|
COPIMOVE %0001011011111111,spr+3*sd_SIZEOF+sd_dataB
|
|
COPIMOVE %0010110111111111,spr+4*sd_SIZEOF+sd_dataB
|
|
COPIMOVE %0001011011111111,spr+5*sd_SIZEOF+sd_dataB
|
|
COPIMOVE %1110110100000000,spr+6*sd_SIZEOF+sd_dataB
|
|
COPIMOVE %1111011010000000,spr+7*sd_SIZEOF+sd_dataB
|
|
|
|
COPIMOVE %1111111111111111,spr+0*sd_SIZEOF+sd_dataa
|
|
COPIMOVE %1111111111111111,spr+1*sd_SIZEOF+sd_dataa
|
|
COPIMOVE %1101001001011011,spr+2*sd_SIZEOF+sd_dataa
|
|
COPIMOVE %1110100100101101,spr+3*sd_SIZEOF+sd_dataa
|
|
COPIMOVE %1101001001011011,spr+4*sd_SIZEOF+sd_dataa
|
|
COPIMOVE %1110100100101101,spr+5*sd_SIZEOF+sd_dataa
|
|
COPIMOVE %1100100000100010,spr+6*sd_SIZEOF+sd_dataa
|
|
COPIMOVE %1110010000010001,spr+7*sd_SIZEOF+sd_dataa
|
|
|
|
move.l pd_CurrPlanesPtr(a6),d0
|
|
moveq.l #6-1,d7
|
|
move.w #bplpt,d1
|
|
moveq.l #(STHAM_WIDTH)/8,d2
|
|
.bplloop
|
|
move.w d1,(a0)+
|
|
swap d0
|
|
move.w d0,(a0)+
|
|
addq.w #2,d1
|
|
|
|
move.w d1,(a0)+
|
|
swap d0
|
|
move.w d0,(a0)+
|
|
addq.w #2,d1
|
|
|
|
add.l d2,d0
|
|
dbra d7,.bplloop
|
|
|
|
COPIMOVE $6a00,bplcon0
|
|
|
|
moveq.l #-2,d3
|
|
move.w #$5237,d0
|
|
move.w #$100,d2
|
|
|
|
move.w #$51d7,(a0)+
|
|
move.w d3,(a0)+
|
|
|
|
move.l a0,d1
|
|
sub.l a2,d1
|
|
add.w #8*4+4,d1
|
|
move.w d1,pd_CopperChunkyOffset(a6)
|
|
|
|
move.w #BENTSPRITE_HEIGHT-1,d7
|
|
.cprloop
|
|
|
|
COPIMOVE ($50<<8)|(64-32),spr+0*sd_SIZEOF+sd_pos
|
|
COPIMOVE ($50<<8)|(64-32),spr+1*sd_SIZEOF+sd_pos
|
|
COPIMOVE ($50<<8)|(64-32),spr+2*sd_SIZEOF+sd_pos
|
|
COPIMOVE ($50<<8)|(64-32),spr+3*sd_SIZEOF+sd_pos
|
|
COPIMOVE ($50<<8)|(64-32),spr+4*sd_SIZEOF+sd_pos
|
|
COPIMOVE ($50<<8)|(64-32),spr+5*sd_SIZEOF+sd_pos
|
|
COPIMOVE ($50<<8)|(64-32),spr+6*sd_SIZEOF+sd_pos
|
|
COPIMOVE ($50<<8)|(64-32),spr+7*sd_SIZEOF+sd_pos
|
|
|
|
move.w d0,(a0)+
|
|
move.w d3,(a0)+
|
|
add.w d2,d0
|
|
|
|
move.l #$1fe<<16,d1
|
|
REPT CURTAIN_WIDTH
|
|
move.l d1,(a0)+
|
|
ENDR
|
|
|
|
dbra d7,.cprloop
|
|
|
|
move.l d3,(a0)+
|
|
rts
|
|
|
|
;********************************************************************
|
|
|
|
sth_scrolltext:
|
|
;dc.b "HAMPHREY B IS REALLY LOOKING HAMAZING TODAY"
|
|
dc.b "HAMAZING IT EVEN IMPRESSES HAMPHREY BOGART"
|
|
dc.b " "
|
|
dc.b 0
|
|
even
|
|
|
|
sth_curtainsines:
|
|
incbin "data/stham/curtainsine.bin"
|
|
|
|
sth_hamphrey_palette:
|
|
include "data/stham/PLT_HAMph_path_2_test08b_ham.pal.asm"
|
|
|
|
; https://gradient-blaster-grahambates.vercel.app/?points=cff@0,09a@171&steps=256&blendMode=oklab&ditherMode=errorDiffusion&target=amigaOcs&ditherAmount=55
|
|
sth_scroller_gradient:
|
|
dc.w $cff,$dff,$cff,$cff,$cff,$cff,$cff,$cff
|
|
dc.w $cff,$cfe,$cff,$cff,$cfe,$cff,$bee,$cff
|
|
dc.w $cee,$bff,$bef,$cff,$aef,$bff,$aef,$bff
|
|
dc.w $aff,$bee,$aef,$bee,$bef,$aee,$aef,$bee
|
|
dc.w $aee,$aee,$aee,$aee,$aee,$aee,$aee,$ade
|
|
dc.w $aee,$aee,$aee,$aee,$ade,$9ee,$ade,$aee
|
|
dc.w $9de,$aee,$9dd,$ade,$9dd,$ade,$9dd,$aee
|
|
dc.w $9dd,$9dd,$9dd,$9de,$9dd,$9dd,$9dd,$9dd
|
|
dc.w $9dd,$9dd,$9dd,$9dd,$9cd,$9dd,$9cd,$9dd
|
|
dc.w $8dd,$8cd,$8dd,$7cd,$8dd,$8cd,$7dd,$8cd
|
|
dc.w $7cd,$8cd,$7cd,$7cd,$8cd,$7cd,$7cc,$7cd
|
|
dc.w $7cd,$7cd,$7cd,$7cc,$7cd,$7cc,$7cc,$7cd
|
|
dc.w $7cc,$7cc,$7bc,$6cc,$7bc,$7cc,$7bc,$7cc
|
|
dc.w $6bc,$7bc,$6cc,$7cc,$6bc,$7bc,$6bc,$6bb
|
|
dc.w $6bc,$6bc,$7bc,$7bc,$6bb,$6bc,$6bb,$6bc
|
|
dc.w $6bb,$6bc,$6ab,$6bb,$6bb,$5ab,$5bc,$5bb
|
|
dc.w $5ab,$5bb,$4ac,$4bb,$4ac,$4bb,$4ab,$4ab
|
|
dc.w $4ac,$4bb,$4ab,$4ab,$4ab,$4ab,$3ab,$4ab
|
|
dc.w $4ab,$4ab,$3ab,$4ab,$4ab,$3ab,$4ab,$3ab
|
|
dc.w $39a,$3ab,$3aa,$3ab,$3aa,$39b,$3aa,$39b
|
|
dc.w $39b,$3aa,$39a,$3ab,$29a,$39a,$29a,$39a
|
|
dc.w $39a,$29a,$29a,$09a,$09a,$09a,$09a,$09a
|
|
dc.w $09a,$09a,$09a,$09a,$09a
|
|
|
|
; https://gradient-blaster-grahambates.vercel.app/?points=000@0,719@64,fff@255&steps=256&blendMode=oklab&ditherMode=shuffle&target=amigaOcs&shuffleCount=2
|
|
sth_bar_gradient:
|
|
dc.w $000,$000,$000,$000,$000,$000,$000,$000
|
|
dc.w $000,$000,$101,$000,$101,$001,$101,$001
|
|
dc.w $102,$101,$102,$101,$102,$101,$203,$102
|
|
dc.w $203,$202,$203,$202,$203,$304,$203,$304
|
|
dc.w $204,$304,$204,$405,$304,$405,$304,$405
|
|
dc.w $304,$405,$405,$406,$405,$516,$406,$516
|
|
dc.w $406,$517,$506,$517,$507,$517,$507,$608
|
|
dc.w $618,$608,$618,$608,$709,$608,$719,$709
|
|
dc.w $709,$719,$719,$729,$719,$729,$719,$82a
|
|
dc.w $719,$82a,$729,$82a,$729,$83a,$73a,$83a
|
|
dc.w $83a,$83a,$83a,$83a,$83a,$83a,$83a,$84a
|
|
dc.w $83a,$84a,$83a,$84a,$83a,$84a,$84a,$84a
|
|
dc.w $84a,$95a,$84a,$95a,$84b,$95a,$84b,$95b
|
|
dc.w $95a,$95b,$95a,$95b,$95a,$95b,$95b,$96b
|
|
dc.w $95b,$96b,$95b,$96b,$95b,$96b,$96b,$a6b
|
|
dc.w $96b,$a6b,$96b,$a6b,$96b,$a6b,$a6b,$a7c
|
|
dc.w $a6b,$a7c,$a7b,$a7c,$a7b,$a7c,$a7b,$a7c
|
|
dc.w $a7c,$a7c,$a7c,$b8c,$a7c,$b8c,$a7c,$b8c
|
|
dc.w $a7c,$a8c,$b8c,$b8c,$b8c,$b8c,$b8c,$b8c
|
|
dc.w $b8c,$b8c,$b8c,$b9d,$b8c,$b9d,$b8c,$b9d
|
|
dc.w $b8c,$b9d,$b9d,$b9d,$b9c,$b9d,$c9d,$cad
|
|
dc.w $c9d,$cad,$c9d,$cad,$c9d,$cad,$cad,$cad
|
|
dc.w $cad,$cad,$cad,$cad,$cad,$cad,$cad,$dbd
|
|
dc.w $cad,$dbd,$cad,$dbe,$cad,$dbe,$dbd,$dbe
|
|
dc.w $dbd,$dbe,$dbe,$dce,$dbe,$dce,$dbe,$dce
|
|
dc.w $dbe,$dce,$dce,$dce,$dce,$dce,$dce,$dce
|
|
dc.w $dce,$dce,$ece,$dce,$ede,$ece,$ede,$dce
|
|
dc.w $ede,$dce,$ede,$ede,$edf,$ede,$edf,$ede
|
|
dc.w $edf,$ede,$edf,$eef,$edf,$eef,$edf,$eef
|
|
dc.w $edf,$eef,$fef,$eef,$fef,$fef,$fef,$fef
|
|
dc.w $fff,$fef,$fff,$fef,$fff,$fef,$fff,$fff
|
|
dc.w $fff,$fff,$fff,$fff,$fff,$fff,$fff,$fff
|
|
|
|
blk.w 180,$fff
|
|
|
|
sth_midbar_gradient:
|
|
; https://gradient-blaster-grahambates.vercel.app/?points=000@0,578@35,fff@43,984@52,000@128&steps=256&blendMode=oklab&ditherMode=blueNoise&target=amigaOcs&ditherAmount=82
|
|
dc.w $000,$000,$000,$000,$000,$000,$010,$001
|
|
dc.w $011,$011,$011,$112,$111,$122,$122,$223
|
|
dc.w $222,$233,$233,$234,$243,$234,$334,$245
|
|
dc.w $344,$345,$355,$455,$356,$466,$457,$567
|
|
dc.w $467,$568,$567,$578,$789,$79a,$8aa,$acc
|
|
dc.w $bcc,$cde,$efe,$fff,$efe,$edd,$ddb,$dcb
|
|
dc.w $cb9,$cb8,$a96,$a95,$984,$984,$984,$983
|
|
dc.w $874,$884,$873,$883,$873,$773,$863,$774
|
|
dc.w $763,$773,$663,$763,$763,$662,$662,$653
|
|
dc.w $652,$663,$553,$653,$652,$652,$542,$652
|
|
dc.w $542,$542,$541,$542,$541,$442,$432,$442
|
|
dc.w $431,$431,$431,$431,$321,$331,$331,$331
|
|
dc.w $221,$321,$320,$221,$321,$220,$220,$221
|
|
dc.w $211,$111,$210,$211,$110,$110,$110,$110
|
|
dc.w $100,$111,$100,$100,$010,$000,$000,$100
|
|
dc.w $000,$000,$000,$000,$000,$000,$000,$000
|
|
|
|
sth_sprite_xpos:
|
|
; XPos
|
|
dc.b 77,74,70,68,64,62,60,58,56,53,52,50,49,48,46,45
|
|
dc.b 44,43,42,41,39,39,38,37,36,35,34,33,33,32,32,31
|
|
dc.b 30,30,29,29,28,27,27,26,26,25,25,24,24,23,23,22
|
|
dc.b 22,22,21,21,21,20,20,20,19,19,19,19,18,18,18,18
|
|
dc.b 18,17,17,17,17,17,17,16,16,16,16,16,16,16,16,16
|
|
dc.b 16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16
|
|
dc.b 17,17,17,17,17,17,18,18,18,19,19,19,19,20,20,21
|
|
dc.b 21,22,22,23,23,24,24,25,25,26,27,27,28,29,29,30
|
|
dc.b 31,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46
|
|
dc.b 48,49,50,52,54,55,56,57,60,62,63,65,67,68,71,73
|
|
dc.b 75,77,80,82,84,86,88,90,93,96,99,101,104,107,110,113
|
|
dc.b 116,119,122,125,128
|
|
|
|
sth_sprite_widths:
|
|
; Width (49 at 90, 81 at 144)
|
|
dc.b 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 ; 0
|
|
dc.b 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33 ; 16
|
|
dc.b 33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36 ; 32
|
|
dc.b 36,36,37,37,37,37,38,38,38,38,38,39,39,39,40,40 ; 48
|
|
dc.b 40,40,41,41,41,42,42,42,42,43,43,43,44,44,44,45 ; 64
|
|
dc.b 45,45,46,46,46,47,47,47,48,48,48,49,49,50,50,50 ; 80
|
|
dc.b 51,51,52,52,52,53,53,54,54,55,55,56,56,57,57,58 ; 96
|
|
dc.b 58,59,59,60,60,61,61,62,62,63,64,64,65,66,66,67 ; 112
|
|
dc.b 68,68,69,69,70,71,72,72,73,74,75,76,76,77,78,79 ; 128
|
|
dc.b 80,81,82,83,84,85,86,87,88,89,90,91,92,93,95,96 ; 144
|
|
dc.b 97,98,100,101,102,104,105,106,107,109,111,112,114,116,117,119
|
|
dc.b 121,123,125,126,128
|
|
|
|
sth_sprite_y_offsets:
|
|
dc.w 0 ; 16
|
|
dc.w 0 ; 32
|
|
dc.w 31 ; 48
|
|
dc.w 90 ; 64
|
|
dc.w 124 ; 80
|
|
dc.w 144 ; 96
|
|
dc.w 160 ; 112
|
|
dc.w 172 ; 128
|
|
|
|
sth_font_data:
|
|
; Font
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11202022
|
|
dc.l $33226266,$7766e6ee,$776eeeee,$776eeeee,$776eeeee,$776eeeee,$574eeeee,$556eaaaa,$466e2a2a,$6666222a,$6666224c,$6666204c,$6666444c,$6664444c,$6644444c,$4444444c
|
|
dc.l $4444444c,$44444488,$44444888,$44448888,$44088888,$44088888,$00088888,$00088888,$00088800,$00088000,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$33666666,$77666666
|
|
dc.l $776644ee,$7744ccee,$754cccee,$754cccee,$754c8cee,$75088cee,$31088cee,$31088cee,$31088eee,$3108aeee,$332aaeee,$322aaeee,$222aaeee,$222aeeee,$222aeecc,$626eeecc
|
|
dc.l $666ecccc,$464cccc8,$444ccc88,$444ccc88,$444ccc88,$444c8888,$444c8888,$44008888,$00000808,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00202220,$32222222,$32222266,$33226666,$33666666,$33666666
|
|
dc.l $77666666,$77466666,$554446ee,$554446aa,$55440aaa,$55008aaa,$55008aaa,$51008aaa,$11088aaa,$00088aaa,$00088a88,$00088888,$00088888,$00088888,$40088888,$40088888
|
|
dc.l $44488888,$444c8888,$444c8888,$44488888,$44008888,$44000888,$40000008,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$33666666,$77666666
|
|
dc.l $776646ee,$7744ceee,$554cceee,$554cceaa,$554c8aaa,$55088aaa,$11088aaa,$11088aaa,$11088aaa,$1108aaaa,$1008aaaa,$100aaaaa,$002aaaaa,$222aaaaa,$222aaaec,$622aeecc
|
|
dc.l $666eeecc,$666ecccc,$666ccccc,$664ccccc,$444ccccc,$4444cc88,$44440888,$00000008,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$33666666,$77666666
|
|
dc.l $776646ee,$7744ceee,$754cceee,$754cceee,$754c8eee,$75088eee,$31088eee,$31088eee,$31088eee,$31088eee,$31088eee,$31088eee,$00088eee,$00088e88,$00088888,$00088888
|
|
dc.l $00088888,$00088888,$00088888,$00088888,$00088888,$00088888,$00088888,$00088888,$00088888,$00088800,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$33666666,$77666666
|
|
dc.l $776646ee,$7744ceee,$754cceee,$754cceee,$754c8eee,$75088eee,$31088eee,$31088e66,$31080666,$31000666,$31000666,$11000666,$11000622,$11000222,$11000222,$11000222
|
|
dc.l $00000222,$00000200,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00202220,$32222222,$32222266,$33226666,$33666666,$33666666
|
|
dc.l $77666666,$7746666e,$554446ee,$554446aa,$55440aaa,$55008aaa,$55008aaa,$51008aaa,$11008aaa,$11088aaa,$000888cc,$0008cccc,$0008cccc,$0008cccc,$0008cccc,$0008cccc
|
|
dc.l $0008cccc,$404ccccc,$444ccccc,$444ccccc,$44cccccc,$44cccc88,$44cc8888,$44888888,$00888888,$00888800,$00880000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$22666666,$66666644
|
|
dc.l $666644cc,$6644cccc,$664ccccc,$664ccccc,$664ccccc,$6608cccc,$2208cccc,$2208cc44,$22084444,$33004444,$33004466,$33006666,$33226666,$33226666,$33226666,$33226666
|
|
dc.l $22666666,$66666644,$666644cc,$6644cccc,$444ccccc,$444ccc88,$444c8888,$44088888,$00088888,$00088800,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11000022,$11000022,$11000022,$11000022,$11000022,$11000022
|
|
dc.l $11000022,$110000a2,$1100aaa2,$112aaaa2,$332aaaa2,$332aaae6,$332aeee6,$336eeee6,$776eeee6,$776eccee,$774cccee,$554cccee,$554cccaa,$554c88aa,$550888aa,$110888aa
|
|
dc.l $000888a2,$00088880,$00088880,$00088880,$00088880,$00088880,$00088880,$00088880,$00088880,$00088800,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00400000,$44400000
|
|
dc.l $44400008,$44400088,$44400888,$44408888,$44408888,$44008888,$44088888,$40088888,$00188888,$11188888,$111888aa,$1118aaaa,$113aaaaa,$333aaaaa,$333aaaee,$332aeeee
|
|
dc.l $626eeeee,$666eeecc,$666ecccc,$664ccccc,$444ccccc,$444ccc88,$44448888,$44000888,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$22666666,$66666644
|
|
dc.l $666644cc,$6644cccc,$644ccccc,$666ccccc,$666eeccc,$666eeeec,$766eeeee,$376eee66,$332e6666,$33226666,$33266666,$33666666,$15466666,$55444666,$5544440a,$45444488
|
|
dc.l $44440888,$44448888,$44088888,$44088888,$00088888,$00088888,$00088800,$00088800,$00080000,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$22666666,$66666644
|
|
dc.l $666644cc,$6644cccc,$444ccccc,$444ccc88,$444c8888,$44088888,$40088888,$40088888,$40088888,$40088888,$40088888,$40088888,$40088888,$40088888,$40088888,$40088888
|
|
dc.l $40088888,$40088888,$40088888,$40088888,$40088888,$40088888,$40088888,$40088888,$40088888,$00088888,$00088800,$00080000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$33666666,$77666666
|
|
dc.l $764466ee,$4466eeee,$446eee88,$666eaa88,$662a888c,$222888cc,$3208cc44,$31286666,$33666666,$37666666,$37666666,$37666666,$15446626,$15222222,$33222222,$33222266
|
|
dc.l $22226666,$22666644,$66664444,$664444cc,$4444cccc,$444ccc88,$444c8888,$44088888,$00088888,$00088800,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$32666666,$66666666
|
|
dc.l $666666ee,$6666eeec,$666eeecc,$666eeecc,$666ea8cc,$662a8ccc,$222acccc,$2228cc44,$220c4444,$22444444,$31444444,$15444466,$55446666,$55666662,$7766662a,$776666ee
|
|
dc.l $666666ee,$66666ecc,$6666cccc,$6644cccc,$444ccccc,$444ccc88,$444c8888,$44088888,$00088888,$00088800,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00202220,$32222222,$32222266,$33226666,$33666666,$37666666
|
|
dc.l $77666666,$7746666e,$554446ee,$554446aa,$55440aaa,$55008aaa,$55008aaa,$51008aaa,$11088aaa,$1108aaaa,$1008aaaa,$100aaaaa,$002aaaaa,$222aaaaa,$222aaaec,$622aeecc
|
|
dc.l $666eeecc,$666ecccc,$666ccccc,$664ccccc,$4444cccc,$44444c88,$44440008,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$33666666,$77666666
|
|
dc.l $776644ee,$7744ccee,$55ccccee,$55ccccee,$55ccccee,$5588ccee,$1188ccee,$1188cc66,$11884466,$11004466,$11004666,$11006666,$30226666,$32226666,$22226666,$22226666
|
|
dc.l $22226644,$22226644,$22220444,$22000444,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00202220,$32222222,$32222266,$33226666,$33666666,$37666666
|
|
dc.l $77666666,$774666ee,$554446ee,$55444eaa,$55448aaa,$55008aaa,$55008aaa,$51088aaa,$11088aaa,$1108aaaa,$1008aaaa,$100aaaaa,$002aaaaa,$222aaaaa,$222aaaec,$622aeecc
|
|
dc.l $666eeecc,$666ecccc,$666ccccc,$6644cccc,$4444cccc,$4444cc88,$444c8888,$04888888,$00888880,$08888800,$00088800,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$33666666,$77666666
|
|
dc.l $776644ee,$7744ccee,$554cccee,$554cccee,$554cccee,$5508ccee,$1108ccee,$1108cc66,$11084666,$11006666,$31266666,$32666666,$22666666,$26666666,$66666644,$6666664c
|
|
dc.l $666644cc,$66440ccc,$44448888,$44488888,$44088888,$40088888,$00088888,$00088880,$00088800,$00088000,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$10002222,$10222222,$13222222,$33222222,$33622222,$77622226
|
|
dc.l $7762222e,$776202ee,$776008ee,$774088ee,$774088ee,$770088ee,$730888ee,$330888ee,$330888ee,$220888ee,$220888cc,$220888cc,$220888cc,$220888cc,$22088ccc,$2008cccc
|
|
dc.l $604ccccc,$644ccccc,$444ccccc,$444ccccc,$444ccc88,$444ccc88,$44448888,$44000888,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11000222,$11000222,$11000222,$11000222,$11000222,$11000222,$11000222
|
|
dc.l $11000222,$11000222,$11002222,$11222222,$33222222,$33222266,$33226666,$33666666,$77666666,$776666ee,$7744eeee,$554ceeee,$554ceeaa,$554caaaa,$5508aaaa,$1108aaaa
|
|
dc.l $0008aa22,$00082200,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$33226666,$22666666,$26666644
|
|
dc.l $66664444,$6644444c,$444444cc,$44444488,$44440888,$44008888,$44008888,$40008888,$00088888,$11088888,$110888aa,$1108aaaa,$112aaaaa,$332aaaaa,$332aaaee,$732aeeee
|
|
dc.l $666eeeee,$666eeecc,$666ecccc,$664ccccc,$444ccccc,$4444cc88,$44440888,$04000008,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000002,$11000022,$11000222,$11002222,$11022222,$11222222,$32222222,$22222222
|
|
dc.l $22222244,$22222244,$22224444,$22244444,$22444444,$04444444,$44444444,$44444488,$54444088,$5564aaaa,$7762eaee,$776eeeee,$776eeeee,$776eeeee,$776eeeee,$776eeeee
|
|
dc.l $664ecece,$040c8888,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11002222,$11222222,$33222222,$33222266,$22226666,$22666644,$66664444
|
|
dc.l $664444cc,$4444cccc,$444ccc88,$444c8888,$642a8888,$626acccc,$666ecccc,$666ecccc,$666ecccc,$664ccccc,$3108cccc,$114c4466,$11446622,$55666622,$776622aa,$776222ee
|
|
dc.l $6622eeee,$626eeecc,$666ecccc,$664ccccc,$444ccccc,$444ccc88,$444c8888,$44088888,$00088888,$00088800,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$01000000,$11000000,$11000002,$11000022,$11000222,$11002222,$11022222,$10222222
|
|
dc.l $02222222,$22222220,$22222204,$666eeccc,$666ecccc,$666ccccc,$664ccccc,$766cecec,$776eeeee,$776eeeee,$33266666,$33666666,$33666666,$77666666,$47464606,$44444488
|
|
dc.l $44440088,$44448888,$44008888,$44088888,$00088888,$00088888,$00088800,$00088800,$00080000,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$01000000,$11000000,$11000002,$11000022,$11000222,$11002222,$11022222,$10222222,$02222222
|
|
dc.l $22222220,$22222204,$22222044,$22220444,$22204444,$22044444,$20444444,$04444444,$74646464,$776666ee,$7766eeee,$776eeeee,$776eeeee,$776eeeee,$776eeeee,$070e8e8e
|
|
dc.l $00088800,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$11000000,$11000022,$11000022,$11000022,$11000022,$11000022,$11000022,$510000aa
|
|
dc.l $554088aa,$554cc8aa,$554cccea,$754cccee,$776cccee,$776eecee,$776eeeee,$776eeeee,$376eeeee,$332eeeee,$332aaeee,$332aaaae,$132aaaaa,$110aaaaa,$00088aaa,$00088888
|
|
dc.l $00088888,$00088888,$00088888,$00088888,$00088888,$00088888,$00088888,$00088888,$00088888,$00088800,$00080000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
|
|
;********************************************************************
|
|
|
|
;--------------------------------------------------------------------
|
|
|
|
section "sth_copper",data,chip
|
|
|
|
sth_copperlist:
|
|
COP_MOVE dmacon,DMAF_BLITHOG ; disable blitter hogging to avoid interrupt latency
|
|
COP_MOVE diwstrt,$5281 ; window start
|
|
COP_MOVE diwstop,$06c1 ; window stop
|
|
COP_MOVE ddfstrt,$0038 ; bitplane start
|
|
sth_ddfstop:
|
|
COP_MOVE ddfstop,$00d0 ; bitplane stop
|
|
|
|
COP_MOVE bplcon3,$0c00
|
|
sth_fmode:
|
|
COP_MOVE fmode,$0000 ; fixes the aga modulo problem
|
|
|
|
COP_MOVE bplcon0,$0200
|
|
COP_MOVE bplcon1,$0000
|
|
COP_MOVE bplcon2,$0024 ; turn off all bitplanes, set scroll values to 0, sprites in front
|
|
COP_MOVE bpl1mod,((STHAM_WIDTH*2)*STHAM_PLANES-STHAM_WIDTH)/8
|
|
COP_MOVE bpl2mod,((STHAM_WIDTH*2)*STHAM_PLANES-STHAM_WIDTH)/8
|
|
|
|
sth_extra_copperlist_ptr:
|
|
COP_MOVE cop2lc,0
|
|
COP_MOVE cop2lc+2,0
|
|
COP_MOVE $1fe,0
|
|
COP_END
|
|
|
|
; Bitmap 1 (y offset = 30)
|
|
sth_scroller_shift_1_bitmap:
|
|
dc.w $0,$7fff,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$7f,$803f,$8000,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $380,$3fc3,$c000,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$403,$c1fc,$e000,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$80c,$1e3f,$3000,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$30,$e1c7,$d800,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $1043,$e39,$e400,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$84,$31ce,$7a00,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$108,$c633,$9d00,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $11,$18cc,$ee80,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $2222,$2333,$3300,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$4,$44cc,$ddc0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $40,$8933,$66e0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$409,$124c,$9b30,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $90,$2493,$64d8,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$2,$4924,$9b6c,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $4,$9249,$25b6,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $120,$492,$da4b,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$1,$2125,$25b5,$8000,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$808,$484a,$4a5a,$4000,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $42,$1290,$94a5,$a000,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$8425,$295a,$d000,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $210,$210a,$52a5,$2800,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $4,$850,$a54a,$d400,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $81,$285,$a95,$2a00,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$5028,$542a,$d500,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $20,$502,$a155,$2a80,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $a,$54,$aa8,$5540,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$a801,$5502,$aaa0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$2aa,$55,$5550,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$aaaa,$aaa8,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$5555,$5555,$5555,$5555,$0,$0,$0,$0
|
|
dc.w $0,$0,$2aaa,$aaaa,$8000,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $0,$aa,$8005,$5555,$4000,$0,$0,$0,$0,$2a00,$1550,$aaa,$a000,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$2,$8005,$402a,$a055,$5000,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$8,$50,$a81,$550a,$a800,$0,$0,$0
|
|
dc.w $0,$500,$a054,$aa5,$5400,$0,$0,$0,$20,$100a,$502,$a150,$aa00,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0,$0,$0,$0,$0,$4020,$5028,$542a,$5500,$0,$0,$0
|
|
dc.w $81,$81,$285,$a85,$a80,$0,$0,$0,$0,$204,$850,$a152,$a540,$0,$0,$0
|
|
dc.w $4,$810,$a102,$1428,$52a0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
dc.w $200,$2042,$428,$4285,$2850,$0,$0,$0,$0,$108,$1085,$852,$9528,$0,$0,$0
|
|
dc.w $10,$8000,$4210,$a528,$4294,$0,$0,$0,$0,$421,$842,$1085,$294a,$0,$0,$0
|
|
dc.w $0,$84,$2108,$4212,$94a5,$0,$0,$0,$2,$1000,$8421,$948,$4252,$8000,$0,$0
|
|
dc.w $40,$210,$1084,$2421,$2909,$4000,$0,$0,$0,$4002,$210,$9094,$84a4,$a000,$0,$0
|
|
dc.w $0,$40,$4042,$4242,$5252,$5000,$0,$0,$808,$808,$809,$909,$909,$800,$0,$0
|
|
dc.w $0,$101,$120,$2424,$24a4,$a400,$0,$0,$1,$20,$2404,$8090,$9212,$5200,$0,$0
|
|
dc.w $0,$2004,$90,$1242,$4849,$2900,$0,$0,$100,$400,$9002,$4809,$2124,$8480,$0,$0
|
|
dc.w $0,$90,$248,$124,$492,$5240,$0,$0,$20,$2,$4001,$2480,$9249,$920,$0,$0
|
|
dc.w $4,$0,$924,$12,$4924,$2490,$0,$0,$0,$9249,$2492,$9249,$2492,$4920,$0,$0
|
|
dc.w $0,$0,$0,$4924,$9249,$2492,$0,$0,$0,$0,$0,$2492,$4924,$9249,$0,$0
|
|
dc.w $0,$24,$9249,$0,$12,$4924,$8000,$0,$2,$4900,$124,$9248,$9249,$2449,$0,$0
|
|
dc.w $10,$0,$4800,$924,$124,$9204,$9000,$0,$0,$12,$12,$4002,$4802,$4922,$4800,$0
|
|
dc.w $80,$480,$2481,$2489,$2449,$2249,$1000,$0,$0,$2001,$48,$240,$1204,$9024,$8900,$0
|
|
dc.w $0,$8,$200,$9004,$8120,$4912,$4480,$0,$401,$40,$1004,$120,$4812,$481,$2040,$0
|
|
dc.w $0,$200,$8120,$4891,$2448,$9224,$4900,$0,$8,$1024,$812,$2448,$9122,$4891,$2240,$0
|
|
dc.w $0,$0,$4081,$204,$810,$2448,$9122,$0,$0,$8102,$408,$9122,$4448,$9122,$4448,$0
|
|
dc.w $40,$10,$2244,$891,$1224,$4488,$9122,$0,$0,$801,$20,$4408,$102,$2044,$891,$1000
|
|
dc.w $4,$80,$1102,$2044,$4889,$1112,$2244,$4000,$0,$4008,$8011,$1222,$2444,$4488,$8911,$1000
|
|
dc.w $0,$400,$888,$8111,$1122,$2222,$2444,$4400,$0,$44,$4440,$888,$8888,$9111,$1111,$1100
|
|
dc.w $0,$0,$4,$4444,$0,$888,$8888,$8888,$0,$0,$0,$0,$4444,$4444,$4444,$4444
|
|
|
|
REPT 16
|
|
dc.l 0
|
|
ENDR
|
|
|
|
sth_scroller_shift_2_bitmap:
|
|
; Bitmap 2 (y offset = 157, x = 48, width = 80)
|
|
dc.w $0,$0,$9248,$0,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $1,$2480,$92,$4000,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $10,$90,$490,$2400,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $2,$81,$2048,$9220,$0
|
|
dc.w $0,$204,$102,$488,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $0,$81,$204,$891,$0
|
|
dc.w $0,$2000,$811,$2204,$4000
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $0,$8010,$220,$4408,$8800
|
|
dc.w $0,$0,$8801,$1022,$2200
|
|
dc.w $0,$200,$44,$4088,$8880
|
|
dc.w $0,$11,$0,$222,$2220
|
|
dc.w $0,$0,$0,$0,$0
|
|
dc.w $0,$0,$0,$0,$0
|
|
|
|
IFND FW_DEMO_PART
|
|
sth_hamphrey_pic:
|
|
incbin "data/stham/PLT_HAMph_path_2_test08b_ham.raw"
|
|
ENDC
|
|
|
|
END |