Added Aztech Sound Galaxy Pro 16 AB (Washington, AZ2316A) and Aztech Sound
Galaxy Nova 16 Extra (Clinton, AZ1605) emulation. Patch from EluanCM. Clinton is currently marked as DEVICE_NOT_WORKING due to issues with DOS drivers.
This commit is contained in:
parent
47e557e9ce
commit
1181b13c2d
17 changed files with 2051 additions and 179 deletions
114
src/sound_sb.h
114
src/sound_sb.h
|
|
@ -1,3 +1,10 @@
|
|||
#ifndef SOUND_SB_H
|
||||
#define SOUND_SB_H
|
||||
|
||||
#include "sound_emu8k.h"
|
||||
#include "sound_mpu401_uart.h"
|
||||
#include "sound_sb_dsp.h"
|
||||
|
||||
extern device_t sb_1_device;
|
||||
extern device_t sb_15_device;
|
||||
extern device_t sb_mcv_device;
|
||||
|
|
@ -7,3 +14,110 @@ extern device_t sb_pro_v2_device;
|
|||
extern device_t sb_pro_mcv_device;
|
||||
extern device_t sb_16_device;
|
||||
extern device_t sb_awe32_device;
|
||||
|
||||
/* SB 2.0 CD version */
|
||||
typedef struct sb_ct1335_mixer_t
|
||||
{
|
||||
int32_t master;
|
||||
int32_t voice;
|
||||
int32_t fm;
|
||||
int32_t cd;
|
||||
|
||||
uint8_t index;
|
||||
uint8_t regs[256];
|
||||
} sb_ct1335_mixer_t;
|
||||
/* SB PRO */
|
||||
typedef struct sb_ct1345_mixer_t
|
||||
{
|
||||
int32_t master_l, master_r;
|
||||
int32_t voice_l, voice_r;
|
||||
int32_t fm_l, fm_r;
|
||||
int32_t cd_l, cd_r;
|
||||
int32_t line_l, line_r;
|
||||
int32_t mic;
|
||||
/*see sb_ct1745_mixer for values for input selector*/
|
||||
int32_t input_selector;
|
||||
|
||||
int input_filter;
|
||||
int in_filter_freq;
|
||||
int output_filter;
|
||||
|
||||
int stereo;
|
||||
int stereo_isleft;
|
||||
|
||||
uint8_t index;
|
||||
uint8_t regs[256];
|
||||
|
||||
} sb_ct1345_mixer_t;
|
||||
/* SB16 and AWE32 */
|
||||
typedef struct sb_ct1745_mixer_t
|
||||
{
|
||||
int32_t master_l, master_r;
|
||||
int32_t voice_l, voice_r;
|
||||
int32_t fm_l, fm_r;
|
||||
int32_t cd_l, cd_r;
|
||||
int32_t line_l, line_r;
|
||||
int32_t mic;
|
||||
int32_t speaker;
|
||||
|
||||
int bass_l, bass_r;
|
||||
int treble_l, treble_r;
|
||||
|
||||
int output_selector;
|
||||
#define OUTPUT_MIC 1
|
||||
#define OUTPUT_CD_R 2
|
||||
#define OUTPUT_CD_L 4
|
||||
#define OUTPUT_LINE_R 8
|
||||
#define OUTPUT_LINE_L 16
|
||||
|
||||
int input_selector_left;
|
||||
int input_selector_right;
|
||||
#define INPUT_MIC 1
|
||||
#define INPUT_CD_R 2
|
||||
#define INPUT_CD_L 4
|
||||
#define INPUT_LINE_R 8
|
||||
#define INPUT_LINE_L 16
|
||||
#define INPUT_MIDI_R 32
|
||||
#define INPUT_MIDI_L 64
|
||||
|
||||
int mic_agc;
|
||||
|
||||
int32_t input_gain_L;
|
||||
int32_t input_gain_R;
|
||||
int32_t output_gain_L;
|
||||
int32_t output_gain_R;
|
||||
|
||||
uint8_t index;
|
||||
uint8_t regs[256];
|
||||
} sb_ct1745_mixer_t;
|
||||
|
||||
typedef struct sb_t
|
||||
{
|
||||
opl_t opl;
|
||||
sb_dsp_t dsp;
|
||||
union {
|
||||
sb_ct1335_mixer_t mixer_sb2;
|
||||
sb_ct1345_mixer_t mixer_sbpro;
|
||||
sb_ct1745_mixer_t mixer_sb16;
|
||||
};
|
||||
mpu401_uart_t mpu;
|
||||
emu8k_t emu8k;
|
||||
|
||||
int pos;
|
||||
|
||||
uint8_t pos_regs[8];
|
||||
|
||||
int opl_emu;
|
||||
} sb_t;
|
||||
|
||||
// exported for clone cards
|
||||
void sb_get_buffer_sbpro(int32_t *buffer, int len, void *p);
|
||||
void sb_ct1345_mixer_write(uint16_t addr, uint8_t val, void *p);
|
||||
uint8_t sb_ct1345_mixer_read(uint16_t addr, void *p);
|
||||
void sb_ct1345_mixer_reset(sb_t* sb);
|
||||
|
||||
void sb_close(void *p);
|
||||
void sb_speed_changed(void *p);
|
||||
void sb_add_status_info(char *s, int max_len, void *p);
|
||||
|
||||
#endif /* SOUND_SB_H */
|
||||
|
|
|
|||
Loading…
Reference in a new issue