mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
Getting rid of DEVICE_IMAGE_START (nw)
This commit is contained in:
parent
2f1f05e3e6
commit
871d4c7ac6
@ -111,7 +111,6 @@ struct software_part;
|
||||
struct software_info;
|
||||
|
||||
// device image interface function types
|
||||
typedef delegate<void ()> device_image_start_delegate;
|
||||
typedef delegate<int (device_image_interface &)> device_image_load_delegate;
|
||||
typedef delegate<void (device_image_interface &)> device_image_func_delegate;
|
||||
// legacy
|
||||
@ -137,12 +136,6 @@ typedef void (*device_image_display_info_func)(device_image_interface &image);
|
||||
#define DEVICE_IMAGE_DISPLAY_INFO(name) void DEVICE_IMAGE_DISPLAY_INFO_NAME(name)(device_image_interface &image)
|
||||
|
||||
|
||||
#define DEVICE_IMAGE_START_MEMBER_NAME(_name) device_image_start_##_name
|
||||
#define DEVICE_IMAGE_START_NAME(_class,_name) _class::DEVICE_IMAGE_START_MEMBER_NAME(_name)
|
||||
#define DECLARE_DEVICE_IMAGE_START_MEMBER(_name) void DEVICE_IMAGE_START_MEMBER_NAME(_name)()
|
||||
#define DEVICE_IMAGE_START_MEMBER(_class,_name) void DEVICE_IMAGE_START_NAME(_class,_name)()
|
||||
#define DEVICE_IMAGE_START_DELEGATE(_class,_name) device_image_start_delegate(&DEVICE_IMAGE_START_NAME(_class,_name),#_class "::device_image_start_" #_name,downcast<_class *>(device->owner()))
|
||||
|
||||
#define DEVICE_IMAGE_LOAD_MEMBER_NAME(_name) device_image_load_##_name
|
||||
#define DEVICE_IMAGE_LOAD_NAME(_class,_name) _class::DEVICE_IMAGE_LOAD_MEMBER_NAME(_name)
|
||||
#define DECLARE_DEVICE_IMAGE_LOAD_MEMBER(_name) int DEVICE_IMAGE_LOAD_MEMBER_NAME(_name)(device_image_interface &image)
|
||||
|
@ -203,11 +203,6 @@ int cartslot_image_device::process_cartridge(bool load)
|
||||
|
||||
void cartslot_image_device::device_start()
|
||||
{
|
||||
/* if this cartridge has a custom DEVICE_START, use it */
|
||||
if (!m_device_image_start.isnull())
|
||||
{
|
||||
m_device_image_start();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -57,7 +57,6 @@ public:
|
||||
void set_extensions(const char *_extensions) { m_extensions = _extensions; }
|
||||
void set_interface(const char *_interface) { m_interface = _interface; }
|
||||
void set_must_be_loaded(bool _must_be_loaded) { m_must_be_loaded = _must_be_loaded; }
|
||||
void set_device_start(device_image_start_delegate _start) { m_device_image_start = _start; }
|
||||
void set_device_load(device_image_load_delegate _load) { m_device_image_load = _load; }
|
||||
void set_device_unload(device_image_func_delegate _unload) { m_device_image_unload = _unload; }
|
||||
void set_partialhash(device_image_partialhash_func _partialhash) { m_device_image_partialhash = _partialhash; }
|
||||
@ -75,7 +74,6 @@ protected:
|
||||
const char * m_extensions;
|
||||
const char * m_interface;
|
||||
bool m_must_be_loaded;
|
||||
device_image_start_delegate m_device_image_start;
|
||||
device_image_load_delegate m_device_image_load;
|
||||
device_image_func_delegate m_device_image_unload;
|
||||
device_image_partialhash_func m_device_image_partialhash;
|
||||
@ -105,9 +103,6 @@ extern const device_type CARTSLOT;
|
||||
#define MCFG_CARTSLOT_MANDATORY \
|
||||
static_cast<cartslot_image_device *>(device)->set_must_be_loaded(TRUE);
|
||||
|
||||
#define MCFG_CARTSLOT_START(_class,_start) \
|
||||
static_cast<cartslot_image_device *>(device)->set_device_start( DEVICE_IMAGE_START_DELEGATE(_class,_start));
|
||||
|
||||
#define MCFG_CARTSLOT_LOAD(_class,_load) \
|
||||
static_cast<cartslot_image_device *>(device)->set_device_load( DEVICE_IMAGE_LOAD_DELEGATE(_class,_load));
|
||||
|
||||
|
@ -1641,7 +1641,6 @@ static MACHINE_CONFIG_START( jaguar, jaguar_state )
|
||||
MCFG_CARTSLOT_ADD("cart")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("j64,rom")
|
||||
MCFG_CARTSLOT_INTERFACE("jaguar_cart")
|
||||
MCFG_CARTSLOT_START(jaguar_state,jaguar_cart)
|
||||
MCFG_CARTSLOT_LOAD(jaguar_state,jaguar_cart)
|
||||
|
||||
/* software lists */
|
||||
@ -1681,7 +1680,7 @@ DRIVER_INIT_MEMBER(jaguar_state,jaguar)
|
||||
{
|
||||
m_hacks_enabled = false;
|
||||
save_item(NAME(m_joystick_data));
|
||||
m_using_cart = false;
|
||||
cart_start();
|
||||
|
||||
for (int i=0;i<0x20000/4;i++) // the cd bios is bigger.. check
|
||||
{
|
||||
@ -1767,11 +1766,6 @@ int jaguar_state::quickload(device_image_interface &image, const char *file_type
|
||||
return IMAGE_INIT_PASS;
|
||||
}
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( jaguar_state, jaguar_cart )
|
||||
{
|
||||
cart_start();
|
||||
}
|
||||
|
||||
void jaguar_state::cart_start()
|
||||
{
|
||||
/* Initialize for no cartridge present */
|
||||
|
@ -215,7 +215,6 @@ public:
|
||||
void cart_start();
|
||||
int cart_load(device_image_interface &image);
|
||||
IRQ_CALLBACK_MEMBER(jaguar_irq_callback);
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( jaguar_cart );
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( jaguar_cart );
|
||||
protected:
|
||||
// timer IDs
|
||||
|
@ -51,6 +51,7 @@ public:
|
||||
a2600_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_riot_ram(*this, "riot_ram")
|
||||
, m_banking_mode(0xff)
|
||||
, m_joy1(*this, CONTROL1_TAG)
|
||||
, m_joy2(*this, CONTROL2_TAG)
|
||||
{ }
|
||||
@ -128,7 +129,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(switch_B_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(irq_callback);
|
||||
DECLARE_READ8_MEMBER(riot_input_port_8_r);
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( a2600_cart );
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( a2600_cart );
|
||||
|
||||
protected:
|
||||
@ -544,12 +544,6 @@ static int detect_super_chip(running_machine &machine)
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( a2600_state, a2600_cart )
|
||||
{
|
||||
m_banking_mode = 0xff;
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER( a2600_state, a2600_cart )
|
||||
{
|
||||
UINT8 *cart = memregion("user1")->base();
|
||||
@ -1921,7 +1915,6 @@ static MACHINE_CONFIG_FRAGMENT(a2600_cartslot)
|
||||
MCFG_CARTSLOT_ADD("cart")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("bin,a26")
|
||||
MCFG_CARTSLOT_MANDATORY
|
||||
MCFG_CARTSLOT_START(a2600_state,a2600_cart)
|
||||
MCFG_CARTSLOT_LOAD(a2600_state,a2600_cart)
|
||||
MCFG_CARTSLOT_INTERFACE("a2600_cart")
|
||||
|
||||
|
@ -302,7 +302,6 @@ static MACHINE_CONFIG_START( a7800_ntsc, a7800_state )
|
||||
MCFG_CARTSLOT_ADD("cart")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("bin,a78")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_START(a7800_state,a7800_cart)
|
||||
MCFG_CARTSLOT_LOAD(a7800_state,a7800_cart)
|
||||
MCFG_CARTSLOT_PARTIALHASH(a7800_partialhash)
|
||||
MCFG_CARTSLOT_INTERFACE("a7800_cart")
|
||||
|
@ -30,7 +30,6 @@ public:
|
||||
virtual void machine_reset();
|
||||
DECLARE_WRITE_LINE_MEMBER(tms_interrupt);
|
||||
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( bbcbc_cart );
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( bbcbc_cart );
|
||||
};
|
||||
|
||||
@ -133,14 +132,6 @@ static const z80_daisy_config bbcbc_daisy_chain[] =
|
||||
};
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( bbcbc_state, bbcbc_cart )
|
||||
{
|
||||
UINT8 *cart = machine().root_device().memregion("maincpu" )->base() + 0x4000;
|
||||
|
||||
memset( cart, 0xFF, 0x8000 );
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER( bbcbc_state, bbcbc_cart )
|
||||
{
|
||||
UINT8 *cart = machine().root_device().memregion("maincpu" )->base() + 0x4000;
|
||||
@ -190,7 +181,6 @@ static MACHINE_CONFIG_START( bbcbc, bbcbc_state )
|
||||
MCFG_CARTSLOT_ADD("cart")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("bbcbc_cart")
|
||||
MCFG_CARTSLOT_START( bbcbc_state, bbcbc_cart )
|
||||
MCFG_CARTSLOT_LOAD( bbcbc_state, bbcbc_cart )
|
||||
|
||||
/* Software lists */
|
||||
@ -199,7 +189,7 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
ROM_START( bbcbc )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD("br_4_1.ic3", 0x0000, 0x2000, CRC(7c880d75) SHA1(954db096bd9e8edfef72946637a12f1083841fb0))
|
||||
ROM_LOAD("br_4_2.ic4", 0x2000, 0x2000, CRC(16a33aef) SHA1(9529f9f792718a3715af2063b91a5fb18f741226))
|
||||
ROM_END
|
||||
|
@ -12,7 +12,7 @@ static ADDRESS_MAP_START(gamepock_mem, AS_PROGRAM, 8, gamepock_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000,0x0fff) AM_ROM
|
||||
AM_RANGE(0x1000,0x3fff) AM_NOP
|
||||
AM_RANGE(0x4000,0xBfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x4000,0xBfff) AM_ROM AM_REGION("user1", 0)
|
||||
AM_RANGE(0xC000,0xC7ff) AM_MIRROR(0x0800) AM_RAM
|
||||
AM_RANGE(0xff80,0xffff) AM_RAM /* 128 bytes microcontroller RAM */
|
||||
ADDRESS_MAP_END
|
||||
@ -45,12 +45,6 @@ INPUT_PORTS_END
|
||||
static const UPD7810_CONFIG gamepock_cpu_config = { TYPE_78C06, gamepock_io_callback };
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER(gamepock_state,gamepock_cart)
|
||||
{
|
||||
membank( "bank1" )->set_base( memregion("user1" )->base() );
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER(gamepock_state,gamepock_cart) {
|
||||
UINT8 *cart = memregion("user1" )->base();
|
||||
|
||||
@ -64,11 +58,9 @@ DEVICE_IMAGE_LOAD_MEMBER(gamepock_state,gamepock_cart) {
|
||||
}
|
||||
else
|
||||
{
|
||||
cart = image.get_software_region( "rom" );
|
||||
memcpy( cart, image.get_software_region( "rom" ), image.get_software_region_length("rom") );
|
||||
}
|
||||
|
||||
membank( "bank1" )->set_base( cart );
|
||||
|
||||
return IMAGE_INIT_PASS;
|
||||
}
|
||||
|
||||
@ -100,7 +92,6 @@ static MACHINE_CONFIG_START( gamepock, gamepock_state )
|
||||
MCFG_CARTSLOT_INTERFACE("gamepock_cart")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("bin")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_START(gamepock_state,gamepock_cart)
|
||||
MCFG_CARTSLOT_LOAD(gamepock_state,gamepock_cart)
|
||||
|
||||
/* Software lists */
|
||||
|
@ -590,7 +590,6 @@ static MACHINE_CONFIG_DERIVED( gameboy, gb_common )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("gb,gmb,cgb,gbc,sgb,bin")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("gameboy_cart")
|
||||
MCFG_CARTSLOT_START(gb_state,gb_cart)
|
||||
MCFG_CARTSLOT_LOAD(gb_state,gb_cart)
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list","gameboy")
|
||||
MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gbc_list","gbcolor")
|
||||
@ -648,7 +647,6 @@ static MACHINE_CONFIG_DERIVED( gbcolor, gb_common )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("gb,gmb,cgb,gbc,sgb,bin")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("gameboy_cart")
|
||||
MCFG_CARTSLOT_START(gb_state,gb_cart)
|
||||
MCFG_CARTSLOT_LOAD(gb_state,gb_cart)
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list","gbcolor")
|
||||
MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gb_list","gameboy")
|
||||
@ -731,13 +729,13 @@ ROM_START( megaduck )
|
||||
ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
|
||||
CONS( 1990, gameboy, 0, 0, gameboy, gameboy, driver_device, 0, "Nintendo", "Game Boy", 0)
|
||||
CONS( 1994, supergb, gameboy, 0, supergb, gameboy, driver_device, 0, "Nintendo", "Super Game Boy", 0)
|
||||
CONS( 1996, gbpocket, gameboy, 0, gbpocket, gameboy, driver_device, 0, "Nintendo", "Game Boy Pocket", 0)
|
||||
CONS( 1997, gblight, gameboy, 0, gbpocket, gameboy, driver_device, 0, "Nintendo", "Game Boy Light", 0)
|
||||
CONS( 1998, gbcolor, gameboy, 0, gbcolor, gameboy, driver_device, 0, "Nintendo", "Game Boy Color", GAME_IMPERFECT_GRAPHICS)
|
||||
CONS( 1990, gameboy, 0, 0, gameboy, gameboy, gb_state, gb, "Nintendo", "Game Boy", 0)
|
||||
CONS( 1994, supergb, gameboy, 0, supergb, gameboy, gb_state, gb, "Nintendo", "Super Game Boy", 0)
|
||||
CONS( 1996, gbpocket, gameboy, 0, gbpocket, gameboy, gb_state, gb, "Nintendo", "Game Boy Pocket", 0)
|
||||
CONS( 1997, gblight, gameboy, 0, gbpocket, gameboy, gb_state, gb, "Nintendo", "Game Boy Light", 0)
|
||||
CONS( 1998, gbcolor, gameboy, 0, gbcolor, gameboy, gb_state, gb, "Nintendo", "Game Boy Color", GAME_IMPERFECT_GRAPHICS)
|
||||
|
||||
/* Sound is not 100% yet, it generates some sounds which could be ok. Since we're lacking a real
|
||||
system there's no way to verify. Same goes for the colors of the LCD. We are no using the default
|
||||
Game Boy green colors */
|
||||
CONS( 1993, megaduck, 0, 0, megaduck, gameboy, driver_device, 0, "Creatronic/Videojet/Timlex/Cougar", "MegaDuck/Cougar Boy" , 0)
|
||||
CONS( 1993, megaduck, 0, 0, megaduck, gameboy, gb_state, gb, "Creatronic/Videojet/Timlex/Cougar", "MegaDuck/Cougar Boy" , 0)
|
||||
|
@ -1609,7 +1609,6 @@ static MACHINE_CONFIG_START( nc100, nc_state )
|
||||
MCFG_CARTSLOT_ADD("cart")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("crd,card")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_START(nc_state,nc_pcmcia_card)
|
||||
MCFG_CARTSLOT_LOAD(nc_state,nc_pcmcia_card)
|
||||
MCFG_CARTSLOT_UNLOAD(nc_state,nc_pcmcia_card)
|
||||
|
||||
@ -1703,6 +1702,6 @@ ROM_START(nc200)
|
||||
ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
|
||||
COMP( 1992, nc100, 0, 0, nc100, nc100, driver_device, 0, "Amstrad plc", "NC100", 0 )
|
||||
COMP( 1992, nc150, nc100, 0, nc100, nc100, driver_device, 0, "Amstrad plc", "NC150", 0 )
|
||||
COMP( 1993, nc200, 0, 0, nc200, nc200, driver_device, 0, "Amstrad plc", "NC200", GAME_NOT_WORKING ) // boot hangs while checking the MC146818 UIP (update in progress) bit
|
||||
COMP( 1992, nc100, 0, 0, nc100, nc100, nc_state, nc, "Amstrad plc", "NC100", 0 )
|
||||
COMP( 1992, nc150, nc100, 0, nc100, nc100, nc_state, nc, "Amstrad plc", "NC150", 0 )
|
||||
COMP( 1993, nc200, 0, 0, nc200, nc200, nc_state, nc, "Amstrad plc", "NC200", GAME_NOT_WORKING ) // boot hangs while checking the MC146818 UIP (update in progress) bit
|
||||
|
@ -128,7 +128,15 @@ public:
|
||||
, m_t6w28( *this, "t6w28" )
|
||||
, m_dac_l( *this, "dac_l" )
|
||||
, m_dac_r( *this, "dac_r" )
|
||||
{ }
|
||||
{
|
||||
m_flash_chip[0].present = 0;
|
||||
m_flash_chip[0].state = F_READ;
|
||||
m_flash_chip[0].data = NULL;
|
||||
|
||||
m_flash_chip[1].present = 0;
|
||||
m_flash_chip[1].state = F_READ;
|
||||
m_flash_chip[1].data = NULL;
|
||||
}
|
||||
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
@ -174,7 +182,6 @@ public:
|
||||
DECLARE_INPUT_CHANGED_MEMBER(power_callback);
|
||||
TIMER_CALLBACK_MEMBER(ngp_seconds_callback);
|
||||
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( ngp_cart );
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( ngp_cart);
|
||||
DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( ngp_cart );
|
||||
};
|
||||
@ -612,6 +619,44 @@ WRITE8_MEMBER( ngp_state::ngp_tlcs900_to3 )
|
||||
|
||||
void ngp_state::machine_start()
|
||||
{
|
||||
UINT8 *cart = memregion("cart")->base();
|
||||
|
||||
m_flash_chip[0].data = cart;
|
||||
m_flash_chip[0].org_data[0] = m_flash_chip[0].data[0];
|
||||
m_flash_chip[0].org_data[1] = m_flash_chip[0].data[1];
|
||||
m_flash_chip[0].org_data[2] = m_flash_chip[0].data[2];
|
||||
m_flash_chip[0].org_data[3] = m_flash_chip[0].data[3];
|
||||
m_flash_chip[0].org_data[4] = m_flash_chip[0].data[0x7c000];
|
||||
m_flash_chip[0].org_data[5] = m_flash_chip[0].data[0x7c001];
|
||||
m_flash_chip[0].org_data[6] = m_flash_chip[0].data[0x7c002];
|
||||
m_flash_chip[0].org_data[7] = m_flash_chip[0].data[0x7c003];
|
||||
m_flash_chip[0].org_data[8] = m_flash_chip[0].data[0xfc000];
|
||||
m_flash_chip[0].org_data[9] = m_flash_chip[0].data[0xfc001];
|
||||
m_flash_chip[0].org_data[10] = m_flash_chip[0].data[0xfc002];
|
||||
m_flash_chip[0].org_data[11] = m_flash_chip[0].data[0xfc003];
|
||||
m_flash_chip[0].org_data[12] = m_flash_chip[0].data[0x1fc000];
|
||||
m_flash_chip[0].org_data[13] = m_flash_chip[0].data[0x1fc001];
|
||||
m_flash_chip[0].org_data[14] = m_flash_chip[0].data[0x1fc002];
|
||||
m_flash_chip[0].org_data[15] = m_flash_chip[0].data[0x1fc003];
|
||||
|
||||
m_flash_chip[1].data = cart + 0x200000;
|
||||
m_flash_chip[1].org_data[0] = m_flash_chip[1].data[0];
|
||||
m_flash_chip[1].org_data[1] = m_flash_chip[1].data[1];
|
||||
m_flash_chip[1].org_data[2] = m_flash_chip[1].data[2];
|
||||
m_flash_chip[1].org_data[3] = m_flash_chip[1].data[3];
|
||||
m_flash_chip[1].org_data[4] = m_flash_chip[1].data[0x7c000];
|
||||
m_flash_chip[1].org_data[5] = m_flash_chip[1].data[0x7c001];
|
||||
m_flash_chip[1].org_data[6] = m_flash_chip[1].data[0x7c002];
|
||||
m_flash_chip[1].org_data[7] = m_flash_chip[1].data[0x7c003];
|
||||
m_flash_chip[1].org_data[8] = m_flash_chip[1].data[0xfc000];
|
||||
m_flash_chip[1].org_data[9] = m_flash_chip[1].data[0xfc001];
|
||||
m_flash_chip[1].org_data[10] = m_flash_chip[1].data[0xfc002];
|
||||
m_flash_chip[1].org_data[11] = m_flash_chip[1].data[0xfc003];
|
||||
m_flash_chip[1].org_data[12] = m_flash_chip[1].data[0x1fc000];
|
||||
m_flash_chip[1].org_data[13] = m_flash_chip[1].data[0x1fc001];
|
||||
m_flash_chip[1].org_data[14] = m_flash_chip[1].data[0x1fc002];
|
||||
m_flash_chip[1].org_data[15] = m_flash_chip[1].data[0x1fc003];
|
||||
|
||||
m_seconds_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ngp_state::ngp_seconds_callback),this));
|
||||
m_seconds_timer->adjust( attotime::from_seconds(1), 0, attotime::from_seconds(1) );
|
||||
}
|
||||
@ -634,22 +679,9 @@ UINT32 ngp_state::screen_update_ngp(screen_device &screen, bitmap_ind16 &bitmap,
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( ngp_state, ngp_cart )
|
||||
{
|
||||
UINT8 *cart = memregion("cart")->base();
|
||||
|
||||
m_flash_chip[0].present = 0;
|
||||
m_flash_chip[0].state = F_READ;
|
||||
m_flash_chip[0].data = cart;
|
||||
|
||||
m_flash_chip[1].present = 0;
|
||||
m_flash_chip[1].state = F_READ;
|
||||
m_flash_chip[1].data = cart + 0x200000;
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER( ngp_state, ngp_cart )
|
||||
{
|
||||
UINT8 *cart = memregion("cart")->base();
|
||||
UINT32 filesize;
|
||||
|
||||
if (image.software_entry() == NULL)
|
||||
@ -662,7 +694,7 @@ DEVICE_IMAGE_LOAD_MEMBER( ngp_state, ngp_cart )
|
||||
return IMAGE_INIT_FAIL;
|
||||
}
|
||||
|
||||
if (image.fread( machine().root_device().memregion("cart")->base(), filesize) != filesize)
|
||||
if (image.fread( cart, filesize) != filesize)
|
||||
{
|
||||
image.seterror(IMAGE_ERROR_UNSPECIFIED, "Error loading file");
|
||||
return IMAGE_INIT_FAIL;
|
||||
@ -671,7 +703,7 @@ DEVICE_IMAGE_LOAD_MEMBER( ngp_state, ngp_cart )
|
||||
else
|
||||
{
|
||||
filesize = image.get_software_region_length("rom");
|
||||
memcpy(machine().root_device().memregion("cart")->base(), image.get_software_region("rom"), filesize);
|
||||
memcpy(cart, image.get_software_region("rom"), filesize);
|
||||
}
|
||||
|
||||
//printf("%2x%2x - %x - %x\n", (unsigned int) image.device().machine().root_device().memregion("cart")->u8(0x20), (unsigned int) image.device().machine().root_device().memregion("cart")->u8(0x21),
|
||||
@ -698,40 +730,6 @@ DEVICE_IMAGE_LOAD_MEMBER( ngp_state, ngp_cart )
|
||||
break;
|
||||
}
|
||||
|
||||
m_flash_chip[0].org_data[0] = m_flash_chip[0].data[0];
|
||||
m_flash_chip[0].org_data[1] = m_flash_chip[0].data[1];
|
||||
m_flash_chip[0].org_data[2] = m_flash_chip[0].data[2];
|
||||
m_flash_chip[0].org_data[3] = m_flash_chip[0].data[3];
|
||||
m_flash_chip[0].org_data[4] = m_flash_chip[0].data[0x7c000];
|
||||
m_flash_chip[0].org_data[5] = m_flash_chip[0].data[0x7c001];
|
||||
m_flash_chip[0].org_data[6] = m_flash_chip[0].data[0x7c002];
|
||||
m_flash_chip[0].org_data[7] = m_flash_chip[0].data[0x7c003];
|
||||
m_flash_chip[0].org_data[8] = m_flash_chip[0].data[0xfc000];
|
||||
m_flash_chip[0].org_data[9] = m_flash_chip[0].data[0xfc001];
|
||||
m_flash_chip[0].org_data[10] = m_flash_chip[0].data[0xfc002];
|
||||
m_flash_chip[0].org_data[11] = m_flash_chip[0].data[0xfc003];
|
||||
m_flash_chip[0].org_data[12] = m_flash_chip[0].data[0x1fc000];
|
||||
m_flash_chip[0].org_data[13] = m_flash_chip[0].data[0x1fc001];
|
||||
m_flash_chip[0].org_data[14] = m_flash_chip[0].data[0x1fc002];
|
||||
m_flash_chip[0].org_data[15] = m_flash_chip[0].data[0x1fc003];
|
||||
|
||||
m_flash_chip[1].org_data[0] = m_flash_chip[1].data[0];
|
||||
m_flash_chip[1].org_data[1] = m_flash_chip[1].data[1];
|
||||
m_flash_chip[1].org_data[2] = m_flash_chip[1].data[2];
|
||||
m_flash_chip[1].org_data[3] = m_flash_chip[1].data[3];
|
||||
m_flash_chip[1].org_data[4] = m_flash_chip[1].data[0x7c000];
|
||||
m_flash_chip[1].org_data[5] = m_flash_chip[1].data[0x7c001];
|
||||
m_flash_chip[1].org_data[6] = m_flash_chip[1].data[0x7c002];
|
||||
m_flash_chip[1].org_data[7] = m_flash_chip[1].data[0x7c003];
|
||||
m_flash_chip[1].org_data[8] = m_flash_chip[1].data[0xfc000];
|
||||
m_flash_chip[1].org_data[9] = m_flash_chip[1].data[0xfc001];
|
||||
m_flash_chip[1].org_data[10] = m_flash_chip[1].data[0xfc002];
|
||||
m_flash_chip[1].org_data[11] = m_flash_chip[1].data[0xfc003];
|
||||
m_flash_chip[1].org_data[12] = m_flash_chip[1].data[0x1fc000];
|
||||
m_flash_chip[1].org_data[13] = m_flash_chip[1].data[0x1fc001];
|
||||
m_flash_chip[1].org_data[14] = m_flash_chip[1].data[0x1fc002];
|
||||
m_flash_chip[1].org_data[15] = m_flash_chip[1].data[0x1fc003];
|
||||
|
||||
m_flash_chip[0].present = 1;
|
||||
m_flash_chip[0].state = F_READ;
|
||||
|
||||
@ -805,7 +803,6 @@ static MACHINE_CONFIG_DERIVED( ngp, ngp_common )
|
||||
MCFG_CARTSLOT_ADD("cart")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("bin,ngp,npc,ngc")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_START(ngp_state, ngp_cart)
|
||||
MCFG_CARTSLOT_LOAD(ngp_state, ngp_cart)
|
||||
MCFG_CARTSLOT_INTERFACE("ngp_cart")
|
||||
MCFG_CARTSLOT_UNLOAD(ngp_state, ngp_cart)
|
||||
@ -826,7 +823,6 @@ static MACHINE_CONFIG_DERIVED( ngpc, ngp_common )
|
||||
MCFG_CARTSLOT_ADD("cart")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("bin,ngp,npc,ngc")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_START(ngp_state,ngp_cart)
|
||||
MCFG_CARTSLOT_LOAD(ngp_state,ngp_cart)
|
||||
MCFG_CARTSLOT_INTERFACE("ngp_cart")
|
||||
MCFG_CARTSLOT_UNLOAD(ngp_state,ngp_cart)
|
||||
|
@ -17,6 +17,9 @@ public:
|
||||
scv_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_videoram(*this,"videoram")
|
||||
, m_cart_rom_size(0)
|
||||
, m_cart_ram(NULL)
|
||||
, m_cart_ram_size(0)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_upd1771c(*this, "upd1771c")
|
||||
, m_pa0(*this, "PA0")
|
||||
@ -57,7 +60,6 @@ public:
|
||||
virtual void palette_init();
|
||||
UINT32 screen_update_scv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_CALLBACK_MEMBER(scv_vb_callback);
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( scv_cart );
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( scv_cart );
|
||||
|
||||
protected:
|
||||
@ -360,20 +362,12 @@ WRITE8_MEMBER( scv_state::scv_portc_w )
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( scv_state, scv_cart )
|
||||
{
|
||||
m_cart_rom = memregion( "cart" )->base();
|
||||
m_cart_rom_size = 0;
|
||||
m_cart_ram = NULL;
|
||||
m_cart_ram_size = 0;
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER( scv_state, scv_cart )
|
||||
{
|
||||
UINT8 *cart = memregion( "cart" )->base();
|
||||
|
||||
if ( image.software_entry() == NULL )
|
||||
{
|
||||
UINT8 *cart = image.device().machine().root_device().memregion( "cart" )->base();
|
||||
int size = image.length();
|
||||
|
||||
if ( size > memregion( "cart" )->bytes() )
|
||||
@ -388,17 +382,17 @@ DEVICE_IMAGE_LOAD_MEMBER( scv_state, scv_cart )
|
||||
return IMAGE_INIT_FAIL;
|
||||
}
|
||||
|
||||
m_cart_rom = cart;
|
||||
m_cart_rom_size = size;
|
||||
m_cart_ram = NULL;
|
||||
m_cart_ram_size = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_cart_rom = image.get_software_region( "rom" );
|
||||
m_cart_rom_size = image.get_software_region_length( "rom" );
|
||||
m_cart_ram = image.get_software_region( "ram" );
|
||||
memcpy( cart, image.get_software_region( "rom" ), m_cart_rom_size );
|
||||
m_cart_ram_size = image.get_software_region_length( "ram" );
|
||||
if ( m_cart_ram_size > 0 )
|
||||
{
|
||||
m_cart_ram = auto_alloc_array_clear( machine(), UINT8, m_cart_ram_size );
|
||||
}
|
||||
}
|
||||
|
||||
return IMAGE_INIT_PASS;
|
||||
@ -799,6 +793,7 @@ WRITE_LINE_MEMBER( scv_state::scv_upd1771_ack_w )
|
||||
|
||||
void scv_state::machine_start()
|
||||
{
|
||||
m_cart_rom = memregion( "cart" )->base();
|
||||
m_vb_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(scv_state::scv_vb_callback),this));
|
||||
}
|
||||
|
||||
@ -859,7 +854,6 @@ static MACHINE_CONFIG_START( scv, scv_state )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST( "bin" )
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("scv_cart")
|
||||
MCFG_CARTSLOT_START( scv_state, scv_cart )
|
||||
MCFG_CARTSLOT_LOAD( scv_state, scv_cart )
|
||||
|
||||
/* Software lists */
|
||||
|
@ -402,7 +402,6 @@ static MACHINE_CONFIG_FRAGMENT( sms_cartslot )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("sms,bin")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("sms_cart")
|
||||
MCFG_CARTSLOT_START(sms_state,sms_cart)
|
||||
MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
|
||||
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list","sms")
|
||||
@ -413,7 +412,6 @@ static MACHINE_CONFIG_FRAGMENT( gg_cartslot )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("gg,bin")
|
||||
MCFG_CARTSLOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("gamegear_cart")
|
||||
MCFG_CARTSLOT_START(sms_state,sms_cart)
|
||||
MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
|
||||
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list","gamegear")
|
||||
@ -495,7 +493,6 @@ MACHINE_CONFIG_END
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("sms,bin") \
|
||||
MCFG_CARTSLOT_NOT_MANDATORY \
|
||||
MCFG_CARTSLOT_INTERFACE("sms_cart") \
|
||||
MCFG_CARTSLOT_START(sms_state,sms_cart) \
|
||||
MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( sms_sdisp, sms2_ntsc )
|
||||
@ -512,7 +509,6 @@ static MACHINE_CONFIG_DERIVED( sms_sdisp, sms2_ntsc )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("sms,bin")
|
||||
MCFG_CARTSLOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("sms_cart")
|
||||
MCFG_CARTSLOT_START(sms_state,sms_cart)
|
||||
MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
|
||||
|
||||
MCFG_SMSSDISP_CARTSLOT_ADD("cart2")
|
||||
@ -617,7 +613,6 @@ static MACHINE_CONFIG_DERIVED( sg1000m3, sms_fm )
|
||||
MCFG_CARTSLOT_MODIFY("cart1")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("sms,bin,sg")
|
||||
MCFG_CARTSLOT_MANDATORY
|
||||
MCFG_CARTSLOT_START(sms_state,sms_cart)
|
||||
MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -299,7 +299,6 @@ static MACHINE_CONFIG_FRAGMENT( svi318_cartslot )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("rom")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("svi318_cart")
|
||||
MCFG_CARTSLOT_START(svi318_state,svi318_cart)
|
||||
MCFG_CARTSLOT_LOAD(svi318_state,svi318_cart)
|
||||
MCFG_CARTSLOT_UNLOAD(svi318_state,svi318_cart)
|
||||
|
||||
|
@ -155,7 +155,6 @@ static MACHINE_CONFIG_START( wswan, wswan_state )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("ws,wsc,bin")
|
||||
MCFG_CARTSLOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("wswan_cart")
|
||||
MCFG_CARTSLOT_START(wswan_state,wswan_cart)
|
||||
MCFG_CARTSLOT_LOAD(wswan_state,wswan_cart)
|
||||
|
||||
/* software lists */
|
||||
@ -195,5 +194,5 @@ ROM_START( wscolor )
|
||||
ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME*/
|
||||
CONS( 1999, wswan, 0, 0, wswan, wswan, driver_device, 0, "Bandai", "WonderSwan", GAME_IMPERFECT_SOUND )
|
||||
CONS( 2000, wscolor, wswan, 0, wscolor, wswan, driver_device, 0, "Bandai", "WonderSwan Color", GAME_IMPERFECT_SOUND )
|
||||
CONS( 1999, wswan, 0, 0, wswan, wswan, wswan_state, wswan, "Bandai", "WonderSwan", GAME_IMPERFECT_SOUND )
|
||||
CONS( 2000, wscolor, wswan, 0, wscolor, wswan, wswan_state, wswan, "Bandai", "WonderSwan Color", GAME_IMPERFECT_SOUND )
|
||||
|
@ -59,6 +59,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(a7800_TIA_w);
|
||||
DECLARE_READ8_MEMBER(a7800_MARIA_r);
|
||||
DECLARE_WRITE8_MEMBER(a7800_MARIA_w);
|
||||
void a7800_driver_init(int ispal, int lines);
|
||||
DECLARE_DRIVER_INIT(a7800_pal);
|
||||
DECLARE_DRIVER_INIT(a7800_ntsc);
|
||||
virtual void machine_reset();
|
||||
@ -71,7 +72,6 @@ public:
|
||||
DECLARE_READ8_MEMBER(riot_console_button_r);
|
||||
DECLARE_WRITE8_MEMBER(riot_button_pullup_w);
|
||||
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( a7800_cart );
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( a7800_cart );
|
||||
};
|
||||
|
||||
|
@ -89,7 +89,7 @@ public:
|
||||
UINT8 *m_io_ram_r_ptr;
|
||||
c64_cart_t m_cart;
|
||||
int m_nmilevel;
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( c64_cart );
|
||||
void c64_legacy_driver_init();
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( c64_cart );
|
||||
DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( c64_cart );
|
||||
};
|
||||
|
@ -13,7 +13,8 @@ class gamepock_state : public driver_device
|
||||
{
|
||||
public:
|
||||
gamepock_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag) { }
|
||||
: driver_device(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
virtual void machine_reset();
|
||||
|
||||
@ -30,7 +31,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER( port_b_w );
|
||||
DECLARE_READ8_MEMBER( port_c_r );
|
||||
UINT32 screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER(gamepock_cart);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(gamepock_cart);
|
||||
};
|
||||
|
||||
|
@ -267,7 +267,7 @@ public:
|
||||
TIMER_CALLBACK_MEMBER(gb_lcd_timer_proc);
|
||||
TIMER_CALLBACK_MEMBER(gbc_lcd_timer_proc);
|
||||
DECLARE_WRITE8_MEMBER(gb_timer_callback);
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER(gb_cart);
|
||||
DECLARE_DRIVER_INIT(gb);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(gb_cart);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(megaduck_cart);
|
||||
|
||||
|
@ -95,7 +95,7 @@ public:
|
||||
|
||||
void nc200_fdc_interrupt(bool state);
|
||||
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( nc_pcmcia_card );
|
||||
DECLARE_DRIVER_INIT( nc );
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( nc_pcmcia_card );
|
||||
DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( nc_pcmcia_card );
|
||||
|
||||
|
@ -127,7 +127,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(psg_4017_w);
|
||||
void nes_banks_restore();
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(nes_cart);
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER(nes_disk);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(nes_disk);
|
||||
DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER(nes_disk);
|
||||
|
||||
|
@ -209,7 +209,7 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER(sms_pause_callback);
|
||||
DECLARE_WRITE_LINE_MEMBER(sms_store_int_callback);
|
||||
void sms_machine_stop();
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER(sms_cart);
|
||||
void setup_sms_cart();
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(sms_cart);
|
||||
protected:
|
||||
required_shared_ptr<UINT8> m_mainram;
|
||||
|
@ -56,6 +56,8 @@ class svi318_state : public driver_device
|
||||
public:
|
||||
svi318_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_pcart(NULL)
|
||||
, m_pcart_rom_size(0)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_cassette(*this, CASSETTE_TAG)
|
||||
, m_dac(*this, "dac")
|
||||
@ -109,7 +111,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(svi318_ppi_port_c_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(svi_fdc_intrq_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(svi_fdc_drq_w);
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER(svi318_cart);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(svi318_cart);
|
||||
DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER(svi318_cart);
|
||||
|
||||
|
@ -144,7 +144,7 @@ public:
|
||||
TIMER_CALLBACK_MEMBER(wswan_rtc_callback);
|
||||
TIMER_CALLBACK_MEMBER(wswan_scanline_interrupt);
|
||||
void wswan_machine_stop();
|
||||
DECLARE_DEVICE_IMAGE_START_MEMBER( wswan_cart );
|
||||
DECLARE_DRIVER_INIT( wswan );
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( wswan_cart );
|
||||
|
||||
protected:
|
||||
|
@ -68,38 +68,54 @@ const riot6532_interface a7800_r6532_interface =
|
||||
DRIVER INIT
|
||||
***************************************************************************/
|
||||
|
||||
static void a7800_driver_init(running_machine &machine, int ispal, int lines)
|
||||
void a7800_state::a7800_driver_init(int ispal, int lines)
|
||||
{
|
||||
a7800_state *state = machine.driver_data<a7800_state>();
|
||||
address_space& space = machine.device("maincpu")->memory().space(AS_PROGRAM);
|
||||
state->m_ROM = state->memregion("maincpu")->base();
|
||||
state->m_ispal = ispal;
|
||||
state->m_lines = lines;
|
||||
state->m_p1_one_button = 1;
|
||||
state->m_p2_one_button = 1;
|
||||
address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
|
||||
m_ROM = memregion("maincpu")->base();
|
||||
m_ispal = ispal;
|
||||
m_lines = lines;
|
||||
m_p1_one_button = 1;
|
||||
m_p2_one_button = 1;
|
||||
|
||||
/* standard banks */
|
||||
state->membank("bank5")->set_base(&state->m_ROM[0x2040]); /* RAM0 */
|
||||
state->membank("bank6")->set_base(&state->m_ROM[0x2140]); /* RAM1 */
|
||||
state->membank("bank7")->set_base(&state->m_ROM[0x2000]); /* MAINRAM */
|
||||
membank("bank5")->set_base(&m_ROM[0x2040]); /* RAM0 */
|
||||
membank("bank6")->set_base(&m_ROM[0x2140]); /* RAM1 */
|
||||
membank("bank7")->set_base(&m_ROM[0x2000]); /* MAINRAM */
|
||||
|
||||
/* Brutal hack put in as a consequence of new memory system; fix this */
|
||||
space.install_readwrite_bank(0x0480, 0x04FF,"bank10");
|
||||
state->membank("bank10")->set_base(state->m_ROM + 0x0480);
|
||||
membank("bank10")->set_base(m_ROM + 0x0480);
|
||||
space.install_readwrite_bank(0x1800, 0x27FF, "bank11");
|
||||
state->membank("bank11")->set_base(state->m_ROM + 0x1800);
|
||||
membank("bank11")->set_base(m_ROM + 0x1800);
|
||||
|
||||
m_bios_bkup = NULL;
|
||||
m_cart_bkup = NULL;
|
||||
|
||||
/* Allocate memory for BIOS bank switching */
|
||||
m_bios_bkup = auto_alloc_array_clear(machine(), UINT8, 0x4000);
|
||||
m_cart_bkup = auto_alloc_array(machine(), UINT8, 0x4000);
|
||||
|
||||
/* save the BIOS so we can switch it in and out */
|
||||
memcpy( m_bios_bkup, m_ROM + 0xC000, 0x4000 );
|
||||
|
||||
/* Initialize cart area to "no data" */
|
||||
memset( m_cart_bkup, 0xFF, 0x4000 );
|
||||
|
||||
/* defaults for PAL bios without cart */
|
||||
m_cart_type = 0;
|
||||
m_stick_type = 1;
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(a7800_state,a7800_ntsc)
|
||||
{
|
||||
a7800_driver_init(machine(), FALSE, 262);
|
||||
a7800_driver_init(FALSE, 262);
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(a7800_state,a7800_pal)
|
||||
{
|
||||
a7800_driver_init(machine(), TRUE, 312);
|
||||
a7800_driver_init(TRUE, 312);
|
||||
}
|
||||
|
||||
|
||||
@ -191,28 +207,6 @@ static int a7800_verify_cart(char header[128])
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( a7800_state, a7800_cart )
|
||||
{
|
||||
UINT8 *memory = memregion("maincpu")->base();
|
||||
|
||||
m_bios_bkup = NULL;
|
||||
m_cart_bkup = NULL;
|
||||
|
||||
/* Allocate memory for BIOS bank switching */
|
||||
m_bios_bkup = auto_alloc_array_clear(machine(), UINT8, 0x4000);
|
||||
m_cart_bkup = auto_alloc_array(machine(), UINT8, 0x4000);
|
||||
|
||||
/* save the BIOS so we can switch it in and out */
|
||||
memcpy( m_bios_bkup, memory + 0xC000, 0x4000 );
|
||||
|
||||
/* Initialize cart area to "no data" */
|
||||
memset( m_cart_bkup, 0xFF, 0x4000 );
|
||||
|
||||
/* defaults for PAL bios without cart */
|
||||
m_cart_type = 0;
|
||||
m_stick_type = 1;
|
||||
}
|
||||
|
||||
struct a7800_pcb
|
||||
{
|
||||
const char *pcb_name;
|
||||
|
@ -519,7 +519,7 @@ DEVICE_IMAGE_UNLOAD_MEMBER( legacy_c64_state, c64_cart )
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( legacy_c64_state, c64_cart )
|
||||
void legacy_c64_state::c64_legacy_driver_init()
|
||||
{
|
||||
/* In the first slot we can load a .crt file. In this case we want
|
||||
to use game & exrom values from the header, not the default ones. */
|
||||
@ -1182,14 +1182,12 @@ MACHINE_CONFIG_FRAGMENT( c64_cartslot )
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("crt,80")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_INTERFACE("c64_cart")
|
||||
MCFG_CARTSLOT_START(legacy_c64_state,c64_cart)
|
||||
MCFG_CARTSLOT_LOAD(legacy_c64_state,c64_cart)
|
||||
MCFG_CARTSLOT_UNLOAD(legacy_c64_state,c64_cart)
|
||||
|
||||
MCFG_CARTSLOT_ADD("cart2")
|
||||
MCFG_CARTSLOT_EXTENSION_LIST("crt,80")
|
||||
MCFG_CARTSLOT_NOT_MANDATORY
|
||||
MCFG_CARTSLOT_START(legacy_c64_state,c64_cart)
|
||||
MCFG_CARTSLOT_LOAD(legacy_c64_state,c64_cart)
|
||||
MCFG_CARTSLOT_UNLOAD(legacy_c64_state,c64_cart)
|
||||
|
||||
|
@ -994,12 +994,14 @@ static void c65_common_driver_init( running_machine &machine )
|
||||
DRIVER_INIT_MEMBER(c65_state,c65)
|
||||
{
|
||||
m_dma.version = 2;
|
||||
c64_legacy_driver_init();
|
||||
c65_common_driver_init(machine());
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(c65_state,c65pal)
|
||||
{
|
||||
m_dma.version = 1;
|
||||
c64_legacy_driver_init();
|
||||
c65_common_driver_init(machine());
|
||||
m_pal = 1;
|
||||
}
|
||||
|
@ -1496,7 +1496,7 @@ READ8_MEMBER(gb_state::gb_io_r)
|
||||
}
|
||||
}
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER(gb_state,gb_cart)
|
||||
DRIVER_INIT_MEMBER(gb_state, gb)
|
||||
{
|
||||
int I;
|
||||
|
||||
|
@ -90,7 +90,7 @@ static int nc_card_load(device_image_interface &image, unsigned char **ptr)
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( nc_state, nc_pcmcia_card )
|
||||
DRIVER_INIT_MEMBER( nc_state, nc )
|
||||
{
|
||||
/* card not present */
|
||||
nc_set_card_present_state(machine(), 0);
|
||||
|
@ -1554,7 +1554,7 @@ static int detect_lphaser_xoffset( running_machine &machine, UINT8 *rom )
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( sms_state, sms_cart )
|
||||
void sms_state::setup_sms_cart()
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -2105,12 +2105,14 @@ DRIVER_INIT_MEMBER(sms_state,sg1000m3)
|
||||
{
|
||||
m_is_region_japan = 1;
|
||||
m_has_fm = 1;
|
||||
setup_sms_cart();
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(sms_state,sms1)
|
||||
{
|
||||
m_has_bios_full = 1;
|
||||
setup_sms_cart();
|
||||
}
|
||||
|
||||
|
||||
@ -2119,6 +2121,7 @@ DRIVER_INIT_MEMBER(sms_state,smsj)
|
||||
m_is_region_japan = 1;
|
||||
m_has_bios_2000 = 1;
|
||||
m_has_fm = 1;
|
||||
setup_sms_cart();
|
||||
}
|
||||
|
||||
|
||||
@ -2127,11 +2130,13 @@ DRIVER_INIT_MEMBER(sms_state,sms2kr)
|
||||
m_is_region_japan = 1;
|
||||
m_has_bios_full = 1;
|
||||
m_has_fm = 1;
|
||||
setup_sms_cart();
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(sms_state,smssdisp)
|
||||
{
|
||||
setup_sms_cart();
|
||||
}
|
||||
|
||||
|
||||
@ -2139,6 +2144,7 @@ DRIVER_INIT_MEMBER(sms_state,gamegear)
|
||||
{
|
||||
m_is_gamegear = 1;
|
||||
m_has_bios_0400 = 1;
|
||||
setup_sms_cart();
|
||||
}
|
||||
|
||||
|
||||
@ -2147,6 +2153,7 @@ DRIVER_INIT_MEMBER(sms_state,gamegeaj)
|
||||
m_is_region_japan = 1;
|
||||
m_is_gamegear = 1;
|
||||
m_has_bios_0400 = 1;
|
||||
setup_sms_cart();
|
||||
}
|
||||
|
||||
|
||||
|
@ -62,25 +62,9 @@ const ins8250_interface svi318_ins8250_interface[2]=
|
||||
|
||||
/* Cartridge */
|
||||
|
||||
static int svi318_verify_cart (UINT8 magic[2])
|
||||
{
|
||||
/* read the first two bytes */
|
||||
if ( (magic[0] == 0xf3) && (magic[1] == 0x31) )
|
||||
return IMAGE_VERIFY_PASS;
|
||||
else
|
||||
return IMAGE_VERIFY_FAIL;
|
||||
}
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER( svi318_state, svi318_cart )
|
||||
{
|
||||
m_pcart = NULL;
|
||||
m_pcart_rom_size = 0;
|
||||
}
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER( svi318_state, svi318_cart )
|
||||
{
|
||||
svi318_state *state = image.device().machine().driver_data<svi318_state>();
|
||||
UINT8 *p = state->memregion("user1")->base();
|
||||
UINT8 *p = memregion("user1")->base();
|
||||
UINT32 size;
|
||||
|
||||
if (image.software_entry() == NULL)
|
||||
@ -100,24 +84,29 @@ DEVICE_IMAGE_LOAD_MEMBER( svi318_state, svi318_cart )
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(p, image.get_software_region("rom"), size);
|
||||
}
|
||||
|
||||
if (svi318_verify_cart(p) == IMAGE_VERIFY_FAIL)
|
||||
if ( p[0] != 0xf3 || p[1] != 0x31 )
|
||||
{
|
||||
return IMAGE_INIT_FAIL;
|
||||
}
|
||||
|
||||
state->m_pcart = p;
|
||||
state->m_pcart_rom_size = size;
|
||||
m_pcart = p;
|
||||
m_pcart_rom_size = size;
|
||||
|
||||
return IMAGE_INIT_PASS;
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_UNLOAD_MEMBER( svi318_state, svi318_cart )
|
||||
{
|
||||
svi318_state *state = image.device().machine().driver_data<svi318_state>();
|
||||
state->m_pcart = NULL;
|
||||
state->m_pcart_rom_size = 0;
|
||||
m_pcart = NULL;
|
||||
m_pcart_rom_size = 0;
|
||||
}
|
||||
|
||||
|
||||
/* PPI */
|
||||
|
||||
/*
|
||||
|
@ -1329,7 +1329,8 @@ static const char* wswan_determine_romsize( UINT8 data )
|
||||
return wswan_romsize_str[ ROM_UNKNOWN ];
|
||||
}
|
||||
|
||||
DEVICE_IMAGE_START_MEMBER(wswan_state,wswan_cart)
|
||||
|
||||
DRIVER_INIT_MEMBER(wswan_state, wswan)
|
||||
{
|
||||
/* Initialize EEPROM structure */
|
||||
memset( &m_eeprom, 0, sizeof( m_eeprom ) );
|
||||
@ -1349,6 +1350,7 @@ DEVICE_IMAGE_START_MEMBER(wswan_state,wswan_cart)
|
||||
m_rtc.setting = 0xFF;
|
||||
}
|
||||
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER(wswan_state,wswan_cart)
|
||||
{
|
||||
UINT32 ii, size;
|
||||
|
Loading…
Reference in New Issue
Block a user