; Framework settings 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 Turbo, 5 = Pretracker Copper 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 = 0 ; 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 = 0 ; 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 = 300 ; max vpos that is considered to be worth switching to a background task, if any 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 = 1 ; enable copper IRQ routine support FW_AUDIO_IRQ_SUPPORT = 0 ; enable audio IRQ support (unimplemented) FW_VBL_MUSIC_IRQ = 0 ; enable calling of VBL based music ticking (disable, if using CIA timing!) FW_BLITTERQUEUE_SUPPORT = 0 ; 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 CHIPMEM_SIZE = 4 FASTMEM_SIZE = 4 ; Raspberry Casket settings PRETRACKER_SUPPORT_V1_5 = 1 PRETRACKER_PARANOIA_MODE = 0 PRETRACKER_DUBIOUS_PITCH_SHIFT_FOR_DELAYED_TRACK = 0 PRETRACKER_KEEP_JUMP_TABLE = 0 PRETRACKER_SONG_END_DETECTION = 0 PRETRACKER_PROGRESS_SUPPORT = 0 PRETRACKER_FASTER_CODE = 1 PRETRACKER_VOLUME_TABLE = 1 PRETRACKER_BUGFIX_CODE = 1 PRETRACKER_DONT_TRASH_REGS = 0 PRETRACKER_COPPER_OUTPUT = 1 DEBUG_DETAIL SET 0 NEWAGE_DEBUG = 1 include "../frameworkng/framework.i" STRUCTURE PartData,fw_SIZEOF ULONG pd_Progress ULONG pd_SamplesSize ULONG pd_StartVHPos ULONG pd_MinClocks ULONG pd_SumClocks ULONG pd_MaxClocks UWORD pd_SumCount STRUCT pd_MyPlayer,pv_SIZEOF STRUCT pd_MySong,sv_SIZEOF LABEL pd_SIZEOF include "../frameworkng/framework.asm" entrypoint: IFNE PRETRACKER_COPPER_OUTPUT lea pld_pretracker_copperlist,a0 move.w #300,d0 bsr pre_PrepareCopperlist move.l d1,(a0) ; terminate copperlist ENDC ;lea pd_MyPlayer(a6),a0 lea pd_MySong(a6),a1 move.l #pretracker_data,a2 PUTMSG 10,<"NewInit songInit %p, %p, %p">,a0,a1,a2 PUSHM a5/a6 bsr pre_SongInit POPM PUTMSG 10,<"Return val %ld">,d0 move.l d0,pd_SamplesSize(a6) CALLFW VSync move.w fw_FrameCounter(a6),d6 lea pd_MyPlayer(a6),a0 move.l #lsp_samples,a1 lea pd_MySong(a6),a2 sub.l a3,a3 PUTMSG 10,<"NewInit playerInit %p, %p, %p">,a0,a1,a2 PUSHM d6/a5/a6 bsr pre_PlayerInit POPM move.w fw_FrameCounter(a6),d1 sub.w d6,d1 PUTMSG 10,<"Return val %ld, Frames: %d">,d0,d1 move.l #100000,pd_MinClocks(a6) lea pld_copperlist,a0 CALLFW SetCopper lea .track_time(pc),a0 move.l a0,fw_CopperIRQ(a6) .loop moveq.l #63,d0 and.w fw_FrameCounter(a6),d0 bne.s .nooutput move.l pd_SumClocks(a6),d0 divu pd_SumCount(a6),d0 PUTMSG 10,<"Min %d Max %d Average %d">,pd_MinClocks(a6),pd_MaxClocks(a6),d0 .nooutput CALLFW VSync bra.s .loop .track_time move.w #$5ff,color(a5) move.l vposr(a5),pd_StartVHPos(a6) PUSHM d1-d7/a0-a6 lea pd_MyPlayer(a6),a0 lea pld_pretracker_copperlist,a1 bsr pre_PlayerTick POPM move.l vposr(a5),d0 move.w #$f6f,color(a5) PUSHM d1-d4 and.l #$1ffff,d0 move.l pd_StartVHPos(a6),d1 and.l #$1ffff,d1 moveq.l #0,d3 move.b d0,d3 lsr.l #8,d0 mulu #227,d0 add.l d3,d0 moveq.l #0,d4 move.b d1,d4 lsr.l #8,d1 mulu #227,d1 add.l d4,d1 PUTMSG 20,<"Startclocks %ld Clocks %ld">,d1,d0 sub.l d1,d0 cmp.l pd_MinClocks(a6),d0 bge.s .nomin move.l d0,pd_MinClocks(a6) .nomin cmp.l pd_MaxClocks(a6),d0 ble.s .nomax move.l d0,pd_MaxClocks(a6) .nomax add.l d0,pd_SumClocks(a6) addq.w #1,pd_SumCount(a6) POPM rts include "../frameworkng/musicplayers/raspberry_casket.asm" ;-------------------------------------------------------------------- section "pld_copper",data,chip pld_copperlist: COP_MOVE diwstrt,$2c81 ; window start COP_MOVE diwstop,$2cc1 ; window stop COP_MOVE ddfstrt,$0038 ; bitplane start COP_MOVE ddfstop,$00d0 ; bitplane stop COP_MOVE bplcon3,$0c00 pld_fmode: COP_MOVE fmode,$0000 ; fixes the aga modulo problem COP_MOVE bplcon0,$0200 COP_MOVE color,$fff ;dc.w $0180,$0fff,$01a2,$0eee,$01a4,$0edd,$01a6,$0e9b ;dc.w $01a8,$0e69,$01aa,$0b78,$01ac,$0d57,$01ae,$0a56 ;dc.w $01b0,$0a34,$01b2,$0934,$01b4,$0923,$01b6,$0612 ;dc.w $01b8,$0211,$01ba,$0000 COP_WAITLINE $80 COP_MOVE intreq,INTF_SETCLR|INTF_COPER COP_WAITRAST $ff,$de pld_pretracker_copperlist COP_END ds.l 36 COP_END ;incbin "../data/pretracker/raspberry_casket64x64.SPR" section "pretracker_data",data pretracker_data: incbin "../data/pretracker/Pink - Plastic Dove (from Coda Intro).prt" section "lsp_samples",data,chip lsp_samples: ds.b 19522 END