mirror of
https://github.com/holub/mame
synced 2025-05-22 21:58:57 +03:00
Move overridable device->rom_region(), device->machine_config_additions(), and
device->input_ports() to protected methods. Added non-virtual wrappers around them.
This commit is contained in:
parent
ee8ae2b1d8
commit
28fdb61512
@ -383,13 +383,11 @@ protected:
|
||||
// construction/destruction
|
||||
legacy_cpu_device_config(const machine_config &mconfig, device_type _type, const char *_tag, const device_config *_owner, UINT32 _clock, cpu_get_info_func get_info);
|
||||
|
||||
public:
|
||||
// basic information getters
|
||||
virtual const rom_entry *rom_region() const { return reinterpret_cast<const rom_entry *>(get_legacy_config_ptr(DEVINFO_PTR_ROM_REGION)); }
|
||||
virtual machine_config_constructor machine_config_additions() const { return reinterpret_cast<machine_config_constructor>(get_legacy_config_ptr(DEVINFO_PTR_MACHINE_CONFIG)); }
|
||||
virtual const input_port_token *input_ports() const { return reinterpret_cast<const input_port_token *>(get_legacy_config_ptr(DEVINFO_PTR_INPUT_PORTS)); }
|
||||
virtual const rom_entry *device_rom_region() const { return reinterpret_cast<const rom_entry *>(get_legacy_config_ptr(DEVINFO_PTR_ROM_REGION)); }
|
||||
virtual machine_config_constructor device_mconfig_additions() const { return reinterpret_cast<machine_config_constructor>(get_legacy_config_ptr(DEVINFO_PTR_MACHINE_CONFIG)); }
|
||||
virtual const input_port_token *device_input_ports() const { return reinterpret_cast<const input_port_token *>(get_legacy_config_ptr(DEVINFO_PTR_INPUT_PORTS)); }
|
||||
|
||||
protected:
|
||||
// device_config_execute_interface overrides
|
||||
virtual UINT64 execute_clocks_to_cycles(UINT64 clocks) const;
|
||||
virtual UINT64 execute_cycles_to_clocks(UINT64 cycles) const;
|
||||
|
@ -383,7 +383,7 @@ bool device_config::device_validity_check(emu_options &options, const game_drive
|
||||
// rom region description for this device
|
||||
//-------------------------------------------------
|
||||
|
||||
const rom_entry *device_config::rom_region() const
|
||||
const rom_entry *device_config::device_rom_region() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@ -395,7 +395,7 @@ const rom_entry *device_config::rom_region() const
|
||||
// this device
|
||||
//-------------------------------------------------
|
||||
|
||||
machine_config_constructor device_config::machine_config_additions() const
|
||||
machine_config_constructor device_config::device_mconfig_additions() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@ -407,7 +407,7 @@ machine_config_constructor device_config::machine_config_additions() const
|
||||
// input ports description for this device
|
||||
//-------------------------------------------------
|
||||
|
||||
const input_port_token *device_config::input_ports() const
|
||||
const input_port_token *device_config::device_input_ports() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
@ -292,7 +292,10 @@ public:
|
||||
const char *tag() const { return m_tag; }
|
||||
const void *static_config() const { return m_static_config; }
|
||||
const machine_config &mconfig() const { return m_machine_config; }
|
||||
const input_device_default *input_ports_defaults() const { return m_input_defaults; }
|
||||
const input_device_default *input_ports_defaults() const { return m_input_defaults; }
|
||||
const rom_entry *rom_region() const { return device_rom_region(); }
|
||||
machine_config_constructor machine_config_additions() const { return device_mconfig_additions(); }
|
||||
const input_port_token *input_ports() const { return device_input_ports(); }
|
||||
|
||||
// methods that wrap both interface-level and device-level behavior
|
||||
void config_complete();
|
||||
@ -313,15 +316,13 @@ protected:
|
||||
virtual void device_config_complete();
|
||||
virtual bool device_validity_check(emu_options &options, const game_driver &driver) const;
|
||||
|
||||
public:
|
||||
// optional information overrides
|
||||
virtual const rom_entry *rom_region() const;
|
||||
virtual machine_config_constructor machine_config_additions() const;
|
||||
virtual const input_port_token *input_ports() const;
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
virtual machine_config_constructor device_mconfig_additions() const;
|
||||
virtual const input_port_token *device_input_ports() const;
|
||||
|
||||
//------------------- end derived class overrides
|
||||
|
||||
protected:
|
||||
// device relationships
|
||||
device_config * m_next; // next device (of any type/class)
|
||||
device_config * m_owner; // device that owns us, or NULL if nobody
|
||||
|
@ -436,10 +436,6 @@ protected:
|
||||
|
||||
// basic information getters
|
||||
public:
|
||||
virtual const rom_entry *rom_region() const { return reinterpret_cast<const rom_entry *>(get_legacy_config_ptr(DEVINFO_PTR_ROM_REGION)); }
|
||||
virtual machine_config_constructor machine_config_additions() const { return reinterpret_cast<machine_config_constructor>(get_legacy_config_ptr(DEVINFO_PTR_MACHINE_CONFIG)); }
|
||||
virtual const input_port_token *input_ports() const { return reinterpret_cast<const input_port_token *>(get_legacy_config_ptr(DEVINFO_PTR_INPUT_PORTS)); }
|
||||
|
||||
// access to legacy inline configuartion
|
||||
void *inline_config() const { return m_inline_config; }
|
||||
|
||||
@ -451,6 +447,9 @@ public:
|
||||
protected:
|
||||
// overrides
|
||||
virtual bool device_validity_check(emu_options &options, const game_driver &driver) const;
|
||||
virtual const rom_entry *device_rom_region() const { return reinterpret_cast<const rom_entry *>(get_legacy_config_ptr(DEVINFO_PTR_ROM_REGION)); }
|
||||
virtual machine_config_constructor device_mconfig_additions() const { return reinterpret_cast<machine_config_constructor>(get_legacy_config_ptr(DEVINFO_PTR_MACHINE_CONFIG)); }
|
||||
virtual const input_port_token *device_input_ports() const { return reinterpret_cast<const input_port_token *>(get_legacy_config_ptr(DEVINFO_PTR_INPUT_PORTS)); }
|
||||
|
||||
// access to legacy configuration info
|
||||
INT64 get_legacy_config_int(UINT32 state) const;
|
||||
|
@ -1053,9 +1053,8 @@ static void print_game_info(FILE *out, const game_driver *game, emu_options &opt
|
||||
input_port_list_init(portlist, game->ipt, NULL, 0, FALSE, NULL);
|
||||
for (device_config *cfg = config.m_devicelist.first(); cfg != NULL; cfg = cfg->next())
|
||||
{
|
||||
if (cfg->input_ports()!=NULL) {
|
||||
if (cfg->input_ports() != NULL)
|
||||
input_port_list_init(portlist, cfg->input_ports(), NULL, 0, FALSE, cfg);
|
||||
}
|
||||
}
|
||||
|
||||
/* print the header and the game name */
|
||||
|
@ -1000,7 +1000,8 @@ time_t input_port_init(running_machine &machine, const input_port_token *tokens,
|
||||
|
||||
for (device_config *config = devicelist.first(); config != NULL; config = config->next())
|
||||
{
|
||||
if (config->input_ports()!=NULL) {
|
||||
if (config->input_ports() != NULL)
|
||||
{
|
||||
input_port_list_init(machine.m_portlist, config->input_ports(), errorbuf, sizeof(errorbuf), TRUE, config);
|
||||
if (errorbuf[0] != 0)
|
||||
mame_printf_error("Input port errors:\n%s", errorbuf);
|
||||
|
@ -977,7 +977,7 @@ void driver_device_config_base::static_set_palette_init(device_config *device, p
|
||||
// regions specified for the current game
|
||||
//-------------------------------------------------
|
||||
|
||||
const rom_entry *driver_device_config_base::rom_region() const
|
||||
const rom_entry *driver_device_config_base::device_rom_region() const
|
||||
{
|
||||
return m_system->rom;
|
||||
}
|
||||
|
@ -563,7 +563,7 @@ public:
|
||||
|
||||
protected:
|
||||
// optional information overrides
|
||||
virtual const rom_entry *rom_region() const;
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
|
||||
// internal state
|
||||
const game_driver * m_system; // pointer to the game driver
|
||||
|
@ -155,7 +155,7 @@ void bsmt2000_device_config::static_set_ready_callback(device_config *device, re
|
||||
// internal ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
const rom_entry *bsmt2000_device_config::rom_region() const
|
||||
const rom_entry *bsmt2000_device_config::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( bsmt2000 );
|
||||
}
|
||||
@ -166,7 +166,7 @@ const rom_entry *bsmt2000_device_config::rom_region() const
|
||||
// the device's machine fragment
|
||||
//-------------------------------------------------
|
||||
|
||||
machine_config_constructor bsmt2000_device_config::machine_config_additions() const
|
||||
machine_config_constructor bsmt2000_device_config::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( bsmt2000 );
|
||||
}
|
||||
|
@ -88,11 +88,11 @@ public:
|
||||
// inline configuration helpers
|
||||
static void static_set_ready_callback(device_config *device, ready_callback callback);
|
||||
|
||||
// optional information overrides
|
||||
virtual const rom_entry *rom_region() const;
|
||||
virtual machine_config_constructor machine_config_additions() const;
|
||||
|
||||
protected:
|
||||
// optional information overrides
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
virtual machine_config_constructor device_mconfig_additions() const;
|
||||
|
||||
// device_config overrides
|
||||
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
|
||||
|
||||
|
@ -962,7 +962,8 @@ static bool validate_inputs(const machine_config &config, int_map &defstr_map, i
|
||||
}
|
||||
for (device_config *cfg = config.m_devicelist.first(); cfg != NULL; cfg = cfg->next())
|
||||
{
|
||||
if (cfg->input_ports()!=NULL) {
|
||||
if (cfg->input_ports() != NULL)
|
||||
{
|
||||
input_port_list_init(portlist, cfg->input_ports(), errorbuf, sizeof(errorbuf), FALSE, cfg);
|
||||
if (errorbuf[0] != 0)
|
||||
{
|
||||
@ -1106,7 +1107,7 @@ static bool validate_devices(const machine_config &config, const ioport_list &po
|
||||
break;
|
||||
}
|
||||
|
||||
if (devconfig->rom_region()!=NULL && (strcmp(devconfig->shortname(),"") == 0)) {
|
||||
if (devconfig->rom_region() != NULL && (strcmp(devconfig->shortname(),"") == 0)) {
|
||||
mame_printf_warning("Device %s does not have short name defined\n", devconfig->name());
|
||||
}
|
||||
/* check for device-specific validity check */
|
||||
|
@ -124,7 +124,7 @@ const address_space_config *hd61830_device_config::memory_space_config(address_s
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
const rom_entry *hd61830_device_config::rom_region() const
|
||||
const rom_entry *hd61830_device_config::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(hd61830);
|
||||
}
|
||||
|
@ -68,13 +68,13 @@ public:
|
||||
static device_config *static_alloc_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock);
|
||||
virtual device_t *alloc_device(running_machine &machine) const;
|
||||
|
||||
// optional information overrides
|
||||
virtual const rom_entry *rom_region() const;
|
||||
|
||||
protected:
|
||||
// device_config overrides
|
||||
virtual void device_config_complete();
|
||||
|
||||
// optional information overrides
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
|
||||
// device_config_memory_interface overrides
|
||||
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user