Skip to content

Commit 905c612

Browse files
committed
refactor: chn pitch now in register buffer
1 parent dfdd833 commit 905c612

1 file changed

Lines changed: 24 additions & 12 deletions

File tree

source/sound/SNESFM.asm

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1831,9 +1831,6 @@ UpdatePitch:
18311831
!L000_TBL_INDEX = !TEMP_POINTER1_H
18321832
!L000_HIGH_RESULT = !TEMP_POINTER2_L
18331833

1834-
AND !CHANNEL_REGISTER_INDEX, #$70 ;
1835-
OR !CHANNEL_REGISTER_INDEX, #$02 ; DSP Address: Low pitch
1836-
MOV $F2, !CHANNEL_REGISTER_INDEX; ;__
18371834
if !SNESFM_CFG_PITCHBEND_ANY
18381835

18391836
MOV !L000_NOTE_VALUE, A
@@ -1985,21 +1982,19 @@ UpdatePitch:
19851982
; Carry set accordingly for 2's complement addition
19861983
ADDW YA, !L000_BASE_PITCH_L
19871984

1988-
MOV !TEMP_POINTER0_L, Y ; Update low byte of pitch
1989-
%realChannelWrite() ;__
1990-
INC $F2 ;
1991-
MOV A, !TEMP_POINTER0_L ; Update high byte of pitch
1992-
%realChannelWrite() ;__
1985+
MOV CH1_PITCHLO+X, A
1986+
MOV CH1_PITCHHI+X, Y
1987+
OR !UPD_PITCH, !CHANNEL_BITMASK
19931988
RET
19941989

19951990
.NoBend:
19961991
endif
19971992
CALL .ClampPitch
19981993
; MOV A, PitchTableLo+Y <- Done by clampPitch
1999-
%realChannelWrite() ;__ Update low byte of pitch
2000-
MOV A, PitchTableHi+Y ;
2001-
INC $F2 ; Update high byte of pitch
2002-
%realChannelWrite() ;__
1994+
MOV CH1_PITCHLO+X, A ;__ Update low byte of pitch
1995+
MOV A, PitchTableHi+Y ; Update high byte of pitch
1996+
MOV CH1_PITCHHI+X, A ;__
1997+
OR !UPD_PITCH, !CHANNEL_BITMASK
20031998
RET
20041999
.ClampPitch:
20052000
MOV Y, A ;
@@ -2053,14 +2048,31 @@ TransferRegisterData:
20532048
; Order: volume, envelope, source, pitch
20542049
LSR !UPD_VOL
20552050
BCC ..UpdateEnvelope
2051+
AND !CHANNEL_REGISTER_INDEX, #$70
20562052
MOV $F2, !CHANNEL_REGISTER_INDEX
20572053
MOV A, CH1_VOLL+X
20582054
MOV $F3, A
20592055
INC $F2
20602056
MOV A, CH1_VOLR+X
20612057
MOV $F3, A
20622058
..UpdateEnvelope:
2059+
..UpdateSource:
20632060
; Ends here right now
2061+
..UpdatePitch:
2062+
LSR !UPD_PITCH
2063+
BCC ..End
2064+
MOV A, !CHANNEL_REGISTER_INDEX
2065+
AND A, #$70
2066+
OR A, #$02
2067+
MOV $F2, A
2068+
MOV !CHANNEL_REGISTER_INDEX, A
2069+
2070+
MOV A, CH1_PITCHLO+X
2071+
MOV $F3, A
2072+
INC $F2
2073+
MOV A, CH1_PITCHHI+X
2074+
MOV $F3, A
2075+
..End:
20642076
MOV A, X
20652077
CLRC
20662078
ADC A, #$08

0 commit comments

Comments
 (0)