diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2016-07-23 21:56:44 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2016-07-23 21:56:44 -0400 |
commit | d7df2df4a732388ae27878b55d3800cd941d0077 (patch) | |
tree | 97a139378685b29bb068352afa6d0010ba9eb770 | |
parent | 6a338ae9129121f44c16e448534e5cb9046bf09b (diff) |
Cleanups for device_image_interface (nw)
- Remove the loaded_through_softlist virtual method and add a boolean getter with the same name, replacing a few variables that provided similar but redundant flags.
- Remove call_softlist_load, which the previous change reduces to a simple, unnecessary wrapper.
-rw-r--r-- | src/devices/bus/hp_optroms/hp_optrom.cpp | 2 | ||||
-rw-r--r-- | src/devices/bus/ti99x/gromport.cpp | 24 | ||||
-rw-r--r-- | src/devices/bus/ti99x/gromport.h | 2 | ||||
-rw-r--r-- | src/emu/diimage.cpp | 28 | ||||
-rw-r--r-- | src/emu/diimage.h | 6 |
5 files changed, 16 insertions, 46 deletions
diff --git a/src/devices/bus/hp_optroms/hp_optrom.cpp b/src/devices/bus/hp_optroms/hp_optrom.cpp index 2ff68288910..8ab9f71ccb7 100644 --- a/src/devices/bus/hp_optroms/hp_optrom.cpp +++ b/src/devices/bus/hp_optroms/hp_optrom.cpp @@ -60,7 +60,7 @@ void hp_optrom_slot_device::device_config_complete() bool hp_optrom_slot_device::call_load() { logerror("hp_optrom: call_load\n"); - if (m_cart == nullptr || !m_from_swlist) { + if (m_cart == nullptr || !loaded_through_softlist()) { logerror("hp_optrom: must be loaded from sw list\n"); return IMAGE_INIT_FAIL; } diff --git a/src/devices/bus/ti99x/gromport.cpp b/src/devices/bus/ti99x/gromport.cpp index 6cea8083119..3438e250f50 100644 --- a/src/devices/bus/ti99x/gromport.cpp +++ b/src/devices/bus/ti99x/gromport.cpp @@ -1173,7 +1173,6 @@ static const pcb_type sw_pcbdefs[] = ti99_cartridge_device::ti99_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : bus8z_device(mconfig, TI99CART, "TI-99 cartridge", tag, owner, clock, "cartridge", __FILE__), device_image_interface(mconfig, *this), - m_softlist(false), m_pcbtype(0), m_slot(0), m_pcb(nullptr), @@ -1201,13 +1200,13 @@ void ti99_cartridge_device::prepare_cartridge() for (int i=0; i < 5; i++) m_pcb->m_grom[i] = nullptr; - m_pcb->m_grom_size = m_softlist? get_software_region_length("grom") : m_rpk->get_resource_length("grom_socket"); + m_pcb->m_grom_size = loaded_through_softlist() ? get_software_region_length("grom") : m_rpk->get_resource_length("grom_socket"); if (TRACE_CONFIG) logerror("grom_socket.size=0x%04x\n", m_pcb->m_grom_size); if (m_pcb->m_grom_size > 0) { regg = memregion(CARTGROM_TAG); - grom_ptr = m_softlist? get_software_region("grom") : m_rpk->get_contents_of_socket("grom_socket"); + grom_ptr = loaded_through_softlist() ? get_software_region("grom") : m_rpk->get_contents_of_socket("grom_socket"); memcpy(regg->base(), grom_ptr, m_pcb->m_grom_size); m_pcb->m_grom_ptr = regg->base(); // for gromemu m_pcb->m_grom_address = 0; // for gromemu @@ -1220,19 +1219,19 @@ void ti99_cartridge_device::prepare_cartridge() if (m_pcb->m_grom_size > 0x8000) m_pcb->set_grom_pointer(4, subdevice(GROM7_TAG)); } - m_pcb->m_rom_size = m_softlist? get_software_region_length("rom") : m_rpk->get_resource_length("rom_socket"); + m_pcb->m_rom_size = loaded_through_softlist() ? get_software_region_length("rom") : m_rpk->get_resource_length("rom_socket"); if (m_pcb->m_rom_size > 0) { if (TRACE_CONFIG) logerror("rom size=0x%04x\n", m_pcb->m_rom_size); regr = memregion(CARTROM_TAG); - rom_ptr = m_softlist? get_software_region("rom") : m_rpk->get_contents_of_socket("rom_socket"); + rom_ptr = loaded_through_softlist() ? get_software_region("rom") : m_rpk->get_contents_of_socket("rom_socket"); memcpy(regr->base(), rom_ptr, m_pcb->m_rom_size); // Set both pointers to the same region for now m_pcb->m_rom_ptr = regr->base(); } // Softlist uses only one ROM area, no second socket - if (!m_softlist) + if (!loaded_through_softlist()) { rom2_length = m_rpk->get_resource_length("rom2_socket"); if (rom2_length > 0) @@ -1246,7 +1245,7 @@ void ti99_cartridge_device::prepare_cartridge() } // (NV)RAM cartridges - if (m_softlist) + if (loaded_through_softlist()) { // Do we have NVRAM? if (get_software_region("nvram")!=nullptr) @@ -1300,7 +1299,7 @@ bool ti99_cartridge_device::call_load() // return true = error if (TRACE_CHANGE) logerror("Loading %s in slot %s\n", m_basename.c_str()); - if (m_softlist) + if (loaded_through_softlist()) { if (TRACE_CONFIG) logerror("Using softlists\n"); int i = 0; @@ -1315,6 +1314,7 @@ bool ti99_cartridge_device::call_load() i++; } while (sw_pcbdefs[i].id != 0); if (TRACE_CONFIG) logerror("Cartridge type is %s (%d)\n", pcb, m_pcbtype); + m_rpk = nullptr; } else { @@ -1417,13 +1417,6 @@ void ti99_cartridge_device::set_slot(int i) m_slot = i; } -void ti99_cartridge_device::loaded_through_softlist() -{ - // TI99 cartridge seems to be the only reason we need loaded_through_softlist()... why? - m_softlist = true; - m_rpk = nullptr; -} - READ8Z_MEMBER(ti99_cartridge_device::readz) { if (m_pcb != nullptr) @@ -1476,7 +1469,6 @@ WRITE_LINE_MEMBER(ti99_cartridge_device::gclock_in) void ti99_cartridge_device::device_config_complete() { update_names(); - m_softlist = false; m_connector = static_cast<ti99_cartridge_connector_device*>(owner()); } diff --git a/src/devices/bus/ti99x/gromport.h b/src/devices/bus/ti99x/gromport.h index 7afd9ab336b..8080e00d894 100644 --- a/src/devices/bus/ti99x/gromport.h +++ b/src/devices/bus/ti99x/gromport.h @@ -109,7 +109,6 @@ protected: bool call_load() override; void call_unload() override; virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); } - virtual void loaded_through_softlist() override; void prepare_cartridge(); @@ -125,7 +124,6 @@ protected: private: bool m_readrom; - bool m_softlist; int m_pcbtype; int m_slot; int get_index_from_tagname(); diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp index 8b4f11ee3db..72f40e9f758 100644 --- a/src/emu/diimage.cpp +++ b/src/emu/diimage.cpp @@ -94,7 +94,6 @@ device_image_interface::device_image_interface(const machine_config &mconfig, de m_readonly(false), m_created(false), m_init_phase(false), - m_from_swlist(false), m_create_format(0), m_create_args(nullptr), m_user_loadable(TRUE), @@ -940,7 +939,6 @@ bool device_image_interface::load_internal(const char *path, bool is_create, int UINT32 open_plan[4]; int i; bool softload = FALSE; - m_from_swlist = FALSE; // if the path contains no period, we are using softlists, so we won't create an image std::string pathstr(path); @@ -983,8 +981,6 @@ bool device_image_interface::load_internal(const char *path, bool is_create, int if (read_only && !strcmp(read_only, "true")) { make_readonly(); } - - m_from_swlist = TRUE; } } @@ -1327,23 +1323,6 @@ const software_part *device_image_interface::find_software_item(const char *path //------------------------------------------------- -// call_softlist_load -//------------------------------------------------- - -bool device_image_interface::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) -{ - const software_list_loader &loader = get_software_list_loader(); - bool result = loader.load_software(*this, swlist, swname, start_entry); - - // this is a hook that seems to only be used by TI99 - if (result) - loaded_through_softlist(); - - return result; -} - - -//------------------------------------------------- // load_software_part // // Load a software part for a device. The part to @@ -1368,10 +1347,15 @@ bool device_image_interface::load_software_part(const char *path, const software // Load the software part software_list_device &swlist = swpart->info().list(); - bool result = call_softlist_load(swlist, swpart->info().shortname().c_str(), swpart->romdata()); + const char *swname = swpart->info().shortname().c_str(); + const rom_entry *start_entry = swpart->romdata(); + 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()); +#endif // check compatibility switch (swpart->is_compatible(swlist)) diff --git a/src/emu/diimage.h b/src/emu/diimage.h index 75db14229e6..34d6532eedc 100644 --- a/src/emu/diimage.h +++ b/src/emu/diimage.h @@ -205,6 +205,7 @@ public: const software_info *software_entry() const { return m_software_info_ptr; } 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; } void set_working_directory(const char *working_directory) { m_working_directory = working_directory; } const char * working_directory(); @@ -249,7 +250,6 @@ public: protected: virtual const software_list_loader &get_software_list_loader() const { return false_software_list_loader::instance(); } - virtual void loaded_through_softlist() { } bool load_internal(const char *path, bool is_create, int create_format, util::option_resolution *create_args, bool just_load); void determine_open_plan(int is_create, UINT32 *open_plan); @@ -311,7 +311,6 @@ protected: bool m_readonly; bool m_created; bool m_init_phase; - bool m_from_swlist; /* special - used when creating */ int m_create_format; @@ -330,9 +329,6 @@ protected: bool m_user_loadable; bool m_is_loading; - -private: - bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry); }; // iterator |