Sound cleanups, part 2.

This commit is contained in:
waltje
2018-04-08 21:19:10 -04:00
parent fdf80188ed
commit aa7db63e86
14 changed files with 1397 additions and 1307 deletions

View File

@@ -12,7 +12,7 @@
* it on Windows XP, and possibly also Vista. Use the
* -DANSI_CFG for use on these systems.
*
* Version: @(#)config.c 1.0.11 2018/04/08
* Version: @(#)config.c 1.0.12 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -69,9 +69,6 @@
#include "network/network.h"
#include "sound/sound.h"
#include "sound/midi.h"
#include "sound/snd_dbopl.h"
#include "sound/snd_mpu401.h"
#include "sound/snd_opl.h"
#include "sound/sound.h"
#include "video/video.h"
#include "plat.h"
@@ -627,8 +624,6 @@ load_sound(void)
mpu401_standalone_enable = !!config_get_int(cat, "mpu401_standalone", 0);
GAMEBLASTER = !!config_get_int(cat, "gameblaster", 0);
memset(temp, '\0', sizeof(temp));
p = config_get_string(cat, "opl3_type", "dbopl");
strcpy(temp, p);
@@ -1620,11 +1615,6 @@ save_sound(void)
else
config_set_int(cat, "mpu401_standalone", mpu401_standalone_enable);
if (GAMEBLASTER == 0)
config_delete_var(cat, "gameblaster");
else
config_set_int(cat, "gameblaster", GAMEBLASTER);
if (opl3_type == 0)
config_delete_var(cat, "opl3_type");
else

View File

@@ -8,7 +8,7 @@
*
* Main include file for the application.
*
* Version: @(#)emu.h 1.0.15 2018/04/08
* Version: @(#)emu.h 1.0.16 2018/04/08
*
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
*
@@ -115,7 +115,8 @@ extern int romdos_enabled; /* (C) enable ROM DOS */
#endif
extern int hdc_type; /* (C) HDC type */
extern int sound_is_float, /* (C) sound uses FP values */
GAMEBLASTER, /* (C) sound option */
mpu401_standalone_enable, /* (C) sound option */
opl3_type, /* (C) sound option */
voodoo_enabled; /* (C) video option */
extern int joystick_type; /* (C) joystick type */
extern int mem_size; /* (C) memory size */

View File

@@ -8,7 +8,7 @@
*
* Main emulator module where most things are controlled.
*
* Version: @(#)pc.c 1.0.21 2018/04/08
* Version: @(#)pc.c 1.0.22 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -130,7 +130,8 @@ int romdos_enabled = 0; /* (C) enable ROM DOS */
#endif
int hdc_type = 0; /* (C) HDC type */
int sound_is_float = 1, /* (C) sound uses FP values */
GAMEBLASTER = 0, /* (C) sound option */
mpu401_standalone_enable = 0, /* (C) sound option */
opl3_type = 0, /* (C) sound option */
voodoo_enabled = 0; /* (C) video option */
int joystick_type = 0; /* (C) joystick type */
int mem_size = 0; /* (C) memory size */

View File

@@ -6,9 +6,9 @@
*
* This file is part of the VARCem Project.
*
* Implementation of the Create CMS/GameBlaster sound device.
* Implementation of the Creative CMS/GameBlaster sound device.
*
* Version: @(#)snd_cms.c 1.0.3 2018/04/08
* Version: @(#)snd_cms.c 1.0.4 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -47,194 +47,228 @@
#include "sound.h"
#define MASTER_CLOCK 7159090
#define MASTER_CLOCK 7159090
typedef struct cms_t
{
int addrs[2];
uint8_t regs[2][32];
uint16_t latch[2][6];
int freq[2][6];
float count[2][6];
int vol[2][6][2];
int stat[2][6];
uint16_t noise[2][2];
uint16_t noisefreq[2][2];
int noisecount[2][2];
int noisetype[2][2];
typedef struct {
int addrs[2];
uint8_t regs[2][32];
uint16_t latch[2][6];
int freq[2][6];
float count[2][6];
int vol[2][6][2];
int stat[2][6];
uint16_t noise[2][2];
uint16_t noisefreq[2][2];
int noisecount[2][2];
int noisetype[2][2];
uint8_t latched_data;
uint8_t latched_data;
int16_t buffer[SOUNDBUFLEN * 2];
int pos;
int pos;
int16_t buffer[SOUNDBUFLEN * 2];
} cms_t;
void cms_update(cms_t *cms)
{
for (; cms->pos < sound_pos_global; cms->pos++)
{
int c, d;
int16_t out_l = 0, out_r = 0;
for (c = 0; c < 4; c++)
{
switch (cms->noisetype[c >> 1][c & 1])
{
case 0: cms->noisefreq[c >> 1][c & 1] = MASTER_CLOCK/256; break;
case 1: cms->noisefreq[c >> 1][c & 1] = MASTER_CLOCK/512; break;
case 2: cms->noisefreq[c >> 1][c & 1] = MASTER_CLOCK/1024; break;
case 3: cms->noisefreq[c >> 1][c & 1] = cms->freq[c >> 1][(c & 1) * 3]; break;
}
}
for (c = 0; c < 2; c ++)
{
if (cms->regs[c][0x1C] & 1)
{
for (d = 0; d < 6; d++)
{
if (cms->regs[c][0x14] & (1 << d))
{
if (cms->stat[c][d]) out_l += (cms->vol[c][d][0] * 90);
if (cms->stat[c][d]) out_r += (cms->vol[c][d][1] * 90);
cms->count[c][d] += cms->freq[c][d];
if (cms->count[c][d] >= 24000)
{
cms->count[c][d] -= 24000;
cms->stat[c][d] ^= 1;
}
}
else if (cms->regs[c][0x15] & (1 << d))
{
if (cms->noise[c][d / 3] & 1) out_l += (cms->vol[c][d][0] * 90);
if (cms->noise[c][d / 3] & 1) out_r += (cms->vol[c][d][0] * 90);
}
}
for (d = 0; d < 2; d++)
{
cms->noisecount[c][d] += cms->noisefreq[c][d];
while (cms->noisecount[c][d] >= 24000)
{
cms->noisecount[c][d] -= 24000;
cms->noise[c][d] <<= 1;
if (!(((cms->noise[c][d] & 0x4000) >> 8) ^ (cms->noise[c][d] & 0x40)))
cms->noise[c][d] |= 1;
}
}
}
}
cms->buffer[(cms->pos << 1)] = out_l;
cms->buffer[(cms->pos << 1) + 1] = out_r;
}
static void
cms_update(cms_t *dev)
{
int16_t out_l = 0, out_r = 0;
int c, d;
for (; dev->pos < sound_pos_global; dev->pos++) {
for (c = 0; c < 4; c++) {
switch (dev->noisetype[c>>1][c&1]) {
case 0:
dev->noisefreq[c>>1][c&1] = MASTER_CLOCK/256;
break;
case 1:
dev->noisefreq[c>>1][c&1] = MASTER_CLOCK/512;
break;
case 2:
dev->noisefreq[c>>1][c&1] = MASTER_CLOCK/1024;
break;
case 3:
dev->noisefreq[c>>1][c&1] = dev->freq[c>>1][(c&1) * 3];
break;
}
}
for (c = 0; c < 2; c ++) {
if (dev->regs[c][0x1C] & 1) {
for (d = 0; d < 6; d++) {
if (dev->regs[c][0x14] & (1 << d)) {
if (dev->stat[c][d])
out_l += (dev->vol[c][d][0] * 90);
if (dev->stat[c][d])
out_r += (dev->vol[c][d][1] * 90);
dev->count[c][d] += dev->freq[c][d];
if (dev->count[c][d] >= 24000) {
dev->count[c][d] -= 24000;
dev->stat[c][d] ^= 1;
}
} else if (dev->regs[c][0x15] & (1 << d)) {
if (dev->noise[c][d / 3] & 1)
out_l += (dev->vol[c][d][0] * 90);
if (dev->noise[c][d / 3] & 1)
out_r += (dev->vol[c][d][0] * 90);
}
}
for (d = 0; d < 2; d++) {
dev->noisecount[c][d] += dev->noisefreq[c][d];
while (dev->noisecount[c][d] >= 24000) {
dev->noisecount[c][d] -= 24000;
dev->noise[c][d] <<= 1;
if (!(((dev->noise[c][d] & 0x4000) >> 8) ^ (dev->noise[c][d] & 0x40)))
dev->noise[c][d] |= 1;
}
}
}
}
dev->buffer[(dev->pos << 1)] = out_l;
dev->buffer[(dev->pos << 1) + 1] = out_r;
}
}
void cms_get_buffer(int32_t *buffer, int len, void *p)
static void
get_buffer(int32_t *buffer, int len, void *priv)
{
cms_t *cms = (cms_t *)p;
cms_t *dev = (cms_t *)priv;
int c;
int c;
cms_update(dev);
cms_update(cms);
for (c = 0; c < len * 2; c++)
buffer[c] += dev->buffer[c];
for (c = 0; c < len * 2; c++)
buffer[c] += cms->buffer[c];
cms->pos = 0;
dev->pos = 0;
}
void cms_write(uint16_t addr, uint8_t val, void *p)
static void
cms_write(uint16_t addr, uint8_t val, void *priv)
{
cms_t *cms = (cms_t *)p;
int voice;
int chip = (addr & 2) >> 1;
cms_t *dev = (cms_t *)priv;
int voice;
int chip = (addr & 2) >> 1;
switch (addr & 0xf)
{
case 1:
cms->addrs[0] = val & 31;
break;
case 3:
cms->addrs[1] = val & 31;
break;
switch (addr & 0xf) {
case 1:
dev->addrs[0] = val & 31;
break;
case 0: case 2:
cms_update(cms);
cms->regs[chip][cms->addrs[chip] & 31] = val;
switch (cms->addrs[chip] & 31)
{
case 0x00: case 0x01: case 0x02: /*Volume*/
case 0x03: case 0x04: case 0x05:
voice = cms->addrs[chip] & 7;
cms->vol[chip][voice][0] = val & 0xf;
cms->vol[chip][voice][1] = val >> 4;
break;
case 0x08: case 0x09: case 0x0A: /*Frequency*/
case 0x0B: case 0x0C: case 0x0D:
voice = cms->addrs[chip] & 7;
cms->latch[chip][voice] = (cms->latch[chip][voice] & 0x700) | val;
cms->freq[chip][voice] = (MASTER_CLOCK/512 << (cms->latch[chip][voice] >> 8)) / (511 - (cms->latch[chip][voice] & 255));
break;
case 0x10: case 0x11: case 0x12: /*Octave*/
voice = (cms->addrs[chip] & 3) << 1;
cms->latch[chip][voice] = (cms->latch[chip][voice] & 0xFF) | ((val & 7) << 8);
cms->latch[chip][voice + 1] = (cms->latch[chip][voice + 1] & 0xFF) | ((val & 0x70) << 4);
cms->freq[chip][voice] = (MASTER_CLOCK/512 << (cms->latch[chip][voice] >> 8)) / (511 - (cms->latch[chip][voice] & 255));
cms->freq[chip][voice + 1] = (MASTER_CLOCK/512 << (cms->latch[chip][voice + 1] >> 8)) / (511 - (cms->latch[chip][voice + 1] & 255));
break;
case 0x16: /*Noise*/
cms->noisetype[chip][0] = val & 3;
cms->noisetype[chip][1] = (val >> 4) & 3;
break;
}
break;
case 0x6: case 0x7:
cms->latched_data = val;
break;
}
case 3:
dev->addrs[1] = val & 31;
break;
case 0:
case 2:
cms_update(dev);
dev->regs[chip][dev->addrs[chip] & 31] = val;
switch (dev->addrs[chip] & 31) {
case 0x00: case 0x01: case 0x02: /*Volume*/
case 0x03: case 0x04: case 0x05:
voice = dev->addrs[chip] & 7;
dev->vol[chip][voice][0] = val & 0xf;
dev->vol[chip][voice][1] = val >> 4;
break;
case 0x08: case 0x09: case 0x0A: /*Frequency*/
case 0x0B: case 0x0C: case 0x0D:
voice = dev->addrs[chip] & 7;
dev->latch[chip][voice] = (dev->latch[chip][voice] & 0x700) | val;
dev->freq[chip][voice] = (MASTER_CLOCK/512 << (dev->latch[chip][voice] >> 8)) / (511 - (dev->latch[chip][voice] & 255));
break;
case 0x10: case 0x11: case 0x12: /*Octave*/
voice = (dev->addrs[chip] & 3) << 1;
dev->latch[chip][voice] = (dev->latch[chip][voice] & 0xFF) | ((val & 7) << 8);
dev->latch[chip][voice + 1] = (dev->latch[chip][voice + 1] & 0xFF) | ((val & 0x70) << 4);
dev->freq[chip][voice] = (MASTER_CLOCK/512 << (dev->latch[chip][voice] >> 8)) / (511 - (dev->latch[chip][voice] & 255));
dev->freq[chip][voice + 1] = (MASTER_CLOCK/512 << (dev->latch[chip][voice + 1] >> 8)) / (511 - (dev->latch[chip][voice + 1] & 255));
break;
case 0x16: /*Noise*/
dev->noisetype[chip][0] = val & 3;
dev->noisetype[chip][1] = (val >> 4) & 3;
break;
}
break;
case 0x6: case 0x7:
dev->latched_data = val;
break;
}
}
uint8_t cms_read(uint16_t addr, void *p)
{
cms_t *cms = (cms_t *)p;
switch (addr & 0xf)
{
case 0x1:
return cms->addrs[0];
case 0x3:
return cms->addrs[1];
case 0x4:
return 0x7f;
case 0xa: case 0xb:
return cms->latched_data;
}
return 0xff;
static uint8_t
cms_read(uint16_t addr, void *priv)
{
cms_t *dev = (cms_t *)priv;
uint8_t ret = 0xff;
switch (addr & 0xf) {
case 0x1:
ret = dev->addrs[0];
break;
case 0x3:
ret = dev->addrs[1];
break;
case 0x4:
ret = 0x7f;
break;
case 0xa:
case 0xb:
ret = dev->latched_data;
break;
default:
break;
}
return(ret);
}
void *cms_init(const device_t *info)
{
cms_t *cms = malloc(sizeof(cms_t));
memset(cms, 0, sizeof(cms_t));
pclog("cms_init\n");
io_sethandler(0x0220, 0x0010, cms_read, NULL, NULL, cms_write, NULL, NULL, cms);
sound_add_handler(cms_get_buffer, cms);
return cms;
static void *
cms_init(const device_t *info)
{
cms_t *dev;
dev = (cms_t *)malloc(sizeof(cms_t));
memset(dev, 0x00, sizeof(cms_t));
io_sethandler(0x0220, 16,
cms_read,NULL,NULL, cms_write,NULL,NULL, dev);
sound_add_handler(get_buffer, dev);
return(dev);
}
void cms_close(void *p)
{
cms_t *cms = (cms_t *)p;
free(cms);
static void
cms_close(void *priv)
{
cms_t *dev = (cms_t *)priv;
free(dev);
}
const device_t cms_device =
{
"Creative Music System / Game Blaster",
0, 0,
cms_init, cms_close, NULL,
NULL, NULL, NULL, NULL,
NULL
const device_t cms_device = {
"Creative Music System / Game Blaster",
DEVICE_ISA,
0,
cms_init, cms_close, NULL,
NULL, NULL, NULL, NULL,
NULL
};

View File

@@ -10,7 +10,7 @@
*
* NOTE: See MSC_ macros for allocation on stack. --FvK
*
* Version: @(#)snd_dbopl.cpp 1.0.3 2018/02/22
* Version: @(#)snd_dbopl.cpp 1.0.4 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -51,9 +51,6 @@
#include "snd_dbopl.h"
int opl3_type = 0;
static struct
{
DBOPL::Chip chip;

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@
*
* Roland MPU-401 emulation.
*
* Version: @(#)snd_mpu401.c 1.0.4 2018/04/02
* Version: @(#)snd_mpu401.c 1.0.5 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -62,16 +62,15 @@ enum {
};
int mpu401_standalone_enable = 0;
#ifdef ENABLE_SOUND_MPU401_LOG
int sound_mpu401_do_log = ENABLE_SOUND_MPU401_LOG;
#endif
static int64_t mpu401_event_callback = 0LL;
static int64_t mpu401_eoi_callback = 0LL;
static int64_t mpu401_reset_callback = 0LL;
#ifdef ENABLE_SOUND_MPU401_LOG
int sound_mpu401_do_log = ENABLE_SOUND_MPU401_LOG;
#endif
static void MPU401_WriteCommand(mpu_t *mpu, uint8_t val);
static void MPU401_EOIHandlerDispatch(void *p);

View File

@@ -8,7 +8,7 @@
*
* Roland MPU-401 emulation.
*
* Version: @(#)snd_mpu401.h 1.0.2 2018/03/15
* Version: @(#)snd_mpu401.h 1.0.3 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -43,14 +43,25 @@
# define SOUND_MPU401_H
#define MPU401_VERSION 0x15
#define MPU401_REVISION 0x01
#define MPU401_QUEUE 32
#define MPU401_TIMECONSTANT (60000000/1000.0f)
#define MPU401_RESETBUSY 27.0f
#define MPU401_VERSION 0x15
#define MPU401_REVISION 0x01
#define MPU401_QUEUE 32
#define MPU401_TIMECONSTANT (60000000/1000.0f)
#define MPU401_RESETBUSY 27.0f
typedef enum {
M_UART,
M_INTELLIGENT
} MpuMode;
typedef enum {
T_OVERFLOW,
T_MARK,
T_MIDI_SYS,
T_MIDI_NORM,
T_COMMAND
} MpuDataType;
typedef enum MpuMode { M_UART,M_INTELLIGENT } MpuMode;
typedef enum MpuDataType {T_OVERFLOW,T_MARK,T_MIDI_SYS,T_MIDI_NORM,T_COMMAND} MpuDataType;
/* Messages sent to MPU-401 from host */
#define MSG_EOX 0xf7
@@ -64,57 +75,61 @@ typedef enum MpuDataType {T_OVERFLOW,T_MARK,T_MIDI_SYS,T_MIDI_NORM,T_COMMAND} Mp
#define MSG_MPU_CLOCK 0xfd
#define MSG_MPU_ACK 0xfe
typedef struct mpu_t
{
int uart_mode;
uint8_t rx_data;
int intelligent;
MpuMode mode;
int irq;
uint8_t status;
uint8_t queue[MPU401_QUEUE];
int queue_pos,queue_used;
struct track
{
int counter;
uint8_t value[8],sys_val;
uint8_t vlength,length;
MpuDataType type;
} playbuf[8],condbuf;
struct {
int conductor,cond_req,cond_set, block_ack;
int playing,reset;
int wsd,wsm,wsd_start;
int run_irq,irq_pending;
int send_now;
int eoi_scheduled;
int data_onoff;
uint32_t command_byte,cmd_pending;
uint8_t tmask,cmask,amask;
uint16_t midi_mask;
uint16_t req_mask;
uint8_t channel,old_chan;
} state;
struct {
uint8_t timebase,old_timebase;
uint8_t tempo,old_tempo;
uint8_t tempo_rel,old_tempo_rel;
uint8_t tempo_grad;
uint8_t cth_rate,cth_counter;
int clock_to_host,cth_active;
} clock;
typedef struct {
int uart_mode;
uint8_t rx_data;
int intelligent;
MpuMode mode;
int irq;
uint8_t status;
uint8_t queue[MPU401_QUEUE];
int queue_pos,
queue_used;
struct track {
int counter;
uint8_t value[8],
sys_val;
uint8_t vlength,
length;
MpuDataType type;
} playbuf[8],
condbuf;
struct {
int conductor,cond_req,cond_set, block_ack;
int playing,reset;
int wsd,wsm,wsd_start;
int run_irq,irq_pending;
int send_now;
int eoi_scheduled;
int data_onoff;
uint32_t command_byte,cmd_pending;
uint8_t tmask,cmask,amask;
uint16_t midi_mask;
uint16_t req_mask;
uint8_t channel,old_chan;
} state;
struct {
uint8_t timebase,old_timebase;
uint8_t tempo,old_tempo;
uint8_t tempo_rel,old_tempo_rel;
uint8_t tempo_grad;
uint8_t cth_rate,cth_counter;
int clock_to_host,cth_active;
} clock;
} mpu_t;
uint8_t MPU401_ReadData(mpu_t *mpu);
void mpu401_init(mpu_t *mpu, uint16_t addr, int irq, int mode);
extern int mpu401_standalone_enable;
void mpu401_device_add(void);
extern const device_t mpu401_device;
void mpu401_uart_init(mpu_t *mpu, uint16_t addr);
extern uint8_t MPU401_ReadData(mpu_t *mpu);
extern void mpu401_init(mpu_t *mpu, uint16_t addr, int irq, int mode);
extern void mpu401_device_add(void);
extern void mpu401_uart_init(mpu_t *mpu, uint16_t addr);
#endif /*SOUND_MPU401_H*/

View File

@@ -8,7 +8,7 @@
*
* Sound emulation core.
*
* Version: @(#)sound.c 1.0.7 2018/04/08
* Version: @(#)sound.c 1.0.8 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -74,7 +74,6 @@ int sound_gain = 0;
volatile int soundon = 1;
//static int card_last = 0;
static sndhnd_t handlers[8];
static sndhnd_t process_handlers[8];
static int handlers_num;
@@ -333,15 +332,9 @@ sound_reset(void)
/* Initialize the currently selected sound card. */
snddev_reset();
// card_last = sound_card_current;
if (mpu401_standalone_enable)
mpu401_device_add();
#if 0
if (GAMEBLASTER)
device_add(&cms_device);
#endif
}

View File

@@ -8,7 +8,7 @@
*
* Sound devices support module.
*
* Version: @(#)sound_dev.c 1.0.1 2018/04/08
* Version: @(#)sound_dev.c 1.0.2 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -89,6 +89,7 @@ static const sound_t sound_cards[] = {
{"Disabled", "none", NULL },
{"[ISA] Adlib", "adlib", &adlib_device },
{"[ISA] Adlib Gold", "adlibgold", &adgold_device },
{"[ISA] Creative Music System", "cms", &cms_device },
{"[ISA] Gravis Ultra Sound", "gus", &gus_device },
{"[ISA] Innovation SSI-2001", "ssi2001", &ssi2001_device },
{"[ISA] Sound Blaster 1.0", "sb", &sb_1_device },

View File

@@ -8,7 +8,7 @@
*
* Application resource script for Windows.
*
* Version: @(#)VARCem.rc 1.0.15 2018/04/08
* Version: @(#)VARCem.rc 1.0.16 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -488,9 +488,6 @@ BEGIN
CONTROL "Use FLOAT32 sound",IDC_CHECK_FLOAT,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,7,81,94,10
CONTROL "CMS / Game Blaster",IDC_CHECK_CMS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,7,99,94,10
END
DLG_CFG_NETWORK DIALOG DISCARDABLE 97, 0, 267, 63

View File

@@ -160,7 +160,6 @@
#define IDC_CHECK_FLOAT 1074
#define IDC_CHECK_MPU401 1075
#define IDC_CONFIGURE_MPU401 1076
#define IDC_CHECK_CMS 1077
#define IDC_COMBO_NET_TYPE 1090 /* network config */
#define IDC_COMBO_PCAP 1091

View File

@@ -8,7 +8,7 @@
*
* Implementation of the Settings dialog.
*
* Version: @(#)win_settings.c 1.0.19 2018/04/08
* Version: @(#)win_settings.c 1.0.20 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -67,7 +67,6 @@
#include "../network/network.h"
#include "../sound/sound.h"
#include "../sound/midi.h"
#include "../sound/snd_dbopl.h"
#include "../sound/snd_mpu401.h"
#include "../video/video.h"
#include "../video/vid_voodoo.h"
@@ -92,7 +91,7 @@ static int temp_mouse, temp_joystick;
/* Sound category. */
static int temp_sound_card, temp_midi_device, temp_mpu401,
temp_GAMEBLASTER, temp_opl3_type, temp_float;
temp_opl3_type, temp_float;
/* Network category. */
static int temp_net_type, temp_net_card;
@@ -192,7 +191,6 @@ settings_init(void)
temp_sound_card = sound_card_current;
temp_midi_device = midi_device_current;
temp_mpu401 = mpu401_standalone_enable;
temp_GAMEBLASTER = GAMEBLASTER;
temp_opl3_type = opl3_type;
temp_float = sound_is_float;
@@ -268,7 +266,6 @@ settings_changed(void)
i = i || (sound_card_current != temp_sound_card);
i = i || (midi_device_current != temp_midi_device);
i = i || (mpu401_standalone_enable != temp_mpu401);
i = i || (GAMEBLASTER != temp_GAMEBLASTER);
i = i || (opl3_type != temp_opl3_type);
i = i || (sound_is_float != temp_float);
@@ -370,7 +367,6 @@ settings_save(void)
sound_card_current = temp_sound_card;
midi_device_current = temp_midi_device;
mpu401_standalone_enable = temp_mpu401;
GAMEBLASTER = temp_GAMEBLASTER;
opl3_type = temp_opl3_type;
sound_is_float = temp_float;

View File

@@ -8,7 +8,7 @@
*
* Implementation of the Settings dialog.
*
* Version: @(#)win_settings_sound.h 1.0.3 2018/04/08
* Version: @(#)win_settings_sound.h 1.0.4 2018/04/08
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -162,9 +162,6 @@ sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
h = GetDlgItem(hdlg, IDC_CONFIGURE_MPU401);
EnableWindow(h, (mpu401_standalone_allow() && temp_mpu401) ? TRUE : FALSE);
h = GetDlgItem(hdlg, IDC_CHECK_CMS);
SendMessage(h, BM_SETCHECK, temp_GAMEBLASTER, 0);
h = GetDlgItem(hdlg, IDC_CHECK_NUKEDOPL);
SendMessage(h, BM_SETCHECK, temp_opl3_type, 0);
@@ -249,9 +246,6 @@ sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
h = GetDlgItem(hdlg, IDC_CHECK_MPU401);
temp_mpu401 = SendMessage(h, BM_GETCHECK, 0, 0);
h = GetDlgItem(hdlg, IDC_CHECK_CMS);
temp_GAMEBLASTER = SendMessage(h, BM_GETCHECK, 0, 0);
h = GetDlgItem(hdlg, IDC_CHECK_NUKEDOPL);
temp_opl3_type = SendMessage(h, BM_GETCHECK, 0, 0);