mirror of
https://github.com/holub/mame
synced 2025-05-23 22:20:01 +03:00
Fix state save in discrete sound
* sndindex now considered as well in state save * expose discrete_sound_n_r(void *chip, ...) to enable accessing multiple discrete sound cores Curt Coder, is this sufficient?
This commit is contained in:
parent
7745124dc6
commit
00ac825a67
@ -30,10 +30,9 @@ struct dss_adjustment_context
|
||||
double scale;
|
||||
};
|
||||
|
||||
|
||||
READ8_HANDLER(discrete_sound_r)
|
||||
UINT8 discrete_sound_n_r(void *chip, offs_t offset)
|
||||
{
|
||||
discrete_info *info = sndti_token(SOUND_DISCRETE, 0);
|
||||
discrete_info *info = chip;
|
||||
node_description *node = discrete_find_node(info, offset);
|
||||
|
||||
UINT8 data = 0;
|
||||
@ -57,9 +56,29 @@ READ8_HANDLER(discrete_sound_r)
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_HANDLER(discrete_sound_w)
|
||||
READ8_HANDLER(discrete_sound_r)
|
||||
{
|
||||
discrete_info *info = sndti_token(SOUND_DISCRETE, 0);
|
||||
return discrete_sound_n_r(sndti_token(SOUND_DISCRETE, 0), offset);
|
||||
}
|
||||
|
||||
READ8_HANDLER(discrete_sound_1_r)
|
||||
{
|
||||
return discrete_sound_n_r(sndti_token(SOUND_DISCRETE, 1), offset);
|
||||
}
|
||||
|
||||
READ8_HANDLER(discrete_sound_2_r)
|
||||
{
|
||||
return discrete_sound_n_r(sndti_token(SOUND_DISCRETE, 2), offset);
|
||||
}
|
||||
|
||||
READ8_HANDLER(discrete_sound_3_r)
|
||||
{
|
||||
return discrete_sound_n_r(sndti_token(SOUND_DISCRETE, 3), offset);
|
||||
}
|
||||
|
||||
void discrete_sound_n_w(void *chip, offs_t offset, UINT8 data)
|
||||
{
|
||||
discrete_info *info = chip;
|
||||
node_description *node = discrete_find_node(info, offset);
|
||||
|
||||
/* Update the node input value if it's a proper input node */
|
||||
@ -99,6 +118,25 @@ WRITE8_HANDLER(discrete_sound_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_HANDLER(discrete_sound_w)
|
||||
{
|
||||
discrete_sound_n_w(sndti_token(SOUND_DISCRETE, 0), offset, data);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER(discrete_sound_1_w)
|
||||
{
|
||||
discrete_sound_n_w(sndti_token(SOUND_DISCRETE, 1), offset, data);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER(discrete_sound_2_w)
|
||||
{
|
||||
discrete_sound_n_w(sndti_token(SOUND_DISCRETE, 2), offset, data);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER(discrete_sound_3_w)
|
||||
{
|
||||
discrete_sound_n_w(sndti_token(SOUND_DISCRETE, 3), offset, data);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
*
|
||||
|
@ -414,7 +414,7 @@ static void discrete_reset(void *chip)
|
||||
(*node->module.step)(node);
|
||||
|
||||
/* and register save state */
|
||||
state_save_register_item_array("discrete", nodenum, node->output);
|
||||
state_save_register_item_array("discrete", nodenum | (info->sndindex << 16 ), node->output);
|
||||
}
|
||||
|
||||
discrete_current_context = NULL;
|
||||
|
@ -4290,7 +4290,17 @@ extern discrete_info *discrete_current_context;
|
||||
|
||||
node_description *discrete_find_node(void *chip, int node);
|
||||
|
||||
void discrete_sound_n_w(void *chip, offs_t offset, UINT8 data);
|
||||
UINT8 discrete_sound_n_r(void *chip, offs_t offset);
|
||||
|
||||
WRITE8_HANDLER(discrete_sound_w);
|
||||
READ8_HANDLER( discrete_sound_r);
|
||||
WRITE8_HANDLER(discrete_sound_1_w);
|
||||
WRITE8_HANDLER(discrete_sound_2_w);
|
||||
WRITE8_HANDLER(discrete_sound_3_w);
|
||||
|
||||
READ8_HANDLER(discrete_sound_r);
|
||||
READ8_HANDLER(discrete_sound_1_r);
|
||||
READ8_HANDLER(discrete_sound_2_r);
|
||||
READ8_HANDLER(discrete_sound_3_r);
|
||||
|
||||
#endif /* __DISCRETE_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user