summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/emu/device.cpp6
-rw-r--r--src/emu/device.h3
-rw-r--r--src/emu/ioport.cpp5
-rw-r--r--src/emu/romload.cpp15
-rw-r--r--src/frontend/mame/info.cpp16
-rw-r--r--src/frontend/mame/ui/devopt.cpp14
-rw-r--r--src/frontend/mame/ui/miscmenu.cpp20
-rw-r--r--src/frontend/mame/ui/selgame.cpp12
-rw-r--r--src/frontend/mame/ui/selsoft.cpp16
9 files changed, 53 insertions, 54 deletions
diff --git a/src/emu/device.cpp b/src/emu/device.cpp
index 07787934863..6bc7ff40345 100644
--- a/src/emu/device.cpp
+++ b/src/emu/device.cpp
@@ -924,14 +924,14 @@ void device_interface::interface_debug_setup()
//-------------------------------------------------
-// rom_region
+// rom_region_vector
//-------------------------------------------------
-const rom_entry *device_t::rom_region() const
+const std::vector<rom_entry> &device_t::rom_region_vector() const
{
if (m_rom_entries.empty())
{
m_rom_entries = rom_build_entries(device_rom_region());
}
- return m_rom_entries.data();
+ return m_rom_entries;
} \ No newline at end of file
diff --git a/src/emu/device.h b/src/emu/device.h
index cdc7a8dd5a3..6892157e084 100644
--- a/src/emu/device.h
+++ b/src/emu/device.h
@@ -203,7 +203,8 @@ public:
UINT32 configured_clock() const { return m_configured_clock; }
const machine_config &mconfig() const { return m_machine_config; }
const input_device_default *input_ports_defaults() const { return m_input_defaults; }
- const rom_entry *rom_region() const;
+ const std::vector<rom_entry> &rom_region_vector() const;
+ const rom_entry *rom_region() const { return rom_region_vector().data(); }
machine_config_constructor machine_config_additions() const { return device_mconfig_additions(); }
ioport_constructor input_ports() const { return device_input_ports(); }
UINT8 default_bios() const { return m_default_bios; }
diff --git a/src/emu/ioport.cpp b/src/emu/ioport.cpp
index 43649e3f886..470f1faf1f2 100644
--- a/src/emu/ioport.cpp
+++ b/src/emu/ioport.cpp
@@ -2548,9 +2548,8 @@ time_t ioport_manager::initialize()
m_has_analog = true;
}
for (device_t &device : device_iterator(machine().root_device()))
- if (device.rom_region())
- for (const rom_entry *rom = device.rom_region(); !ROMENTRY_ISEND(rom); rom++)
- if (ROMENTRY_ISSYSTEM_BIOS(rom)) { m_has_bioses= true; break; }
+ for (const rom_entry &rom : device.rom_region_vector())
+ if (ROMENTRY_ISSYSTEM_BIOS(&rom)) { m_has_bioses= true; break; }
}
// open playback and record files if specified
diff --git a/src/emu/romload.cpp b/src/emu/romload.cpp
index db54d3d4633..2bb4d984602 100644
--- a/src/emu/romload.cpp
+++ b/src/emu/romload.cpp
@@ -268,23 +268,22 @@ int rom_load_manager::set_disk_handle(const char *region, const char *fullpath)
void rom_load_manager::determine_bios_rom(device_t &device, const char *specbios)
{
const char *defaultname = nullptr;
- const rom_entry *rom;
int default_no = 1;
int bios_count = 0;
device.set_system_bios(0);
/* first determine the default BIOS name */
- for (rom = device.rom_region(); !ROMENTRY_ISEND(rom); rom++)
- if (ROMENTRY_ISDEFAULT_BIOS(rom))
- defaultname = ROM_GETNAME(rom);
+ for (const rom_entry &rom : device.rom_region_vector())
+ if (ROMENTRY_ISDEFAULT_BIOS(&rom))
+ defaultname = ROM_GETNAME(&rom);
/* look for a BIOS with a matching name */
- for (rom = device.rom_region(); !ROMENTRY_ISEND(rom); rom++)
- if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ for (const rom_entry &rom : device.rom_region_vector())
+ if (ROMENTRY_ISSYSTEM_BIOS(&rom))
{
- const char *biosname = ROM_GETNAME(rom);
- int bios_flags = ROM_GETBIOSFLAGS(rom);
+ const char *biosname = ROM_GETNAME(&rom);
+ int bios_flags = ROM_GETBIOSFLAGS(&rom);
char bios_number[20];
/* Allow '-bios n' to still be used */
diff --git a/src/frontend/mame/info.cpp b/src/frontend/mame/info.cpp
index 6b8d7f65673..6431517163b 100644
--- a/src/frontend/mame/info.cpp
+++ b/src/frontend/mame/info.cpp
@@ -519,19 +519,19 @@ void info_xml_creator::output_bios()
// first determine the default BIOS name
std::string defaultname;
- for (const rom_entry *rom = rom_entries.data(); !ROMENTRY_ISEND(rom); rom++)
- if (ROMENTRY_ISDEFAULT_BIOS(rom))
- defaultname = ROM_GETNAME(rom);
+ for (const rom_entry &rom : rom_entries)
+ if (ROMENTRY_ISDEFAULT_BIOS(&rom))
+ defaultname = ROM_GETNAME(&rom);
// iterate over ROM entries and look for BIOSes
- for (const rom_entry *rom = rom_entries.data(); !ROMENTRY_ISEND(rom); rom++)
- if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ for (const rom_entry &rom : rom_entries)
+ if (ROMENTRY_ISSYSTEM_BIOS(&rom))
{
// output extracted name and descriptions
fprintf(m_output, "\t\t<biosset");
- fprintf(m_output, " name=\"%s\"", xml_normalize_string(ROM_GETNAME(rom)));
- fprintf(m_output, " description=\"%s\"", xml_normalize_string(ROM_GETHASHDATA(rom)));
- if (defaultname == ROM_GETNAME(rom))
+ fprintf(m_output, " name=\"%s\"", xml_normalize_string(ROM_GETNAME(&rom)));
+ fprintf(m_output, " description=\"%s\"", xml_normalize_string(ROM_GETHASHDATA(&rom)));
+ if (defaultname == ROM_GETNAME(&rom))
fprintf(m_output, " default=\"yes\"");
fprintf(m_output, "/>\n");
}
diff --git a/src/frontend/mame/ui/devopt.cpp b/src/frontend/mame/ui/devopt.cpp
index 099c62428f0..9ebfd7f70e5 100644
--- a/src/frontend/mame/ui/devopt.cpp
+++ b/src/frontend/mame/ui/devopt.cpp
@@ -147,18 +147,18 @@ void menu_device_config::populate()
{
std::string bios_str;
// first loop through roms in search of default bios (shortname)
- for (const rom_entry *rom = dev->rom_region(); !ROMENTRY_ISEND(rom); rom++)
- if (ROMENTRY_ISDEFAULT_BIOS(rom))
- bios_str.assign(ROM_GETNAME(rom));
+ for (const rom_entry &rom : dev->rom_region_vector())
+ if (ROMENTRY_ISDEFAULT_BIOS(&rom))
+ bios_str.assign(ROM_GETNAME(&rom));
// then loop again to count bios options and to get the default bios complete name
- for (const rom_entry *rom = dev->rom_region(); !ROMENTRY_ISEND(rom); rom++)
+ for (const rom_entry &rom : dev->rom_region_vector())
{
- if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ if (ROMENTRY_ISSYSTEM_BIOS(&rom))
{
bios++;
- if (bios_str.compare(ROM_GETNAME(rom))==0)
- bios_str.assign(ROM_GETHASHDATA(rom));
+ if (bios_str.compare(ROM_GETNAME(&rom))==0)
+ bios_str.assign(ROM_GETHASHDATA(&rom));
}
}
diff --git a/src/frontend/mame/ui/miscmenu.cpp b/src/frontend/mame/ui/miscmenu.cpp
index 514ab779a1a..0191b5d7fea 100644
--- a/src/frontend/mame/ui/miscmenu.cpp
+++ b/src/frontend/mame/ui/miscmenu.cpp
@@ -117,9 +117,9 @@ void menu_bios_selection::handle()
{
device_t *dev = (device_t *)menu_event->itemref;
int cnt = 0;
- for (const rom_entry *rom = dev->rom_region(); !ROMENTRY_ISEND(rom); rom++)
+ for (const rom_entry &rom : dev->rom_region_vector())
{
- if (ROMENTRY_ISSYSTEM_BIOS(rom)) cnt ++;
+ if (ROMENTRY_ISSYSTEM_BIOS(&rom)) cnt ++;
}
int val = dev->system_bios() + ((menu_event->iptkey == IPT_UI_LEFT) ? -1 : +1);
if (val<1) val=cnt;
@@ -842,18 +842,18 @@ void menu_machine_configure::setup_bios()
std::string specbios(m_opts.bios());
std::string default_name;
- for (const rom_entry *rom = entries.data(); !ROMENTRY_ISEND(rom); ++rom)
- if (ROMENTRY_ISDEFAULT_BIOS(rom))
- default_name = ROM_GETNAME(rom);
+ for (const rom_entry &rom : entries)
+ if (ROMENTRY_ISDEFAULT_BIOS(&rom))
+ default_name = ROM_GETNAME(&rom);
std::size_t bios_count = 0;
- for (const rom_entry *rom = entries.data(); !ROMENTRY_ISEND(rom); ++rom)
+ for (const rom_entry &rom : entries)
{
- if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ if (ROMENTRY_ISSYSTEM_BIOS(&rom))
{
- std::string name(ROM_GETHASHDATA(rom));
- std::string biosname(ROM_GETNAME(rom));
- int bios_flags = ROM_GETBIOSFLAGS(rom);
+ std::string name(ROM_GETHASHDATA(&rom));
+ std::string biosname(ROM_GETNAME(&rom));
+ int bios_flags = ROM_GETBIOSFLAGS(&rom);
std::string bios_number = std::to_string(bios_flags - 1);
// check biosnumber and name
diff --git a/src/frontend/mame/ui/selgame.cpp b/src/frontend/mame/ui/selgame.cpp
index 2f39f90be0f..bbfb0937f18 100644
--- a/src/frontend/mame/ui/selgame.cpp
+++ b/src/frontend/mame/ui/selgame.cpp
@@ -1113,8 +1113,8 @@ void menu_select_game::build_list(const char *filter_text, int filter, bool bios
}
break;
case FILTER_CHD:
- for (const rom_entry *rom = entries.data(); !ROMENTRY_ISEND(rom); ++rom)
- if (ROMENTRY_ISREGION(rom) && ROMREGION_ISDISKDATA(rom))
+ for (const rom_entry &rom : entries)
+ if (ROMENTRY_ISREGION(&rom) && ROMREGION_ISDISKDATA(&rom))
{
m_displaylist.push_back(s_driver);
break;
@@ -1123,8 +1123,8 @@ void menu_select_game::build_list(const char *filter_text, int filter, bool bios
case FILTER_NOCHD:
{
bool found = false;
- for (const rom_entry *rom = entries.data(); !ROMENTRY_ISEND(rom); ++rom)
- if (ROMENTRY_ISREGION(rom) && ROMREGION_ISDISKDATA(rom))
+ for (const rom_entry &rom : entries)
+ if (ROMENTRY_ISREGION(&rom) && ROMREGION_ISDISKDATA(&rom))
{
found = true;
break;
@@ -1304,8 +1304,8 @@ void menu_select_game::general_info(const game_driver *driver, std::string &buff
util::stream_format(str, _("Screen Orientation: %1$s\n"), ((driver->flags & ORIENTATION_SWAP_XY) ? _("Vertical") : _("Horizontal")));
bool found = false;
auto entries = rom_build_entries(driver->rom);
- for (const rom_entry *rom = entries.data(); !ROMENTRY_ISEND(rom); ++rom)
- if (ROMENTRY_ISREGION(rom) && ROMREGION_ISDISKDATA(rom))
+ for (const rom_entry &rom : entries)
+ if (ROMENTRY_ISREGION(&rom) && ROMREGION_ISDISKDATA(&rom))
{
found = true;
break;
diff --git a/src/frontend/mame/ui/selsoft.cpp b/src/frontend/mame/ui/selsoft.cpp
index 98ec8e5b826..baf1e17ba24 100644
--- a/src/frontend/mame/ui/selsoft.cpp
+++ b/src/frontend/mame/ui/selsoft.cpp
@@ -99,17 +99,17 @@ bool has_multiple_bios(const game_driver *driver, s_bios &biosname)
auto entries = rom_build_entries(driver->rom);
std::string default_name;
- for (const rom_entry *rom = entries.data(); !ROMENTRY_ISEND(rom); ++rom)
- if (ROMENTRY_ISDEFAULT_BIOS(rom))
- default_name = ROM_GETNAME(rom);
+ for (const rom_entry &rom : entries)
+ if (ROMENTRY_ISDEFAULT_BIOS(&rom))
+ default_name = ROM_GETNAME(&rom);
- for (const rom_entry *rom = entries.data(); !ROMENTRY_ISEND(rom); ++rom)
+ for (const rom_entry &rom : entries)
{
- if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ if (ROMENTRY_ISSYSTEM_BIOS(&rom))
{
- std::string name(ROM_GETHASHDATA(rom));
- std::string bname(ROM_GETNAME(rom));
- int bios_flags = ROM_GETBIOSFLAGS(rom);
+ std::string name(ROM_GETHASHDATA(&rom));
+ std::string bname(ROM_GETNAME(&rom));
+ int bios_flags = ROM_GETBIOSFLAGS(&rom);
if (bname == default_name)
{