X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fsound%2Fym2612.c;h=b06007b18e7e357801821fea1c8eeac2826d9ea5;hb=b2410633936aa216e7a82fa41fea5ee5ce1fb6ea;hp=4b64fb491b8a966a0df33fb56a88b7dfa9c89166;hpb=1cfc5cc4ce06642b9bc45ca3b9d32793718e9455;p=picodrive.git diff --git a/pico/sound/ym2612.c b/pico/sound/ym2612.c index 4b64fb4..b06007b 100644 --- a/pico/sound/ym2612.c +++ b/pico/sound/ym2612.c @@ -139,6 +139,10 @@ void memset32(int *dest, int c, int count); #define INLINE static __inline #endif +#ifndef STRICTINLINE +#define STRICTINLINE static inline +#endif + #ifndef M_PI #define M_PI 3.14159265358979323846 #endif @@ -531,7 +535,7 @@ static int g_lfo_ampm = 0; /* OPN Mode Register Write */ -INLINE void set_timers( int v ) +static INLINE void set_timers( int v ) { /* b7 = CSM MODE */ /* b6 = 3 slot mode */ @@ -561,7 +565,6 @@ INLINE void FM_KEYON(int c , int s ) SLOT->key = 1; SLOT->phase = 0; /* restart Phase Generator */ SLOT->state = EG_ATT; /* phase -> Attack */ - SLOT->volume = MAX_ATT_INDEX; /* fix Ecco 2 splash sound */ ym2612.slot_mask |= (1<tl = (v&0x7f)<<(ENV_BITS-7); /* 7bit TL */ } /* set attack rate & key scale */ -INLINE void set_ar_ksr(FM_CH *CH, FM_SLOT *SLOT, int v) +static INLINE void set_ar_ksr(FM_CH *CH, FM_SLOT *SLOT, int v) { UINT8 old_KSR = SLOT->KSR; @@ -625,7 +628,7 @@ INLINE void set_ar_ksr(FM_CH *CH, FM_SLOT *SLOT, int v) } /* set decay rate */ -INLINE void set_dr(FM_SLOT *SLOT, int v) +static INLINE void set_dr(FM_SLOT *SLOT, int v) { int eg_sh_d1r, eg_sel_d1r; @@ -638,7 +641,7 @@ INLINE void set_dr(FM_SLOT *SLOT, int v) } /* set sustain rate */ -INLINE void set_sr(FM_SLOT *SLOT, int v) +static INLINE void set_sr(FM_SLOT *SLOT, int v) { int eg_sh_d2r, eg_sel_d2r; @@ -651,7 +654,7 @@ INLINE void set_sr(FM_SLOT *SLOT, int v) } /* set release rate */ -INLINE void set_sl_rr(FM_SLOT *SLOT, int v) +static INLINE void set_sl_rr(FM_SLOT *SLOT, int v) { int eg_sh_rr, eg_sel_rr; @@ -665,8 +668,6 @@ INLINE void set_sl_rr(FM_SLOT *SLOT, int v) SLOT->eg_pack_rr = eg_inc_pack[eg_sel_rr] | (eg_sh_rr<<24); } - - INLINE signed int op_calc(UINT32 phase, unsigned int env, signed int pm) { int ret, sin = (phase>>16) + (pm>>1); @@ -743,7 +744,7 @@ INLINE int advance_lfo(int lfo_ampm, UINT32 lfo_cnt_old, UINT32 lfo_cnt) #define EG_INC_VAL() \ ((1 << ((pack >> ((eg_cnt>>shift)&7)*3)&7)) >> 1) -INLINE UINT32 update_eg_phase(FM_SLOT *SLOT, UINT32 eg_cnt) +STRICTINLINE UINT32 update_eg_phase(FM_SLOT *SLOT, UINT32 eg_cnt) { INT32 volume = SLOT->volume; @@ -1202,7 +1203,7 @@ static int chan_render(int *buffer, int length, int c, UINT32 flags) // flags: s } /* update phase increment and envelope generator */ -INLINE void refresh_fc_eg_slot(FM_SLOT *SLOT, int fc, int kc) +STRICTINLINE void refresh_fc_eg_slot(FM_SLOT *SLOT, int fc, int kc) { int ksr, fdt; @@ -1251,7 +1252,7 @@ INLINE void refresh_fc_eg_slot(FM_SLOT *SLOT, int fc, int kc) } /* update phase increment counters */ -INLINE void refresh_fc_eg_chan(FM_CH *CH) +void refresh_fc_eg_chan(FM_CH *CH) { if( CH->SLOT[SLOT1].Incr==-1){ int fc = CH->fc; @@ -1263,7 +1264,7 @@ INLINE void refresh_fc_eg_chan(FM_CH *CH) } } -INLINE void refresh_fc_eg_chan_sl3(void) +void refresh_fc_eg_chan_sl3(void) { if( ym2612.CH[2].SLOT[SLOT1].Incr==-1) {