-static void mix_samples(short *dest_buf, int *ym_buf, short *mp3_buf, int len, int stereo)\r
-{\r
- if (mp3_buf)\r
- {\r
- if (stereo)\r
- {\r
- for (; len > 0; len--)\r
- {\r
- int l, r, lm, rm;\r
- l = r = *dest_buf;\r
- l += *ym_buf++; r += *ym_buf++;\r
- lm = *mp3_buf++; rm = *mp3_buf++;\r
- l += lm - lm/2; r += rm - rm/2;\r
- Limit( l, MAXOUT, MINOUT );\r
- Limit( r, MAXOUT, MINOUT );\r
- *dest_buf++ = l; *dest_buf++ = r;\r
- }\r
- } else {\r
- for (; len > 0; len--)\r
- {\r
- // TODO: normalize\r
- int l = *ym_buf++;\r
- l += *dest_buf;\r
- l += *mp3_buf++;\r
- Limit( l, MAXOUT, MINOUT );\r
- *dest_buf++ = l;\r
- }\r
- }\r
- }\r
- else\r
- {\r
- if (stereo)\r
- {\r
- for (; len > 0; len--)\r
- {\r
- int l, r;\r
- l = r = *dest_buf;\r
- l += *ym_buf++, r += *ym_buf++;\r
- Limit( l, MAXOUT, MINOUT );\r
- Limit( r, MAXOUT, MINOUT );\r
- *dest_buf++ = l; *dest_buf++ = r;\r
- }\r
- } else {\r
- for (; len > 0; len--)\r
- {\r
- int l = *ym_buf++;\r
- l += *dest_buf;\r
- Limit( l, MAXOUT, MINOUT );\r
- *dest_buf++ = l;\r
- }\r
- }\r
- }\r
-}\r
-\r
-\r
-// here we assume that length is different between games, but constant in one game\r
-\r
-static FILE *loaded_mp3 = 0;\r
-\r
-void YM2612UpdateOne_940(short *buffer, int length, int stereo)\r