--- xmil/sound/opmgen.h 2004/08/20 12:09:20 1.2 +++ xmil/sound/opmgen.h 2008/06/02 20:07:32 1.4 @@ -1,5 +1,5 @@ -#define OPM_CLOCK 4000000L // X1 & X68000 OPM 4MHz +#define OPM_CLOCK 4000000L /* X1 & X68000 OPM 4MHz */ #define OPMCH_MAX 8 enum { @@ -8,8 +8,13 @@ enum { FMVOL_SFTBIT = 5 }; +#if !defined(_WIN32_WCE) #define SIN_BITS 10 #define EVC_BITS 10 +#else +#define SIN_BITS 8 +#define EVC_BITS 7 +#endif #define ENV_BITS 16 #define KF_BITS 6 #define FREQ_BITS 20 @@ -17,14 +22,14 @@ enum { #define SINTBL_BIT 14 #define TL_BITS (FREQ_BITS + 2) -#define OPM_OUTSB (TL_BITS + 2 - 16) // OPM output 16bit +#define OPM_OUTSB (TL_BITS + 2 - 16) /* OPM output 16bit */ #define SIN_ENT (1 << SIN_BITS) #define EVC_ENT (1 << EVC_BITS) -#define EC_ATTACK 0 // ATTACK start -#define EC_DECAY (EVC_ENT << ENV_BITS) // DECAY start -#define EC_OFF ((2 * EVC_ENT) << ENV_BITS) // OFF +#define EC_ATTACK 0 /* ATTACK start */ +#define EC_DECAY (EVC_ENT << ENV_BITS) /* DECAY start */ +#define EC_OFF ((2 * EVC_ENT) << ENV_BITS) /* OFF */ #define TL_MAX (EVC_ENT * 2) @@ -42,47 +47,47 @@ enum { }; typedef struct { - SINT32 *detune1; // detune1 - SINT32 detune2; // detune2 - SINT32 totallevel; // total level - SINT32 decaylevel; // decay level -const SINT32 *attack; // attack ratio -const SINT32 *decay1; // decay1 ratio -const SINT32 *decay2; // decay2 ratio -const SINT32 *release; // release ratio - SINT32 freq_cnt; // frequency count - SINT32 freq_inc; // frequency step - UINT8 keyscale; // key scale - UINT8 multiple; // multiple - UINT8 env_mode; // envelope mode - UINT8 envratio; // envelope raito - - SINT32 env_cnt; // envelope count - SINT32 env_end; // envelope end count - SINT32 env_inc; // envelope step - SINT32 env_inc_attack; // envelope attack step - SINT32 env_inc_decay1; // envelope decay1 step - SINT32 env_inc_decay2; // envelope decay2 step - SINT32 env_inc_release; // envelope release step + SINT32 *detune1; /* detune1 */ + SINT32 detune2; /* detune2 */ + SINT32 totallevel; /* total level */ + SINT32 decaylevel; /* decay level */ +const SINT32 *attack; /* attack ratio */ +const SINT32 *decay1; /* decay1 ratio */ +const SINT32 *decay2; /* decay2 ratio */ +const SINT32 *release; /* release ratio */ + SINT32 freq_cnt; /* frequency count */ + SINT32 freq_inc; /* frequency step */ + UINT8 keyscale; /* key scale */ + UINT8 multiple; /* multiple */ + UINT8 env_mode; /* envelope mode */ + UINT8 envratio; /* envelope raito */ + + SINT32 env_cnt; /* envelope count */ + SINT32 env_end; /* envelope end count */ + SINT32 env_inc; /* envelope step */ + SINT32 env_inc_attack; /* envelope attack step */ + SINT32 env_inc_decay1; /* envelope decay1 step */ + SINT32 env_inc_decay2; /* envelope decay2 step */ + SINT32 env_inc_release; /* envelope release step */ } OPMSLOT; typedef struct { OPMSLOT slot[4]; - UINT8 algorithm; // algorythm - UINT8 feedback; // self feedback + UINT8 algorithm; /* algorythm */ + UINT8 feedback; /* self feedback */ UINT8 playing; UINT8 outslot; - SINT32 op1fb; // operator1 feedback - SINT32 *connect1; // operator1 connect - SINT32 *connect3; // operator3 connect - SINT32 *connect2; // operator2 connect - SINT32 *connect4; // operator4 connect - UINT32 keynote; // key note - - UINT8 keyfunc; // key function - UINT8 kcode; // key code - UINT8 pan; // pan + SINT32 op1fb; /* operator1 feedback */ + SINT32 *connect1; /* operator1 connect */ + SINT32 *connect3; /* operator3 connect */ + SINT32 *connect2; /* operator2 connect */ + SINT32 *connect4; /* operator4 connect */ + UINT32 keynote; /* key note */ + + UINT8 keyfunc; /* key function */ + UINT8 kcode; /* key code */ + UINT8 pan; /* pan */ UINT8 padding; } OPMCH;