@@ -55,37 +55,10 @@ struct snd snd;
5555#define S3 (snd.ch[2])
5656#define S4 (snd.ch[3])
5757
58-
59- static inline void s1_freq_d (int d )
60- {
61- if (RATE > (d <<4 )) S1 .freq = 0 ;
62- else S1 .freq = (RATE << 17 )/d ;
63- }
64-
65- static inline void s1_freq ()
66- {
67- s1_freq_d (2048 - (((R_NR14 & 7 )<<8 ) + R_NR13 ));
68- }
69-
70- static inline void s2_freq ()
71- {
72- int d = 2048 - (((R_NR24 & 7 )<<8 ) + R_NR23 );
73- if (RATE > (d <<4 )) S2 .freq = 0 ;
74- else S2 .freq = (RATE << 17 )/d ;
75- }
76-
77- static inline void s3_freq ()
78- {
79- int d = 2048 - (((R_NR34 & 7 )<<8 ) + R_NR33 );
80- if (RATE > (d <<3 )) S3 .freq = 0 ;
81- else S3 .freq = (RATE << 21 )/d ;
82- }
83-
84- static inline void s4_freq ()
85- {
86- S4 .freq = (freqtab [R_NR43 & 7 ] >> (R_NR43 >> 4 )) * RATE ;
87- if (S4 .freq >> 18 ) S4 .freq = 1 <<18 ;
88- }
58+ #define s1_freq () {int d = 2048 - (((R_NR14&7)<<8) + R_NR13); S1.freq = (RATE > (d<<4)) ? 0 : (RATE << 17)/d;}
59+ #define s2_freq () {int d = 2048 - (((R_NR24&7)<<8) + R_NR23); S2.freq = (RATE > (d<<4)) ? 0 : (RATE << 17)/d;}
60+ #define s3_freq () {int d = 2048 - (((R_NR34&7)<<8) + R_NR33); S3.freq = (RATE > (d<<3)) ? 0 : (RATE << 21)/d;}
61+ #define s4_freq () {S4.freq = (freqtab[R_NR43&7] >> (R_NR43 >> 4)) * RATE; if (S4.freq >> 18) S4.freq = 1<<18;}
8962
9063void sound_dirty ()
9164{
@@ -187,7 +160,8 @@ void IRAM_ATTR sound_mix()
187160 S1 .swfreq = f ;
188161 R_NR13 = f ;
189162 R_NR14 = (R_NR14 & 0xF8 ) | (f >>8 );
190- s1_freq_d (2048 - f );
163+ // s1_freq_d(2048 - f);
164+ s1_freq ();
191165 }
192166 }
193167 s <<= 2 ;
0 commit comments