mirror of
https://github.com/holub/mame
synced 2025-10-06 09:00:04 +03:00
Fixed issue with get_merge_name when using slot devices (no whatsnew)
This commit is contained in:
parent
551e2de4e3
commit
5adab03a1d
@ -209,7 +209,7 @@ driver_enumerator::~driver_enumerator()
|
||||
// driver, allocating on demand if needed
|
||||
//-------------------------------------------------
|
||||
|
||||
machine_config &driver_enumerator::config(int index) const
|
||||
machine_config &driver_enumerator::config(int index, emu_options &options) const
|
||||
{
|
||||
assert(index >= 0 && index < s_driver_count);
|
||||
|
||||
@ -225,7 +225,7 @@ machine_config &driver_enumerator::config(int index) const
|
||||
}
|
||||
|
||||
// allocate the config and add it to the end of the list
|
||||
machine_config *config = m_config[index] = global_alloc(machine_config(*s_drivers_sorted[index], m_options));
|
||||
machine_config *config = m_config[index] = global_alloc(machine_config(*s_drivers_sorted[index], options));
|
||||
m_config_cache.append(*global_alloc(config_entry(*config, index)));
|
||||
}
|
||||
return *m_config[index];
|
||||
|
@ -170,7 +170,7 @@ public:
|
||||
|
||||
// current item
|
||||
const game_driver &driver() const { return driver_list::driver(m_current); }
|
||||
machine_config &config() const { return config(m_current); }
|
||||
machine_config &config() const { return config(m_current, m_options); }
|
||||
int clone() { return driver_list::clone(m_current); }
|
||||
int non_bios_clone() { return driver_list::non_bios_clone(m_current); }
|
||||
int compatible_with() { return driver_list::compatible_with(m_current); }
|
||||
@ -180,7 +180,8 @@ public:
|
||||
// any item by index
|
||||
bool included(int index) const { assert(index >= 0 && index < s_driver_count); return m_included[index]; }
|
||||
bool excluded(int index) const { assert(index >= 0 && index < s_driver_count); return !m_included[index]; }
|
||||
machine_config &config(int index) const;
|
||||
machine_config &config(int index) const { return config(index,m_options); }
|
||||
machine_config &config(int index, emu_options &options) const;
|
||||
void include(int index) { assert(index >= 0 && index < s_driver_count); if (!m_included[index]) { m_included[index] = true; m_filtered_count++; } }
|
||||
void exclude(int index) { assert(index >= 0 && index < s_driver_count); if (m_included[index]) { m_included[index] = false; m_filtered_count--; } }
|
||||
using driver_list::driver;
|
||||
|
@ -38,6 +38,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "emuopts.h"
|
||||
#include "machine/ram.h"
|
||||
#include "sound/samples.h"
|
||||
#include "info.h"
|
||||
@ -1275,12 +1276,13 @@ void info_xml_creator::output_ramoptions()
|
||||
const char *info_xml_creator::get_merge_name(const hash_collection &romhashes)
|
||||
{
|
||||
const char *merge_name = NULL;
|
||||
|
||||
emu_options lookup_options(m_drivlist.options());
|
||||
lookup_options.remove_device_options();
|
||||
// walk the parent chain
|
||||
for (int clone_of = m_drivlist.find(m_drivlist.driver().parent); clone_of != -1; clone_of = m_drivlist.find(m_drivlist.driver(clone_of).parent))
|
||||
|
||||
// look in the parent's ROMs
|
||||
for (const rom_source *psource = rom_first_source(m_drivlist.config(clone_of)); psource != NULL; psource = rom_next_source(*psource))
|
||||
for (const rom_source *psource = rom_first_source(m_drivlist.config(clone_of,lookup_options)); psource != NULL; psource = rom_next_source(*psource))
|
||||
for (const rom_entry *pregion = rom_first_region(*psource); pregion != NULL; pregion = rom_next_region(pregion))
|
||||
for (const rom_entry *prom = rom_first_file(pregion); prom != NULL; prom = rom_next_file(prom))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user