Initial Flexibility to set SID type
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void *sid_init(void);
|
||||
void *sid_init(uint8_t type);
|
||||
void sid_close(void *priv);
|
||||
void sid_reset(void *priv);
|
||||
uint8_t sid_read(uint16_t addr, void *priv);
|
||||
|
||||
@@ -20,7 +20,7 @@ typedef struct psid_t {
|
||||
psid_t *psid;
|
||||
|
||||
void *
|
||||
sid_init(void)
|
||||
sid_init(uint8_t type)
|
||||
{
|
||||
reSIDfp::SamplingMethod method = reSIDfp::RESAMPLE;
|
||||
float cycles_per_sec = 14318180.0 / 16.0;
|
||||
@@ -28,7 +28,13 @@ sid_init(void)
|
||||
psid = new psid_t;
|
||||
psid->sid = new SID;
|
||||
|
||||
psid->sid->setChipModel(reSIDfp::MOS6581);
|
||||
switch (type) {
|
||||
default:
|
||||
case 0:
|
||||
psid->sid->setChipModel(reSIDfp::MOS6581);
|
||||
case 1:
|
||||
psid->sid->setChipModel(reSIDfp::MOS8580);
|
||||
}
|
||||
|
||||
psid->sid->reset();
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ ssi2001_init(UNUSED(const device_t *info))
|
||||
ssi2001_t *ssi2001 = malloc(sizeof(ssi2001_t));
|
||||
memset(ssi2001, 0, sizeof(ssi2001_t));
|
||||
|
||||
ssi2001->psid = sid_init();
|
||||
ssi2001->psid = sid_init(0);
|
||||
sid_reset(ssi2001->psid);
|
||||
uint16_t addr = device_get_config_hex16("base");
|
||||
ssi2001->gameport_enabled = device_get_config_int("gameport");
|
||||
|
||||
Reference in New Issue
Block a user