Merge branch 'master' of ssh://github.com/86Box/86Box into version/4.1
# Conflicts: # CMakeLists.txt # debian/changelog # src/include_make/86box/version.h # src/unix/assets/86Box.spec # src/unix/assets/net.86box.86Box.metainfo.xml # vcpkg.json
This commit is contained in:
@@ -41,20 +41,23 @@
|
||||
#ifndef EMU_DEVICE_H
|
||||
#define EMU_DEVICE_H
|
||||
|
||||
#define CONFIG_END -1
|
||||
#define CONFIG_STRING 0
|
||||
#define CONFIG_INT 1
|
||||
#define CONFIG_BINARY 2
|
||||
#define CONFIG_SELECTION 3
|
||||
#define CONFIG_MIDI_OUT 4
|
||||
#define CONFIG_FNAME 5
|
||||
#define CONFIG_SPINNER 6
|
||||
#define CONFIG_HEX16 7
|
||||
#define CONFIG_HEX20 8
|
||||
#define CONFIG_MAC 9
|
||||
#define CONFIG_MIDI_IN 10
|
||||
#define CONFIG_BIOS 11
|
||||
#define CONFIG_SERPORT 12
|
||||
#define CONFIG_END -1
|
||||
#define CONFIG_STRING 0
|
||||
#define CONFIG_INT 1
|
||||
#define CONFIG_BINARY 2
|
||||
#define CONFIG_SELECTION 3
|
||||
#define CONFIG_MIDI_OUT 4
|
||||
#define CONFIG_FNAME 5
|
||||
#define CONFIG_SPINNER 6
|
||||
#define CONFIG_HEX16 7
|
||||
#define CONFIG_HEX20 8
|
||||
#define CONFIG_MAC 9
|
||||
#define CONFIG_MIDI_IN 10
|
||||
#define CONFIG_BIOS 11
|
||||
#define CONFIG_SERPORT 12
|
||||
|
||||
#define CONFIG_ONBOARD 256 /* only avaialble on the on-board variant */
|
||||
#define CONFIG_STANDALONE 257 /* not available on the on-board variant */
|
||||
|
||||
enum {
|
||||
DEVICE_PCJR = 2, /* requires an IBM PCjr */
|
||||
@@ -68,19 +71,23 @@ enum {
|
||||
DEVICE_MCA = 0x200, /* requires the MCA bus */
|
||||
DEVICE_HIL = 0x400, /* requires the HP HIL bus */
|
||||
DEVICE_EISA = 0x800, /* requires the EISA bus */
|
||||
DEVICE_OLB = 0x1000, /* requires the OPTi local bus */
|
||||
DEVICE_VLB = 0x2000, /* requires the VLB bus */
|
||||
DEVICE_PCI = 0x4000, /* requires the PCI bus */
|
||||
DEVICE_CARDBUS = 0x8000, /* requires the CardBus bus */
|
||||
DEVICE_USB = 0x10000, /* requires the USB bus */
|
||||
DEVICE_AGP = 0x20000, /* requires the AGP bus */
|
||||
DEVICE_AC97 = 0x40000, /* requires the AC'97 bus */
|
||||
DEVICE_COM = 0x80000, /* requires a serial port */
|
||||
DEVICE_LPT = 0x100000, /* requires a parallel port */
|
||||
DEVICE_KBC = 0x200000, /* is a keyboard controller */
|
||||
DEVICE_AT32 = 0x1000, /* requires the Mylex AT/32 local bus */
|
||||
DEVICE_OLB = 0x2000, /* requires the OPTi local bus */
|
||||
DEVICE_VLB = 0x4000, /* requires the VLB bus */
|
||||
DEVICE_PCI = 0x8000, /* requires the PCI bus */
|
||||
DEVICE_CARDBUS = 0x10000, /* requires the CardBus bus */
|
||||
DEVICE_USB = 0x20000, /* requires the USB bus */
|
||||
DEVICE_AGP = 0x40000, /* requires the AGP bus */
|
||||
DEVICE_AC97 = 0x80000, /* requires the AC'97 bus */
|
||||
DEVICE_COM = 0x100000, /* requires a serial port */
|
||||
DEVICE_LPT = 0x200000, /* requires a parallel port */
|
||||
DEVICE_KBC = 0x400000, /* is a keyboard controller */
|
||||
|
||||
DEVICE_ONBOARD = 0x20000000, /* is on-board */
|
||||
DEVICE_EXTPARAMS = 0x40000000, /* accepts extended parameters */
|
||||
|
||||
DEVICE_PIT = 0x80000000, /* device is a PIT */
|
||||
|
||||
DEVICE_ALL = 0xffffffff /* match all devices */
|
||||
};
|
||||
|
||||
@@ -183,6 +190,7 @@ extern void device_cadd_inst_ex(const device_t *dev, const device_t *cd, void *
|
||||
extern void device_cadd_inst_ex_parameters(const device_t *dev, const device_t *cd, void *priv, int inst, void *params);
|
||||
extern void device_close_all(void);
|
||||
extern void device_reset_all(uint32_t match_flags);
|
||||
extern void *device_find_first_priv(uint32_t match_flags);
|
||||
extern void *device_get_priv(const device_t *dev);
|
||||
extern int device_available(const device_t *dev);
|
||||
extern int device_poll(const device_t *dev);
|
||||
|
||||
@@ -197,8 +197,8 @@ low_iir(int c, int i, double NewSample)
|
||||
0.93726236021404663000
|
||||
};
|
||||
|
||||
static double y[2][2][NCoef + 1]; /* output samples */
|
||||
static double x[2][2][NCoef + 1]; /* input samples */
|
||||
static double y[3][2][NCoef + 1]; /* output samples */
|
||||
static double x[3][2][NCoef + 1]; /* input samples */
|
||||
int n;
|
||||
|
||||
/* shift the old samples */
|
||||
@@ -232,8 +232,8 @@ low_cut_iir(int c, int i, double NewSample)
|
||||
0.93726236021916731000
|
||||
};
|
||||
|
||||
static double y[2][2][NCoef + 1]; /* output samples */
|
||||
static double x[2][2][NCoef + 1]; /* input samples */
|
||||
static double y[3][2][NCoef + 1]; /* output samples */
|
||||
static double x[3][2][NCoef + 1]; /* input samples */
|
||||
int n;
|
||||
|
||||
/* shift the old samples */
|
||||
@@ -266,8 +266,8 @@ high_iir(int c, int i, double NewSample)
|
||||
-1.36640781670578510000,
|
||||
0.52352474706139873000
|
||||
};
|
||||
static double y[2][2][NCoef + 1]; /* output samples */
|
||||
static double x[2][2][NCoef + 1]; /* input samples */
|
||||
static double y[3][2][NCoef + 1]; /* output samples */
|
||||
static double x[3][2][NCoef + 1]; /* input samples */
|
||||
int n;
|
||||
|
||||
/* shift the old samples */
|
||||
@@ -300,8 +300,8 @@ high_cut_iir(int c, int i, double NewSample)
|
||||
-1.36640781666419950000,
|
||||
0.52352474703279628000
|
||||
};
|
||||
static double y[2][2][NCoef + 1]; /* output samples */
|
||||
static double x[2][2][NCoef + 1]; /* input samples */
|
||||
static double y[3][2][NCoef + 1]; /* output samples */
|
||||
static double x[3][2][NCoef + 1]; /* input samples */
|
||||
int n;
|
||||
|
||||
/* shift the old samples */
|
||||
@@ -334,8 +334,8 @@ deemph_iir(int i, double NewSample)
|
||||
-1.05429146278569141337,
|
||||
0.26412280202756849290
|
||||
};
|
||||
static double y[2][NCoef + 1]; /* output samples */
|
||||
static double x[2][NCoef + 1]; /* input samples */
|
||||
static double y[3][NCoef + 1]; /* output samples */
|
||||
static double x[3][NCoef + 1]; /* input samples */
|
||||
int n;
|
||||
|
||||
/* shift the old samples */
|
||||
@@ -372,8 +372,8 @@ sb_iir(int c, int i, double NewSample)
|
||||
0.55326988968868285000
|
||||
};
|
||||
|
||||
static double y[2][2][NCoef + 1]; /* output samples */
|
||||
static double x[2][2][NCoef + 1]; /* input samples */
|
||||
static double y[3][2][NCoef + 1]; /* output samples */
|
||||
static double x[3][2][NCoef + 1]; /* input samples */
|
||||
int n;
|
||||
|
||||
/* shift the old samples */
|
||||
@@ -395,13 +395,13 @@ sb_iir(int c, int i, double NewSample)
|
||||
#define NCoef 1
|
||||
#define SB16_NCoef 51
|
||||
|
||||
extern double low_fir_sb16_coef[2][SB16_NCoef];
|
||||
extern double low_fir_sb16_coef[3][SB16_NCoef];
|
||||
|
||||
static inline double
|
||||
low_fir_sb16(int c, int i, double NewSample)
|
||||
{
|
||||
static double x[2][2][SB16_NCoef + 1]; // input samples
|
||||
static int pos[2] = { 0, 0 };
|
||||
static double x[3][2][SB16_NCoef + 1]; // input samples
|
||||
static int pos[3] = { 0, 0 };
|
||||
double out = 0.0;
|
||||
int n;
|
||||
|
||||
|
||||
@@ -149,8 +149,8 @@ extern uint8_t ide_read_alt_status(uint16_t addr, void *priv);
|
||||
extern uint16_t ide_readw(uint16_t addr, void *priv);
|
||||
|
||||
extern void ide_set_bus_master(int board,
|
||||
int (*dma)(int channel, uint8_t *data, int transfer_length, int out, void *priv),
|
||||
void (*set_irq)(int channel, void *priv), void *priv);
|
||||
int (*dma)(uint8_t *data, int transfer_length, int out, void *priv),
|
||||
void (*set_irq)(uint8_t status, void *priv), void *priv);
|
||||
|
||||
extern void win_cdrom_eject(uint8_t id);
|
||||
extern void win_cdrom_reload(uint8_t id);
|
||||
@@ -180,10 +180,6 @@ extern void ide_set_board_callback(uint8_t board, double callback);
|
||||
extern void ide_padstr(char *str, const char *src, int len);
|
||||
extern void ide_padstr8(uint8_t *buf, int buf_size, const char *src);
|
||||
|
||||
extern int (*ide_bus_master_dma)(int channel, uint8_t *data, int transfer_length, int out, void *priv);
|
||||
extern void (*ide_bus_master_set_irq)(int channel, void *priv);
|
||||
extern void *ide_bus_master_priv[2];
|
||||
|
||||
extern uint8_t ide_read_ali_75(void);
|
||||
extern uint8_t ide_read_ali_76(void);
|
||||
|
||||
|
||||
@@ -20,52 +20,62 @@
|
||||
#ifndef EMU_HDC_IDE_SFF8038I_H
|
||||
#define EMU_HDC_IDE_SFF8038I_H
|
||||
|
||||
typedef struct sff8038i_t {
|
||||
enum
|
||||
{
|
||||
IRQ_MODE_LEGACY = 0,
|
||||
IRQ_MODE_PCI_IRQ_PIN,
|
||||
IRQ_MODE_PCI_IRQ_LINE,
|
||||
IRQ_MODE_ALI_ALADDIN,
|
||||
IRQ_MODE_MIRQ_0,
|
||||
IRQ_MODE_MIRQ_1,
|
||||
IRQ_MODE_MIRQ_2,
|
||||
IRQ_MODE_MIRQ_3,
|
||||
IRQ_MODE_SIS_551X
|
||||
};
|
||||
|
||||
typedef struct sff8038i_t
|
||||
{
|
||||
uint8_t command;
|
||||
uint8_t status;
|
||||
uint8_t ptr0;
|
||||
uint8_t enabled;
|
||||
uint8_t dma_mode;
|
||||
uint8_t irq_state;
|
||||
uint8_t pad;
|
||||
uint8_t pad0;
|
||||
uint8_t channel;
|
||||
uint8_t irq_line;
|
||||
uint16_t base;
|
||||
uint16_t pad1;
|
||||
uint16_t pad;
|
||||
uint32_t ptr;
|
||||
uint32_t ptr_cur;
|
||||
uint32_t addr;
|
||||
int count;
|
||||
int eot;
|
||||
int slot;
|
||||
int irq_mode[2];
|
||||
int irq_level[2];
|
||||
int irq_mode;
|
||||
int irq_level;
|
||||
int irq_pin;
|
||||
int irq_line;
|
||||
int pci_irq_line;
|
||||
} sff8038i_t;
|
||||
|
||||
extern const device_t sff8038i_device;
|
||||
|
||||
extern void sff_bus_master_handler(sff8038i_t *dev, int enabled, uint16_t base);
|
||||
|
||||
extern int sff_bus_master_dma_read(int channel, uint8_t *data, int transfer_length, void *priv);
|
||||
extern int sff_bus_master_dma_write(int channel, uint8_t *data, int transfer_length, void *priv);
|
||||
|
||||
extern void sff_bus_master_set_irq(int channel, void *priv);
|
||||
|
||||
extern int sff_bus_master_dma(int channel, uint8_t *data, int transfer_length, int out, void *priv);
|
||||
extern void sff_bus_master_set_irq(uint8_t status, void *priv);
|
||||
extern int sff_bus_master_dma(uint8_t *data, int transfer_length, int out, void *priv);
|
||||
|
||||
extern void sff_bus_master_write(uint16_t port, uint8_t val, void *priv);
|
||||
extern uint8_t sff_bus_master_read(uint16_t port, void *priv);
|
||||
|
||||
extern void sff_bus_master_reset(sff8038i_t *dev, uint16_t old_base);
|
||||
extern void sff_bus_master_reset(sff8038i_t *dev);
|
||||
|
||||
extern void sff_set_slot(sff8038i_t *dev, int slot);
|
||||
|
||||
extern void sff_set_irq_line(sff8038i_t *dev, int irq_line);
|
||||
|
||||
extern void sff_set_irq_mode(sff8038i_t *dev, int channel, int irq_mode);
|
||||
extern void sff_set_irq_mode(sff8038i_t *dev, int irq_mode);
|
||||
extern void sff_set_irq_pin(sff8038i_t *dev, int irq_pin);
|
||||
|
||||
extern void sff_set_irq_level(sff8038i_t *dev, int channel, int irq_level);
|
||||
extern void sff_set_irq_level(sff8038i_t *dev, int irq_level);
|
||||
|
||||
#endif /*EMU_HDC_IDE_SFF8038I_H*/
|
||||
|
||||
@@ -39,14 +39,15 @@
|
||||
#define MACHINE_BUS_PS2 (MACHINE_BUS_PS2_LATCH | MACHINE_BUS_PS2_PORTS)
|
||||
#define MACHINE_BUS_HIL 0x00000400 /* system has HP HIL keyboard and mouse ports */
|
||||
#define MACHINE_BUS_EISA 0x00000800 /* sys has EISA bus */
|
||||
#define MACHINE_BUS_OLB 0x00001000 /* sys has OPTi local bus */
|
||||
#define MACHINE_BUS_VLB 0x00002000 /* sys has VL bus */
|
||||
#define MACHINE_BUS_MCA 0x00004000 /* sys has MCA bus */
|
||||
#define MACHINE_BUS_PCI 0x00008000 /* sys has PCI bus */
|
||||
#define MACHINE_BUS_CARDBUS 0x00010000 /* sys has CardBus bus */
|
||||
#define MACHINE_BUS_USB 0x00020000 /* sys has USB bus */
|
||||
#define MACHINE_BUS_AGP 0x00040000 /* sys has AGP bus */
|
||||
#define MACHINE_BUS_AC97 0x00080000 /* sys has AC97 bus (ACR/AMR/CNR slot) */
|
||||
#define MACHINE_BUS_AT32 0x00001000 /* sys has Mylex AT/32 local bus */
|
||||
#define MACHINE_BUS_OLB 0x00002000 /* sys has OPTi local bus */
|
||||
#define MACHINE_BUS_VLB 0x00004000 /* sys has VL bus */
|
||||
#define MACHINE_BUS_MCA 0x00008000 /* sys has MCA bus */
|
||||
#define MACHINE_BUS_PCI 0x00010000 /* sys has PCI bus */
|
||||
#define MACHINE_BUS_CARDBUS 0x00020000 /* sys has CardBus bus */
|
||||
#define MACHINE_BUS_USB 0x00040000 /* sys has USB bus */
|
||||
#define MACHINE_BUS_AGP 0x00080000 /* sys has AGP bus */
|
||||
#define MACHINE_BUS_AC97 0x00100000 /* sys has AC97 bus (ACR/AMR/CNR slot) */
|
||||
/* Aliases. */
|
||||
#define MACHINE_CASSETTE (MACHINE_BUS_CASSETTE) /* sys has cassette port */
|
||||
#define MACHINE_CARTRIDGE (MACHINE_BUS_CARTRIDGE) /* sys has two cartridge bays */
|
||||
|
||||
@@ -50,7 +50,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
extern int mouse_type;
|
||||
extern int mouse_mode; /* 1 = Absolute, 0 = Relative */
|
||||
extern int mouse_input_mode; /* 1 = Absolute, 0 = Relative */
|
||||
extern int mouse_timed; /* 1 = Timed, 0 = Constant */
|
||||
extern int mouse_tablet_in_proximity;
|
||||
extern double mouse_x_abs;
|
||||
|
||||
@@ -147,10 +147,14 @@
|
||||
|
||||
#define pci_set_mirq(mirq, level, irq_state) \
|
||||
pci_irq(PCI_MIRQ_BASE | (mirq), 0, level, 1, irq_state)
|
||||
#define pci_set_dirq(irq, irq_state) \
|
||||
pci_irq(PCI_DIRQ_BASE | (irq), 0, 1, 1, irq_state)
|
||||
#define pci_set_irq(slot, pci_int, irq_state) \
|
||||
pci_irq(slot, pci_int, 0, 1, irq_state)
|
||||
#define pci_clear_mirq(mirq, level, irq_state) \
|
||||
pci_irq(PCI_MIRQ_BASE | (mirq), 0, level, 0, irq_state)
|
||||
#define pci_clear_dirq(dirq, irq_state) \
|
||||
pci_irq(PCI_DIRQ_BASE | (irq), 0, 1, 0, irq_state)
|
||||
#define pci_clear_irq(slot, pci_int, irq_state) \
|
||||
pci_irq(slot, pci_int, 0, 0, irq_state)
|
||||
|
||||
@@ -216,7 +220,9 @@ extern uint32_t pci_size;
|
||||
extern void pci_set_irq_routing(int pci_int, int irq);
|
||||
extern void pci_set_irq_level(int pci_int, int level);
|
||||
extern void pci_enable_mirq(int mirq);
|
||||
extern void pci_set_mirq_routing(int mirq, int irq);
|
||||
extern void pci_set_mirq_routing(int mirq, uint8_t irq);
|
||||
extern uint8_t pci_get_mirq_level(int mirq);
|
||||
extern void pci_set_mirq_level(int mirq, uint8_t irq);
|
||||
|
||||
/* PCI raise IRQ: the first parameter is slot if < PCI_MIRQ_BASE, MIRQ if >= PCI_MIRQ_BASE
|
||||
and < PCI_DIRQ_BASE, and direct IRQ line if >= PCI_DIRQ_BASE (RichardG's
|
||||
|
||||
@@ -81,9 +81,11 @@ extern void pic_init_pcjr(void);
|
||||
extern void pic2_init(void);
|
||||
extern void pic_reset(void);
|
||||
|
||||
extern int picint_is_level(int irq);
|
||||
extern void picint_common(uint16_t num, int level, int set, uint8_t *irq_state);
|
||||
extern int picinterrupt(void);
|
||||
extern uint8_t pic_read_icw(uint8_t pic_id, uint8_t icw);
|
||||
extern uint8_t pic_read_ocw(uint8_t pic_id, uint8_t ocw);
|
||||
extern int picint_is_level(int irq);
|
||||
extern void picint_common(uint16_t num, int level, int set, uint8_t *irq_state);
|
||||
extern int picinterrupt(void);
|
||||
|
||||
#define PIC_IRQ_EDGE 0
|
||||
#define PIC_IRQ_LEVEL 1
|
||||
|
||||
@@ -131,6 +131,8 @@ extern void pit_nmi_timer_ps2(int new_out, int old_out);
|
||||
extern void pit_set_clock(uint32_t clock);
|
||||
extern void pit_handler(int set, uint16_t base, int size, void *priv);
|
||||
|
||||
extern uint8_t pit_read_reg(void *priv, uint8_t reg);
|
||||
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t i8253_device;
|
||||
extern const device_t i8254_device;
|
||||
|
||||
@@ -69,6 +69,8 @@ typedef struct pitf_t {
|
||||
uint8_t ctrl;
|
||||
} pitf_t;
|
||||
|
||||
extern uint8_t pitf_read_reg(void *priv, uint8_t reg);
|
||||
|
||||
extern const pit_intf_t pit_fast_intf;
|
||||
|
||||
#ifdef EMU_DEVICE_H
|
||||
|
||||
@@ -72,6 +72,7 @@ extern const device_t sio_detect_device;
|
||||
#endif
|
||||
extern const device_t um8669f_device;
|
||||
extern const device_t via_vt82c686_sio_device;
|
||||
extern const device_t w83787f_88h_device;
|
||||
extern const device_t w83787f_device;
|
||||
extern const device_t w83787f_ide_device;
|
||||
extern const device_t w83787f_ide_en_device;
|
||||
|
||||
@@ -25,15 +25,18 @@
|
||||
#include <86box/snd_opl.h>
|
||||
#include <86box/snd_sb_dsp.h>
|
||||
|
||||
#define SADLIB 1 /* No DSP */
|
||||
#define SB1 2 /* DSP v1.05 */
|
||||
#define SB15 3 /* DSP v2.00 */
|
||||
#define SB2 4 /* DSP v2.01 - needed for high-speed DMA */
|
||||
#define SBPRO 5 /* DSP v3.00 */
|
||||
#define SBPRO2 6 /* DSP v3.02 + OPL3 */
|
||||
#define SB16 7 /* DSP v4.05 + OPL3 */
|
||||
#define SBAWE32 8 /* DSP v4.13 + OPL3 */
|
||||
#define SBAWE64 9 /* DSP v4.16 + OPL3 */
|
||||
enum {
|
||||
SADLIB = 1, /* No DSP */
|
||||
SB1, /* DSP v1.05 */
|
||||
SB15, /* DSP v2.00 */
|
||||
SB2, /* DSP v2.01 - needed for high-speed DMA */
|
||||
SBPRO, /* DSP v3.00 */
|
||||
SBPRO2, /* DSP v3.02 + OPL3 */
|
||||
SB16, /* DSP v4.05 + OPL3 */
|
||||
SBAWE32, /* DSP v4.12 + OPL3 */
|
||||
SBAWE32PNP, /* DSP v4.13 + OPL3 */
|
||||
SBAWE64 /* DSP v4.16 + OPL3 */
|
||||
};
|
||||
|
||||
/* SB 2.0 CD version */
|
||||
typedef struct sb_ct1335_mixer_t {
|
||||
@@ -141,6 +144,7 @@ typedef struct sb_t {
|
||||
void *gameport;
|
||||
|
||||
int pos;
|
||||
int pnp;
|
||||
|
||||
uint8_t pos_regs[8];
|
||||
uint8_t pnp_rom[512];
|
||||
|
||||
@@ -33,6 +33,10 @@ typedef struct sb_dsp_t {
|
||||
int sb_16_autolen;
|
||||
int sb_16_output;
|
||||
int sb_16_dmanum;
|
||||
int sb_16_8_dmanum;
|
||||
int sb_16_dma_enabled;
|
||||
int sb_16_dma_supported;
|
||||
int sb_16_dma_translate;
|
||||
int sb_pausetime;
|
||||
int (*dma_readb)(void *priv);
|
||||
int (*dma_readw)(void *priv);
|
||||
@@ -132,35 +136,39 @@ typedef struct sb_dsp_t {
|
||||
mpu_t *mpu;
|
||||
} sb_dsp_t;
|
||||
|
||||
void sb_dsp_input_msg(void *priv, uint8_t *msg, uint32_t len);
|
||||
extern void sb_dsp_input_msg(void *priv, uint8_t *msg, uint32_t len);
|
||||
|
||||
int sb_dsp_input_sysex(void *priv, uint8_t *buffer, uint32_t len, int abort);
|
||||
extern int sb_dsp_input_sysex(void *priv, uint8_t *buffer, uint32_t len, int abort);
|
||||
|
||||
void sb_dsp_set_mpu(sb_dsp_t *dsp, mpu_t *src_mpu);
|
||||
extern void sb_dsp_set_mpu(sb_dsp_t *dsp, mpu_t *src_mpu);
|
||||
|
||||
void sb_dsp_init(sb_dsp_t *dsp, int type, int subtype, void *parent);
|
||||
void sb_dsp_close(sb_dsp_t *dsp);
|
||||
extern void sb_dsp_init(sb_dsp_t *dsp, int type, int subtype, void *parent);
|
||||
extern void sb_dsp_close(sb_dsp_t *dsp);
|
||||
|
||||
void sb_dsp_setirq(sb_dsp_t *dsp, int irq);
|
||||
void sb_dsp_setdma8(sb_dsp_t *dsp, int dma);
|
||||
void sb_dsp_setdma16(sb_dsp_t *dsp, int dma);
|
||||
void sb_dsp_setaddr(sb_dsp_t *dsp, uint16_t addr);
|
||||
extern void sb_dsp_setirq(sb_dsp_t *dsp, int irq);
|
||||
extern void sb_dsp_setdma8(sb_dsp_t *dsp, int dma);
|
||||
extern void sb_dsp_setdma16(sb_dsp_t *dsp, int dma);
|
||||
extern void sb_dsp_setdma16_8(sb_dsp_t *dsp, int dma);
|
||||
extern void sb_dsp_setdma16_enabled(sb_dsp_t *dsp, int enabled);
|
||||
extern void sb_dsp_setdma16_supported(sb_dsp_t *dsp, int supported);
|
||||
extern void sb_dsp_setdma16_translate(sb_dsp_t *dsp, int translate);
|
||||
extern void sb_dsp_setaddr(sb_dsp_t *dsp, uint16_t addr);
|
||||
|
||||
void sb_dsp_speed_changed(sb_dsp_t *dsp);
|
||||
extern void sb_dsp_speed_changed(sb_dsp_t *dsp);
|
||||
|
||||
void sb_dsp_poll(sb_dsp_t *dsp, int16_t *l, int16_t *r);
|
||||
extern void sb_dsp_poll(sb_dsp_t *dsp, int16_t *l, int16_t *r);
|
||||
|
||||
void sb_dsp_set_stereo(sb_dsp_t *dsp, int stereo);
|
||||
extern void sb_dsp_set_stereo(sb_dsp_t *dsp, int stereo);
|
||||
|
||||
void sb_dsp_update(sb_dsp_t *dsp);
|
||||
void sb_update_mask(sb_dsp_t *dsp, int irqm8, int irqm16, int irqm401);
|
||||
extern void sb_dsp_update(sb_dsp_t *dsp);
|
||||
extern void sb_update_mask(sb_dsp_t *dsp, int irqm8, int irqm16, int irqm401);
|
||||
|
||||
void sb_dsp_irq_attach(sb_dsp_t *dsp, void (*irq_update)(void *priv, int set), void *priv);
|
||||
void sb_dsp_dma_attach(sb_dsp_t *dsp,
|
||||
int (*dma_readb)(void *priv),
|
||||
int (*dma_readw)(void *priv),
|
||||
int (*dma_writeb)(void *priv, uint8_t val),
|
||||
int (*dma_writew)(void *priv, uint16_t val),
|
||||
void *priv);
|
||||
extern void sb_dsp_irq_attach(sb_dsp_t *dsp, void (*irq_update)(void *priv, int set), void *priv);
|
||||
extern void sb_dsp_dma_attach(sb_dsp_t *dsp,
|
||||
int (*dma_readb)(void *priv),
|
||||
int (*dma_readw)(void *priv),
|
||||
int (*dma_writeb)(void *priv, uint8_t val),
|
||||
int (*dma_writew)(void *priv, uint16_t val),
|
||||
void *priv);
|
||||
|
||||
#endif /* SOUND_SND_SB_DSP_H */
|
||||
|
||||
@@ -52,9 +52,16 @@ extern int sound_card_current[SOUND_CARD_MAX];
|
||||
extern void sound_add_handler(void (*get_buffer)(int32_t *buffer,
|
||||
int len, void *priv),
|
||||
void *priv);
|
||||
|
||||
extern void sound_set_cd_audio_filter(void (*filter)(int channel,
|
||||
double *buffer, void *priv),
|
||||
void *priv);
|
||||
extern void sound_set_pc_speaker_filter(void (*filter)(int channel,
|
||||
double *buffer, void *priv),
|
||||
void *priv);
|
||||
|
||||
extern void (*filter_pc_speaker)(int channel, double *buffer, void *priv);
|
||||
extern void *filter_pc_speaker_p;
|
||||
|
||||
extern int sound_card_available(int card);
|
||||
#ifdef EMU_DEVICE_H
|
||||
|
||||
@@ -187,6 +187,8 @@ extern int video_fullscreen_scale;
|
||||
extern int video_fullscreen_first;
|
||||
extern uint8_t fontdat[2048][8];
|
||||
extern uint8_t fontdatm[2048][16];
|
||||
extern uint8_t fontdat2[2048][8];
|
||||
extern uint8_t fontdatm2[2048][16];
|
||||
extern uint8_t fontdatw[512][32];
|
||||
extern uint8_t fontdat8x12[256][16];
|
||||
extern uint8_t fontdat12x18[256][36];
|
||||
|
||||
Reference in New Issue
Block a user