{\r
int clock; /* master clock (Hz) */\r
int rate; /* sampling rate (Hz) */\r
- double freqbase; /* frequency base */\r
- UINT8 address; /* address register */\r
- UINT8 status; /* status flag */\r
+ double freqbase; /* 08 frequency base */\r
+ UINT8 address; /* 10 address register */\r
+ UINT8 status; /* 11 status flag */\r
UINT8 mode; /* mode CSM / 3SLOT */\r
UINT8 fn_h; /* freq latch */\r
int TA; /* timer a */\r
int TAC; /* timer a maxval */\r
int TAT; /* timer a ticker */\r
UINT8 TB; /* timer b */\r
+ UINT8 pad[3];\r
int TBC; /* timer b maxval */\r
int TBT; /* timer b ticker */\r
/* local time tables */\r
INT32 dacout;\r
\r
FM_OPN OPN; /* OPN state */\r
+\r
+ UINT32 slot_mask; /* active slot mask (performance hack) */\r
} YM2612;\r
#endif\r
\r
-\r
+#ifndef EXTERNAL_YM2612\r
+extern YM2612 ym2612;\r
+#endif\r
\r
void YM2612Init_(int baseclock, int rate);\r
void YM2612ResetChip_(void);\r
int YM2612UpdateOne_(int *buffer, int length, int stereo, int is_buf_empty);\r
\r
int YM2612Write_(unsigned int a, unsigned int v);\r
-unsigned char YM2612Read_(void);\r
+//unsigned char YM2612Read_(void);\r
\r
int YM2612PicoTick_(int n);\r
void YM2612PicoStateLoad_(void);\r
#define YM2612Init YM2612Init_\r
#define YM2612ResetChip YM2612ResetChip_\r
#define YM2612UpdateOne YM2612UpdateOne_\r
-#define YM2612Write YM2612Write_\r
-#define YM2612Read YM2612Read_\r
-#define YM2612PicoTick YM2612PicoTick_\r
#define YM2612PicoStateLoad YM2612PicoStateLoad_\r
#else\r
/* GP2X specific */\r
-#include "../../platform/gp2x/940ctl_ym2612.h"\r
+#include "../../platform/gp2x/940ctl.h"\r
extern int PicoOpt;\r
#define YM2612Init(baseclock,rate) { \\r
if (PicoOpt&0x200) YM2612Init_940(baseclock, rate); \\r
if (PicoOpt&0x200) YM2612ResetChip_940(); \\r
else YM2612ResetChip_(); \\r
}\r
-#define YM2612UpdateOne(buffer,length,stereo,is_buf_empty) { \\r
- if (PicoOpt&0x200) YM2612UpdateOne_940(buffer, length, stereo, is_buf_empty); \\r
- else YM2612UpdateOne_(buffer, length, stereo, is_buf_empty); \\r
-}\r
-#define YM2612Write(a,v) \\r
- (PicoOpt&0x200) ? YM2612Write_940(a, v) : YM2612Write_(a, v)\r
-#define YM2612Read() \\r
- (PicoOpt&0x200) ? YM2612Read_940() : YM2612Read_()\r
-#define YM2612PicoTick(n) \\r
- (PicoOpt&0x200) ? YM2612PicoTick_940(n) : YM2612PicoTick_(n)\r
+#define YM2612UpdateOne(buffer,length,stereo,is_buf_empty) \\r
+ (PicoOpt&0x200) ? YM2612UpdateOne_940(buffer, length, stereo, is_buf_empty) : \\r
+ YM2612UpdateOne_(buffer, length, stereo, is_buf_empty);\r
#define YM2612PicoStateLoad() { \\r
if (PicoOpt&0x200) YM2612PicoStateLoad_940(); \\r
else YM2612PicoStateLoad_(); \\r