-#include "../../Pico/sound/ym2612.h"\r
+#include "../../../Pico/sound/ym2612.h"\r
+#include "../helix/pub/mp3dec.h"\r
\r
enum _940_job_t {\r
- JOB940_YM2612INIT = 1,\r
+ JOB940_INITALL = 1,\r
JOB940_YM2612RESETCHIP,\r
JOB940_YM2612UPDATEONE,\r
JOB940_PICOSTATELOAD,\r
+ JOB940_MP3DECODE,\r
JOB940_NUMJOBS\r
};\r
\r
\r
typedef struct\r
{\r
- YM2612 ym2612; /* current state of the emulated YM2612 */\r
- int mix_buffer[44100/50*2]; /* this is where the YM2612 samples will be mixed to */\r
- short mp3_buffer[2][1152*2]; /* buffer for mp3 decoder's output */\r
+ YM2612 ym2612; /* current state of the emulated YM2612 */\r
+ HMP3Decoder mp3dec; /* mp3 decoder's handle */\r
+ int mix_buffer[44100/50*2]; /* this is where the YM2612 samples will be mixed to */\r
+ short mp3_buffer[2][1152*2]; /* buffers for mp3 decoder's output */\r
} _940_data_t;\r
\r
\r
int writebuffsel; /* which write buffer to use (from 940 side) */\r
UINT16 writebuff0[2048]; /* list of writes to ym2612, 1024 for savestates, 1024 extra */\r
UINT16 writebuff1[2048];\r
+ int mp3_len; /* data len of loaded mp3 */\r
+ int mp3_offs; /* current playback offset (just after last decoded frame) */\r
+ int mp3_buffsel; /* which output buffer to decode to */\r
int vstarts[8]; /* debug: number of starts from each of 8 vectors */\r
int loopc; /* debug: main loop counter */\r
- int waitc; /* debug: wait loop counter */\r
+ int mp3_errors; /* debug: mp3 decoder's error counter */\r
+ int mp3_lasterr; /* debug: mp3 decoder's last error */\r
} _940_ctl_t;\r