mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-10-12 05:24:02 +00:00
pt3: forgot to load default song speed from header
vc.pt3 works now
This commit is contained in:
parent
d5c4564d0c
commit
4f97ba511c
@ -15,6 +15,7 @@ pt3_player.dsk: PT3_PLAYER PT3_DUMPER HELLO DUMP
|
||||
$(DOS33) -y pt3_player.dsk BSAVE -a 0x1000 PT3_DUMPER
|
||||
$(DOS33) -y pt3_player.dsk BSAVE -a 0x1000 PT3_PLAYER
|
||||
$(DOS33) -y pt3_player.dsk BSAVE -a 0x3000 EA.PT3
|
||||
$(DOS33) -y pt3_player.dsk BSAVE -a 0x3000 VC.PT3
|
||||
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/CHRISTMAS.KRW
|
||||
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/CRMOROS.KRW
|
||||
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/DEATH2.KRW
|
||||
|
BIN
pt3_player/VC.PT3
Normal file
BIN
pt3_player/VC.PT3
Normal file
Binary file not shown.
@ -223,6 +223,7 @@ sample_b1: .byte $0
|
||||
|
||||
PT3_VERSION = $D
|
||||
PT3_HEADER_FREQUENCY = $63
|
||||
PT3_SPEED = $64
|
||||
PT3_PATTERN_LOC_L = $67
|
||||
PT3_PATTERN_LOC_H = $68
|
||||
PT3_SAMPLE_LOC_L = $69
|
||||
@ -430,6 +431,12 @@ pt3_init_song:
|
||||
sbc #'0'
|
||||
sta pt3_version
|
||||
|
||||
;=======================
|
||||
; load default speed
|
||||
|
||||
lda PT3_LOC+PT3_SPEED
|
||||
sta pt3_speed
|
||||
|
||||
not_ascii_number:
|
||||
|
||||
rts
|
||||
@ -784,61 +791,72 @@ envelope_slide:
|
||||
|
||||
lda #$80
|
||||
bit sample_b1
|
||||
beq noise_slide ; if ((b1 & 0x80) != 0) {
|
||||
beq else_noise_slide ; if ((b1 & 0x80) != 0) {
|
||||
|
||||
lda #$20
|
||||
bit sample_b0
|
||||
beq envelope_slide_down ; if ((b0 & 0x20) != 0) {
|
||||
|
||||
; FIXME: this can be optimized
|
||||
envelope_slide_up:
|
||||
|
||||
envelope_slide_down:
|
||||
|
||||
; j = ((b0>>1)|0xF0) + a->envelope_sliding
|
||||
lda sample_b0
|
||||
lsr
|
||||
ora #$f0
|
||||
clc
|
||||
adc note_a+NOTE_ENVELOPE_SLIDING,X
|
||||
sta e_slide_amount ; j = ((b0>>1)|0xF0) + a->envelope_sliding
|
||||
jmp envelope_slide_done
|
||||
envelope_slide_down:
|
||||
sta e_slide_amount ; j
|
||||
|
||||
envelope_slide_up:
|
||||
; j = ((b0>>1)&0xF) + a->envelope_sliding;
|
||||
lda sample_b0
|
||||
lsr
|
||||
and #$0f
|
||||
clc
|
||||
adc note_a+NOTE_ENVELOPE_SLIDING,X
|
||||
sta e_slide_amount ; j = ((b0>>1)&0xF) + a->envelope_sliding;
|
||||
sta e_slide_amount ; j
|
||||
|
||||
envelope_slide_done:
|
||||
|
||||
lda #$20
|
||||
bit sample_b1
|
||||
beq last_envelope ; if (( b1 & 0x20) != 0) {
|
||||
|
||||
; a->envelope_sliding = j;
|
||||
lda e_slide_amount
|
||||
sta note_a+NOTE_ENVELOPE_SLIDING,X ; a->envelope_sliding = j;
|
||||
sta note_a+NOTE_ENVELOPE_SLIDING,X
|
||||
|
||||
last_envelope:
|
||||
|
||||
; pt3->envelope_add+=j;
|
||||
|
||||
clc
|
||||
lda e_slide_amount
|
||||
adc pt3_envelope_add
|
||||
sta pt3_envelope_add ; pt3->envelope_add+=j;
|
||||
sta pt3_envelope_add
|
||||
|
||||
jmp noise_slide_done ; skip else
|
||||
|
||||
noise_slide:
|
||||
else_noise_slide:
|
||||
; Noise slide
|
||||
; else {
|
||||
|
||||
; pt3->noise_add = (b0>>1) + a->noise_sliding;
|
||||
lda sample_b0
|
||||
lsr
|
||||
clc
|
||||
adc note_a+NOTE_NOISE_SLIDING,X
|
||||
sta pt3_noise_add ; pt3->noise_add = (b0>>1) + a->noise_sliding;
|
||||
sta pt3_noise_add
|
||||
|
||||
lda #$20
|
||||
bit sample_b1
|
||||
beq noise_slide_done ; if ((b1 & 0x20) != 0) {
|
||||
|
||||
; noise_sliding = pt3_noise_add
|
||||
lda pt3_noise_add
|
||||
sta note_a+NOTE_NOISE_SLIDING,X ; noise_sliding = pt3_noise_add
|
||||
sta note_a+NOTE_NOISE_SLIDING,X
|
||||
|
||||
noise_slide_done:
|
||||
;======================
|
||||
|
Loading…
Reference in New Issue
Block a user