summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-02-27 00:38:50 -0500
committer AJR <ajrhacker@users.noreply.github.com>2017-02-27 00:38:50 -0500
commit2a89da877b3f50a40336cace86285a9971b6da25 (patch)
treeebbb5ae20ebbfb8e00329d3e14ad1cbcfaf25bcd
parent73d399e9e5b22121c9f51eaf6b10b36aeb44491b (diff)
device_image_interface cleanups (nw)
- Replace comparisons of software_entry() or part_entry() with nullptr with loaded_through_softlist() predicate. - Eliminate the superfluous m_software_info_ptr member. The software_entry() accessor is still provided, but now rarely used. - Eliminate two of the three arguments to load_software_part. - Remove some unnecessary auto-typing in ui/inifile.cpp.
-rw-r--r--src/devices/bus/a7800/a78_slot.cpp2
-rw-r--r--src/devices/bus/a800/a800_slot.cpp2
-rw-r--r--src/devices/bus/adam/exp.cpp2
-rw-r--r--src/devices/bus/apf/slot.cpp6
-rw-r--r--src/devices/bus/arcadia/slot.cpp6
-rw-r--r--src/devices/bus/astrocde/slot.cpp6
-rw-r--r--src/devices/bus/c64/exp.cpp2
-rw-r--r--src/devices/bus/cbm2/exp.cpp2
-rw-r--r--src/devices/bus/chanf/slot.cpp6
-rw-r--r--src/devices/bus/coco/cococart.cpp2
-rw-r--r--src/devices/bus/coleco/exp.cpp4
-rw-r--r--src/devices/bus/crvision/slot.cpp6
-rw-r--r--src/devices/bus/gameboy/gb_slot.cpp14
-rw-r--r--src/devices/bus/gba/gba_slot.cpp4
-rw-r--r--src/devices/bus/generic/slot.cpp8
-rw-r--r--src/devices/bus/intv/slot.cpp2
-rw-r--r--src/devices/bus/iq151/iq151.cpp2
-rw-r--r--src/devices/bus/isa/sc499.cpp2
-rw-r--r--src/devices/bus/kc/kc.cpp2
-rw-r--r--src/devices/bus/m5/slot.cpp7
-rw-r--r--src/devices/bus/megadrive/md_slot.cpp4
-rw-r--r--src/devices/bus/msx_slot/cartridge.cpp2
-rw-r--r--src/devices/bus/neogeo/slot.cpp2
-rw-r--r--src/devices/bus/nes/aladdin.cpp2
-rw-r--r--src/devices/bus/nes/datach.cpp2
-rw-r--r--src/devices/bus/nes/karastudio.cpp4
-rw-r--r--src/devices/bus/nes/nes_slot.cpp2
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.cpp2
-rw-r--r--src/devices/bus/odyssey2/slot.cpp6
-rw-r--r--src/devices/bus/pce/pce_slot.cpp8
-rw-r--r--src/devices/bus/plus4/exp.cpp2
-rw-r--r--src/devices/bus/pofo/ccm.cpp2
-rw-r--r--src/devices/bus/ql/rom.cpp2
-rw-r--r--src/devices/bus/saturn/sat_slot.cpp6
-rw-r--r--src/devices/bus/scv/slot.cpp8
-rw-r--r--src/devices/bus/sega8/sega8_slot.cpp12
-rw-r--r--src/devices/bus/snes/snes_slot.cpp14
-rw-r--r--src/devices/bus/vboy/slot.cpp8
-rw-r--r--src/devices/bus/vc4000/slot.cpp6
-rw-r--r--src/devices/bus/vcs/vcs_slot.cpp4
-rw-r--r--src/devices/bus/vectrex/slot.cpp4
-rw-r--r--src/devices/bus/vic10/exp.cpp2
-rw-r--r--src/devices/bus/vic20/exp.cpp2
-rw-r--r--src/devices/bus/vidbrain/exp.cpp2
-rw-r--r--src/devices/bus/wswan/slot.cpp6
-rw-r--r--src/devices/bus/z88/z88.cpp2
-rw-r--r--src/devices/imagedev/chd_cd.cpp2
-rw-r--r--src/devices/imagedev/diablo.cpp2
-rw-r--r--src/devices/imagedev/harddriv.cpp2
-rw-r--r--src/emu/diimage.cpp76
-rw-r--r--src/emu/diimage.h7
-rw-r--r--src/frontend/mame/cheat.cpp2
-rw-r--r--src/frontend/mame/ui/filemngr.cpp2
-rw-r--r--src/frontend/mame/ui/info.cpp2
-rw-r--r--src/frontend/mame/ui/inifile.cpp6
-rw-r--r--src/mame/drivers/aim65.cpp2
-rw-r--r--src/mame/drivers/beta.cpp2
-rw-r--r--src/mame/drivers/geniusiq.cpp2
-rw-r--r--src/mame/drivers/ibmpcjr.cpp2
-rw-r--r--src/mame/drivers/jaguar.cpp2
-rw-r--r--src/mame/drivers/megadriv.cpp2
-rw-r--r--src/mame/drivers/megatech.cpp2
-rw-r--r--src/mame/drivers/microvsn.cpp2
-rw-r--r--src/mame/drivers/n64.cpp2
-rw-r--r--src/mame/drivers/nascom1.cpp2
-rw-r--r--src/mame/drivers/patinho_feio.cpp3
-rw-r--r--src/mame/drivers/pegasus.cpp2
-rw-r--r--src/mame/drivers/studio2.cpp2
-rw-r--r--src/mame/drivers/stv.cpp2
-rw-r--r--src/mame/drivers/timex.cpp4
-rw-r--r--src/mame/drivers/uzebox.cpp2
-rw-r--r--src/mame/drivers/x07.cpp2
-rw-r--r--src/mame/machine/amstrad.cpp4
-rw-r--r--src/mame/machine/atarifdc.cpp2
-rw-r--r--src/mame/machine/bbc.cpp2
-rw-r--r--src/mame/machine/electron.cpp2
-rw-r--r--src/mame/machine/lynx.cpp6
-rw-r--r--src/mame/machine/psion_pack.cpp4
-rw-r--r--src/mame/machine/thomson.cpp8
79 files changed, 186 insertions, 183 deletions
diff --git a/src/devices/bus/a7800/a78_slot.cpp b/src/devices/bus/a7800/a78_slot.cpp
index a9208c91764..c4c50f8972a 100644
--- a/src/devices/bus/a7800/a78_slot.cpp
+++ b/src/devices/bus/a7800/a78_slot.cpp
@@ -349,7 +349,7 @@ image_init_result a78_cart_slot_device::call_load()
{
uint32_t len;
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
const char *pcb_name;
bool has_ram = get_software_region("ram") ? true : false;
diff --git a/src/devices/bus/a800/a800_slot.cpp b/src/devices/bus/a800/a800_slot.cpp
index d5d5d4d9555..f8bcc0d877f 100644
--- a/src/devices/bus/a800/a800_slot.cpp
+++ b/src/devices/bus/a800/a800_slot.cpp
@@ -242,7 +242,7 @@ image_init_result a800_cart_slot_device::call_load()
{
uint32_t len;
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
const char *pcb_name;
len = get_software_region_length("rom");
diff --git a/src/devices/bus/adam/exp.cpp b/src/devices/bus/adam/exp.cpp
index 50469784009..2e58564fcd0 100644
--- a/src/devices/bus/adam/exp.cpp
+++ b/src/devices/bus/adam/exp.cpp
@@ -93,7 +93,7 @@ image_init_result adam_expansion_slot_device::call_load()
{
size_t size;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
size = length();
diff --git a/src/devices/bus/apf/slot.cpp b/src/devices/bus/apf/slot.cpp
index 8999c523649..afe50d8a9b5 100644
--- a/src/devices/bus/apf/slot.cpp
+++ b/src/devices/bus/apf/slot.cpp
@@ -160,7 +160,7 @@ image_init_result apf_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
if (size > 0x3800)
{
@@ -170,12 +170,12 @@ image_init_result apf_cart_slot_device::call_load()
m_cart->rom_alloc(size, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), size);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
m_type = APF_STD;
// attempt to identify Space Destroyer, which needs 1K of additional RAM
diff --git a/src/devices/bus/arcadia/slot.cpp b/src/devices/bus/arcadia/slot.cpp
index a2d3eed9b5c..f40788240ef 100644
--- a/src/devices/bus/arcadia/slot.cpp
+++ b/src/devices/bus/arcadia/slot.cpp
@@ -150,16 +150,16 @@ image_init_result arcadia_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t len = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t len = !loaded_through_softlist() ? length() : get_software_region_length("rom");
m_cart->rom_alloc(len, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), len);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), len);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
// we need to identify Golf!
m_type = ARCADIA_STD;
diff --git a/src/devices/bus/astrocde/slot.cpp b/src/devices/bus/astrocde/slot.cpp
index 09cbf27e2e6..294b7d0a2be 100644
--- a/src/devices/bus/astrocde/slot.cpp
+++ b/src/devices/bus/astrocde/slot.cpp
@@ -150,15 +150,15 @@ image_init_result astrocade_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
m_cart->rom_alloc(size, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), size);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
m_type = ASTROCADE_STD;
diff --git a/src/devices/bus/c64/exp.cpp b/src/devices/bus/c64/exp.cpp
index ad6f72535aa..3d4159b10af 100644
--- a/src/devices/bus/c64/exp.cpp
+++ b/src/devices/bus/c64/exp.cpp
@@ -120,7 +120,7 @@ image_init_result c64_expansion_slot_device::call_load()
{
size_t size;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
size = length();
diff --git a/src/devices/bus/cbm2/exp.cpp b/src/devices/bus/cbm2/exp.cpp
index 47d36ccc744..7230b218105 100644
--- a/src/devices/bus/cbm2/exp.cpp
+++ b/src/devices/bus/cbm2/exp.cpp
@@ -108,7 +108,7 @@ image_init_result cbm2_expansion_slot_device::call_load()
if (m_card)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
size = length();
diff --git a/src/devices/bus/chanf/slot.cpp b/src/devices/bus/chanf/slot.cpp
index ba0fbb622a8..b2014db586e 100644
--- a/src/devices/bus/chanf/slot.cpp
+++ b/src/devices/bus/chanf/slot.cpp
@@ -163,15 +163,15 @@ image_init_result channelf_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t len = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t len = !loaded_through_softlist() ? length() : get_software_region_length("rom");
m_cart->rom_alloc(len, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), len);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), len);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
// we default to "chess" slot because some homebrew programs have been written to run
// on PCBs with RAM at $2000-$2800 as Saba Schach!
diff --git a/src/devices/bus/coco/cococart.cpp b/src/devices/bus/coco/cococart.cpp
index 646a9d9d623..d9c9db3aaee 100644
--- a/src/devices/bus/coco/cococart.cpp
+++ b/src/devices/bus/coco/cococart.cpp
@@ -327,7 +327,7 @@ image_init_result cococart_slot_device::call_load()
if (m_cart)
{
offs_t read_length;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
read_length = fread(m_cart->get_cart_base(), 0x8000);
}
diff --git a/src/devices/bus/coleco/exp.cpp b/src/devices/bus/coleco/exp.cpp
index f02867ed3e3..c70a4dabde1 100644
--- a/src/devices/bus/coleco/exp.cpp
+++ b/src/devices/bus/coleco/exp.cpp
@@ -79,10 +79,10 @@ image_init_result colecovision_cartridge_slot_device::call_load()
{
if (m_card)
{
- size_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ size_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
m_card->rom_alloc(size);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
fread(m_card->m_rom, size);
}
diff --git a/src/devices/bus/crvision/slot.cpp b/src/devices/bus/crvision/slot.cpp
index 1177bb40cd7..4a435aa729f 100644
--- a/src/devices/bus/crvision/slot.cpp
+++ b/src/devices/bus/crvision/slot.cpp
@@ -154,7 +154,7 @@ image_init_result crvision_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
if (size > 0x4800)
{
@@ -164,12 +164,12 @@ image_init_result crvision_cart_slot_device::call_load()
m_cart->rom_alloc(size, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), size);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
m_type = CRV_4K;
diff --git a/src/devices/bus/gameboy/gb_slot.cpp b/src/devices/bus/gameboy/gb_slot.cpp
index 158d9b98be9..3b6c30949c2 100644
--- a/src/devices/bus/gameboy/gb_slot.cpp
+++ b/src/devices/bus/gameboy/gb_slot.cpp
@@ -263,12 +263,12 @@ image_init_result base_gb_cart_slot_device::call_load()
if (m_cart)
{
uint32_t offset;
- uint32_t len = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t len = !loaded_through_softlist() ? length() : get_software_region_length("rom");
uint8_t *ROM;
int rambanks = 0;
// From fullpath, check for presence of a header and skip it + check filesize is valid
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
if ((len % 0x4000) == 512)
{
@@ -288,7 +288,7 @@ image_init_result base_gb_cart_slot_device::call_load()
m_cart->rom_alloc(len, tag());
ROM = m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(ROM, len);
else
memcpy(ROM, get_software_region("rom"), len);
@@ -298,7 +298,7 @@ image_init_result base_gb_cart_slot_device::call_load()
if (get_mmm01_candidate(ROM, len))
offset = len - 0x8000;
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
m_type = gb_get_pcb_id(get_feature("slot") ? get_feature("slot") : "rom");
else
m_type = get_cart_type(ROM + offset, len - offset);
@@ -312,7 +312,7 @@ image_init_result base_gb_cart_slot_device::call_load()
m_cart->set_additional_wirings(0x0f, -1);
// setup RAM/NVRAM/RTC/RUMBLE
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
// from softlist we only rely on xml
if (get_software_region("ram"))
@@ -413,11 +413,11 @@ image_init_result megaduck_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t len = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t len = !loaded_through_softlist() ? length() : get_software_region_length("rom");
m_cart->rom_alloc(len, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), len);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), len);
diff --git a/src/devices/bus/gba/gba_slot.cpp b/src/devices/bus/gba/gba_slot.cpp
index fc8bcd038db..bb9f5b5f992 100644
--- a/src/devices/bus/gba/gba_slot.cpp
+++ b/src/devices/bus/gba/gba_slot.cpp
@@ -181,7 +181,7 @@ image_init_result gba_cart_slot_device::call_load()
if (m_cart)
{
uint8_t *ROM;
- uint32_t size = (software_entry() != nullptr) ? get_software_region_length("rom") : length();
+ uint32_t size = loaded_through_softlist() ? get_software_region_length("rom") : length();
if (size > 0x4000000)
{
seterror(IMAGE_ERROR_UNSPECIFIED, "Attempted loading a cart larger than 64MB");
@@ -191,7 +191,7 @@ image_init_result gba_cart_slot_device::call_load()
m_cart->rom_alloc(size, tag());
ROM = (uint8_t *)m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
fread(ROM, size);
m_type = get_cart_type(ROM, size);
diff --git a/src/devices/bus/generic/slot.cpp b/src/devices/bus/generic/slot.cpp
index a3db648b0e5..d081ceb5fed 100644
--- a/src/devices/bus/generic/slot.cpp
+++ b/src/devices/bus/generic/slot.cpp
@@ -189,9 +189,9 @@ std::string generic_slot_device::get_default_card_software()
uint32_t generic_slot_device::common_get_size(const char *region)
{
// if we are loading from softlist, you have to specify a region
- assert((software_entry() == nullptr) || (region != nullptr));
+ assert(!loaded_through_softlist() || (region != nullptr));
- return (software_entry() == nullptr) ? length() : get_software_region_length(region);
+ return !loaded_through_softlist() ? length() : get_software_region_length(region);
}
/*-------------------------------------------------
@@ -205,9 +205,9 @@ void generic_slot_device::common_load_rom(uint8_t *ROM, uint32_t len, const char
assert((ROM != nullptr) && (len > 0));
// if we are loading from softlist, you have to specify a region
- assert((software_entry() == nullptr) || (region != nullptr));
+ assert(!loaded_through_softlist() || (region != nullptr));
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(ROM, len);
else
memcpy(ROM, get_software_region(region), len);
diff --git a/src/devices/bus/intv/slot.cpp b/src/devices/bus/intv/slot.cpp
index 63bc7da4944..d6c3bad9d3c 100644
--- a/src/devices/bus/intv/slot.cpp
+++ b/src/devices/bus/intv/slot.cpp
@@ -391,7 +391,7 @@ image_init_result intv_cart_slot_device::call_load()
{
if (m_cart)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
return load_fullpath();
else
{
diff --git a/src/devices/bus/iq151/iq151.cpp b/src/devices/bus/iq151/iq151.cpp
index 2c478eeb8cf..4ee7a96b31f 100644
--- a/src/devices/bus/iq151/iq151.cpp
+++ b/src/devices/bus/iq151/iq151.cpp
@@ -171,7 +171,7 @@ image_init_result iq151cart_slot_device::call_load()
if (cart_base != nullptr)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
read_length = length();
fread(m_cart->get_cart_base(), read_length);
diff --git a/src/devices/bus/isa/sc499.cpp b/src/devices/bus/isa/sc499.cpp
index d443761ae2d..3d197791861 100644
--- a/src/devices/bus/isa/sc499.cpp
+++ b/src/devices/bus/isa/sc499.cpp
@@ -1352,7 +1352,7 @@ void sc499_ctape_image_device::call_unload()
{
m_ctape_data.resize(0);
// TODO: add save tape on exit?
- //if (software_entry() == nullptr)
+ //if (!loaded_through_softlist())
//{
// fseek(0, SEEK_SET);
// fwrite(m_ctape_data, m_ctape_data.size);
diff --git a/src/devices/bus/kc/kc.cpp b/src/devices/bus/kc/kc.cpp
index ea0f9d36e36..5ac9a424bd0 100644
--- a/src/devices/bus/kc/kc.cpp
+++ b/src/devices/bus/kc/kc.cpp
@@ -337,7 +337,7 @@ image_init_result kccart_slot_device::call_load()
if (cart_base != nullptr)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
read_length = length();
fread(m_cart->get_cart_base(), read_length);
diff --git a/src/devices/bus/m5/slot.cpp b/src/devices/bus/m5/slot.cpp
index 356cf79a5ac..9498e473322 100644
--- a/src/devices/bus/m5/slot.cpp
+++ b/src/devices/bus/m5/slot.cpp
@@ -163,10 +163,9 @@ image_init_result m5_cart_slot_device::call_load()
{
m_type=M5_STD;
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
const char *pcb_name = get_feature("slot");
- //software_info *name=m_software_info_ptr;
if (pcb_name) //is it ram cart?
m_type = m5_get_pcb_id(m_full_software_name.c_str());
else
@@ -175,7 +174,7 @@ image_init_result m5_cart_slot_device::call_load()
if (m_type == M5_STD || m_type>2) //carts with roms
{
- uint32_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
if (size > 0x5000 && m_type == M5_STD)
{
@@ -185,7 +184,7 @@ image_init_result m5_cart_slot_device::call_load()
m_cart->rom_alloc(size, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), size);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
diff --git a/src/devices/bus/megadrive/md_slot.cpp b/src/devices/bus/megadrive/md_slot.cpp
index 2c34c4b58e3..b6d864002f5 100644
--- a/src/devices/bus/megadrive/md_slot.cpp
+++ b/src/devices/bus/megadrive/md_slot.cpp
@@ -332,7 +332,7 @@ image_init_result base_md_cart_slot_device::call_load()
// STEP 1: load the file image and keep a copy for later banking
// STEP 2: identify the cart type
// The two steps are carried out differently if we are loading from a list or not
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
res = load_nonlist();
else
res = load_list();
@@ -1008,7 +1008,7 @@ void base_md_cart_slot_device::file_logging(uint8_t *ROM8, uint32_t rom_len, uin
logerror("FILE DETAILS\n");
logerror("============\n");
logerror("Name: %s\n", basename());
- logerror("File Size: 0x%08x\n", (software_entry() == nullptr) ? (int)length() : (int)get_software_region_length("rom"));
+ logerror("File Size: 0x%08x\n", !loaded_through_softlist() ? (int)length() : (int)get_software_region_length("rom"));
logerror("Detected type: %s\n", md_get_slot(m_type));
logerror("ROM (Allocated) Size: 0x%X\n", rom_len);
logerror("NVRAM: %s\n", nvram_len ? "Yes" : "No");
diff --git a/src/devices/bus/msx_slot/cartridge.cpp b/src/devices/bus/msx_slot/cartridge.cpp
index d7742676d1d..0727dce6151 100644
--- a/src/devices/bus/msx_slot/cartridge.cpp
+++ b/src/devices/bus/msx_slot/cartridge.cpp
@@ -106,7 +106,7 @@ image_init_result msx_slot_cartridge_device::call_load()
{
if ( m_cartridge )
{
- if ( software_entry() )
+ if (loaded_through_softlist())
{
uint32_t length;
diff --git a/src/devices/bus/neogeo/slot.cpp b/src/devices/bus/neogeo/slot.cpp
index a303f5a4d77..b4dcf7ddfff 100644
--- a/src/devices/bus/neogeo/slot.cpp
+++ b/src/devices/bus/neogeo/slot.cpp
@@ -239,7 +239,7 @@ image_init_result neogeo_cart_slot_device::call_load()
{
if (m_cart)
{
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
uint16_t *ROM16;
uint8_t *ROM8;
diff --git a/src/devices/bus/nes/aladdin.cpp b/src/devices/bus/nes/aladdin.cpp
index dcdd4e5e4d9..9eb9983f6b9 100644
--- a/src/devices/bus/nes/aladdin.cpp
+++ b/src/devices/bus/nes/aladdin.cpp
@@ -102,7 +102,7 @@ image_init_result nes_aladdin_slot_device::call_load()
if (!ROM)
return image_init_result::FAIL;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
if (length() != 0x20010 && length() != 0x40010)
return image_init_result::FAIL;
diff --git a/src/devices/bus/nes/datach.cpp b/src/devices/bus/nes/datach.cpp
index 20f9998bc30..c67c077ce4a 100644
--- a/src/devices/bus/nes/datach.cpp
+++ b/src/devices/bus/nes/datach.cpp
@@ -102,7 +102,7 @@ image_init_result nes_datach_slot_device::call_load()
return image_init_result::FAIL;
// Existing Datach carts are all 256K, so we only load files of this size
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
if (length() != 0x40000 && length() != 0x40010)
return image_init_result::FAIL;
diff --git a/src/devices/bus/nes/karastudio.cpp b/src/devices/bus/nes/karastudio.cpp
index 3b847c43d87..74c9704c766 100644
--- a/src/devices/bus/nes/karastudio.cpp
+++ b/src/devices/bus/nes/karastudio.cpp
@@ -105,8 +105,8 @@ image_init_result nes_kstudio_slot_device::call_load()
if (!ROM)
return image_init_result::FAIL;
- // Existing exapnsion carts are all 128K, so we only load files of this size
- if (software_entry() == nullptr)
+ // Existing expansion carts are all 128K, so we only load files of this size
+ if (!loaded_through_softlist())
{
if (length() != 0x20000)
return image_init_result::FAIL;
diff --git a/src/devices/bus/nes/nes_slot.cpp b/src/devices/bus/nes/nes_slot.cpp
index 8dcb2cc7ba1..d2cf5491d69 100644
--- a/src/devices/bus/nes/nes_slot.cpp
+++ b/src/devices/bus/nes/nes_slot.cpp
@@ -833,7 +833,7 @@ image_init_result nes_cart_slot_device::call_load()
{
if (m_cart)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
char magic[4];
diff --git a/src/devices/bus/nes/sunsoft_dcs.cpp b/src/devices/bus/nes/sunsoft_dcs.cpp
index 5e3fc043259..0ad26e2374e 100644
--- a/src/devices/bus/nes/sunsoft_dcs.cpp
+++ b/src/devices/bus/nes/sunsoft_dcs.cpp
@@ -85,7 +85,7 @@ image_init_result nes_ntb_slot_device::call_load()
if (!ROM)
return image_init_result::FAIL;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
if (length() != 0x4000)
return image_init_result::FAIL;
diff --git a/src/devices/bus/odyssey2/slot.cpp b/src/devices/bus/odyssey2/slot.cpp
index 2593647a23c..be6f1441876 100644
--- a/src/devices/bus/odyssey2/slot.cpp
+++ b/src/devices/bus/odyssey2/slot.cpp
@@ -162,15 +162,15 @@ image_init_result o2_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
m_cart->rom_alloc(size, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), size);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
m_type = O2_STD;
if (size == 12288)
diff --git a/src/devices/bus/pce/pce_slot.cpp b/src/devices/bus/pce/pce_slot.cpp
index 99b625244af..eb6fd88965a 100644
--- a/src/devices/bus/pce/pce_slot.cpp
+++ b/src/devices/bus/pce/pce_slot.cpp
@@ -227,11 +227,11 @@ image_init_result pce_cart_slot_device::call_load()
if (m_cart)
{
uint32_t offset;
- uint32_t len = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t len = !loaded_through_softlist() ? length() : get_software_region_length("rom");
uint8_t *ROM;
// From fullpath, check for presence of a header and skip it
- if (software_entry() == nullptr && (len % 0x4000) == 512)
+ if (!loaded_through_softlist() && (len % 0x4000) == 512)
{
logerror("Rom-header found, skipping\n");
offset = 512;
@@ -242,7 +242,7 @@ image_init_result pce_cart_slot_device::call_load()
m_cart->rom_alloc(len, tag());
ROM = m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(ROM, len);
else
memcpy(ROM, get_software_region("rom"), len);
@@ -263,7 +263,7 @@ image_init_result pce_cart_slot_device::call_load()
m_cart->rom_map_setup(len);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
m_type = get_cart_type(ROM, len);
else
{
diff --git a/src/devices/bus/plus4/exp.cpp b/src/devices/bus/plus4/exp.cpp
index c3de43c3999..2bdd35361fc 100644
--- a/src/devices/bus/plus4/exp.cpp
+++ b/src/devices/bus/plus4/exp.cpp
@@ -125,7 +125,7 @@ image_init_result plus4_expansion_slot_device::call_load()
{
if (m_card)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
// TODO
}
diff --git a/src/devices/bus/pofo/ccm.cpp b/src/devices/bus/pofo/ccm.cpp
index db60b8e978a..edab9fa1f63 100644
--- a/src/devices/bus/pofo/ccm.cpp
+++ b/src/devices/bus/pofo/ccm.cpp
@@ -72,7 +72,7 @@ image_init_result portfolio_memory_card_slot_t::call_load()
{
if (m_card)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
fread(m_card->m_rom, length());
}
diff --git a/src/devices/bus/ql/rom.cpp b/src/devices/bus/ql/rom.cpp
index 49f6224419d..c4f0ff2eb78 100644
--- a/src/devices/bus/ql/rom.cpp
+++ b/src/devices/bus/ql/rom.cpp
@@ -82,7 +82,7 @@ image_init_result ql_rom_cartridge_slot_t::call_load()
{
size_t size;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
size = length();
diff --git a/src/devices/bus/saturn/sat_slot.cpp b/src/devices/bus/saturn/sat_slot.cpp
index 49e708d7cad..456b9af3d0f 100644
--- a/src/devices/bus/saturn/sat_slot.cpp
+++ b/src/devices/bus/saturn/sat_slot.cpp
@@ -149,18 +149,18 @@ image_init_result sat_cart_slot_device::call_load()
{
if (m_cart)
{
- bool is_rom = ((software_entry() == nullptr) || ((software_entry() != nullptr) && get_software_region("rom")));
+ bool is_rom = (!loaded_through_softlist() || (loaded_through_softlist() && get_software_region("rom")));
if (is_rom)
{
// from fullpath, only ROM carts
- uint32_t len = (software_entry() != nullptr) ? get_software_region_length("rom") : length();
+ uint32_t len = loaded_through_softlist() ? get_software_region_length("rom") : length();
uint32_t *ROM;
m_cart->rom_alloc(len, tag());
ROM = m_cart->get_rom_base();
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
memcpy(ROM, get_software_region("rom"), len);
else
fread(ROM, len);
diff --git a/src/devices/bus/scv/slot.cpp b/src/devices/bus/scv/slot.cpp
index 799f4adc78a..a0b4c3a5900 100644
--- a/src/devices/bus/scv/slot.cpp
+++ b/src/devices/bus/scv/slot.cpp
@@ -165,8 +165,8 @@ image_init_result scv_cart_slot_device::call_load()
if (m_cart)
{
uint8_t *ROM;
- uint32_t len = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
- bool has_ram = (software_entry() != nullptr) && get_software_region("ram");
+ uint32_t len = !loaded_through_softlist() ? length() : get_software_region_length("rom");
+ bool has_ram = loaded_through_softlist() && get_software_region("ram");
if (len > 0x20000)
{
@@ -180,12 +180,12 @@ image_init_result scv_cart_slot_device::call_load()
ROM = m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(ROM, len);
else
memcpy(ROM, get_software_region("rom"), len);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
m_type = get_cart_type(ROM, len);
else
{
diff --git a/src/devices/bus/sega8/sega8_slot.cpp b/src/devices/bus/sega8/sega8_slot.cpp
index 92fc594389d..17216c1ec58 100644
--- a/src/devices/bus/sega8/sega8_slot.cpp
+++ b/src/devices/bus/sega8/sega8_slot.cpp
@@ -271,7 +271,7 @@ void sega8_cart_slot_device::set_lphaser_xoffset( uint8_t *rom, int size )
void sega8_cart_slot_device::setup_ram()
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
if (m_type == SEGA8_CASTLE)
{
@@ -336,7 +336,7 @@ image_init_result sega8_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t len = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t len = !loaded_through_softlist() ? length() : get_software_region_length("rom");
uint32_t offset = 0;
uint8_t *ROM;
@@ -360,7 +360,7 @@ image_init_result sega8_cart_slot_device::call_load()
m_cart->rom_alloc(len, tag());
ROM = m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
fseek(offset, SEEK_SET);
fread(ROM, len);
@@ -372,7 +372,7 @@ image_init_result sega8_cart_slot_device::call_load()
if (verify_cart(ROM, len) != image_verify_result::PASS)
logerror("Warning loading image: verify_cart failed\n");
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
m_type = sega8_get_pcb_id(get_feature("slot") ? get_feature("slot") : "rom");
else
m_type = get_cart_type(ROM, len);
@@ -382,7 +382,7 @@ image_init_result sega8_cart_slot_device::call_load()
setup_ram();
// Check for gamegear cartridges with PIN 42 set to SMS mode
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
const char *pin_42 = get_feature("pin_42");
if (pin_42 && !strcmp(pin_42, "sms_mode"))
@@ -720,7 +720,7 @@ void sega8_cart_slot_device::internal_header_logging(uint8_t *ROM, uint32_t len,
logerror("FILE DETAILS\n" );
logerror("============\n" );
logerror("Name: %s\n", basename());
- logerror("File Size: 0x%08x\n", (software_entry() == nullptr) ? (int)length() : (int)get_software_region_length("rom"));
+ logerror("File Size: 0x%08x\n", !loaded_through_softlist() ? (int)length() : (int)get_software_region_length("rom"));
logerror("Detected type: %s\n", sega8_get_slot(m_type));
logerror("ROM (Allocated) Size: 0x%X\n", len);
logerror("RAM: %s\n", nvram_len ? "Yes" : "No");
diff --git a/src/devices/bus/snes/snes_slot.cpp b/src/devices/bus/snes/snes_slot.cpp
index ae553a7f612..10bf17645f6 100644
--- a/src/devices/bus/snes/snes_slot.cpp
+++ b/src/devices/bus/snes/snes_slot.cpp
@@ -609,7 +609,7 @@ image_init_result base_sns_cart_slot_device::call_load()
const char *slot_name;
/* Check for a header (512 bytes), and skip it if found */
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
uint32_t tmplen = length();
std::vector<uint8_t> tmpROM(tmplen);
@@ -618,11 +618,11 @@ image_init_result base_sns_cart_slot_device::call_load()
fseek(offset, SEEK_SET);
}
- len = (software_entry() == nullptr) ? (length() - offset) : get_software_region_length("rom");
+ len = !loaded_through_softlist() ? (length() - offset) : get_software_region_length("rom");
m_cart->rom_alloc(len, tag());
ROM = m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(ROM, len);
else
memcpy(ROM, get_software_region("rom"), len);
@@ -630,7 +630,7 @@ image_init_result base_sns_cart_slot_device::call_load()
m_cart->rom_map_setup(len);
// check for on-cart CPU bios
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
if (get_software_region("addon"))
{
@@ -640,7 +640,7 @@ image_init_result base_sns_cart_slot_device::call_load()
}
// get pcb type
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
get_cart_type_addon(ROM, len, m_type, m_addon);
else
{
@@ -653,7 +653,7 @@ image_init_result base_sns_cart_slot_device::call_load()
m_type = SNES_DSP_2MB;
}
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
setup_addon_from_fullpath();
// in carts with an add-on CPU having internal dump, this speeds up access to the internal rom
@@ -845,7 +845,7 @@ void base_sns_cart_slot_device::setup_nvram()
{
uint8_t *ROM = (uint8_t *)m_cart->get_rom_base();
uint32_t size = 0;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
int hilo_mode = snes_find_hilo_mode(this, ROM, m_cart->get_rom_size());
uint8_t sram_size = (m_type == SNES_SFX) ? (ROM[0x00ffbd] & 0x07) : (ROM[hilo_mode + 0x18] & 0x07);
diff --git a/src/devices/bus/vboy/slot.cpp b/src/devices/bus/vboy/slot.cpp
index d89e497a3b5..11be9933ebc 100644
--- a/src/devices/bus/vboy/slot.cpp
+++ b/src/devices/bus/vboy/slot.cpp
@@ -163,8 +163,8 @@ image_init_result vboy_cart_slot_device::call_load()
if (m_cart)
{
uint8_t *ROM;
- uint32_t len = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
- bool has_eeprom = (software_entry() != nullptr) && get_software_region("eeprom");
+ uint32_t len = !loaded_through_softlist() ? length() : get_software_region_length("rom");
+ bool has_eeprom = loaded_through_softlist() && get_software_region("eeprom");
if (len > 0x200000)
{
@@ -180,7 +180,7 @@ image_init_result vboy_cart_slot_device::call_load()
ROM = (uint8_t *)m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(ROM, len);
else
memcpy(ROM, get_software_region("rom"), len);
@@ -189,7 +189,7 @@ image_init_result vboy_cart_slot_device::call_load()
if (len < 0x100000) { memcpy(ROM + 0x080000, ROM, 0x080000); }
if (len < 0x200000) { memcpy(ROM + 0x100000, ROM, 0x100000); }
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
m_type = vboy_get_pcb_id("vb_rom");
else
{
diff --git a/src/devices/bus/vc4000/slot.cpp b/src/devices/bus/vc4000/slot.cpp
index e582831151f..572645eff81 100644
--- a/src/devices/bus/vc4000/slot.cpp
+++ b/src/devices/bus/vc4000/slot.cpp
@@ -174,7 +174,7 @@ image_init_result vc4000_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
if (size > 0x1800)
{
@@ -184,12 +184,12 @@ image_init_result vc4000_cart_slot_device::call_load()
m_cart->rom_alloc(size, tag());
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(m_cart->get_rom_base(), size);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
m_type = VC4000_STD;
// attempt to identify the non-standard types
diff --git a/src/devices/bus/vcs/vcs_slot.cpp b/src/devices/bus/vcs/vcs_slot.cpp
index ce28ddcbbfb..17efc8d8069 100644
--- a/src/devices/bus/vcs/vcs_slot.cpp
+++ b/src/devices/bus/vcs/vcs_slot.cpp
@@ -189,7 +189,7 @@ image_init_result vcs_cart_slot_device::call_load()
uint8_t *ROM;
uint32_t len;
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
len = get_software_region_length("rom");
else
len = length();
@@ -219,7 +219,7 @@ image_init_result vcs_cart_slot_device::call_load()
m_cart->rom_alloc(len, tag());
ROM = m_cart->get_rom_base();
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
const char *pcb_name;
bool has_ram = get_software_region("ram") ? true : false;
diff --git a/src/devices/bus/vectrex/slot.cpp b/src/devices/bus/vectrex/slot.cpp
index 44649a8929a..99ad846fd4c 100644
--- a/src/devices/bus/vectrex/slot.cpp
+++ b/src/devices/bus/vectrex/slot.cpp
@@ -152,7 +152,7 @@ image_init_result vectrex_cart_slot_device::call_load()
{
if (m_cart)
{
- uint32_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
uint8_t *ROM;
if (size > 0x10000)
@@ -164,7 +164,7 @@ image_init_result vectrex_cart_slot_device::call_load()
m_cart->rom_alloc((size < 0x1000) ? 0x1000 : size, tag());
ROM = m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(ROM, size);
else
memcpy(ROM, get_software_region("rom"), size);
diff --git a/src/devices/bus/vic10/exp.cpp b/src/devices/bus/vic10/exp.cpp
index dc162e12f8a..cf8388d18e2 100644
--- a/src/devices/bus/vic10/exp.cpp
+++ b/src/devices/bus/vic10/exp.cpp
@@ -115,7 +115,7 @@ image_init_result vic10_expansion_slot_device::call_load()
{
size_t size;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
size = length();
diff --git a/src/devices/bus/vic20/exp.cpp b/src/devices/bus/vic20/exp.cpp
index d240517cf84..feacc8546c4 100644
--- a/src/devices/bus/vic20/exp.cpp
+++ b/src/devices/bus/vic20/exp.cpp
@@ -112,7 +112,7 @@ image_init_result vic20_expansion_slot_device::call_load()
{
if (m_card)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
if (is_filetype("20")) fread(m_card->m_blk1, 0x2000);
else if (is_filetype("40")) fread(m_card->m_blk2, 0x2000);
diff --git a/src/devices/bus/vidbrain/exp.cpp b/src/devices/bus/vidbrain/exp.cpp
index b58e981c66b..a91c6a6a88e 100644
--- a/src/devices/bus/vidbrain/exp.cpp
+++ b/src/devices/bus/vidbrain/exp.cpp
@@ -119,7 +119,7 @@ image_init_result videobrain_expansion_slot_device::call_load()
{
size_t size;
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
size = length();
diff --git a/src/devices/bus/wswan/slot.cpp b/src/devices/bus/wswan/slot.cpp
index de0b0393179..0472cfa2ad5 100644
--- a/src/devices/bus/wswan/slot.cpp
+++ b/src/devices/bus/wswan/slot.cpp
@@ -165,18 +165,18 @@ image_init_result ws_cart_slot_device::call_load()
if (m_cart)
{
uint8_t *ROM;
- uint32_t size = (software_entry() == nullptr) ? length() : get_software_region_length("rom");
+ uint32_t size = !loaded_through_softlist() ? length() : get_software_region_length("rom");
uint32_t nvram_size = 0;
m_cart->rom_alloc(size, tag());
ROM = m_cart->get_rom_base();
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
fread(ROM, size);
else
memcpy(ROM, get_software_region("rom"), size);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
int chunks = size / 0x10000;
// get cart type and nvram length
diff --git a/src/devices/bus/z88/z88.cpp b/src/devices/bus/z88/z88.cpp
index 193d483a147..c9965987a92 100644
--- a/src/devices/bus/z88/z88.cpp
+++ b/src/devices/bus/z88/z88.cpp
@@ -125,7 +125,7 @@ image_init_result z88cart_slot_device::call_load()
if (cart_base != nullptr)
{
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
read_length = length();
fread(cart_base + (m_cart->get_cart_size() - read_length), read_length);
diff --git a/src/devices/imagedev/chd_cd.cpp b/src/devices/imagedev/chd_cd.cpp
index 103806c1e62..166fdf7945c 100644
--- a/src/devices/imagedev/chd_cd.cpp
+++ b/src/devices/imagedev/chd_cd.cpp
@@ -94,7 +94,7 @@ image_init_result cdrom_image_device::call_load()
if (m_cdrom_handle)
cdrom_close(m_cdrom_handle);
- if (software_entry() == nullptr)
+ if (!loaded_through_softlist())
{
if (is_filetype("chd") && is_loaded()) {
err = m_self_chd.open( image_core_file() ); /* CDs are never writeable */
diff --git a/src/devices/imagedev/diablo.cpp b/src/devices/imagedev/diablo.cpp
index 58f17793b2a..5852da4a58e 100644
--- a/src/devices/imagedev/diablo.cpp
+++ b/src/devices/imagedev/diablo.cpp
@@ -214,7 +214,7 @@ image_init_result diablo_image_device::internal_load_dsk()
hard_disk_close(m_hard_disk_handle);
/* open the CHD file */
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
m_chd = device().machine().rom_load().get_disk_handle(device().subtag("harddriv").c_str());
}
diff --git a/src/devices/imagedev/harddriv.cpp b/src/devices/imagedev/harddriv.cpp
index a6e0276b8ff..355b43bcb65 100644
--- a/src/devices/imagedev/harddriv.cpp
+++ b/src/devices/imagedev/harddriv.cpp
@@ -244,7 +244,7 @@ image_init_result harddisk_image_device::internal_load_hd()
}
/* open the CHD file */
- if (software_entry() != nullptr)
+ if (loaded_through_softlist())
{
m_chd = machine().rom_load().get_disk_handle(device().subtag("harddriv").c_str());
}
diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp
index e4977f2de3d..83913db1aee 100644
--- a/src/emu/diimage.cpp
+++ b/src/emu/diimage.cpp
@@ -89,7 +89,6 @@ device_image_interface::device_image_interface(const machine_config &mconfig, de
m_err(),
m_file(),
m_mame_file(),
- m_software_info_ptr(nullptr),
m_software_part_ptr(nullptr),
m_supported(0),
m_readonly(false),
@@ -428,6 +427,17 @@ const std::string &device_image_interface::working_directory()
//-------------------------------------------------
+// software_entry - return a pointer to the
+// software_info structure from the softlist
+//-------------------------------------------------
+
+const software_info *device_image_interface::software_entry() const
+{
+ return (m_software_part_ptr == nullptr) ? nullptr : &m_software_part_ptr->info();
+}
+
+
+//-------------------------------------------------
// get_software_region
//-------------------------------------------------
@@ -435,7 +445,7 @@ u8 *device_image_interface::get_software_region(const char *tag)
{
char full_tag[256];
- if ( m_software_info_ptr == nullptr || m_software_part_ptr == nullptr )
+ if (!loaded_through_softlist())
return nullptr;
sprintf( full_tag, "%s:%s", device().tag(), tag );
@@ -536,7 +546,7 @@ void device_image_interface::image_checkhash()
return;
// Skip calculating the hash when we have an image mounted through a software list
- if ( m_software_info_ptr )
+ if (loaded_through_softlist())
return;
// retrieve the partial hash func
@@ -700,7 +710,6 @@ bool device_image_interface::is_loaded()
return (m_file != nullptr);
}
-
//-------------------------------------------------
// image_error_from_file_error - converts an image
// error to a file error
@@ -1081,8 +1090,7 @@ image_init_result device_image_interface::load_software(const std::string &softw
m_is_loading = true;
// Check if there's a software list defined for this device and use that if we're not creating an image
- std::string list_name;
- bool softload = load_software_part(software_identifier, m_software_part_ptr, &list_name);
+ bool softload = load_software_part(software_identifier);
if (!softload)
{
m_is_loading = false;
@@ -1090,8 +1098,6 @@ image_init_result device_image_interface::load_software(const std::string &softw
}
// set up softlist stuff
- m_software_info_ptr = &m_software_part_ptr->info();
- m_software_list_name = std::move(list_name);
m_full_software_name = m_software_part_ptr->info().shortname();
// specify image name with softlist-derived names
@@ -1107,23 +1113,22 @@ image_init_result device_image_interface::load_software(const std::string &softw
if (read_only && !strcmp(read_only, "true"))
{
// Copy some image information when we have been loaded through a software list
- if (m_software_info_ptr)
- {
- // sanitize
- if (m_software_info_ptr->longname().empty() || m_software_info_ptr->publisher().empty() || m_software_info_ptr->year().empty())
- fatalerror("Each entry in an XML list must have all of the following fields: description, publisher, year!\n");
+ software_info &swinfo = m_software_part_ptr->info();
- // store
- m_longname = m_software_info_ptr->longname();
- m_manufacturer = m_software_info_ptr->publisher();
- m_year = m_software_info_ptr->year();
+ // sanitize
+ if (swinfo.longname().empty() || swinfo.publisher().empty() || swinfo.year().empty())
+ fatalerror("Each entry in an XML list must have all of the following fields: description, publisher, year!\n");
- // set file type
- std::string filename = (m_mame_file != nullptr) && (m_mame_file->filename() != nullptr)
+ // store
+ m_longname = swinfo.longname();
+ m_manufacturer = swinfo.publisher();
+ m_year = swinfo.year();
+
+ // set file type
+ std::string filename = (m_mame_file != nullptr) && (m_mame_file->filename() != nullptr)
? m_mame_file->filename()
: "";
- m_filetype = core_filename_extract_extension(filename, true);
- }
+ m_filetype = core_filename_extract_extension(filename, true);
}
// call finish_load if necessary
@@ -1158,7 +1163,7 @@ bool device_image_interface::open_image_file(emu_options &options)
set_init_phase();
if (load_internal(path, false, 0, nullptr, true) == image_init_result::PASS)
{
- if (software_entry()==nullptr) return true;
+ if (!loaded_through_softlist()) return true;
}
}
return false;
@@ -1260,7 +1265,6 @@ void device_image_interface::clear()
m_filetype.clear();
m_full_software_name.clear();
- m_software_info_ptr = nullptr;
m_software_part_ptr = nullptr;
m_software_list_name.clear();
}
@@ -1272,7 +1276,7 @@ void device_image_interface::clear()
void device_image_interface::unload()
{
- if (is_loaded() || m_software_info_ptr)
+ if (is_loaded() || loaded_through_softlist())
{
call_unload();
}
@@ -1406,12 +1410,12 @@ const software_list_loader &device_image_interface::get_software_list_loader() c
// sw_info and sw_part are also set.
//-------------------------------------------------
-bool device_image_interface::load_software_part(const std::string &identifier, const software_part *&swpart, std::string *list_name)
+bool device_image_interface::load_software_part(const std::string &identifier)
{
// if no match has been found, we suggest similar shortnames
software_list_device *swlist;
- swpart = find_software_item(identifier, true, &swlist);
- if (swpart == nullptr)
+ m_software_part_ptr = find_software_item(identifier, true, &swlist);
+ if (m_software_part_ptr == nullptr)
{
software_list_device::display_matches(device().machine().config(), image_interface(), identifier);
return false;
@@ -1422,33 +1426,33 @@ bool device_image_interface::load_software_part(const std::string &identifier, c
set_init_phase();
// Load the software part
- const char *swname = swpart->info().shortname().c_str();
- const rom_entry *start_entry = swpart->romdata().data();
+ const char *swname = m_software_part_ptr->info().shortname().c_str();
+ const rom_entry *start_entry = m_software_part_ptr->romdata().data();
const software_list_loader &loader = get_software_list_loader();
bool result = loader.load_software(*this, *swlist, swname, start_entry);
#ifdef UNUSED_VARIABLE
// Tell the world which part we actually loaded
- std::string full_sw_name = string_format("%s:%s:%s", swlist.list_name(), swpart->info().shortname(), swpart->name());
+ std::string full_sw_name = string_format("%s:%s:%s", swlist->list_name(), m_software_part_ptr->info().shortname(), m_software_part_ptr->name());
#endif
// check compatibility
- switch (swlist->is_compatible(*swpart))
+ switch (swlist->is_compatible(*m_software_part_ptr))
{
case SOFTWARE_IS_COMPATIBLE:
break;
case SOFTWARE_IS_INCOMPATIBLE:
- swlist->popmessage("WARNING! the set %s might not work on this system due to incompatible filter(s) '%s'\n", swpart->info().shortname(), swlist->filter());
+ swlist->popmessage("WARNING! the set %s might not work on this system due to incompatible filter(s) '%s'\n", m_software_part_ptr->info().shortname(), swlist->filter());
break;
case SOFTWARE_NOT_COMPATIBLE:
- swlist->popmessage("WARNING! the set %s might not work on this system due to missing filter(s) '%s'\n", swpart->info().shortname(), swlist->filter());
+ swlist->popmessage("WARNING! the set %s might not work on this system due to missing filter(s) '%s'\n", m_software_part_ptr->info().shortname(), swlist->filter());
break;
}
// check requirements and load those images
- const char *requirement = swpart->feature("requirement");
+ const char *requirement = m_software_part_ptr->feature("requirement");
if (requirement != nullptr)
{
const software_part *req_swpart = find_software_item(requirement, false);
@@ -1462,8 +1466,8 @@ bool device_image_interface::load_software_part(const std::string &identifier, c
}
}
}
- if (list_name != nullptr)
- *list_name = swlist->list_name();
+
+ m_software_list_name = swlist->list_name();
return result;
}
diff --git a/src/emu/diimage.h b/src/emu/diimage.h
index 3e25c1fb565..f5863f11705 100644
--- a/src/emu/diimage.h
+++ b/src/emu/diimage.h
@@ -199,10 +199,10 @@ public:
const std::string &year() const { return m_year; }
u32 supported() const { return m_supported; }
- const software_info *software_entry() const { return m_software_info_ptr; }
+ const software_info *software_entry() const;
const software_part *part_entry() const { return m_software_part_ptr; }
const char *software_list_name() const { return m_software_list_name.c_str(); }
- bool loaded_through_softlist() const { return m_software_info_ptr != nullptr; }
+ bool loaded_through_softlist() const { return m_software_part_ptr != nullptr; }
void set_working_directory(const char *working_directory) { m_working_directory = working_directory; }
const std::string &working_directory();
@@ -275,7 +275,7 @@ protected:
void update_names(const device_type device_type = nullptr, const char *inst = nullptr, const char *brief = nullptr);
const software_part *find_software_item(const std::string &identifier, bool restrict_to_interface, software_list_device **device = nullptr) const;
- bool load_software_part(const std::string &identifier, const software_part *&swpart, std::string *list_name = nullptr);
+ bool load_software_part(const std::string &identifier);
std::string software_get_default_slot(const char *default_card_slot) const;
void add_format(std::unique_ptr<image_device_format> &&format);
@@ -301,7 +301,6 @@ protected:
// Software information
std::string m_full_software_name;
- const software_info *m_software_info_ptr;
const software_part *m_software_part_ptr;
std::string m_software_list_name;
diff --git a/src/frontend/mame/cheat.cpp b/src/frontend/mame/cheat.cpp
index 606d1ec74f0..7e07524d2ea 100644
--- a/src/frontend/mame/cheat.cpp
+++ b/src/frontend/mame/cheat.cpp
@@ -1159,7 +1159,7 @@ void cheat_manager::reload()
// if we are loading through a software list, try to load softlist_name/shortname.xml
// this allows the coexistence of arcade cheats with cheats for home conversions which
// have the same shortname
- if (image.software_entry() != nullptr)
+ if (image.loaded_through_softlist())
{
load_cheats(string_format("%s%s%s", image.software_list_name(), PATH_SEPARATOR, image.basename()).c_str());
break;
diff --git a/src/frontend/mame/ui/filemngr.cpp b/src/frontend/mame/ui/filemngr.cpp
index 74916b46ac1..8b4c758c69d 100644
--- a/src/frontend/mame/ui/filemngr.cpp
+++ b/src/frontend/mame/ui/filemngr.cpp
@@ -78,7 +78,7 @@ void menu_file_manager::fill_image_line(device_image_interface *img, std::string
filename.assign(img->basename());
// if the image has been loaded through softlist, also show the loaded part
- if (img->part_entry() != nullptr)
+ if (img->loaded_through_softlist())
{
const software_part *tmp = img->part_entry();
if (!tmp->name().empty())
diff --git a/src/frontend/mame/ui/info.cpp b/src/frontend/mame/ui/info.cpp
index 18a2039e5d4..e1eca68ada8 100644
--- a/src/frontend/mame/ui/info.cpp
+++ b/src/frontend/mame/ui/info.cpp
@@ -411,7 +411,7 @@ void menu_image_info::image_info(device_image_interface *image)
item_append(image->brief_instance_name(), image->basename(), 0, nullptr);
// if image has been loaded through softlist, let's add some more info
- if (image->software_entry())
+ if (image->loaded_through_softlist())
{
// display long filename
item_append(image->longname(), "", FLAG_DISABLE, nullptr);
diff --git a/src/frontend/mame/ui/inifile.cpp b/src/frontend/mame/ui/inifile.cpp
index 6889bebf1d4..f89e614b30a 100644
--- a/src/frontend/mame/ui/inifile.cpp
+++ b/src/frontend/mame/ui/inifile.cpp
@@ -188,10 +188,10 @@ void favorite_manager::add_favorite_game()
auto software_avail = false;
for (device_image_interface &image : image_interface_iterator(machine().root_device()))
{
- if (image.exists() && image.software_entry())
+ if (image.exists() && image.loaded_through_softlist())
{
- auto swinfo = image.software_entry();
- auto part = image.part_entry();
+ const software_info *swinfo = image.software_entry();
+ const software_part *part = image.part_entry();
ui_software_info tmpmatches;
tmpmatches.shortname = swinfo->shortname();
tmpmatches.longname = image.longname();
diff --git a/src/mame/drivers/aim65.cpp b/src/mame/drivers/aim65.cpp
index 49acc045602..c454952b037 100644
--- a/src/mame/drivers/aim65.cpp
+++ b/src/mame/drivers/aim65.cpp
@@ -157,7 +157,7 @@ image_init_result aim65_state::load_cart(device_image_interface &image, generic_
return image_init_result::FAIL;
}
- if (image.software_entry() != nullptr && image.get_software_region(slot_tag) == nullptr)
+ if (image.loaded_through_softlist() && image.get_software_region(slot_tag) == nullptr)
{
std::string errmsg = string_format(
"Attempted to load file with wrong extension\nSocket '%s' only accepts files with '.%s' extension",
diff --git a/src/mame/drivers/beta.cpp b/src/mame/drivers/beta.cpp
index 556d671c441..a762114cb7a 100644
--- a/src/mame/drivers/beta.cpp
+++ b/src/mame/drivers/beta.cpp
@@ -300,7 +300,7 @@ DEVICE_IMAGE_LOAD_MEMBER( beta_state, beta_eprom )
DEVICE_IMAGE_UNLOAD_MEMBER( beta_state, beta_eprom )
{
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
image.fwrite(&m_eprom_rom[0], 0x800);
}
diff --git a/src/mame/drivers/geniusiq.cpp b/src/mame/drivers/geniusiq.cpp
index 2f4c0f1c44d..93a626db3d6 100644
--- a/src/mame/drivers/geniusiq.cpp
+++ b/src/mame/drivers/geniusiq.cpp
@@ -770,7 +770,7 @@ DEVICE_IMAGE_LOAD_MEMBER(geniusiq_state,iq128_cart)
m_cart_state = IQ128_ROM_CART;
- if (image.software_entry() != nullptr)
+ if (image.loaded_through_softlist())
{
const char *pcb_type = image.get_feature("pcb_type");
if (pcb_type)
diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp
index b050a5ed0e0..5facc666246 100644
--- a/src/mame/drivers/ibmpcjr.cpp
+++ b/src/mame/drivers/ibmpcjr.cpp
@@ -441,7 +441,7 @@ image_init_result pcjr_state::load_cart(device_image_interface &image, generic_s
uint32_t size = slot->common_get_size("rom");
bool imagic_hack = false;
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
int header_size = 0;
diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp
index 0fedfa777be..e1317a70ce2 100644
--- a/src/mame/drivers/jaguar.cpp
+++ b/src/mame/drivers/jaguar.cpp
@@ -2057,7 +2057,7 @@ DEVICE_IMAGE_LOAD_MEMBER( jaguar_state, jaguar_cart )
{
uint32_t size, load_offset = 0;
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
size = image.length();
diff --git a/src/mame/drivers/megadriv.cpp b/src/mame/drivers/megadriv.cpp
index a3734c3240a..5a56afe0e00 100644
--- a/src/mame/drivers/megadriv.cpp
+++ b/src/mame/drivers/megadriv.cpp
@@ -532,7 +532,7 @@ DEVICE_IMAGE_LOAD_MEMBER( md_cons_state, _32x_cart )
uint32_t *ROM32;
int i;
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
length = image.length();
temp_copy.resize(length);
diff --git a/src/mame/drivers/megatech.cpp b/src/mame/drivers/megatech.cpp
index d65f00b76c1..09091c55f16 100644
--- a/src/mame/drivers/megatech.cpp
+++ b/src/mame/drivers/megatech.cpp
@@ -724,7 +724,7 @@ image_init_result mtech_state::load_cart(device_image_interface &image, generic_
const char *pcb_name;
uint32_t size = slot->common_get_size("rom");
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
return image_init_result::FAIL;
slot->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
diff --git a/src/mame/drivers/microvsn.cpp b/src/mame/drivers/microvsn.cpp
index be32aecb1a1..392f5a235ad 100644
--- a/src/mame/drivers/microvsn.cpp
+++ b/src/mame/drivers/microvsn.cpp
@@ -516,7 +516,7 @@ DEVICE_IMAGE_LOAD_MEMBER(microvision_state, microvsn_cart)
}
/* Read cartridge */
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
if (image.fread(rom1, file_size) != file_size)
{
diff --git a/src/mame/drivers/n64.cpp b/src/mame/drivers/n64.cpp
index 53b0bfcf0f0..09b736400c2 100644
--- a/src/mame/drivers/n64.cpp
+++ b/src/mame/drivers/n64.cpp
@@ -298,7 +298,7 @@ DEVICE_IMAGE_LOAD_MEMBER(n64_mess_state,n64_cart)
n64_periphs *periphs = machine().device<n64_periphs>("rcp");
uint8_t *cart = memregion("user2")->base();
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
length = image.fread(cart, 0x4000000);
}
diff --git a/src/mame/drivers/nascom1.cpp b/src/mame/drivers/nascom1.cpp
index 3b679ce5466..29908fb149e 100644
--- a/src/mame/drivers/nascom1.cpp
+++ b/src/mame/drivers/nascom1.cpp
@@ -261,7 +261,7 @@ SNAPSHOT_LOAD_MEMBER( nascom_state, nascom1 )
image_init_result nascom2_state::load_cart(device_image_interface &image, generic_slot_device *slot, int slot_id)
{
// loading directly from file
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
if (slot->length() > 0x1000)
{
diff --git a/src/mame/drivers/patinho_feio.cpp b/src/mame/drivers/patinho_feio.cpp
index 52b0b67c17d..cd22a4a1853 100644
--- a/src/mame/drivers/patinho_feio.cpp
+++ b/src/mame/drivers/patinho_feio.cpp
@@ -185,7 +185,8 @@ void patinho_feio_state::load_raw_data(const char* name, unsigned int start_addr
DEVICE_IMAGE_LOAD_MEMBER( patinho_feio_state, patinho_tape )
{
- if (image.software_entry() != nullptr){
+ if (image.loaded_through_softlist())
+ {
paper_tape_length = image.get_software_region_length("rom");
paper_tape_data = image.get_software_region("rom");
paper_tape_address = 0;
diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp
index 0be3df3f145..f509c095e46 100644
--- a/src/mame/drivers/pegasus.cpp
+++ b/src/mame/drivers/pegasus.cpp
@@ -421,7 +421,7 @@ image_init_result pegasus_state::load_cart(device_image_interface &image, generi
return image_init_result::FAIL;
}
- if (image.software_entry() != nullptr && size == 0)
+ if (image.loaded_through_softlist() && size == 0)
{
// we might be loading a cart compatible with all sockets!
// so try to get region "rom"
diff --git a/src/mame/drivers/studio2.cpp b/src/mame/drivers/studio2.cpp
index 054ab581824..267a0679f12 100644
--- a/src/mame/drivers/studio2.cpp
+++ b/src/mame/drivers/studio2.cpp
@@ -533,7 +533,7 @@ DEVICE_IMAGE_LOAD_MEMBER( studio2_state, studio2_cart_load )
// always alloc 3K, even if range $400-$600 is not read by the system (RAM is present there)
m_cart->rom_alloc(0xc00, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
if (image.is_filetype("st2"))
{
diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp
index cf55a96bf4a..212e6cec3e8 100644
--- a/src/mame/drivers/stv.cpp
+++ b/src/mame/drivers/stv.cpp
@@ -1130,7 +1130,7 @@ image_init_result stv_state::load_cart(device_image_interface &image, generic_sl
uint8_t *ROM;
uint32_t size = slot->common_get_size("rom");
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
return image_init_result::FAIL;
slot->rom_alloc(size, GENERIC_ROM32_WIDTH, ENDIANNESS_BIG);
diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp
index f1a0cac7890..84cec4ee21d 100644
--- a/src/mame/drivers/timex.cpp
+++ b/src/mame/drivers/timex.cpp
@@ -602,7 +602,7 @@ DEVICE_IMAGE_LOAD_MEMBER( spectrum_state, timex_cart )
{
uint32_t size = m_dock->common_get_size("rom");
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
uint8_t *DOCK;
int chunks_in_file = 0;
@@ -614,7 +614,7 @@ DEVICE_IMAGE_LOAD_MEMBER( spectrum_state, timex_cart )
image.seterror(IMAGE_ERROR_UNSPECIFIED, "File corrupted");
return image_init_result::FAIL;
}
- if (image.software_entry() != nullptr)
+ if (!image.loaded_through_softlist())
{
image.seterror(IMAGE_ERROR_UNSPECIFIED, "Loading from softlist is not supported yet");
return image_init_result::FAIL;
diff --git a/src/mame/drivers/uzebox.cpp b/src/mame/drivers/uzebox.cpp
index 61b63cadd27..f857d40c529 100644
--- a/src/mame/drivers/uzebox.cpp
+++ b/src/mame/drivers/uzebox.cpp
@@ -247,7 +247,7 @@ DEVICE_IMAGE_LOAD_MEMBER(uzebox_state, uzebox_cart)
m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
std::vector<uint8_t> data(size);
image.fread(&data[0], size);
diff --git a/src/mame/drivers/x07.cpp b/src/mame/drivers/x07.cpp
index d55c9e12625..084c5c49959 100644
--- a/src/mame/drivers/x07.cpp
+++ b/src/mame/drivers/x07.cpp
@@ -1053,7 +1053,7 @@ DEVICE_IMAGE_LOAD_MEMBER( x07_state, x07_card )
uint32_t size = m_card->common_get_size("rom");
// check card type
- if (image.software_entry() != nullptr)
+ if (image.loaded_through_softlist())
{
const char *card_type = image.get_feature("card_type");
diff --git a/src/mame/machine/amstrad.cpp b/src/mame/machine/amstrad.cpp
index b88e81e6f70..6f38cf230e9 100644
--- a/src/mame/machine/amstrad.cpp
+++ b/src/mame/machine/amstrad.cpp
@@ -3291,7 +3291,7 @@ DEVICE_IMAGE_LOAD_MEMBER(amstrad_state, amstrad_plus_cartridge)
logerror("IMG: loading CPC+ cartridge file\n");
// check for .CPR header
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
image.fread(header, 12);
if (strncmp((char *)header, "RIFF", 4) != 0)
@@ -3310,7 +3310,7 @@ DEVICE_IMAGE_LOAD_MEMBER(amstrad_state, amstrad_plus_cartridge)
m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
// actually load the cart into ROM
- if (image.software_entry() != nullptr)
+ if (image.loaded_through_softlist())
{
logerror("IMG: raw CPC+ cartridge from softlist\n");
memcpy(m_cart->get_rom_base(), image.get_software_region("rom"), size);
diff --git a/src/mame/machine/atarifdc.cpp b/src/mame/machine/atarifdc.cpp
index 83c870ffac4..4435d478534 100644
--- a/src/mame/machine/atarifdc.cpp
+++ b/src/mame/machine/atarifdc.cpp
@@ -144,7 +144,7 @@ void atari_fdc_device::atari_load_proc(device_image_interface &image, bool is_cr
//m_drv[id].image = (uint8_t*)image.image_realloc(m_drv[id].image, size);
// hack alert, this means we can only load ATR via the softlist at the moment, image.filetype returns "" :/
- bool is_softlist_entry = image.software_entry() != nullptr;
+ bool is_softlist_entry = image.loaded_through_softlist();
/* no extension: assume XFD format (no header) */
if (image.is_filetype("") && !is_softlist_entry)
diff --git a/src/mame/machine/bbc.cpp b/src/mame/machine/bbc.cpp
index 7f8582dc0f1..44cca181e29 100644
--- a/src/mame/machine/bbc.cpp
+++ b/src/mame/machine/bbc.cpp
@@ -1595,7 +1595,7 @@ image_init_result bbc_state::bbc_load_rom(device_image_interface &image, generic
image_init_result bbc_state::bbcm_load_cart(device_image_interface &image, generic_slot_device *slot)
{
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
uint32_t filesize = image.length();
diff --git a/src/mame/machine/electron.cpp b/src/mame/machine/electron.cpp
index 6fc6149edf7..5c72a5cc1ea 100644
--- a/src/mame/machine/electron.cpp
+++ b/src/mame/machine/electron.cpp
@@ -407,7 +407,7 @@ void electron_state::machine_start()
DEVICE_IMAGE_LOAD_MEMBER( electron_state, electron_cart )
{
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
uint32_t filesize = image.length();
diff --git a/src/mame/machine/lynx.cpp b/src/mame/machine/lynx.cpp
index f80704ce6d8..0f2a17b12fb 100644
--- a/src/mame/machine/lynx.cpp
+++ b/src/mame/machine/lynx.cpp
@@ -2066,7 +2066,7 @@ DEVICE_IMAGE_LOAD_MEMBER( lynx_state, lynx_cart )
uint32_t size = m_cart->common_get_size("rom");
uint16_t gran = 0;
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
// check for lnx header
if (image.is_filetype("lnx"))
@@ -2098,7 +2098,7 @@ DEVICE_IMAGE_LOAD_MEMBER( lynx_state, lynx_cart )
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
// set-up granularity
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
if (image.is_filetype("lnx")) // from header
m_granularity = gran;
@@ -2124,7 +2124,7 @@ DEVICE_IMAGE_LOAD_MEMBER( lynx_state, lynx_cart )
}
// set-up rotation from softlist
- if (image.software_entry() != nullptr)
+ if (image.loaded_through_softlist())
{
const char *rotate = image.get_feature("rotation");
m_rotate = 0;
diff --git a/src/mame/machine/psion_pack.cpp b/src/mame/machine/psion_pack.cpp
index 45c2d4977e9..e29d3fe7112 100644
--- a/src/mame/machine/psion_pack.cpp
+++ b/src/mame/machine/psion_pack.cpp
@@ -128,7 +128,7 @@ void datapack_device::update()
if ((m_control & DP_LINE_OUTPUT_ENABLE) && !(m_control & DP_LINE_RESET))
{
// write data
- if (software_entry() == nullptr && (m_id & DP_ID_WRITE))
+ if (!loaded_through_softlist() && (m_id & DP_ID_WRITE))
{
fseek(pack_addr + OPK_HEAD_SIZE, SEEK_SET);
fwrite(&m_data, 1);
@@ -164,7 +164,7 @@ void datapack_device::update()
else if (!(m_control & DP_LINE_OUTPUT_ENABLE) && (m_control & DP_LINE_RESET))
{
// read datapack ID
- if ((m_id & DP_ID_EPROM) || software_entry() != nullptr)
+ if ((m_id & DP_ID_EPROM) || loaded_through_softlist())
m_data = m_id;
else
m_data = 0x01; // for identify RAM pack
diff --git a/src/mame/machine/thomson.cpp b/src/mame/machine/thomson.cpp
index a6b6e7848dd..b1c7d004b2c 100644
--- a/src/mame/machine/thomson.cpp
+++ b/src/mame/machine/thomson.cpp
@@ -363,7 +363,7 @@ DEVICE_IMAGE_LOAD_MEMBER( thomson_state, to7_cartridge )
offs_t size;
char name[129];
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
size = image.length();
else
size = image.get_software_region_length("rom");
@@ -383,7 +383,7 @@ DEVICE_IMAGE_LOAD_MEMBER( thomson_state, to7_cartridge )
return image_init_result::FAIL;
}
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
if ( image.fread( pos, size ) != size )
{
@@ -1473,7 +1473,7 @@ DEVICE_IMAGE_LOAD_MEMBER( thomson_state, mo5_cartridge )
int j;
char name[129];
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
size = image.length();
else
size = image.get_software_region_length("rom");
@@ -1493,7 +1493,7 @@ DEVICE_IMAGE_LOAD_MEMBER( thomson_state, mo5_cartridge )
return image_init_result::FAIL;
}
- if (image.software_entry() == nullptr)
+ if (!image.loaded_through_softlist())
{
if ( image.fread(pos, size ) != size )
{