\r
PICO_INTERNAL void PsndGetSamplesMS(void)\r
{\r
- int *buf32 = PsndBuffer;\r
int stereo = (PicoOpt & 8) >> 3;\r
int length = PsndLen;\r
\r
if (PicoOpt & POPT_EN_PSG)\r
SN76496Update(PsndOut, length, stereo);\r
\r
- // convert + limit to normal 16bit output\r
- PsndMix_32_to_16l(PsndOut, buf32, length);\r
+ // upmix to "stereo" if needed\r
+ if (stereo) {\r
+ int i = length, *p = (void *)PsndOut;\r
+ while (i--)\r
+ *p |= *p << 16;\r
+ }\r
\r
if (PicoWriteSound != NULL)\r
PicoWriteSound(length);\r