bubble: more optimization

This commit is contained in:
Vince Weaver 2024-01-02 16:37:04 -05:00
parent 1a6d39d63f
commit 7216c531ff

View File

@ -22,7 +22,7 @@
; 9F673 = clear screen, only clear X region we use ; 9F673 = clear screen, only clear X region we use
; 9DD73 = clear screen, only clear Y region we use ; 9DD73 = clear screen, only clear Y region we use
; 906FE = inline/unroll the sines ; 906FE = inline/unroll the sines
; TODO: inline/unroll sine/cosine calls ; 817BE = inline/unroll the cosines
; soft-switches ; soft-switches
@ -178,7 +178,6 @@ no_rl_carry:
; U=SIN(I+V)+SIN(RR+X) ; U=SIN(I+V)+SIN(RR+X)
; ldy #0
lda IVL ; 3 lda IVL ; 3
sta STEMP1L ; 3 sta STEMP1L ; 3
lda IVH ; 3 lda IVH ; 3
@ -191,26 +190,13 @@ no_rl_carry:
lda sin_table_high,X ; 4 lda sin_table_high,X ; 4
sta OUT1H ; 3 sta OUT1H ; 3
; ldy #2
lda RXL ; 3 lda RXL ; 3
sta STEMP1L ; 3 sta STEMP1L ; 3
lda RXH ; 3 lda RXH ; 3
; jsr sin ; jsr sin
.include "sin_unrolled.s" .include "sin_unrolled.s"
; lda sin_table_low,X ; 4
; sta OUT1L ; 3
; lda sin_table_high,X ; 4
; sta OUT1H ; 3
clc clc
lda OUT1L lda OUT1L
adc sin_table_low,X adc sin_table_low,X
@ -221,17 +207,39 @@ no_rl_carry:
; V=COS(I+V)+COS(RR+X) ; V=COS(I+V)+COS(RR+X)
ldy #0 ; 1.57 is roughly 0x0192 in 8.8
jsr cos clc ; 2
ldy #2 lda IVL ; 3
jsr cos adc #$92 ; 2
sta STEMP1L ; 3
lda IVH ; 4
adc #1 ; 2
; jsr sin
.include "sin_unrolled.s"
lda sin_table_low,X ; 4
sta OUT1L ; 3
lda sin_table_high,X ; 4
sta OUT1H ; 3
; 1.57 is roughly 0x0192 in 8.8
clc ; 2
lda RXL ; 3
adc #$92 ; 2
sta STEMP1L ; 3
lda RXH ; 3
adc #1 ; 2
; jsr cos
.include "sin_unrolled.s"
clc clc
lda OUT1L lda OUT1L
adc OUT2L adc sin_table_low,X
sta VL sta VL
lda OUT1H lda OUT1H
adc OUT2H adc sin_table_high,X
sta VH sta VH
@ -359,7 +367,7 @@ flip2:
.if 0
;======================= ;=======================
sin: sin:
@ -421,7 +429,6 @@ already_loaded:
;============================= ;=============================
cos: cos:
; 1.57 is roughly 0x0192 in 8.8 ; 1.57 is roughly 0x0192 in 8.8
clc ; 2 clc ; 2
lda IVL,Y ; 4 lda IVL,Y ; 4
adc #$92 ; 2 adc #$92 ; 2
@ -432,7 +439,7 @@ cos:
; sta STEMP1H ; 3 ; sta STEMP1H ; 3
jmp already_loaded ; 3 jmp already_loaded ; 3
.endif
.include "hgr_clear_part.s" .include "hgr_clear_part.s"
.include "hgr_table.s" .include "hgr_table.s"