diff options
author | 2014-09-18 20:36:02 +0000 | |
---|---|---|
committer | 2014-09-18 20:36:02 +0000 | |
commit | f7e216c3b95c1e6730881999273ecd317af1372c (patch) | |
tree | fe8c14d6cab96a34a3ba7b7dab0a21ab70f1f13f /src/mess/drivers | |
parent | 739cfa61b0a79b39ccb1f034398a269370bddb73 (diff) |
(MESS) unified some functions for generic socket / cart and
converted a few more drivers to use the new code instead of
old cartslot. nw.
Diffstat (limited to 'src/mess/drivers')
-rw-r--r-- | src/mess/drivers/aquarius.c | 15 | ||||
-rw-r--r-- | src/mess/drivers/atarist.c | 157 | ||||
-rw-r--r-- | src/mess/drivers/bbcbc.c | 42 | ||||
-rw-r--r-- | src/mess/drivers/pv2000.c | 15 | ||||
-rw-r--r-- | src/mess/drivers/rx78.c | 17 | ||||
-rw-r--r-- | src/mess/drivers/supracan.c | 19 |
6 files changed, 43 insertions, 222 deletions
diff --git a/src/mess/drivers/aquarius.c b/src/mess/drivers/aquarius.c index 358337ac8ad..4dd5e1d71f6 100644 --- a/src/mess/drivers/aquarius.c +++ b/src/mess/drivers/aquarius.c @@ -171,8 +171,11 @@ WRITE8_MEMBER(aquarius_state::scrambler_w) READ8_MEMBER(aquarius_state::cartridge_r) { - UINT8 *rom = m_rom->base() + 0xc000; - return rom[offset] ^ m_scrambler; + UINT8 data = 0; + if (m_cart->cart_mounted()) + data = m_cart->read_rom(space, offset); + + return data ^ m_scrambler; } @@ -373,10 +376,7 @@ static MACHINE_CONFIG_START( aquarius, aquarius_state ) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED) /* cartridge */ - MCFG_CARTSLOT_ADD("cart") - MCFG_CARTSLOT_EXTENSION_LIST("bin") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_INTERFACE("aquarius_cart") + MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_linear_slot, "aquarius_cart") /* internal ram */ MCFG_RAM_ADD(RAM_TAG) @@ -402,9 +402,6 @@ ROM_START( aquarius ) ROM_SYSTEM_BIOS(1, "rev2", "Revision 2") ROMX_LOAD("aq2.u2", 0x0000, 0x2000, CRC(a2d15bcf) SHA1(ca6ef55e9ead41453efbf5062d6a60285e9661a6), ROM_BIOS(2)) - /* cartridge */ - ROM_CART_LOAD("cart", 0xc000, 0x4000, ROM_MIRROR) - /* charrom */ ROM_REGION(0x800, "gfx1", 0) ROM_LOAD("aq2.u5", 0x000, 0x800, CRC(e117f57c) SHA1(3588c0267c67dfbbda615bcf8dc3d3a5c5bd815a)) diff --git a/src/mess/drivers/atarist.c b/src/mess/drivers/atarist.c index 8cf77636b80..78770e61da2 100644 --- a/src/mess/drivers/atarist.c +++ b/src/mess/drivers/atarist.c @@ -1228,7 +1228,7 @@ static ADDRESS_MAP_START( st_map, AS_PROGRAM, 16, st_state ) AM_RANGE(0x000008, 0x1fffff) AM_RAM AM_RANGE(0x200000, 0x3fffff) AM_RAM AM_RANGE(0x400000, 0xf9ffff) AM_READWRITE(berr_r, berr_w) - AM_RANGE(0xfa0000, 0xfbffff) AM_ROM AM_REGION("cart", 0) + //AM_RANGE(0xfa0000, 0xfbffff) // mapped by the cartslot AM_RANGE(0xfc0000, 0xfeffff) AM_ROM AM_REGION(M68000_TAG, 0) AM_WRITE(berr_w) AM_RANGE(0xff8000, 0xff8001) AM_READWRITE8(mmu_r, mmu_w, 0x00ff) AM_RANGE(0xff8200, 0xff8203) AM_READWRITE8(shifter_base_r, shifter_base_w, 0x00ff) @@ -1272,7 +1272,7 @@ static ADDRESS_MAP_START( megast_map, AS_PROGRAM, 16, megast_state ) AM_RANGE(0x000000, 0x000007) AM_ROM AM_REGION(M68000_TAG, 0) AM_RANGE(0x000008, 0x1fffff) AM_RAM AM_RANGE(0x200000, 0x3fffff) AM_RAM - AM_RANGE(0xfa0000, 0xfbffff) AM_ROM AM_REGION("cart", 0) + //AM_RANGE(0xfa0000, 0xfbffff) // mapped by the cartslot AM_RANGE(0xfc0000, 0xfeffff) AM_ROM AM_REGION(M68000_TAG, 0) // AM_RANGE(0xff7f30, 0xff7f31) AM_READWRITE(blitter_dst_inc_y_r, blitter_dst_inc_y_w) // for TOS 1.02 AM_RANGE(0xff8000, 0xff8001) AM_READWRITE8(mmu_r, mmu_w, 0x00ff) @@ -1937,6 +1937,9 @@ void st_state::machine_start() // configure RAM banking configure_memory(); + if (m_cart->cart_mounted()) + m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart)); + // allocate timers if(m_mousex) { m_mouse_timer = timer_alloc(TIMER_MOUSE_TICK); @@ -1995,6 +1998,9 @@ void ste_state::machine_start() /* configure RAM banking */ configure_memory(); + if (m_cart->cart_mounted()) + m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart)); + /* allocate timers */ m_dmasound_timer = timer_alloc(TIMER_DMASOUND_TICK); m_microwire_timer = timer_alloc(TIMER_MICROWIRE_TICK); @@ -2037,6 +2043,9 @@ void stbook_state::machine_start() break; } + if (m_cart->cart_mounted()) + m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart)); + /* register for state saving */ ste_state::state_save(); @@ -2133,10 +2142,8 @@ static MACHINE_CONFIG_START( st, st_state ) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(st_state, write_acia_clock)) // cartridge - MCFG_CARTSLOT_ADD("cart") - MCFG_CARTSLOT_EXTENSION_LIST("bin,rom") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_INTERFACE("st_cart") + MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM16_WIDTH, generic_linear_slot, "st_cart") + MCFG_GENERIC_EXTENSIONS("bin,rom") MCFG_SOFTWARE_LIST_ADD("cart_list", "st_cart") // internal ram @@ -2224,10 +2231,8 @@ static MACHINE_CONFIG_START( megast, megast_state ) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(st_state, write_acia_clock)) // cartridge - MCFG_CARTSLOT_ADD("cart") - MCFG_CARTSLOT_EXTENSION_LIST("bin,rom") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_INTERFACE("st_cart") + MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM16_WIDTH, generic_linear_slot, "st_cart") + MCFG_GENERIC_EXTENSIONS("bin,rom") MCFG_SOFTWARE_LIST_ADD("cart_list", "st_cart") // internal ram @@ -2322,10 +2327,8 @@ static MACHINE_CONFIG_START( ste, ste_state ) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(st_state, write_acia_clock)) // cartridge - MCFG_CARTSLOT_ADD("cart") - MCFG_CARTSLOT_EXTENSION_LIST("bin,rom") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_INTERFACE("st_cart") + MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM16_WIDTH, generic_linear_slot, "st_cart") + MCFG_GENERIC_EXTENSIONS("bin,rom") // MCFG_SOFTWARE_LIST_ADD("cart_list", "ste_cart") // internal ram @@ -2428,10 +2431,8 @@ static MACHINE_CONFIG_START( stbook, stbook_state ) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(st_state, write_acia_clock)) // cartridge - MCFG_CARTSLOT_ADD("cart") - MCFG_CARTSLOT_EXTENSION_LIST("bin,rom") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_INTERFACE("st_cart") + MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM16_WIDTH, generic_linear_slot, "st_cart") + MCFG_GENERIC_EXTENSIONS("bin,rom") MCFG_SOFTWARE_LIST_ADD("cart_list", "st_cart") /* internal ram */ @@ -2486,9 +2487,6 @@ ROM_START( st ) ROM_SYSTEM_BIOS( 3, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104.bin", 0x00000, 0x30000, BAD_DUMP CRC(90f4fbff) SHA1(2487f330b0895e5d88d580d4ecb24061125e88ad), ROM_BIOS(4) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2508,9 +2506,6 @@ ROM_START( st_uk ) ROM_SYSTEM_BIOS( 2, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104uk.bin", 0x00000, 0x30000, BAD_DUMP CRC(a50d1d43) SHA1(9526ef63b9cb1d2a7109e278547ae78a5c1db6c6), ROM_BIOS(3) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2537,9 +2532,6 @@ ROM_START( st_de ) ROMX_LOAD( "st 7c1 a2.u2", 0x20000, 0x08000, CRC(d0513329) SHA1(49855a3585e2f75b2af932dd4414ed64e6d9501f), ROM_SKIP(1) | ROM_BIOS(4) ) ROMX_LOAD( "st 7c1 b1.u5", 0x20001, 0x08000, CRC(c115cbc8) SHA1(2b52b81a1a4e0818d63f98ee4b25c30e2eba61cb), ROM_SKIP(1) | ROM_BIOS(4) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2566,9 +2558,6 @@ ROM_START( st_fr ) ROMX_LOAD( "c101656-001.u48", 0x20000, 0x08000, CRC(dbd93fb8) SHA1(cf9ec11e4bc2465490e7e6c981d9f61eae6cb359), ROM_SKIP(1) | ROM_BIOS(4) ) ROMX_LOAD( "c101659-001.u53", 0x20001, 0x08000, CRC(67c9785a) SHA1(917a17e9f83bee015c25b327780eebb11cb2c5a5), ROM_SKIP(1) | ROM_BIOS(4) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2584,9 +2573,6 @@ ROM_START( st_es ) ROM_SYSTEM_BIOS( 0, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104es.bin", 0x00000, 0x30000, BAD_DUMP CRC(f4e8ecd2) SHA1(df63f8ac09125d0877b55d5ba1282779b7f99c16), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2602,9 +2588,6 @@ ROM_START( st_nl ) ROM_SYSTEM_BIOS( 0, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104nl.bin", 0x00000, 0x30000, BAD_DUMP CRC(bb4370d4) SHA1(6de7c96b2d2e5c68778f4bce3eaf85a4e121f166), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2622,9 +2605,6 @@ ROM_START( st_se ) ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104se.bin", 0x00000, 0x30000, BAD_DUMP CRC(80ecfdce) SHA1(b7ad34d5cdfbe86ea74ae79eca11dce421a7bbfd), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2642,9 +2622,6 @@ ROM_START( st_sg ) ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104sg.bin", 0x00000, 0x30000, BAD_DUMP CRC(e58f0bdf) SHA1(aa40bf7203f02b2251b9e4850a1a73ff1c7da106), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2662,9 +2639,6 @@ ROM_START( megast ) ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104.bin", 0x00000, 0x30000, BAD_DUMP CRC(90f4fbff) SHA1(2487f330b0895e5d88d580d4ecb24061125e88ad), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2682,9 +2656,6 @@ ROM_START( megast_uk ) ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104uk.bin", 0x00000, 0x30000, BAD_DUMP CRC(a50d1d43) SHA1(9526ef63b9cb1d2a7109e278547ae78a5c1db6c6), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2702,9 +2673,6 @@ ROM_START( megast_de ) ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104de.bin", 0x00000, 0x30000, BAD_DUMP CRC(62b82b42) SHA1(5313733f91b083c6265d93674cb9d0b7efd02da8), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2722,9 +2690,6 @@ ROM_START( megast_fr ) ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104fr.bin", 0x00000, 0x30000, BAD_DUMP CRC(a305a404) SHA1(20dba880344b810cf63cec5066797c5a971db870), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2742,9 +2707,6 @@ ROM_START( megast_se ) ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104se.bin", 0x00000, 0x30000, BAD_DUMP CRC(80ecfdce) SHA1(b7ad34d5cdfbe86ea74ae79eca11dce421a7bbfd), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2762,9 +2724,6 @@ ROM_START( megast_sg ) ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104sg.bin", 0x00000, 0x30000, BAD_DUMP CRC(e58f0bdf) SHA1(aa40bf7203f02b2251b9e4850a1a73ff1c7da106), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2780,9 +2739,6 @@ ROM_START( stacy ) ROM_SYSTEM_BIOS( 0, "tos104", "TOS 1.04 (Rainbow TOS)" ) ROMX_LOAD( "tos104.bin", 0x00000, 0x30000, BAD_DUMP CRC(a50d1d43) SHA1(9526ef63b9cb1d2a7109e278547ae78a5c1db6c6), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2803,9 +2759,6 @@ ROM_START( ste ) ROM_SYSTEM_BIOS( 2, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206.bin", 0x00000, 0x40000, BAD_DUMP CRC(3f2f840f) SHA1(ee58768bdfc602c9b14942ce5481e97dd24e7c83), ROM_BIOS(3) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2825,9 +2778,6 @@ ROM_START( ste_uk ) ROM_SYSTEM_BIOS( 2, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206uk.bin", 0x00000, 0x40000, BAD_DUMP CRC(08538e39) SHA1(2400ea95f547d6ea754a99d05d8530c03f8b28e3), ROM_BIOS(3) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2847,9 +2797,6 @@ ROM_START( ste_de ) ROM_SYSTEM_BIOS( 2, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206de.bin", 0x00000, 0x40000, BAD_DUMP CRC(143cd2ab) SHA1(d1da866560734289c4305f1028c36291d331d417), ROM_BIOS(3) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2865,9 +2812,6 @@ ROM_START( ste_es ) ROM_SYSTEM_BIOS( 0, "tos106", "TOS 1.06 (STE TOS, Revision 1)" ) ROMX_LOAD( "tos106es.bin", 0x00000, 0x40000, BAD_DUMP CRC(5cd2a540) SHA1(3a18f342c8288c0bc1879b7a209c73d5d57f7e81), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2887,9 +2831,6 @@ ROM_START( ste_fr ) ROM_SYSTEM_BIOS( 2, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206fr.bin", 0x00000, 0x40000, BAD_DUMP CRC(e3a99ca7) SHA1(387da431e6e3dd2e0c4643207e67d06cf33618c3), ROM_BIOS(3) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2905,9 +2846,6 @@ ROM_START( ste_it ) ROM_SYSTEM_BIOS( 0, "tos106", "TOS 1.06 (STE TOS, Revision 1)" ) ROMX_LOAD( "tos106it.bin", 0x00000, 0x40000, BAD_DUMP CRC(d3a55216) SHA1(28dc74e5e0fa56b685bbe15f9837f52684fee9fd), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2925,9 +2863,6 @@ ROM_START( ste_se ) ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206se.bin", 0x00000, 0x40000, BAD_DUMP CRC(be61906d) SHA1(ebdf5a4cf08471cd315a91683fcb24e0f029d451), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2943,9 +2878,6 @@ ROM_START( ste_sg ) ROM_SYSTEM_BIOS( 0, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206sg.bin", 0x00000, 0x40000, BAD_DUMP CRC(8c4fe57d) SHA1(c7a9ae3162f020dcac0c2a46cf0c033f91b98644), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2963,9 +2895,6 @@ ROM_START( megaste ) ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206.bin", 0x00000, 0x40000, BAD_DUMP CRC(3f2f840f) SHA1(ee58768bdfc602c9b14942ce5481e97dd24e7c83), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -2990,9 +2919,6 @@ ROM_START( megaste_uk ) ROMX_LOAD( "tos206uk.bin", 0x00000, 0x40000, BAD_DUMP CRC(08538e39) SHA1(2400ea95f547d6ea754a99d05d8530c03f8b28e3), ROM_BIOS(1) ) #endif - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3010,9 +2936,6 @@ ROM_START( megaste_fr ) ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206fr.bin", 0x00000, 0x40000, BAD_DUMP CRC(e3a99ca7) SHA1(387da431e6e3dd2e0c4643207e67d06cf33618c3), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3030,9 +2953,6 @@ ROM_START( megaste_de ) ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206de.bin", 0x00000, 0x40000, BAD_DUMP CRC(143cd2ab) SHA1(d1da866560734289c4305f1028c36291d331d417), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3048,9 +2968,6 @@ ROM_START( megaste_es ) ROM_SYSTEM_BIOS( 0, "tos205", "TOS 2.05 (Mega STE TOS)" ) ROMX_LOAD( "tos205es.bin", 0x00000, 0x40000, BAD_DUMP CRC(2a426206) SHA1(317715ad8de718b5acc7e27ecf1eb833c2017c91), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3066,9 +2983,6 @@ ROM_START( megaste_it ) ROM_SYSTEM_BIOS( 0, "tos205", "TOS 2.05 (Mega STE TOS)" ) ROMX_LOAD( "tos205it.bin", 0x00000, 0x40000, BAD_DUMP CRC(b28bf5a1) SHA1(8e0581b442384af69345738849cf440d72f6e6ab), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3086,9 +3000,6 @@ ROM_START( megaste_se ) ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" ) ROMX_LOAD( "tos206se.bin", 0x00000, 0x40000, BAD_DUMP CRC(be61906d) SHA1(ebdf5a4cf08471cd315a91683fcb24e0f029d451), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3104,9 +3015,6 @@ ROM_START( stbook ) ROM_SYSTEM_BIOS( 0, "tos208", "TOS 2.08" ) ROMX_LOAD( "tos208.bin", 0x00000, 0x40000, NO_DUMP, ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, COP888_TAG, 0 ) ROM_LOAD( "cop888c0.u703", 0x0000, 0x1000, NO_DUMP ) ROM_END @@ -3122,9 +3030,6 @@ ROM_START( stpad ) ROM_REGION16_BE( 0x40000, M68000_TAG, 0 ) ROM_SYSTEM_BIOS( 0, "tos205", "TOS 2.05" ) ROMX_LOAD( "tos205.bin", 0x00000, 0x40000, NO_DUMP, ROM_BIOS(1) ) - - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) ROM_END #endif @@ -3139,9 +3044,6 @@ ROM_START( tt030 ) ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" ) ROMX_LOAD( "tos306.bin", 0x00000, 0x80000, BAD_DUMP CRC(e65adbd7) SHA1(b15948786278e1f2abc4effbb6d40786620acbe8), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3157,9 +3059,6 @@ ROM_START( tt030_uk ) ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" ) ROMX_LOAD( "tos306uk.bin", 0x00000, 0x80000, BAD_DUMP CRC(75dda215) SHA1(6325bdfd83f1b4d3afddb2b470a19428ca79478b), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3175,9 +3074,6 @@ ROM_START( tt030_de ) ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" ) ROMX_LOAD( "tos306de.bin", 0x00000, 0x80000, BAD_DUMP CRC(4fcbb59d) SHA1(80af04499d1c3b8551fc4d72142ff02c2182e64a), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3193,9 +3089,6 @@ ROM_START( tt030_fr ) ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" ) ROMX_LOAD( "tos306fr.bin", 0x00000, 0x80000, BAD_DUMP CRC(1945511c) SHA1(6bb19874e1e97dba17215d4f84b992c224a81b95), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3211,9 +3104,6 @@ ROM_START( tt030_pl ) ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" ) ROMX_LOAD( "tos306pl.bin", 0x00000, 0x80000, BAD_DUMP CRC(4f2404bc) SHA1(d122b8ceb202b52754ff0d442b1c81f8b4de3436), ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3229,9 +3119,6 @@ ROM_START( fx1 ) ROM_SYSTEM_BIOS( 0, "tos207", "TOS 2.07" ) ROMX_LOAD( "tos207.bin", 0x00000, 0x40000, NO_DUMP, ROM_BIOS(1) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3263,9 +3150,6 @@ ROM_START( falcon30 ) ROMX_LOAD( "tos404.bin", 0x00000, 0x80000, BAD_DUMP CRC(028b561d) SHA1(27dcdb31b0951af99023b2fb8c370d8447ba6ebc), ROM_BIOS(3) ) #endif - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END @@ -3280,9 +3164,6 @@ ROM_START( falcon40 ) ROM_SYSTEM_BIOS( 0, "tos492", "TOS 4.92" ) ROMX_LOAD( "tos492.bin", 0x00000, 0x7d314, BAD_DUMP CRC(bc8e497f) SHA1(747a38042844a6b632dcd9a76d8525fccb5eb892), ROM_BIOS(2) ) - ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 ) - ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL ) - ROM_REGION( 0x1000, HD6301V1_TAG, 0 ) ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) ) ROM_END diff --git a/src/mess/drivers/bbcbc.c b/src/mess/drivers/bbcbc.c index 1c0f65a9089..9e63a572a9b 100644 --- a/src/mess/drivers/bbcbc.c +++ b/src/mess/drivers/bbcbc.c @@ -16,7 +16,8 @@ #include "video/tms9928a.h" #include "machine/z80pio.h" #include "cpu/z80/z80daisy.h" -#include "imagedev/cartslot.h" +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" class bbcbc_state : public driver_device @@ -24,15 +25,15 @@ class bbcbc_state : public driver_device public: bbcbc_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu") + m_maincpu(*this, "maincpu"), + m_cart(*this, "cartslot") { } required_device<cpu_device> m_maincpu; + required_device<generic_slot_device> m_cart; virtual void machine_start(); virtual void machine_reset(); DECLARE_WRITE_LINE_MEMBER(tms_interrupt); - - DECLARE_DEVICE_IMAGE_LOAD_MEMBER( bbcbc_cart ); }; @@ -41,7 +42,7 @@ public: static ADDRESS_MAP_START( bbcbc_prg, AS_PROGRAM, 8, bbcbc_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0xbfff) AM_ROM + //AM_RANGE(0x4000, 0xbfff) // mapped by the cartslot AM_RANGE(0xe000, 0xe02f) AM_RAM AM_RANGE(0xe030, 0xe030) AM_READ_PORT("LINE01") AM_RANGE(0xe031, 0xe031) AM_READ_PORT("LINE02") @@ -115,32 +116,10 @@ static const z80_daisy_config bbcbc_daisy_chain[] = }; -DEVICE_IMAGE_LOAD_MEMBER( bbcbc_state, bbcbc_cart ) -{ - UINT8 *cart = memregion("maincpu" )->base() + 0x4000; - - if ( image.software_entry() == NULL ) - { - int size = image.length(); - if ( image.fread(cart, size ) != size ) { - image.seterror( IMAGE_ERROR_UNSPECIFIED, "Unable to fully read from file" ); - return IMAGE_INIT_FAIL; - } - } - else - { - UINT8 *reg = image.get_software_region( "rom" ); - int reg_len = image.get_software_region_length( "rom" ); - - memcpy( cart, reg, MIN(reg_len, 0x8000) ); - } - - return IMAGE_INIT_PASS; - -} - void bbcbc_state::machine_start() { + if (m_cart->cart_mounted()) + m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart)); } void bbcbc_state::machine_reset() @@ -162,10 +141,7 @@ static MACHINE_CONFIG_START( bbcbc, bbcbc_state ) MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" ) MCFG_SCREEN_UPDATE_DEVICE( "tms9129", tms9928a_device, screen_update ) - MCFG_CARTSLOT_ADD("cart") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_INTERFACE("bbcbc_cart") - MCFG_CARTSLOT_LOAD( bbcbc_state, bbcbc_cart ) + MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_plain_slot, "bbcbc_cart") /* Software lists */ MCFG_SOFTWARE_LIST_ADD("cart_list","bbcbc") diff --git a/src/mess/drivers/pv2000.c b/src/mess/drivers/pv2000.c index 89638b040f1..98e8c331ae6 100644 --- a/src/mess/drivers/pv2000.c +++ b/src/mess/drivers/pv2000.c @@ -360,13 +360,7 @@ void pv2000_state::machine_reset() DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart ) { - UINT8 *cart; - UINT32 size; - - if (image.software_entry() == NULL) - size = image.length(); - else - size = image.get_software_region_length("rom"); + UINT32 size = m_cart->common_get_size("rom"); if (size != 0x2000 && size != 0x4000) { @@ -375,12 +369,7 @@ DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart ) } m_cart->rom_alloc(size, 1); - cart = m_cart->get_rom_base(); - - if (image.software_entry() == NULL) - image.fread(cart, size); - else - memcpy(cart, image.get_software_region("rom"), size); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); return IMAGE_INIT_PASS; } diff --git a/src/mess/drivers/rx78.c b/src/mess/drivers/rx78.c index f5089ef4091..ccf309d7939 100644 --- a/src/mess/drivers/rx78.c +++ b/src/mess/drivers/rx78.c @@ -416,14 +416,8 @@ void rx78_state::machine_reset() DEVICE_IMAGE_LOAD_MEMBER( rx78_state, rx78_cart ) { - UINT8 *cart; - UINT32 size; - - if (image.software_entry() == NULL) - size = image.length(); - else - size = image.get_software_region_length("rom"); - + UINT32 size = m_cart->common_get_size("rom"); + if (size != 0x2000 && size != 0x4000) { image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size"); @@ -431,12 +425,7 @@ DEVICE_IMAGE_LOAD_MEMBER( rx78_state, rx78_cart ) } m_cart->rom_alloc(size, 1); - cart = m_cart->get_rom_base(); - - if (image.software_entry() == NULL) - image.fread(cart, size); - else - memcpy(cart, image.get_software_region("rom"), size); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); return IMAGE_INIT_PASS; } diff --git a/src/mess/drivers/supracan.c b/src/mess/drivers/supracan.c index 3b64547d14f..dcf90441916 100644 --- a/src/mess/drivers/supracan.c +++ b/src/mess/drivers/supracan.c @@ -1753,27 +1753,16 @@ WRITE16_MEMBER( supracan_state::video_w ) DEVICE_IMAGE_LOAD_MEMBER( supracan_state, supracan_cart ) { - UINT8 *cart; - UINT32 size; - - if (image.software_entry() == NULL) - size = image.length(); - else - size = image.get_software_region_length("rom"); + UINT32 size = m_cart->common_get_size("rom"); if (size > 0x400000) { image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size"); return IMAGE_INIT_FAIL; } - - m_cart->rom_alloc(size, 1); - cart = m_cart->get_rom_base(); - - if (image.software_entry() == NULL) - image.fread(cart, size); - else - memcpy(cart, image.get_software_region("rom"), size); + + m_cart->rom_alloc(size, 2); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); return IMAGE_INIT_PASS; } |