Compare commits

..

No commits in common. "main" and "main" have entirely different histories.
main ... main

45 changed files with 2615 additions and 3249 deletions

View File

@ -47,11 +47,6 @@ You can look at the effects to see how things are done.
But only lamers will copy code verbatim. But only lamers will copy code verbatim.
Give credits where credits are due. Give credits where credits are due.
The PlatOS demo framework (as of Oct '24) has been used in more two winning demos:
- [Inside the Machine](https://www.pouet.net/prod.php?which=98132) by Desire
- [New Art](https://www.pouet.net/prod.php?which=98112) by AttentionWhore
And now go and have some fun. Use the Blitter, Luke! Make Amiga Great Again! And now go and have some fun. Use the Blitter, Luke! Make Amiga Great Again!
Signing off, Chris 'platon42' Hodges Signing off, Chris 'platon42' Hodges

View File

@ -6,9 +6,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -93,7 +93,7 @@ DEBUG_DETAIL SET 10
NEWAGE_DEBUG = 1 NEWAGE_DEBUG = 1
include "framework.i" include "../framework/framework.i"
; Chip memory use: ; Chip memory use:
@ -341,7 +341,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -369,7 +369,7 @@ entrypoint:
CALLFW SetCopper CALLFW SetCopper
IF 1 IF 1
PUTMSG 10,<"%d: Waiting for first pic (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Waiting for first pic (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
.wait .wait
CALLFW VSyncWithTask CALLFW VSyncWithTask
@ -382,7 +382,7 @@ entrypoint:
lea pd_SpeedCodeTask(a6),a1 lea pd_SpeedCodeTask(a6),a1
CALLFW AddTask CALLFW AddTask
PUTMSG 10,<"%d: Waiting for third pic (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Waiting for third pic (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
.wait2 .wait2
CALLFW VSyncWithTask CALLFW VSyncWithTask
@ -557,7 +557,7 @@ bln_init:
CALLFW TrackloaderDiskMotorOff CALLFW TrackloaderDiskMotorOff
ENDC ENDC
PUTMSG 10,<"%d: Prep task done!">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Prep task done!">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -812,7 +812,7 @@ bln_clear_clip_buffers:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_intro: bln_intro:
PUTMSG 10,<"%d: Intro (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Intro (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
CALLFW SetBlitterQueueSingleFrame CALLFW SetBlitterQueueSingleFrame
bsr bln_clear_db_buffers bsr bln_clear_db_buffers
@ -838,7 +838,7 @@ bln_intro:
bsr bln_handle_parts bsr bln_handle_parts
move.w d7,pd_SequenceBlocksLeft(a6) move.w d7,pd_SequenceBlocksLeft(a6)
bne.s .noallownext bne.s .noallownext
PUTMSG 30,<"%d: Sequence done! (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 30,<"%d: Sequence done! (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #3,pd_AllowLoadLastImage(a6) move.w #3,pd_AllowLoadLastImage(a6)
.noallownext .noallownext
@ -874,14 +874,14 @@ bln_intro:
cmp.w #2,pd_TCPicsDone(a6) cmp.w #2,pd_TCPicsDone(a6)
bge.s .nowait bge.s .nowait
PUTMSG 10,<"%d: Waiting for 2nd pic (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Waiting for 2nd pic (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
.wait .wait
CALLFW VSyncWithTask CALLFW VSyncWithTask
cmp.w #2,pd_TCPicsDone(a6) cmp.w #2,pd_TCPicsDone(a6)
blt.s .wait blt.s .wait
.nowait .nowait
PUTMSG 10,<"%d: Intro B sequence (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Intro B sequence (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
lea bln_b_part_sequence(pc),a0 lea bln_b_part_sequence(pc),a0
bsr bln_load_part_sequences bsr bln_load_part_sequences
@ -890,7 +890,7 @@ bln_intro:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_bars: bln_bars:
PUTMSG 10,<"%d: Bars (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Bars (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
CALLFW SetBlitterQueueSingleFrame CALLFW SetBlitterQueueSingleFrame
@ -927,7 +927,7 @@ bln_bars:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_holes: bln_holes:
PUTMSG 10,<"%d: Holes (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Holes (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
CALLFW SetBlitterQueueSingleFrame CALLFW SetBlitterQueueSingleFrame
@ -959,7 +959,7 @@ bln_holes:
cmp.w #5040+32*6,fw_MusicFrameCount(a6) cmp.w #5040+32*6,fw_MusicFrameCount(a6)
blt.s .wait blt.s .wait
PUTMSG 10,<"%d: Starting holes (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Starting holes (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
BLTWAIT BLTWAIT
move.w fw_FrameCounter(a6),pd_OldFrameCount(a6) move.w fw_FrameCounter(a6),pd_OldFrameCount(a6)
@ -1026,7 +1026,7 @@ bln_holes:
rts rts
.loadgreetings .loadgreetings
PUTMSG 10,<"%d: Allow Loading of Image 5 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Allow Loading of Image 5 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #5,pd_AllowLoadLastImage(a6) move.w #5,pd_AllowLoadLastImage(a6)
lea pd_CirclePots(a6),a4 lea pd_CirclePots(a6),a4
lea bln_circle_greetings_scripts(pc),a0 lea bln_circle_greetings_scripts(pc),a0
@ -1045,7 +1045,7 @@ bln_holes:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_greetings: bln_greetings:
PUTMSG 10,<"%d: Greetings (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Greetings (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
IFD FW_DEMO_PART IFD FW_DEMO_PART
lea .loader(pc),a0 lea .loader(pc),a0
@ -1084,7 +1084,7 @@ bln_greetings:
move.l pd_TrueColorImage2(a6),a0 move.l pd_TrueColorImage2(a6),a0
move.l pd_EndLogoBuffer(a6),a1 move.l pd_EndLogoBuffer(a6),a1
CALLFW DecompressZX0 CALLFW DecompressZX0
PUTMSG 10,<"%d: Endlogo loaded/decompressed (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Endlogo loaded/decompressed (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
rts rts
.endlogofile .endlogofile
@ -1219,7 +1219,7 @@ bln_update_copper_list_pointers:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_prepare_circle_speedcode: bln_prepare_circle_speedcode:
PUTMSG 10,<"%d: Preparing circle smc">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Preparing circle smc">,fw_FrameCounterLong(a6)
lea bln_circleinfo,a4 lea bln_circleinfo,a4
move.l pd_CircleSpeedcodeBuffer(a6),a2 move.l pd_CircleSpeedcodeBuffer(a6),a2
move.l a2,a3 move.l a2,a3
@ -1273,7 +1273,7 @@ bln_prepare_circle_speedcode:
.done .done
suba.l pd_CircleSpeedcodeBuffer(a6),a2 suba.l pd_CircleSpeedcodeBuffer(a6),a2
add.l a2,a2 add.l a2,a2
PUTMSG 10,<"%d: Done %ld bytes">,fw_FrameCounter-2(a6),a2 PUTMSG 10,<"%d: Done %ld bytes">,fw_FrameCounterLong(a6),a2
CALLFW FlushCaches CALLFW FlushCaches
rts rts
@ -1679,7 +1679,7 @@ bln_fade_step_down:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_prepare_circle_masks: bln_prepare_circle_masks:
PUTMSG 10,<"%d: Preparing circle masks">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Preparing circle masks">,fw_FrameCounterLong(a6)
bsr bln_clear_clip_buffers bsr bln_clear_clip_buffers
BLTWAIT BLTWAIT
@ -1759,7 +1759,7 @@ bln_prepare_circle_masks:
bra.s .rloop bra.s .rloop
.done suba.l pd_CircleMasksBuffer(a6),a3 .done suba.l pd_CircleMasksBuffer(a6),a3
PUTMSG 10,<"%d: Done %ld bytes">,fw_FrameCounter-2(a6),a3 PUTMSG 10,<"%d: Done %ld bytes">,fw_FrameCounterLong(a6),a3
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -5003,7 +5003,7 @@ bln_greeting_line_update:
bra.s bln_update_circle_pot_info bra.s bln_update_circle_pot_info
.noupdate .noupdate
rts rts
.kill PUTMSG 10,<"%d: Greeting killed (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) .kill PUTMSG 10,<"%d: Greeting killed (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
subq.w #1,pd_GreetingCount(a6) subq.w #1,pd_GreetingCount(a6)
moveq.l #0,d0 moveq.l #0,d0
move.w d0,cp_Radius(a4) move.w d0,cp_Radius(a4)
@ -5017,7 +5017,7 @@ bln_load_circle_nop:
rts rts
bln_load_circle_eye_1: bln_load_circle_eye_1:
PUTMSG 10,<"%d: Load circle eye 1 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load circle eye 1 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #112,cp_CenterPosX(a4) move.w #112,cp_CenterPosX(a4)
move.w #51,cp_CenterPosY(a4) move.w #51,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5043,7 +5043,7 @@ bln_load_circle_eye_1:
rts rts
bln_load_circle_pos_eye_1_sunset: bln_load_circle_pos_eye_1_sunset:
PUTMSG 10,<"%d: Load circle eye sunset 2 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load circle eye sunset 2 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #112,cp_CenterPosX(a4) move.w #112,cp_CenterPosX(a4)
move.w #62,cp_CenterPosY(a4) move.w #62,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5070,7 +5070,7 @@ bln_load_circle_pos_eye_1_sunset:
rts rts
bln_load_circle_pos_eye_2: bln_load_circle_pos_eye_2:
PUTMSG 10,<"%d: Load circle eye 2 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load circle eye 2 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #240,cp_CenterPosX(a4) move.w #240,cp_CenterPosX(a4)
move.w #126,cp_CenterPosY(a4) move.w #126,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5096,7 +5096,7 @@ bln_load_circle_pos_eye_2:
rts rts
bln_load_circle_pos_eye_2_skin: bln_load_circle_pos_eye_2_skin:
PUTMSG 10,<"%d: Load circle eye skin (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load circle eye skin (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #240,cp_CenterPosX(a4) move.w #240,cp_CenterPosX(a4)
move.w #117,cp_CenterPosY(a4) move.w #117,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5123,7 +5123,7 @@ bln_load_circle_pos_eye_2_skin:
rts rts
bln_load_circle_cham_bg_1: bln_load_circle_cham_bg_1:
PUTMSG 10,<"%d: Load cham bg 1 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load cham bg 1 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #272,cp_CenterPosX(a4) move.w #272,cp_CenterPosX(a4)
move.w #34,cp_CenterPosY(a4) move.w #34,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5149,7 +5149,7 @@ bln_load_circle_cham_bg_1:
rts rts
bln_load_circle_greets_bg_1: bln_load_circle_greets_bg_1:
PUTMSG 10,<"%d: Load greets bg 1 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load greets bg 1 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #176,cp_CenterPosX(a4) move.w #176,cp_CenterPosX(a4)
move.w #75,cp_CenterPosY(a4) move.w #75,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5176,7 +5176,7 @@ bln_load_circle_greets_bg_1:
bln_load_circle_greets_bg_2: bln_load_circle_greets_bg_2:
PUTMSG 10,<"%d: Load greets bg 2 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load greets bg 2 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #128,cp_CenterPosX(a4) move.w #128,cp_CenterPosX(a4)
move.w #149,cp_CenterPosY(a4) move.w #149,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5202,7 +5202,7 @@ bln_load_circle_greets_bg_2:
rts rts
bln_load_circle_greets_bg_3: bln_load_circle_greets_bg_3:
PUTMSG 10,<"%d: Load greets bg 3 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load greets bg 3 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #80,cp_CenterPosX(a4) move.w #80,cp_CenterPosX(a4)
move.w #32,cp_CenterPosY(a4) move.w #32,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5228,7 +5228,7 @@ bln_load_circle_greets_bg_3:
rts rts
bln_load_circle_greets_bg_4: bln_load_circle_greets_bg_4:
PUTMSG 10,<"%d: Load greets bg 4 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load greets bg 4 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #208,cp_CenterPosX(a4) move.w #208,cp_CenterPosX(a4)
move.w #28,cp_CenterPosY(a4) move.w #28,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5254,7 +5254,7 @@ bln_load_circle_greets_bg_4:
rts rts
bln_load_circle_greets_bg_5: bln_load_circle_greets_bg_5:
PUTMSG 10,<"%d: Load greets bg 5 (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Load greets bg 5 (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #48,cp_CenterPosX(a4) move.w #48,cp_CenterPosX(a4)
move.w #118,cp_CenterPosY(a4) move.w #118,cp_CenterPosY(a4)
moveq.l #0,d0 moveq.l #0,d0
@ -5289,7 +5289,7 @@ bln_load_next_greeting:
beq.s .reallykill beq.s .reallykill
move.w (a0)+,d1 move.w (a0)+,d1
move.w (a0)+,d2 move.w (a0)+,d2
PUTMSG 10,<"%d: Next greeting at %d,%d Pair: %d">,fw_FrameCounter-2(a6),d0,d1,d2 PUTMSG 10,<"%d: Next greeting at %d,%d Pair: %d">,fw_FrameCounterLong(a6),d0,d1,d2
move.w d0,cp_CenterPosX(a4) move.w d0,cp_CenterPosX(a4)
move.w d1,cp_CenterPosY(a4) move.w d1,cp_CenterPosY(a4)
move.w d2,cp_Pair(a4) move.w d2,cp_Pair(a4)
@ -5303,7 +5303,7 @@ bln_load_next_greeting:
.retry .retry
move.l pd_GreetingLinePtr(a6),a0 move.l pd_GreetingLinePtr(a6),a0
movem.w (a0)+,d0-d4 movem.w (a0)+,d0-d4
PUTMSG 10,<"%d: Greeting from %d,%d to %d,%d, shift %d">,fw_FrameCounter-2(a6),d0,d1,d2,d3,d4 PUTMSG 10,<"%d: Greeting from %d,%d to %d,%d, shift %d">,fw_FrameCounterLong(a6),d0,d1,d2,d3,d4
move.w d0,cp_FgRelPosX(a4) move.w d0,cp_FgRelPosX(a4)
beq.s .kill beq.s .kill
@ -5359,21 +5359,21 @@ bln_load_next_greeting:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_reverse_big_circle_to_backward: bln_reverse_big_circle_to_backward:
PUTMSG 10,<"%d: Reversing big circle (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Reversing big circle (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.l #bln_big_circle_rad_backward_update,cp_FrameRoutine(a4) move.l #bln_big_circle_rad_backward_update,cp_FrameRoutine(a4)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_reverse_smaller_circle_to_backward: bln_reverse_smaller_circle_to_backward:
PUTMSG 10,<"%d: Reversing smaller circle (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Reversing smaller circle (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.l #bln_smaller_circle_rad_backward_update,cp_FrameRoutine(a4) move.l #bln_smaller_circle_rad_backward_update,cp_FrameRoutine(a4)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
bln_reverse_small_circle_to_backward: bln_reverse_small_circle_to_backward:
PUTMSG 10,<"%d: Reversing smaller circle (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Reversing smaller circle (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.l #bln_small_circle_rad_backward_update,cp_FrameRoutine(a4) move.l #bln_small_circle_rad_backward_update,cp_FrameRoutine(a4)
rts rts
@ -5598,13 +5598,13 @@ bln_circle_greet6_script:
dc.w $000 ; is required for true color image decoding dc.w $000 ; is required for true color image decoding
bln_images_palette: bln_images_palette:
include "data/blend/fiveimg_ham.pal.asm" include "../data/blend/fiveimg_ham.pal.asm"
bln_leaves_tc_10: bln_leaves_tc_10:
incbin "data/blend/leavestc_10.raw" incbin "../data/blend/leavestc_10.raw"
bln_endlogo_palette: bln_endlogo_palette:
include "data/blend/PLT_DSRLogo01c_ham.pal.asm" include "../data/blend/PLT_DSRLogo01c_ham.pal.asm"
dc.l 0 dc.l 0
bln_circlerads: bln_circlerads:
@ -5678,6 +5678,10 @@ bln_greets_lines:
dc.w 0 dc.w 0
dc.w 0 dc.w 0
IFND FW_DEMO_PART
dc.w 1 ; avoid hunk shortening that leaves dirty memory on kick 1.3
ENDC
;******************************************************************** ;********************************************************************
section "bln_copper",data,chip section "bln_copper",data,chip
@ -5714,32 +5718,32 @@ bln_circleinfo:
dc.w 0 dc.w 0
bln_andyou_image: bln_andyou_image:
incbin "data/blend/andyou_128x92x2.BPL" incbin "../data/blend/andyou_128x92x2.BPL"
bln_blend_image_1: bln_blend_image_1:
incbin "data/blend/fiveimg1_ham.raw" incbin "../data/blend/fiveimg1_ham.raw"
IFND FW_DEMO_PART IFND FW_DEMO_PART
section "bln_cat",data,chip section "bln_cat",data,chip
bln_blend_image_2: bln_blend_image_2:
incbin "data/blend/fiveimg2_ham.raw" incbin "../data/blend/fiveimg2_ham.raw"
bln_blend_image_3: bln_blend_image_3:
incbin "data/blend/fiveimg3_ham.raw" incbin "../data/blend/fiveimg3_ham.raw"
bln_blend_image_4: bln_blend_image_4:
incbin "data/blend/fiveimg4_ham.raw" incbin "../data/blend/fiveimg4_ham.raw"
bln_blend_image_5: bln_blend_image_5:
incbin "data/blend/fiveimg5_ham.raw" incbin "../data/blend/fiveimg5_ham.raw"
bln_endlogo_image: bln_endlogo_image:
incbin "data/blend/PLT_DSRLogo01c_ham.raw" incbin "../data/blend/PLT_DSRLogo01c_ham.raw"
IFD ENABLE_PART_MUSIC IFD ENABLE_PART_MUSIC
section "part_music_samples",data,chip ; section for music playback section "part_music_samples",data,chip ; section for music playback
part_music_smp: 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 section "part_music_data",data ; section for music playback
part_music_data: part_music_data:
incbin "data/music/dsr_68k_tune_2_v11.lsmusic" incbin "../data/music/dsr_68k_tune_2_v11.lsmusic"
ENDC ENDC
ENDC ENDC
END END

View File

@ -6,9 +6,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -95,7 +95,7 @@ DEBUG_DETAIL SET 10
NEWAGE_DEBUG = 1 NEWAGE_DEBUG = 1
include "framework.i" include "../framework/framework.i"
; Memory use: ; Memory use:
@ -236,7 +236,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -442,7 +442,7 @@ blb_init_colors:
blb_init_shade_table: blb_init_shade_table:
move.l pd_ShadeTableXor(a6),a0 move.l pd_ShadeTableXor(a6),a0
PUTMSG 10,<"%d: Init Shade Table %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: Init Shade Table %p">,fw_FrameCounterLong(a6),a0
move.l a0,a1 move.l a0,a1
moveq.l #0,d0 moveq.l #0,d0
.xorloop .xorloop
@ -519,7 +519,7 @@ blb_main:
CALLFW SetBlitterQueueMultiFrame CALLFW SetBlitterQueueMultiFrame
move.w #-1,pd_CurrBlitSize(a6) move.w #-1,pd_CurrBlitSize(a6)
PUTMSG 10,<"%d: Main!">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Main!">,fw_FrameCounterLong(a6)
lea .vblstuff(pc),a0 lea .vblstuff(pc),a0
move.l a0,fw_VBlankIRQ(a6) move.l a0,fw_VBlankIRQ(a6)
@ -531,7 +531,7 @@ blb_main:
CALLFW VSyncWithTask CALLFW VSyncWithTask
PUTMSG 10,<"%d: Main 2">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Main 2">,fw_FrameCounterLong(a6)
bsr blb_flip_db_frame bsr blb_flip_db_frame
bsr blb_create_bulb_copperlist bsr blb_create_bulb_copperlist
bsr blb_patch_in_text_sprites_to_copperlist bsr blb_patch_in_text_sprites_to_copperlist
@ -601,14 +601,14 @@ blb_main:
.nowrapbqwrite .nowrapbqwrite
cmp.l pd_BqDataReadPtr(a6),a1 cmp.l pd_BqDataReadPtr(a6),a1
bne.s .nowait bne.s .nowait
PUTMSG 40,<"%d: Waiting for space Read: %p Write: %p">,fw_FrameCounter-2(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6) PUTMSG 40,<"%d: Waiting for space Read: %p Write: %p">,fw_FrameCounterLong(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
CALLFW JoinBlitterQueue CALLFW JoinBlitterQueue
CALLFW VSyncWithTask CALLFW VSyncWithTask
bra.s .waitforbqspaceloop bra.s .waitforbqspaceloop
.nowait .nowait
move.l a1,pd_BqDataWritePtr(a6) move.l a1,pd_BqDataWritePtr(a6)
move.l a2,pd_CurrLineColorsPtr(a6) move.l a2,pd_CurrLineColorsPtr(a6)
PUTMSG 40,<"%d: Done a frame Read: %p Write: %p">,fw_FrameCounter-2(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6) PUTMSG 40,<"%d: Done a frame Read: %p Write: %p">,fw_FrameCounterLong(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
subq.w #1,pd_PartCountDown(a6) subq.w #1,pd_PartCountDown(a6)
bne .loop bne .loop
@ -659,17 +659,17 @@ blb_main:
tst.w pd_NextQueueTriggerFrame(a6) tst.w pd_NextQueueTriggerFrame(a6)
beq.s .nodrop beq.s .nodrop
subq.w #1,pd_LampFrameNum(a6) subq.w #1,pd_LampFrameNum(a6)
PUTMSG 10,<"%d: Framedrop %d vs %d!">,fw_FrameCounter-2(a6),pd_NextQueueTriggerFrame-2(a6),d0 PUTMSG 10,<"%d: Framedrop %d vs %d!">,fw_FrameCounterLong(a6),pd_NextQueueTriggerFrame-2(a6),d0
.nodrop .nodrop
addq.w #2,d0 addq.w #2,d0
move.w d0,pd_NextQueueTriggerFrame(a6) move.w d0,pd_NextQueueTriggerFrame(a6)
PUTMSG 20,<"%d: Triggering queue %p">,fw_FrameCounter-2(a6),a0 PUTMSG 20,<"%d: Triggering queue %p">,fw_FrameCounterLong(a6),a0
move.w -4(a0),pd_CurrBlitSize(a6) move.w -4(a0),pd_CurrBlitSize(a6)
BLTWAIT BLTWAIT
CALLFW TriggerCustomBlitterQueue CALLFW TriggerCustomBlitterQueue
rts rts
.nop .nop
PUTMSG 20,<"%d: Ignoring">,fw_FrameCounter-2(a6) PUTMSG 20,<"%d: Ignoring">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -683,7 +683,7 @@ blb_brighten:
lea pd_LampPalette(a6),a1 lea pd_LampPalette(a6),a1
CALLFW FadePaletteTo CALLFW FadePaletteTo
PUTMSG 10,<"%d: Brighten!">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Brighten!">,fw_FrameCounterLong(a6)
move.w #SWING_FRAMES*4,pd_SwingFrameNum(a6) move.w #SWING_FRAMES*4,pd_SwingFrameNum(a6)
move.w #PAINT_FRAMES*4,pd_PaintFrameNum(a6) move.w #PAINT_FRAMES*4,pd_PaintFrameNum(a6)
@ -749,14 +749,14 @@ blb_brighten:
.nowrapbqwrite .nowrapbqwrite
cmp.l pd_BqDataReadPtr(a6),a1 cmp.l pd_BqDataReadPtr(a6),a1
bne.s .nowait bne.s .nowait
PUTMSG 40,<"%d: Waiting for space Read: %p Write: %p">,fw_FrameCounter-2(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6) PUTMSG 40,<"%d: Waiting for space Read: %p Write: %p">,fw_FrameCounterLong(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
CALLFW JoinBlitterQueue CALLFW JoinBlitterQueue
CALLFW VSyncWithTask CALLFW VSyncWithTask
bra.s .waitforbqspaceloop bra.s .waitforbqspaceloop
.nowait .nowait
move.l a1,pd_BqDataWritePtr(a6) move.l a1,pd_BqDataWritePtr(a6)
move.l a2,pd_CurrLineColorsPtr(a6) move.l a2,pd_CurrLineColorsPtr(a6)
PUTMSG 40,<"%d: Done a frame Read: %p Write: %p">,fw_FrameCounter-2(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6) PUTMSG 40,<"%d: Done a frame Read: %p Write: %p">,fw_FrameCounterLong(a6),pd_BqDataReadPtr(a6),pd_BqDataWritePtr(a6)
subq.w #1,pd_PartCountDown(a6) subq.w #1,pd_PartCountDown(a6)
bne .loop bne .loop
@ -3269,13 +3269,13 @@ blb_do_lamp_rotations:
moveq.l #-NUM_LAMP_ROTATIONS/2,d1 moveq.l #-NUM_LAMP_ROTATIONS/2,d1
.loop .loop
PUTMSG 40,<"%d: Rotation %d to %p">,fw_FrameCounter-2(a6),d1,a4 PUTMSG 40,<"%d: Rotation %d to %p">,fw_FrameCounterLong(a6),d1,a4
PUSHM d1/d7 PUSHM d1/d7
bsr blb_calc_sheers bsr blb_calc_sheers
bsr blb_rotate_chunky bsr blb_rotate_chunky
PUTMSG 40,<"%d: C2P">,fw_FrameCounter-2(a6) PUTMSG 40,<"%d: C2P">,fw_FrameCounterLong(a6)
lea pd_LampSprites(a6),a3 lea pd_LampSprites(a6),a3
REPT 3 REPT 3
move.l a4,a1 move.l a4,a1
@ -3503,10 +3503,10 @@ blb_text_panels:
dc.l 0 dc.l 0
blb_lamp_palette: blb_lamp_palette:
incbin "data/bulb/lamp_64x32x16.PAL" incbin "../data/bulb/lamp_64x32x16.PAL"
blb_lamp_off_palette: blb_lamp_off_palette:
incbin "data/bulb/lamp_off_64x32x16.PAL" incbin "../data/bulb/lamp_off_64x32x16.PAL"
blb_lamp_white_palette: blb_lamp_white_palette:
REPT 15 REPT 15
@ -3530,7 +3530,7 @@ blb_lamp_angle_table:
include "langletable.asm" include "langletable.asm"
blb_lamp_chunky: blb_lamp_chunky:
incbin "data/bulb/lamp_48x32x16.chk" incbin "../data/bulb/lamp_48x32x16.chk"
section "blb_anim",data section "blb_anim",data
@ -3543,6 +3543,10 @@ blb_paint_data:
blb_textpaint_data: blb_textpaint_data:
include "textpaint.asm" include "textpaint.asm"
IFND FW_DEMO_PART
dc.w 1 ; avoid hunk shortening that leaves dirty memory on kick 1.3
ENDC
;******************************************************************** ;********************************************************************
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -3592,25 +3596,25 @@ blb_extra_copperlist_ptr:
COP_END COP_END
blb_bulb_pic: blb_bulb_pic:
incbin "data/bulb/PLT_Lampscene_ham.raw" incbin "../data/bulb/PLT_Lampscene_ham.raw"
blb_text_1_data: blb_text_1_data:
;blk.b 2560,255 ;blk.b 2560,255
incbin "data/bulb/text1.BPL" incbin "../data/bulb/text1.BPL"
blb_text_2_data: blb_text_2_data:
;blk.b 2560,255 ;blk.b 2560,255
incbin "data/bulb/text2.BPL" incbin "../data/bulb/text2.BPL"
blb_text_3_data: blb_text_3_data:
;blk.b 2560,255 ;blk.b 2560,255
incbin "data/bulb/text3.BPL" incbin "../data/bulb/text3.BPL"
blb_text_4_data: blb_text_4_data:
;blk.b 2560,255 ;blk.b 2560,255
incbin "data/bulb/text4.BPL" incbin "../data/bulb/text4.BPL"
blb_text_5_data: blb_text_5_data:
;blk.b 2560,255 ;blk.b 2560,255
incbin "data/bulb/text5.BPL" incbin "../data/bulb/text5.BPL"
END END

View File

@ -5,9 +5,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -75,7 +75,7 @@ DEBUG_DETAIL SET 10
NEWAGE_DEBUG = 1 NEWAGE_DEBUG = 1
include "framework.i" include "../framework/framework.i"
; Memory use: ; Memory use:
@ -115,7 +115,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -420,7 +420,7 @@ enp_write_textline:
.nextline .nextline
PUTMSG 40,<"%d: NL">,fw_FrameCounter-2(a6) PUTMSG 40,<"%d: NL">,fw_FrameCounterLong(a6)
move.l pd_TextLinePtr(a6),a0 move.l pd_TextLinePtr(a6),a0
.retrychar .retrychar
tst.b (a0) tst.b (a0)
@ -1058,20 +1058,20 @@ enp_extra_copperlist_ptr:
COP_END COP_END
enp_font_data: enp_font_data:
incbin "data/endpart/PJZ_font_8x16x4.BPL" incbin "../data/endpart/PJZ_font_8x16x4.BPL"
IFND FW_DEMO_PART IFND FW_DEMO_PART
IFD ENABLE_PART_MUSIC IFD ENABLE_PART_MUSIC
section "part_music_samples",data,chip ; section for music playback section "part_music_samples",data,chip ; section for music playback
part_music_smp: 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 section "part_music_data",data ; section for music playback
part_music_data: part_music_data:
incbin "data/music/desire_68k_tune3_v2.lsmusic" incbin "../data/music/desire_68k_tune3_v2.lsmusic"
ENDC ENDC
section "enp_screenshots",data,chip section "enp_screenshots",data,chip
enp_screenshots: enp_screenshots:
ds.b ((SCREENSHOTS_WIDTH/8)*ENDP_HEIGHT)*SCREENSHOTS_PLANES ds.b ((SCREENSHOTS_WIDTH/8)*ENDP_HEIGHT)*SCREENSHOTS_PLANES
incbin "data/endpart/screenshots_320x1620.BPL" incbin "../data/endpart/screenshots_320x1620.BPL"
ENDC ENDC
END END

View File

@ -2,92 +2,92 @@
; link all parts together depending on the settings ; link all parts together depending on the settings
include "framework.i" include "../framework/framework.i"
IF FW_STANDALONE_FILE_MODE IF FW_STANDALONE_FILE_MODE
include "os_startupcode.asm" include "../framework/os_startupcode.asm"
ELSE ELSE
include "trackmo_startupcode.asm" include "../framework/trackmo_startupcode.asm"
ENDC ENDC
include "framework_misc.asm" include "../framework/framework_misc.asm"
IF FW_MULTITASKING_SUPPORT IF FW_MULTITASKING_SUPPORT
include "framework_tasks.asm" include "../framework/framework_tasks.asm"
ENDC ENDC
IF FW_BLITTERQUEUE_SUPPORT IF FW_BLITTERQUEUE_SUPPORT
include "framework_blitterqueue.asm" include "../framework/framework_blitterqueue.asm"
ENDC ENDC
IF FW_DYNAMIC_MEMORY_SUPPORT IF FW_DYNAMIC_MEMORY_SUPPORT
include "framework_memory.asm" include "../framework/framework_memory.asm"
ENDC ENDC
IF FW_MUSIC_SUPPORT IF FW_MUSIC_SUPPORT
include "framework_music.asm" include "../framework/framework_music.asm"
ENDC ENDC
IF FW_MULTIPART_SUPPORT IF FW_MULTIPART_SUPPORT
include "framework_multipart.asm" include "../framework/framework_multipart.asm"
ENDC ENDC
IF FW_SINETABLE_SUPPORT IF FW_SINETABLE_SUPPORT
include "framework_sinetable.asm" include "../framework/framework_sinetable.asm"
ENDC ENDC
IF FW_SCRIPTING_SUPPORT IF FW_SCRIPTING_SUPPORT
include "framework_scripting.asm" include "../framework/framework_scripting.asm"
ENDC ENDC
IF FW_PALETTE_LERP_SUPPORT IF FW_PALETTE_LERP_SUPPORT
include "framework_palettelerp.asm" include "../framework/framework_palettelerp.asm"
ENDC ENDC
IFEQ FW_STANDALONE_FILE_MODE IFEQ FW_STANDALONE_FILE_MODE
include "framework_trackloader.asm" include "../framework/framework_trackloader.asm"
include "framework_dos.asm" include "../framework/framework_dos.asm"
ELSE ELSE
IF FW_HD_TRACKMO_MODE IF FW_HD_TRACKMO_MODE
include "framework_hdloader.asm" include "../framework/framework_hdloader.asm"
include "framework_dos.asm" include "../framework/framework_dos.asm"
ENDC ENDC
ENDC ENDC
IF FW_MUSIC_SUPPORT IF FW_MUSIC_SUPPORT
IFNE FW_MUSIC_PLAYER_CHOICE==0 IFNE FW_MUSIC_PLAYER_CHOICE==0
include "musicplayers/player_none.asm" include "../framework/musicplayers/player_none.asm"
ENDC ENDC
IFNE FW_MUSIC_PLAYER_CHOICE==1 IFNE FW_MUSIC_PLAYER_CHOICE==1
include "musicplayers/player_lsp_vbl.asm" include "../framework/musicplayers/player_lsp_vbl.asm"
ENDC ENDC
IFNE FW_MUSIC_PLAYER_CHOICE==2 IFNE FW_MUSIC_PLAYER_CHOICE==2
include "musicplayers/player_lsp_cia.asm" include "../framework/musicplayers/player_lsp_cia.asm"
ENDC ENDC
IFNE FW_MUSIC_PLAYER_CHOICE==3 IFNE FW_MUSIC_PLAYER_CHOICE==3
fail "Sorry, P61 not ported to this framework (yet). Use LSP instead." fail "Sorry, P61 not ported to this framework (yet). Use LSP instead."
ENDC ENDC
IFNE (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6) IFNE (FW_MUSIC_PLAYER_CHOICE==4)|(FW_MUSIC_PLAYER_CHOICE==5)
;include "musicplayers/player_pretracker_std.asm" ;include "../framework/musicplayers/player_pretracker_std.asm"
include "musicplayers/player_raspberry_casket.asm" include "../framework/musicplayers/player_raspberry_casket.asm"
ENDC ENDC
ENDC ENDC
IF FW_LZ4_SUPPORT IF FW_LZ4_SUPPORT
fw_DecompressLZ4: fw_DecompressLZ4:
include "unpackers/lz4_normal.asm" include "../framework/unpackers/lz4_normal.asm"
ENDC ENDC
IF FW_ZX0_SUPPORT IF FW_ZX0_SUPPORT
fw_DecompressZX0: fw_DecompressZX0:
;include "unpackers/zx0.asm" ;include "../framework/unpackers/zx0.asm"
include "unpackers/zx0_faster.asm" include "../framework/unpackers/zx0_faster.asm"
ENDC ENDC
IF FW_DOYNAX_SUPPORT IF FW_DOYNAX_SUPPORT
fw_DecompressDoynax: fw_DecompressDoynax:
include "unpackers/doynax.asm" include "../framework/unpackers/doynax.asm"
ENDC ENDC
include "framework_chip_section.asm" include "../framework/framework_chip_section.asm"
IF FW_STANDALONE_FILE_MODE IF FW_STANDALONE_FILE_MODE
; framework structure is allocated from RAM and pointer is placed here ; framework structure is allocated from RAM and pointer is placed here

View File

@ -1,24 +1,24 @@
IFND FRAMEWORK_I IFND FRAMEWORK_I
FRAMEWORK_I SET 1 FRAMEWORK_I SET 1
include "hardware/custom.i" include "../includes/hardware/custom.i"
include "hardware/copper.i" include "../includes/hardware/copper.i"
include "hardware/cia.i" include "../includes/hardware/cia.i"
include "hardware/intbits.i" include "../includes/hardware/intbits.i"
include "hardware/dmabits.i" include "../includes/hardware/dmabits.i"
include "hardware/adkbits.i" include "../includes/hardware/adkbits.i"
include "hardware/blitbits.i" include "../includes/hardware/blitbits.i"
include "exec/types.i" include "../includes/exec/types.i"
include "exec/nodes.i" include "../includes/exec/nodes.i"
include "exec/lists.i" include "../includes/exec/lists.i"
include "exec/macros.i" include "../includes/exec/macros.i"
include "exec/execbase.i" include "../includes/exec/execbase.i"
include "dos/doshunks.i" include "../includes/dos/doshunks.i"
include "lvo/lvo.i" include "../includes/lvo/lvo.i"
include "framework_macros.i" include "../framework/framework_macros.i"
FWGENLVOTABLE SET 0 FWGENLVOTABLE SET 0
include "framework_lvos.i" include "../framework/framework_lvos.i"
; error color codes ; error color codes
ERROR_OUTOFMEMORY = $0f00 ; one of the memory stacks ran out of memory ERROR_OUTOFMEMORY = $0f00 ; one of the memory stacks ran out of memory
@ -60,10 +60,6 @@ DEFF_DELTA32 = (3<<DEFS_DELTAMODE) ; not implemented
DEFB_IN_PLACE = 11 DEFB_IN_PLACE = 11
DEFF_IN_PLACE = (1<<DEFB_IN_PLACE) 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 IF (FW_STANDALONE_FILE_MODE==0)|FW_HD_TRACKMO_MODE
FW_DIRECTORY_ENTRIES_OFFSET = 512 FW_DIRECTORY_ENTRIES_OFFSET = 512
@ -128,6 +124,7 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
ENDC ENDC
STRUCTURE FrameWork,0 STRUCTURE FrameWork,0
UWORD fw_FrameCounterLong
UWORD fw_FrameCounter UWORD fw_FrameCounter
APTR fw_PartFwBase APTR fw_PartFwBase
@ -158,7 +155,6 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
APTR fw_VBR APTR fw_VBR
APTR fw_DemoAbortStackPointer APTR fw_DemoAbortStackPointer
BOOL fw_AgaChipset BOOL fw_AgaChipset
BOOL fw_DisableLMBExit
IF FW_STANDALONE_FILE_MODE IF FW_STANDALONE_FILE_MODE
APTR fw_OrigBaseMemAllocAddr APTR fw_OrigBaseMemAllocAddr
ULONG fw_OrigBaseMemAllocLength ULONG fw_OrigBaseMemAllocLength
@ -172,12 +168,6 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
APTR fw_GfxBase APTR fw_GfxBase
STRUCT fw_OldControls,2*4 ; intena, intreq, dmacon, adkcon STRUCT fw_OldControls,2*4 ; intena, intreq, dmacon, adkcon
APTR fw_OldSystemVBlankIRQ 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_OldCiaIRQ
APTR fw_CiaBResource APTR fw_CiaBResource
STRUCT fw_SysFriendlyInterrupt,IS_SIZE STRUCT fw_SysFriendlyInterrupt,IS_SIZE
@ -224,12 +214,6 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
IF FW_COPPER_IRQ_SUPPORT IF FW_COPPER_IRQ_SUPPORT
APTR fw_CopperIRQ APTR fw_CopperIRQ
ENDC ENDC
IF FW_SOFT_IRQ_SUPPORT
APTR fw_SoftIRQ
ENDC
IF FW_AUDIO_IRQ_SUPPORT
APTR fw_AudioIRQ
ENDC
IF FW_MULTITASKING_SUPPORT IF FW_MULTITASKING_SUPPORT
STRUCT fw_Tasks,MLH_SIZE STRUCT fw_Tasks,MLH_SIZE
UWORD fw_MainCurrentFrame UWORD fw_MainCurrentFrame
@ -240,11 +224,6 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
APTR fw_BackgroundTaskUSP APTR fw_BackgroundTaskUSP
ENDC ENDC
IFEQ FW_PALETTE_LERP_SUPPORT-2
APTR fw_BlueNoiseTablePtr
UWORD fw_BlueNoisePos
ENDC
IF FW_BLITTERQUEUE_SUPPORT IF FW_BLITTERQUEUE_SUPPORT
APTR fw_BlitterQueueIRQ APTR fw_BlitterQueueIRQ
APTR fw_BlitterQueueWritePtr ; don't change order APTR fw_BlitterQueueWritePtr ; don't change order
@ -276,7 +255,7 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
ENDC ENDC
IF FW_MUSIC_SUPPORT IF FW_MUSIC_SUPPORT
APTR fw_MusicTickRoutine BOOL fw_MusicEnabled
APTR fw_MusicData APTR fw_MusicData
APTR fw_MusicSamples APTR fw_MusicSamples
@ -310,21 +289,12 @@ FW_DIRECTORY_ENTRIES_OFFSET = 512
ENDC ENDC
ENDC ENDC
IF (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6) IF (FW_MUSIC_PLAYER_CHOICE==4)||(FW_MUSIC_PLAYER_CHOICE==5)
APTR fw_PretrackerMyPlayer APTR fw_PretrackerMyPlayer
APTR fw_PretrackerMySong APTR fw_PretrackerMySong
ULONG fw_PretrackerProgress ULONG fw_PretrackerProgress
IF (FW_MUSIC_PLAYER_CHOICE>=5)
APTR fw_PretrackerCopperlist APTR fw_PretrackerCopperlist
ENDC 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 ENDC
IFD gbd_SIZEOF IFD gbd_SIZEOF

View File

@ -17,7 +17,7 @@
; Trashes: probably all registers ; Trashes: probably all registers
; ;
fw_ExecuteNextPart: fw_ExecuteNextPart:
PUTMSG 10,<10,"%d: *** Preparing to execute next part %s ***">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<10,"%d: *** Preparing to execute next part %s ***">,fw_FrameCounterLong(a6),a0
bsr.s fw_LoadNextPart bsr.s fw_LoadNextPart
PUSHM a0 PUSHM a0
@ -25,15 +25,15 @@ fw_ExecuteNextPart:
POPM POPM
IF FW_MUSIC_SUPPORT IF FW_MUSIC_SUPPORT
PUTMSG 10,<"%d: *** Executing next part %p at music frame %d">,fw_FrameCounter-2(a6),a0,fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: *** Executing next part %p at music frame %d">,fw_FrameCounterLong(a6),a0,fw_MusicFrameCount-2(a6)
ELSE ELSE
PUTMSG 10,<"%d: *** Executing next part %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: *** Executing next part %p">,fw_FrameCounterLong(a6),a0
ENDC ENDC
jsr (a0) jsr (a0)
IF FW_MUSIC_SUPPORT IF FW_MUSIC_SUPPORT
PUTMSG 10,<"%d: *** Part finished at music frame %d",10>,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: *** Part finished at music frame %d",10>,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
ELSE ELSE
PUTMSG 10,<"%d: *** Part finished",10>,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: *** Part finished",10>,fw_FrameCounterLong(a6)
ENDC ENDC
bsr fw_RestoreFrameworkBase bsr fw_RestoreFrameworkBase
@ -57,7 +57,7 @@ fw_ExecuteNextPart:
; Trashes: probably all registers ; Trashes: probably all registers
; ;
fw_LoadNextPart: fw_LoadNextPart:
PUTMSG 10,<10,"%d: *** Loading next part %s ***">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<10,"%d: *** Loading next part %s ***">,fw_FrameCounterLong(a6),a0
clr.l fw_LastLoadedPart(a6) clr.l fw_LastLoadedPart(a6)
bsr fw_DropCurrentMemoryAllocations bsr fw_DropCurrentMemoryAllocations
bsr fw_FindFile bsr fw_FindFile
@ -75,7 +75,7 @@ fw_LoadNextPart:
fw_WaitForPartLoaded: fw_WaitForPartLoaded:
tst.l fw_LastLoadedPart(a6) tst.l fw_LastLoadedPart(a6)
bne.s .done bne.s .done
PUTMSG 10,<"%d: Part not yet fully loaded. Waiting.">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Part not yet fully loaded. Waiting.">,fw_FrameCounterLong(a6)
.loop bsr fw_Yield .loop bsr fw_Yield
tst.l fw_LastLoadedPart(a6) tst.l fw_LastLoadedPart(a6)
beq.s .loop beq.s .loop
@ -89,7 +89,7 @@ fw_WaitForPartLoaded:
; just before ExecuteNextPart starts the part after loading/decrunching. ; just before ExecuteNextPart starts the part after loading/decrunching.
; ;
; Hooks can be installed by writing fw_PrePartLaunchHook(a6). ; 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_PrePartLaunchHook(a6) is cleared prior to executing the hook.
; ;
fw_CheckPrePartLaunchHook: fw_CheckPrePartLaunchHook:
@ -251,7 +251,7 @@ fw_LoadFile:
; a1 = Dir entry structure of the file ; a1 = Dir entry structure of the file
; ;
fw_LoadPlainFileEntry: fw_LoadPlainFileEntry:
PUTMSG 10,<"%d: Loading plain file from offset %ld, size %ld">,fw_FrameCounter-2(a6),de_DiskOffset(a1),de_DiskLength(a1) PUTMSG 10,<"%d: Loading plain file from offset %ld, size %ld">,fw_FrameCounterLong(a6),de_DiskOffset(a1),de_DiskLength(a1)
tst.b de_Flags+1(a1) tst.b de_Flags+1(a1)
bpl.s fw_LoadPlainFileEntryToFast bpl.s fw_LoadPlainFileEntryToFast
move.l de_DiskLength(a1),d0 move.l de_DiskLength(a1),d0
@ -420,8 +420,8 @@ fw_LoadAndInPlaceDecrunchToBuffer:
; ;
; In : a0 = source buffer ; In : a0 = source buffer
; a1 = Dir entry structure ; a1 = Dir entry structure
; a2 = target buffer ; a2 = target buffer
; Out: a0 = END of the buffer written ; Out: a0 = END of the buffer written
; a1 = Dir entry structure ; a1 = Dir entry structure
; ;
fw_DecrunchToBuffer: fw_DecrunchToBuffer:
@ -431,7 +431,7 @@ fw_DecrunchToBuffer:
IF FW_DOYNAX_SUPPORT IF FW_DOYNAX_SUPPORT
cmp.w #DEFF_DOYNAX,d0 cmp.w #DEFF_DOYNAX,d0
bne.s .nodoynax bne.s .nodoynax
PUTMSG 10,<"%d: DoynaxDecrunch from %p (%ld) to %p (%ld)">,fw_FrameCounter-2(a6),a0,de_DiskLength(a1),a2,de_MemorySize(a1) PUTMSG 10,<"%d: DoynaxDecrunch from %p (%ld) to %p (%ld)">,fw_FrameCounterLong(a6),a0,de_DiskLength(a1),a2,de_MemorySize(a1)
move.l a2,a1 move.l a2,a1
bsr doynaxdepack bsr doynaxdepack
bra .decdone bra .decdone
@ -441,7 +441,7 @@ fw_DecrunchToBuffer:
IF FW_ZX0_SUPPORT IF FW_ZX0_SUPPORT
cmp.w #DEFF_ZX0,d0 cmp.w #DEFF_ZX0,d0
bne.s .nozx0 bne.s .nozx0
PUTMSG 10,<"%d: ZX0Decrunch from %p (%ld) to %p (%ld)">,fw_FrameCounter-2(a6),a0,de_DiskLength(a1),a2,de_MemorySize(a1) PUTMSG 10,<"%d: ZX0Decrunch from %p (%ld) to %p (%ld)">,fw_FrameCounterLong(a6),a0,de_DiskLength(a1),a2,de_MemorySize(a1)
move.l a2,a1 move.l a2,a1
bsr zx0_decompress bsr zx0_decompress
bra.s .decdone bra.s .decdone
@ -452,7 +452,7 @@ fw_DecrunchToBuffer:
cmp.w #DEFF_LZ4,d0 cmp.w #DEFF_LZ4,d0
bne.s .nolz4 bne.s .nolz4
move.l de_DiskLength(a1),d0 move.l de_DiskLength(a1),d0
PUTMSG 10,<"%d: LZ4Decrunch from %p (%ld) to %p (%ld)">,fw_FrameCounter-2(a6),a0,d0,a2,de_MemorySize(a1) PUTMSG 10,<"%d: LZ4Decrunch from %p (%ld) to %p (%ld)">,fw_FrameCounterLong(a6),a0,d0,a2,de_MemorySize(a1)
move.l a2,a1 move.l a2,a1
bsr lz4_depack bsr lz4_depack
bra.s .decdone bra.s .decdone
@ -477,7 +477,7 @@ fw_DecrunchToBuffer:
PUSHM a2 PUSHM a2
move.l de_MemorySize(a1),d0 move.l de_MemorySize(a1),d0
beq.s .d8done beq.s .d8done
PUTMSG 10,<"%d: Delta8 decoding %p %ld bytes">,fw_FrameCounter-2(a6),a2,d0 PUTMSG 10,<"%d: Delta8 decoding %p %ld bytes">,fw_FrameCounterLong(a6),a2,d0
moveq.l #0,d1 moveq.l #0,d1
subq.l #1,d0 subq.l #1,d0
.d8loop .d8loop
@ -492,7 +492,7 @@ fw_DecrunchToBuffer:
.d8done .d8done
POPM POPM
.nodelta .nodelta
PUTMSG 10,<"%d: Decrunching done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Decrunching done">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -505,7 +505,7 @@ fw_LoadFileToBuffer:
PUSHM a0-a3 PUSHM a0-a3
move.l de_DiskOffset(a1),d0 move.l de_DiskOffset(a1),d0
move.l de_DiskLength(a1),d1 move.l de_DiskLength(a1),d1
PUTMSG 10,<"%d: Loading file %p to buffer %p (%ld)">,fw_FrameCounter-2(a6),a1,a0,d1 PUTMSG 10,<"%d: Loading file %p to buffer %p (%ld)">,fw_FrameCounterLong(a6),a1,a0,d1
bsr fw_TrackloaderLoad bsr fw_TrackloaderLoad
POPM POPM
rts rts
@ -521,7 +521,7 @@ fw_LoadFileToBuffer:
; Out: a1 = end of decrunching pointer ; Out: a1 = end of decrunching pointer
; ;
fw_TrackmoLoadAndDecrunchToBuffer: fw_TrackmoLoadAndDecrunchToBuffer:
PUTMSG 10,<"%d: Trackmo Loading and Decrunching %p">,fw_FrameCounter-2(a6),a1 PUTMSG 10,<"%d: Trackmo Loading and Decrunching %p">,fw_FrameCounterLong(a6),a1
move.w #DEFM_PACKMODE,d0 move.w #DEFM_PACKMODE,d0
and.w de_Flags(a1),d0 and.w de_Flags(a1),d0
IF FW_TRACKMO_LZ4_SUPPORT|FW_TRACKMO_LZ4_DLT8_SUPPORT IF FW_TRACKMO_LZ4_SUPPORT|FW_TRACKMO_LZ4_DLT8_SUPPORT
@ -550,7 +550,7 @@ fw_TrackmoLoadAndDecrunchToBuffer:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; Load and decrunch a part ; 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. ; directory entry.
; ;
; In : a1 = Dir entry structure ; In : a1 = Dir entry structure
@ -558,7 +558,7 @@ fw_TrackmoLoadAndDecrunchToBuffer:
; ;
fw_LoadAndDecrunchPart: fw_LoadAndDecrunchPart:
move.l d7,-(sp) move.l d7,-(sp)
PUTMSG 10,<"%d: Loading and Decrunching %p">,fw_FrameCounter-2(a6),a1 PUTMSG 10,<"%d: Loading and Decrunching %p">,fw_FrameCounterLong(a6),a1
tst.b de_NumHunks(a1) tst.b de_NumHunks(a1)
bne.s .cont bne.s .cont
@ -674,7 +674,7 @@ fw_LoadAndDecrunchPart:
IF FW_ZX0_SUPPORT IF FW_ZX0_SUPPORT
.inplacedecrunch .inplacedecrunch
PUTMSG 10,<"%d: In-place loading and decrunching %ld bytes to %p (%d)">,fw_FrameCounter-2(a6),de_DiskLength(a1),a0,d7 PUTMSG 10,<"%d: In-place loading and decrunching %ld bytes to %p (%d)">,fw_FrameCounterLong(a6),de_DiskLength(a1),a0,d7
PUSHM a1-a3 PUSHM a1-a3
move.l (a3,d7.w),a0 move.l (a3,d7.w),a0
bsr fw_LoadAndInPlaceDecrunchToBuffer bsr fw_LoadAndInPlaceDecrunchToBuffer
@ -686,7 +686,7 @@ fw_LoadAndDecrunchPart:
.trackloadlz4 .trackloadlz4
move.l (a3,d7.w),a0 move.l (a3,d7.w),a0
PUSHM a1-a3 PUSHM a1-a3
PUTMSG 10,<"%d: LZ4 loading and decrunching %ld bytes to %p (%d)">,fw_FrameCounter-2(a6),de_DiskLength(a1),a0,d7 PUTMSG 10,<"%d: LZ4 loading and decrunching %ld bytes to %p (%d)">,fw_FrameCounterLong(a6),de_DiskLength(a1),a0,d7
bsr fw_TrackmoLoadAndDecrunchToBuffer bsr fw_TrackmoLoadAndDecrunchToBuffer
move.l a1,a0 move.l a1,a0
POPM POPM
@ -728,7 +728,7 @@ fw_LoadAndDecrunchPart:
.clearmem .clearmem
move.l (a3,d7.w),d0 move.l (a3,d7.w),d0
add.l de_MemorySize(a1),d0 add.l de_MemorySize(a1),d0
PUTMSG 10,<"%d: End of buffer %p, expected %p, memory size %ld">,fw_FrameCounter-2(a6),a0,d0,de_MemorySize(a1) PUTMSG 10,<"%d: End of buffer %p, expected %p, memory size %ld">,fw_FrameCounterLong(a6),a0,d0,de_MemorySize(a1)
sub.l a0,d0 ; bytes to clear sub.l a0,d0 ; bytes to clear
.clearit .clearit
@ -818,7 +818,7 @@ fw_PreloadPart:
IFEQ FW_HD_TRACKMO_MODE IFEQ FW_HD_TRACKMO_MODE
bsr fw_FindFile bsr fw_FindFile
move.l d7,-(sp) move.l d7,-(sp)
PUTMSG 10,<"%d: Preparing loading and decrunching of %p">,fw_FrameCounter-2(a6),a1 PUTMSG 10,<"%d: Preparing loading and decrunching of %p">,fw_FrameCounterLong(a6),a1
tst.b de_NumHunks(a1) tst.b de_NumHunks(a1)
bne.s .cont bne.s .cont

View File

@ -61,9 +61,6 @@ _LVOFrameWorkVSyncWithTask = _LVOFrameWorkVSync
DEFFWFUNC InitPaletteLerpSameColor DEFFWFUNC InitPaletteLerpSameColor
DEFFWFUNC FadePaletteTo DEFFWFUNC FadePaletteTo
DEFFWFUNC DoFadePaletteStep DEFFWFUNC DoFadePaletteStep
IFEQ FW_PALETTE_LERP_SUPPORT-2
DEFFWFUNC DoFadePaletteStepBlueNoise
ENDC
ENDC ENDC
IF FW_SCRIPTING_SUPPORT IF FW_SCRIPTING_SUPPORT

View File

@ -76,7 +76,7 @@ BLTWAIT MACRO
; channels, minterm, shift a, shift b, (optional: target) ; channels, minterm, shift a, shift b, (optional: target)
BLTCON_SET MACRO BLTCON_SET MACRO
; write both bltcon0/bltcon1 ; write both bltcon0/bltcon1
IFNC '\5','' IFNC '\5',''
move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12),\5 move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12),\5
ELSE ELSE
move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12),bltcon0(a5) 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) ; channels, minterm, shift a, (optional: target)
BLTCON0_SET MACRO BLTCON0_SET MACRO
; write only bltcon0 ; write only bltcon0
IFNC '\4','' IFNC '\4',''
move.w #((BLTEN_\1+((\2)&$ff))|(\3<<12)),\4 move.w #((BLTEN_\1+((\2)&$ff))|(\3<<12)),\4
ELSE ELSE
move.w #((BLTEN_\1+((\2)&$ff))|(\3<<12)),bltcon0(a5) 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) ; channels, minterm, shift a, shift b, bltcon1 flags, (optional: target)
BLTCON_SET_X MACRO BLTCON_SET_X MACRO
; write both bltcon0/bltcon1 ; write both bltcon0/bltcon1
IFNC '\6','' IFNC '\6',''
move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12)|(\5),\6 move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12)|(\5),\6
ELSE ELSE
move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12)|(\5),bltcon0(a5) move.l #(((BLTEN_\1+((\2)&$ff))|(\3<<12))<<16)|(\4<<12)|(\5),bltcon0(a5)

View File

@ -39,7 +39,7 @@ fw_InitMemoryManagement:
; Memory of other allocation direction is unchanged. ; Memory of other allocation direction is unchanged.
; ;
fw_DropCurrentMemoryAllocations: fw_DropCurrentMemoryAllocations:
PUTMSG 10,<"%d: DropCurrentMemoryAllocations">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: DropCurrentMemoryAllocations">,fw_FrameCounterLong(a6)
IFGE DEBUG_DETAIL-20 IFGE DEBUG_DETAIL-20
PUSHM a0/a1/d0 PUSHM a0/a1/d0
ELSE ELSE
@ -198,7 +198,7 @@ fw_PopMemoryState:
; d1/a1: Trashed. ; d1/a1: Trashed.
; ;
fw_AllocFast: fw_AllocFast:
PUTMSG 10,<"%d: AllocFast(%ld)">,fw_FrameCounter-2(a6),d0 PUTMSG 10,<"%d: AllocFast(%ld)">,fw_FrameCounterLong(a6),d0
addq.l #3,d0 addq.l #3,d0
and.w #-4,d0 and.w #-4,d0
@ -233,7 +233,7 @@ fw_AllocFast:
; d1/a1: Trashed. ; d1/a1: Trashed.
; ;
fw_AllocChip: fw_AllocChip:
PUTMSG 10,<"%d: AllocChip(%ld)">,fw_FrameCounter-2(a6),d0 PUTMSG 10,<"%d: AllocChip(%ld)">,fw_FrameCounterLong(a6),d0
addq.l #7,d0 addq.l #7,d0
and.w #-8,d0 and.w #-8,d0
@ -281,7 +281,7 @@ fw_AllocChip:
; ;
IF FW_64KB_PAGE_MEMORY_SUPPORT IF FW_64KB_PAGE_MEMORY_SUPPORT
fw_AllocChip64KB: fw_AllocChip64KB:
PUTMSG 10,<"%d: AllocChip64KB(%ld)">,fw_FrameCounter-2(a6),d0 PUTMSG 10,<"%d: AllocChip64KB(%ld)">,fw_FrameCounterLong(a6),d0
addq.l #7,d0 addq.l #7,d0
and.w #-8,d0 and.w #-8,d0

View File

@ -13,12 +13,12 @@ fw_Error:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; Sets the base copperlist and irq (empty screen). ; 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 ; Out: Trashes d0/a0
; ;
fw_SetBaseCopper: fw_SetBaseCopper:
PUTMSG 10,<"%d: SetBaseCopper">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: SetBaseCopper">,fw_FrameCounterLong(a6)
moveq.l #0,d0 moveq.l #0,d0
IF FW_VBL_IRQ_SUPPORT IF FW_VBL_IRQ_SUPPORT
move.l d0,fw_VBlankIRQ(a6) move.l d0,fw_VBlankIRQ(a6)
@ -35,15 +35,6 @@ fw_SetBaseCopper:
move.l fw_VBR(a6),a0 move.l fw_VBR(a6),a0
move.l fw_DefaultIRQ(a6),$6c(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,intena(a5) ; disable blitter interrupt
move.w #INTF_BLIT|INTF_COPER,intreq(a5) move.w #INTF_BLIT|INTF_COPER,intreq(a5)
@ -52,10 +43,6 @@ fw_SetBaseCopper:
ELSE ELSE
move.w #INTF_SETCLR|INTF_INTEN|INTF_VERTB,intena(a5) ; enable vblank interrupt move.w #INTF_SETCLR|INTF_INTEN|INTF_VERTB,intena(a5) ; enable vblank interrupt
ENDC 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 bsr.s fw_VSync
move.w #DMAF_SETCLR|DMAF_MASTER|DMAF_BLITTER|DMAF_RASTER|DMAF_COPPER,dmacon(a5) move.w #DMAF_SETCLR|DMAF_MASTER|DMAF_BLITTER|DMAF_RASTER|DMAF_COPPER,dmacon(a5)
.clrspr .clrspr
@ -99,10 +86,6 @@ fw_VSyncWithTask:
ENDC ENDC
fw_VSync: fw_VSync:
IF FW_LMB_EXIT_SUPPORT IF FW_LMB_EXIT_SUPPORT
IFEQ FW_LMB_EXIT_SUPPORT-2
tst.w fw_DisableLMBExit(a6)
bne.s .noabort
ENDC
btst #6,$bfe001 btst #6,$bfe001
beq .abortdemo beq .abortdemo
ENDC ENDC
@ -132,40 +115,26 @@ fw_VSync:
ENDC ENDC
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; Waits until the global framecounter reaches at least the given frame ; Waits until the global framecounter reaches the given frame
; ;
; In : d0.w - frame to wait for ; In : d0.w - frame to wait for
; Out: May trash all registers! ; Out: May trash all registers!
; ;
fw_WaitForFrame: fw_WaitForFrame:
PUTMSG 20,<"%d: Waiting for frame %d">,fw_FrameCounter-2(a6),d0 PUTMSG 10,<"%d: Waiting for frame %d">,fw_FrameCounterLong(a6),d0
.loop
cmp.w fw_FrameCounter(a6),d0
bmi.s .endwait
PUSHM d0
IF FW_MULTITASKING_SUPPORT IF FW_MULTITASKING_SUPPORT
move.l #$1ff00,d1 bra fw_VSyncWithTask
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 ELSE
.spin cmp.w fw_FrameCounter(a6),d0 bra fw_VSync
bpl.s .spin
ENDC ENDC
POPM
bra.s .loop
.endwait .endwait
PUTMSG 20,<"%d: Waiting done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Waiting done">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -186,15 +155,11 @@ fw_FlushCaches:
IF FW_COPPER_IRQ_SUPPORT IF FW_COPPER_IRQ_SUPPORT
fw_copper_irq: fw_copper_irq:
IF FW_A5_A6_UNTOUCHED
PUSHM d0/a0/a5/a6 PUSHM d0/a0/a5/a6
lea $dff000,a5 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 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 move.l fw_CopperIRQ(a6),d0
beq.s .nocop beq.s .nocop
move.l d0,a0 move.l d0,a0
@ -211,29 +176,21 @@ fw_vblank_standard_irq:
btst #INTB_COPER,$dff000+intreqr+1 btst #INTB_COPER,$dff000+intreqr+1
bne.s fw_copper_irq bne.s fw_copper_irq
ENDC 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) IF FW_VBL_IRQ_SUPPORT|(FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
PUSHM d0-d3/a0-a3/a5/a6 PUSHM d0-d3/a0-a3/a5/a6
ELSE ELSE
PUSHM a5/a6 PUSHM a5/a6
ENDC ENDC
lea $dff000,a5 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.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) addq.w #1,fw_FrameCounter(a6)
IF (FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ) IF (FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
move.l fw_MusicTickRoutine(a6),d0 tst.w fw_MusicEnabled(a6)
beq.s .skipmus beq.s .skipmus
move.l d0,a0 bsr fw_MusicPlay
jsr (a0) ; IRQ must maintain d4-d7/a4
.skipmus .skipmus
ENDC ENDC
IF FW_VBL_IRQ_SUPPORT IF FW_VBL_IRQ_SUPPORT
@ -243,57 +200,6 @@ fw_vblank_standard_irq:
jsr (a0) ; IRQ must maintain d4-d7/a4 jsr (a0) ; IRQ must maintain d4-d7/a4
.novbl .novbl
ENDC ENDC
IF FW_A5_A6_UNTOUCHED
IF FW_VBL_IRQ_SUPPORT|(FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
POPM POPM
ENDC
ELSE
POPM
ENDC
nop 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

View File

@ -34,7 +34,7 @@
; with all your variable space cleared. ; with all your variable space cleared.
; ;
; Make sure that you don't free the memory allocated here until ; 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. ; RestoreFrameworkBase automatically at exit of your part.
; ;
; Flushes the caches (if available), too. ; Flushes the caches (if available), too.
@ -44,7 +44,7 @@
; Trashes: everything except a5/a6 ; Trashes: everything except a5/a6
; ;
fw_InitPart: fw_InitPart:
PUTMSG 10,<"%d: InitPart(%ld)">,fw_FrameCounter-2(a6),d0 PUTMSG 10,<"%d: InitPart(%ld)">,fw_FrameCounterLong(a6),d0
PUSHM d0 PUSHM d0
bsr fw_RestoreFrameworkBase bsr fw_RestoreFrameworkBase
POPM POPM
@ -67,8 +67,8 @@ fw_InitPart:
move.l a6,fw_PartFwBase(a6) move.l a6,fw_PartFwBase(a6)
move.l fw_PartDataSize(a6),d7 move.l fw_PartDataSize(a6),d7
sub.l #fw_SIZEOF-3,d7 addq.w #3,d7
lsr.l #2,d7 lsr.w #2,d7
beq.s .skipclr beq.s .skipclr
subq.w #1,d7 subq.w #1,d7
moveq.l #0,d0 moveq.l #0,d0
@ -98,7 +98,7 @@ fw_InitPart:
move.l a6,(a0) move.l a6,(a0)
bsr fw_FlushCaches bsr fw_FlushCaches
ENABLE_INTS ENABLE_INTS
PUTMSG 20,<"%d: InitPart done %p">,fw_FrameCounter-2(a6),a6 PUTMSG 20,<"%d: InitPart done %p">,fw_FrameCounterLong(a6),a6
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -111,7 +111,7 @@ fw_InitPart:
; Trashes: everything except a5/a6 ; Trashes: everything except a5/a6
; ;
fw_RestoreFrameworkBase: fw_RestoreFrameworkBase:
PUTMSG 10,<"%d: RestoreFrameworkBase(%p)">,fw_FrameCounter-2(a6),a6 PUTMSG 10,<"%d: RestoreFrameworkBase(%p)">,fw_FrameCounterLong(a6),a6
DISABLE_INTS DISABLE_INTS
move.l fw_PartFwBase(a6),a0 move.l fw_PartFwBase(a6),a0
move.l fw_PrimaryFwBase(a6),a1 move.l fw_PrimaryFwBase(a6),a1
@ -206,6 +206,6 @@ fw_FixA6BaseInTaskStacks:
fw_lvo_offsets: fw_lvo_offsets:
FWGENLVOTABLE SET 1 FWGENLVOTABLE SET 1
include "framework_lvos.i" include "../framework/framework_lvos.i"
dc.w 0 dc.w 0
FWGENLVOTABLE SET 0 FWGENLVOTABLE SET 0

View File

@ -8,15 +8,16 @@ fw_StartMusic:
move.l fw_MusicData(a6),a0 move.l fw_MusicData(a6),a0
move.l fw_MusicSamples(a6),a1 move.l fw_MusicSamples(a6),a1
bsr fw_MusicInit bsr fw_MusicInit
move.w #1,fw_MusicEnabled(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; Stops the music playback if music is active ; Stops the music playback if music is active
; ;
fw_StopMusic: fw_StopMusic:
tst.l fw_MusicTickRoutine(a6) tst.w fw_MusicEnabled(a6)
bne.s .cont bne.s .cont
rts rts
.cont clr.l fw_MusicTickRoutine(a6) .cont clr.w fw_MusicEnabled(a6)
bra fw_MusicStop bra fw_MusicStop

View File

@ -106,7 +106,7 @@ fw_FadePaletteTo:
ror.w #4,d1 ror.w #4,d1
move.w cl_Red+le_Current(a1),d3 move.w cl_Red+le_Current(a1),d3
lsr.w #1,d1 lsr.w #1,d1
add.w #$400,d1 add.w #$80,d1
lsr.w #1,d3 lsr.w #1,d3
sub.w d3,d1 sub.w d3,d1
asr.w d2,d1 asr.w d2,d1
@ -118,7 +118,7 @@ fw_FadePaletteTo:
clr.b d1 clr.b d1
move.w cl_Green+le_Current(a1),d3 move.w cl_Green+le_Current(a1),d3
lsr.w #1,d1 lsr.w #1,d1
add.w #$400,d1 add.w #$80,d1
lsr.w #1,d3 lsr.w #1,d3
sub.w d3,d1 sub.w d3,d1
asr.w d2,d1 asr.w d2,d1
@ -129,7 +129,7 @@ fw_FadePaletteTo:
ror.w #4,d1 ror.w #4,d1
move.w cl_Blue+le_Current(a1),d3 move.w cl_Blue+le_Current(a1),d3
lsr.w #1,d1 lsr.w #1,d1
add.w #$400,d1 add.w #$80,d1
lsr.w #1,d3 lsr.w #1,d3
sub.w d3,d1 sub.w d3,d1
asr.w d2,d1 asr.w d2,d1
@ -158,7 +158,6 @@ fw_DoFadePaletteStep:
moveq.l #0,d4 moveq.l #0,d4
.loop .loop
addq.w #2,a1 addq.w #2,a1
.loop2
move.w (a1),d1 ; cl_Steps move.w (a1),d1 ; cl_Steps
beq.s .skip beq.s .skip
moveq.l #1,d4 moveq.l #1,d4
@ -185,81 +184,10 @@ fw_DoFadePaletteStep:
dbra d0,.loop dbra d0,.loop
rts rts
.skip .skip
lea cl_SIZEOF(a1),a1 lea cl_SIZEOF-2(a1),a1
dbra d0,.loop2 dbra d0,.loop
subq.w #2,a1
tst.w d4 tst.w d4
bne.s .noend bne.s .noend
st (a0) st (a0)
.noend .noend
rts 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

View File

@ -14,7 +14,7 @@
; In : a0 = script pointer ; In : a0 = script pointer
; ;
fw_InstallScript: fw_InstallScript:
PUTMSG 10,<"%d: Script at %p installed">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: Script at %p installed">,fw_FrameCounterLong(a6),a0
move.l a0,fw_ScriptPointer(a6) move.l a0,fw_ScriptPointer(a6)
move.w fw_FrameCounter(a6),fw_ScriptFrameOffset(a6) move.w fw_FrameCounter(a6),fw_ScriptFrameOffset(a6)
rts rts
@ -37,7 +37,7 @@ fw_CheckScript:
move.w (a0)+,d0 move.w (a0)+,d0
move.l a0,fw_ScriptPointer(a6) move.l a0,fw_ScriptPointer(a6)
pea -2(a0,d0.w) pea -2(a0,d0.w)
PUTMSG 10,<"%d: Script hit %p">,fw_FrameCounter-2(a6),(sp) PUTMSG 10,<"%d: Script hit %p">,fw_FrameCounterLong(a6),(sp)
tst.w (a0) tst.w (a0)
bne.s .exit bne.s .exit
PUTMSG 10,<"Script terminated."> PUTMSG 10,<"Script terminated.">
@ -48,7 +48,7 @@ fw_CheckScript:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; Install a music-frame based script ; 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). ; the given absolute music frame numbers have been reached (or passed).
; ;
; A script is built in this way: ; A script is built in this way:
@ -60,7 +60,7 @@ fw_CheckScript:
; In : a0 = script pointer ; In : a0 = script pointer
; ;
fw_InstallMusicScript: fw_InstallMusicScript:
PUTMSG 10,<"%d: MusicScript at %p installed">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: MusicScript at %p installed">,fw_FrameCounterLong(a6),a0
move.l a0,fw_MusicScriptPointer(a6) move.l a0,fw_MusicScriptPointer(a6)
rts rts
@ -81,7 +81,7 @@ fw_CheckMusicScript:
move.w (a0)+,d0 move.w (a0)+,d0
move.l a0,fw_MusicScriptPointer(a6) move.l a0,fw_MusicScriptPointer(a6)
pea -2(a0,d0.w) pea -2(a0,d0.w)
PUTMSG 10,<"%d: MusicScript (%d) hit %p">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6),(sp) PUTMSG 10,<"%d: MusicScript (%d) hit %p">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6),(sp)
tst.w (a0) tst.w (a0)
bne.s .exit bne.s .exit
PUTMSG 10,<"MusicScript terminated."> PUTMSG 10,<"MusicScript terminated.">

View File

@ -7,7 +7,7 @@
; accessible through the fw_SinTable(a6) and fw_CosTable(a6) base pointers. ; accessible through the fw_SinTable(a6) and fw_CosTable(a6) base pointers.
; ;
fw_InitSineTable: fw_InitSineTable:
PUTMSG 10,<"%d: Init Sine table %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: Script at %p installed">,fw_FrameCounterLong(a6),a0
IF FW_DYNAMIC_MEMORY_SUPPORT IF FW_DYNAMIC_MEMORY_SUPPORT
move.l #(1024+256)*2,d0 move.l #(1024+256)*2,d0
bsr fw_AllocFast bsr fw_AllocFast
@ -23,6 +23,7 @@ fw_InitSineTable:
move.l a1,fw_FastMemStack(a6) move.l a1,fw_FastMemStack(a6)
ENDC ENDC
PUTMSG 10,<"%d: Init Sine table %p">,fw_FrameCounterLong(a6),a0
moveq.l #0,d0 ; amp=16384, length=1024 moveq.l #0,d0 ; amp=16384, length=1024
move.w #511+2,a1 move.w #511+2,a1
.loop subq.l #2,a1 .loop subq.l #2,a1
@ -52,5 +53,5 @@ fw_InitSineTable:
.cloop move.l (a0)+,(a1)+ .cloop move.l (a0)+,(a1)+
dbra d0,.cloop dbra d0,.cloop
PUTMSG 10,<"%d: Sine table done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Sine table done">,fw_FrameCounterLong(a6)
rts rts

View File

@ -32,7 +32,7 @@ fw_InitTasks:
; Out: All registers are unchanged. ; Out: All registers are unchanged.
; ;
fw_AddTask: fw_AddTask:
PUTMSG 10,<"%d: AddTask(%p,%p,%s)">,fw_FrameCounter-2(a6),a0,a1,LN_NAME(a1) PUTMSG 10,<"%d: AddTask(%p,%p,%s)">,fw_FrameCounterLong(a6),a0,a1,LN_NAME(a1)
tst.l ft_USP(a1) tst.l ft_USP(a1)
bne fw_Error bne fw_Error
IF FW_TOP_BOTTOM_MEM_SECTIONS IF FW_TOP_BOTTOM_MEM_SECTIONS
@ -59,7 +59,7 @@ fw_AddTask:
.cleanup .cleanup
;move.l fw_BasePtr(pc),a6 ;move.l fw_BasePtr(pc),a6
move.l (sp)+,a1 ; suppress M68kDeadWrite used by REMOVE move.l (sp)+,a1 ; suppress M68kDeadWrite used by REMOVE
PUTMSG 10,<"%d: background task %p (%s) finished">,fw_FrameCounter-2(a6),a1,LN_NAME(a1) PUTMSG 10,<"%d: background task %p (%s) finished">,fw_FrameCounterLong(a6),a1,LN_NAME(a1)
.waitforsafearea .waitforsafearea
move.l #$1ff00,d0 move.l #$1ff00,d0
@ -111,9 +111,6 @@ fw_KillTaskContext:
clr.l fw_PrimaryUSP(a6) clr.l fw_PrimaryUSP(a6)
move.w fw_MainCurrentFrame(a6),d0 move.w fw_MainCurrentFrame(a6),d0
ENABLE_INTS ENABLE_INTS
btst #DMAB_BLTDONE-8,dmaconr(a5)
beq.s .loop
BLTHOGON
.loop cmp.w fw_FrameCounter(a6),d0 .loop cmp.w fw_FrameCounter(a6),d0
beq.s .loop beq.s .loop
rts rts
@ -133,10 +130,6 @@ fw_VSyncWithTask:
bgt fw_VSync bgt fw_VSync
IF FW_LMB_EXIT_SUPPORT IF FW_LMB_EXIT_SUPPORT
IFEQ FW_LMB_EXIT_SUPPORT-2
tst.w fw_DisableLMBExit(a6)
bne.s .noabort
ENDC
btst #6,$bfe001 btst #6,$bfe001
beq .abortdemo beq .abortdemo
.noabort .noabort
@ -253,7 +246,7 @@ fw_RemTask:
tst.l ft_USP(a1) tst.l ft_USP(a1)
bne.s .remove bne.s .remove
rts rts
.remove PUTMSG 10,<"%d: Removing still running task %p (%s)">,fw_FrameCounter-2(a6),a1,LN_NAME(a1) .remove PUTMSG 10,<"%d: Removing still running task %p (%s)">,
clr.l ft_USP(a1) clr.l ft_USP(a1)
REMOVE REMOVE
rts rts
@ -316,10 +309,9 @@ fw_backgroundtask_restore_irq:
addq.w #1,fw_FrameCounter(a6) addq.w #1,fw_FrameCounter(a6)
IF (FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ) IF (FW_MUSIC_SUPPORT&FW_VBL_MUSIC_IRQ)
move.l fw_MusicTickRoutine(a6),d0 tst.w fw_MusicEnabled(a6)
beq.s .skipmus beq.s .skipmus
move.l d0,a0 bsr fw_MusicPlay
jsr (a0) ; IRQ must maintain d4-d7/a4
.skipmus .skipmus
ENDC ENDC
@ -396,7 +388,7 @@ fw_AddAndRunBlitterTask:
ENABLE_INTS ENABLE_INTS
rts rts
.irqcleanup .irqcleanup
PUTMSG 30,<"%d: blitter task finished">,fw_FrameCounter-2(a6) PUTMSG 30,<"%d: blitter task finished">,fw_FrameCounterLong(a6)
move.l fw_VBR(a6),a0 move.l fw_VBR(a6),a0
move.l fw_DefaultIRQ(a6),$6c(a0) move.l fw_DefaultIRQ(a6),$6c(a0)
clr.l fw_BackgroundTask(a6) ; make sure we don't have a stray pointer clr.l fw_BackgroundTask(a6) ; make sure we don't have a stray pointer

View File

@ -371,7 +371,7 @@ fw_TrackloaderLoadAndDecrunchLZ4Delta8:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; Waits for a diskchange (disk is removed and inserted again) ; Waits for a diskchange (disk is removed and inserted again)
; ;
fw_TrackloaderWaitForDiskChange: fw_TrackloaderWaitForDiskChange:
PUSHM a4 PUSHM a4
lea $bfd100,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) ; d1.l - bytes to read (may be odd, but one extra byte will be written then)
; returns a1 end of buffer written ; returns a1 end of buffer written
fw_LoadMFM: fw_LoadMFM:
PUTMSG 10,<"%d: LoadMFM of %ld bytes at offset %ld to %p">,fw_FrameCounter-2(a6),d1,d0,a0 PUTMSG 10,<"%d: LoadMFM of %ld bytes at offset %ld to %p">,fw_FrameCounterLong(a6),d1,d0,a0
IF FW_MULTITASKING_SUPPORT IF FW_MULTITASKING_SUPPORT
.retry .retry
subq.w #1,fw_TrackloaderIdle(a6) subq.w #1,fw_TrackloaderIdle(a6)
@ -474,7 +474,7 @@ fw_LoadMFM:
.finished .finished
move.l a3,a1 move.l a3,a1
POPM POPM
PUTMSG 10,<"%d: Data load finished">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Data load finished">,fw_FrameCounterLong(a6)
IF FW_MULTITASKING_SUPPORT IF FW_MULTITASKING_SUPPORT
addq.w #1,fw_TrackloaderIdle(a6) addq.w #1,fw_TrackloaderIdle(a6)
ENDC ENDC
@ -483,7 +483,7 @@ fw_LoadMFM:
; Prefetch the next track to be loaded (but not decoded) into MFM buffer ; Prefetch the next track to be loaded (but not decoded) into MFM buffer
fw_PreparePrefetchOfNextTrack: fw_PreparePrefetchOfNextTrack:
PUTMSG 20,<"%d: PreparePrefetchOfNextTrack %d+1 (%d:%d)">,fw_FrameCounter-2(a6),fw_LastMfmTrack-2(a6),fw_CurrentCylinder-2(a6),fw_CurrentHead-2(a6) PUTMSG 20,<"%d: PreparePrefetchOfNextTrack %d+1 (%d:%d)">,fw_FrameCounterLong(a6),fw_LastMfmTrack-2(a6),fw_CurrentCylinder-2(a6),fw_CurrentHead-2(a6)
PUSHM d6 PUSHM d6
clr.w fw_MfmDoPrefetch(a6) clr.w fw_MfmDoPrefetch(a6)
tst.w fw_MfmReadingTriggered(a6) tst.w fw_MfmReadingTriggered(a6)
@ -696,7 +696,7 @@ fw_FindRightFloppyDriveUnit:
; turn the floppy motor on and wait until the motor is running ; turn the floppy motor on and wait until the motor is running
fw_MotorOn: fw_MotorOn:
PUTMSG 10,<"%d: Motor on">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Motor on">,fw_FrameCounterLong(a6)
move.w fw_CurrentDrive(a6),d0 move.w fw_CurrentDrive(a6),d0
addq.w #CIAB_DSKSEL0,d0 addq.w #CIAB_DSKSEL0,d0
or.b #CIAF_DSKSEL0|CIAF_DSKSEL1|CIAF_DSKSEL2|CIAF_DSKSEL3,(a4) or.b #CIAF_DSKSEL0|CIAF_DSKSEL1|CIAF_DSKSEL2|CIAF_DSKSEL3,(a4)
@ -720,7 +720,7 @@ fw_MotorOff:
.retry .retry
tst.w fw_MfmReadingTriggered(a6) tst.w fw_MfmReadingTriggered(a6)
beq.s .noreadinginprogress beq.s .noreadinginprogress
PUTMSG 10,<"%d: Waiting for read to finish before turning off motor">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Waiting for read to finish before turning off motor">,fw_FrameCounterLong(a6)
bsr fw_WaitForTrackDmaDone bsr fw_WaitForTrackDmaDone
.noreadinginprogress .noreadinginprogress
IF FW_MULTITASKING_SUPPORT IF FW_MULTITASKING_SUPPORT
@ -730,7 +730,7 @@ fw_MotorOff:
bra.s .retry bra.s .retry
ENDC ENDC
.nowait .nowait
PUTMSG 10,<"%d: Motor Off">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Motor Off">,fw_FrameCounterLong(a6)
move.w fw_CurrentDrive(a6),d0 move.w fw_CurrentDrive(a6),d0
addq.w #CIAB_DSKSEL0,d0 addq.w #CIAB_DSKSEL0,d0
bset d0,(a4) bset d0,(a4)
@ -752,7 +752,7 @@ fw_TriggerReadTrack:
PUTMSG 30,<"MfmTrack already read %d">,d0 PUTMSG 30,<"MfmTrack already read %d">,d0
rts rts
.cont .cont
PUTMSG 20,<"%d: Triggered reading of track %d">,fw_FrameCounter-2(a6),d0 PUTMSG 20,<"%d: Triggered reading of track %d">,fw_FrameCounterLong(a6),d0
clr.w fw_MfmReadingDone(a6) clr.w fw_MfmReadingDone(a6)
move.w d0,fw_LastMfmTrack(a6) move.w d0,fw_LastMfmTrack(a6)
@ -779,7 +779,7 @@ fw_WaitForTrackDmaDone:
rts rts
.waitdma .waitdma
.rereadwaitdma .rereadwaitdma
PUTMSG 40,<"%d: MFM Wait">,fw_FrameCounter-2(a6) PUTMSG 40,<"%d: MFM Wait">,fw_FrameCounterLong(a6)
IF FW_MULTITASKING_SUPPORT IF FW_MULTITASKING_SUPPORT
bra.s .firstskipyield bra.s .firstskipyield
ENDC ENDC
@ -788,7 +788,7 @@ fw_WaitForTrackDmaDone:
.firstskipyield .firstskipyield
btst #INTB_DSKBLK,intreqr+1(a5) ; wait until data read btst #INTB_DSKBLK,intreqr+1(a5) ; wait until data read
beq.s .waitdmadone beq.s .waitdmadone
PUTMSG 20,<"%d: MFM Done">,fw_FrameCounter-2(a6) PUTMSG 20,<"%d: MFM Done">,fw_FrameCounterLong(a6)
st fw_MfmReadingDone(a6) st fw_MfmReadingDone(a6)
clr.w fw_MfmReadingTriggered(a6) clr.w fw_MfmReadingTriggered(a6)
rts rts
@ -799,7 +799,7 @@ fw_DecodeMfmTrack:
.rereadwaitdma .rereadwaitdma
bsr fw_WaitForTrackDmaDone bsr fw_WaitForTrackDmaDone
PUTMSG 20,<"%d: Decoding Track %d">,fw_FrameCounter-2(a6),fw_LastMfmTrack-2(a6) PUTMSG 20,<"%d: Decoding Track %d">,fw_FrameCounterLong(a6),fw_LastMfmTrack-2(a6)
move.w #-1,fw_LastTrack(a6) ; mark last track buffer as invalid in case of error move.w #-1,fw_LastTrack(a6) ; mark last track buffer as invalid in case of error
move.l #$55555555,d3 ; and-const move.l #$55555555,d3 ; and-const
@ -819,13 +819,13 @@ fw_DecodeMfmTrack:
clr.l fw_TrackChecksum(a6) clr.l fw_TrackChecksum(a6)
.decode .decode
.findsyncword .findsyncword
lea MFMBUFSIZE(a1),a3 lea MFMBUFSIZE(a1),a2
.syncloop .syncloop
PUTMSG 70,<"LW %lx">,(a1) PUTMSG 70,<"LW %lx">,(a1)
cmp.w #MFMsync,(a1)+ ; search for a sync word cmp.w #MFMsync,(a1)+ ; search for a sync word
bne.s .syncloop bne.s .syncloop
PUTMSG 60,<"Sync %lx at %p">,(a1),a1 PUTMSG 60,<"Sync %lx at %p">,(a1),a1
cmp.l a1,a3 ; check for end of buffer cmp.l a1,a2 ; check for end of buffer
beq .diskerror ; no more sync found beq .diskerror ; no more sync found
cmp.b (a1),d3 ; search for 0-nibble cmp.b (a1),d3 ; search for 0-nibble
bne.s .syncloop bne.s .syncloop
@ -869,20 +869,11 @@ fw_DecodeMfmTrack:
cmp.b #1,d4 cmp.b #1,d4
bne.s .nogapskip bne.s .nogapskip
PUTMSG 60,<"Skipping much of gap after decoding"> PUTMSG 60,<"Skipping much of gap after decoding">
; a gap of 300 words should be safe (340 is about normal), lea 300*2(a2),a2 ; gap of 300 words should be safe (340 is about normal)
; HOWEVER some drives (Greaseweazle?) may write with 2µs pulse length
; instead of the Amiga's 1.97356µs or faster rotational speeds,
; so the gap may become smaller!
; This broke some configurations apparently. Sorry.
lea 200*2(a2),a2 ; skip 200 words
.nogapskip .nogapskip
cmp.w #(1<<11)-1,d7
beq .allsecsfound ; decode until the bitmap is complete
lea 6(a2),a1 lea 6(a2),a1
cmp.l a1,a3 ; check for past end of buffer cmp.w #(1<<11)-1,d7
bhi .findsyncword ; continue seeking sync word bne .findsyncword ; decode until the bitmap is complete
bra .diskerror ; ooops, we're past the end of the buffer
.allsecsfound
PUTMSG 50,<"Track Checksum %lx">,fw_TrackChecksum(a6) PUTMSG 50,<"Track Checksum %lx">,fw_TrackChecksum(a6)
tst.l fw_TrackChecksum(a6) ; track total chksum OK? tst.l fw_TrackChecksum(a6) ; track total chksum OK?
bne .diskerror ; no, then retry bne .diskerror ; no, then retry
@ -890,7 +881,7 @@ fw_DecodeMfmTrack:
move.w fw_LastMfmTrack(a6),fw_LastTrack(a6) move.w fw_LastMfmTrack(a6),fw_LastTrack(a6)
move.w fw_LastMfmTrack(a6),d0 move.w fw_LastMfmTrack(a6),d0
ext.l d0 ext.l d0
PUTMSG 10,<"%d: Decoded Track %d">,fw_FrameCounter-2(a6),d0 PUTMSG 10,<"%d: Decoded Track %d">,fw_FrameCounterLong(a6),d0
POPM POPM
rts rts

View File

@ -186,15 +186,16 @@ LSP_MusicInit:
move.w (a0)+,d0 ; codes table size move.w (a0)+,d0 ; codes table size
move.l a0,fw_LspCodeTableAddr(a6) ; code table move.l a0,fw_LspCodeTableAddr(a6) ; code table
add.w d0,d0 add.w d0,d0
adda.w d0,a0 add.w d0,a0
; read sequence timing infos (if any) ; read sequence timing infos (if any)
move.w (a0)+,d0 move.w (a0)+,d0
move.w d0,(a3)+ ; fw_LspSeqCount move.w d0,(a3)+ ; fw_LspSeqCount
move.l a0,(a3)+ ; fw_LspSeqTable move.l a0,(a3)+ ; fw_LspSeqTable
clr.w (a3)+ ; fw_LspCurrentSeq clr.w (a3)+ ; fw_LspCurrentSeq
lsl.w #3,d0 ; 8 bytes per entry move.w d0,d1
adda.w d0,a0 lsl.w #3,d1 ; 8 bytes per entry
adda.w d1,a0
movem.l (a0)+,d0/d1/d2 ; word stream size/byte stream loop point/word stream loop point movem.l (a0)+,d0/d1/d2 ; word stream size/byte stream loop point/word stream loop point
move.l a0,(a3)+ ; fw_LspStreamBase move.l a0,(a3)+ ; fw_LspStreamBase

View File

@ -53,8 +53,6 @@ LSP_MusicDriver_CIA_Start:
; d1: PAL(0) or NTSC(1) ; d1: PAL(0) or NTSC(1)
.LSP_IrqInstall .LSP_IrqInstall
move.w #INTF_EXTER,intena(a5) ; disable CIA interrupt 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 lea .LSP_MainIrq(pc),a0
move.l fw_VBR(a6),a2 move.l fw_VBR(a6),a2
move.l a0,$78(a2) move.l a0,$78(a2)
@ -94,8 +92,7 @@ LSP_MusicDriver_CIA_Start:
; call player tick ; call player tick
lea $dff000,a5 lea $dff000,a5
move.l fw_BasePtr(pc),a6 move.l fw_BasePtr(pc),a6
move.l fw_MusicTickRoutine(a6),a0 bsr LSP_MusicPlayTick ; LSP main music driver tick
jsr (a0) ; LSP main music driver tick
; check if BMP changed in the middle of the music ; check if BMP changed in the middle of the music
lea $bfd000,a4 lea $bfd000,a4

View File

@ -1,158 +0,0 @@
;*****************************************************************
;
; 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

View File

@ -1,170 +0,0 @@
;*****************************************************************
;
; 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

View File

@ -28,12 +28,9 @@ fw_MusicStop:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; sets the position if supported ; sets the position if supported
; d0.w = new position ; d0.w = new position
IFNE DEBUG_DETAIL
fw_MusicSetPosition EQU LSP_MusicSetPos
ELSE
fw_MusicSetPosition: fw_MusicSetPosition:
rts bra LSP_MusicSetPos
ENDC
include "musicplayers/lightspeedplayer_cia.asm"
include "musicplayers/lightspeedplayer.asm" include "../framework/musicplayers/lightspeedplayer_cia.asm"
include "../framework/musicplayers/lightspeedplayer.asm"

View File

@ -7,8 +7,6 @@ fw_MusicInit:
bsr.s LSP_MusicInit bsr.s LSP_MusicInit
moveq.l #-1,d0 moveq.l #-1,d0
move.w d0,fw_MusicFrameCount(a6) move.w d0,fw_MusicFrameCount(a6)
lea fw_MusicPlay(pc),a0
move.l a0,fw_MusicTickRoutine(a6)
PUTMSG 10,<"Music-Init done"> PUTMSG 10,<"Music-Init done">
rts rts
@ -19,7 +17,6 @@ fw_MusicPlay:
rts rts
fw_MusicStop: fw_MusicStop:
clr.l fw_MusicTickRoutine(a6)
move.w #DMAF_AUDIO,dmacon(a5) move.w #DMAF_AUDIO,dmacon(a5)
; unsupported right now ; unsupported right now
rts rts
@ -27,11 +24,7 @@ fw_MusicStop:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; sets the position if supported ; sets the position if supported
; d0.w = new position ; d0.w = new position
IFNE DEBUG_DETAIL
fw_MusicSetPosition EQU LSP_MusicSetPos
ELSE
fw_MusicSetPosition: fw_MusicSetPosition:
rts bra LSP_MusicSetPos
ENDC
include "musicplayers/lightspeedplayer.asm" include "../framework/musicplayers/lightspeedplayer.asm"

View File

@ -1,4 +1,5 @@
fw_MusicInit: fw_MusicInit:
fw_MusicStop: fw_MusicStop:
fw_MusicPlay:
fw_MusicSetPosition: fw_MusicSetPosition:
rts rts

View File

@ -15,7 +15,7 @@ fw_MusicAlloc:
rts rts
fw_MusicInit: fw_MusicInit:
PUTMSG 10,<"%d: Pretracker song init %p %p">,fw_FrameCounter-2(a6),a0,a1 PUTMSG 10,<"%d: Pretracker song init %p %p">,fw_FrameCounterLong(a6),a0,a1
move.l a0,a2 move.l a0,a2
PUSHM d7/a1 PUSHM d7/a1
move.l fw_PretrackerMyPlayer(a6),a0 move.l fw_PretrackerMyPlayer(a6),a0
@ -34,7 +34,7 @@ fw_MusicInit:
move.l a0,a1 move.l a0,a1
.noalloc .noalloc
PUTMSG 10,<"%d: Pretracker player init">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Pretracker player init">,fw_FrameCounterLong(a6)
move.l fw_PretrackerMyPlayer(a6),a0 move.l fw_PretrackerMyPlayer(a6),a0
move.l fw_PretrackerMySong(a6),a2 move.l fw_PretrackerMySong(a6),a2
@ -42,19 +42,17 @@ fw_MusicInit:
adda.w 6(a3),a3 adda.w 6(a3),a3
jsr (a3) ; playerInit jsr (a3) ; playerInit
lea fw_MusicPlay(pc),a0 PUTMSG 10,<"%d: Pretracker init done">,fw_FrameCounterLong(a6)
move.l a0,fw_MusicTickRoutine(a6)
PUTMSG 10,<"%d: Pretracker init done">,fw_FrameCounter-2(a6)
rts rts
fw_MusicPlay: fw_MusicPlay:
move.l fw_PretrackerMyPlayer(a6),a0 move.l fw_PretrackerMyPlayer(a6),a0
lea fw_PretrackerReplayer(pc),a3 lea fw_PretrackerReplayer(pc),a3
adda.w 10(a3),a3 adda.w 10(a3),a3
jmp (a3) ; playerTick jsr (a3) ; playerTick
rts
fw_MusicStop: fw_MusicStop:
clr.l fw_MusicTickRoutine(a6)
move.w #DMAF_AUDIO,dmacon(a5) move.w #DMAF_AUDIO,dmacon(a5)
; unsupported right now ; unsupported right now
rts rts
@ -62,5 +60,5 @@ fw_MusicStop:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
fw_PretrackerReplayer: fw_PretrackerReplayer:
;include "musicplayers/pretracker_replayer_resourced.asm" ;include "../framework/musicplayers/pretracker_replayer_resourced.asm"
incbin "musicplayers/pretracker_replayer_binary_blob.bin" incbin "../framework/musicplayers/pretracker_replayer_binary_blob.bin"

View File

@ -5,38 +5,16 @@
fail "FW_DYNAMIC_MEMORY_SUPPORT must be enabled" fail "FW_DYNAMIC_MEMORY_SUPPORT must be enabled"
ENDC 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: fw_MusicAlloc:
move.l #pv_SIZEOF+sv_SIZEOF,d0 move.l #pv_SIZEOF+sv_SIZEOF,d0
bsr fw_AllocFast bsr fw_AllocFast
move.l a0,fw_PretrackerMyPlayer(a6) move.l a0,fw_PretrackerMyPlayer(a6)
lea pv_SIZEOF(a0),a0 lea pv_SIZEOF(a0),a0
move.l a0,fw_PretrackerMySong(a6) 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 rts
fw_MusicInit: fw_MusicInit:
PUTMSG 10,<"%d: Pretracker song init %p %p">,fw_FrameCounter-2(a6),a0,a1 PUTMSG 10,<"%d: Pretracker song init %p %p">,fw_FrameCounterLong(a6),a0,a1
move.l a0,a2 move.l a0,a2
PUSHM d4-d7/a1/a4-a6 PUSHM d4-d7/a1/a4-a6
;move.l fw_PretrackerMyPlayer(a6),a0 ; unused ;move.l fw_PretrackerMyPlayer(a6),a0 ; unused
@ -53,7 +31,7 @@ fw_MusicInit:
move.l a0,a1 move.l a0,a1
.noalloc .noalloc
PUTMSG 10,<"%d: Pretracker player init">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Pretracker player init">,fw_FrameCounterLong(a6)
move.l fw_PretrackerMyPlayer(a6),a0 move.l fw_PretrackerMyPlayer(a6),a0
move.l fw_PretrackerMySong(a6),a2 move.l fw_PretrackerMySong(a6),a2
lea fw_PretrackerProgress(a6),a3 lea fw_PretrackerProgress(a6),a3
@ -63,92 +41,31 @@ fw_MusicInit:
bsr pre_PlayerInit bsr pre_PlayerInit
POPM POPM
IF (FW_MUSIC_PLAYER_CHOICE==6) PUTMSG 10,<"%d: Pretracker init done">,fw_FrameCounterLong(a6)
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 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: fw_MusicPlay:
PUSHM d4-d7/a4-a6 PUSHM d4-d7/a4-a6
move.l fw_PretrackerMyPlayer(a6),a0 move.l fw_PretrackerMyPlayer(a6),a0
IF (FW_MUSIC_PLAYER_CHOICE>=5)
move.l fw_PretrackerCopperlist(a6),a1 move.l fw_PretrackerCopperlist(a6),a1
ENDC
bsr.s pre_PlayerTick bsr.s pre_PlayerTick
POPM POPM
rts rts
fw_MusicStop: fw_MusicStop:
clr.l fw_MusicTickRoutine(a6)
move.w #DMAF_AUDIO,dmacon(a5) move.w #DMAF_AUDIO,dmacon(a5)
; unsupported right now ; unsupported right now
rts rts
ENDC
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; sets the position if supported ; sets the position if supported
; d0.w = new position ; d0.w = new position
fw_MusicSetPosition: fw_MusicSetPosition:
move.l fw_PretrackerMyPlayer(a6),a0 move.w d0,fw_PretrackerMySong+sv_curr_pat_pos_w(a6)
move.w d0,pv_curr_pat_pos_w(a0)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
PRETRACKER_COPPER_OUTPUT = FW_MUSIC_PLAYER_CHOICE-4 PRETRACKER_COPPER_OUTPUT = FW_MUSIC_PLAYER_CHOICE-4
PRETRACKER_DONT_TRASH_REGS = 0 PRETRACKER_DONT_TRASH_REGS = 0
include "musicplayers/raspberry_casket.asm" include "../framework/musicplayers/raspberry_casket.asm"

File diff suppressed because it is too large Load Diff

View File

@ -1,345 +0,0 @@
; 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

File diff suppressed because it is too large Load Diff

View File

@ -22,9 +22,9 @@ FASTMEM_SIZE = 4
move.l a0,fw_DemoAbortStackPointer(a6) move.l a0,fw_DemoAbortStackPointer(a6)
ENDC ENDC
PUTMSG 10,<"%d: Entrypoint: %p">,fw_FrameCounter-2(a6),#entrypoint PUTMSG 10,<"%d: Entrypoint: %p">,fw_FrameCounterLong(a6),#entrypoint
bsr entrypoint bsr entrypoint
PUTMSG 10,<"%d: Part terminated">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Part terminated">,fw_FrameCounterLong(a6)
bra os_AppShutdown bra os_AppShutdown
@ -39,21 +39,6 @@ os_AppInit:
ENDC ENDC
move.l 4.w,a6 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 IFEQ FW_HD_TRACKMO_MODE
IFD pd_SIZEOF IFD pd_SIZEOF
move.l #pd_SIZEOF,d0 move.l #pd_SIZEOF,d0
@ -235,7 +220,7 @@ os_AppInit:
IF FW_DYNAMIC_MEMORY_SUPPORT IF FW_DYNAMIC_MEMORY_SUPPORT
IF FW_MUSIC_SUPPORT IF FW_MUSIC_SUPPORT
IF (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6) IF (FW_MUSIC_PLAYER_CHOICE==4)||(FW_MUSIC_PLAYER_CHOICE==5)
bsr fw_MusicAlloc bsr fw_MusicAlloc
ENDC ENDC
ENDC ENDC
@ -245,7 +230,7 @@ os_AppInit:
ELSE ; FW_DYNAMIC_MEMORY_SUPPORT ELSE ; FW_DYNAMIC_MEMORY_SUPPORT
IF FW_MUSIC_SUPPORT IF FW_MUSIC_SUPPORT
IF (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6) IF (FW_MUSIC_PLAYER_CHOICE==4)||(FW_MUSIC_PLAYER_CHOICE==5)
bsr fw_MusicAlloc bsr fw_MusicAlloc
bsr fw_PushMemoryState bsr fw_PushMemoryState
ENDC ENDC
@ -314,15 +299,8 @@ os_AppInit:
lea $dff000,a5 lea $dff000,a5
exg a4,a6 ; from now on, a6 is supposed to be our framework pointer, a5 is _custom exg a4,a6 ; from now on, a6 is supposed to be our framework pointer, a5 is _custom
move.l a0,fw_VBR(a6) 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) 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 #$7fff,d4
move.w intenar(a5),d0 move.w intenar(a5),d0
move.w d4,intena(a5) move.w d4,intena(a5)
@ -410,13 +388,7 @@ os_AppShutdown:
move.w d0,adkcon(a5) move.w d0,adkcon(a5)
move.l fw_VBR(a6),a0 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) 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 movea.l fw_GfxBase(a6),a0 ; graphics.library
move.l $26(a0),cop1lc(a5) move.l $26(a0),cop1lc(a5)

View File

@ -40,7 +40,7 @@ trackmo_AppInit:
CALL AvailMem CALL AvailMem
move.l d0,d2 move.l d0,d2
beq.s .nofast beq.s .nofast
move.l #MEMF_FAST|MEMF_CLEAR,d1 move.l #(MEMF_LARGEST|MEMF_FAST|MEMF_CLEAR),d1
CALL AllocMem CALL AllocMem
move.l d0,fw_FastMemStack(a4) move.l d0,fw_FastMemStack(a4)
bne.s .goodmem bne.s .goodmem
@ -51,15 +51,20 @@ trackmo_AppInit:
move.l #(MEMF_LARGEST|MEMF_CHIP),d1 move.l #(MEMF_LARGEST|MEMF_CHIP),d1
CALL AvailMem CALL AvailMem
move.l d0,d2 move.l d0,d2
beq.s .memerr
move.l #(MEMF_CHIP|MEMF_CLEAR),d1 move.l #(MEMF_CHIP|MEMF_CLEAR),d1
CALL AllocMem CALL AllocMem
addq.l #7,d0
and.w #-8,d0
move.l d0,fw_ChipMemStack(a4) move.l d0,fw_ChipMemStack(a4)
and.w #-8,d2
add.l d2,d0 add.l d2,d0
move.l d0,fw_ChipMemStackEnd(a4) move.l d0,fw_ChipMemStackEnd(a4)
move.l #(MEMF_LARGEST|MEMF_ANY),d1 move.l #(MEMF_LARGEST|MEMF_ANY),d1
CALL AvailMem CALL AvailMem
move.l d0,d2 move.l d0,d2
beq.s .memerr
move.l #MEMF_CLEAR,d1 move.l #MEMF_CLEAR,d1
CALL AllocMem CALL AllocMem
move.l d0,fw_FastMemStack(a4) move.l d0,fw_FastMemStack(a4)
@ -138,7 +143,7 @@ trackmo_AppInit:
bsr fw_InitDos bsr fw_InitDos
IF FW_MUSIC_SUPPORT IF FW_MUSIC_SUPPORT
IF (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6) IF (FW_MUSIC_PLAYER_CHOICE==4)||(FW_MUSIC_PLAYER_CHOICE==5)
bsr fw_MusicAlloc bsr fw_MusicAlloc
ENDC ENDC
ENDC ENDC

View File

@ -2,9 +2,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -61,7 +61,7 @@ DEBUG_DETAIL SET 10
NEWAGE_DEBUG = 1 NEWAGE_DEBUG = 1
include "framework.i" include "../framework/framework.i"
; Memory use: ; Memory use:
@ -109,7 +109,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -908,6 +908,10 @@ gth_ham_line_m:
TDPOINT 194,74 TDPOINT 194,74
dc.w 0 dc.w 0
IFND FW_DEMO_PART
dc.w 1 ; avoid hunk shortening that leaves dirty memory on kick 1.3
ENDC
;******************************************************************** ;********************************************************************
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -941,22 +945,22 @@ gth_extra_copperlist_ptr:
COP_END COP_END
gth_meanwhile_text: gth_meanwhile_text:
incbin "data/gotham/meanwhile320x18x4.BPL" incbin "../data/gotham/meanwhile320x18x4.BPL"
gth_gothamcity_text: gth_gothamcity_text:
incbin "data/gotham/gothamcity320x23x4.BPL" incbin "../data/gotham/gothamcity320x23x4.BPL"
gth_gotham_text: gth_gotham_text:
incbin "data/gotham/gotham320x23x4.BPL" incbin "../data/gotham/gotham320x23x4.BPL"
gth_hameelinna_text: gth_hameelinna_text:
incbin "data/gotham/hameelinna320x23x4.BPL" incbin "../data/gotham/hameelinna320x23x4.BPL"
gth_ham_text: gth_ham_text:
incbin "data/gotham/ham320x23x4.BPL" incbin "../data/gotham/ham320x23x4.BPL"
gth_ham_tech: gth_ham_tech:
incbin "data/gotham/hamtechnology320x13x4.BPL" incbin "../data/gotham/hamtechnology320x13x4.BPL"
blitter_temp_output_word: blitter_temp_output_word:
dc.w 0 dc.w 0
@ -964,7 +968,7 @@ blitter_temp_output_word:
IFND FW_DEMO_PART IFND FW_DEMO_PART
section "gth_sample",data,chip section "gth_sample",data,chip
gth_psenough_ham: gth_psenough_ham:
incbin "data/gotham/hamtechnology.raw" incbin "../data/gotham/hamtechnology.raw"
ENDC ENDC
END END

View File

@ -5,9 +5,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -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) ; - 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.i" include "../framework/framework.i"
STRUCTURE BQLine,bq_SIZEOF STRUCTURE BQLine,bq_SIZEOF
ULONG bql_BltCon01 ULONG bql_BltCon01
@ -228,7 +228,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -410,7 +410,7 @@ gou_intro:
lea .script(pc),a0 lea .script(pc),a0
CALLFW InstallMusicScript CALLFW InstallMusicScript
PUTMSG 10,<"Main Frame Start %ld">,fw_FrameCounter-2(a6) PUTMSG 10,<"Main Frame Start %ld">,fw_FrameCounterLong(a6)
.loop .loop
BLTWAIT BLTWAIT
@ -881,7 +881,7 @@ gou_flip_cube_buffer:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
gou_async_calc_task: gou_async_calc_task:
PUTMSG 10,<"%d: async_calc_task">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: async_calc_task">,fw_FrameCounterLong(a6)
move.l pd_CubeDataPtr(a6),a1 move.l pd_CubeDataPtr(a6),a1
moveq.l #CUBE_PRECALC_NUM-1,d7 moveq.l #CUBE_PRECALC_NUM-1,d7
.cdloop .cdloop
@ -1252,7 +1252,7 @@ ZEROIPOL MACRO
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; a1 = cubedata ; a1 = cubedata
gou_interpolate_outer_cube_lines: gou_interpolate_outer_cube_lines:
PUTMSG 20,<"%d: ----- gou_interpolate_outer_cube_lines">,fw_FrameCounter-2(a6) PUTMSG 20,<"%d: ----- gou_interpolate_outer_cube_lines">,fw_FrameCounterLong(a6)
move.w cd_LinesToDraw(a1),d7 move.w cd_LinesToDraw(a1),d7
sub.w cd_InnerLines(a1),d7 sub.w cd_InnerLines(a1),d7
bne.s .cont bne.s .cont
@ -1961,7 +1961,7 @@ LINEIPOL MACRO
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; a1 = cubedata ; a1 = cubedata
gou_interpolate_inner_cube_lines: gou_interpolate_inner_cube_lines:
PUTMSG 20,<"%d: ----- gou_interpolate_inner_cube_lines">,fw_FrameCounter-2(a6) PUTMSG 20,<"%d: ----- gou_interpolate_inner_cube_lines">,fw_FrameCounterLong(a6)
move.w cd_InnerLines(a1),d7 move.w cd_InnerLines(a1),d7
bne.s .cont bne.s .cont
rts rts
@ -2994,7 +2994,7 @@ gou_extra_copperlist_ptr:
COP_END COP_END
gou_bendit_sprite: gou_bendit_sprite:
incbin "data/gouraud/bendit128x128x4.SPR" incbin "../data/gouraud/bendit128x128x4.SPR"
blitter_temp_output_word: blitter_temp_output_word:
dc.w 0 dc.w 0
@ -3003,11 +3003,11 @@ blitter_temp_output_word:
IFD ENABLE_PART_MUSIC IFD ENABLE_PART_MUSIC
section "part_music_samples",data,chip ; section for music playback section "part_music_samples",data,chip ; section for music playback
part_music_smp: 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 section "part_music_data",data ; section for music playback
part_music_data: part_music_data:
incbin "data/music/dsr_68k_tune_2_v11.lsmusic" incbin "../data/music/dsr_68k_tune_2_v11.lsmusic"
ENDC ENDC
ENDC ENDC
END END

View File

@ -93,9 +93,9 @@ copy "..\data\endpart\screenshots_320x1620.BPL" build
rem ############ ASSEMBLE FRAMEWORK AND BOOTBLOCK ############ rem ############ ASSEMBLE FRAMEWORK AND BOOTBLOCK ############
copy "..\tools\vc.cfg" %~dp0 copy "..\tools\vc.cfg" %~dp0
..\tools\vasmm68k_mot -m68010 -Fbin -phxass -o "build\trackmo_launcher" -I"%~dp0\..\framework" -I"%~dp0\..\includes" "trackmo_launcher.asm" ..\tools\vasmm68k_mot -m68010 -Fbin -phxass -o "build\trackmo_launcher" -I"%~dp0\..\includes" "trackmo_launcher.asm"
@if %ERRORLEVEL% NEQ 0 goto failed @if %ERRORLEVEL% NEQ 0 goto failed
..\tools\vasmm68k_mot -m68000 -Fbin -phxass -o "build\bootblock" -I"%~dp0\..\includes" -I"%~dp0\..\includes" "..\framework\bootblock.asm" ..\tools\vasmm68k_mot -m68000 -Fbin -phxass -o "build\bootblock" -I"%~dp0\..\includes" "..\framework\bootblock.asm"
@if %ERRORLEVEL% NEQ 0 goto failed @if %ERRORLEVEL% NEQ 0 goto failed
rem ############ BUILD DISK ############ rem ############ BUILD DISK ############

View File

@ -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 CHIPMEM_SIZE = 469*1024 ; maximum chip memory use for whole demo
FASTMEM_SIZE = 458*1024 ; maximum fast memory use for whole demo FASTMEM_SIZE = 458*1024 ; maximum fast memory use for whole demo
include "framework.i" include "../framework/framework.i"
include "framework.asm" include "../framework/framework.asm"
entrypoint: entrypoint:
include "trackmo_script.asm" include "trackmo_script.asm"

View File

@ -1,7 +1,7 @@
opt p+,o+ opt p+,o+
include "trackmo_settings.i" include "trackmo_settings.i"
include "framework.i" include "../framework/framework.i"
bsr trackmo_AppInit bsr trackmo_AppInit
@ -11,4 +11,4 @@
.loop bra.s .loop .loop bra.s .loop
include "framework.asm" include "../framework/framework.asm"

View File

@ -18,7 +18,7 @@
; ;
trackmo: trackmo:
PUTMSG 10,<"%d: Trackmo start!">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Trackmo start!">,fw_FrameCounterLong(a6)
.restart .restart
btst #6,$bfe001 btst #6,$bfe001
bne.s .part1 bne.s .part1

View File

@ -2,9 +2,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -64,7 +64,7 @@ DEBUG_DETAIL SET 10
NEWAGE_DEBUG = 1 NEWAGE_DEBUG = 1
include "framework.i" include "../framework/framework.i"
STRUCTURE PartData,fw_SIZEOF STRUCTURE PartData,fw_SIZEOF
APTR pd_CurrPlanesPtr APTR pd_CurrPlanesPtr
@ -107,7 +107,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -260,7 +260,7 @@ hex_init_shade_table:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
hex_main: hex_main:
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #2,copcon(a5) ; enable copper danger (copper controlled blitter) move.w #2,copcon(a5) ; enable copper danger (copper controlled blitter)
@ -865,7 +865,7 @@ hex_hexgrid_black_palette:
ENDR ENDR
hex_hexgrid_data: hex_hexgrid_data:
incbin "data/hexagon/hexagon_reg16x254.EHB" incbin "../data/hexagon/hexagon_reg16x254.EHB"
section "hex_copper",data,chip section "hex_copper",data,chip
@ -887,21 +887,21 @@ hex_extra_copperlist_ptr:
COP_END COP_END
hex_winners_sprites: hex_winners_sprites:
incbin "data/hexagon/winners128x128x4.SPR" incbin "../data/hexagon/winners128x128x4.SPR"
IFND FW_DEMO_PART IFND FW_DEMO_PART
section "hex_kaleidoscope_texture",data section "hex_kaleidoscope_texture",data
hex_kaleidoscope_texture: hex_kaleidoscope_texture:
incbin "data/hexagon/kaleitc.raw" incbin "../data/hexagon/kaleitc.raw"
IFD ENABLE_PART_MUSIC IFD ENABLE_PART_MUSIC
section "part_music_samples",data,chip ; section for music playback section "part_music_samples",data,chip ; section for music playback
part_music_smp: 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 section "part_music_data",data ; section for music playback
part_music_data: part_music_data:
incbin "data/music/desire_demo_68k_v6.lsmusic" incbin "../data/music/desire_demo_68k_v6.lsmusic"
ENDC ENDC
ENDC ENDC

View File

@ -7,9 +7,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -115,7 +115,7 @@ DEBUG_DETAIL SET 10
NEWAGE_DEBUG = 1 NEWAGE_DEBUG = 1
include "framework.i" include "../framework/framework.i"
; Chip memory use: ; Chip memory use:
; - CHIP DATA: 256 x 256 x 6 x 3 = 147456 (Pattern/Texture) ; - CHIP DATA: 256 x 256 x 6 x 3 = 147456 (Pattern/Texture)
@ -319,7 +319,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -676,7 +676,7 @@ kds_fill_noise_buffer:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
kds_intro: kds_intro:
PUTMSG 10,<"%d: Intro part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Intro part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #420,pd_PartCountDown(a6) move.w #420,pd_PartCountDown(a6)
CALLFW SetBlitterQueueSingleFrame CALLFW SetBlitterQueueSingleFrame
@ -705,7 +705,7 @@ kds_intro:
cmp.w #4032,fw_MusicFrameCount(a6) cmp.w #4032,fw_MusicFrameCount(a6)
blt.s .waitloop blt.s .waitloop
PUTMSG 10,<"%d: Intro part launching (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Intro part launching (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
.loop .loop
bsr kds_flip_db_frame bsr kds_flip_db_frame
@ -746,7 +746,7 @@ kds_intro:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
kds_transition: kds_transition:
PUTMSG 10,<"%d: Transition part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Transition part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
move.w #260,pd_PartCountDown(a6) move.w #260,pd_PartCountDown(a6)
CALLFW SetBlitterQueueSingleFrame CALLFW SetBlitterQueueSingleFrame
@ -822,7 +822,7 @@ kds_transition:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
kds_dissolve: kds_dissolve:
PUTMSG 10,<"%d: Dissolve part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Dissolve part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
CALLFW SetBlitterQueueSingleFrame CALLFW SetBlitterQueueSingleFrame
@ -870,7 +870,7 @@ kds_dissolve:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
kds_pre_main: kds_pre_main:
PUTMSG 10,<"%d: Pre Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Pre Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
CALLFW SetBlitterQueueMultiFrame CALLFW SetBlitterQueueMultiFrame
move.w joy0dat(a5),pd_OldMouseY(a6) move.w joy0dat(a5),pd_OldMouseY(a6)
@ -979,11 +979,11 @@ kds_pre_main:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
kds_post_main: kds_post_main:
PUTMSG 10,<"%d: Post Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Post Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
bsr .prepare bsr .prepare
bsr .prepare bsr .prepare
PUTMSG 10,<"%d: Prep done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Prep done">,fw_FrameCounterLong(a6)
.loop .loop
bsr kds_flip_db_frame bsr kds_flip_db_frame
move.l pd_CurrSpriteStencilPtr(a6),pd_CurrFairySprite(a6) move.l pd_CurrSpriteStencilPtr(a6),pd_CurrFairySprite(a6)
@ -1020,7 +1020,7 @@ kds_post_main:
bsr kds_update_copper_list_pointers bsr kds_update_copper_list_pointers
CALLFW VSyncWithTask CALLFW VSyncWithTask
PUTMSG 10,<"%d: Post Main finished (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Post Main finished (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
rts rts
@ -1049,7 +1049,7 @@ kds_post_main:
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
kds_main: kds_main:
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
CALLFW SetBlitterQueueMultiFrame CALLFW SetBlitterQueueMultiFrame
IF 0 IF 0
@ -6211,7 +6211,7 @@ kds_bright_transition_palette:
dc.w $68c,$68c,$9f4,$9f4,$fff,$fff,$ffc,$ffc dc.w $68c,$68c,$9f4,$9f4,$fff,$fff,$ffc,$ffc
kds_fairy_sprite_palette: kds_fairy_sprite_palette:
incbin "data/kaleidoscope/fairy1_48x51x16.PAL" incbin "../data/kaleidoscope/fairy1_48x51x16.PAL"
; Points ; Points
kds_fairy_points: kds_fairy_points:
@ -6312,22 +6312,22 @@ kds_extra_copperlist_ptr:
COP_END COP_END
kds_fairy_body1: kds_fairy_body1:
incbin "data/kaleidoscope/fairy1_48x51x16.BPL" incbin "../data/kaleidoscope/fairy1_48x51x16.BPL"
kds_fairy_body2: kds_fairy_body2:
incbin "data/kaleidoscope/fairy2_48x51x16.BPL" incbin "../data/kaleidoscope/fairy2_48x51x16.BPL"
kds_fairy_body3: kds_fairy_body3:
incbin "data/kaleidoscope/fairy3_48x51x16.BPL" incbin "../data/kaleidoscope/fairy3_48x51x16.BPL"
kds_puff_sprite1: kds_puff_sprite1:
incbin "data/kaleidoscope/puff1_32x15x16.BPL" incbin "../data/kaleidoscope/puff1_32x15x16.BPL"
kds_puff_sprite2: kds_puff_sprite2:
incbin "data/kaleidoscope/puff2_32x15x16.BPL" incbin "../data/kaleidoscope/puff2_32x15x16.BPL"
kds_puff_sprite3: kds_puff_sprite3:
incbin "data/kaleidoscope/puff3_32x15x16.BPL" incbin "../data/kaleidoscope/puff3_32x15x16.BPL"
kds_puff_sprite4: kds_puff_sprite4:
incbin "data/kaleidoscope/puff4_32x15x16.BPL" incbin "../data/kaleidoscope/puff4_32x15x16.BPL"
kds_kaleidoscope_pattern: kds_kaleidoscope_pattern:
incbin "data/kaleidoscope/plt_neuro2_ham.raw" incbin "../data/kaleidoscope/plt_neuro2_ham.raw"
blitter_temp_output_word: blitter_temp_output_word:
dc.w 0 dc.w 0
@ -6336,11 +6336,11 @@ blitter_temp_output_word:
IFD ENABLE_PART_MUSIC IFD ENABLE_PART_MUSIC
section "part_music_samples",data,chip ; section for music playback section "part_music_samples",data,chip ; section for music playback
part_music_smp: 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 section "part_music_data",data ; section for music playback
part_music_data: part_music_data:
incbin "data/music/desire_demo_68k_v6.lsmusic" incbin "../data/music/desire_demo_68k_v6.lsmusic"
ENDC ENDC
ENDC ENDC

View File

@ -5,9 +5,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -81,7 +81,7 @@ DEBUG_DETAIL SET 10
NEWAGE_DEBUG = 1 NEWAGE_DEBUG = 1
include "framework.i" include "../framework/framework.i"
; Memory use: ; Memory use:
@ -151,7 +151,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -188,9 +188,9 @@ entrypoint:
IFD FW_DEMO_PART IFD FW_DEMO_PART
move.l fw_GlobalUserData(a6),a0 move.l fw_GlobalUserData(a6),a0
move.l pd_HamphreyBuffer(a6),a1 move.l pd_HamphreyBuffer(a6),a1
PUTMSG 10,<"%d: Decrunching from %p to %p">,fw_FrameCounter-2(a6),a0,a1 PUTMSG 10,<"%d: Decrunching from %p to %p">,fw_FrameCounterLong(a6),a0,a1
CALLFW DecompressZX0 CALLFW DecompressZX0
PUTMSG 10,<"%d: Image decrunched until %p">,fw_FrameCounter-2(a6),a1 PUTMSG 10,<"%d: Image decrunched until %p">,fw_FrameCounterLong(a6),a1
clr.l fw_GlobalUserData(a6) clr.l fw_GlobalUserData(a6)
ENDC ENDC
bsr sth_create_curtain bsr sth_create_curtain
@ -284,9 +284,9 @@ sth_init_vars:
sth_intro: sth_intro:
IFD FW_DEMO_PART IFD FW_DEMO_PART
PUTMSG 10,<"%d: Intro part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Intro part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
ELSE ELSE
PUTMSG 10,<"%d: Intro part started">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Intro part started">,fw_FrameCounterLong(a6)
move.w #400,pd_PartCountDown(a6) move.w #400,pd_PartCountDown(a6)
ENDC ENDC
@ -312,9 +312,9 @@ sth_intro:
sth_main: sth_main:
IFD FW_DEMO_PART IFD FW_DEMO_PART
PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Main part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
ELSE ELSE
PUTMSG 10,<"%d: Main part started">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Main part started">,fw_FrameCounterLong(a6)
ENDC ENDC
move.w #800,pd_PartCountDown(a6) move.w #800,pd_PartCountDown(a6)
CALLFW SetBlitterQueueSingleFrame CALLFW SetBlitterQueueSingleFrame
@ -364,9 +364,9 @@ sth_main:
sth_curtain: sth_curtain:
IFD FW_DEMO_PART IFD FW_DEMO_PART
PUTMSG 10,<"%d: Curtain part started (%d music frames)">,fw_FrameCounter-2(a6),fw_MusicFrameCount-2(a6) PUTMSG 10,<"%d: Curtain part started (%d music frames)">,fw_FrameCounterLong(a6),fw_MusicFrameCount-2(a6)
ELSE ELSE
PUTMSG 10,<"%d: Curtain part started">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Curtain part started">,fw_FrameCounterLong(a6)
ENDC ENDC
move.w #186,pd_PartCountDown(a6) move.w #186,pd_PartCountDown(a6)
CALLFW SetBlitterQueueSingleFrame CALLFW SetBlitterQueueSingleFrame
@ -791,7 +791,7 @@ sth_drop_bars:
sth_create_curtain: sth_create_curtain:
move.l pd_CurtainDataPtr(a6),a0 move.l pd_CurtainDataPtr(a6),a0
PUTMSG 10,<"%d: Curtain %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: Curtain %p">,fw_FrameCounterLong(a6),a0
move.l #(spr+0*sd_SIZEOF+sd_pos)<<16,d4 move.l #(spr+0*sd_SIZEOF+sd_pos)<<16,d4
move.l #$1fe<<16,d3 move.l #$1fe<<16,d3
@ -862,7 +862,7 @@ sth_create_curtain:
move.l d3,(a0)+ move.l d3,(a0)+
dbra d7,.emptylineloop dbra d7,.emptylineloop
PUTMSG 10,<"%d: Curtain done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Curtain done">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
@ -1373,10 +1373,10 @@ sth_scrolltext:
even even
sth_curtainsines: sth_curtainsines:
incbin "data/stham/curtainsine.bin" incbin "../data/stham/curtainsine.bin"
sth_hamphrey_palette: 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 ; https://gradient-blaster-grahambates.vercel.app/?points=cff@0,09a@171&steps=256&blendMode=oklab&ditherMode=errorDiffusion&target=amigaOcs&ditherAmount=55
sth_scroller_gradient: sth_scroller_gradient:
@ -1721,7 +1721,7 @@ sth_scroller_shift_2_bitmap:
IFND FW_DEMO_PART IFND FW_DEMO_PART
sth_hamphrey_pic: sth_hamphrey_pic:
incbin "data/stham/PLT_HAMph_path_2_test08b_ham.raw" incbin "../data/stham/PLT_HAMph_path_2_test08b_ham.raw"
ENDC ENDC
END END

View File

@ -1,5 +1,5 @@
-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 -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%%/../" -I"%%VBCC%%/../framework" -I"%%VBCC%%/../framework/musicplayers" -I"%%VBCC%%/../includes" -asv=vasmm68k_mot -x -maxerrors=50 -m68000 -Fhunk -align -phxass %s -DFW_DEMO_PART=1 -o %s -I"%%VBCC%%/../includes"
-cc=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld -quiet -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 -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 -l2=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -L"%%VBCC%%/targets/m68k-amigaos/lib" %s %s -o %s

View File

@ -1,11 +1,11 @@
-as=vasmm68k_mot -x -maxerrors=50 -m68000 -showopt -Fhunk -kick1hunks -align -phxass %s -DFW_DEMO_PART=1 -DFW_HD_DEMO_PART=1 -o %s -I"%%VBCC%%/../" -I"%%VBCC%%/../framework" -I"%%VBCC%%/../framework/musicplayers" -I"%%VBCC%%/../includes" -quiet -as=vasmm68k_mot -x -maxerrors=50 -m68000 -Fhunk -align -phxass %s -DFW_DEMO_PART=1 -DFW_HD_DEMO_PART=1 -o %s -I"%%VBCC%%/../includes" -quiet
-asv=vasmm68k_mot -x -maxerrors=50 -m68000 -showopt -Fhunk -kick1hunks -align -phxass %s -DFW_DEMO_PART=1 -DFW_HD_DEMO_PART=1 -o %s -I"%%VBCC%%/../" -I"%%VBCC%%/../framework" -I"%%VBCC%%/../framework/musicplayers" -I"%%VBCC%%/../includes" -asv=vasmm68k_mot -x -maxerrors=50 -m68000 -Fhunk -align -phxass %s -DFW_DEMO_PART=1 -DFW_HD_DEMO_PART=1 -o %s -I"%%VBCC%%/../includes"
-cc=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld -quiet -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 -ccv=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld
-l2=vlink -bamigahunk -Bstatic -Cvbcc -Z -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" %s %s -o %s -l2=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -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 -l2v=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -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 -ld=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -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 -ldv=vlink -bamigahunk -Bstatic -Cvbcc -nostdlib -L"%%VBCC%%/targets/m68k-amigaos/lib" "%%VBCC%%/targets/m68k-amigaos/lib/startup.o" %s %s -lvc -o %s -t
-ldnodb=-S -s -x -ldnodb=-S -s -x
-ul=-l%s -ul=-l%s
-cf=-F%s -cf=-F%s

View File

@ -1,11 +1,11 @@
-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 -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%%/../" -I"%%VBCC%%/../framework" -I"%%VBCC%%/../framework/musicplayers" -I"%%VBCC%%/../includes" -asv=vasmm68k_mot -x -maxerrors=50 -m68000 -showopt -Fhunk -kick1hunks -align -phxass %s -o %s -I"%%VBCC%%/../includes"
-cc=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld -quiet -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 -ccv=vbccm68k -warn=-1 -maxerrors=50 -dontwarn=168 -dontwarn=81 -c99 %s -o= %s %s -O=%ld
-l2=vlink -bamigahunk -Bstatic -Cvbcc -Z -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" %s %s -o %s -l2=vlink -bamigahunk -Bstatic -Cvbcc -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 -l2v=vlink -bamigahunk -Bstatic -Cvbcc -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 -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 -Z -nostdlib -mrel -L"%%VBCC%%/targets/m68k-amigaos/lib" "%%VBCC%%/targets/m68k-amigaos/lib/startup.o" %s %s -lvc -o %s -t -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
-ldnodb=-S -s -x -ldnodb=-S -s -x
-ul=-l%s -ul=-l%s
-cf=-F%s -cf=-F%s

View File

@ -5,9 +5,9 @@
IFD FW_DEMO_PART IFD FW_DEMO_PART
IFD FW_HD_DEMO_PART IFD FW_HD_DEMO_PART
include "hdtrackmo_settings.i" include "../hamazing/hdtrackmo_settings.i"
ELSE ELSE
include "trackmo_settings.i" include "../hamazing/trackmo_settings.i"
ENDC ENDC
ELSE ELSE
FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing) FW_STANDALONE_FILE_MODE = 1 ; enable standalone (part testing)
@ -93,7 +93,7 @@ DEBUG_DETAIL SET 10
NEWAGE_DEBUG = 1 NEWAGE_DEBUG = 1
include "framework.i" include "../framework/framework.i"
; Process: ; Process:
; ;
@ -247,7 +247,7 @@ NEWAGE_DEBUG = 1
LABEL pd_SIZEOF LABEL pd_SIZEOF
IFND FW_DEMO_PART IFND FW_DEMO_PART
include "framework.asm" include "../framework/framework.asm"
ENDC ENDC
entrypoint: entrypoint:
@ -456,7 +456,7 @@ vgb_init_vars:
vgb_init_cot_table: vgb_init_cot_table:
move.l fw_CosTable(a6),a1 move.l fw_CosTable(a6),a1
lea pd_CotTable(a6),a0 lea pd_CotTable(a6),a0
PUTMSG 10,<"%d: CotTable %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: CotTable %p">,fw_FrameCounterLong(a6),a0
moveq.l #(ROT_ANGLES-1)-1,d7 moveq.l #(ROT_ANGLES-1)-1,d7
moveq.l #0,d0 moveq.l #0,d0
moveq.l #0,d5 moveq.l #0,d5
@ -466,13 +466,13 @@ vgb_init_cot_table:
move.w d1,(a0)+ move.w d1,(a0)+
addq.l #2*2,a1 addq.l #2*2,a1
dbra d7,.loop dbra d7,.loop
PUTMSG 10,<"%d: CotTable done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: CotTable done">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
vgb_init_modshift_table: vgb_init_modshift_table:
PUTMSG 10,<"%d: Calc modshift table">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Calc modshift table">,fw_FrameCounterLong(a6)
move.l pd_ModShiftDataPtr(a6),a1 move.l pd_ModShiftDataPtr(a6),a1
move.l pd_XPosBufferPtr(a6),a0 move.l pd_XPosBufferPtr(a6),a0
moveq.l #ROT_ANGLES-1,d7 moveq.l #ROT_ANGLES-1,d7
@ -502,14 +502,14 @@ vgb_init_modshift_table:
lea (VGBARS_HEIGHT*2)(a0),a0 lea (VGBARS_HEIGHT*2)(a0),a0
subq.w #2,d0 subq.w #2,d0
dbra d7,.loop2 dbra d7,.loop2
PUTMSG 10,<"%d: Calc modshift table done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: Calc modshift table done">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
vgb_init_one_color_change_table: vgb_init_one_color_change_table:
move.l pd_OneColorChangeTable(a6),a0 move.l pd_OneColorChangeTable(a6),a0
PUTMSG 10,<"%d: pd_OneColorChangeTable %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: pd_OneColorChangeTable %p">,fw_FrameCounterLong(a6),a0
moveq.l #1,d0 moveq.l #1,d0
move.w #$f00,d4 move.w #$f00,d4
move.w #$0f0,d5 move.w #$0f0,d5
@ -558,14 +558,14 @@ vgb_init_one_color_change_table:
.good .good
addq.w #1,d0 addq.w #1,d0
dbra d7,.loop dbra d7,.loop
PUTMSG 10,<"%d: pd_OneColorChangeTable done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: pd_OneColorChangeTable done">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
vgb_init_red_blue_table: vgb_init_red_blue_table:
move.l pd_RedBlueTable(a6),a0 move.l pd_RedBlueTable(a6),a0
PUTMSG 10,<"%d: pd_RedBlueTable %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: pd_RedBlueTable %p">,fw_FrameCounterLong(a6),a0
moveq.l #0,d0 moveq.l #0,d0
move.w #4096-1,d7 move.w #4096-1,d7
.loop .loop
@ -578,14 +578,14 @@ vgb_init_red_blue_table:
move.b d2,(a0)+ move.b d2,(a0)+
addq.w #1,d0 addq.w #1,d0
dbra d7,.loop dbra d7,.loop
PUTMSG 10,<"%d: pd_RedBlueTable done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: pd_RedBlueTable done">,fw_FrameCounterLong(a6)
rts rts
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
vgb_init_diff_table: vgb_init_diff_table:
move.l pd_DiffTable(a6),a0 move.l pd_DiffTable(a6),a0
PUTMSG 10,<"%d: pd_DiffTable %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: pd_DiffTable %p">,fw_FrameCounterLong(a6),a0
add.l #$10000,a0 add.l #$10000,a0
move.w #256-1,d7 move.w #256-1,d7
.oloop .oloop
@ -614,7 +614,7 @@ vgb_init_diff_table:
move.b d4,-(a0) move.b d4,-(a0)
dbra d6,.loop dbra d6,.loop
dbra d7,.oloop dbra d7,.oloop
PUTMSG 10,<"%d: pd_DiffTable done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: pd_DiffTable done">,fw_FrameCounterLong(a6)
rts rts
.takelow .takelow
move.b d3,-(a0) move.b d3,-(a0)
@ -626,7 +626,7 @@ vgb_init_diff_table:
vgb_init_mod40_table: vgb_init_mod40_table:
lea pd_Mod40TablePos(a6),a0 lea pd_Mod40TablePos(a6),a0
PUTMSG 10,<"%d: pd_Mod40TablePos %p">,fw_FrameCounter-2(a6),a0 PUTMSG 10,<"%d: pd_Mod40TablePos %p">,fw_FrameCounterLong(a6),a0
move.l a0,a1 move.l a0,a1
move.w #(VGBARS_WIDTH/8)*VGBARS_PLANES,d2 move.w #(VGBARS_WIDTH/8)*VGBARS_PLANES,d2
moveq.l #0,d0 moveq.l #0,d0
@ -638,7 +638,7 @@ vgb_init_mod40_table:
sub.w d2,d1 sub.w d2,d1
move.w d1,-(a1) move.w d1,-(a1)
dbra d7,.loop dbra d7,.loop
PUTMSG 10,<"%d: pd_Mod40TablePos done">,fw_FrameCounter-2(a6) PUTMSG 10,<"%d: pd_Mod40TablePos done">,fw_FrameCounterLong(a6)
rts 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 dc.w 643,687,737,795,862,942,1037,1154,1299,1486,1735,2083,2605,3475,5214,10429
vgb_cat_sprite_palette: 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: 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 COP_END
vgb_cat_sprite: vgb_cat_sprite:
incbin "data/virgillbars/PLT_Lolcat64x128x16.ASP" incbin "../data/virgillbars/PLT_Lolcat64x128x16.ASP"
vgb_add_of_light_div_sprite: vgb_add_of_light_div_sprite:
incbin "data/virgillbars/additionsprite96x112x4.SPR" incbin "../data/virgillbars/additionsprite96x112x4.SPR"
vgb_light_break_sprite: vgb_light_break_sprite:
incbin "data/virgillbars/lightbreak128x128x4.SPR" incbin "../data/virgillbars/lightbreak128x128x4.SPR"
vgb_stay_broken_sprite: vgb_stay_broken_sprite:
incbin "data/virgillbars/staybroken128x128x4.SPR" incbin "../data/virgillbars/staybroken128x128x4.SPR"
IFND FW_DEMO_PART IFND FW_DEMO_PART
IFD ENABLE_PART_MUSIC IFD ENABLE_PART_MUSIC
section "part_music_samples",data,chip ; section for music playback section "part_music_samples",data,chip ; section for music playback
part_music_smp: 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 section "part_music_data",data ; section for music playback
part_music_data: part_music_data:
incbin "data/music/dsr_68k_tune_2_v11.lsmusic" incbin "../data/music/dsr_68k_tune_2_v11.lsmusic"
ENDC ENDC
ENDC ENDC
END END