1 #ifndef __2610INTF_H__ 2 #define __2610INTF_H__ 3 4 #include "fm.h" 5 #ifdef BUILD_YM2610 6 void YM2610UpdateRequest(int chip); 7 #endif 8 9 #define MAX_2610 (2) 10 11 #ifndef VOL_YM3012 12 /* #define YM3014_VOL(Vol,Pan) VOL_YM3012((Vol)/2,Pan,(Vol)/2,Pan) */ 13 #define YM3012_VOL(LVol,LPan,RVol,RPan) (MIXER(LVol,LPan)|(MIXER(RVol,RPan) << 16)) 14 #endif 15 16 struct YM2610interface 17 { 18 int num; /* total number of 8910 in the machine */ 19 int baseclock; 20 int volumeSSG[MAX_8910]; /* for SSG sound */ 21 mem_read_handler portAread[MAX_8910]; 22 mem_read_handler portBread[MAX_8910]; 23 mem_write_handler portAwrite[MAX_8910]; 24 mem_write_handler portBwrite[MAX_8910]; 25 void ( *handler[MAX_8910] )( int irq ); /* IRQ handler for the YM2610 */ 26 int pcmromb[MAX_2610]; /* Delta-T rom region */ 27 int pcmroma[MAX_2610]; /* ADPCM rom region */ 28 int volumeFM[MAX_2610]; /* use YM3012_VOL macro */ 29 }; 30 31 /************************************************/ 32 /* Sound Hardware Start */ 33 /************************************************/ 34 int YM2610_sh_start(const struct MachineSound *msound); 35 int YM2610B_sh_start(const struct MachineSound *msound); 36 37 /************************************************/ 38 /* Sound Hardware Stop */ 39 /************************************************/ 40 void YM2610_sh_stop(void); 41 42 void YM2610_sh_reset(void); 43 44 /************************************************/ 45 /* Chip 0 functions */ 46 /************************************************/ 47 READ_HANDLER( YM2610_status_port_0_A_r ); 48 READ16_HANDLER( YM2610_status_port_0_A_lsb_r ); 49 READ_HANDLER( YM2610_status_port_0_B_r ); 50 READ16_HANDLER( YM2610_status_port_0_B_lsb_r ); 51 READ_HANDLER( YM2610_read_port_0_r ); 52 READ16_HANDLER( YM2610_read_port_0_lsb_r ); 53 WRITE_HANDLER( YM2610_control_port_0_A_w ); 54 WRITE16_HANDLER( YM2610_control_port_0_A_lsb_w ); 55 WRITE_HANDLER( YM2610_control_port_0_B_w ); 56 WRITE16_HANDLER( YM2610_control_port_0_B_lsb_w ); 57 WRITE_HANDLER( YM2610_data_port_0_A_w ); 58 WRITE16_HANDLER( YM2610_data_port_0_A_lsb_w ); 59 WRITE_HANDLER( YM2610_data_port_0_B_w ); 60 WRITE16_HANDLER( YM2610_data_port_0_B_lsb_w ); 61 62 /************************************************/ 63 /* Chip 1 functions */ 64 /************************************************/ 65 READ_HANDLER( YM2610_status_port_1_A_r ); 66 READ16_HANDLER( YM2610_status_port_1_A_lsb_r ); 67 READ_HANDLER( YM2610_status_port_1_B_r ); 68 READ16_HANDLER( YM2610_status_port_1_B_lsb_r ); 69 READ_HANDLER( YM2610_read_port_1_r ); 70 READ16_HANDLER( YM2610_read_port_1_lsb_r ); 71 WRITE_HANDLER( YM2610_control_port_1_A_w ); 72 WRITE16_HANDLER( YM2610_control_port_1_A_lsb_w ); 73 WRITE_HANDLER( YM2610_control_port_1_B_w ); 74 WRITE16_HANDLER( YM2610_control_port_1_B_lsb_w ); 75 WRITE_HANDLER( YM2610_data_port_1_A_w ); 76 WRITE16_HANDLER( YM2610_data_port_1_A_lsb_w ); 77 WRITE_HANDLER( YM2610_data_port_1_B_w ); 78 WRITE16_HANDLER( YM2610_data_port_1_B_lsb_w ); 79 80 #endif 81 /**************** end of file ****************/ 82