Big "squashed" update to latest version of Framework.
- Bugfix: WaitForFrame was completely broken. Now also caters for race-condition that would have waited one extra frame. - Bugfix: InitPart would overwrite innocent memory (reported by Gigabates and Losso) - Bugfix: Palette LERP had wrong bias. - Removed extra paths in include statement, use default include paths instead - Added Raspberry Casket no-jitter background calc mode (FW_MUSIC_PLAYER_CHOICE = 6) - Updated Raspberry Casket to V2.0 presto branch (WIP) - Removed fw_FrameCounterLong, use fw_FrameCounter-2 for debug purposes - Support for blue noise palette LERPing (like in Is Real). Provide your own blue noise table (4 KB), stuff it into fw_BlueNoiseTablePtr, set FW_PALETTE_LERP_SUPPORT to 2 - Music tick routine is now replaceable during runtime (fw_MusicTickRoutine) - Support for softints and audio interrupts - LMB exit can also be disabled dynamically when using FW_LMB_EXIT_SUPPORT = 2 and fw_DisableLMBExit != 0 - Added LSP Micro support and LSP Nano (custom format that uses note pitches instead of periods) - Minor other things
This commit is contained in:
parent
e84afd08e2
commit
9c48c11cd1
@ -93,7 +93,7 @@ DEBUG_DETAIL SET 10
|
||||
|
||||
NEWAGE_DEBUG = 1
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
|
||||
; Chip memory use:
|
||||
@ -341,7 +341,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -369,7 +369,7 @@ entrypoint:
|
||||
CALLFW SetCopper
|
||||
|
||||
IF 1
|
||||
PUTMSG 10,<"%d: Waiting for first pic (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Waiting for first pic (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
.wait
|
||||
CALLFW VSyncWithTask
|
||||
@ -382,7 +382,7 @@ entrypoint:
|
||||
lea pd_SpeedCodeTask(a6),a1
|
||||
CALLFW AddTask
|
||||
|
||||
PUTMSG 10,<"%d: Waiting for third pic (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Waiting for third pic (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
.wait2
|
||||
CALLFW VSyncWithTask
|
||||
@ -557,7 +557,7 @@ bln_init:
|
||||
CALLFW TrackloaderDiskMotorOff
|
||||
ENDC
|
||||
|
||||
PUTMSG 10,<"%d: Prep task done!">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Prep task done!">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
@ -812,7 +812,7 @@ bln_clear_clip_buffers:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_intro:
|
||||
PUTMSG 10,<"%d: Intro (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Intro (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
CALLFW SetBlitterQueueSingleFrame
|
||||
|
||||
bsr bln_clear_db_buffers
|
||||
@ -838,7 +838,7 @@ bln_intro:
|
||||
bsr bln_handle_parts
|
||||
move.w d7,pd_SequenceBlocksLeft(a6)
|
||||
bne.s .noallownext
|
||||
PUTMSG 30,<"%d: Sequence done! (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 30,<"%d: Sequence done! (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #3,pd_AllowLoadLastImage(a6)
|
||||
.noallownext
|
||||
|
||||
@ -874,14 +874,14 @@ bln_intro:
|
||||
cmp.w #2,pd_TCPicsDone(a6)
|
||||
bge.s .nowait
|
||||
|
||||
PUTMSG 10,<"%d: Waiting for 2nd pic (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Waiting for 2nd pic (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
.wait
|
||||
CALLFW VSyncWithTask
|
||||
cmp.w #2,pd_TCPicsDone(a6)
|
||||
blt.s .wait
|
||||
|
||||
.nowait
|
||||
PUTMSG 10,<"%d: Intro B sequence (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Intro B sequence (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
lea bln_b_part_sequence(pc),a0
|
||||
bsr bln_load_part_sequences
|
||||
@ -890,7 +890,7 @@ bln_intro:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_bars:
|
||||
PUTMSG 10,<"%d: Bars (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Bars (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
CALLFW SetBlitterQueueSingleFrame
|
||||
|
||||
@ -927,7 +927,7 @@ bln_bars:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_holes:
|
||||
PUTMSG 10,<"%d: Holes (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Holes (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
CALLFW SetBlitterQueueSingleFrame
|
||||
|
||||
@ -959,7 +959,7 @@ bln_holes:
|
||||
cmp.w #5040+32*6,fw_MusicFrameCount(a6)
|
||||
blt.s .wait
|
||||
|
||||
PUTMSG 10,<"%d: Starting holes (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Starting holes (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
BLTWAIT
|
||||
|
||||
move.w fw_FrameCounter(a6),pd_OldFrameCount(a6)
|
||||
@ -1026,7 +1026,7 @@ bln_holes:
|
||||
rts
|
||||
|
||||
.loadgreetings
|
||||
PUTMSG 10,<"%d: Allow Loading of Image 5 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Allow Loading of Image 5 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #5,pd_AllowLoadLastImage(a6)
|
||||
lea pd_CirclePots(a6),a4
|
||||
lea bln_circle_greetings_scripts(pc),a0
|
||||
@ -1045,7 +1045,7 @@ bln_holes:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_greetings:
|
||||
PUTMSG 10,<"%d: Greetings (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Greetings (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
IFD FW_DEMO_PART
|
||||
lea .loader(pc),a0
|
||||
@ -1084,7 +1084,7 @@ bln_greetings:
|
||||
move.l pd_TrueColorImage2(a6),a0
|
||||
move.l pd_EndLogoBuffer(a6),a1
|
||||
CALLFW DecompressZX0
|
||||
PUTMSG 10,<"%d: Endlogo loaded/decompressed (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Endlogo loaded/decompressed (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
rts
|
||||
|
||||
.endlogofile
|
||||
@ -1219,7 +1219,7 @@ bln_update_copper_list_pointers:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_prepare_circle_speedcode:
|
||||
PUTMSG 10,<"%d: Preparing circle smc">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Preparing circle smc">,fw_FrameCounter-2(a6)
|
||||
lea bln_circleinfo,a4
|
||||
move.l pd_CircleSpeedcodeBuffer(a6),a2
|
||||
move.l a2,a3
|
||||
@ -1273,7 +1273,7 @@ bln_prepare_circle_speedcode:
|
||||
.done
|
||||
suba.l pd_CircleSpeedcodeBuffer(a6),a2
|
||||
add.l a2,a2
|
||||
PUTMSG 10,<"%d: Done %ld bytes">,fw_FrameCounterLong(a6),a2
|
||||
PUTMSG 10,<"%d: Done %ld bytes">,fw_FrameCounter-2(a6),a2
|
||||
CALLFW FlushCaches
|
||||
rts
|
||||
|
||||
@ -1679,7 +1679,7 @@ bln_fade_step_down:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_prepare_circle_masks:
|
||||
PUTMSG 10,<"%d: Preparing circle masks">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Preparing circle masks">,fw_FrameCounter-2(a6)
|
||||
bsr bln_clear_clip_buffers
|
||||
BLTWAIT
|
||||
|
||||
@ -1759,7 +1759,7 @@ bln_prepare_circle_masks:
|
||||
bra.s .rloop
|
||||
|
||||
.done suba.l pd_CircleMasksBuffer(a6),a3
|
||||
PUTMSG 10,<"%d: Done %ld bytes">,fw_FrameCounterLong(a6),a3
|
||||
PUTMSG 10,<"%d: Done %ld bytes">,fw_FrameCounter-2(a6),a3
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
@ -5003,7 +5003,7 @@ bln_greeting_line_update:
|
||||
bra.s bln_update_circle_pot_info
|
||||
.noupdate
|
||||
rts
|
||||
.kill PUTMSG 10,<"%d: Greeting killed (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
.kill PUTMSG 10,<"%d: Greeting killed (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
subq.w #1,pd_GreetingCount(a6)
|
||||
moveq.l #0,d0
|
||||
move.w d0,cp_Radius(a4)
|
||||
@ -5017,7 +5017,7 @@ bln_load_circle_nop:
|
||||
rts
|
||||
|
||||
bln_load_circle_eye_1:
|
||||
PUTMSG 10,<"%d: Load circle eye 1 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load circle eye 1 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #112,cp_CenterPosX(a4)
|
||||
move.w #51,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5043,7 +5043,7 @@ bln_load_circle_eye_1:
|
||||
rts
|
||||
|
||||
bln_load_circle_pos_eye_1_sunset:
|
||||
PUTMSG 10,<"%d: Load circle eye sunset 2 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load circle eye sunset 2 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #112,cp_CenterPosX(a4)
|
||||
move.w #62,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5070,7 +5070,7 @@ bln_load_circle_pos_eye_1_sunset:
|
||||
rts
|
||||
|
||||
bln_load_circle_pos_eye_2:
|
||||
PUTMSG 10,<"%d: Load circle eye 2 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load circle eye 2 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #240,cp_CenterPosX(a4)
|
||||
move.w #126,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5096,7 +5096,7 @@ bln_load_circle_pos_eye_2:
|
||||
rts
|
||||
|
||||
bln_load_circle_pos_eye_2_skin:
|
||||
PUTMSG 10,<"%d: Load circle eye skin (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load circle eye skin (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #240,cp_CenterPosX(a4)
|
||||
move.w #117,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5123,7 +5123,7 @@ bln_load_circle_pos_eye_2_skin:
|
||||
rts
|
||||
|
||||
bln_load_circle_cham_bg_1:
|
||||
PUTMSG 10,<"%d: Load cham bg 1 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load cham bg 1 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #272,cp_CenterPosX(a4)
|
||||
move.w #34,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5149,7 +5149,7 @@ bln_load_circle_cham_bg_1:
|
||||
rts
|
||||
|
||||
bln_load_circle_greets_bg_1:
|
||||
PUTMSG 10,<"%d: Load greets bg 1 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load greets bg 1 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #176,cp_CenterPosX(a4)
|
||||
move.w #75,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5176,7 +5176,7 @@ bln_load_circle_greets_bg_1:
|
||||
|
||||
|
||||
bln_load_circle_greets_bg_2:
|
||||
PUTMSG 10,<"%d: Load greets bg 2 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load greets bg 2 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #128,cp_CenterPosX(a4)
|
||||
move.w #149,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5202,7 +5202,7 @@ bln_load_circle_greets_bg_2:
|
||||
rts
|
||||
|
||||
bln_load_circle_greets_bg_3:
|
||||
PUTMSG 10,<"%d: Load greets bg 3 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load greets bg 3 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #80,cp_CenterPosX(a4)
|
||||
move.w #32,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5228,7 +5228,7 @@ bln_load_circle_greets_bg_3:
|
||||
rts
|
||||
|
||||
bln_load_circle_greets_bg_4:
|
||||
PUTMSG 10,<"%d: Load greets bg 4 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load greets bg 4 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #208,cp_CenterPosX(a4)
|
||||
move.w #28,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5254,7 +5254,7 @@ bln_load_circle_greets_bg_4:
|
||||
rts
|
||||
|
||||
bln_load_circle_greets_bg_5:
|
||||
PUTMSG 10,<"%d: Load greets bg 5 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Load greets bg 5 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #48,cp_CenterPosX(a4)
|
||||
move.w #118,cp_CenterPosY(a4)
|
||||
moveq.l #0,d0
|
||||
@ -5289,7 +5289,7 @@ bln_load_next_greeting:
|
||||
beq.s .reallykill
|
||||
move.w (a0)+,d1
|
||||
move.w (a0)+,d2
|
||||
PUTMSG 10,<"%d: Next greeting at %d,%d Pair: %d">,fw_FrameCounterLong(a6),d0,d1,d2
|
||||
PUTMSG 10,<"%d: Next greeting at %d,%d Pair: %d">,fw_FrameCounter-2(a6),d0,d1,d2
|
||||
move.w d0,cp_CenterPosX(a4)
|
||||
move.w d1,cp_CenterPosY(a4)
|
||||
move.w d2,cp_Pair(a4)
|
||||
@ -5303,7 +5303,7 @@ bln_load_next_greeting:
|
||||
.retry
|
||||
move.l pd_GreetingLinePtr(a6),a0
|
||||
movem.w (a0)+,d0-d4
|
||||
PUTMSG 10,<"%d: Greeting from %d,%d to %d,%d, shift %d">,fw_FrameCounterLong(a6),d0,d1,d2,d3,d4
|
||||
PUTMSG 10,<"%d: Greeting from %d,%d to %d,%d, shift %d">,fw_FrameCounter-2(a6),d0,d1,d2,d3,d4
|
||||
|
||||
move.w d0,cp_FgRelPosX(a4)
|
||||
beq.s .kill
|
||||
@ -5359,21 +5359,21 @@ bln_load_next_greeting:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_reverse_big_circle_to_backward:
|
||||
PUTMSG 10,<"%d: Reversing big circle (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Reversing big circle (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.l #bln_big_circle_rad_backward_update,cp_FrameRoutine(a4)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_reverse_smaller_circle_to_backward:
|
||||
PUTMSG 10,<"%d: Reversing smaller circle (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Reversing smaller circle (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.l #bln_smaller_circle_rad_backward_update,cp_FrameRoutine(a4)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
bln_reverse_small_circle_to_backward:
|
||||
PUTMSG 10,<"%d: Reversing smaller circle (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Reversing smaller circle (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.l #bln_small_circle_rad_backward_update,cp_FrameRoutine(a4)
|
||||
rts
|
||||
|
||||
@ -5598,13 +5598,13 @@ bln_circle_greet6_script:
|
||||
|
||||
dc.w $000 ; is required for true color image decoding
|
||||
bln_images_palette:
|
||||
include "../data/blend/fiveimg_ham.pal.asm"
|
||||
include "data/blend/fiveimg_ham.pal.asm"
|
||||
|
||||
bln_leaves_tc_10:
|
||||
incbin "../data/blend/leavestc_10.raw"
|
||||
incbin "data/blend/leavestc_10.raw"
|
||||
|
||||
bln_endlogo_palette:
|
||||
include "../data/blend/PLT_DSRLogo01c_ham.pal.asm"
|
||||
include "data/blend/PLT_DSRLogo01c_ham.pal.asm"
|
||||
|
||||
dc.l 0
|
||||
bln_circlerads:
|
||||
@ -5718,32 +5718,32 @@ bln_circleinfo:
|
||||
dc.w 0
|
||||
|
||||
bln_andyou_image:
|
||||
incbin "../data/blend/andyou_128x92x2.BPL"
|
||||
incbin "data/blend/andyou_128x92x2.BPL"
|
||||
|
||||
bln_blend_image_1:
|
||||
incbin "../data/blend/fiveimg1_ham.raw"
|
||||
incbin "data/blend/fiveimg1_ham.raw"
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
section "bln_cat",data,chip
|
||||
bln_blend_image_2:
|
||||
incbin "../data/blend/fiveimg2_ham.raw"
|
||||
incbin "data/blend/fiveimg2_ham.raw"
|
||||
bln_blend_image_3:
|
||||
incbin "../data/blend/fiveimg3_ham.raw"
|
||||
incbin "data/blend/fiveimg3_ham.raw"
|
||||
bln_blend_image_4:
|
||||
incbin "../data/blend/fiveimg4_ham.raw"
|
||||
incbin "data/blend/fiveimg4_ham.raw"
|
||||
bln_blend_image_5:
|
||||
incbin "../data/blend/fiveimg5_ham.raw"
|
||||
incbin "data/blend/fiveimg5_ham.raw"
|
||||
bln_endlogo_image:
|
||||
incbin "../data/blend/PLT_DSRLogo01c_ham.raw"
|
||||
incbin "data/blend/PLT_DSRLogo01c_ham.raw"
|
||||
|
||||
IFD ENABLE_PART_MUSIC
|
||||
section "part_music_samples",data,chip ; section for music playback
|
||||
part_music_smp:
|
||||
incbin "../data/music/dsr_68k_tune_2_v11.lsbank"
|
||||
incbin "data/music/dsr_68k_tune_2_v11.lsbank"
|
||||
|
||||
section "part_music_data",data ; section for music playback
|
||||
part_music_data:
|
||||
incbin "../data/music/dsr_68k_tune_2_v11.lsmusic"
|
||||
incbin "data/music/dsr_68k_tune_2_v11.lsmusic"
|
||||
ENDC
|
||||
ENDC
|
||||
END
|
@ -95,7 +95,7 @@ DEBUG_DETAIL SET 10
|
||||
|
||||
NEWAGE_DEBUG = 1
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
|
||||
; Memory use:
|
||||
@ -236,7 +236,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -442,7 +442,7 @@ blb_init_colors:
|
||||
|
||||
blb_init_shade_table:
|
||||
move.l pd_ShadeTableXor(a6),a0
|
||||
PUTMSG 10,<"%d: Init Shade Table %p">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: Init Shade Table %p">,fw_FrameCounter-2(a6),a0
|
||||
move.l a0,a1
|
||||
moveq.l #0,d0
|
||||
.xorloop
|
||||
@ -519,7 +519,7 @@ blb_main:
|
||||
CALLFW SetBlitterQueueMultiFrame
|
||||
|
||||
move.w #-1,pd_CurrBlitSize(a6)
|
||||
PUTMSG 10,<"%d: Main!">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Main!">,fw_FrameCounter-2(a6)
|
||||
|
||||
lea .vblstuff(pc),a0
|
||||
move.l a0,fw_VBlankIRQ(a6)
|
||||
@ -531,7 +531,7 @@ blb_main:
|
||||
|
||||
CALLFW VSyncWithTask
|
||||
|
||||
PUTMSG 10,<"%d: Main 2">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Main 2">,fw_FrameCounter-2(a6)
|
||||
bsr blb_flip_db_frame
|
||||
bsr blb_create_bulb_copperlist
|
||||
bsr blb_patch_in_text_sprites_to_copperlist
|
||||
@ -601,14 +601,14 @@ blb_main:
|
||||
.nowrapbqwrite
|
||||
cmp.l pd_BqDataReadPtr(a6),a1
|
||||
bne.s .nowait
|
||||
PUTMSG 40,<"%d: Waiting for space Read: %p Write: %p">,fw_FrameCounterLong(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
|
||||
PUTMSG 40,<"%d: Waiting for space Read: %p Write: %p">,fw_FrameCounter-2(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
|
||||
CALLFW JoinBlitterQueue
|
||||
CALLFW VSyncWithTask
|
||||
bra.s .waitforbqspaceloop
|
||||
.nowait
|
||||
move.l a1,pd_BqDataWritePtr(a6)
|
||||
move.l a2,pd_CurrLineColorsPtr(a6)
|
||||
PUTMSG 40,<"%d: Done a frame Read: %p Write: %p">,fw_FrameCounterLong(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
|
||||
PUTMSG 40,<"%d: Done a frame Read: %p Write: %p">,fw_FrameCounter-2(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
|
||||
|
||||
subq.w #1,pd_PartCountDown(a6)
|
||||
bne .loop
|
||||
@ -659,17 +659,17 @@ blb_main:
|
||||
tst.w pd_NextQueueTriggerFrame(a6)
|
||||
beq.s .nodrop
|
||||
subq.w #1,pd_LampFrameNum(a6)
|
||||
PUTMSG 10,<"%d: Framedrop %d vs %d!">,fw_FrameCounterLong(a6),pd_NextQueueTriggerFrame-2(a6),d0
|
||||
PUTMSG 10,<"%d: Framedrop %d vs %d!">,fw_FrameCounter-2(a6),pd_NextQueueTriggerFrame-2(a6),d0
|
||||
.nodrop
|
||||
addq.w #2,d0
|
||||
move.w d0,pd_NextQueueTriggerFrame(a6)
|
||||
PUTMSG 20,<"%d: Triggering queue %p">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 20,<"%d: Triggering queue %p">,fw_FrameCounter-2(a6),a0
|
||||
move.w -4(a0),pd_CurrBlitSize(a6)
|
||||
BLTWAIT
|
||||
CALLFW TriggerCustomBlitterQueue
|
||||
rts
|
||||
.nop
|
||||
PUTMSG 20,<"%d: Ignoring">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 20,<"%d: Ignoring">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
@ -683,7 +683,7 @@ blb_brighten:
|
||||
lea pd_LampPalette(a6),a1
|
||||
CALLFW FadePaletteTo
|
||||
|
||||
PUTMSG 10,<"%d: Brighten!">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Brighten!">,fw_FrameCounter-2(a6)
|
||||
|
||||
move.w #SWING_FRAMES*4,pd_SwingFrameNum(a6)
|
||||
move.w #PAINT_FRAMES*4,pd_PaintFrameNum(a6)
|
||||
@ -749,14 +749,14 @@ blb_brighten:
|
||||
.nowrapbqwrite
|
||||
cmp.l pd_BqDataReadPtr(a6),a1
|
||||
bne.s .nowait
|
||||
PUTMSG 40,<"%d: Waiting for space Read: %p Write: %p">,fw_FrameCounterLong(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
|
||||
PUTMSG 40,<"%d: Waiting for space Read: %p Write: %p">,fw_FrameCounter-2(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
|
||||
CALLFW JoinBlitterQueue
|
||||
CALLFW VSyncWithTask
|
||||
bra.s .waitforbqspaceloop
|
||||
.nowait
|
||||
move.l a1,pd_BqDataWritePtr(a6)
|
||||
move.l a2,pd_CurrLineColorsPtr(a6)
|
||||
PUTMSG 40,<"%d: Done a frame Read: %p Write: %p">,fw_FrameCounterLong(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
|
||||
PUTMSG 40,<"%d: Done a frame Read: %p Write: %p">,fw_FrameCounter-2(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
|
||||
|
||||
subq.w #1,pd_PartCountDown(a6)
|
||||
bne .loop
|
||||
@ -3269,13 +3269,13 @@ blb_do_lamp_rotations:
|
||||
|
||||
moveq.l #-NUM_LAMP_ROTATIONS/2,d1
|
||||
.loop
|
||||
PUTMSG 40,<"%d: Rotation %d to %p">,fw_FrameCounterLong(a6),d1,a4
|
||||
PUTMSG 40,<"%d: Rotation %d to %p">,fw_FrameCounter-2(a6),d1,a4
|
||||
|
||||
PUSHM d1/d7
|
||||
bsr blb_calc_sheers
|
||||
bsr blb_rotate_chunky
|
||||
|
||||
PUTMSG 40,<"%d: C2P">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 40,<"%d: C2P">,fw_FrameCounter-2(a6)
|
||||
lea pd_LampSprites(a6),a3
|
||||
REPT 3
|
||||
move.l a4,a1
|
||||
@ -3503,10 +3503,10 @@ blb_text_panels:
|
||||
dc.l 0
|
||||
|
||||
blb_lamp_palette:
|
||||
incbin "../data/bulb/lamp_64x32x16.PAL"
|
||||
incbin "data/bulb/lamp_64x32x16.PAL"
|
||||
|
||||
blb_lamp_off_palette:
|
||||
incbin "../data/bulb/lamp_off_64x32x16.PAL"
|
||||
incbin "data/bulb/lamp_off_64x32x16.PAL"
|
||||
|
||||
blb_lamp_white_palette:
|
||||
REPT 15
|
||||
@ -3530,7 +3530,7 @@ blb_lamp_angle_table:
|
||||
include "langletable.asm"
|
||||
|
||||
blb_lamp_chunky:
|
||||
incbin "../data/bulb/lamp_48x32x16.chk"
|
||||
incbin "data/bulb/lamp_48x32x16.chk"
|
||||
|
||||
section "blb_anim",data
|
||||
|
||||
@ -3596,25 +3596,25 @@ blb_extra_copperlist_ptr:
|
||||
COP_END
|
||||
|
||||
blb_bulb_pic:
|
||||
incbin "../data/bulb/PLT_Lampscene_ham.raw"
|
||||
incbin "data/bulb/PLT_Lampscene_ham.raw"
|
||||
|
||||
blb_text_1_data:
|
||||
;blk.b 2560,255
|
||||
incbin "../data/bulb/text1.BPL"
|
||||
incbin "data/bulb/text1.BPL"
|
||||
|
||||
blb_text_2_data:
|
||||
;blk.b 2560,255
|
||||
incbin "../data/bulb/text2.BPL"
|
||||
incbin "data/bulb/text2.BPL"
|
||||
|
||||
blb_text_3_data:
|
||||
;blk.b 2560,255
|
||||
incbin "../data/bulb/text3.BPL"
|
||||
incbin "data/bulb/text3.BPL"
|
||||
|
||||
blb_text_4_data:
|
||||
;blk.b 2560,255
|
||||
incbin "../data/bulb/text4.BPL"
|
||||
incbin "data/bulb/text4.BPL"
|
||||
|
||||
blb_text_5_data:
|
||||
;blk.b 2560,255
|
||||
incbin "../data/bulb/text5.BPL"
|
||||
incbin "data/bulb/text5.BPL"
|
||||
END
|
@ -75,7 +75,7 @@ DEBUG_DETAIL SET 10
|
||||
|
||||
NEWAGE_DEBUG = 1
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
|
||||
; Memory use:
|
||||
@ -115,7 +115,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -420,7 +420,7 @@ enp_write_textline:
|
||||
|
||||
.nextline
|
||||
|
||||
PUTMSG 40,<"%d: NL">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 40,<"%d: NL">,fw_FrameCounter-2(a6)
|
||||
move.l pd_TextLinePtr(a6),a0
|
||||
.retrychar
|
||||
tst.b (a0)
|
||||
@ -1058,20 +1058,20 @@ enp_extra_copperlist_ptr:
|
||||
COP_END
|
||||
|
||||
enp_font_data:
|
||||
incbin "../data/endpart/PJZ_font_8x16x4.BPL"
|
||||
incbin "data/endpart/PJZ_font_8x16x4.BPL"
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
IFD ENABLE_PART_MUSIC
|
||||
section "part_music_samples",data,chip ; section for music playback
|
||||
part_music_smp:
|
||||
incbin "../data/music/desire_68k_tune3_v2.lsbank"
|
||||
incbin "data/music/desire_68k_tune3_v2.lsbank"
|
||||
section "part_music_data",data ; section for music playback
|
||||
part_music_data:
|
||||
incbin "../data/music/desire_68k_tune3_v2.lsmusic"
|
||||
incbin "data/music/desire_68k_tune3_v2.lsmusic"
|
||||
ENDC
|
||||
section "enp_screenshots",data,chip
|
||||
enp_screenshots:
|
||||
ds.b ((SCREENSHOTS_WIDTH/8)*ENDP_HEIGHT)*SCREENSHOTS_PLANES
|
||||
incbin "../data/endpart/screenshots_320x1620.BPL"
|
||||
incbin "data/endpart/screenshots_320x1620.BPL"
|
||||
ENDC
|
||||
END
|
@ -2,92 +2,92 @@
|
||||
|
||||
; link all parts together depending on the settings
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
IF FW_STANDALONE_FILE_MODE
|
||||
include "../framework/os_startupcode.asm"
|
||||
include "os_startupcode.asm"
|
||||
ELSE
|
||||
include "../framework/trackmo_startupcode.asm"
|
||||
include "trackmo_startupcode.asm"
|
||||
ENDC
|
||||
|
||||
include "../framework/framework_misc.asm"
|
||||
include "framework_misc.asm"
|
||||
|
||||
IF FW_MULTITASKING_SUPPORT
|
||||
include "../framework/framework_tasks.asm"
|
||||
include "framework_tasks.asm"
|
||||
ENDC
|
||||
|
||||
IF FW_BLITTERQUEUE_SUPPORT
|
||||
include "../framework/framework_blitterqueue.asm"
|
||||
include "framework_blitterqueue.asm"
|
||||
ENDC
|
||||
|
||||
IF FW_DYNAMIC_MEMORY_SUPPORT
|
||||
include "../framework/framework_memory.asm"
|
||||
include "framework_memory.asm"
|
||||
ENDC
|
||||
|
||||
IF FW_MUSIC_SUPPORT
|
||||
include "../framework/framework_music.asm"
|
||||
include "framework_music.asm"
|
||||
ENDC
|
||||
|
||||
IF FW_MULTIPART_SUPPORT
|
||||
include "../framework/framework_multipart.asm"
|
||||
include "framework_multipart.asm"
|
||||
ENDC
|
||||
|
||||
IF FW_SINETABLE_SUPPORT
|
||||
include "../framework/framework_sinetable.asm"
|
||||
include "framework_sinetable.asm"
|
||||
ENDC
|
||||
|
||||
IF FW_SCRIPTING_SUPPORT
|
||||
include "../framework/framework_scripting.asm"
|
||||
include "framework_scripting.asm"
|
||||
ENDC
|
||||
|
||||
IF FW_PALETTE_LERP_SUPPORT
|
||||
include "../framework/framework_palettelerp.asm"
|
||||
include "framework_palettelerp.asm"
|
||||
ENDC
|
||||
|
||||
IFEQ FW_STANDALONE_FILE_MODE
|
||||
include "../framework/framework_trackloader.asm"
|
||||
include "../framework/framework_dos.asm"
|
||||
include "framework_trackloader.asm"
|
||||
include "framework_dos.asm"
|
||||
ELSE
|
||||
IF FW_HD_TRACKMO_MODE
|
||||
include "../framework/framework_hdloader.asm"
|
||||
include "../framework/framework_dos.asm"
|
||||
include "framework_hdloader.asm"
|
||||
include "framework_dos.asm"
|
||||
ENDC
|
||||
ENDC
|
||||
|
||||
IF FW_MUSIC_SUPPORT
|
||||
IFNE FW_MUSIC_PLAYER_CHOICE==0
|
||||
include "../framework/musicplayers/player_none.asm"
|
||||
include "musicplayers/player_none.asm"
|
||||
ENDC
|
||||
IFNE FW_MUSIC_PLAYER_CHOICE==1
|
||||
include "../framework/musicplayers/player_lsp_vbl.asm"
|
||||
include "musicplayers/player_lsp_vbl.asm"
|
||||
ENDC
|
||||
IFNE FW_MUSIC_PLAYER_CHOICE==2
|
||||
include "../framework/musicplayers/player_lsp_cia.asm"
|
||||
include "musicplayers/player_lsp_cia.asm"
|
||||
ENDC
|
||||
IFNE FW_MUSIC_PLAYER_CHOICE==3
|
||||
fail "Sorry, P61 not ported to this framework (yet). Use LSP instead."
|
||||
ENDC
|
||||
IFNE (FW_MUSIC_PLAYER_CHOICE==4)|(FW_MUSIC_PLAYER_CHOICE==5)
|
||||
;include "../framework/musicplayers/player_pretracker_std.asm"
|
||||
include "../framework/musicplayers/player_raspberry_casket.asm"
|
||||
IFNE (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6)
|
||||
;include "musicplayers/player_pretracker_std.asm"
|
||||
include "musicplayers/player_raspberry_casket.asm"
|
||||
ENDC
|
||||
ENDC
|
||||
|
||||
IF FW_LZ4_SUPPORT
|
||||
fw_DecompressLZ4:
|
||||
include "../framework/unpackers/lz4_normal.asm"
|
||||
include "unpackers/lz4_normal.asm"
|
||||
ENDC
|
||||
IF FW_ZX0_SUPPORT
|
||||
fw_DecompressZX0:
|
||||
;include "../framework/unpackers/zx0.asm"
|
||||
include "../framework/unpackers/zx0_faster.asm"
|
||||
;include "unpackers/zx0.asm"
|
||||
include "unpackers/zx0_faster.asm"
|
||||
ENDC
|
||||
IF FW_DOYNAX_SUPPORT
|
||||
fw_DecompressDoynax:
|
||||
include "../framework/unpackers/doynax.asm"
|
||||
include "unpackers/doynax.asm"
|
||||
ENDC
|
||||
|
||||
include "../framework/framework_chip_section.asm"
|
||||
include "framework_chip_section.asm"
|
||||
|
||||
IF FW_STANDALONE_FILE_MODE
|
||||
; framework structure is allocated from RAM and pointer is placed here
|
||||
|
@ -1,24 +1,24 @@
|
||||
IFND FRAMEWORK_I
|
||||
FRAMEWORK_I SET 1
|
||||
|
||||
include "../includes/hardware/custom.i"
|
||||
include "../includes/hardware/copper.i"
|
||||
include "../includes/hardware/cia.i"
|
||||
include "../includes/hardware/intbits.i"
|
||||
include "../includes/hardware/dmabits.i"
|
||||
include "../includes/hardware/adkbits.i"
|
||||
include "../includes/hardware/blitbits.i"
|
||||
include "../includes/exec/types.i"
|
||||
include "../includes/exec/nodes.i"
|
||||
include "../includes/exec/lists.i"
|
||||
include "../includes/exec/macros.i"
|
||||
include "../includes/exec/execbase.i"
|
||||
include "../includes/dos/doshunks.i"
|
||||
include "../includes/lvo/lvo.i"
|
||||
include "../framework/framework_macros.i"
|
||||
include "hardware/custom.i"
|
||||
include "hardware/copper.i"
|
||||
include "hardware/cia.i"
|
||||
include "hardware/intbits.i"
|
||||
include "hardware/dmabits.i"
|
||||
include "hardware/adkbits.i"
|
||||
include "hardware/blitbits.i"
|
||||
include "exec/types.i"
|
||||
include "exec/nodes.i"
|
||||
include "exec/lists.i"
|
||||
include "exec/macros.i"
|
||||
include "exec/execbase.i"
|
||||
include "dos/doshunks.i"
|
||||
include "lvo/lvo.i"
|
||||
include "framework_macros.i"
|
||||
|
||||
FWGENLVOTABLE SET 0
|
||||
include "../framework/framework_lvos.i"
|
||||
include "framework_lvos.i"
|
||||
|
||||
; error color codes
|
||||
ERROR_OUTOFMEMORY = $0f00 ; one of the memory stacks ran out of memory
|
||||
@ -60,6 +60,10 @@ DEFF_DELTA32 = (3<<DEFS_DELTAMODE) ; not implemented
|
||||
DEFB_IN_PLACE = 11
|
||||
DEFF_IN_PLACE = (1<<DEFB_IN_PLACE)
|
||||
|
||||
IFND FW_SOFT_IRQ_SUPPORT
|
||||
FW_SOFT_IRQ_SUPPORT = 0
|
||||
ENDC
|
||||
|
||||
IF (FW_STANDALONE_FILE_MODE==0)|FW_HD_TRACKMO_MODE
|
||||
|
||||
FW_DIRECTORY_ENTRIES_OFFSET = 512
|
||||
@ -124,7 +128,6 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
|
||||
ENDC
|
||||
|
||||
STRUCTURE FrameWork,0
|
||||
UWORD fw_FrameCounterLong
|
||||
UWORD fw_FrameCounter
|
||||
|
||||
APTR fw_PartFwBase
|
||||
@ -155,6 +158,7 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
|
||||
APTR fw_VBR
|
||||
APTR fw_DemoAbortStackPointer
|
||||
BOOL fw_AgaChipset
|
||||
BOOL fw_DisableLMBExit
|
||||
IF FW_STANDALONE_FILE_MODE
|
||||
APTR fw_OrigBaseMemAllocAddr
|
||||
ULONG fw_OrigBaseMemAllocLength
|
||||
@ -168,6 +172,12 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
|
||||
APTR fw_GfxBase
|
||||
STRUCT fw_OldControls,2*4 ; intena, intreq, dmacon, adkcon
|
||||
APTR fw_OldSystemVBlankIRQ
|
||||
IF FW_SOFT_IRQ_SUPPORT
|
||||
APTR fw_OldSystemSoftIRQ
|
||||
ENDC
|
||||
IF FW_AUDIO_IRQ_SUPPORT
|
||||
APTR fw_OldSystemAudioIRQ
|
||||
ENDC
|
||||
APTR fw_OldCiaIRQ
|
||||
APTR fw_CiaBResource
|
||||
STRUCT fw_SysFriendlyInterrupt,IS_SIZE
|
||||
@ -214,6 +224,12 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
|
||||
IF FW_COPPER_IRQ_SUPPORT
|
||||
APTR fw_CopperIRQ
|
||||
ENDC
|
||||
IF FW_SOFT_IRQ_SUPPORT
|
||||
APTR fw_SoftIRQ
|
||||
ENDC
|
||||
IF FW_AUDIO_IRQ_SUPPORT
|
||||
APTR fw_AudioIRQ
|
||||
ENDC
|
||||
IF FW_MULTITASKING_SUPPORT
|
||||
STRUCT fw_Tasks,MLH_SIZE
|
||||
UWORD fw_MainCurrentFrame
|
||||
@ -224,6 +240,11 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
|
||||
APTR fw_BackgroundTaskUSP
|
||||
ENDC
|
||||
|
||||
IFEQ FW_PALETTE_LERP_SUPPORT-2
|
||||
APTR fw_BlueNoiseTablePtr
|
||||
UWORD fw_BlueNoisePos
|
||||
ENDC
|
||||
|
||||
IF FW_BLITTERQUEUE_SUPPORT
|
||||
APTR fw_BlitterQueueIRQ
|
||||
APTR fw_BlitterQueueWritePtr ; don't change order
|
||||
@ -255,7 +276,7 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
|
||||
ENDC
|
||||
|
||||
IF FW_MUSIC_SUPPORT
|
||||
BOOL fw_MusicEnabled
|
||||
APTR fw_MusicTickRoutine
|
||||
APTR fw_MusicData
|
||||
APTR fw_MusicSamples
|
||||
|
||||
@ -289,12 +310,21 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
|
||||
ENDC
|
||||
ENDC
|
||||
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==4)||(FW_MUSIC_PLAYER_CHOICE==5)
|
||||
IF (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6)
|
||||
APTR fw_PretrackerMyPlayer
|
||||
APTR fw_PretrackerMySong
|
||||
ULONG fw_PretrackerProgress
|
||||
IF (FW_MUSIC_PLAYER_CHOICE>=5)
|
||||
APTR fw_PretrackerCopperlist
|
||||
ENDC
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==6)
|
||||
APTR fw_PretrackerBgTask
|
||||
APTR fw_PretrackerCopperlistStart
|
||||
APTR fw_PretrackerCopperlistEnd
|
||||
APTR fw_PretrackerCopperReadPtr
|
||||
APTR fw_PretrackerCopperWritePtr
|
||||
ENDC
|
||||
ENDC
|
||||
ENDC
|
||||
|
||||
IFD gbd_SIZEOF
|
||||
|
@ -17,7 +17,7 @@
|
||||
; Trashes: probably all registers
|
||||
;
|
||||
fw_ExecuteNextPart:
|
||||
PUTMSG 10,<10,"%d: *** Preparing to execute next part %s ***">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<10,"%d: *** Preparing to execute next part %s ***">,fw_FrameCounter-2(a6),a0
|
||||
bsr.s fw_LoadNextPart
|
||||
|
||||
PUSHM a0
|
||||
@ -25,15 +25,15 @@ fw_ExecuteNextPart:
|
||||
POPM
|
||||
|
||||
IF FW_MUSIC_SUPPORT
|
||||
PUTMSG 10,<"%d: *** Executing next part %p at music frame %d">,fw_FrameCounterLong(a6),a0,fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: *** Executing next part %p at music frame %d">,fw_FrameCounter-2(a6),a0,fw_MusicFrameCount-2(a6)
|
||||
ELSE
|
||||
PUTMSG 10,<"%d: *** Executing next part %p">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: *** Executing next part %p">,fw_FrameCounter-2(a6),a0
|
||||
ENDC
|
||||
jsr (a0)
|
||||
IF FW_MUSIC_SUPPORT
|
||||
PUTMSG 10,<"%d: *** Part finished at music frame %d",10>,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: *** Part finished at music frame %d",10>,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
ELSE
|
||||
PUTMSG 10,<"%d: *** Part finished",10>,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: *** Part finished",10>,fw_FrameCounter-2(a6)
|
||||
ENDC
|
||||
|
||||
bsr fw_RestoreFrameworkBase
|
||||
@ -57,7 +57,7 @@ fw_ExecuteNextPart:
|
||||
; Trashes: probably all registers
|
||||
;
|
||||
fw_LoadNextPart:
|
||||
PUTMSG 10,<10,"%d: *** Loading next part %s ***">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<10,"%d: *** Loading next part %s ***">,fw_FrameCounter-2(a6),a0
|
||||
clr.l fw_LastLoadedPart(a6)
|
||||
bsr fw_DropCurrentMemoryAllocations
|
||||
bsr fw_FindFile
|
||||
@ -75,7 +75,7 @@ fw_LoadNextPart:
|
||||
fw_WaitForPartLoaded:
|
||||
tst.l fw_LastLoadedPart(a6)
|
||||
bne.s .done
|
||||
PUTMSG 10,<"%d: Part not yet fully loaded. Waiting.">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Part not yet fully loaded. Waiting.">,fw_FrameCounter-2(a6)
|
||||
.loop bsr fw_Yield
|
||||
tst.l fw_LastLoadedPart(a6)
|
||||
beq.s .loop
|
||||
@ -89,7 +89,7 @@ fw_WaitForPartLoaded:
|
||||
; just before ExecuteNextPart starts the part after loading/decrunching.
|
||||
;
|
||||
; Hooks can be installed by writing fw_PrePartLaunchHook(a6).
|
||||
; If this field is NULL, this function does nothing.
|
||||
; If this field is NULL, this function does nothing.
|
||||
; fw_PrePartLaunchHook(a6) is cleared prior to executing the hook.
|
||||
;
|
||||
fw_CheckPrePartLaunchHook:
|
||||
@ -251,7 +251,7 @@ fw_LoadFile:
|
||||
; a1 = Dir entry structure of the file
|
||||
;
|
||||
fw_LoadPlainFileEntry:
|
||||
PUTMSG 10,<"%d: Loading plain file from offset %ld, size %ld">,fw_FrameCounterLong(a6),de_DiskOffset(a1),de_DiskLength(a1)
|
||||
PUTMSG 10,<"%d: Loading plain file from offset %ld, size %ld">,fw_FrameCounter-2(a6),de_DiskOffset(a1),de_DiskLength(a1)
|
||||
tst.b de_Flags+1(a1)
|
||||
bpl.s fw_LoadPlainFileEntryToFast
|
||||
move.l de_DiskLength(a1),d0
|
||||
@ -420,8 +420,8 @@ fw_LoadAndInPlaceDecrunchToBuffer:
|
||||
;
|
||||
; In : a0 = source buffer
|
||||
; a1 = Dir entry structure
|
||||
; a2 = target buffer
|
||||
; Out: a0 = END of the buffer written
|
||||
; a2 = target buffer
|
||||
; Out: a0 = END of the buffer written
|
||||
; a1 = Dir entry structure
|
||||
;
|
||||
fw_DecrunchToBuffer:
|
||||
@ -431,7 +431,7 @@ fw_DecrunchToBuffer:
|
||||
IF FW_DOYNAX_SUPPORT
|
||||
cmp.w #DEFF_DOYNAX,d0
|
||||
bne.s .nodoynax
|
||||
PUTMSG 10,<"%d: DoynaxDecrunch from %p (%ld) to %p (%ld)">,fw_FrameCounterLong(a6),a0,de_DiskLength(a1),a2,de_MemorySize(a1)
|
||||
PUTMSG 10,<"%d: DoynaxDecrunch from %p (%ld) to %p (%ld)">,fw_FrameCounter-2(a6),a0,de_DiskLength(a1),a2,de_MemorySize(a1)
|
||||
move.l a2,a1
|
||||
bsr doynaxdepack
|
||||
bra .decdone
|
||||
@ -441,7 +441,7 @@ fw_DecrunchToBuffer:
|
||||
IF FW_ZX0_SUPPORT
|
||||
cmp.w #DEFF_ZX0,d0
|
||||
bne.s .nozx0
|
||||
PUTMSG 10,<"%d: ZX0Decrunch from %p (%ld) to %p (%ld)">,fw_FrameCounterLong(a6),a0,de_DiskLength(a1),a2,de_MemorySize(a1)
|
||||
PUTMSG 10,<"%d: ZX0Decrunch from %p (%ld) to %p (%ld)">,fw_FrameCounter-2(a6),a0,de_DiskLength(a1),a2,de_MemorySize(a1)
|
||||
move.l a2,a1
|
||||
bsr zx0_decompress
|
||||
bra.s .decdone
|
||||
@ -452,7 +452,7 @@ fw_DecrunchToBuffer:
|
||||
cmp.w #DEFF_LZ4,d0
|
||||
bne.s .nolz4
|
||||
move.l de_DiskLength(a1),d0
|
||||
PUTMSG 10,<"%d: LZ4Decrunch from %p (%ld) to %p (%ld)">,fw_FrameCounterLong(a6),a0,d0,a2,de_MemorySize(a1)
|
||||
PUTMSG 10,<"%d: LZ4Decrunch from %p (%ld) to %p (%ld)">,fw_FrameCounter-2(a6),a0,d0,a2,de_MemorySize(a1)
|
||||
move.l a2,a1
|
||||
bsr lz4_depack
|
||||
bra.s .decdone
|
||||
@ -477,7 +477,7 @@ fw_DecrunchToBuffer:
|
||||
PUSHM a2
|
||||
move.l de_MemorySize(a1),d0
|
||||
beq.s .d8done
|
||||
PUTMSG 10,<"%d: Delta8 decoding %p %ld bytes">,fw_FrameCounterLong(a6),a2,d0
|
||||
PUTMSG 10,<"%d: Delta8 decoding %p %ld bytes">,fw_FrameCounter-2(a6),a2,d0
|
||||
moveq.l #0,d1
|
||||
subq.l #1,d0
|
||||
.d8loop
|
||||
@ -492,7 +492,7 @@ fw_DecrunchToBuffer:
|
||||
.d8done
|
||||
POPM
|
||||
.nodelta
|
||||
PUTMSG 10,<"%d: Decrunching done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Decrunching done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
@ -505,7 +505,7 @@ fw_LoadFileToBuffer:
|
||||
PUSHM a0-a3
|
||||
move.l de_DiskOffset(a1),d0
|
||||
move.l de_DiskLength(a1),d1
|
||||
PUTMSG 10,<"%d: Loading file %p to buffer %p (%ld)">,fw_FrameCounterLong(a6),a1,a0,d1
|
||||
PUTMSG 10,<"%d: Loading file %p to buffer %p (%ld)">,fw_FrameCounter-2(a6),a1,a0,d1
|
||||
bsr fw_TrackloaderLoad
|
||||
POPM
|
||||
rts
|
||||
@ -521,7 +521,7 @@ fw_LoadFileToBuffer:
|
||||
; Out: a1 = end of decrunching pointer
|
||||
;
|
||||
fw_TrackmoLoadAndDecrunchToBuffer:
|
||||
PUTMSG 10,<"%d: Trackmo Loading and Decrunching %p">,fw_FrameCounterLong(a6),a1
|
||||
PUTMSG 10,<"%d: Trackmo Loading and Decrunching %p">,fw_FrameCounter-2(a6),a1
|
||||
move.w #DEFM_PACKMODE,d0
|
||||
and.w de_Flags(a1),d0
|
||||
IF FW_TRACKMO_LZ4_SUPPORT|FW_TRACKMO_LZ4_DLT8_SUPPORT
|
||||
@ -550,7 +550,7 @@ fw_TrackmoLoadAndDecrunchToBuffer:
|
||||
;--------------------------------------------------------------------
|
||||
; Load and decrunch a part
|
||||
;
|
||||
; Reads, allocates, decrunches and relocates all hunks for the given
|
||||
; Reads, allocates, decrunches and relocates all hunks for the given
|
||||
; directory entry.
|
||||
;
|
||||
; In : a1 = Dir entry structure
|
||||
@ -558,7 +558,7 @@ fw_TrackmoLoadAndDecrunchToBuffer:
|
||||
;
|
||||
fw_LoadAndDecrunchPart:
|
||||
move.l d7,-(sp)
|
||||
PUTMSG 10,<"%d: Loading and Decrunching %p">,fw_FrameCounterLong(a6),a1
|
||||
PUTMSG 10,<"%d: Loading and Decrunching %p">,fw_FrameCounter-2(a6),a1
|
||||
|
||||
tst.b de_NumHunks(a1)
|
||||
bne.s .cont
|
||||
@ -674,7 +674,7 @@ fw_LoadAndDecrunchPart:
|
||||
|
||||
IF FW_ZX0_SUPPORT
|
||||
.inplacedecrunch
|
||||
PUTMSG 10,<"%d: In-place loading and decrunching %ld bytes to %p (%d)">,fw_FrameCounterLong(a6),de_DiskLength(a1),a0,d7
|
||||
PUTMSG 10,<"%d: In-place loading and decrunching %ld bytes to %p (%d)">,fw_FrameCounter-2(a6),de_DiskLength(a1),a0,d7
|
||||
PUSHM a1-a3
|
||||
move.l (a3,d7.w),a0
|
||||
bsr fw_LoadAndInPlaceDecrunchToBuffer
|
||||
@ -686,7 +686,7 @@ fw_LoadAndDecrunchPart:
|
||||
.trackloadlz4
|
||||
move.l (a3,d7.w),a0
|
||||
PUSHM a1-a3
|
||||
PUTMSG 10,<"%d: LZ4 loading and decrunching %ld bytes to %p (%d)">,fw_FrameCounterLong(a6),de_DiskLength(a1),a0,d7
|
||||
PUTMSG 10,<"%d: LZ4 loading and decrunching %ld bytes to %p (%d)">,fw_FrameCounter-2(a6),de_DiskLength(a1),a0,d7
|
||||
bsr fw_TrackmoLoadAndDecrunchToBuffer
|
||||
move.l a1,a0
|
||||
POPM
|
||||
@ -728,7 +728,7 @@ fw_LoadAndDecrunchPart:
|
||||
.clearmem
|
||||
move.l (a3,d7.w),d0
|
||||
add.l de_MemorySize(a1),d0
|
||||
PUTMSG 10,<"%d: End of buffer %p, expected %p, memory size %ld">,fw_FrameCounterLong(a6),a0,d0,de_MemorySize(a1)
|
||||
PUTMSG 10,<"%d: End of buffer %p, expected %p, memory size %ld">,fw_FrameCounter-2(a6),a0,d0,de_MemorySize(a1)
|
||||
sub.l a0,d0 ; bytes to clear
|
||||
|
||||
.clearit
|
||||
@ -818,7 +818,7 @@ fw_PreloadPart:
|
||||
IFEQ FW_HD_TRACKMO_MODE
|
||||
bsr fw_FindFile
|
||||
move.l d7,-(sp)
|
||||
PUTMSG 10,<"%d: Preparing loading and decrunching of %p">,fw_FrameCounterLong(a6),a1
|
||||
PUTMSG 10,<"%d: Preparing loading and decrunching of %p">,fw_FrameCounter-2(a6),a1
|
||||
|
||||
tst.b de_NumHunks(a1)
|
||||
bne.s .cont
|
||||
|
@ -61,6 +61,9 @@ _LVOFrameWorkVSyncWithTask = _LVOFrameWorkVSync
|
||||
DEFFWFUNC InitPaletteLerpSameColor
|
||||
DEFFWFUNC FadePaletteTo
|
||||
DEFFWFUNC DoFadePaletteStep
|
||||
IFEQ FW_PALETTE_LERP_SUPPORT-2
|
||||
DEFFWFUNC DoFadePaletteStepBlueNoise
|
||||
ENDC
|
||||
ENDC
|
||||
|
||||
IF FW_SCRIPTING_SUPPORT
|
||||
|
@ -76,7 +76,7 @@ BLTWAIT MACRO
|
||||
; channels, minterm, shift a, shift b, (optional: target)
|
||||
BLTCON_SET MACRO
|
||||
; write both bltcon0/bltcon1
|
||||
IFNC '\5',''
|
||||
IFNC '\5',''
|
||||
move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12),\5
|
||||
ELSE
|
||||
move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12),bltcon0(a5)
|
||||
@ -86,7 +86,7 @@ BLTCON_SET MACRO
|
||||
; channels, minterm, shift a, (optional: target)
|
||||
BLTCON0_SET MACRO
|
||||
; write only bltcon0
|
||||
IFNC '\4',''
|
||||
IFNC '\4',''
|
||||
move.w #((BLTEN_\1+((\2)&$ff))|(\3<<12)),\4
|
||||
ELSE
|
||||
move.w #((BLTEN_\1+((\2)&$ff))|(\3<<12)),bltcon0(a5)
|
||||
@ -96,7 +96,7 @@ BLTCON0_SET MACRO
|
||||
; channels, minterm, shift a, shift b, bltcon1 flags, (optional: target)
|
||||
BLTCON_SET_X MACRO
|
||||
; write both bltcon0/bltcon1
|
||||
IFNC '\6',''
|
||||
IFNC '\6',''
|
||||
move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12)|(\5),\6
|
||||
ELSE
|
||||
move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12)|(\5),bltcon0(a5)
|
||||
|
@ -39,7 +39,7 @@ fw_InitMemoryManagement:
|
||||
; Memory of other allocation direction is unchanged.
|
||||
;
|
||||
fw_DropCurrentMemoryAllocations:
|
||||
PUTMSG 10,<"%d: DropCurrentMemoryAllocations">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: DropCurrentMemoryAllocations">,fw_FrameCounter-2(a6)
|
||||
IFGE DEBUG_DETAIL-20
|
||||
PUSHM a0/a1/d0
|
||||
ELSE
|
||||
@ -198,7 +198,7 @@ fw_PopMemoryState:
|
||||
; d1/a1: Trashed.
|
||||
;
|
||||
fw_AllocFast:
|
||||
PUTMSG 10,<"%d: AllocFast(%ld)">,fw_FrameCounterLong(a6),d0
|
||||
PUTMSG 10,<"%d: AllocFast(%ld)">,fw_FrameCounter-2(a6),d0
|
||||
addq.l #3,d0
|
||||
and.w #-4,d0
|
||||
|
||||
@ -233,7 +233,7 @@ fw_AllocFast:
|
||||
; d1/a1: Trashed.
|
||||
;
|
||||
fw_AllocChip:
|
||||
PUTMSG 10,<"%d: AllocChip(%ld)">,fw_FrameCounterLong(a6),d0
|
||||
PUTMSG 10,<"%d: AllocChip(%ld)">,fw_FrameCounter-2(a6),d0
|
||||
addq.l #7,d0
|
||||
and.w #-8,d0
|
||||
|
||||
@ -281,7 +281,7 @@ fw_AllocChip:
|
||||
;
|
||||
IF FW_64KB_PAGE_MEMORY_SUPPORT
|
||||
fw_AllocChip64KB:
|
||||
PUTMSG 10,<"%d: AllocChip64KB(%ld)">,fw_FrameCounterLong(a6),d0
|
||||
PUTMSG 10,<"%d: AllocChip64KB(%ld)">,fw_FrameCounter-2(a6),d0
|
||||
addq.l #7,d0
|
||||
and.w #-8,d0
|
||||
|
||||
|
@ -13,12 +13,12 @@ fw_Error:
|
||||
;--------------------------------------------------------------------
|
||||
; Sets the base copperlist and irq (empty screen).
|
||||
;
|
||||
; Background colour is unchanged, sprites and display are disabled.
|
||||
; Background colour is unchanged, sprites and display are disabled.
|
||||
;
|
||||
; Out: Trashes d0/a0
|
||||
;
|
||||
fw_SetBaseCopper:
|
||||
PUTMSG 10,<"%d: SetBaseCopper">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: SetBaseCopper">,fw_FrameCounter-2(a6)
|
||||
moveq.l #0,d0
|
||||
IF FW_VBL_IRQ_SUPPORT
|
||||
move.l d0,fw_VBlankIRQ(a6)
|
||||
@ -35,6 +35,15 @@ fw_SetBaseCopper:
|
||||
|
||||
move.l fw_VBR(a6),a0
|
||||
move.l fw_DefaultIRQ(a6),$6c(a0)
|
||||
IF FW_SOFT_IRQ_SUPPORT
|
||||
lea fw_softint_irq(pc),a1
|
||||
move.l a1,$64(a0)
|
||||
ENDC
|
||||
IF FW_AUDIO_IRQ_SUPPORT
|
||||
move.l $70(a0),fw_OldSystemAudioIRQ(a6)
|
||||
lea fw_audio_irq(pc),a1
|
||||
move.l a1,$70(a0)
|
||||
ENDC
|
||||
|
||||
move.w #INTF_BLIT,intena(a5) ; disable blitter interrupt
|
||||
move.w #INTF_BLIT|INTF_COPER,intreq(a5)
|
||||
@ -43,6 +52,10 @@ fw_SetBaseCopper:
|
||||
ELSE
|
||||
move.w #INTF_SETCLR|INTF_INTEN|INTF_VERTB,intena(a5) ; enable vblank interrupt
|
||||
ENDC
|
||||
IF FW_SOFT_IRQ_SUPPORT
|
||||
move.w #INTF_SOFTINT,intreq(a5)
|
||||
move.w #INTF_SETCLR|INTF_SOFTINT,intena(a5) ; enable soft interrupt
|
||||
ENDC
|
||||
bsr.s fw_VSync
|
||||
move.w #DMAF_SETCLR|DMAF_MASTER|DMAF_BLITTER|DMAF_RASTER|DMAF_COPPER,dmacon(a5)
|
||||
.clrspr
|
||||
@ -86,6 +99,10 @@ fw_VSyncWithTask:
|
||||
ENDC
|
||||
fw_VSync:
|
||||
IF FW_LMB_EXIT_SUPPORT
|
||||
IFEQ FW_LMB_EXIT_SUPPORT-2
|
||||
tst.w fw_DisableLMBExit(a6)
|
||||
bne.s .noabort
|
||||
ENDC
|
||||
btst #6,$bfe001
|
||||
beq .abortdemo
|
||||
ENDC
|
||||
@ -115,26 +132,40 @@ fw_VSync:
|
||||
ENDC
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
; Waits until the global framecounter reaches the given frame
|
||||
; Waits until the global framecounter reaches at least the given frame
|
||||
;
|
||||
; In : d0.w - frame to wait for
|
||||
; Out: May trash all registers!
|
||||
;
|
||||
fw_WaitForFrame:
|
||||
PUTMSG 10,<"%d: Waiting for frame %d">,fw_FrameCounterLong(a6),d0
|
||||
.loop
|
||||
cmp.w fw_FrameCounter(a6),d0
|
||||
bmi.s .endwait
|
||||
PUSHM d0
|
||||
PUTMSG 20,<"%d: Waiting for frame %d">,fw_FrameCounter-2(a6),d0
|
||||
IF FW_MULTITASKING_SUPPORT
|
||||
bra fw_VSyncWithTask
|
||||
ELSE
|
||||
bra fw_VSync
|
||||
ENDC
|
||||
POPM
|
||||
move.l #$1ff00,d1
|
||||
and.l vposr(a5),d1
|
||||
cmp.l #FW_MAX_VPOS_FOR_BG_TASK<<8,d1
|
||||
ble.s .enoughtime
|
||||
; we're close to the VBL, spin
|
||||
BLTHOGON
|
||||
.spin cmp.w fw_FrameCounter(a6),d0
|
||||
bmi.s .endwait
|
||||
; check if we have gone past the VBL
|
||||
move.l #$1ff00,d1
|
||||
and.l vposr(a5),d1
|
||||
cmp.l #FW_MAX_VPOS_FOR_BG_TASK<<8,d1
|
||||
bgt.s .spin
|
||||
.enoughtime
|
||||
.loop cmp.w fw_FrameCounter(a6),d0
|
||||
bmi.s .endwait
|
||||
move.w d0,-(sp)
|
||||
bsr fw_VSyncWithTask
|
||||
move.w (sp)+,d0
|
||||
bra.s .loop
|
||||
ELSE
|
||||
.spin cmp.w fw_FrameCounter(a6),d0
|
||||
bpl.s .spin
|
||||
ENDC
|
||||
.endwait
|
||||
PUTMSG 10,<"%d: Waiting done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 20,<"%d: Waiting done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
@ -155,11 +186,15 @@ fw_FlushCaches:
|
||||
|
||||
IF FW_COPPER_IRQ_SUPPORT
|
||||
fw_copper_irq:
|
||||
IF FW_A5_A6_UNTOUCHED
|
||||
PUSHM d0/a0/a5/a6
|
||||
lea $dff000,a5
|
||||
move.w #INTF_COPER,intreq(a5) ;acknowledge the copper-irq.
|
||||
move.w #INTF_COPER,intreq(a5) ;acknowledge the copper-irq.
|
||||
move.l fw_BasePtr(pc),a6
|
||||
ELSE
|
||||
PUSHM d0/a0
|
||||
ENDC
|
||||
move.w #INTF_COPER,intreq(a5) ;acknowledge the copper-irq.
|
||||
move.w #INTF_COPER,intreq(a5) ;acknowledge the copper-irq.
|
||||
move.l fw_CopperIRQ(a6),d0
|
||||
beq.s .nocop
|
||||
move.l d0,a0
|
||||
@ -176,21 +211,29 @@ fw_vblank_standard_irq:
|
||||
btst #INTB_COPER,$dff000+intreqr+1
|
||||
bne.s fw_copper_irq
|
||||
ENDC
|
||||
|
||||
IF FW_A5_A6_UNTOUCHED
|
||||
IF FW_VBL_IRQ_SUPPORT|(FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
|
||||
PUSHM d0-d3/a0-a3
|
||||
ENDC
|
||||
ELSE
|
||||
IF FW_VBL_IRQ_SUPPORT|(FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
|
||||
PUSHM d0-d3/a0-a3/a5/a6
|
||||
ELSE
|
||||
PUSHM a5/a6
|
||||
ENDC
|
||||
lea $dff000,a5
|
||||
move.l fw_BasePtr(pc),a6
|
||||
ENDC
|
||||
move.w #INTF_VERTB,intreq(a5) ;acknowledge the VBL-irq.
|
||||
move.w #INTF_VERTB,intreq(a5) ;acknowledge the VBL-irq.
|
||||
|
||||
move.l fw_BasePtr(pc),a6
|
||||
addq.w #1,fw_FrameCounter(a6)
|
||||
IF (FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
|
||||
tst.w fw_MusicEnabled(a6)
|
||||
move.l fw_MusicTickRoutine(a6),d0
|
||||
beq.s .skipmus
|
||||
bsr fw_MusicPlay
|
||||
move.l d0,a0
|
||||
jsr (a0) ; IRQ must maintain d4-d7/a4
|
||||
.skipmus
|
||||
ENDC
|
||||
IF FW_VBL_IRQ_SUPPORT
|
||||
@ -200,6 +243,57 @@ fw_vblank_standard_irq:
|
||||
jsr (a0) ; IRQ must maintain d4-d7/a4
|
||||
.novbl
|
||||
ENDC
|
||||
|
||||
IF FW_A5_A6_UNTOUCHED
|
||||
IF FW_VBL_IRQ_SUPPORT|(FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
|
||||
POPM
|
||||
ENDC
|
||||
ELSE
|
||||
POPM
|
||||
ENDC
|
||||
nop
|
||||
rte
|
||||
rte
|
||||
|
||||
IF FW_SOFT_IRQ_SUPPORT
|
||||
fw_softint_irq:
|
||||
IFEQ FW_A5_A6_UNTOUCHED
|
||||
PUSHM a5/a6
|
||||
lea $dff000,a5
|
||||
move.l fw_BasePtr(pc),a6
|
||||
ENDC
|
||||
move.w #INTF_SOFTINT,intreq(a5)
|
||||
pea .skip(pc)
|
||||
move.l fw_SoftIRQ(a6),-(sp)
|
||||
beq.s .nopsy
|
||||
rts
|
||||
.nopsy addq.l #8,sp
|
||||
.skip
|
||||
IFEQ FW_A5_A6_UNTOUCHED
|
||||
POPM
|
||||
ENDC
|
||||
nop
|
||||
rte
|
||||
ENDC
|
||||
|
||||
IF FW_AUDIO_IRQ_SUPPORT
|
||||
fw_audio_irq:
|
||||
PUTMSG 60,<"INT %lx">,$dff000+intenar
|
||||
IFEQ FW_A5_A6_UNTOUCHED
|
||||
PUSHM a5/a6
|
||||
lea $dff000,a5
|
||||
move.l fw_BasePtr(pc),a6
|
||||
ENDC
|
||||
move.w #INTF_AUD0|INTF_AUD1|INTF_AUD2|INTF_AUD3,intreq(a5)
|
||||
pea .skip(pc)
|
||||
move.l fw_AudioIRQ(a6),-(sp)
|
||||
beq.s .noaud
|
||||
rts ; IRQ must maintain d0-d7/a1-a4
|
||||
.noaud addq.l #8,sp
|
||||
.skip
|
||||
IFEQ FW_A5_A6_UNTOUCHED
|
||||
POPM
|
||||
ENDC
|
||||
nop
|
||||
rte
|
||||
|
||||
ENDC
|
||||
|
@ -34,7 +34,7 @@
|
||||
; with all your variable space cleared.
|
||||
;
|
||||
; Make sure that you don't free the memory allocated here until
|
||||
; the end of your part! The demo framework will call
|
||||
; the end of your part! The demo framework will call
|
||||
; RestoreFrameworkBase automatically at exit of your part.
|
||||
;
|
||||
; Flushes the caches (if available), too.
|
||||
@ -44,7 +44,7 @@
|
||||
; Trashes: everything except a5/a6
|
||||
;
|
||||
fw_InitPart:
|
||||
PUTMSG 10,<"%d: InitPart(%ld)">,fw_FrameCounterLong(a6),d0
|
||||
PUTMSG 10,<"%d: InitPart(%ld)">,fw_FrameCounter-2(a6),d0
|
||||
PUSHM d0
|
||||
bsr fw_RestoreFrameworkBase
|
||||
POPM
|
||||
@ -67,8 +67,8 @@ fw_InitPart:
|
||||
|
||||
move.l a6,fw_PartFwBase(a6)
|
||||
move.l fw_PartDataSize(a6),d7
|
||||
addq.w #3,d7
|
||||
lsr.w #2,d7
|
||||
sub.l #fw_SIZEOF-3,d7
|
||||
lsr.l #2,d7
|
||||
beq.s .skipclr
|
||||
subq.w #1,d7
|
||||
moveq.l #0,d0
|
||||
@ -98,7 +98,7 @@ fw_InitPart:
|
||||
move.l a6,(a0)
|
||||
bsr fw_FlushCaches
|
||||
ENABLE_INTS
|
||||
PUTMSG 20,<"%d: InitPart done %p">,fw_FrameCounterLong(a6),a6
|
||||
PUTMSG 20,<"%d: InitPart done %p">,fw_FrameCounter-2(a6),a6
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
@ -111,7 +111,7 @@ fw_InitPart:
|
||||
; Trashes: everything except a5/a6
|
||||
;
|
||||
fw_RestoreFrameworkBase:
|
||||
PUTMSG 10,<"%d: RestoreFrameworkBase(%p)">,fw_FrameCounterLong(a6),a6
|
||||
PUTMSG 10,<"%d: RestoreFrameworkBase(%p)">,fw_FrameCounter-2(a6),a6
|
||||
DISABLE_INTS
|
||||
move.l fw_PartFwBase(a6),a0
|
||||
move.l fw_PrimaryFwBase(a6),a1
|
||||
@ -206,6 +206,6 @@ fw_FixA6BaseInTaskStacks:
|
||||
|
||||
fw_lvo_offsets:
|
||||
FWGENLVOTABLE SET 1
|
||||
include "../framework/framework_lvos.i"
|
||||
include "framework_lvos.i"
|
||||
dc.w 0
|
||||
FWGENLVOTABLE SET 0
|
||||
|
@ -8,16 +8,15 @@ fw_StartMusic:
|
||||
move.l fw_MusicData(a6),a0
|
||||
move.l fw_MusicSamples(a6),a1
|
||||
bsr fw_MusicInit
|
||||
move.w #1,fw_MusicEnabled(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
; Stops the music playback if music is active
|
||||
;
|
||||
fw_StopMusic:
|
||||
tst.w fw_MusicEnabled(a6)
|
||||
tst.l fw_MusicTickRoutine(a6)
|
||||
bne.s .cont
|
||||
rts
|
||||
.cont clr.w fw_MusicEnabled(a6)
|
||||
.cont clr.l fw_MusicTickRoutine(a6)
|
||||
bra fw_MusicStop
|
||||
|
||||
|
@ -106,7 +106,7 @@ fw_FadePaletteTo:
|
||||
ror.w #4,d1
|
||||
move.w cl_Red+le_Current(a1),d3
|
||||
lsr.w #1,d1
|
||||
add.w #$80,d1
|
||||
add.w #$400,d1
|
||||
lsr.w #1,d3
|
||||
sub.w d3,d1
|
||||
asr.w d2,d1
|
||||
@ -118,7 +118,7 @@ fw_FadePaletteTo:
|
||||
clr.b d1
|
||||
move.w cl_Green+le_Current(a1),d3
|
||||
lsr.w #1,d1
|
||||
add.w #$80,d1
|
||||
add.w #$400,d1
|
||||
lsr.w #1,d3
|
||||
sub.w d3,d1
|
||||
asr.w d2,d1
|
||||
@ -129,7 +129,7 @@ fw_FadePaletteTo:
|
||||
ror.w #4,d1
|
||||
move.w cl_Blue+le_Current(a1),d3
|
||||
lsr.w #1,d1
|
||||
add.w #$80,d1
|
||||
add.w #$400,d1
|
||||
lsr.w #1,d3
|
||||
sub.w d3,d1
|
||||
asr.w d2,d1
|
||||
@ -158,6 +158,7 @@ fw_DoFadePaletteStep:
|
||||
moveq.l #0,d4
|
||||
.loop
|
||||
addq.w #2,a1
|
||||
.loop2
|
||||
move.w (a1),d1 ; cl_Steps
|
||||
beq.s .skip
|
||||
moveq.l #1,d4
|
||||
@ -184,10 +185,81 @@ fw_DoFadePaletteStep:
|
||||
dbra d0,.loop
|
||||
rts
|
||||
.skip
|
||||
lea cl_SIZEOF-2(a1),a1
|
||||
dbra d0,.loop
|
||||
lea cl_SIZEOF(a1),a1
|
||||
dbra d0,.loop2
|
||||
subq.w #2,a1
|
||||
tst.w d4
|
||||
bne.s .noend
|
||||
st (a0)
|
||||
.noend
|
||||
rts
|
||||
|
||||
IFEQ FW_PALETTE_LERP_SUPPORT-2
|
||||
; a1 = lerp structures
|
||||
; d0 = number of colors
|
||||
fw_DoFadePaletteStepBlueNoise:
|
||||
move.l fw_BlueNoiseTablePtr(a6),a0
|
||||
move.w #1024*2,d2
|
||||
move.w d0,d1
|
||||
add.w d1,d1
|
||||
add.w d0,d1
|
||||
add.w d1,d1
|
||||
sub.w d1,d2
|
||||
move.w fw_BlueNoisePos(a6),d1
|
||||
cmp.w d2,d1
|
||||
blt.s .nowrap
|
||||
sub.w d2,d1
|
||||
.nowrap
|
||||
adda.w d1,a0
|
||||
add.w d0,d1
|
||||
add.w d0,d1
|
||||
move.w d1,fw_BlueNoisePos(a6)
|
||||
subq.w #1,d0
|
||||
bcc.s .loop
|
||||
rts
|
||||
.loop
|
||||
addq.w #2,a1
|
||||
move.w (a1),d1 ; cl_Steps
|
||||
beq.s .skip
|
||||
subq.w #1,d1
|
||||
move.w d1,(a1)+ ; cl_Steps
|
||||
move.w (a1)+,d1 ; cl_Red+le_Add
|
||||
add.w (a1),d1 ; cl_Red+le_Current
|
||||
move.w d1,(a1)+ ; cl_Red+le_Current
|
||||
move.w (a1)+,d2 ; cl_Green+le_Add
|
||||
add.w (a1),d2 ; cl_Green+le_Current
|
||||
move.w d2,(a1)+ ; cl_Green+le_Current
|
||||
move.w (a1)+,d3 ; cl_Blue+le_Add
|
||||
add.w (a1),d3 ; cl_Blue+le_Current
|
||||
move.w d3,(a1)+ ; cl_Blue+le_Current
|
||||
|
||||
bra.s .addnoise
|
||||
.skip
|
||||
addq.w #2,a1
|
||||
movem.l (a1)+,d1/d2/d3 ; cl_Red/cl_Green/cl_Blue+le_Current
|
||||
.addnoise
|
||||
add.w (a0)+,d1
|
||||
bcc.s .nofr
|
||||
moveq.l #-1,d1
|
||||
.nofr
|
||||
add.w (a0)+,d2
|
||||
bcc.s .nofg
|
||||
moveq.l #-1,d2
|
||||
.nofg
|
||||
add.w (a0)+,d3
|
||||
bcc.s .nofb
|
||||
moveq.l #-1,d3
|
||||
.nofb
|
||||
lsr.w #4,d1
|
||||
moveq.l #15,d2
|
||||
rol.w #4,d3
|
||||
and.w d2,d3
|
||||
moveq.l #-16,d2
|
||||
and.b cl_Green+le_Current-(cl_Blue+le_Current+2)(a1),d2
|
||||
or.b d3,d2
|
||||
move.b d2,d1
|
||||
move.w d1,-cl_SIZEOF(a1) ; cl_Color
|
||||
dbra d0,.loop
|
||||
rts
|
||||
|
||||
ENDC
|
||||
|
@ -14,7 +14,7 @@
|
||||
; In : a0 = script pointer
|
||||
;
|
||||
fw_InstallScript:
|
||||
PUTMSG 10,<"%d: Script at %p installed">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: Script at %p installed">,fw_FrameCounter-2(a6),a0
|
||||
move.l a0,fw_ScriptPointer(a6)
|
||||
move.w fw_FrameCounter(a6),fw_ScriptFrameOffset(a6)
|
||||
rts
|
||||
@ -37,7 +37,7 @@ fw_CheckScript:
|
||||
move.w (a0)+,d0
|
||||
move.l a0,fw_ScriptPointer(a6)
|
||||
pea -2(a0,d0.w)
|
||||
PUTMSG 10,<"%d: Script hit %p">,fw_FrameCounterLong(a6),(sp)
|
||||
PUTMSG 10,<"%d: Script hit %p">,fw_FrameCounter-2(a6),(sp)
|
||||
tst.w (a0)
|
||||
bne.s .exit
|
||||
PUTMSG 10,<"Script terminated.">
|
||||
@ -48,7 +48,7 @@ fw_CheckScript:
|
||||
;--------------------------------------------------------------------
|
||||
; Install a music-frame based script
|
||||
;
|
||||
; Routines of the script will be executed via CheckMusicScript once
|
||||
; Routines of the script will be executed via CheckMusicScript once
|
||||
; the given absolute music frame numbers have been reached (or passed).
|
||||
;
|
||||
; A script is built in this way:
|
||||
@ -60,7 +60,7 @@ fw_CheckScript:
|
||||
; In : a0 = script pointer
|
||||
;
|
||||
fw_InstallMusicScript:
|
||||
PUTMSG 10,<"%d: MusicScript at %p installed">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: MusicScript at %p installed">,fw_FrameCounter-2(a6),a0
|
||||
move.l a0,fw_MusicScriptPointer(a6)
|
||||
rts
|
||||
|
||||
@ -81,7 +81,7 @@ fw_CheckMusicScript:
|
||||
move.w (a0)+,d0
|
||||
move.l a0,fw_MusicScriptPointer(a6)
|
||||
pea -2(a0,d0.w)
|
||||
PUTMSG 10,<"%d: MusicScript (%d) hit %p">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6),(sp)
|
||||
PUTMSG 10,<"%d: MusicScript (%d) hit %p">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6),(sp)
|
||||
tst.w (a0)
|
||||
bne.s .exit
|
||||
PUTMSG 10,<"MusicScript terminated.">
|
||||
|
@ -7,7 +7,7 @@
|
||||
; accessible through the fw_SinTable(a6) and fw_CosTable(a6) base pointers.
|
||||
;
|
||||
fw_InitSineTable:
|
||||
PUTMSG 10,<"%d: Script at %p installed">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: Init Sine table %p">,fw_FrameCounter-2(a6),a0
|
||||
IF FW_DYNAMIC_MEMORY_SUPPORT
|
||||
move.l #(1024+256)*2,d0
|
||||
bsr fw_AllocFast
|
||||
@ -23,7 +23,6 @@ fw_InitSineTable:
|
||||
move.l a1,fw_FastMemStack(a6)
|
||||
ENDC
|
||||
|
||||
PUTMSG 10,<"%d: Init Sine table %p">,fw_FrameCounterLong(a6),a0
|
||||
moveq.l #0,d0 ; amp=16384, length=1024
|
||||
move.w #511+2,a1
|
||||
.loop subq.l #2,a1
|
||||
@ -53,5 +52,5 @@ fw_InitSineTable:
|
||||
.cloop move.l (a0)+,(a1)+
|
||||
dbra d0,.cloop
|
||||
|
||||
PUTMSG 10,<"%d: Sine table done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Sine table done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
@ -32,7 +32,7 @@ fw_InitTasks:
|
||||
; Out: All registers are unchanged.
|
||||
;
|
||||
fw_AddTask:
|
||||
PUTMSG 10,<"%d: AddTask(%p,%p,%s)">,fw_FrameCounterLong(a6),a0,a1,LN_NAME(a1)
|
||||
PUTMSG 10,<"%d: AddTask(%p,%p,%s)">,fw_FrameCounter-2(a6),a0,a1,LN_NAME(a1)
|
||||
tst.l ft_USP(a1)
|
||||
bne fw_Error
|
||||
IF FW_TOP_BOTTOM_MEM_SECTIONS
|
||||
@ -59,7 +59,7 @@ fw_AddTask:
|
||||
.cleanup
|
||||
;move.l fw_BasePtr(pc),a6
|
||||
move.l (sp)+,a1 ; suppress M68kDeadWrite used by REMOVE
|
||||
PUTMSG 10,<"%d: background task %p (%s) finished">,fw_FrameCounterLong(a6),a1,LN_NAME(a1)
|
||||
PUTMSG 10,<"%d: background task %p (%s) finished">,fw_FrameCounter-2(a6),a1,LN_NAME(a1)
|
||||
|
||||
.waitforsafearea
|
||||
move.l #$1ff00,d0
|
||||
@ -111,6 +111,9 @@ fw_KillTaskContext:
|
||||
clr.l fw_PrimaryUSP(a6)
|
||||
move.w fw_MainCurrentFrame(a6),d0
|
||||
ENABLE_INTS
|
||||
btst #DMAB_BLTDONE-8,dmaconr(a5)
|
||||
beq.s .loop
|
||||
BLTHOGON
|
||||
.loop cmp.w fw_FrameCounter(a6),d0
|
||||
beq.s .loop
|
||||
rts
|
||||
@ -130,6 +133,10 @@ fw_VSyncWithTask:
|
||||
bgt fw_VSync
|
||||
|
||||
IF FW_LMB_EXIT_SUPPORT
|
||||
IFEQ FW_LMB_EXIT_SUPPORT-2
|
||||
tst.w fw_DisableLMBExit(a6)
|
||||
bne.s .noabort
|
||||
ENDC
|
||||
btst #6,$bfe001
|
||||
beq .abortdemo
|
||||
.noabort
|
||||
@ -246,7 +253,7 @@ fw_RemTask:
|
||||
tst.l ft_USP(a1)
|
||||
bne.s .remove
|
||||
rts
|
||||
.remove PUTMSG 10,<"%d: Removing still running task %p (%s)">,
|
||||
.remove PUTMSG 10,<"%d: Removing still running task %p (%s)">,fw_FrameCounter-2(a6),a1,LN_NAME(a1)
|
||||
clr.l ft_USP(a1)
|
||||
REMOVE
|
||||
rts
|
||||
@ -309,9 +316,10 @@ fw_backgroundtask_restore_irq:
|
||||
addq.w #1,fw_FrameCounter(a6)
|
||||
|
||||
IF (FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
|
||||
tst.w fw_MusicEnabled(a6)
|
||||
move.l fw_MusicTickRoutine(a6),d0
|
||||
beq.s .skipmus
|
||||
bsr fw_MusicPlay
|
||||
move.l d0,a0
|
||||
jsr (a0) ; IRQ must maintain d4-d7/a4
|
||||
.skipmus
|
||||
ENDC
|
||||
|
||||
@ -388,7 +396,7 @@ fw_AddAndRunBlitterTask:
|
||||
ENABLE_INTS
|
||||
rts
|
||||
.irqcleanup
|
||||
PUTMSG 30,<"%d: blitter task finished">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 30,<"%d: blitter task finished">,fw_FrameCounter-2(a6)
|
||||
move.l fw_VBR(a6),a0
|
||||
move.l fw_DefaultIRQ(a6),$6c(a0)
|
||||
clr.l fw_BackgroundTask(a6) ; make sure we don't have a stray pointer
|
||||
|
@ -371,7 +371,7 @@ fw_TrackloaderLoadAndDecrunchLZ4Delta8:
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
; Waits for a diskchange (disk is removed and inserted again)
|
||||
;
|
||||
;
|
||||
fw_TrackloaderWaitForDiskChange:
|
||||
PUSHM a4
|
||||
lea $bfd100,a4
|
||||
@ -394,7 +394,7 @@ fw_TrackloaderWaitForDiskChange:
|
||||
; d1.l - bytes to read (may be odd, but one extra byte will be written then)
|
||||
; returns a1 end of buffer written
|
||||
fw_LoadMFM:
|
||||
PUTMSG 10,<"%d: LoadMFM of %ld bytes at offset %ld to %p">,fw_FrameCounterLong(a6),d1,d0,a0
|
||||
PUTMSG 10,<"%d: LoadMFM of %ld bytes at offset %ld to %p">,fw_FrameCounter-2(a6),d1,d0,a0
|
||||
IF FW_MULTITASKING_SUPPORT
|
||||
.retry
|
||||
subq.w #1,fw_TrackloaderIdle(a6)
|
||||
@ -474,7 +474,7 @@ fw_LoadMFM:
|
||||
.finished
|
||||
move.l a3,a1
|
||||
POPM
|
||||
PUTMSG 10,<"%d: Data load finished">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Data load finished">,fw_FrameCounter-2(a6)
|
||||
IF FW_MULTITASKING_SUPPORT
|
||||
addq.w #1,fw_TrackloaderIdle(a6)
|
||||
ENDC
|
||||
@ -483,7 +483,7 @@ fw_LoadMFM:
|
||||
|
||||
; Prefetch the next track to be loaded (but not decoded) into MFM buffer
|
||||
fw_PreparePrefetchOfNextTrack:
|
||||
PUTMSG 20,<"%d: PreparePrefetchOfNextTrack %d+1 (%d:%d)">,fw_FrameCounterLong(a6),fw_LastMfmTrack-2(a6),fw_CurrentCylinder-2(a6),fw_CurrentHead-2(a6)
|
||||
PUTMSG 20,<"%d: PreparePrefetchOfNextTrack %d+1 (%d:%d)">,fw_FrameCounter-2(a6),fw_LastMfmTrack-2(a6),fw_CurrentCylinder-2(a6),fw_CurrentHead-2(a6)
|
||||
PUSHM d6
|
||||
clr.w fw_MfmDoPrefetch(a6)
|
||||
tst.w fw_MfmReadingTriggered(a6)
|
||||
@ -696,7 +696,7 @@ fw_FindRightFloppyDriveUnit:
|
||||
|
||||
; turn the floppy motor on and wait until the motor is running
|
||||
fw_MotorOn:
|
||||
PUTMSG 10,<"%d: Motor on">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Motor on">,fw_FrameCounter-2(a6)
|
||||
move.w fw_CurrentDrive(a6),d0
|
||||
addq.w #CIAB_DSKSEL0,d0
|
||||
or.b #CIAF_DSKSEL0|CIAF_DSKSEL1|CIAF_DSKSEL2|CIAF_DSKSEL3,(a4)
|
||||
@ -720,7 +720,7 @@ fw_MotorOff:
|
||||
.retry
|
||||
tst.w fw_MfmReadingTriggered(a6)
|
||||
beq.s .noreadinginprogress
|
||||
PUTMSG 10,<"%d: Waiting for read to finish before turning off motor">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Waiting for read to finish before turning off motor">,fw_FrameCounter-2(a6)
|
||||
bsr fw_WaitForTrackDmaDone
|
||||
.noreadinginprogress
|
||||
IF FW_MULTITASKING_SUPPORT
|
||||
@ -730,7 +730,7 @@ fw_MotorOff:
|
||||
bra.s .retry
|
||||
ENDC
|
||||
.nowait
|
||||
PUTMSG 10,<"%d: Motor Off">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Motor Off">,fw_FrameCounter-2(a6)
|
||||
move.w fw_CurrentDrive(a6),d0
|
||||
addq.w #CIAB_DSKSEL0,d0
|
||||
bset d0,(a4)
|
||||
@ -752,7 +752,7 @@ fw_TriggerReadTrack:
|
||||
PUTMSG 30,<"MfmTrack already read %d">,d0
|
||||
rts
|
||||
.cont
|
||||
PUTMSG 20,<"%d: Triggered reading of track %d">,fw_FrameCounterLong(a6),d0
|
||||
PUTMSG 20,<"%d: Triggered reading of track %d">,fw_FrameCounter-2(a6),d0
|
||||
clr.w fw_MfmReadingDone(a6)
|
||||
move.w d0,fw_LastMfmTrack(a6)
|
||||
|
||||
@ -779,7 +779,7 @@ fw_WaitForTrackDmaDone:
|
||||
rts
|
||||
.waitdma
|
||||
.rereadwaitdma
|
||||
PUTMSG 40,<"%d: MFM Wait">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 40,<"%d: MFM Wait">,fw_FrameCounter-2(a6)
|
||||
IF FW_MULTITASKING_SUPPORT
|
||||
bra.s .firstskipyield
|
||||
ENDC
|
||||
@ -788,7 +788,7 @@ fw_WaitForTrackDmaDone:
|
||||
.firstskipyield
|
||||
btst #INTB_DSKBLK,intreqr+1(a5) ; wait until data read
|
||||
beq.s .waitdmadone
|
||||
PUTMSG 20,<"%d: MFM Done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 20,<"%d: MFM Done">,fw_FrameCounter-2(a6)
|
||||
st fw_MfmReadingDone(a6)
|
||||
clr.w fw_MfmReadingTriggered(a6)
|
||||
rts
|
||||
@ -799,7 +799,7 @@ fw_DecodeMfmTrack:
|
||||
|
||||
.rereadwaitdma
|
||||
bsr fw_WaitForTrackDmaDone
|
||||
PUTMSG 20,<"%d: Decoding Track %d">,fw_FrameCounterLong(a6),fw_LastMfmTrack-2(a6)
|
||||
PUTMSG 20,<"%d: Decoding Track %d">,fw_FrameCounter-2(a6),fw_LastMfmTrack-2(a6)
|
||||
move.w #-1,fw_LastTrack(a6) ; mark last track buffer as invalid in case of error
|
||||
move.l #$55555555,d3 ; and-const
|
||||
|
||||
@ -881,7 +881,7 @@ fw_DecodeMfmTrack:
|
||||
move.w fw_LastMfmTrack(a6),fw_LastTrack(a6)
|
||||
move.w fw_LastMfmTrack(a6),d0
|
||||
ext.l d0
|
||||
PUTMSG 10,<"%d: Decoded Track %d">,fw_FrameCounterLong(a6),d0
|
||||
PUTMSG 10,<"%d: Decoded Track %d">,fw_FrameCounter-2(a6),d0
|
||||
POPM
|
||||
rts
|
||||
|
||||
|
@ -186,16 +186,15 @@ LSP_MusicInit:
|
||||
move.w (a0)+,d0 ; codes table size
|
||||
move.l a0,fw_LspCodeTableAddr(a6) ; code table
|
||||
add.w d0,d0
|
||||
add.w d0,a0
|
||||
adda.w d0,a0
|
||||
|
||||
; read sequence timing infos (if any)
|
||||
move.w (a0)+,d0
|
||||
move.w d0,(a3)+ ; fw_LspSeqCount
|
||||
move.l a0,(a3)+ ; fw_LspSeqTable
|
||||
clr.w (a3)+ ; fw_LspCurrentSeq
|
||||
move.w d0,d1
|
||||
lsl.w #3,d1 ; 8 bytes per entry
|
||||
adda.w d1,a0
|
||||
lsl.w #3,d0 ; 8 bytes per entry
|
||||
adda.w d0,a0
|
||||
|
||||
movem.l (a0)+,d0/d1/d2 ; word stream size/byte stream loop point/word stream loop point
|
||||
move.l a0,(a3)+ ; fw_LspStreamBase
|
||||
|
@ -53,6 +53,8 @@ LSP_MusicDriver_CIA_Start:
|
||||
; d1: PAL(0) or NTSC(1)
|
||||
.LSP_IrqInstall
|
||||
move.w #INTF_EXTER,intena(a5) ; disable CIA interrupt
|
||||
lea LSP_MusicPlayTick(pc),a0
|
||||
move.l a0,fw_MusicTickRoutine(a6)
|
||||
lea .LSP_MainIrq(pc),a0
|
||||
move.l fw_VBR(a6),a2
|
||||
move.l a0,$78(a2)
|
||||
@ -92,7 +94,8 @@ LSP_MusicDriver_CIA_Start:
|
||||
; call player tick
|
||||
lea $dff000,a5
|
||||
move.l fw_BasePtr(pc),a6
|
||||
bsr LSP_MusicPlayTick ; LSP main music driver tick
|
||||
move.l fw_MusicTickRoutine(a6),a0
|
||||
jsr (a0) ; LSP main music driver tick
|
||||
|
||||
; check if BMP changed in the middle of the music
|
||||
lea $bfd000,a4
|
||||
|
158
source/framework/musicplayers/lightspeedplayer_micro.asm
Normal file
158
source/framework/musicplayers/lightspeedplayer_micro.asm
Normal file
@ -0,0 +1,158 @@
|
||||
;*****************************************************************
|
||||
;
|
||||
; Light Speed Player v1.20
|
||||
; Fastest Amiga MOD player ever :)
|
||||
; Written By Arnaud Carré (aka Leonard / OXYGENE)
|
||||
; Adapted to demo framework (and optimized) by platon42.
|
||||
; https://github.com/arnaud-carre/LSPlayer
|
||||
; twitter: @leonard_coder
|
||||
;
|
||||
; "micro mode" player version ( average time: 1.5 scanline )
|
||||
; This mode focus on music data compression ratio. Suited for 4KiB or small intros
|
||||
; Do not support various BPM, music getPos/setPos and sample without a note
|
||||
;
|
||||
; You can also use classic "standard" player to support all features
|
||||
; Or you can use generated "ultra fast" player code for half scanline replayer ("-insane" option)
|
||||
;
|
||||
; LSP_MusicInitMicro Initialize a LSP driver + relocate score&bank music data
|
||||
; LSP_MusicPlayTickMicro Play a LSP music (call it per frame)
|
||||
;
|
||||
;*****************************************************************
|
||||
|
||||
;------------------------------------------------------------------
|
||||
;
|
||||
; LSP_MusicInitMicro
|
||||
;
|
||||
; In: a0: LSP music data(any memory)
|
||||
; a1: LSP sound bank(chip memory)
|
||||
;
|
||||
;------------------------------------------------------------------
|
||||
;LSP_dataError: illegal
|
||||
|
||||
LSP_MusicInitMicro:
|
||||
IF 0
|
||||
cmpi.l #'LSPm',(a0)+ ; LSP "micro" mode signature
|
||||
bne.s LSP_dataError
|
||||
cmpi.w #$0118,(a0)+ ; this play routine supports v1.24 as minimal version of LPConvert.exe
|
||||
blt.s LSP_dataError
|
||||
ELSE
|
||||
addq.l #6,a0
|
||||
ENDC
|
||||
lea fw_LspLastDmaCon(a6),a2
|
||||
clr.w (a2)+ ; fw_LspLastDmaCon
|
||||
move.w (a0)+,(a2)+ ; fw_LspCurrentBpm, default song BPM
|
||||
move.w (a0)+,d7 ; instrument count
|
||||
move.l a0,(a2)+ ; fw_LspInstruments, instrument tab addr
|
||||
move.l a1,d1
|
||||
subq.w #1,d7
|
||||
.relocloop
|
||||
add.l d1,(a0)
|
||||
addq.l #6,a0
|
||||
add.l d1,(a0)
|
||||
addq.l #6,a0
|
||||
dbra d7,.relocloop
|
||||
;lea fw_LspStreams(a6),a2
|
||||
lea 16*4(a0),a1
|
||||
; do not stress about this rept, your exe packer will enjoy it
|
||||
REPT 16
|
||||
move.l (a0)+,d1
|
||||
add.l a1,d1
|
||||
move.l d1,fw_LspLoopStreams-fw_LspStreams(a2) ; set loopStreams at 0 by default
|
||||
move.l d1,(a2)+
|
||||
ENDR
|
||||
bset.b #1,$bfe001 ; disabling this fucking Low pass filter!!
|
||||
rts
|
||||
|
||||
;------------------------------------------------------------------
|
||||
;
|
||||
; LSP_MusicPlayTickMicro
|
||||
;
|
||||
; In: a5: should be $dff000
|
||||
; Out:None
|
||||
;
|
||||
;------------------------------------------------------------------
|
||||
LSP_MusicPlayTickMicro:
|
||||
move.w fw_LspLastDmaCon(a6),d0
|
||||
beq.s .skip
|
||||
lea fw_LspResetv(a6),a3
|
||||
lea aud+4*ac_SIZEOF(a5),a2
|
||||
moveq.l #4-1,d7
|
||||
.rloop lea -ac_SIZEOF(a2),a2
|
||||
btst d7,d0
|
||||
beq.s .norst
|
||||
move.l (a3)+,ac_ptr(a2)
|
||||
move.w (a3)+,ac_len(a2)
|
||||
.norst dbra d7,.rloop
|
||||
|
||||
.skip lea fw_LspStreams(a6),a1
|
||||
moveq.l #0,d3
|
||||
lea fw_LspResetv(a6),a3
|
||||
lea aud+4*ac_SIZEOF(a5),a2
|
||||
moveq.l #4-1,d7
|
||||
.vloop lea -ac_SIZEOF(a2),a2
|
||||
moveq.l #16,d4
|
||||
move.l a1,a4
|
||||
move.l (a4),a0
|
||||
move.b (a0)+,d0 ; cmd for current voice
|
||||
move.l a0,(a1)+ ; update cmd stream ptr
|
||||
adda.w d4,a4
|
||||
add.b d0,d0
|
||||
bcc.s .novol
|
||||
move.l (a4),a0
|
||||
move.b (a0)+,ac_vol+1(a2)
|
||||
move.l a0,(a4)
|
||||
.novol adda.w d4,a4
|
||||
add.b d0,d0
|
||||
bcc.s .noper
|
||||
move.l (a4),a0
|
||||
move.w (a0)+,ac_per(a2)
|
||||
move.l a0,(a4)
|
||||
.noper adda.w d4,a4
|
||||
add.b d0,d0
|
||||
bcc.s .noinstr
|
||||
move.l (a4),a0
|
||||
moveq.l #0,d1
|
||||
move.b (a0)+,d1
|
||||
move.l a0,(a4)
|
||||
|
||||
; prepare instrument
|
||||
IF 1
|
||||
mulu #12,d1
|
||||
ELSE
|
||||
move.w d1,d2
|
||||
lsl.w #2,d1 ; x*4
|
||||
lsl.w #3,d2 ; x*8
|
||||
add.w d2,d1 ; x*(4+8)
|
||||
ENDIF
|
||||
move.l fw_LspInstruments(a6),a0
|
||||
adda.w d1,a0
|
||||
bset d7,d3
|
||||
move.l (a0)+,ac_ptr(a2)
|
||||
move.w (a0)+,ac_len(a2)
|
||||
move.l (a0)+,(a3)+
|
||||
move.w (a0)+,(a3)+
|
||||
|
||||
.noinstr
|
||||
dbra d7,.vloop
|
||||
|
||||
move.w d3,dmacon(a5)
|
||||
move.w d3,fw_LspLastDmaCon(a6)
|
||||
move.l fw_LspDmaConPatch(a6),a0
|
||||
move.b d3,(a0)
|
||||
|
||||
add.b d0,d0
|
||||
bcc.s .noloopcmd
|
||||
|
||||
; backup or restore current song position
|
||||
lea fw_LspStreams(a6),a0
|
||||
lea fw_LspLoopStreams(a6),a1
|
||||
add.b d0,d0
|
||||
bcc.s .skiprestore
|
||||
exg a0,a1
|
||||
.skiprestore
|
||||
; do not stress about this rept, your exe packer will enjoy it
|
||||
REPT 16
|
||||
move.l (a0)+,(a1)+
|
||||
ENDR
|
||||
.noloopcmd
|
||||
rts
|
170
source/framework/musicplayers/lightspeedplayer_nano.asm
Normal file
170
source/framework/musicplayers/lightspeedplayer_nano.asm
Normal file
@ -0,0 +1,170 @@
|
||||
;*****************************************************************
|
||||
;
|
||||
; Light Speed Player v1.20
|
||||
; Fastest Amiga MOD player ever :)
|
||||
; Written By Arnaud Carré (aka Leonard / OXYGENE)
|
||||
; Adapted to demo framework (and optimized) by platon42.
|
||||
; https://github.com/arnaud-carre/LSPlayer
|
||||
; twitter: @leonard_coder
|
||||
;
|
||||
; "nano mode" player version (average time: 1-2 scanlines)
|
||||
; This mode focus on music data compression ratio. Suited for 4KiB or small intros
|
||||
; Only supports VBL timing, 32 KB max stream data, no portamentos/slides,
|
||||
; no support for music getPos/setPos and sample without a note
|
||||
;
|
||||
; You can also use classic "standard" player to support all features
|
||||
; Or you can use generated "ultra fast" player code for half scanline replayer ("-insane" option)
|
||||
;
|
||||
; LSP_MusicInitNano Initialize a LSP driver + relocate score&bank music data
|
||||
; LSP_MusicPlayTickNano Play a LSP music (call it per frame)
|
||||
;
|
||||
;*****************************************************************
|
||||
|
||||
;------------------------------------------------------------------
|
||||
;
|
||||
; LSP_MusicInitNano
|
||||
;
|
||||
; In: a0: LSP music data(any memory)
|
||||
; a1: LSP sound bank(chip memory)
|
||||
;
|
||||
;------------------------------------------------------------------
|
||||
|
||||
LSP_MusicInitNano:
|
||||
lea fw_LspPeriodTable(a6),a2
|
||||
IF 0
|
||||
move.w #$e2b3,d0
|
||||
move.l #$0fc0fd20,d2
|
||||
moveq.l #0,d3
|
||||
moveq.l #36-1,d7
|
||||
.ploop mulu #61865,d0
|
||||
swap d0
|
||||
move.w d0,d1
|
||||
lsr.w #6,d1
|
||||
add.l d2,d2
|
||||
subx.w d3,d1
|
||||
move.w d1,(a2)+
|
||||
dbra d7,.ploop
|
||||
ELSE
|
||||
move.w #$e2b3,d0
|
||||
moveq.l #36-1,d7
|
||||
.ploop mulu #61865,d0
|
||||
swap.w d0
|
||||
move.w d0,d1
|
||||
lsr.w #6,d1
|
||||
move.w d1,(a2)+
|
||||
dbra d7,.ploop
|
||||
ENDC
|
||||
|
||||
clr.w (a2)+ ; fw_LspLastDmaCon
|
||||
move.w (a0)+,d7 ; instrument count-1
|
||||
move.l a0,(a2)+ ; fw_LspInstruments, instrument tab addr
|
||||
move.l a1,d0
|
||||
.relocloop
|
||||
add.l d0,(a0)
|
||||
addq.l #6,a0
|
||||
add.l d0,(a0)
|
||||
addq.l #6,a0
|
||||
dbra d7,.relocloop
|
||||
|
||||
; do not stress about this rept, your exe packer will enjoy it
|
||||
REPT 16
|
||||
move.l a0,a1
|
||||
adda.w (a0)+,a1
|
||||
move.l a1,fw_LspLoopStreams-fw_LspStreams(a2) ; set loopStreams at 0 by default
|
||||
move.l a1,(a2)+
|
||||
ENDR
|
||||
bset.b #1,$bfe001 ; disabling this fucking Low pass filter!!
|
||||
|
||||
rts
|
||||
|
||||
;------------------------------------------------------------------
|
||||
;
|
||||
; LSP_MusicPlayTickNano
|
||||
;
|
||||
; In: a5: should be $dff000
|
||||
; Out:None
|
||||
;
|
||||
;------------------------------------------------------------------
|
||||
LSP_MusicPlayTickNano:
|
||||
move.w fw_LspLastDmaCon(a6),d0
|
||||
beq.s .skip
|
||||
lea fw_LspResetv(a6),a3
|
||||
lea aud+4*ac_SIZEOF(a5),a2
|
||||
moveq.l #4-1,d7
|
||||
.rloop lea -ac_SIZEOF(a2),a2
|
||||
btst d7,d0
|
||||
beq.s .norst
|
||||
move.l (a3)+,ac_ptr(a2)
|
||||
move.w (a3)+,ac_len(a2)
|
||||
.norst dbra d7,.rloop
|
||||
|
||||
.skip lea fw_LspStreams(a6),a1
|
||||
moveq.l #0,d3
|
||||
lea fw_LspPeriodTable(a6),a4
|
||||
lea fw_LspResetv(a6),a3
|
||||
lea aud+4*ac_SIZEOF(a5),a2
|
||||
moveq.l #4-1,d7
|
||||
.vloop lea -ac_SIZEOF(a2),a2
|
||||
move.l (a1),a0
|
||||
move.b (a0)+,d1 ; cmd for current voice
|
||||
move.l a0,(a1) ; update cmd stream ptr
|
||||
move.w d1,d0
|
||||
addq.l #4,a1
|
||||
add.b d0,d0
|
||||
bcc.s .novol
|
||||
move.l (a1),a0
|
||||
moveq.l #0,d1
|
||||
move.b (a0)+,d1
|
||||
move.l a0,(a1)
|
||||
move.w d1,ac_vol(a2)
|
||||
.novol addq.l #4,a1
|
||||
add.b d0,d0
|
||||
bcc.s .noper
|
||||
move.l (a1),a0
|
||||
moveq.l #0,d1
|
||||
move.b (a0)+,d1
|
||||
move.l a0,(a1)
|
||||
move.w (a4,d1.w),ac_per(a2)
|
||||
.noper addq.l #4,a1
|
||||
add.b d0,d0
|
||||
bcc.s .noinstr
|
||||
move.l (a1),a0
|
||||
moveq.l #0,d1
|
||||
move.b (a0)+,d1
|
||||
move.l a0,(a1)
|
||||
|
||||
; prepare instrument
|
||||
move.l fw_LspInstruments(a6),a0
|
||||
mulu #12,d1
|
||||
adda.w d1,a0
|
||||
bset d7,d3
|
||||
move.l (a0)+,ac_ptr(a2)
|
||||
move.w (a0)+,ac_len(a2)
|
||||
move.l (a0)+,(a3)+
|
||||
move.w (a0)+,(a3)+
|
||||
|
||||
.noinstr
|
||||
addq.l #4,a1
|
||||
dbra d7,.vloop
|
||||
|
||||
move.w d3,dmacon(a5)
|
||||
move.w d3,fw_LspLastDmaCon(a6)
|
||||
move.l fw_LspDmaConPatch(a6),a0
|
||||
move.b d3,(a0)
|
||||
|
||||
add.b d0,d0
|
||||
bcc.s .noloopcmd
|
||||
|
||||
; backup or restore current song position
|
||||
lea fw_LspStreams(a6),a0
|
||||
lea fw_LspLoopStreams(a6),a1
|
||||
add.b d0,d0
|
||||
bcc.s .skiprestore
|
||||
exg a0,a1
|
||||
.skiprestore
|
||||
; do not stress about this rept, your exe packer will enjoy it
|
||||
REPT 16
|
||||
move.l (a0)+,(a1)+
|
||||
ENDR
|
||||
.noloopcmd
|
||||
rts
|
@ -28,9 +28,12 @@ fw_MusicStop:
|
||||
;--------------------------------------------------------------------
|
||||
; sets the position if supported
|
||||
; d0.w = new position
|
||||
IFNE DEBUG_DETAIL
|
||||
fw_MusicSetPosition EQU LSP_MusicSetPos
|
||||
ELSE
|
||||
fw_MusicSetPosition:
|
||||
bra LSP_MusicSetPos
|
||||
rts
|
||||
ENDC
|
||||
|
||||
|
||||
include "../framework/musicplayers/lightspeedplayer_cia.asm"
|
||||
include "../framework/musicplayers/lightspeedplayer.asm"
|
||||
include "musicplayers/lightspeedplayer_cia.asm"
|
||||
include "musicplayers/lightspeedplayer.asm"
|
@ -7,6 +7,8 @@ fw_MusicInit:
|
||||
bsr.s LSP_MusicInit
|
||||
moveq.l #-1,d0
|
||||
move.w d0,fw_MusicFrameCount(a6)
|
||||
lea fw_MusicPlay(pc),a0
|
||||
move.l a0,fw_MusicTickRoutine(a6)
|
||||
PUTMSG 10,<"Music-Init done">
|
||||
rts
|
||||
|
||||
@ -17,6 +19,7 @@ fw_MusicPlay:
|
||||
rts
|
||||
|
||||
fw_MusicStop:
|
||||
clr.l fw_MusicTickRoutine(a6)
|
||||
move.w #DMAF_AUDIO,dmacon(a5)
|
||||
; unsupported right now
|
||||
rts
|
||||
@ -24,7 +27,11 @@ fw_MusicStop:
|
||||
;--------------------------------------------------------------------
|
||||
; sets the position if supported
|
||||
; d0.w = new position
|
||||
IFNE DEBUG_DETAIL
|
||||
fw_MusicSetPosition EQU LSP_MusicSetPos
|
||||
ELSE
|
||||
fw_MusicSetPosition:
|
||||
bra LSP_MusicSetPos
|
||||
rts
|
||||
ENDC
|
||||
|
||||
include "../framework/musicplayers/lightspeedplayer.asm"
|
||||
include "musicplayers/lightspeedplayer.asm"
|
||||
|
@ -1,5 +1,4 @@
|
||||
fw_MusicInit:
|
||||
fw_MusicStop:
|
||||
fw_MusicPlay:
|
||||
fw_MusicSetPosition:
|
||||
rts
|
||||
|
@ -15,7 +15,7 @@ fw_MusicAlloc:
|
||||
rts
|
||||
|
||||
fw_MusicInit:
|
||||
PUTMSG 10,<"%d: Pretracker song init %p %p">,fw_FrameCounterLong(a6),a0,a1
|
||||
PUTMSG 10,<"%d: Pretracker song init %p %p">,fw_FrameCounter-2(a6),a0,a1
|
||||
move.l a0,a2
|
||||
PUSHM d7/a1
|
||||
move.l fw_PretrackerMyPlayer(a6),a0
|
||||
@ -34,7 +34,7 @@ fw_MusicInit:
|
||||
move.l a0,a1
|
||||
.noalloc
|
||||
|
||||
PUTMSG 10,<"%d: Pretracker player init">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Pretracker player init">,fw_FrameCounter-2(a6)
|
||||
move.l fw_PretrackerMyPlayer(a6),a0
|
||||
move.l fw_PretrackerMySong(a6),a2
|
||||
|
||||
@ -42,17 +42,19 @@ fw_MusicInit:
|
||||
adda.w 6(a3),a3
|
||||
jsr (a3) ; playerInit
|
||||
|
||||
PUTMSG 10,<"%d: Pretracker init done">,fw_FrameCounterLong(a6)
|
||||
lea fw_MusicPlay(pc),a0
|
||||
move.l a0,fw_MusicTickRoutine(a6)
|
||||
PUTMSG 10,<"%d: Pretracker init done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
fw_MusicPlay:
|
||||
move.l fw_PretrackerMyPlayer(a6),a0
|
||||
lea fw_PretrackerReplayer(pc),a3
|
||||
adda.w 10(a3),a3
|
||||
jsr (a3) ; playerTick
|
||||
rts
|
||||
jmp (a3) ; playerTick
|
||||
|
||||
fw_MusicStop:
|
||||
clr.l fw_MusicTickRoutine(a6)
|
||||
move.w #DMAF_AUDIO,dmacon(a5)
|
||||
; unsupported right now
|
||||
rts
|
||||
@ -60,5 +62,5 @@ fw_MusicStop:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
fw_PretrackerReplayer:
|
||||
;include "../framework/musicplayers/pretracker_replayer_resourced.asm"
|
||||
incbin "../framework/musicplayers/pretracker_replayer_binary_blob.bin"
|
||||
;include "musicplayers/pretracker_replayer_resourced.asm"
|
||||
incbin "musicplayers/pretracker_replayer_binary_blob.bin"
|
||||
|
@ -5,16 +5,38 @@
|
||||
fail "FW_DYNAMIC_MEMORY_SUPPORT must be enabled"
|
||||
ENDC
|
||||
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==6)
|
||||
IFND FW_PRETRACKER_JITTER_BUFFER_SIZE
|
||||
FW_PRETRACKER_JITTER_BUFFER_SIZE = 38*4 ; default is 37 insts + end of copperlist
|
||||
ENDC
|
||||
IFND FW_PRETRACKER_NUM_JITTER_BUFFERS
|
||||
FW_PRETRACKER_NUM_JITTER_BUFFERS = 50
|
||||
ENDC
|
||||
ENDC
|
||||
|
||||
fw_MusicAlloc:
|
||||
move.l #pv_SIZEOF+sv_SIZEOF,d0
|
||||
bsr fw_AllocFast
|
||||
move.l a0,fw_PretrackerMyPlayer(a6)
|
||||
lea pv_SIZEOF(a0),a0
|
||||
move.l a0,fw_PretrackerMySong(a6)
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==6)
|
||||
move.l #FW_PRETRACKER_NUM_JITTER_BUFFERS*FW_PRETRACKER_JITTER_BUFFER_SIZE,d0
|
||||
bsr fw_AllocChip
|
||||
move.l a0,fw_PretrackerCopperlistStart(a6)
|
||||
move.l a0,fw_PretrackerCopperWritePtr(a6)
|
||||
lea (FW_PRETRACKER_NUM_JITTER_BUFFERS-1)*FW_PRETRACKER_JITTER_BUFFER_SIZE(a0),a0
|
||||
move.l a0,fw_PretrackerCopperReadPtr(a6)
|
||||
lea FW_PRETRACKER_JITTER_BUFFER_SIZE(a0),a0
|
||||
move.l a0,fw_PretrackerCopperlistEnd(a6)
|
||||
move.l #ft_SIZEOF,d0
|
||||
bsr fw_AllocFast
|
||||
move.l a0,fw_PretrackerBgTask(a6)
|
||||
ENDC
|
||||
rts
|
||||
|
||||
fw_MusicInit:
|
||||
PUTMSG 10,<"%d: Pretracker song init %p %p">,fw_FrameCounterLong(a6),a0,a1
|
||||
PUTMSG 10,<"%d: Pretracker song init %p %p">,fw_FrameCounter-2(a6),a0,a1
|
||||
move.l a0,a2
|
||||
PUSHM d4-d7/a1/a4-a6
|
||||
;move.l fw_PretrackerMyPlayer(a6),a0 ; unused
|
||||
@ -31,7 +53,7 @@ fw_MusicInit:
|
||||
move.l a0,a1
|
||||
.noalloc
|
||||
|
||||
PUTMSG 10,<"%d: Pretracker player init">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Pretracker player init">,fw_FrameCounter-2(a6)
|
||||
move.l fw_PretrackerMyPlayer(a6),a0
|
||||
move.l fw_PretrackerMySong(a6),a2
|
||||
lea fw_PretrackerProgress(a6),a3
|
||||
@ -41,31 +63,92 @@ fw_MusicInit:
|
||||
bsr pre_PlayerInit
|
||||
POPM
|
||||
|
||||
PUTMSG 10,<"%d: Pretracker init done">,fw_FrameCounterLong(a6)
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==6)
|
||||
move.l fw_PretrackerBgTask(a6),a1
|
||||
move.b #20,LN_PRI(a1)
|
||||
lea fw_PretrackerAheadTask(pc),a0
|
||||
bsr fw_AddTask
|
||||
ENDC
|
||||
|
||||
lea fw_MusicPlay(pc),a0
|
||||
move.l a0,fw_MusicTickRoutine(a6)
|
||||
|
||||
PUTMSG 10,<"%d: Pretracker init done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==6)
|
||||
fw_PretrackerAheadTask:
|
||||
move.l fw_PretrackerCopperWritePtr(a6),a1
|
||||
.loop
|
||||
move.l a1,fw_PretrackerCopperWritePtr(a6)
|
||||
move.l fw_PretrackerMyPlayer(a6),a0
|
||||
PUSHM a1/a5/a6
|
||||
bsr pre_PlayerTick
|
||||
POPM
|
||||
lea FW_PRETRACKER_JITTER_BUFFER_SIZE(a1),a1
|
||||
cmp.l fw_PretrackerCopperlistEnd(a6),a1
|
||||
bne.s .nowrap
|
||||
move.l fw_PretrackerCopperlistStart(a6),a1
|
||||
.nowrap
|
||||
.retry
|
||||
cmp.l fw_PretrackerCopperReadPtr(a6),a1
|
||||
bne.s .loop
|
||||
bsr fw_Yield
|
||||
bra.s .retry
|
||||
|
||||
fw_MusicPlay:
|
||||
move.l fw_PretrackerCopperReadPtr(a6),a1
|
||||
lea FW_PRETRACKER_JITTER_BUFFER_SIZE(a1),a1
|
||||
cmp.l fw_PretrackerCopperlistEnd(a6),a1
|
||||
bne.s .nowrap
|
||||
move.l fw_PretrackerCopperlistStart(a6),a1
|
||||
.nowrap
|
||||
move.l a1,fw_PretrackerCopperlist(a6)
|
||||
|
||||
cmp.l fw_PretrackerCopperWritePtr(a6),a1
|
||||
bne.s .good
|
||||
PUTMSG 10,<"Pretracker buffer underflow">
|
||||
rts
|
||||
.good move.l a1,fw_PretrackerCopperReadPtr(a6)
|
||||
rts
|
||||
|
||||
fw_MusicStop:
|
||||
move.l fw_PretrackerBgTask(a6),a1
|
||||
bsr fw_RemTask
|
||||
clr.l fw_MusicTickRoutine(a6)
|
||||
move.w #DMAF_AUDIO,dmacon(a5)
|
||||
; unsupported right now
|
||||
rts
|
||||
|
||||
ELSE
|
||||
|
||||
fw_MusicPlay:
|
||||
PUSHM d4-d7/a4-a6
|
||||
move.l fw_PretrackerMyPlayer(a6),a0
|
||||
IF (FW_MUSIC_PLAYER_CHOICE>=5)
|
||||
move.l fw_PretrackerCopperlist(a6),a1
|
||||
ENDC
|
||||
bsr.s pre_PlayerTick
|
||||
POPM
|
||||
rts
|
||||
|
||||
fw_MusicStop:
|
||||
clr.l fw_MusicTickRoutine(a6)
|
||||
move.w #DMAF_AUDIO,dmacon(a5)
|
||||
; unsupported right now
|
||||
rts
|
||||
ENDC
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
; sets the position if supported
|
||||
; d0.w = new position
|
||||
fw_MusicSetPosition:
|
||||
move.w d0,fw_PretrackerMySong+sv_curr_pat_pos_w(a6)
|
||||
move.l fw_PretrackerMyPlayer(a6),a0
|
||||
move.w d0,pv_curr_pat_pos_w(a0)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
PRETRACKER_COPPER_OUTPUT = FW_MUSIC_PLAYER_CHOICE-4
|
||||
PRETRACKER_DONT_TRASH_REGS = 0
|
||||
|
||||
include "../framework/musicplayers/raspberry_casket.asm"
|
||||
include "musicplayers/raspberry_casket.asm"
|
||||
|
File diff suppressed because it is too large
Load Diff
345
source/framework/musicplayers/raspberry_casket.i
Normal file
345
source/framework/musicplayers/raspberry_casket.i
Normal file
@ -0,0 +1,345 @@
|
||||
; Pretracker song format description:
|
||||
;
|
||||
; $0000 4: PRT<version> ($19/$1a (V0.x), $1b (V1.0), $1e (V1.5))
|
||||
; $0004 4: File offset to position data (POSD)
|
||||
; $0008 4: File offset to pattern data (PATT)
|
||||
; $000C 4: File offset to instruments (INST)
|
||||
; $0010 4: File offset to waves (WAVE)
|
||||
; $0014 20: Songname
|
||||
; $0028 20: Author
|
||||
; $003C 1: Restart position for song (<=V1.0)
|
||||
; $003D 1: Number of patterns (<=V1.0)
|
||||
; $003E 1: Songlength in patterns (<=V1.0)
|
||||
; $003F 1: Number of steps per pattern (<=V1.0)
|
||||
; $0040 1: Number of instruments (<=V1.0), $40 for V1.5
|
||||
; $0041 1: Number of waves
|
||||
; $0042 24: Wave generation ordering (>=V1.0)
|
||||
; $005a 1: Number of subsongs (>=V1.5)
|
||||
; [...]
|
||||
; Position data (POSD):
|
||||
; - Per subsong (>=V1.5)
|
||||
; - 1: Restart pos
|
||||
; - 1: #patterns
|
||||
; - 1: #numsteps
|
||||
; - 1: songlength
|
||||
; - 4: relative pattern offset in pattern data
|
||||
; - Positions x 4 x [Pattern number (byte), pitch shift (signed byte)]
|
||||
;
|
||||
; Pattern data (PATT):
|
||||
; Each pattern line consists of three bytes:
|
||||
; - 1 Bit : Bit 4 of Inst Number
|
||||
; - 1 Bit : ARP instead of effect
|
||||
; - 6 Bits: Pitch ($01 is C-0, $3d is NOTE OFF)
|
||||
;
|
||||
; - 4 Bits: Bit 0-3 of Inst Number
|
||||
; - 4 Bits: Effect command
|
||||
; - 8 Bits: Effect data
|
||||
; - Patterns x steps x 3 bytes
|
||||
;
|
||||
; Unknown data after pattern data: (12 10 00 00 00 00)
|
||||
;
|
||||
; Instrument definitions (INST):
|
||||
; - 32 (!) x Null terminated string (or 23 chars max) (for V1.5 this is 64 strings)
|
||||
; - For each instrument: Instrument Info (ININ)
|
||||
; - $00 1: Vibrato Delay
|
||||
; - $01 1: Vibrato Depth
|
||||
; - $02 1: Vibrato Speed (-1)
|
||||
; - $03 1: ADSR Attack
|
||||
; - $04 1: ADSR Decay
|
||||
; - $05 1: ADSR Sustain
|
||||
; - $06 1: ADSR Release
|
||||
; - $07 1: Number of Inst Pattern steps
|
||||
;
|
||||
; - For each instrument:
|
||||
; - 1 Byte: number of steps
|
||||
; - 3 Bytes x number of steps: Inst Pattern (IPTT)
|
||||
;
|
||||
; Inst pattern data (IPTT):
|
||||
; Each pattern line consists of three bytes:
|
||||
; - 1 Bit : Next note stitched to this one
|
||||
; - 1 Bit : Fixed Pitch Note
|
||||
; - 6 Bits : Pitch ($01 is C-0)
|
||||
; - 4 Bits : unused?
|
||||
; - 12 Bits: Effect
|
||||
;
|
||||
; Wave definitions (WAVE):
|
||||
; - 24 (!) x Null terminated string (or 23 chars max)
|
||||
; - Optional padding to even address, if necessary
|
||||
; - For each wave:
|
||||
; - 42 Bytes: Wave info structure (see definition below)
|
||||
|
||||
; ----------------------------------------
|
||||
; Some constants for clarity
|
||||
|
||||
MAX_VOLUME = $40
|
||||
MAX_SPEED = $2f
|
||||
MAX_WAVES = 24
|
||||
MAX_INSTRUMENTS = 32
|
||||
MAX_TRACK_DELAY = 32
|
||||
NOTE_OFF_PITCH = $3d
|
||||
NOTES_IN_OCTAVE = 12
|
||||
NUM_CHANNELS = 4 ; yes, you can reduce the number of channels if you want
|
||||
|
||||
; ----------------------------------------
|
||||
; Pretracker file structures
|
||||
|
||||
; Pattern data (PATT and IPTT)
|
||||
pdb_pitch_ctrl = 0
|
||||
pdb_inst_effect = 1 ; for normal pattern data
|
||||
pdb_effect_cmd = 1 ; for inst pattern
|
||||
pdb_effect_data = 2
|
||||
|
||||
; Pattern pos data (POSD)
|
||||
ppd_pat_num = 0
|
||||
ppd_pat_shift = 1
|
||||
|
||||
; Instrument Info (ININ)
|
||||
ii_vibrato_delay = 0
|
||||
ii_vibrato_depth = 1
|
||||
ii_vibrato_speed = 2
|
||||
ii_adsr_attack = 3
|
||||
ii_adsr_decay = 4
|
||||
ii_adsr_sustain = 5
|
||||
ii_adsr_release = 6
|
||||
ii_pattern_steps = 7
|
||||
ii_SIZEOF = 8
|
||||
|
||||
; Wave Info (WAVE)
|
||||
wi_loop_start_w = $00
|
||||
wi_loop_end_w = $02
|
||||
wi_subloop_len_w = $04
|
||||
wi_allow_9xx_b = $06 ; 0x00 / 0x01
|
||||
wi_subloop_wait_b = $07
|
||||
wi_subloop_step_w = $08
|
||||
wi_chipram_w = $0a
|
||||
wi_loop_offset_w = $0c
|
||||
wi_chord_note1_b = $0e
|
||||
wi_chord_note2_b = $0f
|
||||
wi_chord_note3_b = $10
|
||||
wi_chord_shift_b = $11
|
||||
wi_clone_wave_b = $12 ; only used by tracker itself
|
||||
wi_osc_phase_spd_b = $13
|
||||
wi_flags_b = $14 ; bit 0/1: osc type, bit 2: needs extra octaves, bit 3: boost, bit 4: pitch linear, bit 5: vol fast
|
||||
wi_osc_phase_min_b = $15
|
||||
wi_osc_phase_max_b = $16
|
||||
wi_osc_basenote_b = $17
|
||||
wi_osc_gain_b = $18
|
||||
wi_sam_len_b = $19 ; in multiples of 128, zero-based (0 == 128)
|
||||
wi_mix_wave_b = $1a
|
||||
wi_vol_attack_b = $1b
|
||||
wi_vol_delay_b = $1c
|
||||
wi_vol_decay_b = $1d
|
||||
wi_vol_sustain_b = $1e
|
||||
wi_flt_type_b = $1f ; 1=lowpass, 2=highpass, 3=bandpass, 4=notch
|
||||
wi_flt_resonance_b = $20
|
||||
wi_pitch_ramp_b = $21
|
||||
wi_flt_start_b = $22
|
||||
wi_flt_min_b = $23
|
||||
wi_flt_max_b = $24
|
||||
wi_flt_speed_b = $25
|
||||
wi_mod_params_l = $26
|
||||
wi_mod_wetness_b = $26
|
||||
wi_mod_length_b = $27
|
||||
wi_mod_predelay_b = $28
|
||||
wi_mod_density_b = $29 ; (1-7), unisono (bits 3/4) and post bit 5
|
||||
wi_SIZEOF = $2a
|
||||
|
||||
; ----------------------------------------
|
||||
; Unpacked Instrument Info (addition to player for faster processing)
|
||||
rsreset
|
||||
uii_vibrato_delay rs.w 1
|
||||
uii_vibrato_depth rs.w 1
|
||||
uii_vibrato_speed rs.w 1
|
||||
uii_adsr_release rs.b 1
|
||||
rs.b 1 ; dummy
|
||||
uii_adsr_attack rs.w 1
|
||||
uii_adsr_decay rs.w 1
|
||||
uii_adsr_sustain rs.w 1
|
||||
uii_pattern_steps rs.b 1
|
||||
rs.b 1 ; padding
|
||||
uii_SIZEOF rs.b 0
|
||||
|
||||
; ----------------------------------------
|
||||
; MySong offsets
|
||||
rsreset
|
||||
sv_waveinfo_table rs.l MAX_WAVES ; 24 pointers to wave infos to avoid mulu
|
||||
sv_inst_patterns_table rs.l MAX_INSTRUMENTS ; 32 pointers to pattern data
|
||||
; --- 127 byte displacement limit ---
|
||||
sv_wavelength_table rs.l MAX_WAVES ; 24 longwords to sample lengths (standard octave) (NEW)
|
||||
sv_wavetotal_table rs.l MAX_WAVES ; 24 longwords to sample lengths for all octaves (NEW)
|
||||
sv_wavegen_order_table rs.b MAX_WAVES ; 24 bytes
|
||||
sv_num_waves_b rs.b 1
|
||||
sv_num_steps_b rs.b 1
|
||||
sv_pat_pos_len_w rs.w 1 ; only byte used
|
||||
sv_pat_restart_pos_w rs.w 1 ; only byte used
|
||||
sv_pos_data_adr rs.l 1
|
||||
sv_waveinfo_ptr rs.l 1 ; base pointer of wave info
|
||||
sv_inst_infos_table rs.b MAX_INSTRUMENTS*uii_SIZEOF
|
||||
sv_pattern_table rs.l 256
|
||||
sv_SIZEOF rs.b 0
|
||||
|
||||
; ----------------------------------------
|
||||
; channel output data (part of pcd structure below) -- FIXED ORDER!
|
||||
rsreset
|
||||
ocd_sam_ptr rs.l 1 ; 0
|
||||
ocd_length rs.w 1 ; 4
|
||||
ocd_loop_offset rs.w 1 ; 6
|
||||
ocd_period rs.w 1 ; 8
|
||||
ocd_volume rs.b 1 ; 10
|
||||
ocd_trigger rs.b 1 ; 11 needs to be after volume
|
||||
ocd_unused rs.l 1 ; 12 unused, but makes the structure an even 16 bytes
|
||||
ocd_SIZEOF rs.b 0
|
||||
|
||||
; channel structure (part of pv structure)
|
||||
rsreset
|
||||
; DO NOT CHANGE ORDER -- OPTIMIZED CLEARING
|
||||
pcd_pat_portamento_dest_w rs.w 1 ; portamento destination pitch
|
||||
pcd_pat_pitch_slide_w rs.w 1
|
||||
|
||||
pcd_pat_vol_ramp_speed_b rs.b 1
|
||||
pcd_pat_2nd_inst_num4_b rs.b 1
|
||||
pcd_pat_2nd_inst_delay_b rs.b 1
|
||||
pcd_wave_offset_b rs.b 1
|
||||
|
||||
pcd_inst_pitch_slide_w rs.w 1
|
||||
pcd_inst_sel_arp_note_w rs.w 1
|
||||
|
||||
pcd_inst_note_pitch_w rs.w 1
|
||||
pcd_inst_curr_port_pitch_w rs.w 1
|
||||
|
||||
pcd_inst_line_ticks_b rs.b 1
|
||||
pcd_inst_pitch_pinned_b rs.b 1
|
||||
pcd_inst_vol_slide_b rs.b 1
|
||||
pcd_inst_step_pos_b rs.b 1
|
||||
|
||||
pcd_inst_wave_num4_w rs.w 1 ; current wave number (1 based, times 4) (lower byte used)
|
||||
|
||||
pcd_track_delay_offset_b rs.b 1 ; $ff = no track delay
|
||||
pcd_inst_speed_stop_b rs.b 1 ; speed byte, $ff stops processing
|
||||
pcd_inst_pitch_w rs.w 1
|
||||
|
||||
pcd_inst_vol_w rs.w 1
|
||||
pcd_loaded_inst_vol_b rs.b 1
|
||||
pcd_pat_vol_b rs.b 1 ; Multiplied with volume of instrument.
|
||||
; DO NOT CHANGE ORDER -- OPTIMIZED CLEARING END
|
||||
|
||||
pcd_arp_notes_l rs.b 0
|
||||
pcd_arp_note_1_b rs.b 1
|
||||
pcd_arp_note_2_b rs.b 1
|
||||
pcd_arp_note_3_b rs.b 1
|
||||
rs.b 1 ; gets cleared
|
||||
|
||||
pcd_last_trigger_length_w rs.w 1 ; I think this makes sure that we trigger the note if the length changes
|
||||
pcd_last_wave_was_looping_b rs.b 1 ; -1 if the last wave was a looping one so no-sync is actually allowed
|
||||
pcd_wave_nosync rs.b 1 ; For Presto (otherwise padding): Store if the wave currently uses nosync or not
|
||||
|
||||
pcd_pat_portamento_speed_b rs.b 1
|
||||
pcd_pat_adsr_rel_delay_b rs.b 1 ; counts down until adsr release. Seems unused?
|
||||
pcd_note_off_delay_b rs.b 1 ; time before note is released ($ff = disabled)
|
||||
pcd_inst_pattern_steps_b rs.b 1 ; number of steps in instrument pattern
|
||||
|
||||
pcd_note_delay_b rs.b 1 ; $ff = no note delay
|
||||
pcd_track_delay_steps_b rs.b 1 ; $00 = no track delay, $xx = track delay xx (this is for the next channel!)
|
||||
pcd_track_delay_vol16_b rs.b 1 ; needs to be at even address (using word access to shift << 8)
|
||||
pcd_track_init_delay_b rs.b 1 ; number of frames to ignore the delay
|
||||
|
||||
pcd_inst_num4_w rs.w 1 ; current instrument number * 4
|
||||
pcd_inst_wave_ptr rs.l 1
|
||||
pcd_inst_subloop_wait_w rs.w 1
|
||||
pcd_inst_loop_offset_w rs.w 1
|
||||
pcd_inst_info_ptr rs.l 1 ; pointer to currently active instrument
|
||||
|
||||
pcd_waveinfo_ptr rs.l 1 ; pointer to currently active waveinfo
|
||||
pcd_channel_mask_b rs.b 1
|
||||
pcd_channel_num_b rs.b 1
|
||||
pcd_adsr_phase_w rs.w 1 ; 0=attack, 1=decay, 2=sustain, 3=release ! do not change order
|
||||
pcd_adsr_volume_w rs.w 1 ; 0 for restart / $400 (word only) ! do not change order
|
||||
pcd_adsr_phase_speed_b rs.b 1
|
||||
pcd_inst_ping_pong_dir_b rs.b 1 ; direction of ping-pong (-1 == $00 / +1 = $ff)
|
||||
pcd_adsr_pos_w rs.w 1 ; pos in adsr curve
|
||||
pcd_adsr_vol64_w rs.w 1 ; some adsr volume
|
||||
|
||||
pcd_new_inst_num_b rs.b 1 ; load new instrument (number) ! do not change order
|
||||
rs.b 1 ; gets cleared
|
||||
pcd_vibrato_pos_w rs.w 1 ;
|
||||
pcd_vibrato_delay_w rs.w 1 ; is a byte value ! do not change order
|
||||
pcd_vibrato_depth_w rs.w 1 ; is a byte value ! do not change order
|
||||
pcd_vibrato_speed_w rs.w 1 ; is a byte value ! do not change order
|
||||
pcd_adsr_release_b rs.b 1 ; is a byte value ! do not change order
|
||||
rs.b 1 ; padding will be overwritten!
|
||||
|
||||
pcd_out_base rs.b ocd_SIZEOF
|
||||
pcd_track_delay_buffer rs.b MAX_TRACK_DELAY*ocd_SIZEOF
|
||||
pcd_SIZEOF rs.b 0
|
||||
|
||||
pcd_out_ptr_l = pcd_out_base+ocd_sam_ptr
|
||||
pcd_out_len_w = pcd_out_base+ocd_length
|
||||
pcd_out_lof_w = pcd_out_base+ocd_loop_offset
|
||||
pcd_out_per_w = pcd_out_base+ocd_period
|
||||
pcd_out_vol_b = pcd_out_base+ocd_volume
|
||||
pcd_out_trg_b = pcd_out_base+ocd_trigger
|
||||
pcd_out_unused_l = pcd_out_base+ocd_unused ; copied for track delay, but not used?
|
||||
|
||||
rsreset
|
||||
owb_saw_waves rs.b 128
|
||||
owb_sqr_waves rs.b 128
|
||||
owb_tri_waves rs.b 128
|
||||
owb_SIZEOF rs.b 0
|
||||
|
||||
; ----------------------------------------
|
||||
; MyPlayer global variables (not bound to channel)
|
||||
rsreset
|
||||
; DO NOT CHANGE ORDER -- OPTIMIZED INIT
|
||||
pv_pat_curr_row_b rs.b 1 ; current step
|
||||
pv_next_pat_row_b rs.b 1
|
||||
pv_next_pat_pos_b rs.b 1
|
||||
pv_pat_speed_even_b rs.b 1 ; even shuffle speed
|
||||
|
||||
pv_pat_speed_odd_b rs.b 1 ; odd shuffle speed
|
||||
pv_pat_line_ticks_b rs.b 1
|
||||
pv_pat_stopped_b rs.b 1 ; 0 = stop, $ff = run
|
||||
pv_songend_detected_b rs.b 1
|
||||
; DO NOT CHANGE ORDER -- OPTIMIZED INIT END
|
||||
|
||||
pv_curr_pat_pos_w rs.w 1 ; only byte used
|
||||
pv_loop_pattern_b rs.b 1 ; repeat current pattern, do not advance
|
||||
rs.b 1 ; padding
|
||||
|
||||
pv_trigger_mask_w rs.w 1
|
||||
|
||||
pv_my_song rs.l 1
|
||||
pv_copperlist_ptr rs.l 1
|
||||
pv_wave_sample_table rs.l MAX_WAVES ; 24 pointers to sample starts
|
||||
pv_period_table rs.w 16*NOTES_IN_OCTAVE*3
|
||||
; --- 127 byte displacement limit ---
|
||||
pv_sample_buffer_ptr rs.l 1 ; pointer to start of sample buffer
|
||||
pv_stop_len_lof rs.l 1 ; $0002 / $0000
|
||||
pv_stop_per_vol_trg rs.l 1 ; $007b / $00 / $00
|
||||
pv_channeldata rs.b NUM_CHANNELS*pcd_SIZEOF
|
||||
|
||||
IFNE PRETRACKER_VOLUME_TABLE
|
||||
pv_osc_buffers rs.b 0 ; reuse space of volume_table, which is bigger than NOTES_IN_OCTAVE*owb_SIZEOF
|
||||
pv_volume_table rs.b (MAX_VOLUME+1)*MAX_VOLUME*2
|
||||
ELSE
|
||||
pv_osc_buffers rs.b NOTES_IN_OCTAVE*owb_SIZEOF
|
||||
ENDC
|
||||
|
||||
pv_precalc_sample_size rs.l 1
|
||||
pv_precalc_progress_ptr rs.l 1
|
||||
pv_wg_wave_counter_w rs.w 1
|
||||
IFNE PRETRACKER_PARANOIA_MODE ; same wave for mixing cannot be selected in Pretracker
|
||||
pv_wg_curr_wave_num_b rs.b 1
|
||||
rs.b 1
|
||||
ENDC
|
||||
pv_wg_curr_sample_ptr rs.l 1
|
||||
pv_wg_curr_samend_ptr rs.l 1
|
||||
pv_wg_curr_sample_len_l rs.w 1
|
||||
pv_wg_curr_sample_len_w rs.w 1
|
||||
pv_wg_chord_note_num_b rs.b 1 ; don't change order
|
||||
pv_wg_unisono_run_b rs.b 1 ; don't change order
|
||||
pv_wg_chord_flag_w rs.w 1
|
||||
pv_wg_chord_pitches rs.l 1
|
||||
pv_wg_osc_speed_l rs.l 1
|
||||
pv_wg_flt_taps rs.w 4
|
||||
pv_SIZEOF rs.b 0
|
||||
|
1294
source/framework/musicplayers/raspberry_casket_wavegen.asm
Normal file
1294
source/framework/musicplayers/raspberry_casket_wavegen.asm
Normal file
File diff suppressed because it is too large
Load Diff
@ -22,9 +22,9 @@ FASTMEM_SIZE = 4
|
||||
move.l a0,fw_DemoAbortStackPointer(a6)
|
||||
ENDC
|
||||
|
||||
PUTMSG 10,<"%d: Entrypoint: %p">,fw_FrameCounterLong(a6),#entrypoint
|
||||
PUTMSG 10,<"%d: Entrypoint: %p">,fw_FrameCounter-2(a6),#entrypoint
|
||||
bsr entrypoint
|
||||
PUTMSG 10,<"%d: Part terminated">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Part terminated">,fw_FrameCounter-2(a6)
|
||||
|
||||
bra os_AppShutdown
|
||||
|
||||
@ -39,6 +39,21 @@ os_AppInit:
|
||||
ENDC
|
||||
|
||||
move.l 4.w,a6
|
||||
IF DEBUG_DETAIL
|
||||
move.l #MEMF_CHIP,d1
|
||||
CALL AvailMem
|
||||
PUTMSG 10,<"Chip memory free: %ld bytes">,d0
|
||||
move.l #MEMF_CHIP|MEMF_LARGEST,d1
|
||||
CALL AvailMem
|
||||
PUTMSG 10,<"Chip memory largest: %ld bytes">,d0
|
||||
move.l #MEMF_FAST,d1
|
||||
CALL AvailMem
|
||||
PUTMSG 10,<"Fast memory free: %ld bytes">,d0
|
||||
move.l #MEMF_FAST|MEMF_LARGEST,d1
|
||||
CALL AvailMem
|
||||
PUTMSG 10,<"Fast memory largest: %ld bytes">,d0
|
||||
ENDC
|
||||
|
||||
IFEQ FW_HD_TRACKMO_MODE
|
||||
IFD pd_SIZEOF
|
||||
move.l #pd_SIZEOF,d0
|
||||
@ -220,7 +235,7 @@ os_AppInit:
|
||||
|
||||
IF FW_DYNAMIC_MEMORY_SUPPORT
|
||||
IF FW_MUSIC_SUPPORT
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==4)||(FW_MUSIC_PLAYER_CHOICE==5)
|
||||
IF (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6)
|
||||
bsr fw_MusicAlloc
|
||||
ENDC
|
||||
ENDC
|
||||
@ -230,7 +245,7 @@ os_AppInit:
|
||||
ELSE ; FW_DYNAMIC_MEMORY_SUPPORT
|
||||
|
||||
IF FW_MUSIC_SUPPORT
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==4)||(FW_MUSIC_PLAYER_CHOICE==5)
|
||||
IF (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6)
|
||||
bsr fw_MusicAlloc
|
||||
bsr fw_PushMemoryState
|
||||
ENDC
|
||||
@ -299,8 +314,15 @@ os_AppInit:
|
||||
lea $dff000,a5
|
||||
exg a4,a6 ; from now on, a6 is supposed to be our framework pointer, a5 is _custom
|
||||
move.l a0,fw_VBR(a6)
|
||||
IF FW_SOFT_IRQ_SUPPORT
|
||||
move.l $64(a0),fw_OldSystemSoftIRQ(a6)
|
||||
ENDC
|
||||
move.l $6c(a0),fw_OldSystemVBlankIRQ(a6)
|
||||
|
||||
IF FW_AUDIO_IRQ_SUPPORT
|
||||
move.l $70(a0),fw_OldSystemAudioIRQ(a6)
|
||||
ENDC
|
||||
|
||||
move.w #$7fff,d4
|
||||
move.w intenar(a5),d0
|
||||
move.w d4,intena(a5)
|
||||
@ -388,7 +410,13 @@ os_AppShutdown:
|
||||
move.w d0,adkcon(a5)
|
||||
|
||||
move.l fw_VBR(a6),a0
|
||||
IF FW_SOFT_IRQ_SUPPORT
|
||||
move.l fw_OldSystemSoftIRQ(a6),$64(a0)
|
||||
ENDC
|
||||
move.l fw_OldSystemVBlankIRQ(a6),$6c(a0)
|
||||
IF FW_AUDIO_IRQ_SUPPORT
|
||||
move.l fw_OldSystemAudioIRQ(a6),$70(a0)
|
||||
ENDC
|
||||
|
||||
movea.l fw_GfxBase(a6),a0 ; graphics.library
|
||||
move.l $26(a0),cop1lc(a5)
|
||||
|
@ -143,7 +143,7 @@ trackmo_AppInit:
|
||||
bsr fw_InitDos
|
||||
|
||||
IF FW_MUSIC_SUPPORT
|
||||
IF (FW_MUSIC_PLAYER_CHOICE==4)||(FW_MUSIC_PLAYER_CHOICE==5)
|
||||
IF (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6)
|
||||
bsr fw_MusicAlloc
|
||||
ENDC
|
||||
ENDC
|
||||
|
@ -61,7 +61,7 @@ DEBUG_DETAIL SET 10
|
||||
|
||||
NEWAGE_DEBUG = 1
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
|
||||
; Memory use:
|
||||
@ -109,7 +109,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -945,22 +945,22 @@ gth_extra_copperlist_ptr:
|
||||
COP_END
|
||||
|
||||
gth_meanwhile_text:
|
||||
incbin "../data/gotham/meanwhile320x18x4.BPL"
|
||||
incbin "data/gotham/meanwhile320x18x4.BPL"
|
||||
|
||||
gth_gothamcity_text:
|
||||
incbin "../data/gotham/gothamcity320x23x4.BPL"
|
||||
incbin "data/gotham/gothamcity320x23x4.BPL"
|
||||
|
||||
gth_gotham_text:
|
||||
incbin "../data/gotham/gotham320x23x4.BPL"
|
||||
incbin "data/gotham/gotham320x23x4.BPL"
|
||||
|
||||
gth_hameelinna_text:
|
||||
incbin "../data/gotham/hameelinna320x23x4.BPL"
|
||||
incbin "data/gotham/hameelinna320x23x4.BPL"
|
||||
|
||||
gth_ham_text:
|
||||
incbin "../data/gotham/ham320x23x4.BPL"
|
||||
incbin "data/gotham/ham320x23x4.BPL"
|
||||
|
||||
gth_ham_tech:
|
||||
incbin "../data/gotham/hamtechnology320x13x4.BPL"
|
||||
incbin "data/gotham/hamtechnology320x13x4.BPL"
|
||||
|
||||
blitter_temp_output_word:
|
||||
dc.w 0
|
||||
@ -968,7 +968,7 @@ blitter_temp_output_word:
|
||||
IFND FW_DEMO_PART
|
||||
section "gth_sample",data,chip
|
||||
gth_psenough_ham:
|
||||
incbin "../data/gotham/hamtechnology.raw"
|
||||
incbin "data/gotham/hamtechnology.raw"
|
||||
|
||||
ENDC
|
||||
END
|
@ -97,7 +97,7 @@ NEWAGE_DEBUG = 1
|
||||
; - FAST BSS 32 x 1424 = 45568 (Cube preprocessing) 12+3*3*2*2+8*3*2+8*2*2+12*(11*4+4+8*2)
|
||||
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
STRUCTURE BQLine,bq_SIZEOF
|
||||
ULONG bql_BltCon01
|
||||
@ -228,7 +228,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -410,7 +410,7 @@ gou_intro:
|
||||
lea .script(pc),a0
|
||||
CALLFW InstallMusicScript
|
||||
|
||||
PUTMSG 10,<"Main Frame Start %ld">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"Main Frame Start %ld">,fw_FrameCounter-2(a6)
|
||||
|
||||
.loop
|
||||
BLTWAIT
|
||||
@ -881,7 +881,7 @@ gou_flip_cube_buffer:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
gou_async_calc_task:
|
||||
PUTMSG 10,<"%d: async_calc_task">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: async_calc_task">,fw_FrameCounter-2(a6)
|
||||
move.l pd_CubeDataPtr(a6),a1
|
||||
moveq.l #CUBE_PRECALC_NUM-1,d7
|
||||
.cdloop
|
||||
@ -1252,7 +1252,7 @@ ZEROIPOL MACRO
|
||||
;--------------------------------------------------------------------
|
||||
; a1 = cubedata
|
||||
gou_interpolate_outer_cube_lines:
|
||||
PUTMSG 20,<"%d: ----- gou_interpolate_outer_cube_lines">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 20,<"%d: ----- gou_interpolate_outer_cube_lines">,fw_FrameCounter-2(a6)
|
||||
move.w cd_LinesToDraw(a1),d7
|
||||
sub.w cd_InnerLines(a1),d7
|
||||
bne.s .cont
|
||||
@ -1961,7 +1961,7 @@ LINEIPOL MACRO
|
||||
;--------------------------------------------------------------------
|
||||
; a1 = cubedata
|
||||
gou_interpolate_inner_cube_lines:
|
||||
PUTMSG 20,<"%d: ----- gou_interpolate_inner_cube_lines">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 20,<"%d: ----- gou_interpolate_inner_cube_lines">,fw_FrameCounter-2(a6)
|
||||
move.w cd_InnerLines(a1),d7
|
||||
bne.s .cont
|
||||
rts
|
||||
@ -2994,7 +2994,7 @@ gou_extra_copperlist_ptr:
|
||||
COP_END
|
||||
|
||||
gou_bendit_sprite:
|
||||
incbin "../data/gouraud/bendit128x128x4.SPR"
|
||||
incbin "data/gouraud/bendit128x128x4.SPR"
|
||||
|
||||
blitter_temp_output_word:
|
||||
dc.w 0
|
||||
@ -3003,11 +3003,11 @@ blitter_temp_output_word:
|
||||
IFD ENABLE_PART_MUSIC
|
||||
section "part_music_samples",data,chip ; section for music playback
|
||||
part_music_smp:
|
||||
incbin "../data/music/dsr_68k_tune_2_v11.lsbank"
|
||||
incbin "data/music/dsr_68k_tune_2_v11.lsbank"
|
||||
|
||||
section "part_music_data",data ; section for music playback
|
||||
part_music_data:
|
||||
incbin "../data/music/dsr_68k_tune_2_v11.lsmusic"
|
||||
incbin "data/music/dsr_68k_tune_2_v11.lsmusic"
|
||||
ENDC
|
||||
ENDC
|
||||
END
|
@ -93,9 +93,9 @@ copy "..\data\endpart\screenshots_320x1620.BPL" build
|
||||
rem ############ ASSEMBLE FRAMEWORK AND BOOTBLOCK ############
|
||||
copy "..\tools\vc.cfg" %~dp0
|
||||
|
||||
..\tools\vasmm68k_mot -m68010 -Fbin -phxass -o "build\trackmo_launcher" -I"%~dp0\..\includes" "trackmo_launcher.asm"
|
||||
..\tools\vasmm68k_mot -m68010 -Fbin -phxass -o "build\trackmo_launcher" -I"%~dp0\..\framework" -I"%~dp0\..\includes" "trackmo_launcher.asm"
|
||||
@if %ERRORLEVEL% NEQ 0 goto failed
|
||||
..\tools\vasmm68k_mot -m68000 -Fbin -phxass -o "build\bootblock" -I"%~dp0\..\includes" "..\framework\bootblock.asm"
|
||||
..\tools\vasmm68k_mot -m68000 -Fbin -phxass -o "build\bootblock" -I"%~dp0\..\includes" -I"%~dp0\..\includes" "..\framework\bootblock.asm"
|
||||
@if %ERRORLEVEL% NEQ 0 goto failed
|
||||
|
||||
rem ############ BUILD DISK ############
|
||||
|
@ -6,8 +6,8 @@ NEWAGE_DEBUG = 1 ; enable for UAE warp exit on start with debug detail en
|
||||
CHIPMEM_SIZE = 469*1024 ; maximum chip memory use for whole demo
|
||||
FASTMEM_SIZE = 458*1024 ; maximum fast memory use for whole demo
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "../framework/framework.asm"
|
||||
include "framework.i"
|
||||
include "framework.asm"
|
||||
|
||||
entrypoint:
|
||||
include "trackmo_script.asm"
|
||||
|
@ -1,7 +1,7 @@
|
||||
opt p+,o+
|
||||
include "trackmo_settings.i"
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
bsr trackmo_AppInit
|
||||
|
||||
@ -11,4 +11,4 @@
|
||||
|
||||
.loop bra.s .loop
|
||||
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
|
@ -18,7 +18,7 @@
|
||||
;
|
||||
|
||||
trackmo:
|
||||
PUTMSG 10,<"%d: Trackmo start!">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Trackmo start!">,fw_FrameCounter-2(a6)
|
||||
.restart
|
||||
btst #6,$bfe001
|
||||
bne.s .part1
|
||||
|
@ -64,7 +64,7 @@ DEBUG_DETAIL SET 10
|
||||
|
||||
NEWAGE_DEBUG = 1
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
STRUCTURE PartData,fw_SIZEOF
|
||||
APTR pd_CurrPlanesPtr
|
||||
@ -107,7 +107,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -260,7 +260,7 @@ hex_init_shade_table:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
hex_main:
|
||||
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
move.w #2,copcon(a5) ; enable copper danger (copper controlled blitter)
|
||||
|
||||
@ -865,7 +865,7 @@ hex_hexgrid_black_palette:
|
||||
ENDR
|
||||
|
||||
hex_hexgrid_data:
|
||||
incbin "../data/hexagon/hexagon_reg16x254.EHB"
|
||||
incbin "data/hexagon/hexagon_reg16x254.EHB"
|
||||
|
||||
section "hex_copper",data,chip
|
||||
|
||||
@ -887,21 +887,21 @@ hex_extra_copperlist_ptr:
|
||||
COP_END
|
||||
|
||||
hex_winners_sprites:
|
||||
incbin "../data/hexagon/winners128x128x4.SPR"
|
||||
incbin "data/hexagon/winners128x128x4.SPR"
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
section "hex_kaleidoscope_texture",data
|
||||
hex_kaleidoscope_texture:
|
||||
incbin "../data/hexagon/kaleitc.raw"
|
||||
incbin "data/hexagon/kaleitc.raw"
|
||||
|
||||
IFD ENABLE_PART_MUSIC
|
||||
section "part_music_samples",data,chip ; section for music playback
|
||||
part_music_smp:
|
||||
incbin "../data/music/desire_demo_68k_v6.lsbank"
|
||||
incbin "data/music/desire_demo_68k_v6.lsbank"
|
||||
|
||||
section "part_music_data",data ; section for music playback
|
||||
part_music_data:
|
||||
incbin "../data/music/desire_demo_68k_v6.lsmusic"
|
||||
incbin "data/music/desire_demo_68k_v6.lsmusic"
|
||||
ENDC
|
||||
ENDC
|
||||
|
||||
|
@ -115,7 +115,7 @@ DEBUG_DETAIL SET 10
|
||||
|
||||
NEWAGE_DEBUG = 1
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
; Chip memory use:
|
||||
; - CHIP DATA: 256 x 256 x 6 x 3 = 147456 (Pattern/Texture)
|
||||
@ -319,7 +319,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -676,7 +676,7 @@ kds_fill_noise_buffer:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
kds_intro:
|
||||
PUTMSG 10,<"%d: Intro part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Intro part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #420,pd_PartCountDown(a6)
|
||||
CALLFW SetBlitterQueueSingleFrame
|
||||
|
||||
@ -705,7 +705,7 @@ kds_intro:
|
||||
cmp.w #4032,fw_MusicFrameCount(a6)
|
||||
blt.s .waitloop
|
||||
|
||||
PUTMSG 10,<"%d: Intro part launching (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Intro part launching (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
.loop
|
||||
bsr kds_flip_db_frame
|
||||
@ -746,7 +746,7 @@ kds_intro:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
kds_transition:
|
||||
PUTMSG 10,<"%d: Transition part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Transition part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
move.w #260,pd_PartCountDown(a6)
|
||||
CALLFW SetBlitterQueueSingleFrame
|
||||
|
||||
@ -822,7 +822,7 @@ kds_transition:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
kds_dissolve:
|
||||
PUTMSG 10,<"%d: Dissolve part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Dissolve part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
CALLFW SetBlitterQueueSingleFrame
|
||||
|
||||
@ -870,7 +870,7 @@ kds_dissolve:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
kds_pre_main:
|
||||
PUTMSG 10,<"%d: Pre Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Pre Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
CALLFW SetBlitterQueueMultiFrame
|
||||
|
||||
move.w joy0dat(a5),pd_OldMouseY(a6)
|
||||
@ -979,11 +979,11 @@ kds_pre_main:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
kds_post_main:
|
||||
PUTMSG 10,<"%d: Post Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Post Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
bsr .prepare
|
||||
bsr .prepare
|
||||
|
||||
PUTMSG 10,<"%d: Prep done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Prep done">,fw_FrameCounter-2(a6)
|
||||
.loop
|
||||
bsr kds_flip_db_frame
|
||||
move.l pd_CurrSpriteStencilPtr(a6),pd_CurrFairySprite(a6)
|
||||
@ -1020,7 +1020,7 @@ kds_post_main:
|
||||
bsr kds_update_copper_list_pointers
|
||||
CALLFW VSyncWithTask
|
||||
|
||||
PUTMSG 10,<"%d: Post Main finished (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Post Main finished (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
|
||||
rts
|
||||
|
||||
@ -1049,7 +1049,7 @@ kds_post_main:
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
kds_main:
|
||||
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6)
|
||||
CALLFW SetBlitterQueueMultiFrame
|
||||
|
||||
IF 0
|
||||
@ -6211,7 +6211,7 @@ kds_bright_transition_palette:
|
||||
dc.w $68c,$68c,$9f4,$9f4,$fff,$fff,$ffc,$ffc
|
||||
|
||||
kds_fairy_sprite_palette:
|
||||
incbin "../data/kaleidoscope/fairy1_48x51x16.PAL"
|
||||
incbin "data/kaleidoscope/fairy1_48x51x16.PAL"
|
||||
|
||||
; Points
|
||||
kds_fairy_points:
|
||||
@ -6312,22 +6312,22 @@ kds_extra_copperlist_ptr:
|
||||
COP_END
|
||||
|
||||
kds_fairy_body1:
|
||||
incbin "../data/kaleidoscope/fairy1_48x51x16.BPL"
|
||||
incbin "data/kaleidoscope/fairy1_48x51x16.BPL"
|
||||
kds_fairy_body2:
|
||||
incbin "../data/kaleidoscope/fairy2_48x51x16.BPL"
|
||||
incbin "data/kaleidoscope/fairy2_48x51x16.BPL"
|
||||
kds_fairy_body3:
|
||||
incbin "../data/kaleidoscope/fairy3_48x51x16.BPL"
|
||||
incbin "data/kaleidoscope/fairy3_48x51x16.BPL"
|
||||
kds_puff_sprite1:
|
||||
incbin "../data/kaleidoscope/puff1_32x15x16.BPL"
|
||||
incbin "data/kaleidoscope/puff1_32x15x16.BPL"
|
||||
kds_puff_sprite2:
|
||||
incbin "../data/kaleidoscope/puff2_32x15x16.BPL"
|
||||
incbin "data/kaleidoscope/puff2_32x15x16.BPL"
|
||||
kds_puff_sprite3:
|
||||
incbin "../data/kaleidoscope/puff3_32x15x16.BPL"
|
||||
incbin "data/kaleidoscope/puff3_32x15x16.BPL"
|
||||
kds_puff_sprite4:
|
||||
incbin "../data/kaleidoscope/puff4_32x15x16.BPL"
|
||||
incbin "data/kaleidoscope/puff4_32x15x16.BPL"
|
||||
|
||||
kds_kaleidoscope_pattern:
|
||||
incbin "../data/kaleidoscope/plt_neuro2_ham.raw"
|
||||
incbin "data/kaleidoscope/plt_neuro2_ham.raw"
|
||||
|
||||
blitter_temp_output_word:
|
||||
dc.w 0
|
||||
@ -6336,11 +6336,11 @@ blitter_temp_output_word:
|
||||
IFD ENABLE_PART_MUSIC
|
||||
section "part_music_samples",data,chip ; section for music playback
|
||||
part_music_smp:
|
||||
incbin "../data/music/desire_demo_68k_v6.lsbank"
|
||||
incbin "data/music/desire_demo_68k_v6.lsbank"
|
||||
|
||||
section "part_music_data",data ; section for music playback
|
||||
part_music_data:
|
||||
incbin "../data/music/desire_demo_68k_v6.lsmusic"
|
||||
incbin "data/music/desire_demo_68k_v6.lsmusic"
|
||||
ENDC
|
||||
ENDC
|
||||
|
||||
|
@ -81,7 +81,7 @@ DEBUG_DETAIL SET 10
|
||||
|
||||
NEWAGE_DEBUG = 1
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
|
||||
; Memory use:
|
||||
@ -151,7 +151,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -188,9 +188,9 @@ entrypoint:
|
||||
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_FrameCounterLong(a6),a0,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_FrameCounterLong(a6),a1
|
||||
PUTMSG 10,<"%d: Image decrunched until %p">,fw_FrameCounter-2(a6),a1
|
||||
clr.l fw_GlobalUserData(a6)
|
||||
ENDC
|
||||
bsr sth_create_curtain
|
||||
@ -284,9 +284,9 @@ sth_init_vars:
|
||||
|
||||
sth_intro:
|
||||
IFD FW_DEMO_PART
|
||||
PUTMSG 10,<"%d: Intro part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
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_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Intro part started">,fw_FrameCounter-2(a6)
|
||||
move.w #400,pd_PartCountDown(a6)
|
||||
ENDC
|
||||
|
||||
@ -312,9 +312,9 @@ sth_intro:
|
||||
|
||||
sth_main:
|
||||
IFD FW_DEMO_PART
|
||||
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
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_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Main part started">,fw_FrameCounter-2(a6)
|
||||
ENDC
|
||||
move.w #800,pd_PartCountDown(a6)
|
||||
CALLFW SetBlitterQueueSingleFrame
|
||||
@ -364,9 +364,9 @@ sth_main:
|
||||
|
||||
sth_curtain:
|
||||
IFD FW_DEMO_PART
|
||||
PUTMSG 10,<"%d: Curtain part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
|
||||
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_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Curtain part started">,fw_FrameCounter-2(a6)
|
||||
ENDC
|
||||
move.w #186,pd_PartCountDown(a6)
|
||||
CALLFW SetBlitterQueueSingleFrame
|
||||
@ -791,7 +791,7 @@ sth_drop_bars:
|
||||
|
||||
sth_create_curtain:
|
||||
move.l pd_CurtainDataPtr(a6),a0
|
||||
PUTMSG 10,<"%d: Curtain %p">,fw_FrameCounterLong(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
|
||||
@ -862,7 +862,7 @@ sth_create_curtain:
|
||||
move.l d3,(a0)+
|
||||
dbra d7,.emptylineloop
|
||||
|
||||
PUTMSG 10,<"%d: Curtain done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Curtain done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
@ -1373,10 +1373,10 @@ sth_scrolltext:
|
||||
even
|
||||
|
||||
sth_curtainsines:
|
||||
incbin "../data/stham/curtainsine.bin"
|
||||
incbin "data/stham/curtainsine.bin"
|
||||
|
||||
sth_hamphrey_palette:
|
||||
include "../data/stham/PLT_HAMph_path_2_test08b_ham.pal.asm"
|
||||
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:
|
||||
@ -1721,7 +1721,7 @@ sth_scroller_shift_2_bitmap:
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
sth_hamphrey_pic:
|
||||
incbin "../data/stham/PLT_HAMph_path_2_test08b_ham.raw"
|
||||
incbin "data/stham/PLT_HAMph_path_2_test08b_ham.raw"
|
||||
ENDC
|
||||
|
||||
END
|
@ -1,5 +1,5 @@
|
||||
-as=vasmm68k_mot -x -maxerrors=50 -m68000 -Fhunk -align -phxass %s -DFW_DEMO_PART=1 -o %s -I"%%VBCC%%/../includes" -quiet
|
||||
-asv=vasmm68k_mot -x -maxerrors=50 -m68000 -Fhunk -align -phxass %s -DFW_DEMO_PART=1 -o %s -I"%%VBCC%%/../includes"
|
||||
-as=vasmm68k_mot -x -maxerrors=50 -m68000 -Fhunk -align -phxass %s -DFW_DEMO_PART=1 -o %s -I"%%VBCC%%/../" -I"%%VBCC%%/../framework" -I"%%VBCC%%/../framework/musicplayers" -I"%%VBCC%%/../includes" -quiet
|
||||
-asv=vasmm68k_mot -x -maxerrors=50 -m68000 -Fhunk -align -phxass %s -DFW_DEMO_PART=1 -o %s -I"%%VBCC%%/../" -I"%%VBCC%%/../framework" -I"%%VBCC%%/../framework/musicplayers" -I"%%VBCC%%/../includes"
|
||||
-cc=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld -quiet
|
||||
-ccv=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld
|
||||
-l2=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -L"%%VBCC%%/targets/m68k-amigaos/lib" %s %s -o %s
|
||||
|
@ -1,11 +1,11 @@
|
||||
-as=vasmm68k_mot -x -maxerrors=50 -m68000 -showopt -Fhunk -kick1hunks -align -phxass %s -o %s -I"%%VBCC%%/../includes" -quiet
|
||||
-asv=vasmm68k_mot -x -maxerrors=50 -m68000 -showopt -Fhunk -kick1hunks -align -phxass %s -o %s -I"%%VBCC%%/../includes"
|
||||
-as=vasmm68k_mot -x -maxerrors=50 -m68000 -showopt -Fhunk -kick1hunks -align -phxass %s -o %s -I"%%VBCC%%/../" -I"%%VBCC%%/../framework" -I"%%VBCC%%/../framework/musicplayers" -I"%%VBCC%%/../includes" -quiet
|
||||
-asv=vasmm68k_mot -x -maxerrors=50 -m68000 -showopt -Fhunk -kick1hunks -align -phxass %s -o %s -I"%%VBCC%%/../" -I"%%VBCC%%/../framework" -I"%%VBCC%%/../framework/musicplayers" -I"%%VBCC%%/../includes"
|
||||
-cc=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld -quiet
|
||||
-ccv=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld
|
||||
-l2=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" %s %s -o %s
|
||||
-l2v=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" %s %s -o %s -t
|
||||
-ld=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" "%%VBCC%%/targets/m68k-amigaos/lib/startup.o" %s %s -lvc -o %s
|
||||
-ldv=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" "%%VBCC%%/targets/m68k-amigaos/lib/startup.o" %s %s -lvc -o %s -t
|
||||
-l2=vlink -bamigahunk -Bstatic -Cvbcc -Z -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" %s %s -o %s
|
||||
-l2v=vlink -bamigahunk -Bstatic -Cvbcc -Z -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" %s %s -o %s -t
|
||||
-ld=vlink -bamigahunk -Bstatic -Cvbcc -Z -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" "%%VBCC%%/targets/m68k-amigaos/lib/startup.o" %s %s -lvc -o %s
|
||||
-ldv=vlink -bamigahunk -Bstatic -Cvbcc -Z -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" "%%VBCC%%/targets/m68k-amigaos/lib/startup.o" %s %s -lvc -o %s -t
|
||||
-ldnodb=-S -s -x
|
||||
-ul=-l%s
|
||||
-cf=-F%s
|
||||
|
@ -93,7 +93,7 @@ DEBUG_DETAIL SET 10
|
||||
|
||||
NEWAGE_DEBUG = 1
|
||||
|
||||
include "../framework/framework.i"
|
||||
include "framework.i"
|
||||
|
||||
; Process:
|
||||
;
|
||||
@ -247,7 +247,7 @@ NEWAGE_DEBUG = 1
|
||||
LABEL pd_SIZEOF
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
include "../framework/framework.asm"
|
||||
include "framework.asm"
|
||||
ENDC
|
||||
|
||||
entrypoint:
|
||||
@ -456,7 +456,7 @@ vgb_init_vars:
|
||||
vgb_init_cot_table:
|
||||
move.l fw_CosTable(a6),a1
|
||||
lea pd_CotTable(a6),a0
|
||||
PUTMSG 10,<"%d: CotTable %p">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: CotTable %p">,fw_FrameCounter-2(a6),a0
|
||||
moveq.l #(ROT_ANGLES-1)-1,d7
|
||||
moveq.l #0,d0
|
||||
moveq.l #0,d5
|
||||
@ -466,13 +466,13 @@ vgb_init_cot_table:
|
||||
move.w d1,(a0)+
|
||||
addq.l #2*2,a1
|
||||
dbra d7,.loop
|
||||
PUTMSG 10,<"%d: CotTable done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: CotTable done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
vgb_init_modshift_table:
|
||||
PUTMSG 10,<"%d: Calc modshift table">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Calc modshift table">,fw_FrameCounter-2(a6)
|
||||
move.l pd_ModShiftDataPtr(a6),a1
|
||||
move.l pd_XPosBufferPtr(a6),a0
|
||||
moveq.l #ROT_ANGLES-1,d7
|
||||
@ -502,14 +502,14 @@ vgb_init_modshift_table:
|
||||
lea (VGBARS_HEIGHT*2)(a0),a0
|
||||
subq.w #2,d0
|
||||
dbra d7,.loop2
|
||||
PUTMSG 10,<"%d: Calc modshift table done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: Calc modshift table done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
vgb_init_one_color_change_table:
|
||||
move.l pd_OneColorChangeTable(a6),a0
|
||||
PUTMSG 10,<"%d: pd_OneColorChangeTable %p">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: pd_OneColorChangeTable %p">,fw_FrameCounter-2(a6),a0
|
||||
moveq.l #1,d0
|
||||
move.w #$f00,d4
|
||||
move.w #$0f0,d5
|
||||
@ -558,14 +558,14 @@ vgb_init_one_color_change_table:
|
||||
.good
|
||||
addq.w #1,d0
|
||||
dbra d7,.loop
|
||||
PUTMSG 10,<"%d: pd_OneColorChangeTable done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: pd_OneColorChangeTable done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
vgb_init_red_blue_table:
|
||||
move.l pd_RedBlueTable(a6),a0
|
||||
PUTMSG 10,<"%d: pd_RedBlueTable %p">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: pd_RedBlueTable %p">,fw_FrameCounter-2(a6),a0
|
||||
moveq.l #0,d0
|
||||
move.w #4096-1,d7
|
||||
.loop
|
||||
@ -578,14 +578,14 @@ vgb_init_red_blue_table:
|
||||
move.b d2,(a0)+
|
||||
addq.w #1,d0
|
||||
dbra d7,.loop
|
||||
PUTMSG 10,<"%d: pd_RedBlueTable done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: pd_RedBlueTable done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
|
||||
vgb_init_diff_table:
|
||||
move.l pd_DiffTable(a6),a0
|
||||
PUTMSG 10,<"%d: pd_DiffTable %p">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: pd_DiffTable %p">,fw_FrameCounter-2(a6),a0
|
||||
add.l #$10000,a0
|
||||
move.w #256-1,d7
|
||||
.oloop
|
||||
@ -614,7 +614,7 @@ vgb_init_diff_table:
|
||||
move.b d4,-(a0)
|
||||
dbra d6,.loop
|
||||
dbra d7,.oloop
|
||||
PUTMSG 10,<"%d: pd_DiffTable done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: pd_DiffTable done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
.takelow
|
||||
move.b d3,-(a0)
|
||||
@ -626,7 +626,7 @@ vgb_init_diff_table:
|
||||
|
||||
vgb_init_mod40_table:
|
||||
lea pd_Mod40TablePos(a6),a0
|
||||
PUTMSG 10,<"%d: pd_Mod40TablePos %p">,fw_FrameCounterLong(a6),a0
|
||||
PUTMSG 10,<"%d: pd_Mod40TablePos %p">,fw_FrameCounter-2(a6),a0
|
||||
move.l a0,a1
|
||||
move.w #(VGBARS_WIDTH/8)*VGBARS_PLANES,d2
|
||||
moveq.l #0,d0
|
||||
@ -638,7 +638,7 @@ vgb_init_mod40_table:
|
||||
sub.w d2,d1
|
||||
move.w d1,-(a1)
|
||||
dbra d7,.loop
|
||||
PUTMSG 10,<"%d: pd_Mod40TablePos done">,fw_FrameCounterLong(a6)
|
||||
PUTMSG 10,<"%d: pd_Mod40TablePos done">,fw_FrameCounter-2(a6)
|
||||
rts
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
@ -3244,12 +3244,12 @@ vgb_xpos_table:
|
||||
dc.w 643,687,737,795,862,942,1037,1154,1299,1486,1735,2083,2605,3475,5214,10429
|
||||
|
||||
vgb_cat_sprite_palette:
|
||||
incbin "../data/virgillbars/PLT_Lolcat64x128x16.PAL"
|
||||
incbin "data/virgillbars/PLT_Lolcat64x128x16.PAL"
|
||||
|
||||
incbin "../data/virgillbars/curtainsine.bin"
|
||||
incbin "data/virgillbars/curtainsine.bin"
|
||||
vgb_wobble_table:
|
||||
incbin "../data/virgillbars/curtainsine.bin"
|
||||
incbin "../data/virgillbars/curtainsine.bin"
|
||||
incbin "data/virgillbars/curtainsine.bin"
|
||||
incbin "data/virgillbars/curtainsine.bin"
|
||||
|
||||
;********************************************************************
|
||||
|
||||
@ -3282,26 +3282,26 @@ vgb_extra_copperlist_ptr:
|
||||
COP_END
|
||||
|
||||
vgb_cat_sprite:
|
||||
incbin "../data/virgillbars/PLT_Lolcat64x128x16.ASP"
|
||||
incbin "data/virgillbars/PLT_Lolcat64x128x16.ASP"
|
||||
|
||||
vgb_add_of_light_div_sprite:
|
||||
incbin "../data/virgillbars/additionsprite96x112x4.SPR"
|
||||
incbin "data/virgillbars/additionsprite96x112x4.SPR"
|
||||
|
||||
vgb_light_break_sprite:
|
||||
incbin "../data/virgillbars/lightbreak128x128x4.SPR"
|
||||
incbin "data/virgillbars/lightbreak128x128x4.SPR"
|
||||
|
||||
vgb_stay_broken_sprite:
|
||||
incbin "../data/virgillbars/staybroken128x128x4.SPR"
|
||||
incbin "data/virgillbars/staybroken128x128x4.SPR"
|
||||
|
||||
IFND FW_DEMO_PART
|
||||
IFD ENABLE_PART_MUSIC
|
||||
section "part_music_samples",data,chip ; section for music playback
|
||||
part_music_smp:
|
||||
incbin "../data/music/dsr_68k_tune_2_v11.lsbank"
|
||||
incbin "data/music/dsr_68k_tune_2_v11.lsbank"
|
||||
|
||||
section "part_music_data",data ; section for music playback
|
||||
part_music_data:
|
||||
incbin "../data/music/dsr_68k_tune_2_v11.lsmusic"
|
||||
incbin "data/music/dsr_68k_tune_2_v11.lsmusic"
|
||||
ENDC
|
||||
ENDC
|
||||
END
|
Loading…
Reference in New Issue
Block a user