diff --git a/pt3_player/pt3_lib.s b/pt3_player/pt3_lib.s index bc400e9a..b84435ba 100644 --- a/pt3_player/pt3_lib.s +++ b/pt3_player/pt3_lib.s @@ -417,6 +417,17 @@ note_decode_loop: lda note_a+NOTE_LEN ; re-up length count sta note_a+NOTE_LEN_COUNT + ldy #0 + + lda note_a+NOTE_ADDR_L + sta PATTERN_L + lda note_a+NOTE_ADDR_H + sta PATTERN_H + + ; get next value + lda (PATTERN_L),Y + +blah: jmp blah ; current_val=pt3->data[*addr]; ; switch((current_val>>4)&0xf) { @@ -727,14 +738,16 @@ pt3_set_pattern: lda PT3_LOC+PT3_PATTERN_LOC_L sta PATTERN_L lda PT3_LOC+PT3_PATTERN_LOC_H + adc #>PT3_LOC ; assume page boundary sta PATTERN_H lda (PATTERN_L),Y sta note_a+NOTE_ADDR_L iny + clc lda (PATTERN_L),Y - adc >PT3_LOC ; assume page boundary + adc #>PT3_LOC ; assume page boundary sta note_a+NOTE_ADDR_H iny @@ -743,7 +756,7 @@ pt3_set_pattern: iny lda (PATTERN_L),Y - adc >PT3_LOC ; assume page boundary + adc #>PT3_LOC ; assume page boundary sta note_b+NOTE_ADDR_H iny @@ -752,7 +765,7 @@ pt3_set_pattern: iny lda (PATTERN_L),Y - adc >PT3_LOC ; assume page boundary + adc #>PT3_LOC ; assume page boundary sta note_c+NOTE_ADDR_H lda #0 @@ -762,6 +775,8 @@ pt3_set_pattern: sta pt3_noise_period + blah4: jmp blah4 + rts @@ -775,32 +790,55 @@ pt3_make_frame: ; for(j=0;j<64;j++) { ; if (pt3_decode_line(&pt3)) break; -next_subframe: - inc current_subframe ; for(f=0;f