mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-08-15 08:27:41 +00:00
pt3_player: optimize get_note
This commit is contained in:
@@ -1995,7 +1995,7 @@ done_do_frame:
|
|||||||
|
|
||||||
; FIXME: self modify code
|
; FIXME: self modify code
|
||||||
|
|
||||||
; TOTAL = 14 + 14 + 13 = 41
|
; TOTAL = 14 + 14 + 13 = 41 cycles
|
||||||
|
|
||||||
GetNoteFreq:
|
GetNoteFreq:
|
||||||
|
|
||||||
|
@@ -30,6 +30,7 @@ Code Optimization
|
|||||||
MoveNoteToZP 2650 ?? 1A.23 26s 171s 15.2%
|
MoveNoteToZP 2650 ?? 1A.23 26s 171s 15.2%
|
||||||
MinorFixes 2418 + 143 1A.1F 26s 171s 15.2%
|
MinorFixes 2418 + 143 1A.1F 26s 171s 15.2%
|
||||||
FixVibrato 2423 + 143 1A.1F 26s 171s 15.2%
|
FixVibrato 2423 + 143 1A.1F 26s 171s 15.2%
|
||||||
|
GetNoteSMC 1A.16 26 171s 15.2%
|
||||||
|
|
||||||
Times: Validated
|
Times: Validated
|
||||||
BH.PT3: 10.0B 16 1:33 93 17.2%
|
BH.PT3: 10.0B 16 1:33 93 17.2%
|
||||||
|
@@ -423,10 +423,10 @@ FRAMEH: .byte $00
|
|||||||
song_list:
|
song_list:
|
||||||
|
|
||||||
; .asciiz "CR.PT3"
|
; .asciiz "CR.PT3"
|
||||||
; .asciiz "EA.PT3"
|
.asciiz "EA.PT3"
|
||||||
; .asciiz "RI.PT3"
|
; .asciiz "RI.PT3"
|
||||||
; .asciiz "OO.PT3"
|
; .asciiz "OO.PT3"
|
||||||
.asciiz "DY.PT3"
|
; .asciiz "DY.PT3"
|
||||||
|
|
||||||
;=========
|
;=========
|
||||||
;routines
|
;routines
|
||||||
|
@@ -447,6 +447,36 @@ zero_song_structs_loop:
|
|||||||
sta pt3_loop_smc+1 ; 4
|
sta pt3_loop_smc+1 ; 4
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; set up note table
|
||||||
|
|
||||||
|
lda PT3_LOC+PT3_HEADER_FREQUENCY ; 4
|
||||||
|
cmp #1 ; 2
|
||||||
|
bne use_freq_table_2 ; 2/3
|
||||||
|
|
||||||
|
use_freq_table_1:
|
||||||
|
lda #>PT3NoteTable_ST_high ; 4+
|
||||||
|
sta get_note_smc1+2
|
||||||
|
lda #<PT3NoteTable_ST_high ; 4+
|
||||||
|
sta get_note_smc1+1
|
||||||
|
|
||||||
|
lda #>PT3NoteTable_ST_low ; 4+
|
||||||
|
sta get_note_smc2+2
|
||||||
|
lda #<PT3NoteTable_ST_low ; 4+
|
||||||
|
jmp done_set_freq_table
|
||||||
|
|
||||||
|
use_freq_table_2:
|
||||||
|
lda #>PT3NoteTable_ASM_34_35_high ; 4+
|
||||||
|
sta get_note_smc1+2
|
||||||
|
lda #<PT3NoteTable_ASM_34_35_high ; 4+
|
||||||
|
sta get_note_smc1+1
|
||||||
|
|
||||||
|
lda #>PT3NoteTable_ASM_34_35_low ; 4+
|
||||||
|
sta get_note_smc2+2
|
||||||
|
lda #<PT3NoteTable_ASM_34_35_low ; 4+
|
||||||
|
done_set_freq_table:
|
||||||
|
sta get_note_smc2+1
|
||||||
|
|
||||||
;======================
|
;======================
|
||||||
; calculate version
|
; calculate version
|
||||||
ldx #6 ; 2
|
ldx #6 ; 2
|
||||||
@@ -2197,14 +2227,16 @@ done_do_frame:
|
|||||||
GetNoteFreq:
|
GetNoteFreq:
|
||||||
|
|
||||||
sty PT3_TEMP ; 3
|
sty PT3_TEMP ; 3
|
||||||
|
|
||||||
tay ; 2
|
tay ; 2
|
||||||
lda PT3_LOC+PT3_HEADER_FREQUENCY ; 4
|
|
||||||
cmp #1 ; 2
|
|
||||||
bne freq_table_2 ; 2/3
|
|
||||||
|
|
||||||
|
; lda PT3_LOC+PT3_HEADER_FREQUENCY ; 4
|
||||||
|
; cmp #1 ; 2
|
||||||
|
; bne freq_table_2 ; 2/3
|
||||||
|
|
||||||
|
get_note_smc1:
|
||||||
lda PT3NoteTable_ST_high,Y ; 4+
|
lda PT3NoteTable_ST_high,Y ; 4+
|
||||||
sta freq_h_smc+1 ; 4
|
sta freq_h_smc+1 ; 4
|
||||||
|
get_note_smc2:
|
||||||
lda PT3NoteTable_ST_low,Y ; 4+
|
lda PT3NoteTable_ST_low,Y ; 4+
|
||||||
sta freq_l_smc+1 ; 4
|
sta freq_l_smc+1 ; 4
|
||||||
|
|
||||||
@@ -2214,14 +2246,14 @@ GetNoteFreq:
|
|||||||
; 40
|
; 40
|
||||||
|
|
||||||
|
|
||||||
freq_table_2:
|
;freq_table_2:
|
||||||
lda PT3NoteTable_ASM_34_35_high,Y ; 4+
|
; lda PT3NoteTable_ASM_34_35_high,Y ; 4+
|
||||||
sta freq_h_smc+1 ; 4
|
; sta freq_h_smc+1 ; 4
|
||||||
lda PT3NoteTable_ASM_34_35_low,Y ; 4+
|
; lda PT3NoteTable_ASM_34_35_low,Y ; 4+
|
||||||
sta freq_l_smc+1 ; 4
|
; sta freq_l_smc+1 ; 4
|
||||||
|
|
||||||
ldy PT3_TEMP ; 3
|
; ldy PT3_TEMP ; 3
|
||||||
rts ; 6
|
; rts ; 6
|
||||||
;===========
|
;===========
|
||||||
; 41
|
; 41
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user