diff options
author | Aaron Giles <aaron@aarongiles.com> | 2012-04-19 20:35:01 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2012-04-19 20:35:01 +0000 |
commit | b5b7808cb787ea3191c1f13352d954a77320618c (patch) | |
tree | 24cc6ac067f38680ab6de586fc795298dca45f99 | |
parent | 70eab27301c7a778d4a9acf2060c0bbc7a6c6c2b (diff) |
Remove global memory banking functions in favor of referencing
subbanks of a device and directly acting on them.
First round S&R:
memory_configure_bank( *)\(( *)([^,]+), *([^,]+), *
\3.root_device().subbank\1\(\2\4\2\)->configure_entries\1\(\2
memory_configure_bank_decrypted( *)\(( *)([^,]+), *([^,]+), *
\3.root_device().subbank\1\(\2\4\2\)->configure_decrypted_entries\1\(\2
memory_set_bank( *)\(( *)([^,]+), *([^,]+), *
\3.root_device().subbank\1\(\2\4\2\)->set_entry\1\(\2
memory_set_bankptr( *)\(( *)([^,]+), *([^,]+), *
\3.root_device().subbank\1\(\2\4\2\)->set_base\1\(\2
Then convert single entries to simpler form:
configure_entries( *\( *[^,]+, *)1 *, *([^,]+),[^)]+\)
configure_entry\1\2\)
configure_decrypted_entries( *\( *[^,]+, *)1 *, *([^,]+),[^)]+\)
configure_decrypted_entry\1\2\)
Remove renundant root_device lookup for methods:
([ \t])machine\(\)\.root_device\(\)\.
\1
Use state-> instead of root_device lookup where available (this
one must be done by hand unfortunately):
([^ \t]*)machine[()]*\.root_device\(\)\.
state->
405 files changed, 1683 insertions, 1715 deletions
diff --git a/src/emu/memory.c b/src/emu/memory.c index 192662f0d72..93539489a76 100644 --- a/src/emu/memory.c +++ b/src/emu/memory.c @@ -5538,17 +5538,3 @@ void handler_entry_write::write_stub_legacy(address_space &space, offs_t offset, { m_legacy_info.handler.space64(m_legacy_info.object.space, offset, data, mask); } - - - -// configure the addresses for a bank -void memory_configure_bank(running_machine &machine, const char *tag, int startentry, int numentries, void *base, offs_t stride) { machine.root_device().subbank(tag)->configure_entries(startentry, numentries, base, stride); } - -// configure the decrypted addresses for a bank -void memory_configure_bank_decrypted(running_machine &machine, const char *tag, int startentry, int numentries, void *base, offs_t stride) { machine.root_device().subbank(tag)->configure_decrypted_entries(startentry, numentries, base, stride); } - -// select one pre-configured entry to be the new bank base -void memory_set_bank(running_machine &machine, const char *tag, int entrynum) { machine.root_device().subbank(tag)->set_entry(entrynum); } - -// set the absolute address of a bank base -void memory_set_bankptr(running_machine &machine, const char *tag, void *base) { machine.root_device().subbank(tag)->set_base(base); } diff --git a/src/emu/memory.h b/src/emu/memory.h index 7e5b12faade..14814218593 100644 --- a/src/emu/memory.h +++ b/src/emu/memory.h @@ -900,24 +900,6 @@ extern const char *const address_space_names[ADDRESS_SPACES]; //************************************************************************** -// FUNCTION PROTOTYPES FOR CORE MEMORY FUNCTIONS -//************************************************************************** - -// configure the addresses for a bank -void memory_configure_bank(running_machine &machine, const char *tag, int startentry, int numentries, void *base, offs_t stride) ATTR_NONNULL(5); - -// configure the decrypted addresses for a bank -void memory_configure_bank_decrypted(running_machine &machine, const char *tag, int startentry, int numentries, void *base, offs_t stride) ATTR_NONNULL(5); - -// select one pre-configured entry to be the new bank base -void memory_set_bank(running_machine &machine, const char *tag, int entrynum); - -// set the absolute address of a bank base -void memory_set_bankptr(running_machine &machine, const char *tag, void *base) ATTR_NONNULL(3); - - - -//************************************************************************** // INLINE FUNCTIONS //************************************************************************** diff --git a/src/emu/sound/okim6295.c b/src/emu/sound/okim6295.c index 0e4bf798990..efd8145eb39 100644 --- a/src/emu/sound/okim6295.c +++ b/src/emu/sound/okim6295.c @@ -228,7 +228,7 @@ void okim6295_device::set_bank_base(offs_t base, bool bDontUpdateStream) if (m_bank_installed) { m_bank_offs = base; - memory_set_bankptr(machine(), tag(), m_region->base() + base); + subbank(tag())->set_base(m_region->base() + base); } } diff --git a/src/emu/video/pc_cga.c b/src/emu/video/pc_cga.c index b7983081f9e..bf1ac558cc1 100644 --- a/src/emu/video/pc_cga.c +++ b/src/emu/video/pc_cga.c @@ -340,7 +340,7 @@ static VIDEO_START( pc_cga ) cga.videoram = auto_alloc_array(machine, UINT8, 0x4000); cga.is_superimpose = 0; - memory_set_bankptr(machine,"bank11", cga.videoram); + machine.root_device().subbank("bank11")->set_base(cga.videoram); } @@ -381,7 +381,7 @@ static VIDEO_START( pc_cga32k ) cga.videoram = auto_alloc_array(machine, UINT8, 0x8000); cga.is_superimpose = 0; - memory_set_bankptr(machine,"bank11", cga.videoram); + machine.root_device().subbank("bank11")->set_base(cga.videoram); } SCREEN_UPDATE_RGB32( mc6845_cga ) @@ -1485,7 +1485,7 @@ static WRITE8_HANDLER ( pc1512_w ) } else { - memory_set_bankptr(space->machine(),"bank1", videoram + videoram_offset[0]); + space->machine().root_device().subbank("bank1")->set_base(videoram + videoram_offset[0]); } cga.mode_control = data; switch( cga.mode_control & 0x3F ) @@ -1543,7 +1543,7 @@ static WRITE8_HANDLER ( pc1512_w ) pc1512.read = data; if ( ( cga.mode_control & 0x12 ) == 0x12 ) { - memory_set_bankptr(space->machine(),"bank1", videoram + videoram_offset[data & 3]); + space->machine().root_device().subbank("bank1")->set_base(videoram + videoram_offset[data & 3]); } break; @@ -1618,7 +1618,7 @@ static VIDEO_START( pc1512 ) address_space *io_space = machine.firstcpu->memory().space( AS_IO ); space->install_read_bank( 0xb8000, 0xbbfff, 0, 0x0C000, "bank1" ); - memory_set_bankptr(machine, "bank1", cga.videoram + videoram_offset[0]); + machine.root_device().subbank("bank1")->set_base(cga.videoram + videoram_offset[0]); space->install_legacy_write_handler( 0xb8000, 0xbbfff, 0, 0x0C000, FUNC(pc1512_videoram16le_w) ); io_space->install_legacy_read_handler( 0x3d0, 0x3df, FUNC(pc1512_16le_r) ); diff --git a/src/mame/audio/atarijsa.c b/src/mame/audio/atarijsa.c index 4126fe86df2..cbdd2fffd4a 100644 --- a/src/mame/audio/atarijsa.c +++ b/src/mame/audio/atarijsa.c @@ -166,9 +166,9 @@ void atarijsa_init(running_machine &machine, const char *testport, int testmask) { const char *bank = (rgn != 2) ? "bank12" : "bank14"; const char *bank_plus_1 = (rgn != 2) ? "bank13" : "bank15"; - memory_configure_bank(machine, bank, 0, 2, base + 0x00000, 0x00000); - memory_configure_bank(machine, bank, 2, 2, base + 0x20000, 0x20000); - memory_set_bankptr(machine, bank_plus_1, base + 0x60000); + machine.root_device().subbank(bank)->configure_entries(0, 2, base + 0x00000, 0x00000); + machine.root_device().subbank(bank)->configure_entries(2, 2, base + 0x20000, 0x20000); + machine.root_device().subbank(bank_plus_1)->set_base(base + 0x60000); } } } @@ -548,7 +548,7 @@ static WRITE8_HANDLER( jsa3_io_w ) /* update the OKI bank */ if (oki6295 != NULL) - memory_set_bank(space->machine(), "bank12", (space->machine().memory().bank("bank12")->entry() & 2) | ((data >> 1) & 1)); + space->machine().root_device().subbank("bank12")->set_entry((space->machine().memory().bank("bank12")->entry() & 2) | ((data >> 1) & 1)); /* update the bank */ memcpy(bank_base, &bank_source_data[0x1000 * ((data >> 6) & 3)], 0x1000); @@ -572,7 +572,7 @@ static WRITE8_HANDLER( jsa3_io_w ) /* update the OKI bank */ if (oki6295 != NULL) - memory_set_bank(space->machine(), "bank12", (space->machine().memory().bank("bank12")->entry() & 1) | ((data >> 3) & 2)); + space->machine().root_device().subbank("bank12")->set_entry((space->machine().memory().bank("bank12")->entry() & 1) | ((data >> 3) & 2)); /* update the volumes */ ym2151_volume = ((data >> 1) & 7) * 100 / 7; @@ -681,7 +681,7 @@ static WRITE8_HANDLER( jsa3s_io_w ) if ((data&1) == 0) devtag_reset(space->machine(), "ymsnd"); /* update the OKI bank */ - memory_set_bank(space->machine(), "bank12", (space->machine().memory().bank("bank12")->entry() & 2) | ((data >> 1) & 1)); + space->machine().root_device().subbank("bank12")->set_entry((space->machine().memory().bank("bank12")->entry() & 2) | ((data >> 1) & 1)); /* update the bank */ memcpy(bank_base, &bank_source_data[0x1000 * ((data >> 6) & 3)], 0x1000); @@ -705,8 +705,8 @@ static WRITE8_HANDLER( jsa3s_io_w ) */ /* update the OKI bank */ - memory_set_bank(space->machine(), "bank12", (space->machine().memory().bank("bank12")->entry() & 1) | ((data >> 3) & 2)); - memory_set_bank(space->machine(), "bank14", data >> 6); + space->machine().root_device().subbank("bank12")->set_entry((space->machine().memory().bank("bank12")->entry() & 1) | ((data >> 3) & 2)); + space->machine().root_device().subbank("bank14")->set_entry(data >> 6); /* update the volumes */ ym2151_volume = ((data >> 1) & 7) * 100 / 7; diff --git a/src/mame/audio/cage.c b/src/mame/audio/cage.c index ef013f47cb3..205cc24ba08 100644 --- a/src/mame/audio/cage.c +++ b/src/mame/audio/cage.c @@ -165,8 +165,8 @@ void cage_init(running_machine &machine, offs_t speedup) state->irqhandler = NULL; - memory_set_bankptr(machine, "bank10", machine.region("cageboot")->base()); - memory_set_bankptr(machine, "bank11", machine.region("cage")->base()); + machine.root_device().subbank("bank10")->set_base(machine.region("cageboot")->base()); + machine.root_device().subbank("bank11")->set_base(machine.region("cage")->base()); state->cpu = machine.device<cpu_device>("cage"); cage_cpu_clock_period = attotime::from_hz(state->cpu->clock()); diff --git a/src/mame/audio/cyberbal.c b/src/mame/audio/cyberbal.c index 79efd4744fb..7fd4474bfa0 100644 --- a/src/mame/audio/cyberbal.c +++ b/src/mame/audio/cyberbal.c @@ -21,7 +21,7 @@ void cyberbal_sound_reset(running_machine &machine) /* reset the sound system */ state->m_bank_base = &machine.region("audiocpu")->base()[0x10000]; - memory_set_bankptr(machine, "soundbank", &state->m_bank_base[0x0000]); + state->subbank("soundbank")->set_base(&state->m_bank_base[0x0000]); state->m_fast_68k_int = state->m_io_68k_int = 0; state->m_sound_data_from_68k = state->m_sound_data_from_6502 = 0; state->m_sound_data_from_68k_ready = state->m_sound_data_from_6502_ready = 0; @@ -56,7 +56,7 @@ READ8_MEMBER(cyberbal_state::cyberbal_sound_6502_stat_r) WRITE8_MEMBER(cyberbal_state::cyberbal_sound_bank_select_w) { - memory_set_bankptr(machine(), "soundbank", &m_bank_base[0x1000 * ((data >> 6) & 3)]); + subbank("soundbank")->set_base(&m_bank_base[0x1000 * ((data >> 6) & 3)]); coin_counter_w(machine(), 1, (data >> 5) & 1); coin_counter_w(machine(), 0, (data >> 4) & 1); cputag_set_input_line(machine(), "dac", INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); diff --git a/src/mame/audio/dcs.c b/src/mame/audio/dcs.c index d182898a48c..28a72c76a72 100644 --- a/src/mame/audio/dcs.c +++ b/src/mame/audio/dcs.c @@ -821,7 +821,7 @@ static TIMER_CALLBACK( dcs_reset ) /* rev 1: just reset the bank to 0 */ case 1: dcs.sounddata_bank = 0; - memory_set_bank(machine, "databank", 0); + machine.root_device().subbank("databank")->set_entry(0); break; /* rev 2: reset the SDRC ASIC */ @@ -960,7 +960,7 @@ void dcs_init(running_machine &machine) dcs.sounddata = dcs.bootrom; dcs.sounddata_words = dcs.bootrom_words; dcs.sounddata_banks = dcs.sounddata_words / 0x1000; - memory_configure_bank(machine, "databank", 0, dcs.sounddata_banks, dcs.sounddata, 0x1000*2); + machine.root_device().subbank("databank")->configure_entries(0, dcs.sounddata_banks, dcs.sounddata, 0x1000*2); /* create the timers */ dcs.internal_timer = machine.device<timer_device>("dcs_int_timer"); @@ -1024,7 +1024,7 @@ void dcs2_init(running_machine &machine, int dram_in_mb, offs_t polling_offset) } dcs.sounddata_banks = dcs.sounddata_words / soundbank_words; if (dcs.rev != 2) - memory_configure_bank(machine, "databank", 0, dcs.sounddata_banks, dcs.sounddata, soundbank_words*2); + machine.root_device().subbank("databank")->configure_entries(0, dcs.sounddata_banks, dcs.sounddata, soundbank_words*2); /* allocate memory for the SRAM */ dcs.sram = auto_alloc_array(machine, UINT16, 0x8000*4/2); @@ -1085,7 +1085,7 @@ static WRITE16_HANDLER( dcs_dataram_w ) static WRITE16_HANDLER( dcs_data_bank_select_w ) { dcs.sounddata_bank = data & 0x7ff; - memory_set_bank(space->machine(), "databank", dcs.sounddata_bank % dcs.sounddata_banks); + space->machine().root_device().subbank("databank")->set_entry(dcs.sounddata_bank % dcs.sounddata_banks); /* bit 11 = sound board led */ #if 0 @@ -1112,15 +1112,15 @@ INLINE void sdrc_update_bank_pointers(running_machine &machine) { /* ROM-based; use the memory page to select from ROM */ if (SDRC_ROM_MS == 1 && SDRC_ROM_ST != 3) - memory_set_bankptr(machine, "rompage", &dcs.sounddata[(SDRC_EPM_PG * pagesize) % dcs.sounddata_words]); + machine.root_device().subbank("rompage")->set_base(&dcs.sounddata[(SDRC_EPM_PG * pagesize) % dcs.sounddata_words]); } else { /* RAM-based; use the ROM page to select from ROM, and the memory page to select from RAM */ if (SDRC_ROM_MS == 1 && SDRC_ROM_ST != 3) - memory_set_bankptr(machine, "rompage", &dcs.bootrom[(SDRC_ROM_PG * 4096 /*pagesize*/) % dcs.bootrom_words]); + machine.root_device().subbank("rompage")->set_base(&dcs.bootrom[(SDRC_ROM_PG * 4096 /*pagesize*/) % dcs.bootrom_words]); if (SDRC_DM_ST != 0) - memory_set_bankptr(machine, "drampage", &dcs.sounddata[(SDRC_DM_PG * 1024) % dcs.sounddata_words]); + machine.root_device().subbank("drampage")->set_base(&dcs.sounddata[(SDRC_DM_PG * 1024) % dcs.sounddata_words]); } } } @@ -1362,7 +1362,7 @@ static WRITE16_HANDLER( dsio_w ) /* offset 2 controls RAM pages */ case 2: dsio.reg[2] = data; - memory_set_bank(space->machine(), "databank", DSIO_DM_PG % dcs.sounddata_banks); + space->machine().root_device().subbank("databank")->set_entry(DSIO_DM_PG % dcs.sounddata_banks); break; } } @@ -1429,7 +1429,7 @@ static WRITE16_HANDLER( denver_w ) /* offset 2 controls RAM pages */ case 2: dsio.reg[2] = data; - memory_set_bank(space->machine(), "databank", DENV_DM_PG % dcs.sounddata_bank); + space->machine().root_device().subbank("databank")->set_entry(DENV_DM_PG % dcs.sounddata_bank); break; /* offset 3 controls FIFO reset */ diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c index c07bf4e69f7..53ebf5af6d1 100644 --- a/src/mame/audio/mario.c +++ b/src/mame/audio/mario.c @@ -402,7 +402,7 @@ static void set_ea(address_space &space, int ea) //printf("ea: %d\n", ea); //cputag_set_input_line(machine, "audiocpu", MCS48_INPUT_EA, (ea) ? ASSERT_LINE : CLEAR_LINE); if (state->m_eabank != NULL) - memory_set_bank(space.machine(), state->m_eabank, ea); + state->subbank(state->m_eabank)->set_entry(ea); } /**************************************************************** @@ -426,8 +426,8 @@ static SOUND_START( mario ) { state->m_eabank = "bank1"; audiocpu->memory().space(AS_PROGRAM)->install_read_bank(0x000, 0x7ff, "bank1"); - memory_configure_bank(machine, "bank1", 0, 1, machine.region("audiocpu")->base(), 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("audiocpu")->base() + 0x1000, 0x800); + state->subbank("bank1")->configure_entry(0, machine.region("audiocpu")->base()); + state->subbank("bank1")->configure_entry(1, machine.region("audiocpu")->base() + 0x1000); } state->save_item(NAME(state->m_last)); diff --git a/src/mame/audio/seibu.c b/src/mame/audio/seibu.c index ee2202f30aa..4969ad8acd2 100644 --- a/src/mame/audio/seibu.c +++ b/src/mame/audio/seibu.c @@ -120,7 +120,7 @@ void seibu_sound_decrypt(running_machine &machine,const char *cpu,int length) } if (length > 0x10000) - memory_configure_bank_decrypted(machine, "bank1", 0, (length - 0x10000) / 0x8000, decrypt + 0x10000, 0x8000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, (length - 0x10000) / 0x8000, decrypt + 0x10000, 0x8000); } @@ -353,10 +353,10 @@ MACHINE_RESET( seibu_sound ) update_irq_lines(machine, VECTOR_INIT); if (romlength > 0x10000) { - memory_configure_bank(machine, "bank1", 0, (romlength - 0x10000) / 0x8000, rom + 0x10000, 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, (romlength - 0x10000) / 0x8000, rom + 0x10000, 0x8000); /* Denjin Makai definitely needs this at start-up, it never writes to the bankswitch */ - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->set_entry(0); } } @@ -367,7 +367,7 @@ static int main2sub_pending,sub2main_pending; WRITE8_HANDLER( seibu_bank_w ) { - memory_set_bank(space->machine(), "bank1", data & 1); + space->machine().root_device().subbank("bank1")->set_entry(data & 1); } WRITE8_HANDLER( seibu_coin_w ) diff --git a/src/mame/audio/taito_en.c b/src/mame/audio/taito_en.c index f76ea936c00..9e2676f5204 100644 --- a/src/mame/audio/taito_en.c +++ b/src/mame/audio/taito_en.c @@ -306,9 +306,9 @@ SOUND_RESET( taito_f3_soundsystem_reset ) /* Sound cpu program loads to 0xc00000 so we use a bank */ UINT16 *ROM = (UINT16 *)machine.region("audiocpu")->base(); UINT16 *sound_ram = (UINT16 *)machine.memory().shared("share1")->ptr(); - memory_set_bankptr(machine, "bank1",&ROM[0x80000]); - memory_set_bankptr(machine, "bank2",&ROM[0x90000]); - memory_set_bankptr(machine, "bank3",&ROM[0xa0000]); + machine.root_device().subbank("bank1")->set_base(&ROM[0x80000]); + machine.root_device().subbank("bank2")->set_base(&ROM[0x90000]); + machine.root_device().subbank("bank3")->set_base(&ROM[0xa0000]); sound_ram[0]=ROM[0x80000]; /* Stack and Reset vectors */ sound_ram[1]=ROM[0x80001]; diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c index 5f573387965..cb845d72ccc 100644 --- a/src/mame/drivers/1942.c +++ b/src/mame/drivers/1942.c @@ -71,7 +71,7 @@ correctly. WRITE8_MEMBER(_1942_state::c1942_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } static TIMER_DEVICE_CALLBACK( c1942_scanline ) @@ -506,7 +506,7 @@ ROM_END static DRIVER_INIT( 1942 ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 3, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x4000); } diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c index 348a1cbc8d0..af8112b48a6 100644 --- a/src/mame/drivers/1943.c +++ b/src/mame/drivers/1943.c @@ -644,7 +644,7 @@ ROM_END static DRIVER_INIT( 1943 ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); } READ8_MEMBER(_1943_state::_1943b_c007_r){ return 0; } diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c index 7819a8db797..76c3517faed 100644 --- a/src/mame/drivers/20pacgal.c +++ b/src/mame/drivers/20pacgal.c @@ -145,10 +145,10 @@ static void set_bankptr(running_machine &machine) if (state->m_game_selected == 0) { UINT8 *rom = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", rom + 0x08000); + state->subbank("bank1")->set_base(rom + 0x08000); } else - memory_set_bankptr(machine, "bank1", state->m_ram_48000); + state->subbank("bank1")->set_base(state->m_ram_48000); } WRITE8_MEMBER(_20pacgal_state::ram_bank_select_w) diff --git a/src/mame/drivers/3do.c b/src/mame/drivers/3do.c index d2eeb3dddf7..53ea3a743c0 100644 --- a/src/mame/drivers/3do.c +++ b/src/mame/drivers/3do.c @@ -135,14 +135,14 @@ static MACHINE_RESET( 3do ) state->m_maincpu = downcast<legacy_cpu_device*>( machine.device("maincpu") ); - memory_set_bankptr(machine, "bank2",machine.region("user1")->base()); + state->subbank("bank2")->set_base(machine.region("user1")->base()); /* configure overlay */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_dram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("user1")->base(), 0); + state->subbank("bank1")->configure_entry(0, state->m_dram); + state->subbank("bank1")->configure_entry(1, machine.region("user1")->base()); /* start with overlay enabled */ - memory_set_bank(machine, "bank1", 1); + state->subbank("bank1")->set_entry(1); _3do_slow2_init(machine); _3do_madam_init(machine); diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c index d93b716c952..b81c44942fc 100644 --- a/src/mame/drivers/40love.c +++ b/src/mame/drivers/40love.c @@ -274,7 +274,7 @@ WRITE8_MEMBER(fortyl_state::bank_select_w) // popmessage("WRONG BANK SELECT = %x !!!!\n",data); } - memory_set_bank(machine(), "bank1", data & 1); + subbank("bank1")->set_entry(data & 1); } WRITE8_MEMBER(fortyl_state::pix1_w) @@ -567,7 +567,7 @@ static DRIVER_INIT( undoukai ) { fortyl_state *state = machine.driver_data<fortyl_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x2000); state->m_pix_color[0] = 0x000; state->m_pix_color[1] = 0x1e3; @@ -579,7 +579,7 @@ static DRIVER_INIT( 40love ) { fortyl_state *state = machine.driver_data<fortyl_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x2000); #if 0 /* character ROM hack diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c index 467cfa6a436..0cc905990f8 100644 --- a/src/mame/drivers/aerofgt.c +++ b/src/mame/drivers/aerofgt.c @@ -107,7 +107,7 @@ WRITE8_MEMBER(aerofgt_state::pending_command_clear_w) WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } @@ -1304,7 +1304,7 @@ static MACHINE_START( aerofgt ) { UINT8 *rom = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &rom[0x10000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &rom[0x10000], 0x8000); MACHINE_START_CALL(common); } @@ -1319,7 +1319,7 @@ static MACHINE_RESET( aerofgt ) { MACHINE_RESET_CALL(common); - memory_set_bank(machine, "bank1", 0); /* needed by spinlbrk */ + machine.root_device().subbank("bank1")->set_entry(0); /* needed by spinlbrk */ } static MACHINE_CONFIG_START( pspikes, aerofgt_state ) diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c index e191c37d009..b4259521e10 100644 --- a/src/mame/drivers/airbustr.c +++ b/src/mame/drivers/airbustr.c @@ -266,13 +266,13 @@ WRITE8_MEMBER(airbustr_state::master_nmi_trigger_w) WRITE8_MEMBER(airbustr_state::master_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); } WRITE8_MEMBER(airbustr_state::slave_bankswitch_w) { - memory_set_bank(machine(), "bank2", data & 0x07); + subbank("bank2")->set_entry(data & 0x07); flip_screen_set(data & 0x10); @@ -282,7 +282,7 @@ WRITE8_MEMBER(airbustr_state::slave_bankswitch_w) WRITE8_MEMBER(airbustr_state::sound_bankswitch_w) { - memory_set_bank(machine(), "bank3", data & 0x07); + subbank("bank3")->set_entry(data & 0x07); } READ8_MEMBER(airbustr_state::soundcommand_status_r) @@ -575,12 +575,12 @@ static MACHINE_START( airbustr ) UINT8 *SLAVE = machine.region("slave")->base(); UINT8 *AUDIO = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 3, &MASTER[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 3, 5, &MASTER[0x10000], 0x4000); - memory_configure_bank(machine, "bank2", 0, 3, &SLAVE[0x00000], 0x4000); - memory_configure_bank(machine, "bank2", 3, 5, &SLAVE[0x10000], 0x4000); - memory_configure_bank(machine, "bank3", 0, 3, &AUDIO[0x00000], 0x4000); - memory_configure_bank(machine, "bank3", 3, 5, &AUDIO[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 3, &MASTER[0x00000], 0x4000); + state->subbank("bank1")->configure_entries(3, 5, &MASTER[0x10000], 0x4000); + state->subbank("bank2")->configure_entries(0, 3, &SLAVE[0x00000], 0x4000); + state->subbank("bank2")->configure_entries(3, 5, &SLAVE[0x10000], 0x4000); + state->subbank("bank3")->configure_entries(0, 3, &AUDIO[0x00000], 0x4000); + state->subbank("bank3")->configure_entries(3, 5, &AUDIO[0x10000], 0x4000); state->m_master = machine.device("master"); state->m_slave = machine.device("slave"); @@ -607,9 +607,9 @@ static MACHINE_RESET( airbustr ) state->m_fg_scrolly = 0; state->m_highbits = 0; - memory_set_bank(machine, "bank1", 0x02); - memory_set_bank(machine, "bank2", 0x02); - memory_set_bank(machine, "bank3", 0x02); + state->subbank("bank1")->set_entry(0x02); + state->subbank("bank2")->set_entry(0x02); + state->subbank("bank3")->set_entry(0x02); } /* Machine Driver */ diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c index 5914f575809..a7a72357f66 100644 --- a/src/mame/drivers/albazg.c +++ b/src/mame/drivers/albazg.c @@ -178,7 +178,7 @@ static WRITE8_DEVICE_HANDLER( mux_w ) if( state->m_bank != new_bank) { state->m_bank = new_bank; - memory_set_bank(device->machine(), "bank1", state->m_bank); + state->subbank("bank1")->set_entry(state->m_bank); } state->m_mux_data = data & ~0xc0; @@ -359,7 +359,7 @@ static MACHINE_START( yumefuda ) albazg_state *state = machine.driver_data<albazg_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000); state->save_item(NAME(state->m_mux_data)); state->save_item(NAME(state->m_bank)); diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c index ee1cb916087..704e3a5d9bf 100644 --- a/src/mame/drivers/alg.c +++ b/src/mame/drivers/alg.c @@ -225,7 +225,7 @@ static WRITE8_DEVICE_HANDLER( alg_cia_0_porta_w ) address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM); /* switch banks as appropriate */ - memory_set_bank(device->machine(), "bank1", data & 1); + device->machine().root_device().subbank("bank1")->set_entry(data & 1); /* swap the write handlers between ROM and bank 1 based on the bit */ if ((data & 1) == 0) @@ -699,8 +699,8 @@ static void alg_init(running_machine &machine) amiga_machine_config(machine, &alg_intf); /* set up memory */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_chip_ram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("user1")->base(), 0); + state->subbank("bank1")->configure_entry(0, state->m_chip_ram); + state->subbank("bank1")->configure_entry(1, machine.region("user1")->base()); } diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c index 5c6330c4948..7bb7c8ace7e 100644 --- a/src/mame/drivers/aliens.c +++ b/src/mame/drivers/aliens.c @@ -232,8 +232,8 @@ static MACHINE_START( aliens ) aliens_state *state = machine.driver_data<aliens_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 20, &ROM[0x10000], 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 20, &ROM[0x10000], 0x2000); + state->subbank("bank1")->set_entry(0); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); @@ -545,7 +545,7 @@ static KONAMI_SETLINES_CALLBACK( aliens_banking ) bank -= 4; bank += (lines & 0x0f); - memory_set_bank(device->machine(), "bank1", bank); + device->machine().root_device().subbank("bank1")->set_entry(bank); } GAME( 1990, aliens, 0, aliens, aliens, 0, ROT0, "Konami", "Aliens (World set 1)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c index 6d5100d1de9..8981bb7aacb 100644 --- a/src/mame/drivers/alpha68k.c +++ b/src/mame/drivers/alpha68k.c @@ -738,7 +738,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(alpha68k_state::sound_bank_w) { - memory_set_bank(machine(), "bank7", data); + subbank("bank7")->set_entry(data); } static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, alpha68k_state ) @@ -1905,7 +1905,7 @@ static MACHINE_START( alpha68k_V ) alpha68k_state *state = machine.driver_data<alpha68k_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank7", 0, 32, &ROM[0x10000], 0x4000); + state->subbank("bank7")->configure_entries(0, 32, &ROM[0x10000], 0x4000); MACHINE_START_CALL(common); @@ -1941,7 +1941,7 @@ static MACHINE_START( alpha68k_II ) alpha68k_state *state = machine.driver_data<alpha68k_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank7", 0, 28, &ROM[0x10000], 0x4000); + state->subbank("bank7")->configure_entries(0, 28, &ROM[0x10000], 0x4000); MACHINE_START_CALL(common); @@ -3222,7 +3222,7 @@ static DRIVER_INIT( btlfieldb ) static DRIVER_INIT( skysoldr ) { alpha68k_state *state = machine.driver_data<alpha68k_state>(); - memory_set_bankptr(machine, "bank8", (machine.region("user1")->base()) + 0x40000); + state->subbank("bank8")->set_base((machine.region("user1")->base()) + 0x40000); state->m_invert_controls = 0; state->m_microcontroller_id = 0; state->m_coin_id = 0x22 | (0x22 << 8); @@ -3241,7 +3241,7 @@ static DRIVER_INIT( goldmedl ) static DRIVER_INIT( goldmedla ) { alpha68k_state *state = machine.driver_data<alpha68k_state>(); - memory_set_bankptr(machine, "bank8", machine.region("maincpu")->base() + 0x20000); + state->subbank("bank8")->set_base(machine.region("maincpu")->base() + 0x20000); state->m_invert_controls = 0; state->m_microcontroller_id = 0x8803; //Guess - routine to handle coinage is the same as in 'goldmedl' state->m_coin_id = 0x23 | (0x24 << 8); @@ -3269,7 +3269,7 @@ static DRIVER_INIT( skyadvntu ) static DRIVER_INIT( gangwarsu ) { alpha68k_state *state = machine.driver_data<alpha68k_state>(); - memory_set_bankptr(machine, "bank8", machine.region("user1")->base()); + state->subbank("bank8")->set_base(machine.region("user1")->base()); state->m_invert_controls = 0; state->m_microcontroller_id = 0x8512; state->m_coin_id = 0x23 | (0x24 << 8); @@ -3279,7 +3279,7 @@ static DRIVER_INIT( gangwarsu ) static DRIVER_INIT( gangwars ) { alpha68k_state *state = machine.driver_data<alpha68k_state>(); - memory_set_bankptr(machine, "bank8", machine.region("user1")->base()); + state->subbank("bank8")->set_base(machine.region("user1")->base()); state->m_invert_controls = 0; state->m_microcontroller_id = 0x8512; state->m_coin_id = 0x23 | (0x24 << 8); diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c index 819c293ace0..77c49c7c579 100644 --- a/src/mame/drivers/angelkds.c +++ b/src/mame/drivers/angelkds.c @@ -140,7 +140,7 @@ Dumped by Chackn WRITE8_MEMBER(angelkds_state::angelkds_cpu_bank_write) { - memory_set_bank(machine(), "bank1", data & 0x0f); // shall we check (data & 0x0f) < # of available banks (8 or 10 resp.)? + subbank("bank1")->set_entry(data & 0x0f); // shall we check (data & 0x0f) < # of available banks (8 or 10 resp.)? } @@ -745,7 +745,7 @@ ROM_END static DRIVER_INIT( angelkds ) { UINT8 *RAM = machine.region("user1")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &RAM[0x0000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &RAM[0x0000], 0x4000); } static DRIVER_INIT( spcpostn ) @@ -753,7 +753,7 @@ static DRIVER_INIT( spcpostn ) UINT8 *RAM = machine.region("user1")->base(); sega_317_0005_decode(machine, "maincpu"); - memory_configure_bank(machine, "bank1", 0, 10, &RAM[0x0000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 10, &RAM[0x0000], 0x4000); } diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c index b0bee1dd73a..cdc8332ab82 100644 --- a/src/mame/drivers/aquarium.c +++ b/src/mame/drivers/aquarium.c @@ -68,7 +68,7 @@ WRITE16_MEMBER(aquarium_state::aquarium_sound_w) WRITE8_MEMBER(aquarium_state::aquarium_z80_bank_w) { - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); } static UINT8 aquarium_snd_bitswap( UINT8 scrambled_data ) @@ -276,8 +276,8 @@ static DRIVER_INIT( aquarium ) } /* configure and set up the sound bank */ - memory_configure_bank(machine, "bank1", 0, 7, &Z80[0x18000], 0x8000); - memory_set_bank(machine, "bank1", 1); + machine.root_device().subbank("bank1")->configure_entries(0, 7, &Z80[0x18000], 0x8000); + machine.root_device().subbank("bank1")->set_entry(1); } diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c index 88790f1ac56..bce524293f1 100644 --- a/src/mame/drivers/arcadia.c +++ b/src/mame/drivers/arcadia.c @@ -104,7 +104,7 @@ WRITE16_MEMBER(arcadia_amiga_state::arcadia_multibios_change_game) static WRITE8_DEVICE_HANDLER( arcadia_cia_0_porta_w ) { /* switch banks as appropriate */ - memory_set_bank(device->machine(), "bank1", data & 1); + device->machine().root_device().subbank("bank1")->set_entry(data & 1); /* swap the write handlers between ROM and bank 1 based on the bit */ if ((data & 1) == 0) @@ -808,8 +808,8 @@ static void arcadia_init(running_machine &machine) amiga_machine_config(machine, &arcadia_intf); /* set up memory */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_chip_ram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("user1")->base(), 0); + state->subbank("bank1")->configure_entry(0, state->m_chip_ram); + state->subbank("bank1")->configure_entry(1, machine.region("user1")->base()); /* OnePlay bios is encrypted, TenPlay is not */ biosrom = (UINT16 *)machine.region("user2")->base(); diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c index 56021c82582..abc88b44d90 100644 --- a/src/mame/drivers/argus.c +++ b/src/mame/drivers/argus.c @@ -180,7 +180,7 @@ WRITE8_MEMBER(argus_state::argus_bankselect_w) int bankaddress; bankaddress = 0x10000 + ((data & 7) * 0x4000); - memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]); /* Select 8 banks of 16k */ + subbank("bank1")->set_base(&RAM[bankaddress]); /* Select 8 banks of 16k */ } diff --git a/src/mame/drivers/aristmk5.c b/src/mame/drivers/aristmk5.c index fe01592c350..721bfbb1024 100644 --- a/src/mame/drivers/aristmk5.c +++ b/src/mame/drivers/aristmk5.c @@ -289,8 +289,8 @@ WRITE32_MEMBER(aristmk5_state::sram_banksel_w) 4 pages of 32k for each sram chip. */ - memory_set_bank(machine(),"sram_bank", (data & 0xc0) >> 6); - memory_set_bank(machine(),"sram_bank_nz", (data & 0xc0) >> 6); + subbank("sram_bank")->set_entry((data & 0xc0) >> 6); + subbank("sram_bank_nz")->set_entry((data & 0xc0) >> 6); } /* U.S games have no dram emulator enabled */ @@ -364,8 +364,8 @@ static DRIVER_INIT( aristmk5 ) archimedes_driver_init(machine); - memory_configure_bank(machine, "sram_bank", 0, 4, &SRAM[0], 0x20000); - memory_configure_bank(machine, "sram_bank_nz", 0, 4, &SRAM_NZ[0], 0x20000); + machine.root_device().subbank("sram_bank")->configure_entries(0, 4, &SRAM[0], 0x20000); + machine.root_device().subbank("sram_bank_nz")->configure_entries(0, 4, &SRAM_NZ[0], 0x20000); } diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c index 445fb3af81f..d1e6499beba 100644 --- a/src/mame/drivers/arkanoid.c +++ b/src/mame/drivers/arkanoid.c @@ -1671,7 +1671,7 @@ static DRIVER_INIT( hexa ) RAM[0x0126] = 0x00; #endif - memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &RAM[0x10000], 0x4000); } diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c index a0e2922f968..8ad07778fc0 100644 --- a/src/mame/drivers/ashnojoe.c +++ b/src/mame/drivers/ashnojoe.c @@ -287,7 +287,7 @@ static WRITE8_DEVICE_HANDLER( ym2203_write_a ) static WRITE8_DEVICE_HANDLER( ym2203_write_b ) { - memory_set_bank(device->machine(), "bank4", data & 0x0f); + device->machine().root_device().subbank("bank4")->set_entry(data & 0x0f); } static const ym2203_interface ym2203_config = @@ -463,9 +463,9 @@ ROM_END static DRIVER_INIT( ashnojoe ) { UINT8 *ROM = machine.region("adpcm")->base(); - memory_configure_bank(machine, "bank4", 0, 16, &ROM[0x00000], 0x8000); + machine.root_device().subbank("bank4")->configure_entries(0, 16, &ROM[0x00000], 0x8000); - memory_set_bank(machine, "bank4", 0); + machine.root_device().subbank("bank4")->set_entry(0); } GAME( 1990, scessjoe, 0, ashnojoe, ashnojoe, ashnojoe, ROT0, "Wave / Taito Corporation", "Success Joe (World)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c index 9633916a32e..58333a69139 100644 --- a/src/mame/drivers/astrocde.c +++ b/src/mame/drivers/astrocde.c @@ -428,7 +428,7 @@ WRITE8_MEMBER(astrocde_state::profpac_banksw_w) /* set the main banking */ prog_space->install_read_bank(0x4000, 0xbfff, "bank1"); - memory_set_bankptr(machine(), "bank1", machine().region("user1")->base() + 0x8000 * bank); + subbank("bank1")->set_base(machine().region("user1")->base() + 0x8000 * bank); /* bank 0 reads video RAM in the 4000-7FFF range */ if (bank == 0) @@ -444,7 +444,7 @@ WRITE8_MEMBER(astrocde_state::profpac_banksw_w) if (bank < 0x28) { prog_space->install_read_bank(0x4000, 0x7fff, "bank2"); - memory_set_bankptr(machine(), "bank2", machine().region("user2")->base() + 0x4000 * bank); + subbank("bank2")->set_base(machine().region("user2")->base() + 0x4000 * bank); } else prog_space->unmap_read(0x4000, 0x7fff); diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c index 4d4d690849b..a50ea060b8a 100644 --- a/src/mame/drivers/asuka.c +++ b/src/mame/drivers/asuka.c @@ -249,12 +249,12 @@ static INTERRUPT_GEN( cadash_interrupt ) WRITE8_MEMBER(asuka_state::sound_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } static WRITE8_DEVICE_HANDLER( sound_bankswitch_2151_w ) { - memory_set_bank(device->machine(), "bank1", data & 0x03); + device->machine().root_device().subbank("bank1")->set_entry(data & 0x03); } @@ -842,8 +842,8 @@ static MACHINE_START( asuka ) state->m_tc0100scn = machine.device("tc0100scn"); /* configure the banks */ - memory_configure_bank(machine, "bank1", 0, 1, machine.region("audiocpu")->base(), 0); - memory_configure_bank(machine, "bank1", 1, 3, machine.region("audiocpu")->base() + 0x10000, 0x04000); + state->subbank("bank1")->configure_entry(0, machine.region("audiocpu")->base()); + state->subbank("bank1")->configure_entries(1, 3, machine.region("audiocpu")->base() + 0x10000, 0x04000); state->save_item(NAME(state->m_adpcm_pos)); state->save_item(NAME(state->m_adpcm_data)); diff --git a/src/mame/drivers/atarisy4.c b/src/mame/drivers/atarisy4.c index 5aec6b4c071..ed0093ed3de 100644 --- a/src/mame/drivers/atarisy4.c +++ b/src/mame/drivers/atarisy4.c @@ -583,7 +583,7 @@ WRITE16_MEMBER(atarisy4_state::dsp0_bank_w) } data &= 0x3800; - memory_set_bankptr(machine(), "dsp0_bank1", &m_shared_ram[0][data]); + subbank("dsp0_bank1")->set_base(&m_shared_ram[0][data]); m_dsp_bank[0] = data; } @@ -617,7 +617,7 @@ WRITE16_MEMBER(atarisy4_state::dsp1_bank_w) } data &= 0x3800; - memory_set_bankptr(machine(), "dsp1_bank1", &m_shared_ram[1][data]); + subbank("dsp1_bank1")->set_base(&m_shared_ram[1][data]); m_dsp_bank[1] = data; } @@ -973,8 +973,8 @@ static DRIVER_INIT( laststar ) load_hexfile(main, machine.region("data")->base()); /* Set up the DSP */ - memory_set_bankptr(machine, "dsp0_bank0", state->m_shared_ram[0]); - memory_set_bankptr(machine, "dsp0_bank1", &state->m_shared_ram[0][0x800]); + state->subbank("dsp0_bank0")->set_base(state->m_shared_ram[0]); + state->subbank("dsp0_bank1")->set_base(&state->m_shared_ram[0][0x800]); load_ldafile(machine.device("dsp0")->memory().space(AS_PROGRAM), machine.region("dsp")->base()); } @@ -989,13 +989,13 @@ static DRIVER_INIT( airrace ) load_hexfile(machine.device("maincpu")->memory().space(AS_PROGRAM), machine.region("code")->base()); /* Set up the first DSP */ - memory_set_bankptr(machine, "dsp0_bank0", state->m_shared_ram[0]); - memory_set_bankptr(machine, "dsp0_bank1", &state->m_shared_ram[0][0x800]); + state->subbank("dsp0_bank0")->set_base(state->m_shared_ram[0]); + state->subbank("dsp0_bank1")->set_base(&state->m_shared_ram[0][0x800]); load_ldafile(machine.device("dsp0")->memory().space(AS_PROGRAM), machine.region("dsp")->base()); /* Set up the second DSP */ - memory_set_bankptr(machine, "dsp1_bank0", state->m_shared_ram[1]); - memory_set_bankptr(machine, "dsp1_bank1", &state->m_shared_ram[1][0x800]); + state->subbank("dsp1_bank0")->set_base(state->m_shared_ram[1]); + state->subbank("dsp1_bank1")->set_base(&state->m_shared_ram[1][0x800]); load_ldafile(machine.device("dsp1")->memory().space(AS_PROGRAM), machine.region("dsp")->base()); } diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c index 0362b11c51a..d45e1d9e642 100644 --- a/src/mame/drivers/battlnts.c +++ b/src/mame/drivers/battlnts.c @@ -40,7 +40,7 @@ WRITE8_MEMBER(battlnts_state::battlnts_sh_irqtrigger_w) WRITE8_MEMBER(battlnts_state::battlnts_bankswitch_w) { /* bits 6 & 7 = bank number */ - memory_set_bank(machine(), "bank1", (data & 0xc0) >> 6); + subbank("bank1")->set_entry((data & 0xc0) >> 6); /* bits 4 & 5 = coin counters */ coin_counter_w(machine(), 0, data & 0x10); @@ -226,7 +226,7 @@ static MACHINE_START( battlnts ) battlnts_state *state = machine.driver_data<battlnts_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); state->m_audiocpu = machine.device("audiocpu"); state->m_k007342 = machine.device("k007342"); diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c index 37b57e1f2ac..61ed81f5295 100644 --- a/src/mame/drivers/bfcobra.c +++ b/src/mame/drivers/bfcobra.c @@ -1023,15 +1023,15 @@ INLINE void z80_bank(running_machine &machine, int num, int data) { UINT32 offset = ((state->m_bank_data[0] >> 1) * 0x20000) + ((0x4000 * data) ^ ((state->m_bank_data[0] & 1) ? 0 : 0x10000)); - memory_set_bankptr(machine, bank_names[num - 1], machine.region("user1")->base() + offset); + state->subbank(bank_names[num - 1])->set_base(machine.region("user1")->base() + offset); } else if (data < 0x10) { - memory_set_bankptr(machine, bank_names[num - 1], &state->m_video_ram[(data - 0x08) * 0x4000]); + state->subbank(bank_names[num - 1])->set_base(&state->m_video_ram[(data - 0x08) * 0x4000]); } else { - memory_set_bankptr(machine, bank_names[num - 1], &state->m_work_ram[(data - 0x10) * 0x4000]); + state->subbank(bank_names[num - 1])->set_base(&state->m_work_ram[(data - 0x10) * 0x4000]); } } @@ -1735,7 +1735,7 @@ static DRIVER_INIT( bfcobra ) state->m_bank_data[3] = 0; /* Fixed 16kB ROM region */ - memory_set_bankptr(machine, "bank4", machine.region("user1")->base()); + state->subbank("bank4")->set_base(machine.region("user1")->base()); /* TODO: Properly sort out the data ACIA */ state->m_data_r = 1; diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c index 4eeeed09fd8..0c63d0bad02 100644 --- a/src/mame/drivers/bfm_sc1.c +++ b/src/mame/drivers/bfm_sc1.c @@ -192,7 +192,7 @@ static int Scorpion1_GetSwitchState(bfm_sc1_state *drvstate, int strobe, int dat WRITE8_MEMBER(bfm_sc1_state::bankswitch_w) { // printf("bankswitch %02x\n", data); - memory_set_bank(machine(),"bank1",data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } /////////////////////////////////////////////////////////////////////////// @@ -670,8 +670,8 @@ static MACHINE_RESET( bfm_sc1 ) { UINT8 *rom = machine.region("maincpu")->base(); - memory_configure_bank(machine,"bank1", 0, 4, &rom[0x0000], 0x02000); - memory_set_bank(machine,"bank1",state->m_defaultbank); + state->subbank("bank1")->configure_entries(0, 4, &rom[0x0000], 0x02000); + state->subbank("bank1")->set_entry(state->m_defaultbank); } } diff --git a/src/mame/drivers/bfm_sc2.c b/src/mame/drivers/bfm_sc2.c index 72b546dd356..08e6d2b1bb4 100644 --- a/src/mame/drivers/bfm_sc2.c +++ b/src/mame/drivers/bfm_sc2.c @@ -380,9 +380,9 @@ static void on_scorpion2_reset(running_machine &machine) { UINT8 *rom = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &rom[0x00000], 0x02000); + state->subbank("bank1")->configure_entries(0, 4, &rom[0x00000], 0x02000); - memory_set_bank(machine, "bank1",3); + state->subbank("bank1")->set_entry(3); } } @@ -476,7 +476,7 @@ static NVRAM_HANDLER( bfm_sc2 ) WRITE8_MEMBER(bfm_sc2_state::bankswitch_w) { - memory_set_bank(machine(), "bank1",data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } /////////////////////////////////////////////////////////////////////////// diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c index 8607f9546d3..40d60caff00 100644 --- a/src/mame/drivers/bigevglf.c +++ b/src/mame/drivers/bigevglf.c @@ -70,7 +70,7 @@ WRITE8_MEMBER(bigevglf_state::beg_banking_w) /* d0-d3 connect to A11-A14 of the ROMs (via ls273 latch) d4-d7 select one of ROMs (via ls273(above) and then ls154) */ - memory_set_bank(machine(), "bank1", m_beg_bank & 0xff); /* empty sockets for IC37-IC44 ROMS */ + subbank("bank1")->set_entry(m_beg_bank & 0xff); /* empty sockets for IC37-IC44 ROMS */ } static TIMER_CALLBACK( from_sound_latch_callback ) @@ -620,7 +620,7 @@ ROM_END static DRIVER_INIT( bigevglf ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0xff, &ROM[0x10000], 0x800); + machine.root_device().subbank("bank1")->configure_entries(0, 0xff, &ROM[0x10000], 0x800); } GAME( 1986, bigevglf, 0, bigevglf, bigevglf, bigevglf, ROT270, "Taito America Corporation", "Big Event Golf (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c index 5fad42eec8c..9058db4577f 100644 --- a/src/mame/drivers/bladestl.c +++ b/src/mame/drivers/bladestl.c @@ -80,7 +80,7 @@ WRITE8_MEMBER(bladestl_state::bladestl_bankswitch_w) /* bit 4 = relay (???) */ /* bits 5-6 = bank number */ - memory_set_bank(machine(), "bank1", (data & 0x60) >> 5); + subbank("bank1")->set_entry((data & 0x60) >> 5); /* bit 7 = select sprite bank */ m_spritebank = (data & 0x80) << 3; @@ -303,7 +303,7 @@ static MACHINE_START( bladestl ) bladestl_state *state = machine.driver_data<bladestl_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000); state->m_audiocpu = machine.device("audiocpu"); state->m_k007342 = machine.device("k007342"); diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c index 9a329b9c451..4bccca8a40a 100644 --- a/src/mame/drivers/blktiger.c +++ b/src/mame/drivers/blktiger.c @@ -54,7 +54,7 @@ WRITE8_MEMBER(blktiger_state::blktiger_to_main_w) WRITE8_MEMBER(blktiger_state::blktiger_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } WRITE8_MEMBER(blktiger_state::blktiger_coinlockout_w) @@ -283,7 +283,7 @@ static MACHINE_START( blktiger ) state->m_mcu = machine.device("mcu"); /* configure bankswitching */ - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); state->save_item(NAME(state->m_scroll_bank)); state->save_item(NAME(state->m_screen_layout)); @@ -301,7 +301,7 @@ static MACHINE_RESET( blktiger ) blktiger_state *state = machine.driver_data<blktiger_state>(); /* configure bankswitching */ - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); state->m_scroll_x[0] = 0; state->m_scroll_x[1] = 0; diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c index 6c73caea151..a6cb29dad8c 100644 --- a/src/mame/drivers/blockhl.c +++ b/src/mame/drivers/blockhl.c @@ -191,7 +191,7 @@ static MACHINE_START( blockhl ) blockhl_state *state = machine.driver_data<blockhl_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); @@ -318,7 +318,7 @@ static KONAMI_SETLINES_CALLBACK( blockhl_banking ) /* bits 0-1 = ROM bank */ state->m_rombank = lines & 0x03; - memory_set_bank(device->machine(), "bank1", state->m_rombank); + state->subbank("bank1")->set_entry(state->m_rombank); /* bits 3/4 = coin counters */ coin_counter_w(device->machine(), 0, lines & 0x08); diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c index 17379c03ca5..5d0981cda16 100644 --- a/src/mame/drivers/bnstars.c +++ b/src/mame/drivers/bnstars.c @@ -1487,7 +1487,7 @@ static DRIVER_INIT (bnstars) decrypt_ms32_tx(machine, 0x00020,0x7e, "gfx7"); decrypt_ms32_bg(machine, 0x00001,0x9b, "gfx6"); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base()); + machine.root_device().subbank("bank1")->set_base(machine.region("maincpu")->base()); } GAME( 1997, bnstars1, 0, bnstars, bnstars, bnstars, ROT0, "Jaleco", "Vs. Janshi Brandnew Stars", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c index c81401c9bc4..275493cbf89 100644 --- a/src/mame/drivers/bottom9.c +++ b/src/mame/drivers/bottom9.c @@ -110,7 +110,7 @@ WRITE8_MEMBER(bottom9_state::bankswitch_w) else bank = ((data & 0x0e) >> 1); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); } WRITE8_MEMBER(bottom9_state::bottom9_1f90_w) @@ -324,7 +324,7 @@ static MACHINE_START( bottom9 ) bottom9_state *state = machine.driver_data<bottom9_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 12, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c index ab70cd9803b..60857d8348b 100644 --- a/src/mame/drivers/brkthru.c +++ b/src/mame/drivers/brkthru.c @@ -661,7 +661,7 @@ ROM_END static DRIVER_INIT( brkthru ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x2000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000); } /************************************* diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c index f222f92f901..3a97b80efe8 100644 --- a/src/mame/drivers/btime.c +++ b/src/mame/drivers/btime.c @@ -2164,7 +2164,7 @@ static DRIVER_INIT( cookrace ) decrypt_C10707_cpu(machine, "maincpu"); machine.device("audiocpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0200, 0x0fff, "bank10"); - memory_set_bankptr(machine, "bank10", machine.region("audiocpu")->base() + 0xe200); + state->subbank("bank10")->set_base(machine.region("audiocpu")->base() + 0xe200); state->m_audio_nmi_enable_type = AUDIO_ENABLE_DIRECT; } @@ -2183,7 +2183,7 @@ static DRIVER_INIT( wtennis ) machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc15f, 0xc15f, read8_delegate(FUNC(btime_state::wtennis_reset_hack_r),state)); machine.device("audiocpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0200, 0x0fff, "bank10"); - memory_set_bankptr(machine, "bank10", machine.region("audiocpu")->base() + 0xe200); + state->subbank("bank10")->set_base(machine.region("audiocpu")->base() + 0xe200); state->m_audio_nmi_enable_type = AUDIO_ENABLE_AY8910; } diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c index 889c34c7781..9aeae9d9bd2 100644 --- a/src/mame/drivers/bublbobl.c +++ b/src/mame/drivers/bublbobl.c @@ -1553,7 +1553,7 @@ ROM_END static void configure_banks( running_machine& machine ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); } static DRIVER_INIT( bublbobl ) diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c index bd6f7de5d70..6291d60d42f 100644 --- a/src/mame/drivers/buggychl.c +++ b/src/mame/drivers/buggychl.c @@ -88,7 +88,7 @@ Dip locations and factory settings verified from dip listing WRITE8_MEMBER(buggychl_state::bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x07); // shall we check if data&7 < # banks? + subbank("bank1")->set_entry(data & 0x07); // shall we check if data&7 < # banks? } static TIMER_CALLBACK( nmi_callback ) @@ -361,7 +361,7 @@ static MACHINE_START( buggychl ) buggychl_state *state = machine.driver_data<buggychl_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 6, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x2000); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c index 9da0b2ff0db..429d757e5d5 100644 --- a/src/mame/drivers/cabal.c +++ b/src/mame/drivers/cabal.c @@ -851,7 +851,7 @@ static void seibu_sound_bootleg(running_machine &machine,const char *cpu,int len memcpy(decrypt, rom+length, length); if (length > 0x10000) - memory_configure_bank_decrypted(machine, "bank1", 0, (length - 0x10000) / 0x8000, decrypt + 0x10000, 0x8000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, (length - 0x10000) / 0x8000, decrypt + 0x10000, 0x8000); } diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c index 2dc86671606..8a4756f33d1 100644 --- a/src/mame/drivers/calchase.c +++ b/src/mame/drivers/calchase.c @@ -339,7 +339,7 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i //if (data & 0x10) // enable RAM access to region 0xf0000 - 0xfffff if ((data & 0x50) | (data & 0xA0)) { - memory_set_bankptr(busdevice->machine(), "bank1", state->m_bios_ram); + state->subbank("bank1")->set_base(state->m_bios_ram); } else // disable RAM access (reads go to BIOS ROM) { @@ -352,8 +352,8 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i } #endif - //memory_set_bankptr(busdevice->machine(), "bank1", busdevice->machine().region("bios")->base() + 0x10000); - memory_set_bankptr(busdevice->machine(), "bank1", busdevice->machine().region("bios")->base()); + state->subbank("bank1")->set_base(busdevice->machine().region("bios")->base() + 0x10000); + state->subbank("bank1")->set_base(busdevice->machine().region("bios")->base()); } break; } @@ -865,8 +865,8 @@ static const struct pit8253_config calchase_pit8254_config = static MACHINE_RESET(calchase) { - //memory_set_bankptr(machine, "bank1", machine.region("bios")->base() + 0x10000); - memory_set_bankptr(machine, "bank1", machine.region("bios")->base()); + //machine.root_device().subbank("bank1")->set_base(machine.region("bios")->base() + 0x10000); + machine.root_device().subbank("bank1")->set_base(machine.region("bios")->base()); } static void set_gate_a20(running_machine &machine, int a20) diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c index b300a99f9c6..a7c4d42c0ee 100644 --- a/src/mame/drivers/capbowl.c +++ b/src/mame/drivers/capbowl.c @@ -139,7 +139,7 @@ static TIMER_CALLBACK( capbowl_update ) WRITE8_MEMBER(capbowl_state::capbowl_rom_select_w) { // 2009-11 FP: shall we add a check to be sure that bank < 6? - memory_set_bank(machine(), "bank1", ((data & 0x0c) >> 1) + (data & 0x01)); + subbank("bank1")->set_entry(((data & 0x0c) >> 1) + (data & 0x01)); } @@ -502,7 +502,7 @@ static DRIVER_INIT( capbowl ) UINT8 *ROM = machine.region("maincpu")->base(); /* configure ROM banks in 0x0000-0x3fff */ - memory_configure_bank(machine, "bank1", 0, 6, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); } diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index 452848c10ba..5f74d564421 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -1047,15 +1047,15 @@ WRITE8_MEMBER(cave_state::hotdogst_rombank_w) if (data & ~0x0f) logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data); - memory_set_bank(machine(), "bank2", data & 0x0f); + subbank("bank2")->set_entry(data & 0x0f); } WRITE8_MEMBER(cave_state::hotdogst_okibank_w) { int bank1 = (data >> 0) & 0x3; int bank2 = (data >> 4) & 0x3; - memory_set_bank(machine(), "bank3", bank1); - memory_set_bank(machine(), "bank4", bank2); + subbank("bank3")->set_entry(bank1); + subbank("bank4")->set_entry(bank2); } static ADDRESS_MAP_START( hotdogst_sound_map, AS_PROGRAM, 8, cave_state ) @@ -1084,7 +1084,7 @@ WRITE8_MEMBER(cave_state::mazinger_rombank_w) if (data & ~0x07) logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data); - memory_set_bank(machine(), "bank2", data & 0x07); + subbank("bank2")->set_entry(data & 0x07); } static ADDRESS_MAP_START( mazinger_sound_map, AS_PROGRAM, 8, cave_state ) @@ -1115,23 +1115,23 @@ WRITE8_MEMBER(cave_state::metmqstr_rombank_w) if (data & ~0x0f) logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data); - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } WRITE8_MEMBER(cave_state::metmqstr_okibank0_w) { int bank1 = (data >> 0) & 0x7; int bank2 = (data >> 4) & 0x7; - memory_set_bank(machine(), "bank3", bank1); - memory_set_bank(machine(), "bank4", bank2); + subbank("bank3")->set_entry(bank1); + subbank("bank4")->set_entry(bank2); } WRITE8_MEMBER(cave_state::metmqstr_okibank1_w) { int bank1 = (data >> 0) & 0x7; int bank2 = (data >> 4) & 0x7; - memory_set_bank(machine(), "bank5", bank1); - memory_set_bank(machine(), "bank6", bank2); + subbank("bank5")->set_entry(bank1); + subbank("bank6")->set_entry(bank2); } static ADDRESS_MAP_START( metmqstr_sound_map, AS_PROGRAM, 8, cave_state ) @@ -1163,7 +1163,7 @@ WRITE8_MEMBER(cave_state::pwrinst2_rombank_w) if (data & ~0x07) logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data); - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); } static ADDRESS_MAP_START( pwrinst2_sound_map, AS_PROGRAM, 8, cave_state ) @@ -1205,23 +1205,23 @@ WRITE8_MEMBER(cave_state::sailormn_rombank_w) if (data & ~0x1f) logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data); - memory_set_bank(machine(), "bank1", data & 0x1f); + subbank("bank1")->set_entry(data & 0x1f); } WRITE8_MEMBER(cave_state::sailormn_okibank0_w) { int bank1 = (data >> 0) & 0xf; int bank2 = (data >> 4) & 0xf; - memory_set_bank(machine(), "bank3", bank1); - memory_set_bank(machine(), "bank4", bank2); + subbank("bank3")->set_entry(bank1); + subbank("bank4")->set_entry(bank2); } WRITE8_MEMBER(cave_state::sailormn_okibank1_w) { int bank1 = (data >> 0) & 0xf; int bank2 = (data >> 4) & 0xf; - memory_set_bank(machine(), "bank5", bank1); - memory_set_bank(machine(), "bank6", bank2); + subbank("bank5")->set_entry(bank1); + subbank("bank6")->set_entry(bank2); } static ADDRESS_MAP_START( sailormn_sound_map, AS_PROGRAM, 8, cave_state ) @@ -4449,16 +4449,16 @@ static DRIVER_INIT( agallet ) UINT8 *ROM = machine.region("audiocpu")->base(); init_cave(machine); - memory_configure_bank(machine, "bank1", 0, 0x02, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 2, 0x1e, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x02, &ROM[0x00000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(2, 0x1e, &ROM[0x10000], 0x4000); ROM = machine.region("oki1")->base(); - memory_configure_bank(machine, "bank3", 0, 0x10, &ROM[0x00000], 0x20000); - memory_configure_bank(machine, "bank4", 0, 0x10, &ROM[0x00000], 0x20000); + machine.root_device().subbank("bank3")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); + machine.root_device().subbank("bank4")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); ROM = machine.region("oki2")->base(); - memory_configure_bank(machine, "bank5", 0, 0x10, &ROM[0x00000], 0x20000); - memory_configure_bank(machine, "bank6", 0, 0x10, &ROM[0x00000], 0x20000); + machine.root_device().subbank("bank5")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); + machine.root_device().subbank("bank6")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); sailormn_unpack_tiles(machine, "layer2"); @@ -4548,12 +4548,12 @@ static DRIVER_INIT( hotdogst ) init_cave(machine); - memory_configure_bank(machine, "bank2", 0, 0x2, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank2", 2, 0xe, &ROM[0x10000], 0x4000); + state->subbank("bank2")->configure_entries(0, 0x2, &ROM[0x00000], 0x4000); + state->subbank("bank2")->configure_entries(2, 0xe, &ROM[0x10000], 0x4000); ROM = machine.region("oki")->base(); - memory_configure_bank(machine, "bank3", 0, 4, &ROM[0x00000], 0x20000); - memory_configure_bank(machine, "bank4", 0, 4, &ROM[0x00000], 0x20000); + state->subbank("bank3")->configure_entries(0, 4, &ROM[0x00000], 0x20000); + state->subbank("bank4")->configure_entries(0, 4, &ROM[0x00000], 0x20000); unpack_sprites(machine); state->m_spritetype[0] = 2; // Normal sprites with different position handling @@ -4570,12 +4570,12 @@ static DRIVER_INIT( mazinger ) init_cave(machine); - memory_configure_bank(machine, "bank2", 0, 2, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank2", 2, 6, &ROM[0x10000], 0x4000); + state->subbank("bank2")->configure_entries(0, 2, &ROM[0x00000], 0x4000); + state->subbank("bank2")->configure_entries(2, 6, &ROM[0x10000], 0x4000); ROM = machine.region("oki")->base(); - memory_configure_bank(machine, "bank3", 0, 4, &ROM[0x00000], 0x20000); - memory_configure_bank(machine, "bank4", 0, 4, &ROM[0x00000], 0x20000); + state->subbank("bank3")->configure_entries(0, 4, &ROM[0x00000], 0x20000); + state->subbank("bank4")->configure_entries(0, 4, &ROM[0x00000], 0x20000); /* decrypt sprites */ buffer = auto_alloc_array(machine, UINT8, len); @@ -4593,7 +4593,7 @@ static DRIVER_INIT( mazinger ) state->m_time_vblank_irq = 2100; /* setup extra ROM */ - memory_set_bankptr(machine, "bank1",machine.region("user1")->base()); + state->subbank("bank1")->set_base(machine.region("user1")->base()); } @@ -4604,16 +4604,16 @@ static DRIVER_INIT( metmqstr ) init_cave(machine); - memory_configure_bank(machine, "bank1", 0, 0x2, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 2, 0xe, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 0x2, &ROM[0x00000], 0x4000); + state->subbank("bank1")->configure_entries(2, 0xe, &ROM[0x10000], 0x4000); ROM = machine.region("oki1")->base(); - memory_configure_bank(machine, "bank3", 0, 8, &ROM[0x00000], 0x20000); - memory_configure_bank(machine, "bank4", 0, 8, &ROM[0x00000], 0x20000); + state->subbank("bank3")->configure_entries(0, 8, &ROM[0x00000], 0x20000); + state->subbank("bank4")->configure_entries(0, 8, &ROM[0x00000], 0x20000); ROM = machine.region("oki2")->base(); - memory_configure_bank(machine, "bank5", 0, 8, &ROM[0x00000], 0x20000); - memory_configure_bank(machine, "bank6", 0, 8, &ROM[0x00000], 0x20000); + state->subbank("bank5")->configure_entries(0, 8, &ROM[0x00000], 0x20000); + state->subbank("bank6")->configure_entries(0, 8, &ROM[0x00000], 0x20000); unpack_sprites(machine); state->m_spritetype[0] = 2; // Normal sprites with different position handling @@ -4633,8 +4633,8 @@ static DRIVER_INIT( pwrinst2j ) init_cave(machine); - memory_configure_bank(machine, "bank1", 0, 3, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 3, 5, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 3, &ROM[0x00000], 0x4000); + state->subbank("bank1")->configure_entries(3, 5, &ROM[0x10000], 0x4000); buffer = auto_alloc_array(machine, UINT8, len); { @@ -4681,16 +4681,16 @@ static DRIVER_INIT( sailormn ) init_cave(machine); - memory_configure_bank(machine, "bank1", 0, 0x02, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 2, 0x1e, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 0x02, &ROM[0x00000], 0x4000); + state->subbank("bank1")->configure_entries(2, 0x1e, &ROM[0x10000], 0x4000); ROM = machine.region("oki1")->base(); - memory_configure_bank(machine, "bank3", 0, 0x10, &ROM[0x00000], 0x20000); - memory_configure_bank(machine, "bank4", 0, 0x10, &ROM[0x00000], 0x20000); + state->subbank("bank3")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); + state->subbank("bank4")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); ROM = machine.region("oki2")->base(); - memory_configure_bank(machine, "bank5", 0, 0x10, &ROM[0x00000], 0x20000); - memory_configure_bank(machine, "bank6", 0, 0x10, &ROM[0x00000], 0x20000); + state->subbank("bank5")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); + state->subbank("bank6")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); /* decrypt sprites */ buffer = auto_alloc_array(machine, UINT8, len); diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c index 80ff78be71a..beadf99fbaa 100644 --- a/src/mame/drivers/cbasebal.c +++ b/src/mame/drivers/cbasebal.c @@ -32,7 +32,7 @@ WRITE8_MEMBER(cbasebal_state::cbasebal_bankswitch_w) /* bits 0-4 select ROM bank */ //logerror("%04x: bankswitch %02x\n", cpu_get_pc(&space.device()), data); - memory_set_bank(machine(), "bank1", data & 0x1f); + subbank("bank1")->set_entry(data & 0x1f); /* bit 5 used but unknown */ @@ -243,7 +243,7 @@ static MACHINE_START( cbasebal ) { cbasebal_state *state = machine.driver_data<cbasebal_state>(); - memory_configure_bank(machine, "bank1", 0, 32, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, 32, machine.region("maincpu")->base() + 0x10000, 0x4000); state->save_item(NAME(state->m_rambank)); state->save_item(NAME(state->m_tilebank)); diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c index 7fb8a8918f5..88782243914 100644 --- a/src/mame/drivers/ccastles.c +++ b/src/mame/drivers/ccastles.c @@ -213,7 +213,7 @@ static MACHINE_START( ccastles ) machine.primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); /* configure the ROM banking */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0xa000, 0x6000); + state->subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0xa000, 0x6000); /* create a timer for IRQs and set up the first callback */ state->m_irq_timer = machine.scheduler().timer_alloc(FUNC(clock_irq)); @@ -265,7 +265,7 @@ WRITE8_MEMBER(ccastles_state::ccounter_w) WRITE8_MEMBER(ccastles_state::bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 1); + subbank("bank1")->set_entry(data & 1); } diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c index 13a4cde5e4d..8160f41394e 100644 --- a/src/mame/drivers/cclimber.c +++ b/src/mame/drivers/cclimber.c @@ -248,7 +248,7 @@ WRITE8_MEMBER(cclimber_state::toprollr_rombank_w) m_toprollr_rombank |= (data & 1) << offset; if (m_toprollr_rombank < 3) - memory_set_bank(machine(), "bank1", m_toprollr_rombank); + subbank("bank1")->set_entry(m_toprollr_rombank); } static MACHINE_RESET( cclimber ) diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c index 7f16d4cc1a8..9a5f74d1ef6 100644 --- a/src/mame/drivers/cd32.c +++ b/src/mame/drivers/cd32.c @@ -56,7 +56,7 @@ WRITE32_MEMBER(cd32_state::aga_overlay_w) data = (data >> 16) & 1; /* switch banks as appropriate */ - memory_set_bank(machine(), "bank1", data & 1); + subbank("bank1")->set_entry(data & 1); /* swap the write handlers between ROM and bank 1 based on the bit */ if ((data & 1) == 0) @@ -853,8 +853,8 @@ static DRIVER_INIT( cd32 ) amiga_machine_config(machine, &cd32_intf); /* set up memory */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_chip_ram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("user1")->base(), 0); + state->subbank("bank1")->configure_entry(0, state->m_chip_ram); + state->subbank("bank1")->configure_entry(1, machine.region("user1")->base()); /* input hack */ state->m_input_hack = NULL; @@ -1472,8 +1472,8 @@ static DRIVER_INIT( odeontw2 ) amiga_machine_config(machine, &cd32_intf); /* set up memory */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_chip_ram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("user1")->base(), 0); + state->subbank("bank1")->configure_entry(0, state->m_chip_ram); + state->subbank("bank1")->configure_entry(1, machine.region("user1")->base()); /* input hack */ state->m_input_hack = NULL; diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c index 573d1a9fc41..5e1d9dd9a89 100644 --- a/src/mame/drivers/chaknpop.c +++ b/src/mame/drivers/chaknpop.c @@ -348,7 +348,7 @@ static MACHINE_START( chaknpop ) chaknpop_state *state = machine.driver_data<chaknpop_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000); state->save_item(NAME(state->m_gfxmode)); state->save_item(NAME(state->m_flip_x)); diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c index db5e6979b19..181aca86fe1 100644 --- a/src/mame/drivers/cham24.c +++ b/src/mame/drivers/cham24.c @@ -195,7 +195,7 @@ WRITE8_MEMBER(cham24_state::cham24_mapper_w) UINT8* src = machine().region("user1")->base(); // switch PPU VROM bank - memory_set_bankptr(machine(), "bank1", machine().region("gfx1")->base() + (0x2000 * gfx_bank)); + subbank("bank1")->set_base(machine().region("gfx1")->base() + (0x2000 * gfx_bank)); // set gfx mirroring cham24_set_mirroring(machine(), gfx_mirroring != 0 ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); @@ -312,7 +312,7 @@ static MACHINE_START( cham24 ) /* uses 8K swapping, all ROM!*/ machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank1"); - memory_set_bankptr(machine, "bank1", machine.region("gfx1")->base()); + state->subbank("bank1")->set_base(machine.region("gfx1")->base()); /* need nametable ram, though. I doubt this uses more than 2k, but it starts up configured for 4 */ state->m_nt_ram = auto_alloc_array(machine, UINT8, 0x1000); diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c index 9c8215e4f8d..66d648aae6e 100644 --- a/src/mame/drivers/champbwl.c +++ b/src/mame/drivers/champbwl.c @@ -194,7 +194,7 @@ WRITE8_MEMBER(champbwl_state::champbwl_misc_w) coin_lockout_w(machine(), 0, ~data & 8); coin_lockout_w(machine(), 1, ~data & 4); - memory_set_bank(machine(), "bank1", (data & 0x30) >> 4); + subbank("bank1")->set_entry((data & 0x30) >> 4); } static ADDRESS_MAP_START( champbwl_map, AS_PROGRAM, 8, champbwl_state ) @@ -231,7 +231,7 @@ WRITE8_MEMBER(champbwl_state::doraemon_outputs_w) coin_lockout_w(machine(), 0, ~data & 8); // coin lockout machine().device<ticket_dispenser_device>("hopper")->write(*&space, 0, (data & 0x04) ? 0x00 : 0x80); // gift out motor - memory_set_bank(machine(), "bank1", (data & 0x30) >> 4); + subbank("bank1")->set_entry((data & 0x30) >> 4); // popmessage("%02x", data); } @@ -434,7 +434,7 @@ static MACHINE_START( champbwl ) state->m_mcu = NULL; - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); state->save_item(NAME(state->m_screenflip)); state->save_item(NAME(state->m_last_trackball_val)); @@ -531,7 +531,7 @@ static SCREEN_VBLANK( doraemon ) static MACHINE_START( doraemon ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); } static MACHINE_CONFIG_START( doraemon, tnzs_state ) diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c index 63a5d485465..c6d37710417 100644 --- a/src/mame/drivers/chanbara.c +++ b/src/mame/drivers/chanbara.c @@ -357,7 +357,7 @@ static WRITE8_DEVICE_HANDLER( chanbara_ay_out_1_w ) state->flip_screen_set(data & 0x02); - memory_set_bank(device->machine(), "bank1", (data & 0x04) >> 2); + state->subbank("bank1")->set_entry((data & 0x04) >> 2); //if (data & 0xf8) printf("chanbara_ay_out_1_w unused bits set %02x\n", data & 0xf8); } @@ -484,7 +484,7 @@ static DRIVER_INIT(chanbara ) dst[i + 0x2000] = (src[i + 0x1000] & 0x0f) << 4; } - memory_configure_bank(machine, "bank1", 0, 2, &bg[0x0000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &bg[0x0000], 0x4000); } GAME( 1985, chanbara, 0, chanbara, chanbara, chanbara, ROT270, "Data East", "Chanbara", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c index cc8ca29118b..9220f873981 100644 --- a/src/mame/drivers/chinagat.c +++ b/src/mame/drivers/chinagat.c @@ -180,12 +180,12 @@ static WRITE8_HANDLER( chinagat_video_ctrl_w ) static WRITE8_HANDLER( chinagat_bankswitch_w ) { - memory_set_bank(space->machine(), "bank1", data & 0x07); // shall we check (data & 7) < 6 (# of banks)? + space->machine().root_device().subbank("bank1")->set_entry(data & 0x07); // shall we check (data & 7) < 6 (# of banks)? } static WRITE8_HANDLER( chinagat_sub_bankswitch_w ) { - memory_set_bank(space->machine(), "bank4", data & 0x07); // shall we check (data & 7) < 6 (# of banks)? + space->machine().root_device().subbank("bank4")->set_entry(data & 0x07); // shall we check (data & 7) < 6 (# of banks)? } static READ8_HANDLER( saiyugoub1_mcu_command_r ) @@ -531,7 +531,7 @@ static MACHINE_START( chinagat ) state->m_snd_cpu = machine.device("audiocpu"); /* configure banks */ - memory_configure_bank(machine, "bank1", 0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000); /* register for save states */ state->save_item(NAME(state->m_scrollx_hi)); @@ -919,8 +919,8 @@ static DRIVER_INIT( chinagat ) state->m_sprite_irq = M6809_IRQ_LINE; state->m_sound_irq = INPUT_LINE_NMI; - memory_configure_bank(machine, "bank1", 0, 6, &MAIN[0x10000], 0x4000); - memory_configure_bank(machine, "bank4", 0, 6, &SUB[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 6, &MAIN[0x10000], 0x4000); + state->subbank("bank4")->configure_entries(0, 6, &SUB[0x10000], 0x4000); } diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c index 913e0f7e772..6bf64f67ae9 100644 --- a/src/mame/drivers/chinsan.c +++ b/src/mame/drivers/chinsan.c @@ -119,7 +119,7 @@ static SCREEN_UPDATE_IND16( chinsan ) WRITE8_MEMBER(chinsan_state::ctrl_w) { - memory_set_bank(machine(), "bank1", data >> 6); + subbank("bank1")->set_entry(data >> 6); } static WRITE8_DEVICE_HANDLER( ym_port_w1 ) @@ -571,7 +571,7 @@ static MACHINE_START( chinsan ) { chinsan_state *state = machine.driver_data<chinsan_state>(); - memory_configure_bank(machine, "bank1", 0, 4, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("maincpu")->base() + 0x10000, 0x4000); state->save_item(NAME(state->m_adpcm_idle)); state->save_item(NAME(state->m_port_select)); diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c index 3a64597bab8..dd6ec6f4a83 100644 --- a/src/mame/drivers/chqflag.c +++ b/src/mame/drivers/chqflag.c @@ -44,14 +44,14 @@ WRITE8_MEMBER(chqflag_state::chqflag_bankswitch_w) /* bits 0-4 = ROM bank # (0x00-0x11) */ bankaddress = 0x10000 + (data & 0x1f) * 0x4000; - memory_set_bankptr(machine(), "bank4", &RAM[bankaddress]); + subbank("bank4")->set_base(&RAM[bankaddress]); /* bit 5 = memory bank select */ if (data & 0x20) { space.install_read_bank(0x1800, 0x1fff, "bank5"); space.install_write_handler(0x1800, 0x1fff, write8_delegate(FUNC(driver_device::paletteram_xBBBBBGGGGGRRRRR_byte_be_w),this)); - memory_set_bankptr(machine(), "bank5", m_generic_paletteram_8); + subbank("bank5")->set_base(m_generic_paletteram_8); if (m_k051316_readroms) space.install_legacy_readwrite_handler(*m_k051316_1, 0x1000, 0x17ff, FUNC(k051316_rom_r), FUNC(k051316_w)); /* 051316 #1 (ROM test) */ @@ -324,7 +324,7 @@ static MACHINE_START( chqflag ) chqflag_state *state = machine.driver_data<chqflag_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/cidelsa.c b/src/mame/drivers/cidelsa.c index f014bf3d023..08c4b6e0983 100644 --- a/src/mame/drivers/cidelsa.c +++ b/src/mame/drivers/cidelsa.c @@ -45,7 +45,7 @@ WRITE8_MEMBER( draco_state::sound_bankswitch_w ) int bank = BIT(data, 3); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); } WRITE8_MEMBER( draco_state::sound_g_w ) @@ -441,8 +441,8 @@ void cidelsa_state::machine_start() void draco_state::machine_start() { /* setup COP402 memory banking */ - memory_configure_bank(machine(), "bank1", 0, 2, machine().region(COP402N_TAG)->base(), 0x400); - memory_set_bank(machine(), "bank1", 0); + subbank("bank1")->configure_entries(0, 2, machine().region(COP402N_TAG)->base(), 0x400); + subbank("bank1")->set_entry(0); /* register for state saving */ save_item(NAME(m_reset)); diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c index f1b1deb0cd5..d12af72d0e8 100644 --- a/src/mame/drivers/cinemat.c +++ b/src/mame/drivers/cinemat.c @@ -273,7 +273,7 @@ READ8_MEMBER(cinemat_state::qb3_frame_r) WRITE8_MEMBER(cinemat_state::qb3_ram_bank_w) { - memory_set_bank(machine(), "bank1", cpu_get_reg(machine().device("maincpu"), CCPU_P) & 3); + subbank("bank1")->set_entry(cpu_get_reg(machine().device("maincpu"), CCPU_P) & 3); } @@ -1487,7 +1487,7 @@ static DRIVER_INIT( qb3 ) machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x0f, 0x0f, read8_delegate(FUNC(cinemat_state::qb3_frame_r),state)); machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x00, 0x00, write8_delegate(FUNC(cinemat_state::qb3_ram_bank_w),state)); - memory_configure_bank(machine, "bank1", 0, 4, state->m_rambase, 0x100*2); + state->subbank("bank1")->configure_entries(0, 4, state->m_rambase, 0x100*2); } diff --git a/src/mame/drivers/cmmb.c b/src/mame/drivers/cmmb.c index bb192bd29f9..9aed66e3569 100644 --- a/src/mame/drivers/cmmb.c +++ b/src/mame/drivers/cmmb.c @@ -141,7 +141,7 @@ READ8_MEMBER(cmmb_state::cmmb_input_r) UINT32 bankaddress; bankaddress = 0x10000 + (0x10000 * (data & 0x03)); - memory_set_bankptr(space->machine(), "bank1", &ROM[bankaddress]); + space->machine().root_device().subbank("bank1")->set_base(&ROM[bankaddress]); } */ @@ -156,7 +156,7 @@ WRITE8_MEMBER(cmmb_state::cmmb_output_w) UINT32 bankaddress; bankaddress = 0x1c000 + (0x10000 * (data & 0x03)); - memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]); + subbank("bank1")->set_base(&ROM[bankaddress]); } break; case 0x03: diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c index c6a43617571..4cb23be5cdc 100644 --- a/src/mame/drivers/combatsc.c +++ b/src/mame/drivers/combatsc.c @@ -199,9 +199,9 @@ WRITE8_MEMBER(combatsc_state::combatsc_bankselect_w) } if (data & 0x10) - memory_set_bank(machine(), "bank1", (data & 0x0e) >> 1); + subbank("bank1")->set_entry((data & 0x0e) >> 1); else - memory_set_bank(machine(), "bank1", 8 + (data & 1)); + subbank("bank1")->set_entry(8 + (data & 1)); } WRITE8_MEMBER(combatsc_state::combatscb_io_w) @@ -237,13 +237,13 @@ WRITE8_MEMBER(combatsc_state::combatscb_bankselect_w) m_bank_select = data; if (data & 0x10) - memory_set_bank(machine(), "bank1", (data & 0x0e) >> 1); + subbank("bank1")->set_entry((data & 0x0e) >> 1); else - memory_set_bank(machine(), "bank1", 8 + (data & 1)); + subbank("bank1")->set_entry(8 + (data & 1)); if (data == 0x1f) { - memory_set_bank(machine(), "bank1", 8 + (data & 1)); + subbank("bank1")->set_entry(8 + (data & 1)); space.install_write_handler(0x4000, 0x7fff, write8_delegate(FUNC(combatsc_state::combatscb_io_w),this)); space.install_read_handler(0x4400, 0x4403, read8_delegate(FUNC(combatsc_state::combatscb_io_r),this));/* IO RAM & Video Registers */ } @@ -702,7 +702,7 @@ static MACHINE_START( combatsc ) state->m_k007121_1 = machine.device("k007121_1"); state->m_k007121_2 = machine.device("k007121_2"); - memory_configure_bank(machine, "bank1", 0, 10, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, 10, machine.region("maincpu")->base() + 0x10000, 0x4000); state->save_item(NAME(state->m_priority)); state->save_item(NAME(state->m_vreg)); diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c index eaf7d98cd1a..3b9467e5f63 100644 --- a/src/mame/drivers/compgolf.c +++ b/src/mame/drivers/compgolf.c @@ -44,7 +44,7 @@ WRITE8_MEMBER(compgolf_state::compgolf_ctrl_w) if (m_bank != new_bank) { m_bank = new_bank; - memory_set_bank(machine(), "bank1", m_bank); + subbank("bank1")->set_entry(m_bank); } m_scrollx_hi = (data & 1) << 8; @@ -360,7 +360,7 @@ static void compgolf_expand_bg(running_machine &machine) static DRIVER_INIT( compgolf ) { - memory_configure_bank(machine, "bank1", 0, 2, machine.region("user1")->base(), 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("user1")->base(), 0x4000); compgolf_expand_bg(machine); } diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c index 8f2a67254fb..91fe68c2f4c 100644 --- a/src/mame/drivers/contra.c +++ b/src/mame/drivers/contra.c @@ -34,7 +34,7 @@ static INTERRUPT_GEN( contra_interrupt ) WRITE8_MEMBER(contra_state::contra_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } WRITE8_MEMBER(contra_state::contra_sh_irqtrigger_w) @@ -180,7 +180,7 @@ static MACHINE_START( contra ) contra_state *state = machine.driver_data<contra_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 16, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000); state->m_audiocpu = machine.device("audiocpu"); state->m_k007121_1 = machine.device("k007121_1"); diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index 50cb9018ad9..d7374b33349 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -281,7 +281,7 @@ WRITE16_MEMBER(cps_state::forgottn_dial_1_reset_w) WRITE8_MEMBER(cps_state::cps1_snd_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x01); + subbank("bank1")->set_entry(data & 0x01); } static WRITE8_DEVICE_HANDLER( cps1_oki_pin7_w ) @@ -393,7 +393,7 @@ WRITE8_MEMBER(cps_state::qsound_banksw_w) bank = 0; } - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); } @@ -3040,13 +3040,13 @@ static MACHINE_START( common ) static MACHINE_START( cps1 ) { MACHINE_START_CALL(common); - memory_configure_bank(machine, "bank1", 0, 2, machine.region("audiocpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("audiocpu")->base() + 0x10000, 0x4000); } static MACHINE_START( qsound ) { MACHINE_START_CALL(common); - memory_configure_bank(machine, "bank1", 0, 6, machine.region("audiocpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 6, machine.region("audiocpu")->base() + 0x10000, 0x4000); } static MACHINE_CONFIG_START( cps1_10MHz, cps_state ) diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index 554da3796ea..493f72346c3 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -1217,7 +1217,7 @@ static MACHINE_START( cps2 ) state->m_audiocpu = machine.device("audiocpu"); if (state->m_audiocpu != NULL) // gigaman2 has no audiocpu - memory_configure_bank(machine, "bank1", 0, (QSOUND_SIZE - 0x10000) / 0x4000, machine.region("audiocpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, (QSOUND_SIZE - 0x10000) / 0x4000, machine.region("audiocpu")->base() + 0x10000, 0x4000); } diff --git a/src/mame/drivers/crgolf.c b/src/mame/drivers/crgolf.c index 87646adef66..aad47d5615e 100644 --- a/src/mame/drivers/crgolf.c +++ b/src/mame/drivers/crgolf.c @@ -44,7 +44,7 @@ WRITE8_MEMBER(crgolf_state::rom_bank_select_w) { - memory_set_bank(machine(), "bank1", data & 15); + subbank("bank1")->set_entry(data & 15); } @@ -56,8 +56,8 @@ static MACHINE_START( crgolf ) state->m_audiocpu = machine.device("audiocpu"); /* configure the banking */ - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x2000); + state->subbank("bank1")->set_entry(0); /* register for save states */ state->save_item(NAME(state->m_port_select)); diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c index 48153b918a1..a10e7207d4d 100644 --- a/src/mame/drivers/crimfght.c +++ b/src/mame/drivers/crimfght.c @@ -257,8 +257,8 @@ static MACHINE_START( crimfght ) crimfght_state *state = machine.driver_data<crimfght_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank2", 0, 12, &ROM[0x10000], 0x2000); - memory_set_bank(machine, "bank2", 0); + state->subbank("bank2")->configure_entries(0, 12, &ROM[0x10000], 0x2000); + state->subbank("bank2")->set_entry(0); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); @@ -408,7 +408,7 @@ static KONAMI_SETLINES_CALLBACK( crimfght_banking ) { device->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x03ff, "bank3"); device->memory().space(AS_PROGRAM)->install_write_handler(0x0000, 0x03ff, write8_delegate(FUNC(crimfght_state::paletteram_xBBBBBGGGGGRRRRR_byte_be_w), state)); - memory_set_bankptr(device->machine(), "bank3", state->m_generic_paletteram_8); + state->subbank("bank3")->set_base(state->m_generic_paletteram_8); } else device->memory().space(AS_PROGRAM)->install_readwrite_bank(0x0000, 0x03ff, "bank1"); /* RAM */ @@ -416,7 +416,7 @@ static KONAMI_SETLINES_CALLBACK( crimfght_banking ) /* bit 6 = enable char ROM reading through the video RAM */ k052109_set_rmrd_line(state->m_k052109, (lines & 0x40) ? ASSERT_LINE : CLEAR_LINE); - memory_set_bank(device->machine(), "bank2", lines & 0x0f); + state->subbank("bank2")->set_entry(lines & 0x0f); } GAME( 1989, crimfght, 0, crimfght, crimfght, 0, ROT0, "Konami", "Crime Fighters (US 4 players)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c index 5685959d8b9..137c6e992e9 100644 --- a/src/mame/drivers/crshrace.c +++ b/src/mame/drivers/crshrace.c @@ -156,7 +156,7 @@ READ16_MEMBER(crshrace_state::extrarom2_r) WRITE8_MEMBER(crshrace_state::crshrace_sh_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } WRITE16_MEMBER(crshrace_state::sound_command_w) @@ -442,7 +442,7 @@ static MACHINE_START( crshrace ) { crshrace_state *state = machine.driver_data<crshrace_state>(); - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000, 0x8000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000, 0x8000); state->save_item(NAME(state->m_roz_bank)); state->save_item(NAME(state->m_gfxctrl)); diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c index 657480bad16..624451242e4 100644 --- a/src/mame/drivers/crystal.c +++ b/src/mame/drivers/crystal.c @@ -286,9 +286,9 @@ WRITE32_MEMBER(crystal_state::Banksw_w) m_Bank = (data >> 1) & 7; if (m_Bank <= 2) - memory_set_bankptr(machine(), "bank1", machine().region("user1")->base() + m_Bank * 0x1000000); + subbank("bank1")->set_base(machine().region("user1")->base() + m_Bank * 0x1000000); else - memory_set_bankptr(machine(), "bank1", machine().region("user2")->base()); + subbank("bank1")->set_base(machine().region("user2")->base()); } static TIMER_CALLBACK( Timercb ) @@ -567,9 +567,9 @@ static void crystal_banksw_postload(running_machine &machine) crystal_state *state = machine.driver_data<crystal_state>(); if (state->m_Bank <= 2) - memory_set_bankptr(machine, "bank1", machine.region("user1")->base() + state->m_Bank * 0x1000000); + state->subbank("bank1")->set_base(machine.region("user1")->base() + state->m_Bank * 0x1000000); else - memory_set_bankptr(machine, "bank1", machine.region("user2")->base()); + state->subbank("bank1")->set_base(machine.region("user2")->base()); } static MACHINE_START( crystal ) @@ -613,7 +613,7 @@ static MACHINE_RESET( crystal ) state->m_IntHigh = 0; device_set_irq_callback(machine.device("maincpu"), icallback); state->m_Bank = 0; - memory_set_bankptr(machine, "bank1", machine.region("user1")->base() + 0); + state->subbank("bank1")->set_base(machine.region("user1")->base() + 0); state->m_FlashCmd = 0xff; state->m_OldPort4 = 0; diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c index 571a5082ec7..dae7e7d2c3d 100644 --- a/src/mame/drivers/cshooter.c +++ b/src/mame/drivers/cshooter.c @@ -239,7 +239,7 @@ WRITE8_MEMBER(cshooter_state::cshooter_c700_w) WRITE8_MEMBER(cshooter_state::bank_w) { - memory_set_bankptr(machine(), "bank1",&machine().region("user1")->base()[0x4000*((data>>4)&3)]); + subbank("bank1")->set_base(&machine().region("user1")->base()[0x4000*((data>>4)&3)]); } @@ -670,7 +670,7 @@ static DRIVER_INIT( cshooter ) rom[0xa2] = 0x00; rom[0xa3] = 0x00; rom[0xa4] = 0x00; - memory_set_bankptr(machine, "bank1",&machine.region("user1")->base()[0]); + machine.root_device().subbank("bank1")->set_base(&machine.region("user1")->base()[0]); } static DRIVER_INIT( cshootere ) @@ -707,7 +707,7 @@ static DRIVER_INIT( cshootere ) rom[A] = BITSWAP8(rom[A],7,6,1,4,3,2,5,0); } - memory_set_bankptr(machine, "bank1",&machine.region("user1")->base()[0]); + machine.root_device().subbank("bank1")->set_base(&machine.region("user1")->base()[0]); seibu_sound_decrypt(machine,"audiocpu",0x2000); } diff --git a/src/mame/drivers/csplayh5.c b/src/mame/drivers/csplayh5.c index dc3269f5fe5..e947d81d0ac 100644 --- a/src/mame/drivers/csplayh5.c +++ b/src/mame/drivers/csplayh5.c @@ -169,7 +169,7 @@ static void csplayh5_soundbank_w(running_machine &machine, int data) { UINT8 *SNDROM = machine.region("audiocpu")->base(); - memory_set_bankptr(machine, "bank1", &SNDROM[0x08000 + (0x8000 * (data & 0x03))]); + machine.root_device().subbank("bank1")->set_base(&SNDROM[0x08000 + (0x8000 * (data & 0x03))]); } READ8_MEMBER(csplayh5_state::csplayh5_sound_r) diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c index 6e1527f70ee..4e41313ccbf 100644 --- a/src/mame/drivers/cultures.c +++ b/src/mame/drivers/cultures.c @@ -128,7 +128,7 @@ static SCREEN_UPDATE_IND16( cultures ) WRITE8_MEMBER(cultures_state::cpu_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); m_video_bank = ~data & 0x20; } @@ -372,7 +372,7 @@ static MACHINE_START( cultures ) cultures_state *state = machine.driver_data<cultures_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 16, &ROM[0x0000], 0x4000); + state->subbank("bank1")->configure_entries(0, 16, &ROM[0x0000], 0x4000); state->save_item(NAME(state->m_paletteram)); state->save_item(NAME(state->m_old_bank)); diff --git a/src/mame/drivers/cyclemb.c b/src/mame/drivers/cyclemb.c index 65146e393f4..8948d599d96 100644 --- a/src/mame/drivers/cyclemb.c +++ b/src/mame/drivers/cyclemb.c @@ -227,7 +227,7 @@ static SCREEN_UPDATE_IND16( cyclemb ) WRITE8_MEMBER(cyclemb_state::cyclemb_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 3); + subbank("bank1")->set_entry(data & 3); } #if 0 @@ -613,7 +613,7 @@ ROM_END static DRIVER_INIT( cyclemb ) { - memory_configure_bank(machine, "bank1", 0, 4, machine.region("maincpu")->base() + 0x10000, 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, machine.region("maincpu")->base() + 0x10000, 0x1000); } GAME( 1984, cyclemb, 0, cyclemb, cyclemb, cyclemb, ROT0, "Taito Corporation", "Cycle Mahbou (Japan)", GAME_NOT_WORKING ) diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c index ab8d2f56673..864779452a3 100644 --- a/src/mame/drivers/d9final.c +++ b/src/mame/drivers/d9final.c @@ -96,7 +96,7 @@ WRITE8_MEMBER(d9final_state::d9final_bank_w) UINT32 bankaddress; bankaddress = 0x10000+(0x4000 * (data & 0x7)); - memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]); + subbank("bank1")->set_base(&ROM[bankaddress]); } /* game checks this after three attract cycles, otherwise coin inputs stop to work. */ @@ -275,7 +275,7 @@ static MACHINE_RESET( d9final ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0x10000]); + machine.root_device().subbank("bank1")->set_base(&ROM[0x10000]); } static MACHINE_CONFIG_START( d9final, d9final_state ) diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c index 5b3a5b58c60..2931403696e 100644 --- a/src/mame/drivers/darius.c +++ b/src/mame/drivers/darius.c @@ -274,7 +274,7 @@ ADDRESS_MAP_END static void reset_sound_region( running_machine &machine ) { darius_state *state = machine.driver_data<darius_state>(); - memory_set_bank(machine, "bank1", state->m_banknum); + state->subbank("bank1")->set_entry(state->m_banknum); } WRITE8_MEMBER(darius_state::sound_bankswitch_w) @@ -842,9 +842,9 @@ static MACHINE_START( darius ) { darius_state *state = machine.driver_data<darius_state>(); - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000, 0x8000); - memory_configure_bank(machine, "bank1", 4, 1, machine.region("audiocpu")->base(), 0x8000); - memory_set_bank(machine, "bank1", 4); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000, 0x8000); + state->subbank("bank1")->configure_entry(4, machine.region("audiocpu")->base()); + state->subbank("bank1")->set_entry(4); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c index 44f6f18f263..103152520fc 100644 --- a/src/mame/drivers/darkmist.c +++ b/src/mame/drivers/darkmist.c @@ -32,7 +32,7 @@ TODO: WRITE8_MEMBER(darkmist_state::darkmist_hw_w) { m_hw=data; - memory_set_bankptr(machine(), "bank1",&machine().region("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]); + subbank("bank1")->set_base(&machine().region("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]); } static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, darkmist_state ) @@ -437,7 +437,7 @@ static DRIVER_INIT(darkmist) } space->set_decrypted_region(0x0000, 0x7fff, decrypt); - memory_set_bankptr(space->machine(), "bank1",&ROM[0x010000]); + space->machine().root_device().subbank("bank1")->set_base(&ROM[0x010000]); /* adr line swaps */ ROM = machine.region("user1")->base(); diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c index 3a45dbad421..1b57231cc74 100644 --- a/src/mame/drivers/ddayjlc.c +++ b/src/mame/drivers/ddayjlc.c @@ -203,7 +203,7 @@ WRITE8_MEMBER(ddayjlc_state::bg2_w) if (m_bgadr > 2) m_bgadr = 0; - memory_set_bank(machine(), "bank1", m_bgadr); + subbank("bank1")->set_entry(m_bgadr); } WRITE8_MEMBER(ddayjlc_state::sound_w) @@ -690,8 +690,8 @@ static DRIVER_INIT( ddayjlc ) auto_free(machine, temp); } - memory_configure_bank(machine, "bank1", 0, 3, machine.region("user1")->base(), 0x4000); - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->configure_entries(0, 3, machine.region("user1")->base(), 0x4000); + machine.root_device().subbank("bank1")->set_entry(0); } GAME( 1984, ddayjlc, 0, ddayjlc, ddayjlc, ddayjlc, ROT90, "Jaleco", "D-Day (Jaleco set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c index 06160ee1492..72f102f4130 100644 --- a/src/mame/drivers/ddenlovr.c +++ b/src/mame/drivers/ddenlovr.c @@ -1985,11 +1985,11 @@ WRITE8_MEMBER(dynax_state::rongrong_select_w) //logerror("%04x: rongrong_select_w %02x\n",cpu_get_pc(&space.device()),data); /* bits 0-4 = **both** ROM bank **AND** input select */ - memory_set_bank(machine(), "bank1", data & 0x1f); + subbank("bank1")->set_entry(data & 0x1f); m_dsw_sel = data; /* bits 5-7 = RAM bank */ - memory_set_bank(machine(), "bank2", ((data & 0xe0) >> 5)); + subbank("bank2")->set_entry(((data & 0xe0) >> 5)); } @@ -2083,7 +2083,7 @@ READ8_MEMBER(dynax_state::magic_r) WRITE8_MEMBER(dynax_state::mmpanic_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0x7); + subbank("bank1")->set_entry(data & 0x7); /* Bit 4? */ } @@ -2244,9 +2244,9 @@ WRITE8_MEMBER(dynax_state::funkyfig_rombank_w) m_dsw_sel = data; - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); // bit 4 selects palette ram at 8000? - memory_set_bank(machine(), "bank2", ((data & 0xe0) >> 5)); + subbank("bank2")->set_entry(((data & 0xe0) >> 5)); } READ8_MEMBER(dynax_state::funkyfig_dsw_r) @@ -2352,8 +2352,8 @@ ADDRESS_MAP_END WRITE8_MEMBER(dynax_state::hanakanz_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); - memory_set_bank(machine(), "bank2", ((data & 0xf0) >> 4)); + subbank("bank1")->set_entry(data & 0x0f); + subbank("bank2")->set_entry(((data & 0xf0) >> 4)); } static ADDRESS_MAP_START( hanakanz_map, AS_PROGRAM, 8, dynax_state ) @@ -2699,7 +2699,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(dynax_state::mjmyster_rambank_w) { - memory_set_bank(machine(), "bank2", data & 0x07); + subbank("bank2")->set_entry(data & 0x07); //logerror("%04x: rambank = %02x\n", cpu_get_pc(&space.device()), data); } @@ -2813,7 +2813,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(dynax_state::hginga_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0x7); + subbank("bank1")->set_entry(data & 0x7); m_hginga_rombank = data; } @@ -3158,8 +3158,8 @@ WRITE8_MEMBER(dynax_state::hparadis_select_w) m_dsw_sel = data; m_keyb = 0; - memory_set_bank(machine(), "bank1", data & 0x07); - memory_set_bank(machine(), "bank2", ((data & 0xe0) >> 5)); + subbank("bank1")->set_entry(data & 0x07); + subbank("bank2")->set_entry(((data & 0xe0) >> 5)); } @@ -3383,7 +3383,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(dynax_state::mjflove_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0xf); + subbank("bank1")->set_entry(data & 0xf); } static WRITE8_DEVICE_HANDLER( mjflove_okibank_w ) @@ -3556,7 +3556,7 @@ WRITE8_MEMBER(dynax_state::sryudens_coincounter_w) WRITE8_MEMBER(dynax_state::sryudens_rambank_w) { - memory_set_bank(machine(), "bank2", data & 0x0f); + subbank("bank2")->set_entry(data & 0x0f); //logerror("%04x: rambank = %02x\n", cpu_get_pc(&space.device()), data); } @@ -7614,8 +7614,8 @@ static MACHINE_RESET( ddenlovr ) static MACHINE_START( rongrong ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x20, &ROM[0x010000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 8, &ROM[0x110000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x20, &ROM[0x010000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 8, &ROM[0x110000], 0x1000); MACHINE_START_CALL(ddenlovr); } @@ -7623,7 +7623,7 @@ static MACHINE_START( rongrong ) static MACHINE_START( mmpanic ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); MACHINE_START_CALL(ddenlovr); } @@ -7631,8 +7631,8 @@ static MACHINE_START( mmpanic ) static MACHINE_START( funkyfig ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x10, &ROM[0x10000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 8, &ROM[0x90000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); MACHINE_START_CALL(ddenlovr); } @@ -7640,8 +7640,8 @@ static MACHINE_START( funkyfig ) static MACHINE_START( hanakanz ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x10, &ROM[0x10000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 0x10, &ROM[0x90000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000); MACHINE_START_CALL(ddenlovr); } @@ -7649,8 +7649,8 @@ static MACHINE_START( hanakanz ) static MACHINE_START( mjmyster ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 8, &ROM[0x90000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); MACHINE_START_CALL(ddenlovr); } @@ -7658,8 +7658,8 @@ static MACHINE_START( mjmyster ) static MACHINE_START( hparadis ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 8, &ROM[0x50000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 8, &ROM[0x50000], 0x1000); MACHINE_START_CALL(ddenlovr); } @@ -7667,8 +7667,8 @@ static MACHINE_START( hparadis ) static MACHINE_START( mjflove ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x10, &ROM[0x10000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 8, &ROM[0x90000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); MACHINE_START_CALL(ddenlovr); } @@ -7676,8 +7676,8 @@ static MACHINE_START( mjflove ) static MACHINE_START( sryudens ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x10, &ROM[0x10000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 0x10, &ROM[0x90000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000); MACHINE_START_CALL(ddenlovr); } diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c index eb1fc9e02c1..b3332a047de 100644 --- a/src/mame/drivers/ddragon.c +++ b/src/mame/drivers/ddragon.c @@ -150,7 +150,7 @@ static MACHINE_START( ddragon ) ddragon_state *state = machine.driver_data<ddragon_state>(); /* configure banks */ - memory_configure_bank(machine, "bank1", 0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_sub_cpu = machine.device("sub"); @@ -203,7 +203,7 @@ WRITE8_MEMBER(ddragon_state::ddragon_bankswitch_w) else if (m_dd_sub_cpu_busy == 0) device_set_input_line(m_sub_cpu, m_sprite_irq, (m_sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); - memory_set_bank(machine(), "bank1", (data & 0xe0) >> 5); + subbank("bank1")->set_entry((data & 0xe0) >> 5); } @@ -217,7 +217,7 @@ WRITE8_MEMBER(ddragon_state::toffy_bankswitch_w) /* bit 3 unknown */ /* I don't know ... */ - memory_set_bank(machine(), "bank1", (data & 0x20) >> 5); + subbank("bank1")->set_entry((data & 0x20) >> 5); } @@ -278,7 +278,7 @@ WRITE8_MEMBER(ddragon_state::darktowr_bankswitch_w) else if (m_dd_sub_cpu_busy == 0) device_set_input_line(m_sub_cpu, m_sprite_irq, (m_sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); - memory_set_bank(machine(), "bank1", newbank); + subbank("bank1")->set_entry(newbank); if (newbank == 4 && oldbank != 4) space.install_readwrite_handler(0x4000, 0x7fff, read8_delegate(FUNC(ddragon_state::darktowr_mcu_bank_r),this), write8_delegate(FUNC(ddragon_state::darktowr_mcu_bank_w),this)); else if (newbank != 4 && oldbank == 4) diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c index 0f674f88c42..cbc938783cf 100644 --- a/src/mame/drivers/ddribble.c +++ b/src/mame/drivers/ddribble.c @@ -35,7 +35,7 @@ static INTERRUPT_GEN( ddribble_interrupt_1 ) WRITE8_MEMBER(ddribble_state::ddribble_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } @@ -248,7 +248,7 @@ static MACHINE_START( ddribble ) { ddribble_state *state = machine.driver_data<ddribble_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 5, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 5, &ROM[0x10000], 0x2000); state->m_filter1 = machine.device("filter1"); state->m_filter2 = machine.device("filter2"); diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c index d6dcb0b2c08..f4dc7c964d5 100644 --- a/src/mame/drivers/dec8.c +++ b/src/mame/drivers/dec8.c @@ -443,7 +443,7 @@ bb63 = Square things again WRITE8_MEMBER(dec8_state::dec8_bank_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } /* Used by Ghostbusters, Meikyuu Hunter G & Gondomania */ @@ -457,7 +457,7 @@ WRITE8_MEMBER(dec8_state::ghostb_bank_w) Bits 4-7: Bank switch */ - memory_set_bank(machine(), "bank1", data >> 4); + subbank("bank1")->set_entry(data >> 4); if ((data&1)==0) device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE); if (data & 2) m_nmi_enable =1; else m_nmi_enable = 0; @@ -473,7 +473,7 @@ WRITE8_MEMBER(dec8_state::csilver_control_w) Bit 0x40 - Unused. Bit 0x80 - Hold subcpu reset line high if clear, else low? (Not needed anyway) */ - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } WRITE8_MEMBER(dec8_state::dec8_sound_w) @@ -506,7 +506,7 @@ WRITE8_MEMBER(dec8_state::csilver_adpcm_data_w) WRITE8_MEMBER(dec8_state::csilver_sound_bank_w) { - memory_set_bank(machine(), "bank3", (data & 0x08) >> 3); + subbank("bank3")->set_entry((data & 0x08) >> 3); } /******************************************************************************/ @@ -3563,28 +3563,28 @@ static DRIVER_INIT( deco222 ) static DRIVER_INIT( lastmisn ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL( dec8 ); } static DRIVER_INIT( shackled ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 14, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL( dec8 ); } static DRIVER_INIT( gondo ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 12, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL( dec8 ); } static DRIVER_INIT( garyoret ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 16, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL( dec8 ); } @@ -3596,7 +3596,7 @@ static DRIVER_INIT( ghostb ) /* Blank out unused garbage in colour prom to avoid colour overflow */ memset(RAM + 0x20, 0, 0xe0); - memory_configure_bank(machine, "bank1", 0, 16, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL(deco222); } @@ -3608,7 +3608,7 @@ static DRIVER_INIT( meikyuh ) /* Blank out unused garbage in colour prom to avoid colour overflow */ memset(RAM + 0x20, 0, 0xe0); - memory_configure_bank(machine, "bank1", 0, 12, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL( dec8 ); } @@ -3617,29 +3617,29 @@ static DRIVER_INIT( csilver ) UINT8 *ROM = machine.region("maincpu")->base(); UINT8 *RAM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 14, &ROM[0x10000], 0x4000); - memory_configure_bank(machine, "bank3", 0, 2, &RAM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank3")->configure_entries(0, 2, &RAM[0x10000], 0x4000); DRIVER_INIT_CALL( dec8 ); } static DRIVER_INIT( oscar ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL( deco222 ); } static DRIVER_INIT( srdarwin ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 6, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL( deco222 ); } static DRIVER_INIT( cobracom ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); DRIVER_INIT_CALL( dec8 ); } diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c index 1890a4d67ae..53c132277d1 100644 --- a/src/mame/drivers/decocass.c +++ b/src/mame/drivers/decocass.c @@ -1491,11 +1491,11 @@ static DRIVER_INIT( decocrom ) /* convert charram to a banked ROM */ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x6000, 0xafff, "bank1"); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x6000, 0xafff, FUNC(decocass_de0091_w)); - memory_configure_bank(machine, "bank1", 0, 1, state->m_charram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("user3")->base(), 0); - memory_configure_bank_decrypted(machine, "bank1", 0, 1, &state->m_decrypted[0x6000], 0); - memory_configure_bank_decrypted(machine, "bank1", 1, 1, state->m_decrypted2, 0); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entry(0, state->m_charram); + state->subbank("bank1")->configure_entry(1, machine.region("user3")->base()); + state->subbank("bank1")->configure_decrypted_entry(0, &state->m_decrypted[0x6000]); + state->subbank("bank1")->configure_decrypted_entry(1, state->m_decrypted2); + state->subbank("bank1")->set_entry(0); /* install the bank selector */ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xe900, 0xe900, FUNC(decocass_e900_w)); diff --git a/src/mame/drivers/deshoros.c b/src/mame/drivers/deshoros.c index f430263c0b9..0efe66d5d86 100644 --- a/src/mame/drivers/deshoros.c +++ b/src/mame/drivers/deshoros.c @@ -72,7 +72,7 @@ static void answer_bankswitch(running_machine &machine,UINT8 new_bank) state->m_bank = new_bank; bankaddress = 0 + 0x6000 * state->m_bank; - memory_set_bankptr(machine, "bank1", &ROM[bankaddress]); + state->subbank("bank1")->set_base(&ROM[bankaddress]); } } diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c index 85c6fb971a8..454781babee 100644 --- a/src/mame/drivers/discoboy.c +++ b/src/mame/drivers/discoboy.c @@ -201,7 +201,7 @@ void discoboy_setrombank( running_machine &machine, UINT8 data ) { UINT8 *ROM = machine.region("maincpu")->base(); data &= 0x2f; - memory_set_bankptr(space->machine(), "bank1", &ROM[0x6000 + (data * 0x1000)] ); + space->machine().root_device().subbank("bank1")->set_base(&ROM[0x6000 + (data * 0x1000)] ); } #endif @@ -225,7 +225,7 @@ WRITE8_MEMBER(discoboy_state::discoboy_port_01_w) // discoboy gfxbank m_gfxbank = data & 0xf0; - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); } WRITE8_MEMBER(discoboy_state::discoboy_port_03_w)// sfx? (to sound cpu) @@ -329,7 +329,7 @@ static WRITE8_DEVICE_HANDLER( yunsung8_sound_bankswitch_w ) /* Note: this is bit 5 on yunsung8.c */ msm5205_reset_w(device, (data & 0x08) >> 3); - memory_set_bank(device->machine(), "sndbank", data & 0x07); + device->machine().root_device().subbank("sndbank")->set_entry(data & 0x07); if (data != (data & (~0x0f))) logerror("%s: Bank %02X\n", device->machine().describe_context(), data); @@ -575,10 +575,10 @@ static DRIVER_INIT( discoboy ) state->save_item(NAME(state->m_ram_3)); state->save_item(NAME(state->m_ram_4)); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); - memory_set_bank(machine, "bank1", 0); - memory_configure_bank(machine, "sndbank", 0, 8, &AUDIO[0x00000], 0x4000); - memory_set_bank(machine, "sndbank", 0); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank1")->set_entry(0); + state->subbank("sndbank")->configure_entries(0, 8, &AUDIO[0x00000], 0x4000); + state->subbank("sndbank")->set_entry(0); } diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c index a6dac65cb1a..be2bdb9c4ad 100644 --- a/src/mame/drivers/djboy.c +++ b/src/mame/drivers/djboy.c @@ -179,8 +179,8 @@ WRITE8_MEMBER(djboy_state::cpu0_bankswitch_w) { data ^= m_bankxor; - memory_set_bank(machine(), "bank1", data); - memory_set_bank(machine(), "bank4", 0); /* unsure if/how this area is banked */ + subbank("bank1")->set_entry(data); + subbank("bank4")->set_entry(0); /* unsure if/how this area is banked */ } /******************************************************************************/ @@ -202,7 +202,7 @@ WRITE8_MEMBER(djboy_state::cpu1_bankswitch_w) case 0x01: case 0x02: case 0x03: - memory_set_bank(machine(), "bank2", (data & 0xf)); + subbank("bank2")->set_entry((data & 0xf)); break; /* bs101.6w */ @@ -214,7 +214,7 @@ WRITE8_MEMBER(djboy_state::cpu1_bankswitch_w) case 0x0d: case 0x0e: case 0x0f: - memory_set_bank(machine(), "bank2", (data & 0xf) - 4); + subbank("bank2")->set_entry((data & 0xf) - 4); break; default: @@ -238,7 +238,7 @@ WRITE8_MEMBER(djboy_state::trigger_nmi_on_sound_cpu2) WRITE8_MEMBER(djboy_state::cpu2_bankswitch_w) { - memory_set_bank(machine(), "bank3", data); // shall we check data<0x07? + subbank("bank3")->set_entry(data); // shall we check data<0x07? } /******************************************************************************/ @@ -526,13 +526,13 @@ static MACHINE_START( djboy ) UINT8 *CPU1 = machine.region("cpu1")->base(); UINT8 *CPU2 = machine.region("cpu2")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &MAIN[0x00000], 0x2000); - memory_configure_bank(machine, "bank1", 4, 28, &MAIN[0x10000], 0x2000); - memory_configure_bank(machine, "bank2", 0, 2, &CPU1[0x00000], 0x4000); - memory_configure_bank(machine, "bank2", 2, 10, &CPU1[0x10000], 0x4000); - memory_configure_bank(machine, "bank3", 0, 3, &CPU2[0x00000], 0x4000); - memory_configure_bank(machine, "bank3", 3, 5, &CPU2[0x10000], 0x4000); - memory_configure_bank(machine, "bank4", 0, 1, &MAIN[0x10000], 0x3000); /* unsure if/how this area is banked */ + state->subbank("bank1")->configure_entries(0, 4, &MAIN[0x00000], 0x2000); + state->subbank("bank1")->configure_entries(4, 28, &MAIN[0x10000], 0x2000); + state->subbank("bank2")->configure_entries(0, 2, &CPU1[0x00000], 0x4000); + state->subbank("bank2")->configure_entries(2, 10, &CPU1[0x10000], 0x4000); + state->subbank("bank3")->configure_entries(0, 3, &CPU2[0x00000], 0x4000); + state->subbank("bank3")->configure_entries(3, 5, &CPU2[0x10000], 0x4000); + state->subbank("bank4")->configure_entry(0, &MAIN[0x10000]); /* unsure if/how this area is banked */ state->m_maincpu = machine.device("maincpu"); state->m_cpu1 = machine.device("cpu1"); diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index a6e665c745b..efd44bde451 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -492,9 +492,9 @@ static MACHINE_RESET( strtheat ) MACHINE_RESET_CALL(dkong); /* The initial state of the counter is 0x08 */ - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); state->m_decrypt_counter = 0x08; - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->set_entry(0); } static MACHINE_RESET( drakton ) @@ -505,9 +505,9 @@ static MACHINE_RESET( drakton ) MACHINE_RESET_CALL(dkong); /* The initial state of the counter is 0x09 */ - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); state->m_decrypt_counter = 0x09; - memory_set_bank(machine, "bank1", 1); + state->subbank("bank1")->set_entry(1); } @@ -627,10 +627,10 @@ READ8_MEMBER(dkong_state::epos_decrypt_rom) switch(m_decrypt_counter) { - case 0x08: memory_set_bank(machine(), "bank1", 0); break; - case 0x09: memory_set_bank(machine(), "bank1", 1); break; - case 0x0A: memory_set_bank(machine(), "bank1", 2); break; - case 0x0B: memory_set_bank(machine(), "bank1", 3); break; + case 0x08: subbank("bank1")->set_entry(0); break; + case 0x09: subbank("bank1")->set_entry(1); break; + case 0x0A: subbank("bank1")->set_entry(2); break; + case 0x0B: subbank("bank1")->set_entry(3); break; default: logerror("Invalid counter = %02X\n",m_decrypt_counter); break; @@ -1618,8 +1618,8 @@ static READ8_DEVICE_HANDLER( braze_eeprom_r ) WRITE8_MEMBER(dkong_state::braze_a15_w) { - memory_set_bank(machine(), "bank1", data & 0x01); - memory_set_bank(machine(), "bank2", data & 0x01); + subbank("bank1")->set_entry(data & 0x01); + subbank("bank2")->set_entry(data & 0x01); } static WRITE8_DEVICE_HANDLER( braze_eeprom_w ) @@ -3174,10 +3174,10 @@ static DRIVER_INIT( dkongx ) braze_decrypt_rom(machine, decrypted); - memory_configure_bank(machine,"bank1", 0, 2, &decrypted[0], 0x8000); - memory_set_bank(machine,"bank1", 0); - memory_configure_bank(machine,"bank2", 0, 2, &decrypted[0], 0x8000); - memory_set_bank(machine,"bank2", 0); + state->subbank("bank1")->configure_entries(0, 2, &decrypted[0], 0x8000); + state->subbank("bank1")->set_entry(0); + state->subbank("bank2")->configure_entries(0, 2, &decrypted[0], 0x8000); + state->subbank("bank2")->set_entry(0); } static DRIVER_INIT( dkingjr ) diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c index cc3836c0336..b4430b086cf 100644 --- a/src/mame/drivers/dooyong.c +++ b/src/mame/drivers/dooyong.c @@ -86,14 +86,14 @@ be verified on real PCB. WRITE8_MEMBER(dooyong_state::lastday_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); if (data & 0xf8) popmessage("bankswitch %02x",data); } static MACHINE_START( lastday ) { - memory_configure_bank(machine, "bank1", 0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000); } WRITE8_MEMBER(dooyong_state::flip_screen_w) diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c index f5e0fce2a30..44f6a87d4c0 100644 --- a/src/mame/drivers/drw80pkr.c +++ b/src/mame/drivers/drw80pkr.c @@ -116,7 +116,7 @@ WRITE8_MEMBER(drw80pkr_state::prog_w) { m_active_bank = m_active_bank ^ 0x01; - memory_set_bank(machine(), "bank1", m_active_bank); + subbank("bank1")->set_entry(m_active_bank); } } @@ -405,7 +405,7 @@ GFXDECODE_END static DRIVER_INIT( drw80pkr ) { - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base(), 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base(), 0x1000); } diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c index 1f6a0cdca27..464a215a79c 100644 --- a/src/mame/drivers/dunhuang.c +++ b/src/mame/drivers/dunhuang.c @@ -466,7 +466,7 @@ WRITE8_MEMBER(dunhuang_state::dunhuang_rombank_w) // ? data & 0x01 // ? data & 0x02 - memory_set_bank(machine(), "bank1", ((data >> 2) & 0x7)); + subbank("bank1")->set_entry(((data >> 2) & 0x7)); // COIN OUT: data & 0x20 coin_counter_w(machine(), 0, data & 0x40); @@ -768,7 +768,7 @@ static MACHINE_START( dunhuang ) dunhuang_state *state = machine.driver_data<dunhuang_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x8000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); state->save_item(NAME(state->m_written)); state->save_item(NAME(state->m_written2)); diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c index 9deefb1ec40..a5514410a52 100644 --- a/src/mame/drivers/dynax.c +++ b/src/mame/drivers/dynax.c @@ -266,12 +266,12 @@ WRITE8_MEMBER(dynax_state::hanamai_keyboard_w) WRITE8_MEMBER(dynax_state::dynax_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } WRITE8_MEMBER(dynax_state::jantouki_sound_rombank_w) { - memory_set_bank(machine(), "bank2", data); + subbank("bank2")->set_entry(data); } @@ -281,7 +281,7 @@ WRITE8_MEMBER(dynax_state::hnoridur_rombank_w) //logerror("%04x: rom bank = %02x\n", cpu_get_pc(&space.device()), data); if (data < bank_n) - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); else logerror("rom_bank = %02x (larger than the maximum bank %02x)\n", data, bank_n); m_hnoridur_bank = data; @@ -753,7 +753,7 @@ WRITE8_MEMBER(dynax_state::yarunara_rombank_w) //logerror("%04x: rom bank = %02x\n", cpu_get_pc(&space.device()), data); if (data < bank_n) - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); else logerror("rom_bank = %02x (larger than the maximum bank %02x)\n",data, bank_n); m_hnoridur_bank = data; @@ -969,7 +969,7 @@ READ8_MEMBER(dynax_state::jantouki_blitter_busy_r) WRITE8_MEMBER(dynax_state::jantouki_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); set_led_status(machine(), 0, data & 0x10); // maybe } @@ -1190,7 +1190,7 @@ READ8_MEMBER(dynax_state::htengoku_coin_r) WRITE8_MEMBER(dynax_state::htengoku_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); m_hnoridur_bank = data; } @@ -4240,7 +4240,7 @@ static MACHINE_RESET( dynax ) static MACHINE_START( hanamai ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x10, &ROM[0x8000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x10, &ROM[0x8000], 0x8000); MACHINE_START_CALL(dynax); } @@ -4250,7 +4250,7 @@ static MACHINE_START( hnoridur ) UINT8 *ROM = machine.region("maincpu")->base(); int bank_n = (machine.region("maincpu")->bytes() - 0x10000) / 0x8000; - memory_configure_bank(machine, "bank1", 0, bank_n, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, bank_n, &ROM[0x10000], 0x8000); MACHINE_START_CALL(dynax); } @@ -4259,7 +4259,7 @@ static MACHINE_START( htengoku ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); MACHINE_START_CALL(dynax); } @@ -4633,8 +4633,8 @@ static MACHINE_START( jantouki ) UINT8 *MAIN = machine.region("maincpu")->base(); UINT8 *SOUND = machine.region("soundcpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x10, &MAIN[0x8000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 12, &SOUND[0x8000], 0x8000); + state->subbank("bank1")->configure_entries(0, 0x10, &MAIN[0x8000], 0x8000); + state->subbank("bank2")->configure_entries(0, 12, &SOUND[0x8000], 0x8000); state->m_top_scr = machine.device("top"); state->m_bot_scr = machine.device("bottom"); diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c index e8bd3e2d798..1a4856b7cf2 100644 --- a/src/mame/drivers/epos.c +++ b/src/mame/drivers/epos.c @@ -44,7 +44,7 @@ WRITE8_MEMBER(epos_state::dealer_decrypt_rom) // logerror("PC %08x: ctr=%04x\n",cpu_get_pc(&space.device()), m_counter); - memory_set_bank(machine(), "bank1", m_counter); + subbank("bank1")->set_entry(m_counter); // is the 2nd bank changed by the counter or it always uses the 1st key? } @@ -101,7 +101,7 @@ ADDRESS_MAP_END */ static WRITE8_DEVICE_HANDLER( write_prtc ) { - memory_set_bank(device->machine(), "bank2", data & 0x01); + device->machine().root_device().subbank("bank2")->set_entry(data & 0x01); } static const ppi8255_interface ppi8255_intf = @@ -382,11 +382,11 @@ static MACHINE_RESET( epos ) static MACHINE_START( dealer ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x0000], 0x10000); - memory_configure_bank(machine, "bank2", 0, 2, &ROM[0x6000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &ROM[0x0000], 0x10000); + machine.root_device().subbank("bank2")->configure_entries(0, 2, &ROM[0x6000], 0x1000); - memory_set_bank(machine, "bank1", 0); - memory_set_bank(machine, "bank2", 0); + machine.root_device().subbank("bank1")->set_entry(0); + machine.root_device().subbank("bank2")->set_entry(0); MACHINE_START_CALL(epos); } diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c index ab6b5b0a006..1ba593f7eb8 100644 --- a/src/mame/drivers/esd16.c +++ b/src/mame/drivers/esd16.c @@ -226,7 +226,7 @@ WRITE8_MEMBER(esd16_state::esd16_sound_rombank_w) int bank = data & 0xf; if (data != bank) logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n", cpu_get_pc(&space.device()), data); if (bank >= 3) bank += 1; - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); } static ADDRESS_MAP_START( multchmp_sound_map, AS_PROGRAM, 8, esd16_state ) @@ -520,7 +520,7 @@ static MACHINE_START( esd16 ) esd16_state *state = machine.driver_data<esd16_state>(); UINT8 *AUDIO = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 17, &AUDIO[0x0000], 0x4000); + state->subbank("bank1")->configure_entries(0, 17, &AUDIO[0x0000], 0x4000); state->m_audio_cpu = machine.device("audiocpu"); state->m_eeprom = machine.device<eeprom_device>("eeprom"); diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c index 343e327fda9..40346e8be4d 100644 --- a/src/mame/drivers/esripsys.c +++ b/src/mame/drivers/esripsys.c @@ -109,7 +109,7 @@ WRITE8_MEMBER(esripsys_state::g_status_w) m_g_status = data; bankaddress = 0x10000 + (data & 0x03) * 0x10000; - memory_set_bankptr(machine(), "bank1", &rom[bankaddress]); + subbank("bank1")->set_base(&rom[bankaddress]); cputag_set_input_line(machine(), "frame_cpu", M6809_FIRQ_LINE, data & 0x10 ? CLEAR_LINE : ASSERT_LINE); cputag_set_input_line(machine(), "frame_cpu", INPUT_LINE_NMI, data & 0x80 ? CLEAR_LINE : ASSERT_LINE); @@ -506,9 +506,9 @@ WRITE8_MEMBER(esripsys_state::s_200f_w) m_u56b = 1; /* Speech data resides in the upper 8kB of the ROMs */ - memory_set_bankptr(machine(), "bank2", &rom[0x0000 + rombank]); - memory_set_bankptr(machine(), "bank3", &rom[0x4000 + rombank]); - memory_set_bankptr(machine(), "bank4", &rom[0x8000 + rombank]); + subbank("bank2")->set_base(&rom[0x0000 + rombank]); + subbank("bank3")->set_base(&rom[0x4000 + rombank]); + subbank("bank4")->set_base(&rom[0x8000 + rombank]); m_s_to_g_latch2 = data; } @@ -653,9 +653,9 @@ static DRIVER_INIT( esripsys ) machine.device<nvram_device>("nvram")->set_base(state->m_cmos_ram, CMOS_RAM_SIZE); - memory_set_bankptr(machine, "bank2", &rom[0x0000]); - memory_set_bankptr(machine, "bank3", &rom[0x4000]); - memory_set_bankptr(machine, "bank4", &rom[0x8000]); + state->subbank("bank2")->set_base(&rom[0x0000]); + state->subbank("bank3")->set_base(&rom[0x4000]); + state->subbank("bank4")->set_base(&rom[0x8000]); /* Register stuff for state saving */ state_save_register_global_pointer(machine, state->m_fdt_a, FDT_RAM_SIZE); diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c index f5d6e35c89b..93288e9ecbe 100644 --- a/src/mame/drivers/exidy.c +++ b/src/mame/drivers/exidy.c @@ -187,7 +187,7 @@ WRITE8_MEMBER(exidy_state::fax_bank_select_w) { UINT8 *RAM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1", &RAM[0x10000 + (0x2000 * (data & 0x1f))]); + subbank("bank1")->set_base(&RAM[0x10000 + (0x2000 * (data & 0x1f))]); if ((data & 0x1f) > 0x17) logerror("Banking to unpopulated ROM bank %02X!\n",data & 0x1f); } @@ -1470,7 +1470,7 @@ static DRIVER_INIT( phantoma ) /* the ROM is actually mapped high */ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0xf800, 0xffff, "bank1"); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0xf800); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0xf800); } diff --git a/src/mame/drivers/exidy440.c b/src/mame/drivers/exidy440.c index cd9617407f5..1339511df89 100644 --- a/src/mame/drivers/exidy440.c +++ b/src/mame/drivers/exidy440.c @@ -308,7 +308,7 @@ void exidy440_bank_select(running_machine &machine, UINT8 bank) /* select the bank and update the bank pointer */ state->m_bank = bank; - memory_set_bankptr(machine, "bank1", &machine.region("maincpu")->base()[0x10000 + state->m_bank * 0x4000]); + state->subbank("bank1")->set_base(&machine.region("maincpu")->base()[0x10000 + state->m_bank * 0x4000]); } diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c index 8095c894e22..a1212c252dd 100644 --- a/src/mame/drivers/exzisus.c +++ b/src/mame/drivers/exzisus.c @@ -55,7 +55,7 @@ WRITE8_MEMBER(exzisus_state::exzisus_cpua_bankswitch_w) m_cpua_bank = data & 0x0f; if (m_cpua_bank >= 2) { - memory_set_bankptr(machine(), "bank2", &RAM[ 0x10000 + ( (m_cpua_bank - 2) * 0x4000 ) ] ); + subbank("bank2")->set_base(&RAM[ 0x10000 + ( (m_cpua_bank - 2) * 0x4000 ) ] ); } } @@ -71,7 +71,7 @@ WRITE8_MEMBER(exzisus_state::exzisus_cpub_bankswitch_w) m_cpub_bank = data & 0x0f; if (m_cpub_bank >= 2) { - memory_set_bankptr(machine(), "bank1", &RAM[ 0x10000 + ( (m_cpub_bank - 2) * 0x4000 ) ] ); + subbank("bank1")->set_base(&RAM[ 0x10000 + ( (m_cpub_bank - 2) * 0x4000 ) ] ); } } diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c index 7d27d3695c9..d7a10651681 100644 --- a/src/mame/drivers/f1gp.c +++ b/src/mame/drivers/f1gp.c @@ -61,7 +61,7 @@ READ16_MEMBER(f1gp_state::extrarom2_r) WRITE8_MEMBER(f1gp_state::f1gp_sh_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x01); + subbank("bank1")->set_entry(data & 0x01); } @@ -429,7 +429,7 @@ static MACHINE_START( f1gp ) f1gp_state *state = machine.driver_data<f1gp_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x8000); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x8000); state->m_audiocpu = machine.device("audiocpu"); state->m_k053936 = machine.device("k053936"); diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c index 607fc52526b..cb04dc396de 100644 --- a/src/mame/drivers/famibox.c +++ b/src/mame/drivers/famibox.c @@ -257,9 +257,9 @@ static void famicombox_bankswitch(running_machine &machine, UINT8 bank) if ( bank == famicombox_banks[i].bank || famicombox_banks[i].bank == 0 ) { - memory_set_bankptr(machine, "cpubank1", machine.region(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].bank1_offset); - memory_set_bankptr(machine, "cpubank2", machine.region(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].bank2_offset); - memory_set_bankptr(machine, "ppubank1", machine.region(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].ppubank_offset); + machine.root_device().subbank("cpubank1")->set_base(machine.region(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].bank1_offset); + machine.root_device().subbank("cpubank2")->set_base(machine.region(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].bank2_offset); + machine.root_device().subbank("ppubank1")->set_base(machine.region(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].ppubank_offset); break; } } diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c index 3ba9cf69284..1ebb02fadf0 100644 --- a/src/mame/drivers/fastlane.c +++ b/src/mame/drivers/fastlane.c @@ -45,7 +45,7 @@ WRITE8_MEMBER(fastlane_state::fastlane_bankswitch_w) coin_counter_w(machine(), 1,data & 0x02); /* bits 2 & 3 = bank number */ - memory_set_bank(machine(), "bank1", (data & 0x0c) >> 2); + subbank("bank1")->set_entry((data & 0x0c) >> 2); /* bit 4: bank # for the 007232 (chip 2) */ k007232_set_bank(m_konami2, 0 + ((data & 0x10) >> 4), 2 + ((data & 0x10) >> 4)); @@ -196,7 +196,7 @@ static MACHINE_START( fastlane ) fastlane_state *state = machine.driver_data<fastlane_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); state->m_konami2 = machine.device("konami2"); state->m_k007121 = machine.device("k007121"); diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c index 40a3b51b023..b6cf11124fb 100644 --- a/src/mame/drivers/fcrash.c +++ b/src/mame/drivers/fcrash.c @@ -58,7 +58,7 @@ static WRITE8_HANDLER( fcrash_snd_bankswitch_w ) state->m_msm_1->set_output_gain(0, (data & 0x08) ? 0.0 : 1.0); state->m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0); - memory_set_bank(space->machine(), "bank1", data & 0x07); + state->subbank("bank1")->set_entry(data & 0x07); } static void m5205_int1( device_t *device ) @@ -695,7 +695,7 @@ static MACHINE_START( fcrash ) cps_state *state = machine.driver_data<cps_state>(); UINT8 *ROM = machine.region("soundcpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("soundcpu"); diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c index e0ba27e495c..08c50d7017e 100644 --- a/src/mame/drivers/firefox.c +++ b/src/mame/drivers/firefox.c @@ -433,7 +433,7 @@ WRITE8_MEMBER(firefox_state::novram_store_w) WRITE8_MEMBER(firefox_state::rom_bank_w) { - memory_set_bank(machine(), "bank1", data & 0x1f); + subbank("bank1")->set_entry(data & 0x1f); } WRITE8_MEMBER(firefox_state::main_irq_clear_w) @@ -481,7 +481,7 @@ static void firq_gen(running_machine &machine, phillips_22vp931_device &laserdis static MACHINE_START( firefox ) { firefox_state *state = machine.driver_data<firefox_state>(); - memory_configure_bank(machine, "bank1", 0, 32, machine.region("maincpu")->base() + 0x10000, 0x1000); + state->subbank("bank1")->configure_entries(0, 32, machine.region("maincpu")->base() + 0x10000, 0x1000); state->m_nvram_1c = machine.device<x2212_device>("nvram_1c"); state->m_nvram_1d = machine.device<x2212_device>("nvram_1d"); diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c index a9c1b92744c..ce40f1e9ca3 100644 --- a/src/mame/drivers/firetrap.c +++ b/src/mame/drivers/firetrap.c @@ -183,7 +183,7 @@ WRITE8_MEMBER(firetrap_state::firetrap_nmi_disable_w) WRITE8_MEMBER(firetrap_state::firetrap_bankselect_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } READ8_MEMBER(firetrap_state::firetrap_8751_bootleg_r) @@ -315,7 +315,7 @@ WRITE8_MEMBER(firetrap_state::firetrap_sound_2400_w) WRITE8_MEMBER(firetrap_state::firetrap_sound_bankselect_w) { - memory_set_bank(machine(), "bank2", data & 0x01); + subbank("bank2")->set_entry(data & 0x01); } static void firetrap_adpcm_int( device_t *device ) @@ -600,8 +600,8 @@ static MACHINE_START( firetrap ) state->m_audiocpu = machine.device("audiocpu"); state->m_msm = machine.device("msm"); - memory_configure_bank(machine, "bank1", 0, 4, &MAIN[0x10000], 0x4000); - memory_configure_bank(machine, "bank2", 0, 2, &SOUND[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &MAIN[0x10000], 0x4000); + state->subbank("bank2")->configure_entries(0, 2, &SOUND[0x10000], 0x4000); state->save_item(NAME(state->m_i8751_current_command)); state->save_item(NAME(state->m_sound_irq_enable)); diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c index cb8629d6c72..e19ddc3f63c 100644 --- a/src/mame/drivers/flkatck.c +++ b/src/mame/drivers/flkatck.c @@ -36,7 +36,7 @@ WRITE8_MEMBER(flkatck_state::flkatck_bankswitch_w) /* bits 0-1: bank # */ if ((data & 0x03) != 0x03) /* for safety */ - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } READ8_MEMBER(flkatck_state::flkatck_ls138_r) @@ -197,7 +197,7 @@ static MACHINE_START( flkatck ) flkatck_state *state = machine.driver_data<flkatck_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 3, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x2000); state->m_audiocpu = machine.device("audiocpu"); state->m_k007121 = machine.device("k007121"); diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c index 2f24c9bce33..5428ca81a9d 100644 --- a/src/mame/drivers/freekick.c +++ b/src/mame/drivers/freekick.c @@ -68,7 +68,7 @@ READ8_MEMBER(freekick_state::spinner_r) WRITE8_MEMBER(freekick_state::pbillrd_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 1); + subbank("bank1")->set_entry(data & 1); } WRITE8_MEMBER(freekick_state::nmi_enable_w) @@ -599,7 +599,7 @@ static MACHINE_RESET( freekick ) static MACHINE_START( pbillrd ) { - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); MACHINE_START_CALL(freekick); } diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c index 82a1f5e721b..e9bea903717 100644 --- a/src/mame/drivers/fromanc2.c +++ b/src/mame/drivers/fromanc2.c @@ -159,10 +159,10 @@ READ8_MEMBER(fromanc2_state::fromanc2_sndcpu_nmi_clr) WRITE8_MEMBER(fromanc2_state::fromanc2_subcpu_rombank_w) { // Change ROM BANK - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); // Change RAM BANK - memory_set_bank(machine(), "bank2", (data & 0x0c) >> 2); + subbank("bank2")->set_entry((data & 0x0c) >> 2); } @@ -524,9 +524,9 @@ static MACHINE_START( fromanc2 ) { fromanc2_state *state = machine.driver_data<fromanc2_state>(); - memory_configure_bank(machine, "bank1", 0, 4, machine.region("sub")->base(), 0x4000); - memory_configure_bank(machine, "bank2", 0, 1, machine.region("sub")->base() + 0x08000, 0x4000); - memory_configure_bank(machine, "bank2", 1, 3, machine.region("sub")->base() + 0x14000, 0x4000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("sub")->base(), 0x4000); + state->subbank("bank2")->configure_entry(0, machine.region("sub")->base() + 0x08000); + state->subbank("bank2")->configure_entries(1, 3, machine.region("sub")->base() + 0x14000, 0x4000); MACHINE_START_CALL(fromanc4); diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c index 8c80175280f..fd291228551 100644 --- a/src/mame/drivers/fromance.c +++ b/src/mame/drivers/fromance.c @@ -112,7 +112,7 @@ WRITE8_MEMBER(fromance_state::fromance_busycheck_sub_w) WRITE8_MEMBER(fromance_state::fromance_rombank_w) { - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); } @@ -956,7 +956,7 @@ static MACHINE_START( fromance ) fromance_state *state = machine.driver_data<fromance_state>(); UINT8 *ROM = machine.region("sub")->base(); - memory_configure_bank(machine, "bank1", 0, 0x100, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 0x100, &ROM[0x10000], 0x4000); state->m_subcpu = machine.device("sub"); diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c index 9307b553c58..2099964c83e 100644 --- a/src/mame/drivers/funkball.c +++ b/src/mame/drivers/funkball.c @@ -534,9 +534,9 @@ WRITE32_MEMBER(funkball_state::biu_ctrl_w) for(i=0;i<8;i++) { if (data & 0x1 << i*4) // enable RAM access to region 0xe0000 - 0xfffff - memory_set_bankptr(machine(), banknames[i], m_bios_ram + (0x4000 * i)); + subbank(banknames[i])->set_base(m_bios_ram + (0x4000 * i)); else // disable RAM access (reads go to BIOS ROM) - memory_set_bankptr(machine(), banknames[i], machine().region("bios")->base() + (0x4000 * i)); + subbank(banknames[i])->set_base(machine().region("bios")->base() + (0x4000 * i)); } } } @@ -1118,14 +1118,14 @@ static MACHINE_START( funkball ) static MACHINE_RESET( funkball ) { funkball_state *state = machine.driver_data<funkball_state>(); - memory_set_bankptr(machine, "bios_ext1", machine.region("bios")->base() + 0x00000); - memory_set_bankptr(machine, "bios_ext2", machine.region("bios")->base() + 0x04000); - memory_set_bankptr(machine, "bios_ext3", machine.region("bios")->base() + 0x08000); - memory_set_bankptr(machine, "bios_ext4", machine.region("bios")->base() + 0x0c000); - memory_set_bankptr(machine, "bios_bank1", machine.region("bios")->base() + 0x10000); - memory_set_bankptr(machine, "bios_bank2", machine.region("bios")->base() + 0x14000); - memory_set_bankptr(machine, "bios_bank3", machine.region("bios")->base() + 0x18000); - memory_set_bankptr(machine, "bios_bank4", machine.region("bios")->base() + 0x1c000); + state->subbank("bios_ext1")->set_base(machine.region("bios")->base() + 0x00000); + state->subbank("bios_ext2")->set_base(machine.region("bios")->base() + 0x04000); + state->subbank("bios_ext3")->set_base(machine.region("bios")->base() + 0x08000); + state->subbank("bios_ext4")->set_base(machine.region("bios")->base() + 0x0c000); + state->subbank("bios_bank1")->set_base(machine.region("bios")->base() + 0x10000); + state->subbank("bios_bank2")->set_base(machine.region("bios")->base() + 0x14000); + state->subbank("bios_bank3")->set_base(machine.region("bios")->base() + 0x18000); + state->subbank("bios_bank4")->set_base(machine.region("bios")->base() + 0x1c000); state->m_voodoo_pci_regs.base_addr = 0xff000000; } diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c index ac05018530e..ccf82ae78fa 100644 --- a/src/mame/drivers/funybubl.c +++ b/src/mame/drivers/funybubl.c @@ -56,12 +56,12 @@ Note: SW2, SW3 & SW4 not populated WRITE8_MEMBER(funybubl_state::funybubl_vidram_bank_w) { - memory_set_bank(machine(), "bank1", data & 1); + subbank("bank1")->set_entry(data & 1); } WRITE8_MEMBER(funybubl_state::funybubl_cpurombank_w) { - memory_set_bank(machine(), "bank2", data & 0x3f); // should we add a check that (data&0x3f) < #banks? + subbank("bank2")->set_entry(data & 0x3f); // should we add a check that (data&0x3f) < #banks? } @@ -208,10 +208,10 @@ static MACHINE_START( funybubl ) state->save_item(NAME(state->m_banked_vram)); - memory_configure_bank(machine, "bank1", 0, 2, &state->m_banked_vram[0x0000], 0x1000); - memory_configure_bank(machine, "bank2", 0, 0x10, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 2, &state->m_banked_vram[0x0000], 0x1000); + state->subbank("bank2")->configure_entries(0, 0x10, &ROM[0x10000], 0x4000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->set_entry(0); } diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c index 18fa9879035..af6bc648f00 100644 --- a/src/mame/drivers/fuukifg2.c +++ b/src/mame/drivers/fuukifg2.c @@ -115,7 +115,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(fuuki16_state::fuuki16_sound_rombank_w) { if (data <= 2) - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); else logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n", cpu_get_pc(&space.device()), data); } @@ -443,7 +443,7 @@ static MACHINE_START( fuuki16 ) fuuki16_state *state = machine.driver_data<fuuki16_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 3, &ROM[0x10000], 0x8000); + state->subbank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x8000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c index bc391b4ba5d..bac22b19d4f 100644 --- a/src/mame/drivers/fuukifg3.c +++ b/src/mame/drivers/fuukifg3.c @@ -267,7 +267,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(fuuki32_state::fuuki32_sound_bw_w) { - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); } READ8_MEMBER(fuuki32_state::snd_z80_r) @@ -552,7 +552,7 @@ static MACHINE_START( fuuki32 ) fuuki32_state *state = machine.driver_data<fuuki32_state>(); UINT8 *ROM = machine.region("soundcpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x10, &ROM[0x10000], 0x8000); + state->subbank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("soundcpu"); diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index 360cb68395f..5dad81681c6 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -216,8 +216,8 @@ static MACHINE_RESET( common ) /* allocate a timer for feeding the autobuffer */ state->m_adsp_autobuffer_timer = machine.device<timer_device>("adsp_timer"); - memory_configure_bank(machine, "bank1", 0, 256, machine.region("user1")->base(), 0x4000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 256, machine.region("user1")->base(), 0x4000); + state->subbank("bank1")->set_entry(0); /* keep the TMS32031 halted until the code is ready to go */ cputag_set_input_line(machine, "tms", INPUT_LINE_RESET, ASSERT_LINE); @@ -613,7 +613,7 @@ WRITE16_MEMBER(gaelco3d_state::adsp_rombank_w) { if (LOG) logerror("adsp_rombank_w(%d) = %04X\n", offset, data); - memory_set_bank(machine(), "bank1", (offset & 1) * 0x80 + (data & 0x7f)); + subbank("bank1")->set_entry((offset & 1) * 0x80 + (data & 0x7f)); } diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index 0bf27fbd213..0cd37888cc8 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -1087,7 +1087,7 @@ INPUT_CHANGED_MEMBER(galaxian_state::gmgalax_game_changed) m_gmgalax_selected_game = newval; /* select the bank and graphics bank based on it */ - memory_set_bank(machine(), "bank1", m_gmgalax_selected_game); + subbank("bank1")->set_entry(m_gmgalax_selected_game); galaxian_gfxbank_w(*space, 0, m_gmgalax_selected_game); /* reset the stars */ @@ -1116,8 +1116,8 @@ CUSTOM_INPUT_MEMBER(galaxian_state::gmgalax_port_r) WRITE8_MEMBER(galaxian_state::zigzag_bankswap_w) { - memory_set_bank(machine(), "bank1", data & 1); - memory_set_bank(machine(), "bank2", ~data & 1); + subbank("bank1")->set_entry(data & 1); + subbank("bank2")->set_entry(~data & 1); } @@ -2810,7 +2810,7 @@ static DRIVER_INIT( gmgalax ) /* ROM is banked */ space->install_read_bank(0x0000, 0x3fff, "bank1"); - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); /* callback when the game select is toggled */ state->gmgalax_game_changed(*machine.m_portlist.first()->fieldlist().first(), NULL, 0, 0); @@ -3026,13 +3026,13 @@ static DRIVER_INIT( zigzag ) /* make ROMs 2 & 3 swappable */ space->install_read_bank(0x2000, 0x2fff, "bank1"); space->install_read_bank(0x3000, 0x3fff, "bank2"); - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x2000, 0x1000); - memory_configure_bank(machine, "bank2", 0, 2, machine.region("maincpu")->base() + 0x2000, 0x1000); + state->subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x2000, 0x1000); + state->subbank("bank2")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x2000, 0x1000); /* also re-install the fixed ROM area as a bank in order to inform the memory system that the fixed area only extends to 0x1fff */ space->install_read_bank(0x0000, 0x1fff, "bank3"); - memory_set_bankptr(machine, "bank3", machine.region("maincpu")->base() + 0x0000); + state->subbank("bank3")->set_base(machine.region("maincpu")->base() + 0x0000); /* handler for doing the swaps */ space->install_write_handler(0x7002, 0x7002, 0, 0x07f8, write8_delegate(FUNC(galaxian_state::zigzag_bankswap_w),state)); @@ -3396,7 +3396,7 @@ static DRIVER_INIT( sfx ) /* sound board has space for extra ROM */ machine.device("audiocpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x3fff, "bank1"); - memory_set_bankptr(machine, "bank1", machine.region("audiocpu")->base()); + state->subbank("bank1")->set_base(machine.region("audiocpu")->base()); } @@ -3502,7 +3502,7 @@ static DRIVER_INIT( scorpion ) /* extra ROM */ space->install_read_bank(0x5800, 0x67ff, "bank1"); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x5800); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x5800); /* no background related */ // space->nop_write(0x6803, 0x6803); diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c index 22f039785bd..c318123eae8 100644 --- a/src/mame/drivers/galivan.c +++ b/src/mame/drivers/galivan.c @@ -381,8 +381,8 @@ static MACHINE_START( galivan ) /* configure ROM banking */ UINT8 *rombase = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &rombase[0x10000], 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 2, &rombase[0x10000], 0x2000); + state->subbank("bank1")->set_entry(0); /* register for saving */ state->save_item(NAME(state->m_scrollx)); @@ -398,8 +398,8 @@ static MACHINE_START( ninjemak ) /* configure ROM banking */ UINT8 *rombase = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &rombase[0x10000], 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x2000); + state->subbank("bank1")->set_entry(0); /* register for saving */ state->save_item(NAME(state->m_scrollx)); @@ -1034,9 +1034,9 @@ ROM_END WRITE8_MEMBER(galivan_state::youmab_extra_bank_w) { if (data == 0xff) - memory_set_bank(machine(), "bank2", 1); + subbank("bank2")->set_entry(1); else if (data == 0x00) - memory_set_bank(machine(), "bank2", 0); + subbank("bank2")->set_entry(0); else printf("data %03x\n", data); } @@ -1085,11 +1085,11 @@ static DRIVER_INIT( youmab ) galivan_state *state = machine.driver_data<galivan_state>(); machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x82, 0x82, write8_delegate(FUNC(galivan_state::youmab_extra_bank_w),state)); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x7fff, "bank3"); - memory_set_bankptr(machine, "bank3", machine.region("maincpu")->base()); + state->subbank("bank3")->set_base(machine.region("maincpu")->base()); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x8000, 0xbfff, "bank2"); - memory_configure_bank(machine, "bank2", 0, 2, machine.region("user2")->base(), 0x4000); - memory_set_bank(machine, "bank2", 0); + state->subbank("bank2")->configure_entries(0, 2, machine.region("user2")->base(), 0x4000); + state->subbank("bank2")->set_entry(0); machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x81, 0x81, write8_delegate(FUNC(galivan_state::youmab_81_w),state)); // ?? often, alternating values machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x84, 0x84, write8_delegate(FUNC(galivan_state::youmab_84_w),state)); // ?? often, sequence.. diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c index 13d266b157d..2de65daeef9 100644 --- a/src/mame/drivers/gamecstl.c +++ b/src/mame/drivers/gamecstl.c @@ -216,11 +216,11 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i { if (data & 0x10) // enable RAM access to region 0xf0000 - 0xfffff { - memory_set_bankptr(busdevice->machine(), "bank1", state->m_bios_ram); + state->subbank("bank1")->set_base(state->m_bios_ram); } else // disable RAM access (reads go to BIOS ROM) { - memory_set_bankptr(busdevice->machine(), "bank1", busdevice->machine().region("bios")->base() + 0x30000); + state->subbank("bank1")->set_base(busdevice->machine().region("bios")->base() + 0x30000); } break; } @@ -614,7 +614,7 @@ static MACHINE_START(gamecstl) static MACHINE_RESET(gamecstl) { - memory_set_bankptr(machine, "bank1", machine.region("bios")->base() + 0x30000); + machine.root_device().subbank("bank1")->set_base(machine.region("bios")->base() + 0x30000); device_set_irq_callback(machine.device("maincpu"), irq_callback); } diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c index 2eee619c821..be0cda1bdc6 100644 --- a/src/mame/drivers/gberet.c +++ b/src/mame/drivers/gberet.c @@ -122,7 +122,7 @@ WRITE8_MEMBER(gberet_state::mrgoemon_coin_counter_w) coin_counter_w(machine(), 1, data & 2); /* bits 5-7 = ROM bank select */ - memory_set_bank(machine(), "bank1", ((data & 0xe0) >> 5)); + subbank("bank1")->set_entry(((data & 0xe0) >> 5)); } WRITE8_MEMBER(gberet_state::gberet_flipscreen_w) @@ -574,7 +574,7 @@ ROM_END static DRIVER_INIT( mrgoemon ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x800); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x800); } diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c index cda41ce32f3..c8ad2506f19 100644 --- a/src/mame/drivers/gbusters.c +++ b/src/mame/drivers/gbusters.c @@ -270,8 +270,8 @@ static MACHINE_START( gbusters ) gbusters_state *state = machine.driver_data<gbusters_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 16, &ROM[0x10000], 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000); + state->subbank("bank1")->set_entry(0); state->m_generic_paletteram_8.allocate(0x800); @@ -425,7 +425,7 @@ ROM_END static KONAMI_SETLINES_CALLBACK( gbusters_banking ) { /* bits 0-3 ROM bank */ - memory_set_bank(device->machine(), "bank1", lines & 0x0f); + device->machine().root_device().subbank("bank1")->set_entry(lines & 0x0f); if (lines & 0xf0) { diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c index c8e33a3b6cb..d7e75f26356 100644 --- a/src/mame/drivers/gei.c +++ b/src/mame/drivers/gei.c @@ -269,68 +269,68 @@ static READ8_DEVICE_HANDLER( portC_r ) WRITE8_MEMBER(gei_state::banksel_main_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x8000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x8000); } WRITE8_MEMBER(gei_state::banksel_1_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x10000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x10000); } WRITE8_MEMBER(gei_state::banksel_2_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x18000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x18000); } WRITE8_MEMBER(gei_state::banksel_3_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x20000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x20000); } WRITE8_MEMBER(gei_state::banksel_4_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x28000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x28000); } WRITE8_MEMBER(gei_state::banksel_5_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x30000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x30000); } WRITE8_MEMBER(gei_state::banksel_1_1_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x10000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x10000); } WRITE8_MEMBER(gei_state::banksel_2_1_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x14000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x14000); } WRITE8_MEMBER(gei_state::banksel_3_1_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x18000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x18000); } WRITE8_MEMBER(gei_state::banksel_4_1_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x1c000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x1c000); } WRITE8_MEMBER(gei_state::banksel_5_1_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x20000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x20000); } WRITE8_MEMBER(gei_state::banksel_1_2_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x12000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x12000); } WRITE8_MEMBER(gei_state::banksel_2_2_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x16000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x16000); } WRITE8_MEMBER(gei_state::banksel_3_2_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x1a000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x1a000); } WRITE8_MEMBER(gei_state::banksel_4_2_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x1e000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x1e000); } WRITE8_MEMBER(gei_state::banksel_5_2_w) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x22000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x22000); } WRITE8_MEMBER(gei_state::geimulti_bank_w) @@ -358,36 +358,36 @@ WRITE8_MEMBER(gei_state::geimulti_bank_w) } if (bank != -1) - memory_set_bankptr(machine(), "bank1", machine().region("bank")->base() + bank*0x8000); + subbank("bank1")->set_base(machine().region("bank")->base() + bank*0x8000); } READ8_MEMBER(gei_state::banksel_1_r) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x10000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x10000); return 0x03; }; READ8_MEMBER(gei_state::banksel_2_r) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x18000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x18000); return 0x03; } READ8_MEMBER(gei_state::banksel_3_r) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x20000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x20000); return 0x03; } READ8_MEMBER(gei_state::banksel_4_r) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x28000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x28000); return 0x03; } READ8_MEMBER(gei_state::banksel_5_r) { - memory_set_bankptr(machine(), "bank1",machine().region("maincpu")->base() + 0x30000); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x30000); return 0x03; } @@ -1873,12 +1873,12 @@ ROM_END static DRIVER_INIT( setbank ) { - memory_set_bankptr(machine, "bank1",machine.region("maincpu")->base() + 0x2000); + machine.root_device().subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x2000); } static DRIVER_INIT( geimulti ) { - memory_set_bankptr(machine, "bank1",machine.region("bank")->base() + 0x0000); + machine.root_device().subbank("bank1")->set_base(machine.region("bank")->base() + 0x0000); } GAME( 1982, jokpoker, 0, gselect, gselect, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c index ce81d0a9cc2..a95c1f8d6c6 100644 --- a/src/mame/drivers/gladiatr.c +++ b/src/mame/drivers/gladiatr.c @@ -196,7 +196,7 @@ WRITE8_MEMBER(gladiatr_state::gladiatr_bankswitch_w) { UINT8 *rom = machine().region("maincpu")->base() + 0x10000; - memory_set_bankptr(machine(), "bank1", rom + 0x6000 * (data & 0x01)); + subbank("bank1")->set_base(rom + 0x6000 * (data & 0x01)); } @@ -257,7 +257,7 @@ static MACHINE_RESET( gladiator ) /* 6809 bank memory set */ { UINT8 *rom = machine.region("audiocpu")->base() + 0x10000; - memory_set_bankptr(machine, "bank2",rom); + machine.root_device().subbank("bank2")->set_base(rom); machine.device("audiocpu")->reset(); } } @@ -282,7 +282,7 @@ static WRITE8_DEVICE_HANDLER( glad_adpcm_w ) UINT8 *rom = device->machine().region("audiocpu")->base() + 0x10000; /* bit6 = bank offset */ - memory_set_bankptr(device->machine(), "bank2",rom + ((data & 0x40) ? 0xc000 : 0)); + device->machine().root_device().subbank("bank2")->set_base(rom + ((data & 0x40) ? 0xc000 : 0)); msm5205_data_w(device,data); /* bit0..3 */ msm5205_reset_w(device,(data>>5)&1); /* bit 5 */ @@ -988,7 +988,7 @@ static DRIVER_INIT( gladiatr ) /* make sure bank is valid in cpu-reset */ rom = machine.region("audiocpu")->base() + 0x10000; - memory_set_bankptr(machine, "bank2",rom); + machine.root_device().subbank("bank2")->set_base(rom); } diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c index d95553f6602..778d159bb9c 100644 --- a/src/mame/drivers/gng.c +++ b/src/mame/drivers/gng.c @@ -30,9 +30,9 @@ Notes: WRITE8_MEMBER(gng_state::gng_bankswitch_w) { if (data == 4) - memory_set_bank(machine(), "bank1", 4); + subbank("bank1")->set_entry(4); else - memory_set_bank(machine(), "bank1", (data & 0x03)); + subbank("bank1")->set_entry((data & 0x03)); } WRITE8_MEMBER(gng_state::gng_coin_counter_w) @@ -305,8 +305,8 @@ static MACHINE_START( gng ) gng_state *state = machine.driver_data<gng_state>(); UINT8 *rombase = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &rombase[0x10000], 0x2000); - memory_configure_bank(machine, "bank1", 4, 1, &rombase[0x4000], 0x2000); + state->subbank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x2000); + state->subbank("bank1")->configure_entry(4, &rombase[0x4000]); state->save_item(NAME(state->m_scrollx)); state->save_item(NAME(state->m_scrolly)); diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c index 2d4a7283702..954c8636bdf 100644 --- a/src/mame/drivers/go2000.c +++ b/src/mame/drivers/go2000.c @@ -76,7 +76,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(go2000_state::go2000_pcm_1_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); } static ADDRESS_MAP_START( go2000_sound_map, AS_PROGRAM, 8, go2000_state ) @@ -314,9 +314,9 @@ static MACHINE_START( go2000 ) int i; for (i = 0; i < 8; i++) - memory_configure_bank(machine, "bank1", i, 1, &SOUND[0x00400 + i * 0x10000], 0x10000 - 0x400); + state->subbank("bank1")->configure_entry(i, &SOUND[0x00400 + i * 0x10000]); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->set_entry(0); state->m_soundcpu = machine.device("soundcpu"); } diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c index 8db9c636100..942d62bc685 100644 --- a/src/mame/drivers/goal92.c +++ b/src/mame/drivers/goal92.c @@ -69,7 +69,7 @@ ADDRESS_MAP_END static WRITE8_DEVICE_HANDLER( adpcm_control_w ) { - memory_set_bank(device->machine(), "bank1", data & 0x01); + device->machine().root_device().subbank("bank1")->set_entry(data & 0x01); msm5205_reset_w(device, data & 0x08); } @@ -293,7 +293,7 @@ static MACHINE_START( goal92 ) goal92_state *state = machine.driver_data<goal92_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c index 945375d0093..94e17b78253 100644 --- a/src/mame/drivers/goindol.c +++ b/src/mame/drivers/goindol.c @@ -26,7 +26,7 @@ Notes: WRITE8_MEMBER(goindol_state::goindol_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); if (m_char_bank != ((data & 0x10) >> 4)) { @@ -222,7 +222,7 @@ static MACHINE_START( goindol ) goindol_state *state = machine.driver_data<goindol_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); state->save_item(NAME(state->m_char_bank)); state->save_item(NAME(state->m_prot_toggle)); diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c index 522f24e6022..7477bf89605 100644 --- a/src/mame/drivers/gstriker.c +++ b/src/mame/drivers/gstriker.c @@ -217,7 +217,7 @@ WRITE8_MEMBER(gstriker_state::gs_sh_bankswitch_w) int bankaddress; bankaddress = 0x10000 + (data & 0x03) * 0x8000; - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } /*** GFX DECODE **************************************************************/ diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c index a761c63ff6c..aa779169a6c 100644 --- a/src/mame/drivers/gundealr.c +++ b/src/mame/drivers/gundealr.c @@ -53,7 +53,7 @@ Runs in interrupt mode 0, the interrupt vectors are 0xcf (RST 08h) and WRITE8_MEMBER(gundealr_state::yamyam_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); } @@ -366,7 +366,7 @@ static MACHINE_START( gundealr ) gundealr_state *state = machine.driver_data<gundealr_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); state->save_item(NAME(state->m_flipscreen)); state->save_item(NAME(state->m_scroll)); diff --git a/src/mame/drivers/gunsmoke.c b/src/mame/drivers/gunsmoke.c index 84962777295..0ae044d3ebd 100644 --- a/src/mame/drivers/gunsmoke.c +++ b/src/mame/drivers/gunsmoke.c @@ -276,7 +276,7 @@ static MACHINE_START( gunsmoke ) gunsmoke_state *state = machine.driver_data<gunsmoke_state>(); UINT8 *rombase = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &rombase[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x4000); state->save_item(NAME(state->m_chon)); state->save_item(NAME(state->m_objon)); diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c index a23bad2c7b5..a19ebff6e3c 100644 --- a/src/mame/drivers/hcastle.c +++ b/src/mame/drivers/hcastle.c @@ -19,7 +19,7 @@ WRITE8_MEMBER(hcastle_state::hcastle_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x1f); + subbank("bank1")->set_entry(data & 0x1f); } WRITE8_MEMBER(hcastle_state::hcastle_soundirq_w) @@ -181,7 +181,7 @@ static MACHINE_START( hcastle ) hcastle_state *state = machine.driver_data<hcastle_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 16, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000); state->m_audiocpu = machine.device("audiocpu"); state->m_k007121_1 = machine.device("k007121_1"); diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c index ce53d7b3e8b..78e64f7261b 100644 --- a/src/mame/drivers/highvdeo.c +++ b/src/mame/drivers/highvdeo.c @@ -248,7 +248,7 @@ WRITE16_MEMBER(highvdeo_state::tv_vcf_bankselect_w) /* bits 0, 1 select the ROM bank */ bankaddress = (data & 0x03) * 0x40000; - memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]); + subbank("bank1")->set_base(&ROM[bankaddress]); } @@ -383,7 +383,7 @@ WRITE16_MEMBER(highvdeo_state::tv_tcf_bankselect_w) /* bits 0, 1, 2 select the ROM bank */ bankaddress = (data & 0x07) * 0x40000; - memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]); + subbank("bank1")->set_base(&ROM[bankaddress]); } static ADDRESS_MAP_START( tv_tcf_map, AS_PROGRAM, 16, highvdeo_state ) @@ -505,7 +505,7 @@ WRITE16_MEMBER(highvdeo_state::brasil_status_w) bankaddress = (data & 0x07) * 0x40000; - memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]); + subbank("bank1")->set_base(&ROM[bankaddress]); // popmessage("%04x",data); } diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c index 8097be2db69..5afbc7eecf1 100644 --- a/src/mame/drivers/himesiki.c +++ b/src/mame/drivers/himesiki.c @@ -91,7 +91,7 @@ A 12.000MHz WRITE8_MEMBER(himesiki_state::himesiki_rombank_w) { - memory_set_bank(machine(), "bank1", ((data & 0x08) >> 3)); + subbank("bank1")->set_entry(((data & 0x08) >> 3)); if (data & 0xf7) logerror("p06_w %02x\n", data); @@ -271,7 +271,7 @@ static MACHINE_START( himesiki ) himesiki_state *state = machine.driver_data<himesiki_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000); state->m_subcpu = machine.device("sub"); diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c index 2bc7ce54adf..30451fbb9b3 100644 --- a/src/mame/drivers/hng64.c +++ b/src/mame/drivers/hng64.c @@ -1665,8 +1665,8 @@ static MACHINE_RESET(hyperneo) /* Sound CPU */ UINT8 *RAM = (UINT8*)state->m_soundram; - memory_set_bankptr(machine, "bank1",&RAM[0x1e0000]); - memory_set_bankptr(machine, "bank2",&RAM[0x001000]); // where.. + state->subbank("bank1")->set_base(&RAM[0x1e0000]); + state->subbank("bank2")->set_base(&RAM[0x001000]); // where.. cputag_set_input_line(machine, "audiocpu", INPUT_LINE_HALT, ASSERT_LINE); cputag_set_input_line(machine, "audiocpu", INPUT_LINE_RESET, ASSERT_LINE); diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c index 71e98d15dc5..0833f939c1a 100644 --- a/src/mame/drivers/homedata.c +++ b/src/mame/drivers/homedata.c @@ -355,7 +355,7 @@ WRITE8_MEMBER(homedata_state::reikaids_upd7807_portc_w) */ // logerror("%04x: port C wr %02x (STATUS %d DATA %d)\n", cpu_get_pc(&space.device()), data, BIT(data, 2), BIT(data, 6)); - memory_set_bank(machine(), "bank2", data & 0x03); + subbank("bank2")->set_entry(data & 0x03); coin_counter_w(machine(), 0, ~data & 0x80); @@ -494,7 +494,7 @@ WRITE8_MEMBER(homedata_state::pteacher_upd7807_portc_w) // logerror("%04x: port C wr %02x\n", cpu_get_pc(&space.device()), data); - memory_set_bank(machine(), "bank2", (data & 0x0c) >> 2); + subbank("bank2")->set_entry((data & 0x0c) >> 2); coin_counter_w(machine(), 0, ~data & 0x80); @@ -513,9 +513,9 @@ WRITE8_MEMBER(homedata_state::bankswitch_w) /* last bank is fixed and is #0 for us, other banks start from #1 (hence data+1 below)*/ if (data < last_bank) - memory_set_bank(machine(), "bank1", data + 1); + subbank("bank1")->set_entry(data + 1); else - memory_set_bank(machine(), "bank1", 0); + subbank("bank1")->set_entry(0); } @@ -1151,8 +1151,8 @@ static MACHINE_START( reikaids ) homedata_state *state = machine.driver_data<homedata_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0xc000], 0x4000); - memory_configure_bank(machine, "bank2", 0, 4, machine.region("audiocpu")->base(), 0x10000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0xc000], 0x4000); + state->subbank("bank2")->configure_entries(0, 4, machine.region("audiocpu")->base(), 0x10000); MACHINE_START_CALL(homedata); @@ -1168,8 +1168,8 @@ static MACHINE_START( pteacher ) homedata_state *state = machine.driver_data<homedata_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0xc000], 0x4000); - memory_configure_bank(machine, "bank2", 0, 4, machine.region("audiocpu")->base(), 0x10000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000); + state->subbank("bank2")->configure_entries(0, 4, machine.region("audiocpu")->base(), 0x10000); MACHINE_START_CALL(homedata); diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c index 0a059e5ab0d..335ab7afc6f 100644 --- a/src/mame/drivers/homerun.c +++ b/src/mame/drivers/homerun.c @@ -195,8 +195,8 @@ static MACHINE_START( homerun ) homerun_state *state = machine.driver_data<homerun_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 1, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 1, 7, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entry(0, &ROM[0x00000]); + state->subbank("bank1")->configure_entries(1, 7, &ROM[0x10000], 0x4000); state->save_item(NAME(state->m_gfx_ctrl)); state->save_item(NAME(state->m_gc_up)); diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index 2e09e20aacd..bd02d36f35d 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -599,7 +599,7 @@ WRITE32_MEMBER(hornet_state::comm_rombank_w) int bank = data >> 24; UINT8 *usr3 = machine().region("user3")->base(); if (usr3 != NULL) - memory_set_bank(machine(), "bank1", bank & 0x7f); + subbank("bank1")->set_entry(bank & 0x7f); } READ32_MEMBER(hornet_state::comm0_unk_r) @@ -897,14 +897,14 @@ static MACHINE_RESET( hornet ) UINT8 *usr5 = machine.region("user5")->base(); if (usr3 != NULL) { - memory_configure_bank(machine, "bank1", 0, machine.region("user3")->bytes() / 0x40000, usr3, 0x40000); - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->configure_entries(0, machine.region("user3")->bytes() / 0x40000, usr3, 0x40000); + machine.root_device().subbank("bank1")->set_entry(0); } cputag_set_input_line(machine, "dsp", INPUT_LINE_RESET, ASSERT_LINE); if (usr5) - memory_set_bankptr(machine, "bank5", usr5); + machine.root_device().subbank("bank5")->set_base(usr5); } static double adc12138_input_callback( device_t *device, UINT8 input ) @@ -1019,14 +1019,14 @@ static MACHINE_RESET( hornet_2board ) if (usr3 != NULL) { - memory_configure_bank(machine, "bank1", 0, machine.region("user3")->bytes() / 0x40000, usr3, 0x40000); - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->configure_entries(0, machine.region("user3")->bytes() / 0x40000, usr3, 0x40000); + machine.root_device().subbank("bank1")->set_entry(0); } cputag_set_input_line(machine, "dsp", INPUT_LINE_RESET, ASSERT_LINE); cputag_set_input_line(machine, "dsp2", INPUT_LINE_RESET, ASSERT_LINE); if (usr5) - memory_set_bankptr(machine, "bank5", usr5); + machine.root_device().subbank("bank5")->set_base(usr5); } static MACHINE_CONFIG_DERIVED( hornet_2board, hornet ) diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c index 0fd4b1f071c..684aaa632e7 100644 --- a/src/mame/drivers/hvyunit.c +++ b/src/mame/drivers/hvyunit.c @@ -219,7 +219,7 @@ WRITE8_MEMBER(hvyunit_state::master_bankswitch_w) unsigned char *ROM = machine().region("master")->base(); int bank = data & 7; ROM = &ROM[0x4000 * bank]; - memory_set_bankptr(machine(), "bank1", ROM); + subbank("bank1")->set_base(ROM); } WRITE8_MEMBER(hvyunit_state::mermaid_data_w) @@ -280,7 +280,7 @@ WRITE8_MEMBER(hvyunit_state::slave_bankswitch_w) m_port0_data = data; ROM = &ROM[0x4000 * bank]; - memory_set_bankptr(machine(), "bank2", ROM); + subbank("bank2")->set_base(ROM); } WRITE8_MEMBER(hvyunit_state::hu_scrollx_w) @@ -312,7 +312,7 @@ WRITE8_MEMBER(hvyunit_state::sound_bankswitch_w) int bank = data & 0x3; ROM = &ROM[0x4000 * bank]; - memory_set_bankptr(machine(), "bank3", ROM); + subbank("bank3")->set_base(ROM); } diff --git a/src/mame/drivers/ichiban.c b/src/mame/drivers/ichiban.c index acc94cb32d2..499307ab152 100644 --- a/src/mame/drivers/ichiban.c +++ b/src/mame/drivers/ichiban.c @@ -106,7 +106,7 @@ void ichibanjyan_state::machine_start() { UINT8 *ROM = machine().region("code")->base(); - memory_configure_bank(machine(), "bank1", 0, 4, ROM, 0x8000); + subbank("bank1")->configure_entries(0, 4, ROM, 0x8000); } void ichibanjyan_state::machine_reset() diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c index 97033ce81e8..9678fb915d4 100644 --- a/src/mame/drivers/inufuku.c +++ b/src/mame/drivers/inufuku.c @@ -102,7 +102,7 @@ WRITE8_MEMBER(inufuku_state::pending_command_clear_w) WRITE8_MEMBER(inufuku_state::inufuku_soundrombank_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } /****************************************************************************** @@ -316,8 +316,8 @@ static MACHINE_START( inufuku ) inufuku_state *state = machine.driver_data<inufuku_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x8000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x8000); + state->subbank("bank1")->set_entry(0); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c index 0903f0f7a48..0b61579eae0 100644 --- a/src/mame/drivers/itech32.c +++ b/src/mame/drivers/itech32.c @@ -625,7 +625,7 @@ READ32_MEMBER(itech32_state::gtclass_prot_result_r) WRITE8_MEMBER(itech32_state::sound_bank_w) { - memory_set_bankptr(machine(), "bank1", &machine().region("soundcpu")->base()[0x10000 + data * 0x4000]); + subbank("bank1")->set_base(&machine().region("soundcpu")->base()[0x10000 + data * 0x4000]); } diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c index f843d9ab13c..94efc7613b2 100644 --- a/src/mame/drivers/itech8.c +++ b/src/mame/drivers/itech8.c @@ -657,7 +657,7 @@ static MACHINE_RESET( itech8 ) /* make sure bank 0 is selected */ if (main_cpu_type == M6809 || main_cpu_type == HD6309) { - memory_set_bankptr(machine, "bank1", &machine.region("maincpu")->base()[0x4000]); + state->subbank("bank1")->set_base(&machine.region("maincpu")->base()[0x4000]); machine.device("maincpu")->reset(); } @@ -705,7 +705,7 @@ WRITE8_MEMBER(itech8_state::blitter_w) { /* bit 0x20 on address 7 controls CPU banking */ if (offset / 2 == 7) - memory_set_bankptr(machine(), "bank1", &machine().region("maincpu")->base()[0x4000 + 0xc000 * ((data >> 5) & 1)]); + subbank("bank1")->set_base(&machine().region("maincpu")->base()[0x4000 + 0xc000 * ((data >> 5) & 1)]); /* the rest is handled by the video hardware */ itech8_blitter_w(space, offset, data); @@ -715,7 +715,7 @@ WRITE8_MEMBER(itech8_state::blitter_w) WRITE8_MEMBER(itech8_state::rimrockn_bank_w) { /* banking is controlled here instead of by the blitter output */ - memory_set_bankptr(machine(), "bank1", &machine().region("maincpu")->base()[0x4000 + 0xc000 * (data & 3)]); + subbank("bank1")->set_base(&machine().region("maincpu")->base()[0x4000 + 0xc000 * (data & 3)]); } diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c index b8b2911648e..63082dca233 100644 --- a/src/mame/drivers/jackal.c +++ b/src/mame/drivers/jackal.c @@ -124,7 +124,7 @@ WRITE8_MEMBER(jackal_state::jackal_rambank_w) m_spritebank = &rgn[((data & 0x08) << 13)]; m_rambank = &rgn[((data & 0x10) << 12)]; - memory_set_bank(machine(), "bank1", (data & 0x20) ? 1 : 0); + subbank("bank1")->set_entry((data & 0x20) ? 1 : 0); } @@ -330,9 +330,9 @@ static MACHINE_START( jackal ) jackal_state *state = machine.driver_data<jackal_state>(); UINT8 *ROM = machine.region("master")->base(); - memory_configure_bank(machine, "bank1", 0, 1, &ROM[0x04000], 0x8000); - memory_configure_bank(machine, "bank1", 1, 1, &ROM[0x14000], 0x8000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entry(0, &ROM[0x04000]); + state->subbank("bank1")->configure_entry(1, &ROM[0x14000]); + state->subbank("bank1")->set_entry(0); state->m_mastercpu = machine.device("master"); state->m_slavecpu = machine.device("slave"); diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c index 0b46abb1ce5..31687959fc0 100644 --- a/src/mame/drivers/jaguar.c +++ b/src/mame/drivers/jaguar.c @@ -503,17 +503,17 @@ static MACHINE_RESET( cojag ) /* graphics banks */ if (cojag_is_r3000) { - memory_configure_bank(machine, "bank1", 0, 2, rom + 0x800000, 0x400000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 2, rom + 0x800000, 0x400000); + state->subbank("bank1")->set_entry(0); } - memory_configure_bank(machine, "bank8", 0, 2, rom + 0x800000, 0x400000); - memory_set_bank(machine, "bank8", 0); + state->subbank("bank8")->configure_entries(0, 2, rom + 0x800000, 0x400000); + state->subbank("bank8")->set_entry(0); /* sound banks */ - memory_configure_bank(machine, "bank2", 0, 8, rom + 0x000000, 0x200000); - memory_configure_bank(machine, "bank9", 0, 8, rom + 0x000000, 0x200000); - memory_set_bank(machine, "bank2", 0); - memory_set_bank(machine, "bank9", 0); + state->subbank("bank2")->configure_entries(0, 8, rom + 0x000000, 0x200000); + state->subbank("bank9")->configure_entries(0, 8, rom + 0x000000, 0x200000); + state->subbank("bank2")->set_entry(0); + state->subbank("bank9")->set_entry(0); } /* clear any spinuntil stuff */ @@ -721,8 +721,8 @@ WRITE32_MEMBER(cojag_state::misc_control_w) /* adjust banking */ if (machine().region("user2")->base()) { - memory_set_bank(machine(), "bank2", (data >> 1) & 7); - memory_set_bank(machine(), "bank9", (data >> 1) & 7); + subbank("bank2")->set_entry((data >> 1) & 7); + subbank("bank9")->set_entry((data >> 1) & 7); } COMBINE_DATA(&m_misc_control_data); @@ -902,8 +902,8 @@ WRITE32_MEMBER(cojag_state::latch_w) if (machine().region("user2")->base()) { if (cojag_is_r3000) - memory_set_bank(machine(), "bank1", data & 1); - memory_set_bank(machine(), "bank8", data & 1); + subbank("bank1")->set_entry(data & 1); + subbank("bank8")->set_entry(data & 1); } } diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c index fe10f6c64c0..1479aeb67f6 100644 --- a/src/mame/drivers/jedi.c +++ b/src/mame/drivers/jedi.c @@ -162,7 +162,7 @@ static MACHINE_START( jedi ) state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(32), 32); /* configure the banks */ - memory_configure_bank(machine, "bank1", 0, 3, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, 3, machine.region("maincpu")->base() + 0x10000, 0x4000); /* set up save state */ state->save_item(NAME(state->m_nvram_enabled)); @@ -195,9 +195,9 @@ static MACHINE_RESET( jedi ) WRITE8_MEMBER(jedi_state::rom_banksel_w) { - if (data & 0x01) memory_set_bank(machine(), "bank1", 0); - if (data & 0x02) memory_set_bank(machine(), "bank1", 1); - if (data & 0x04) memory_set_bank(machine(), "bank1", 2); + if (data & 0x01) subbank("bank1")->set_entry(0); + if (data & 0x02) subbank("bank1")->set_entry(1); + if (data & 0x04) subbank("bank1")->set_entry(2); } diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c index d48e55776f9..670bd9343d4 100644 --- a/src/mame/drivers/jongkyo.c +++ b/src/mame/drivers/jongkyo.c @@ -124,7 +124,7 @@ WRITE8_MEMBER(jongkyo_state::bank_select_w) if (offset & 1) m_rom_bank |= mask; - memory_set_bank(machine(), "bank1", m_rom_bank); + subbank("bank1")->set_entry(m_rom_bank); } WRITE8_MEMBER(jongkyo_state::mux_w) diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c index 5ae6922fea6..99efc41aaed 100644 --- a/src/mame/drivers/jpmsys5.c +++ b/src/mame/drivers/jpmsys5.c @@ -251,7 +251,7 @@ WRITE16_MEMBER(jpmsys5_state::rombank_w) { UINT8 *rom = machine().region("maincpu")->base(); data &= 0x1f; - memory_set_bankptr(machine(), "bank1", &rom[0x20000 + 0x20000 * data]); + subbank("bank1")->set_base(&rom[0x20000 + 0x20000 * data]); } READ16_MEMBER(jpmsys5_state::coins_r) @@ -643,7 +643,7 @@ static ACIA6850_INTERFACE( acia2_if ) static MACHINE_START( jpmsys5v ) { jpmsys5_state *state = machine.driver_data<jpmsys5_state>(); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base()+0x20000); + state->subbank("bank1")->set_base(machine.region("maincpu")->base()+0x20000); state->m_touch_timer = machine.scheduler().timer_alloc(FUNC(touch_cb)); } @@ -794,7 +794,7 @@ INPUT_PORTS_END static MACHINE_START( jpmsys5 ) { - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base()+0x20000); + machine.root_device().subbank("bank1")->set_base(machine.region("maincpu")->base()+0x20000); } static MACHINE_RESET( jpmsys5 ) diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c index 6b796962278..82beb8a0f78 100644 --- a/src/mame/drivers/junofrst.c +++ b/src/mame/drivers/junofrst.c @@ -190,7 +190,7 @@ WRITE8_MEMBER(junofrst_state::junofrst_blitter_w) WRITE8_MEMBER(junofrst_state::junofrst_bankselect_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } @@ -529,8 +529,8 @@ static DRIVER_INIT( junofrst ) { UINT8 *decrypted = konami1_decode(machine, "maincpu"); - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x1000); - memory_configure_bank_decrypted(machine, "bank1", 0, 16, decrypted + 0x10000, 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x1000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, 16, decrypted + 0x10000, 0x1000); } diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index ee30aa2ec12..e9ab0c1c115 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -814,7 +814,7 @@ static void kaneko16_common_oki_bank_w( running_machine& machine, const char *ba if (bankaddr <= (length-bankedsize)) { - memory_set_bankptr(machine, bankname, samples + bankaddr); + machine.root_device().subbank(bankname)->set_base(samples + bankaddr); } } diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c index 0f00bc96614..afffe1281d3 100644 --- a/src/mame/drivers/kangaroo.c +++ b/src/mame/drivers/kangaroo.c @@ -174,7 +174,7 @@ static MACHINE_START( kangaroo ) { - memory_configure_bank(machine, "bank1", 0, 2, machine.region("gfx1")->base(), 0x2000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("gfx1")->base(), 0x2000); } diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c index c86b2231773..a91e287f585 100644 --- a/src/mame/drivers/ksayakyu.c +++ b/src/mame/drivers/ksayakyu.c @@ -81,7 +81,7 @@ WRITE8_MEMBER(ksayakyu_state::bank_select_w) xxxxxxx - unused ? */ - memory_set_bank(machine(), "bank1", data & 0x01); + subbank("bank1")->set_entry(data & 0x01); } WRITE8_MEMBER(ksayakyu_state::latch_w) @@ -252,7 +252,7 @@ static MACHINE_START( ksayakyu ) ksayakyu_state *state = machine.driver_data<ksayakyu_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000); state->save_item(NAME(state->m_sound_status)); state->save_item(NAME(state->m_video_ctrl)); diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c index 590c30fa5dd..986ca73fd97 100644 --- a/src/mame/drivers/labyrunr.c +++ b/src/mame/drivers/labyrunr.c @@ -32,7 +32,7 @@ WRITE8_MEMBER(labyrunr_state::labyrunr_bankswitch_w) if (data & 0xe0) popmessage("bankswitch %02x", data); /* bits 0-2 = bank number */ - memory_set_bank(machine(), "bank1", data & 0x07); // shall we check if data&7 > #banks? + subbank("bank1")->set_entry(data & 0x07); // shall we check if data&7 > #banks? /* bits 3 and 4 are coin counters */ coin_counter_w(machine(), 0, data & 0x08); @@ -182,7 +182,7 @@ static MACHINE_START( labyrunr ) labyrunr_state *state = machine.driver_data<labyrunr_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 6, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); state->m_k007121 = machine.device("k007121"); } diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c index 5af392326c1..10600135999 100644 --- a/src/mame/drivers/lastduel.c +++ b/src/mame/drivers/lastduel.c @@ -175,7 +175,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(lastduel_state::mg_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x01); + subbank("bank1")->set_entry(data & 0x01); } static ADDRESS_MAP_START( madgear_sound_map, AS_PROGRAM, 8, lastduel_state ) @@ -481,7 +481,7 @@ static MACHINE_START( madgear ) { UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000); MACHINE_START_CALL(lastduel); } diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c index c53259ee384..efa5adbfb0b 100644 --- a/src/mame/drivers/leland.c +++ b/src/mame/drivers/leland.c @@ -1995,9 +1995,9 @@ static DRIVER_INIT( cerberus ) leland_state *state = machine.driver_data<leland_state>(); /* master CPU bankswitching */ state->m_update_master_bank = cerberus_bankswitch; - memory_set_bankptr(machine, "bank1", machine.region("master")->base() + 0x2000); - memory_set_bankptr(machine, "bank2", machine.region("master")->base() + 0xa000); - memory_set_bankptr(machine, "bank3", machine.region("slave")->base() + 0x2000); + state->subbank("bank1")->set_base(machine.region("master")->base() + 0x2000); + state->subbank("bank2")->set_base(machine.region("master")->base() + 0xa000); + state->subbank("bank3")->set_base(machine.region("slave")->base() + 0x2000); /* set up the master CPU I/O ports */ init_master_ports(machine, 0x40, 0x80); diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c index e0f629ef758..7c77dbc25e5 100644 --- a/src/mame/drivers/lethal.c +++ b/src/mame/drivers/lethal.c @@ -234,7 +234,7 @@ static void sound_nmi( device_t *device ) WRITE8_MEMBER(lethal_state::le_bankswitch_w) { - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); } READ8_MEMBER(lethal_state::le_4800_r) @@ -581,8 +581,8 @@ static MACHINE_START( lethalen ) lethal_state *state = machine.driver_data<lethal_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x20, &ROM[0x10000], 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 0x20, &ROM[0x10000], 0x2000); + state->subbank("bank1")->set_entry(0); state->m_generic_paletteram_8.allocate(0x3800 + 0x02); @@ -604,7 +604,7 @@ static MACHINE_RESET( lethalen ) UINT8 *prgrom = (UINT8 *)machine.region("maincpu")->base(); int i; - memory_set_bankptr(machine, "bank2", &prgrom[0x48000]); + state->subbank("bank2")->set_base(&prgrom[0x48000]); /* force reset again to read proper reset vector */ machine.device("maincpu")->reset(); diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c index 70acb6b2a99..03394b3886e 100644 --- a/src/mame/drivers/liberate.c +++ b/src/mame/drivers/liberate.c @@ -1395,7 +1395,7 @@ static DRIVER_INIT( liberate ) decrypted[A] = (decrypted[A] & 0x7d) | ((decrypted[A] & 0x02) << 6) | ((decrypted[A] & 0x80) >> 6); } - memory_configure_bank_decrypted(machine, "bank1", 0, 1, decrypted + 0x8000, 0x10); + machine.root_device().subbank("bank1")->configure_decrypted_entry(0, decrypted + 0x8000); sound_cpu_decrypt(machine); } diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c index c2072864b73..c81e64963a9 100644 --- a/src/mame/drivers/lsasquad.c +++ b/src/mame/drivers/lsasquad.c @@ -155,7 +155,7 @@ Notes: WRITE8_MEMBER(lsasquad_state::lsasquad_bankswitch_w) { /* bits 0-2 select ROM bank */ - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); /* bit 3 is zeroed on startup, maybe reset sound CPU */ @@ -569,7 +569,7 @@ static MACHINE_START( lsasquad ) lsasquad_state *state = machine.driver_data<lsasquad_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c index 045955b9873..261d352241a 100644 --- a/src/mame/drivers/luckgrln.c +++ b/src/mame/drivers/luckgrln.c @@ -1053,7 +1053,7 @@ static DRIVER_INIT( luckgrln ) #endif // ?? -// memory_set_bankptr(machine, "bank1",&rom[0x010000]); +// machine.root_device().subbank("bank1")->set_base(&rom[0x010000]); } diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c index bd8b7fa194d..d6b56419aae 100644 --- a/src/mame/drivers/lwings.c +++ b/src/mame/drivers/lwings.c @@ -77,7 +77,7 @@ WRITE8_MEMBER(lwings_state::lwings_bankswitch_w) flip_screen_set(~data & 0x01); /* bits 1 and 2 select ROM bank */ - memory_set_bank(machine(), "bank1", (data & 0x06) >> 1); + subbank("bank1")->set_entry((data & 0x06) >> 1); /* bit 3 enables NMI */ m_nmi_mask = data & 8; @@ -750,7 +750,7 @@ static MACHINE_START( lwings ) lwings_state *state = machine.driver_data<lwings_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); state->save_item(NAME(state->m_bg2_image)); state->save_item(NAME(state->m_scroll_x)); diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c index 7950afefc43..0ab43a0e72f 100644 --- a/src/mame/drivers/m107.c +++ b/src/mame/drivers/m107.c @@ -83,7 +83,7 @@ WRITE16_MEMBER(m107_state::m107_bankswitch_w) { if (ACCESSING_BITS_0_7) { - memory_set_bank(machine(), "bank1", (data & 0x06) >> 1); + subbank("bank1")->set_entry((data & 0x06) >> 1); if (data & 0xf9) logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space.device()), data); } @@ -966,7 +966,7 @@ static DRIVER_INIT( firebarr ) m107_state *state = machine.driver_data<m107_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0xa0000]); + state->subbank("bank1")->set_base(&ROM[0xa0000]); state->m_irq_vectorbase = 0x20; state->m_spritesystem = 1; @@ -977,7 +977,7 @@ static DRIVER_INIT( dsoccr94 ) m107_state *state = machine.driver_data<m107_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x80000], 0x20000); machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x06, 0x07, write16_delegate(FUNC(m107_state::m107_bankswitch_w),state)); state->m_irq_vectorbase = 0x80; diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c index 7374a558f34..ca8df6511b4 100644 --- a/src/mame/drivers/m62.c +++ b/src/mame/drivers/m62.c @@ -90,7 +90,7 @@ READ8_MEMBER(m62_state::ldrun2_bankswitch_r) /* swap to bank #1 on second read */ if (m_ldrun2_bankswap == 0) - memory_set_bank(machine(), "bank1", 1); + subbank("bank1")->set_entry(1); } return 0; } @@ -114,7 +114,7 @@ WRITE8_MEMBER(m62_state::ldrun2_bankswitch_w) logerror("unknown bank select %02x\n",data); return; } - memory_set_bank(machine(), "bank1", banks[data - 1]); + subbank("bank1")->set_entry(banks[data - 1]); } else { @@ -143,30 +143,30 @@ READ8_MEMBER(m62_state::ldrun3_prot_7_r) WRITE8_MEMBER(m62_state::ldrun4_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x01); + subbank("bank1")->set_entry(data & 0x01); } WRITE8_MEMBER(m62_state::kidniki_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } #define battroad_bankswitch_w kidniki_bankswitch_w WRITE8_MEMBER(m62_state::spelunkr_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } WRITE8_MEMBER(m62_state::spelunk2_bankswitch_w) { - memory_set_bank(machine(), "bank1", (data & 0xc0) >> 6); - memory_set_bank(machine(), "bank2", (data & 0x3c) >> 2); + subbank("bank1")->set_entry((data & 0xc0) >> 6); + subbank("bank2")->set_entry((data & 0x3c) >> 2); } WRITE8_MEMBER(m62_state::youjyudn_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x01); + subbank("bank1")->set_entry(data & 0x01); } @@ -2158,19 +2158,19 @@ ROM_END static DRIVER_INIT( battroad ) { /* configure memory banks */ - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x2000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x2000); } static DRIVER_INIT( ldrun2 ) { /* configure memory banks */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x10000, 0x2000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x10000, 0x2000); } static DRIVER_INIT( ldrun4 ) { /* configure memory banks */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); } static DRIVER_INIT( kidniki ) @@ -2182,26 +2182,26 @@ static DRIVER_INIT( kidniki ) memcpy(ROM + 0x08000, ROM + 0x10000, 0x2000); /* configure memory banks */ - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x2000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x2000); } static DRIVER_INIT( spelunkr ) { /* configure memory banks */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("maincpu")->base() + 0x10000, 0x2000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, machine.region("maincpu")->base() + 0x10000, 0x2000); } static DRIVER_INIT( spelunk2 ) { /* configure memory banks */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("maincpu")->base() + 0x20000, 0x1000); - memory_configure_bank(machine, "bank2", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, machine.region("maincpu")->base() + 0x20000, 0x1000); + machine.root_device().subbank("bank2")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x1000); } static DRIVER_INIT( youjyudn ) { /* configure memory banks */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); } GAME( 1984, kungfum, 0, kungfum, kungfum, 0, ROT0, "Irem", "Kung-Fu Master", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c index dbc66a1fc53..57bc7243845 100644 --- a/src/mame/drivers/m72.c +++ b/src/mame/drivers/m72.c @@ -366,7 +366,7 @@ INLINE DRIVER_INIT( m72_8751 ) state->m_protection_ram = auto_alloc_array(machine, UINT16, 0x10000/2); program->install_read_bank(0xb0000, 0xbffff, "bank1"); program->install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::m72_main_mcu_w),state)); - memory_set_bankptr(machine, "bank1", state->m_protection_ram); + state->subbank("bank1")->set_base(state->m_protection_ram); //io->install_legacy_write_handler(0xc0, 0xc1, FUNC(loht_sample_trigger_w)); io->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::m72_main_mcu_sound_w),state)); @@ -740,7 +740,7 @@ static void install_protection_handler(running_machine &machine, const UINT8 *co machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0xb0000, 0xb0fff, "bank1"); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xb0ffa, 0xb0ffb, read16_delegate(FUNC(m72_state::protection_r),state)); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::protection_w),state)); - memory_set_bankptr(machine, "bank1", state->m_protection_ram); + state->subbank("bank1")->set_base(state->m_protection_ram); } static DRIVER_INIT( bchopper ) diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c index 6d3a9a69928..0877ac4c915 100644 --- a/src/mame/drivers/m90.c +++ b/src/mame/drivers/m90.c @@ -51,7 +51,7 @@ WRITE16_MEMBER(m90_state::m90_coincounter_w) WRITE16_MEMBER(m90_state::quizf1_bankswitch_w) { if (ACCESSING_BITS_0_7) - memory_set_bank(machine(), "bank1", data & 0xf); + subbank("bank1")->set_entry(data & 0xf); } WRITE16_MEMBER(m90_state::dynablsb_sound_command_w) @@ -1186,7 +1186,7 @@ ROM_END static DRIVER_INIT( quizf1 ) { m90_state *state = machine.driver_data<m90_state>(); - memory_configure_bank(machine, "bank1", 0, 16, machine.region("user1")->base(), 0x10000); + state->subbank("bank1")->configure_entries(0, 16, machine.region("user1")->base(), 0x10000); machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x04, 0x05, write16_delegate(FUNC(m90_state::quizf1_bankswitch_w),state)); } diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c index 0d071682eea..b7b5f6b922b 100644 --- a/src/mame/drivers/m92.c +++ b/src/mame/drivers/m92.c @@ -281,7 +281,7 @@ WRITE16_MEMBER(m92_state::m92_bankswitch_w) { if (ACCESSING_BITS_0_7) { - memory_set_bank(machine(), "bank1", (data & 0x06) >> 1); + subbank("bank1")->set_entry((data & 0x06) >> 1); if (data & 0xf9) logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space.device()), data); } @@ -2062,7 +2062,7 @@ static DRIVER_INIT( m92 ) m92_state *state = machine.driver_data<m92_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0xa0000]); + state->subbank("bank1")->set_base(&ROM[0xa0000]); state->m_game_kludge = 0; state->m_irq_vectorbase = 0x80; @@ -2074,7 +2074,7 @@ static DRIVER_INIT( m92_alt ) m92_state *state = machine.driver_data<m92_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0xa0000]); + state->subbank("bank1")->set_base(&ROM[0xa0000]); state->m_game_kludge = 0; state->m_irq_vectorbase = 0x20; @@ -2095,7 +2095,7 @@ static DRIVER_INIT( m92_bank ) m92_state *state = machine.driver_data<m92_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x80000], 0x20000); machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x20, 0x21, write16_delegate(FUNC(m92_state::m92_bankswitch_w),state)); state->m_game_kludge = 0; @@ -2108,7 +2108,7 @@ static DRIVER_INIT( majtitl2 ) m92_state *state = machine.driver_data<m92_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x80000], 0x20000); machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x20, 0x21, write16_delegate(FUNC(m92_state::m92_bankswitch_w),state)); /* This game has an eeprom on the game board */ @@ -2123,7 +2123,7 @@ static DRIVER_INIT( ppan ) { m92_state *state = machine.driver_data<m92_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0xa0000]); + state->subbank("bank1")->set_base(&ROM[0xa0000]); state->m_game_kludge = 0; state->m_irq_vectorbase = 0x80; diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c index e0d94a9c7a1..f1ca5b26e85 100644 --- a/src/mame/drivers/macs.c +++ b/src/mame/drivers/macs.c @@ -98,7 +98,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(macs_state::rambank_w) { - memory_set_bankptr(machine(), "bank3", &m_ram1[0x10000+(data&1)*0x800] ); + subbank("bank3")->set_base(&m_ram1[0x10000+(data&1)*0x800] ); } READ8_MEMBER(macs_state::macs_input_r) @@ -136,7 +136,7 @@ READ8_MEMBER(macs_state::macs_input_r) WRITE8_MEMBER(macs_state::macs_rom_bank_w) { - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + (data* 0x4000) + 0x10000 + macs_cart_slot*0x400000 ); + subbank("bank1")->set_base(machine().region("maincpu")->base() + (data* 0x4000) + 0x10000 + macs_cart_slot*0x400000 ); m_st0016_rom_bank=data; } @@ -158,14 +158,14 @@ WRITE8_MEMBER(macs_state::macs_output_w) { /* FIXME: dunno if this RAM bank is right, DASM tracking made on the POST screens indicates that there's just one RAM bank, but then MACS2 games locks up. */ - memory_set_bankptr(machine(), "bank3", &m_ram1[((data&0x20)>>5)*0x1000+0x000] ); + subbank("bank3")->set_base(&m_ram1[((data&0x20)>>5)*0x1000+0x000] ); macs_cart_slot = (data & 0xc) >> 2; - memory_set_bankptr(machine(), "bank4", &ROM[macs_cart_slot*0x400000+0x10000] ); + subbank("bank4")->set_base(&ROM[macs_cart_slot*0x400000+0x10000] ); } - memory_set_bankptr(machine(), "bank2", &m_ram1[((data&0x20)>>5)*0x1000+0x800] ); + subbank("bank2")->set_base(&m_ram1[((data&0x20)>>5)*0x1000+0x800] ); break; case 2: m_mux_data = data; break; @@ -716,10 +716,10 @@ static MACHINE_RESET(macs) macs_ram1[0x1ff9]=0x07; #endif - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x10000 ); - memory_set_bankptr(machine, "bank2", macs_ram1+0x800); - memory_set_bankptr(machine, "bank3", macs_ram1+0x10000); - memory_set_bankptr(machine, "bank4", machine.region("maincpu")->base() ); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x10000 ); + state->subbank("bank2")->set_base(macs_ram1+0x800); + state->subbank("bank3")->set_base(macs_ram1+0x10000); + state->subbank("bank4")->set_base(machine.region("maincpu")->base() ); } static DRIVER_INIT(macs) diff --git a/src/mame/drivers/magtouch.c b/src/mame/drivers/magtouch.c index 38506352bea..54a15ab4e07 100644 --- a/src/mame/drivers/magtouch.c +++ b/src/mame/drivers/magtouch.c @@ -158,7 +158,7 @@ WRITE8_MEMBER(magtouch_state::magtouch_io_w) switch(offset) { case 6: - memory_set_bank(machine(), "rombank", data & 0x7f ); + subbank("rombank")->set_entry(data & 0x7f ); break; } } @@ -201,8 +201,8 @@ static MACHINE_START( magtouch ) init_pc_common(machine, PCCOMMON_KEYBOARD_AT, magtouch_set_keyb_int); - memory_configure_bank(machine, "rombank", 0, 0x80, machine.region("game_prg")->base(), 0x8000 ); - memory_set_bank(machine, "rombank", 0); + machine.root_device().subbank("rombank")->configure_entries(0, 0x80, machine.region("game_prg")->base(), 0x8000 ); + machine.root_device().subbank("rombank")->set_entry(0); // microtouch_init(machine, magtouch_microtouch_tx_callback, NULL); } diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c index 7f41147344e..6e09bdce349 100644 --- a/src/mame/drivers/mainevt.c +++ b/src/mame/drivers/mainevt.c @@ -57,7 +57,7 @@ WRITE8_MEMBER(mainevt_state::mainevt_bankswitch_w) { /* bit 0-1 ROM bank select */ - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); /* TODO: bit 5 = select work RAM or palette? */ //palette_selected = data & 0x20; @@ -414,7 +414,7 @@ static MACHINE_START( mainevt ) mainevt_state *state = machine.driver_data<mainevt_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c index 74aa52cc0ff..8ea516c421b 100644 --- a/src/mame/drivers/majorpkr.c +++ b/src/mame/drivers/majorpkr.c @@ -566,7 +566,7 @@ static SCREEN_UPDATE_IND16(majorpkr) WRITE8_MEMBER(majorpkr_state::rom_bank_w) { - memory_set_bank(machine(), "rom_bank", data & 0x3); + subbank("rom_bank")->set_entry(data & 0x3); } @@ -1084,7 +1084,7 @@ ROM_END static DRIVER_INIT( majorpkr ) { UINT8 * ROM = (UINT8 *)machine.region("maincpu")->base(); - memory_configure_bank(machine, "rom_bank", 0, 4, &ROM[0x10000], 0x800); + machine.root_device().subbank("rom_bank")->configure_entries(0, 4, &ROM[0x10000], 0x800); } diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c index 6ef97032e56..51bc4756859 100644 --- a/src/mame/drivers/malzak.c +++ b/src/mame/drivers/malzak.c @@ -153,7 +153,7 @@ WRITE8_MEMBER(malzak_state::port40_w) // Bit 6 is used only in Malzak II, and is set high after checking // the selected version // logerror("S2650 [0x%04x]: port 0x40 write: 0x%02x\n", cpu_get_pc(machine().device("maincpu")), data); - memory_set_bank(machine(), "bank1", (data & 0x40) >> 6); + subbank("bank1")->set_entry((data & 0x40) >> 6); } WRITE8_MEMBER(malzak_state::port60_w) @@ -370,7 +370,7 @@ static MACHINE_START( malzak ) { malzak_state *state = machine.driver_data<malzak_state>(); - memory_configure_bank(machine, "bank1", 0, 2, machine.region("user2")->base(), 0x400); + state->subbank("bank1")->configure_entries(0, 2, machine.region("user2")->base(), 0x400); state->m_s2636_0 = machine.device("s2636_0"); state->m_s2636_1 = machine.device("s2636_1"); diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c index db363964a9a..e3c6d73e7f4 100644 --- a/src/mame/drivers/mayumi.c +++ b/src/mame/drivers/mayumi.c @@ -96,7 +96,7 @@ WRITE8_MEMBER(mayumi_state::bank_sel_w) { int bank = BIT(data, 7) | (BIT(data, 6) << 1); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); m_int_enable = data & 1; @@ -353,8 +353,8 @@ static MACHINE_START( mayumi ) mayumi_state *state = machine.driver_data<mayumi_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x4000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); + state->subbank("bank1")->set_entry(0); state->save_item(NAME(state->m_int_enable)); state->save_item(NAME(state->m_input_sel)); diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c index a098e8854c6..471fc2aff9d 100644 --- a/src/mame/drivers/mazerbla.c +++ b/src/mame/drivers/mazerbla.c @@ -361,14 +361,14 @@ WRITE8_MEMBER(mazerbla_state::cfb_rom_bank_sel_w)/* mazer blazer */ { m_gfx_rom_bank = data; - memory_set_bankptr(machine(), "bank1", machine().region("sub2")->base() + (m_gfx_rom_bank * 0x2000) + 0x10000); + subbank("bank1")->set_base(machine().region("sub2")->base() + (m_gfx_rom_bank * 0x2000) + 0x10000); } WRITE8_MEMBER(mazerbla_state::cfb_rom_bank_sel_w_gg)/* great guns */ { m_gfx_rom_bank = data >> 1; - memory_set_bankptr(machine(), "bank1", machine().region("sub2")->base() + (m_gfx_rom_bank * 0x2000) + 0x10000); + subbank("bank1")->set_base(machine().region("sub2")->base() + (m_gfx_rom_bank * 0x2000) + 0x10000); } diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c index 14349fe4b68..32b8ce9919e 100644 --- a/src/mame/drivers/mcatadv.c +++ b/src/mame/drivers/mcatadv.c @@ -206,7 +206,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(mcatadv_state::mcatadv_sound_bw_w) { - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); } @@ -430,8 +430,8 @@ static MACHINE_START( mcatadv ) mcatadv_state *state = machine.driver_data<mcatadv_state>(); UINT8 *ROM = machine.region("soundcpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); - memory_set_bank(machine, "bank1", 1); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank1")->set_entry(1); state->m_maincpu = machine.device("maincpu"); state->m_soundcpu = machine.device("soundcpu"); diff --git a/src/mame/drivers/megadrvb.c b/src/mame/drivers/megadrvb.c index ace885410ba..9344d3ebd27 100644 --- a/src/mame/drivers/megadrvb.c +++ b/src/mame/drivers/megadrvb.c @@ -726,7 +726,7 @@ static DRIVER_INIT( ssf2mdb ) machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x400000, 0x5fffff, "bank5"); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x400000, 0x5fffff); - memory_set_bankptr(machine, "bank5", machine.region( "maincpu" )->base() + 0x400000 ); + machine.root_device().subbank("bank5")->set_base(machine.region( "maincpu" )->base() + 0x400000 ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x770070, 0x770075, FUNC(ssf2mdb_dsw_r) ); diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c index cd2bed4d676..0a626cf1ba8 100644 --- a/src/mame/drivers/merit.c +++ b/src/mame/drivers/merit.c @@ -335,13 +335,13 @@ WRITE8_MEMBER(merit_state::casino5_bank_w) { if ( data == 0 ) { - memory_set_bank(machine(), "bank1", 1); - memory_set_bank(machine(), "bank2", 1); + subbank("bank1")->set_entry(1); + subbank("bank2")->set_entry(1); } else if ( data == 0xff ) { - memory_set_bank(machine(), "bank1", 0); - memory_set_bank(machine(), "bank2", 0); + subbank("bank1")->set_entry(0); + subbank("bank2")->set_entry(0); } else { @@ -1215,10 +1215,10 @@ void merit_state::dodge_nvram_init(nvram_device &nvram, void *base, size_t size) static MACHINE_START(casino5) { MACHINE_START_CALL(merit); - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x2000, 0x2000); - memory_configure_bank(machine, "bank2", 0, 2, machine.region("maincpu")->base() + 0x6000, 0x2000); - memory_set_bank(machine, "bank1", 0); - memory_set_bank(machine, "bank2", 0); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x2000, 0x2000); + machine.root_device().subbank("bank2")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x6000, 0x2000); + machine.root_device().subbank("bank1")->set_entry(0); + machine.root_device().subbank("bank2")->set_entry(0); } static MACHINE_CONFIG_START( pitboss, merit_state ) @@ -2041,7 +2041,7 @@ static DRIVER_INIT( couple ) dumpers it's just the way it is,a.k.a. it's an "hardware" banking. update 20060118 by f205v: now we have 3 dumps from 3 different boards and they all behave the same...*/ - memory_set_bankptr(machine, "bank1",ROM + 0x10000 + (0x2000 * 2)); + machine.root_device().subbank("bank1")->set_base(ROM + 0x10000 + (0x2000 * 2)); } static DRIVER_INIT( dtrvwz5 ) diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c index c235238a12a..b1cfad2c109 100644 --- a/src/mame/drivers/meritm.c +++ b/src/mame/drivers/meritm.c @@ -419,7 +419,7 @@ static void meritm_crt250_switch_banks( running_machine &machine ) int rombank = (state->m_bank & 0x07) ^ 0x07; //logerror( "CRT250: Switching banks: rom = %0x (bank = %x)\n", rombank, state->m_bank ); - memory_set_bank(machine, "bank1", rombank ); + state->subbank("bank1")->set_entry(rombank ); }; WRITE8_MEMBER(meritm_state::meritm_crt250_bank_w) @@ -437,9 +437,9 @@ static void meritm_switch_banks( running_machine &machine ) (state->m_psd_a15 & 0x1); //logerror( "Switching banks: rom = %0x (bank = %x), ram = %0x\n", rombank, state->m_bank, rambank); - memory_set_bank(machine, "bank1", rombank ); - memory_set_bank(machine, "bank2", rombank | 0x01); - memory_set_bank(machine, "bank3", rambank); + state->subbank("bank1")->set_entry(rombank ); + state->subbank("bank2")->set_entry(rombank | 0x01); + state->subbank("bank3")->set_entry(rambank); }; WRITE8_MEMBER(meritm_state::meritm_psd_a15_w) @@ -989,7 +989,7 @@ static MACHINE_START(merit_common) static MACHINE_START(meritm_crt250) { meritm_state *state = machine.driver_data<meritm_state>(); - memory_configure_bank(machine, "bank1", 0, 8, machine.region("maincpu")->base(), 0x10000); + state->subbank("bank1")->configure_entries(0, 8, machine.region("maincpu")->base(), 0x10000); state->m_bank = 0xff; meritm_crt250_switch_banks(machine); MACHINE_START_CALL(merit_common); @@ -1016,9 +1016,9 @@ static MACHINE_START(meritm_crt260) state->m_ram = auto_alloc_array(machine, UINT8, 0x8000 ); machine.device<nvram_device>("nvram")->set_base(state->m_ram, 0x8000); memset(state->m_ram, 0x00, 0x8000); - memory_configure_bank(machine, "bank1", 0, 128, machine.region("maincpu")->base(), 0x8000); - memory_configure_bank(machine, "bank2", 0, 128, machine.region("maincpu")->base(), 0x8000); - memory_configure_bank(machine, "bank3", 0, 4, state->m_ram, 0x2000); + state->subbank("bank1")->configure_entries(0, 128, machine.region("maincpu")->base(), 0x8000); + state->subbank("bank2")->configure_entries(0, 128, machine.region("maincpu")->base(), 0x8000); + state->subbank("bank3")->configure_entries(0, 4, state->m_ram, 0x2000); state->m_bank = 0xff; state->m_psd_a15 = 0; meritm_switch_banks(machine); diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index e7cc917f35d..d93d3cdb5b9 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -402,7 +402,7 @@ WRITE8_MEMBER(metro_state::metro_sound_rombank_w) bankaddress = 0x10000-0x4000 + ((data >> 4) & 0x03) * 0x4000; if (bankaddress < 0x10000) bankaddress = 0x0000; - memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]); + subbank("bank1")->set_base(&ROM[bankaddress]); } WRITE8_MEMBER(metro_state::daitorid_sound_rombank_w) @@ -413,7 +413,7 @@ WRITE8_MEMBER(metro_state::daitorid_sound_rombank_w) bankaddress = 0x10000-0x4000 + ((data >> 4) & 0x07) * 0x4000; if (bankaddress < 0x10000) bankaddress = 0x10000; - memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]); + subbank("bank1")->set_base(&ROM[bankaddress]); } @@ -1696,7 +1696,7 @@ WRITE8_MEMBER(metro_state::blzntrnd_sh_bankswitch_w) int bankaddress; bankaddress = 0x10000 + (data & 0x03) * 0x4000; - memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } static void blzntrnd_irqhandler(device_t *device, int irq) diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c index 12d369ffd62..e50e3fcb0a7 100644 --- a/src/mame/drivers/mexico86.c +++ b/src/mame/drivers/mexico86.c @@ -423,7 +423,7 @@ static MACHINE_START( mexico86 ) mexico86_state *state = machine.driver_data<mexico86_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 6, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/midqslvr.c b/src/mame/drivers/midqslvr.c index 699afe7d148..522dde7ef3d 100644 --- a/src/mame/drivers/midqslvr.c +++ b/src/mame/drivers/midqslvr.c @@ -132,50 +132,50 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i case 0x59: // PAM0 { if (data & 0x10) // enable RAM access to region 0xf0000 - 0xfffff - memory_set_bankptr(busdevice->machine(), "bios_bank", state->m_bios_ram); + state->subbank("bios_bank")->set_base(state->m_bios_ram); else // disable RAM access (reads go to BIOS ROM) - memory_set_bankptr(busdevice->machine(), "bios_bank", busdevice->machine().region("bios")->base() + 0x70000); + state->subbank("bios_bank")->set_base(busdevice->machine().region("bios")->base() + 0x70000); break; } case 0x5a: // PAM1 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "video_bank1", state->m_isa_ram1); + state->subbank("video_bank1")->set_base(state->m_isa_ram1); else - memory_set_bankptr(busdevice->machine(), "video_bank1", busdevice->machine().region("video_bios")->base() + 0); + state->subbank("video_bank1")->set_base(busdevice->machine().region("video_bios")->base() + 0); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "video_bank2", state->m_isa_ram2); + state->subbank("video_bank2")->set_base(state->m_isa_ram2); else - memory_set_bankptr(busdevice->machine(), "video_bank2", busdevice->machine().region("video_bios")->base() + 0x4000); + state->subbank("video_bank2")->set_base(busdevice->machine().region("video_bios")->base() + 0x4000); break; } case 0x5e: // PAM5 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "bios_ext1", state->m_bios_ext1_ram); + state->subbank("bios_ext1")->set_base(state->m_bios_ext1_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext1", busdevice->machine().region("bios")->base() + 0x60000); + state->subbank("bios_ext1")->set_base(busdevice->machine().region("bios")->base() + 0x60000); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "bios_ext2", state->m_bios_ext2_ram); + state->subbank("bios_ext2")->set_base(state->m_bios_ext2_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext2", busdevice->machine().region("bios")->base() + 0x64000); + state->subbank("bios_ext2")->set_base(busdevice->machine().region("bios")->base() + 0x64000); break; } case 0x5f: // PAM6 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "bios_ext3", state->m_bios_ext3_ram); + state->subbank("bios_ext3")->set_base(state->m_bios_ext3_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext3", busdevice->machine().region("bios")->base() + 0x68000); + state->subbank("bios_ext3")->set_base(busdevice->machine().region("bios")->base() + 0x68000); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "bios_ext4", state->m_bios_ext4_ram); + state->subbank("bios_ext4")->set_base(state->m_bios_ext4_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext4", busdevice->machine().region("bios")->base() + 0x6c000); + state->subbank("bios_ext4")->set_base(busdevice->machine().region("bios")->base() + 0x6c000); break; } @@ -674,13 +674,13 @@ static MACHINE_START( midqslvr ) static MACHINE_RESET( midqslvr ) { - memory_set_bankptr(machine, "bios_bank", machine.region("bios")->base() + 0x70000); - memory_set_bankptr(machine, "bios_ext1", machine.region("bios")->base() + 0x60000); - memory_set_bankptr(machine, "bios_ext2", machine.region("bios")->base() + 0x64000); - memory_set_bankptr(machine, "bios_ext3", machine.region("bios")->base() + 0x68000); - memory_set_bankptr(machine, "bios_ext4", machine.region("bios")->base() + 0x6c000); - memory_set_bankptr(machine, "video_bank1", machine.region("video_bios")->base() + 0); - memory_set_bankptr(machine, "video_bank2", machine.region("video_bios")->base() + 0x4000); + machine.root_device().subbank("bios_bank")->set_base(machine.region("bios")->base() + 0x70000); + machine.root_device().subbank("bios_ext1")->set_base(machine.region("bios")->base() + 0x60000); + machine.root_device().subbank("bios_ext2")->set_base(machine.region("bios")->base() + 0x64000); + machine.root_device().subbank("bios_ext3")->set_base(machine.region("bios")->base() + 0x68000); + machine.root_device().subbank("bios_ext4")->set_base(machine.region("bios")->base() + 0x6c000); + machine.root_device().subbank("video_bank1")->set_base(machine.region("video_bios")->base() + 0); + machine.root_device().subbank("video_bank2")->set_base(machine.region("video_bios")->base() + 0x4000); } diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index 2a5c41d9653..954bdc34ed9 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -268,7 +268,7 @@ WRITE32_MEMBER(midzeus_state::bitlatches_w) /* ROM bank selection on Zeus 2 */ case 5: - memory_set_bank(machine(), "bank1", bitlatch[offset] & 3); + subbank("bank1")->set_entry(bitlatch[offset] & 3); break; /* unknown purpose; crusnexo/thegrid write 1 at startup */ @@ -1441,7 +1441,7 @@ static DRIVER_INIT( crusnexo ) { dcs2_init(machine, 0, 0); midway_ioasic_init(machine, MIDWAY_IOASIC_STANDARD, 472/* or 476,477,478,110 */, 99, NULL); - memory_configure_bank(machine, "bank1", 0, 3, machine.region("user2")->base(), 0x400000*4); + machine.root_device().subbank("bank1")->configure_entries(0, 3, machine.region("user2")->base(), 0x400000*4); midzeus_state *state = machine.driver_data<midzeus_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x9b0004, 0x9b0007, read32_delegate(FUNC(midzeus_state::crusnexo_leds_r),state), write32_delegate(FUNC(midzeus_state::crusnexo_leds_w),state)); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler (0x8d0009, 0x8d000a, write32_delegate(FUNC(midzeus_state::keypad_select_w),state)); @@ -1452,7 +1452,7 @@ static DRIVER_INIT( thegrid ) { dcs2_init(machine, 0, 0); midway_ioasic_init(machine, MIDWAY_IOASIC_STANDARD, 474/* or 491 */, 99, NULL); - memory_configure_bank(machine, "bank1", 0, 3, machine.region("user2")->base(), 0x400000*4); + machine.root_device().subbank("bank1")->configure_entries(0, 3, machine.region("user2")->base(), 0x400000*4); } diff --git a/src/mame/drivers/missb2.c b/src/mame/drivers/missb2.c index 343366f913b..da36586db0a 100644 --- a/src/mame/drivers/missb2.c +++ b/src/mame/drivers/missb2.c @@ -154,8 +154,8 @@ WRITE8_MEMBER(missb2_state::missb2_bg_bank_w) // I don't know how this is really connected, bit 1 is always high afaik... bank = ((data & 2) ? 1 : 0) | ((data & 1) ? 4 : 0); - memory_set_bank(machine(), "bank2", bank); - memory_set_bank(machine(), "bank3", bank); + subbank("bank2")->set_entry(bank); + subbank("bank3")->set_entry(bank); } /* Memory Maps */ @@ -576,11 +576,11 @@ static void configure_banks( running_machine& machine ) UINT8 *ROM = machine.region("maincpu")->base(); UINT8 *SLAVE = machine.region("slave")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); /* 2009-11 FP: isn't there a way to configure both at once? */ - memory_configure_bank(machine, "bank2", 0, 7, &SLAVE[0x8000], 0x1000); - memory_configure_bank(machine, "bank3", 0, 7, &SLAVE[0x9000], 0x1000); + machine.root_device().subbank("bank2")->configure_entries(0, 7, &SLAVE[0x8000], 0x1000); + machine.root_device().subbank("bank3")->configure_entries(0, 7, &SLAVE[0x9000], 0x1000); } static DRIVER_INIT( missb2 ) diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c index 6059b6d1e81..1e4035d2251 100644 --- a/src/mame/drivers/mitchell.c +++ b/src/mame/drivers/mitchell.c @@ -150,7 +150,7 @@ static WRITE8_DEVICE_HANDLER( eeprom_serial_w ) WRITE8_MEMBER(mitchell_state::pang_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } /************************************* @@ -2106,13 +2106,13 @@ static void bootleg_decode( running_machine &machine ) { address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); space->set_decrypted_region(0x0000, 0x7fff, machine.region("maincpu")->base() + 0x50000); - memory_configure_bank_decrypted(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x60000, 0x4000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, 16, machine.region("maincpu")->base() + 0x60000, 0x4000); } static void configure_banks( running_machine &machine ) { - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); } diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c index 29ed49174cd..8ab98b5edb3 100644 --- a/src/mame/drivers/mjsister.c +++ b/src/mame/drivers/mjsister.c @@ -224,7 +224,7 @@ WRITE8_MEMBER(mjsister_state::mjsister_banksel1_w) if (tmp != m_colorbank) m_screen_redraw = 1; - memory_set_bank(machine(), "bank1", m_rombank0 * 2 + m_rombank1); + subbank("bank1")->set_entry(m_rombank0 * 2 + m_rombank1); } WRITE8_MEMBER(mjsister_state::mjsister_banksel2_w) @@ -242,7 +242,7 @@ WRITE8_MEMBER(mjsister_state::mjsister_banksel2_w) logerror("%04x p31_w:%02x\n", cpu_get_pc(&space.device()), data); } - memory_set_bank(machine(), "bank1", m_rombank0 * 2 + m_rombank1); + subbank("bank1")->set_entry(m_rombank0 * 2 + m_rombank1); } WRITE8_MEMBER(mjsister_state::mjsister_input_sel1_w) @@ -451,7 +451,7 @@ static MACHINE_START( mjsister ) mjsister_state *state = machine.driver_data<mjsister_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x10000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x8000); state->m_maincpu = machine.device("maincpu"); state->m_dac = machine.device("dac"); diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c index c8cac766a3d..b45c4aa08dc 100644 --- a/src/mame/drivers/mlanding.c +++ b/src/mame/drivers/mlanding.c @@ -271,7 +271,7 @@ WRITE16_MEMBER(mlanding_state::ml_output_w) static WRITE8_DEVICE_HANDLER( sound_bankswitch_w ) { data=0; - memory_set_bankptr(device->machine(), "bank1", device->machine().region("audiocpu")->base() + ((data) & 0x03) * 0x4000 + 0x10000 ); + device->machine().root_device().subbank("bank1")->set_base(device->machine().region("audiocpu")->base() + ((data) & 0x03) * 0x4000 + 0x10000 ); } static void ml_msm5205_vck(device_t *device) diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c index 2900ef61818..1b43e27dee7 100644 --- a/src/mame/drivers/model1.c +++ b/src/mame/drivers/model1.c @@ -664,7 +664,7 @@ WRITE16_MEMBER(model1_state::bank_w) if(ACCESSING_BITS_0_7) { switch(data & 0xf) { case 0x1: // 100000-1fffff data roms banking - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x1000000 + 0x100000*((data >> 4) & 0xf)); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x1000000 + 0x100000*((data >> 4) & 0xf)); logerror("BANK %x\n", 0x1000000 + 0x100000*((data >> 4) & 0xf)); break; case 0x2: // 200000-2fffff data roms banking (unused, all known games have only one bank) @@ -735,7 +735,7 @@ static TIMER_DEVICE_CALLBACK( model1_interrupt ) static MACHINE_RESET(model1) { model1_state *state = machine.driver_data<model1_state>(); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x1000000); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x1000000); irq_init(machine); model1_tgp_reset(machine, !strcmp(machine.system().name, "swa") || !strcmp(machine.system().name, "wingwar") || !strcmp(machine.system().name, "wingwaru") || !strcmp(machine.system().name, "wingwarj")); if (!strcmp(machine.system().name, "swa")) @@ -755,7 +755,7 @@ static MACHINE_RESET(model1) static MACHINE_RESET(model1_vr) { model1_state *state = machine.driver_data<model1_state>(); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x1000000); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x1000000); irq_init(machine); model1_vr_tgp_reset(machine); state->m_sound_irq = 3; diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index aca19347d33..be611b1cab7 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -356,8 +356,8 @@ static MACHINE_RESET(model2o) static MACHINE_RESET(model2_scsp) { model2_state *state = machine.driver_data<model2_state>(); - memory_set_bankptr(machine, "bank4", machine.region("scsp")->base() + 0x200000); - memory_set_bankptr(machine, "bank5", machine.region("scsp")->base() + 0x600000); + state->subbank("bank4")->set_base(machine.region("scsp")->base() + 0x200000); + state->subbank("bank5")->set_base(machine.region("scsp")->base() + 0x600000); // copy the 68k vector table into RAM memcpy(state->m_soundram, machine.region("audiocpu")->base() + 0x80000, 16); @@ -1849,13 +1849,13 @@ WRITE16_MEMBER(model2_state::model2snd_ctrl) UINT8 *snd = machine().region("scsp")->base(); if (data & 0x20) { - memory_set_bankptr(machine(), "bank4", snd + 0x200000); - memory_set_bankptr(machine(), "bank5", snd + 0x600000); + subbank("bank4")->set_base(snd + 0x200000); + subbank("bank5")->set_base(snd + 0x600000); } else { - memory_set_bankptr(machine(), "bank4", snd + 0x800000); - memory_set_bankptr(machine(), "bank5", snd + 0xa00000); + subbank("bank4")->set_base(snd + 0x800000); + subbank("bank5")->set_base(snd + 0xa00000); } } } diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index f627eeafbca..4fd0a63f5c8 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -1277,10 +1277,10 @@ static void model3_init(running_machine &machine, int step) state->m_sound_irq_enable = 0; state->m_sound_timer->adjust(attotime::never); - memory_set_bankptr(machine, "bank1", machine.region( "user1" )->base() + 0x800000 ); /* banked CROM */ + state->subbank("bank1")->set_base(machine.region( "user1" )->base() + 0x800000 ); /* banked CROM */ - memory_set_bankptr(machine, "bank4", machine.region("samples")->base() + 0x200000); - memory_set_bankptr(machine, "bank5", machine.region("samples")->base() + 0x600000); + state->subbank("bank4")->set_base(machine.region("samples")->base() + 0x200000); + state->subbank("bank5")->set_base(machine.region("samples")->base() + 0x600000); // copy the 68k vector table into RAM memcpy(state->m_soundram, machine.region("audiocpu")->base()+0x80000, 16); @@ -1589,7 +1589,7 @@ WRITE64_MEMBER(model3_state::model3_sys_w) data >>= 56; data = (~data) & 0x7; - memory_set_bankptr(machine(), "bank1", machine().region( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ + subbank("bank1")->set_base(machine().region( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ } if (ACCESSING_BITS_24_31) { @@ -1845,8 +1845,8 @@ WRITE64_MEMBER(model3_state::daytona2_rombank_w) { data >>= 56; data = (~data) & 0xf; - memory_set_bankptr(machine(), "bank1", machine().region( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ - memory_set_bankptr(machine(), "bank2", machine().region( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ + subbank("bank1")->set_base(machine().region( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ + subbank("bank2")->set_base(machine().region( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ } } @@ -5049,13 +5049,13 @@ WRITE16_MEMBER(model3_state::model3snd_ctrl) UINT8 *snd = machine().region("scsp2")->base(); if (data & 0x20) { - memory_set_bankptr(machine(), "bank4", snd + 0x200000); - memory_set_bankptr(machine(), "bank5", snd + 0x600000); + subbank("bank4")->set_base(snd + 0x200000); + subbank("bank5")->set_base(snd + 0x600000); } else { - memory_set_bankptr(machine(), "bank4", snd + 0x800000); - memory_set_bankptr(machine(), "bank5", snd + 0xa00000); + subbank("bank4")->set_base(snd + 0x800000); + subbank("bank5")->set_base(snd + 0xa00000); } } } diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c index 2cd1e14a2db..39d07d4050d 100644 --- a/src/mame/drivers/momoko.c +++ b/src/mame/drivers/momoko.c @@ -49,7 +49,7 @@ Stephh's notes (based on the game Z80 code and some tests) : WRITE8_MEMBER(momoko_state::momoko_bg_read_bank_w) { - memory_set_bank(machine(), "bank1", data & 0x1f); + subbank("bank1")->set_entry(data & 0x1f); } /****************************************************************************/ @@ -230,7 +230,7 @@ static MACHINE_START( momoko ) momoko_state *state = machine.driver_data<momoko_state>(); UINT8 *BG_MAP = machine.region("user1")->base(); - memory_configure_bank(machine, "bank1", 0, 32, &BG_MAP[0x0000], 0x1000); + state->subbank("bank1")->configure_entries(0, 32, &BG_MAP[0x0000], 0x1000); state->save_item(NAME(state->m_fg_scrollx)); state->save_item(NAME(state->m_fg_scrolly)); diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c index e044b911126..64af6cbd3c8 100644 --- a/src/mame/drivers/moo.c +++ b/src/mame/drivers/moo.c @@ -180,7 +180,7 @@ READ16_MEMBER(moo_state::sound_status_r) WRITE8_MEMBER(moo_state::sound_bankswitch_w) { - memory_set_bankptr(machine(), "bank1", machine().region("soundcpu")->base() + 0x10000 + (data&0xf)*0x4000); + subbank("bank1")->set_base(machine().region("soundcpu")->base() + 0x10000 + (data&0xf)*0x4000); } diff --git a/src/mame/drivers/mpu4.c b/src/mame/drivers/mpu4.c index dbc7fce1fb9..57fa8a994f3 100644 --- a/src/mame/drivers/mpu4.c +++ b/src/mame/drivers/mpu4.c @@ -466,9 +466,9 @@ static MACHINE_RESET( mpu4 ) { UINT8 *rom = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &rom[0x01000], 0x10000); + state->subbank("bank1")->configure_entries(0, 8, &rom[0x01000], 0x10000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->set_entry(0); machine.device("maincpu")->reset(); } } @@ -522,7 +522,7 @@ WRITE8_MEMBER(mpu4_state::bankswitch_w) // printf("bank %02x\n", data); m_pageval = (data & 0x03); - memory_set_bank(machine(), "bank1", (m_pageval + (m_pageset ? 4 : 0)) & 0x07); + subbank("bank1")->set_entry((m_pageval + (m_pageset ? 4 : 0)) & 0x07); } @@ -535,7 +535,7 @@ READ8_MEMBER(mpu4_state::bankswitch_r) WRITE8_MEMBER(mpu4_state::bankset_w) { m_pageval = (data - 2);//writes 2 and 3, to represent 0 and 1 - a hangover from the half page design? - memory_set_bank(machine(), "bank1", (m_pageval + (m_pageset ? 4 : 0)) & 0x07); + subbank("bank1")->set_entry((m_pageval + (m_pageset ? 4 : 0)) & 0x07); } @@ -1560,7 +1560,7 @@ static WRITE_LINE_DEVICE_HANDLER( pia_gb_cb2_w ) if (mstate->m_bwb_bank) { mstate->m_pageval = state; - memory_set_bank(device->machine(), "bank1", (mstate->m_pageval + (mstate->m_pageset ? 4 : 0)) & 0x07); + mstate->subbank("bank1")->set_entry((mstate->m_pageval + (mstate->m_pageset ? 4 : 0)) & 0x07); } } diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c index 543e5fec05f..c5554dbe30b 100644 --- a/src/mame/drivers/mquake.c +++ b/src/mame/drivers/mquake.c @@ -35,7 +35,7 @@ static WRITE8_DEVICE_HANDLER( mquake_cia_0_porta_w ) { /* switch banks as appropriate */ - memory_set_bank(device->machine(), "bank1", data & 1); + device->machine().root_device().subbank("bank1")->set_entry(data & 1); /* swap the write handlers between ROM and bank 1 based on the bit */ if ((data & 1) == 0) @@ -444,8 +444,8 @@ static DRIVER_INIT(mquake) amiga_machine_config(machine, &mquake_intf); /* set up memory */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_chip_ram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("user1")->base(), 0); + state->subbank("bank1")->configure_entry(0, state->m_chip_ram); + state->subbank("bank1")->configure_entry(1, machine.region("user1")->base()); } diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c index a5cdf5411a8..0b94e88fc95 100644 --- a/src/mame/drivers/ms32.c +++ b/src/mame/drivers/ms32.c @@ -1352,8 +1352,8 @@ READ8_MEMBER(ms32_state::latch_r) WRITE8_MEMBER(ms32_state::ms32_snd_bank_w) { - memory_set_bank(machine(), "bank4", (data >> 0) & 0x0F); - memory_set_bank(machine(), "bank5", (data >> 4) & 0x0F); + subbank("bank4")->set_entry((data >> 0) & 0x0F); + subbank("bank5")->set_entry((data >> 4) & 0x0F); } WRITE8_MEMBER(ms32_state::to_main_w) @@ -1381,9 +1381,9 @@ ADDRESS_MAP_END static MACHINE_RESET( ms32 ) { - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base()); - memory_set_bank(machine, "bank4", 0); - memory_set_bank(machine, "bank5", 1); + machine.root_device().subbank("bank1")->set_base(machine.region("maincpu")->base()); + machine.root_device().subbank("bank4")->set_entry(0); + machine.root_device().subbank("bank5")->set_entry(1); irq_init(machine); } @@ -2202,8 +2202,8 @@ static void configure_banks(running_machine &machine) { ms32_state *state = machine.driver_data<ms32_state>(); state_save_register_global(machine, state->m_to_main); - memory_configure_bank(machine, "bank4", 0, 16, machine.region("audiocpu")->base() + 0x14000, 0x4000); - memory_configure_bank(machine, "bank5", 0, 16, machine.region("audiocpu")->base() + 0x14000, 0x4000); + state->subbank("bank4")->configure_entries(0, 16, machine.region("audiocpu")->base() + 0x14000, 0x4000); + state->subbank("bank5")->configure_entries(0, 16, machine.region("audiocpu")->base() + 0x14000, 0x4000); } static DRIVER_INIT( ms32_common ) diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index f0c1cb9703b..f42f500b628 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -333,7 +333,7 @@ WRITE8_MEMBER(multfish_state::multfish_vid_w) WRITE8_MEMBER(multfish_state::multfish_bank_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } static READ8_DEVICE_HANDLER( multfish_timekeeper_r ) @@ -1009,8 +1009,8 @@ static MACHINE_RESET( multfish ) { multfish_state *state = machine.driver_data<multfish_state>(); - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base(), 0x4000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base(), 0x4000); + state->subbank("bank1")->set_entry(0); state->m_disp_enable = 0; state->m_rambk = 0; diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c index 57755e6b13e..92cd5318c65 100644 --- a/src/mame/drivers/multigam.c +++ b/src/mame/drivers/multigam.c @@ -196,7 +196,7 @@ static void set_videorom_bank(running_machine& machine, int start, int count, in /* count determines the size of the area mapped in KB */ for (i = 0; i < count; i++, offset += 0x400) { - memory_set_bankptr(machine, banknames[i + start], machine.region("gfx1")->base() + offset); + machine.root_device().subbank(banknames[i + start])->set_base(machine.region("gfx1")->base() + offset); } } @@ -209,7 +209,7 @@ static void set_videoram_bank(running_machine& machine, int start, int count, in /* count determines the size of the area mapped in KB */ for (i = 0; i < count; i++, offset += 0x400) { - memory_set_bankptr(machine, banknames[i + start], state->m_vram + offset); + state->subbank(banknames[i + start])->set_base(state->m_vram + offset); } } @@ -313,7 +313,7 @@ WRITE8_MEMBER(multigam_state::multigam_switch_prg_rom) WRITE8_MEMBER(multigam_state::multigam_switch_gfx_rom) { - memory_set_bankptr(machine(), "bank1", machine().region("gfx1")->base() + (0x2000 * (data & 0x3f))); + subbank("bank1")->set_base(machine().region("gfx1")->base() + (0x2000 * (data & 0x3f))); set_mirroring(data & 0x40 ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); m_game_gfx_bank = data; }; @@ -323,7 +323,7 @@ WRITE8_MEMBER(multigam_state::multigam_mapper2_w) { if (m_game_gfx_bank & 0x80) { - memory_set_bankptr(machine(), "bank1", machine().region("gfx1")->base() + (0x2000 * ((data & 0x3) + (m_game_gfx_bank & 0x3c)))); + subbank("bank1")->set_base(machine().region("gfx1")->base() + (0x2000 * ((data & 0x3) + (m_game_gfx_bank & 0x3c)))); } else { @@ -511,11 +511,11 @@ WRITE8_MEMBER(multigam_state::multigam3_mmc3_rom_switch_w) case 0x2001: /* enable ram at $6000 */ if (data & 0x80) { - memory_set_bankptr(machine(), "bank10", m_multigmc_mmc3_6000_ram); + subbank("bank10")->set_base(m_multigmc_mmc3_6000_ram); } else { - memory_set_bankptr(machine(), "bank10", machine().region("maincpu")->base() + 0x6000); + subbank("bank10")->set_base(machine().region("maincpu")->base() + 0x6000); } if (data & 0x40) { @@ -599,7 +599,7 @@ WRITE8_MEMBER(multigam_state::multigm3_switch_prg_rom) else { space.install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::multigm3_mapper2_w),this) ); - memory_set_bankptr(machine(), "bank10", machine().region("maincpu")->base() + 0x6000); + subbank("bank10")->set_base(machine().region("maincpu")->base() + 0x6000); } if (data & 0x80) @@ -865,7 +865,7 @@ static void supergm3_set_bank(running_machine &machine) // VRAM ppu->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank1"); ppu->memory().space(AS_PROGRAM)->install_write_bank(0x0000, 0x1fff, "bank1"); - memory_set_bankptr(machine, "bank1", state->m_vram); + state->subbank("bank1")->set_base(state->m_vram); if (state->m_supergm3_chr_bank == 0x40) state->set_mirroring(PPU_MIRROR_VERT); @@ -890,7 +890,7 @@ static void supergm3_set_bank(running_machine &machine) { // title screen memcpy(mem + 0x8000, mem + 0x18000, 0x8000); - memory_set_bankptr(machine, "bank10", mem + 0x6000); + state->subbank("bank10")->set_base(mem + 0x6000); ppu->set_scanline_callback(0); } else if ((state->m_supergm3_prg_bank & 0x40) == 0) @@ -1139,7 +1139,7 @@ static MACHINE_START( multigam ) machine.device("ppu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),state), write8_delegate(FUNC(multigam_state::multigam_nt_w),state)); machine.device("ppu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank1"); - memory_set_bankptr(machine, "bank1", machine.region("gfx1")->base()); + state->subbank("bank1")->set_base(machine.region("gfx1")->base()); } static MACHINE_START( multigm3 ) diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c index ed8dffb8486..cbc5c39402e 100644 --- a/src/mame/drivers/mystwarr.c +++ b/src/mame/drivers/mystwarr.c @@ -557,7 +557,7 @@ ADDRESS_MAP_END static void reset_sound_region(running_machine &machine) { mystwarr_state *state = machine.driver_data<mystwarr_state>(); - memory_set_bankptr(machine, "bank2", machine.region("soundcpu")->base() + 0x10000 + state->m_cur_sound_region*0x4000); + state->subbank("bank2")->set_base(machine.region("soundcpu")->base() + 0x10000 + state->m_cur_sound_region*0x4000); } WRITE8_MEMBER(mystwarr_state::sound_bankswitch_w) diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index 8e2b2c75e50..44e98b54875 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -187,13 +187,13 @@ WRITE32_MEMBER(namcofl_state::namcofl_sysreg_w) { if (data == 0) // RAM at 00000000, ROM at 10000000 { - memory_set_bankptr(machine(), "bank1", m_workram ); - memory_set_bankptr(machine(), "bank2", machine().region("maincpu")->base() ); + subbank("bank1")->set_base(m_workram ); + subbank("bank2")->set_base(machine().region("maincpu")->base() ); } else // ROM at 00000000, RAM at 10000000 { - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() ); - memory_set_bankptr(machine(), "bank2", m_workram ); + subbank("bank1")->set_base(machine().region("maincpu")->base() ); + subbank("bank2")->set_base(m_workram ); } } } @@ -580,8 +580,8 @@ static MACHINE_RESET( namcofl ) machine.scheduler().timer_set(machine.primary_screen->time_until_pos(machine.primary_screen->visible_area().max_y + 3), FUNC(network_interrupt_callback)); machine.scheduler().timer_set(machine.primary_screen->time_until_pos(machine.primary_screen->visible_area().max_y + 1), FUNC(vblank_interrupt_callback)); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() ); - memory_set_bankptr(machine, "bank2", state->m_workram ); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() ); + state->subbank("bank2")->set_base(state->m_workram ); memset(state->m_workram, 0x00, 0x100000); } @@ -811,8 +811,8 @@ static void namcofl_common_init(running_machine &machine) namcofl_state *state = machine.driver_data<namcofl_state>(); state->m_workram = auto_alloc_array(machine, UINT32, 0x100000/4); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() ); - memory_set_bankptr(machine, "bank2", state->m_workram ); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() ); + state->subbank("bank2")->set_base(state->m_workram ); } static DRIVER_INIT(speedrcr) diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c index f3b5abc48a5..74002cf133f 100644 --- a/src/mame/drivers/namcos11.c +++ b/src/mame/drivers/namcos11.c @@ -617,7 +617,7 @@ READ32_MEMBER(namcos11_state::keycus_c443_r) INLINE void bankswitch_rom8( address_space *space, const char *bank, int n_data ) { - memory_set_bank( space->machine(), bank, ( ( n_data & 0xc0 ) >> 4 ) + ( n_data & 0x03 ) ); + space->machine().root_device().subbank( bank )->set_entry( ( ( n_data & 0xc0 ) >> 4 ) + ( n_data & 0x03 ) ); } static const char * const bankname[] = { "bank1", "bank2", "bank3", "bank4", "bank5", "bank6", "bank7", "bank8" }; @@ -656,7 +656,7 @@ INLINE void bankswitch_rom64( address_space *space, const char *bank, int n_data namcos11_state *state = space->machine().driver_data<namcos11_state>(); /* todo: verify behaviour */ - memory_set_bank( space->machine(), bank, ( ( ( ( n_data & 0xc0 ) >> 3 ) + ( n_data & 0x07 ) ) ^ state->m_n_bankoffset ) ); + state->subbank( bank )->set_entry( ( ( ( ( n_data & 0xc0 ) >> 3 ) + ( n_data & 0x07 ) ) ^ state->m_n_bankoffset ) ); } WRITE32_MEMBER(namcos11_state::bankswitch_rom64_w) @@ -891,8 +891,8 @@ static void namcos11_init_common(running_machine &machine, int n_daughterboard) for (bank = 0; bank < 8; bank++) { - memory_configure_bank(machine, bankname[bank], 0, len / ( 1024 * 1024 ), rgn, 1024 * 1024 ); - memory_set_bank(machine, bankname[bank], 0 ); + state->subbank(bankname[bank])->configure_entries(0, len / ( 1024 * 1024 ), rgn, 1024 * 1024 ); + state->subbank(bankname[bank])->set_entry(0 ); } if (n_daughterboard == 32) diff --git a/src/mame/drivers/namcos12.c b/src/mame/drivers/namcos12.c index 85039fd275d..1046f90c5ff 100644 --- a/src/mame/drivers/namcos12.c +++ b/src/mame/drivers/namcos12.c @@ -1159,7 +1159,7 @@ WRITE32_MEMBER(namcos12_state::bankoffset_w) m_n_bankoffset = data; } - memory_set_bank( machine(), "bank1", m_n_bankoffset ); + subbank( "bank1" )->set_entry( m_n_bankoffset ); verboselog( machine(), 1, "bankoffset_w( %08x, %08x, %08x ) %08x\n", offset, data, mem_mask, m_n_bankoffset ); } @@ -1321,13 +1321,13 @@ static void system11gun_install( running_machine &machine ) WRITE32_MEMBER(namcos12_state::kcoff_w) { - memory_set_bankptr( machine(), "bank2", machine().region( "user1" )->base() + 0x20280 ); + subbank( "bank2" )->set_base( machine().region( "user1" )->base() + 0x20280 ); } WRITE32_MEMBER(namcos12_state::kcon_w) { - memory_set_bankptr( machine(), "bank2", m_kcram ); + subbank( "bank2" )->set_base( m_kcram ); } WRITE32_MEMBER(namcos12_state::tektagt_protection_1_w) @@ -1429,7 +1429,7 @@ static MACHINE_RESET( namcos12 ) space->install_write_handler(0x1f018000, 0x1f018003, write32_delegate(FUNC(namcos12_state::kcoff_w),state)); memset( state->m_kcram, 0, sizeof( state->m_kcram ) ); - memory_set_bankptr( space->machine(), "bank2", state->m_kcram ); + state->subbank( "bank2" )->set_base( state->m_kcram ); } } @@ -1627,7 +1627,7 @@ static DRIVER_INIT( namcos12 ) psx_driver_init(machine); - memory_configure_bank(machine, "bank1", 0, machine.region( "user2" )->bytes() / 0x200000, machine.region( "user2" )->base(), 0x200000 ); + state->subbank("bank1")->configure_entries(0, machine.region( "user2" )->bytes() / 0x200000, machine.region( "user2" )->base(), 0x200000 ); state->m_s12_porta = 0; state->m_s12_rtcstate = 0; @@ -1640,7 +1640,7 @@ static DRIVER_INIT( namcos12 ) state->m_n_dmaoffset = 0; state->m_n_dmabias = 0; state->m_n_bankoffset = 0; - memory_set_bank( machine, "bank1", 0 ); + state->subbank( "bank1" )->set_entry( 0 ); state->save_item( NAME(state->m_n_dmaoffset) ); state->save_item( NAME(state->m_n_dmabias) ); diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c index a6ba75c1661..edcfab18c73 100644 --- a/src/mame/drivers/namcos86.c +++ b/src/mame/drivers/namcos86.c @@ -190,7 +190,7 @@ WRITE8_MEMBER(namcos86_state::bankswitch1_w) /* with bankswitch1_ext_w() in wndrmomo */ if (machine().region("user1")->base()) return; - memory_set_bankptr(machine(), "bank1",base + ((data & 0x03) * 0x2000)); + subbank("bank1")->set_base(base + ((data & 0x03) * 0x2000)); } WRITE8_MEMBER(namcos86_state::bankswitch1_ext_w) @@ -199,14 +199,14 @@ WRITE8_MEMBER(namcos86_state::bankswitch1_ext_w) if (base == 0) return; - memory_set_bankptr(machine(), "bank1",base + ((data & 0x1f) * 0x2000)); + subbank("bank1")->set_base(base + ((data & 0x1f) * 0x2000)); } WRITE8_MEMBER(namcos86_state::bankswitch2_w) { UINT8 *base = machine().region("cpu2")->base() + 0x10000; - memory_set_bankptr(machine(), "bank2",base + ((data & 0x03) * 0x2000)); + subbank("bank2")->set_base(base + ((data & 0x03) * 0x2000)); } /* Stubs to pass the correct Dip Switch setup to the MCU */ @@ -326,7 +326,7 @@ static MACHINE_RESET( namco86 ) { UINT8 *base = machine.region("cpu1")->base() + 0x10000; - memory_set_bankptr(machine, "bank1",base); + machine.root_device().subbank("bank1")->set_base(base); } diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c index f6758e56994..f623ad7b4fe 100644 --- a/src/mame/drivers/nbmj8991.c +++ b/src/mame/drivers/nbmj8991.c @@ -49,7 +49,7 @@ Notes: WRITE8_MEMBER(nbmj8991_state::nbmj8991_soundbank_w) { if (!(data & 0x80)) soundlatch_clear_byte_w(space, 0, 0); - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } WRITE8_MEMBER(nbmj8991_state::nbmj8991_sound_w) @@ -70,8 +70,8 @@ static MACHINE_RESET( nbmj8991 ) device_t *audiocpu = machine.device("audiocpu"); if (audiocpu != NULL && audiocpu->type() == Z80) { - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x8000, 0x8000); - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x8000, 0x8000); + machine.root_device().subbank("bank1")->set_entry(0); } MACHINE_RESET_CALL(nb1413m3); } diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c index 288d42d06cd..359b7c5473b 100644 --- a/src/mame/drivers/nbmj9195.c +++ b/src/mame/drivers/nbmj9195.c @@ -42,7 +42,7 @@ WRITE8_MEMBER(nbmj9195_state::nbmj9195_soundbank_w) { UINT8 *SNDROM = machine().region("audiocpu")->base(); - memory_set_bankptr(machine(), "bank1", &SNDROM[0x08000 + (0x8000 * (data & 0x03))]); + subbank("bank1")->set_base(&SNDROM[0x08000 + (0x8000 * (data & 0x03))]); } READ8_MEMBER(nbmj9195_state::nbmj9195_sound_r) diff --git a/src/mame/drivers/neodrvr.c b/src/mame/drivers/neodrvr.c index 6f42315d13e..ec2048719cd 100644 --- a/src/mame/drivers/neodrvr.c +++ b/src/mame/drivers/neodrvr.c @@ -9560,7 +9560,7 @@ static DRIVER_INIT( mslug5 ) static TIMER_CALLBACK( ms5pcb_bios_timer_callback ) { int harddip3 = input_port_read(machine, "HARDDIP") & 1; - memory_set_bankptr(machine, NEOGEO_BANK_BIOS, machine.region("mainbios")->base() + 0x20000 + harddip3 * 0x20000); + machine.root_device().subbank(NEOGEO_BANK_BIOS)->set_base(machine.region("mainbios")->base() + 0x20000 + harddip3 * 0x20000); } static DRIVER_INIT( ms5pcb ) @@ -9597,7 +9597,7 @@ static DRIVER_INIT( ms5plus ) static TIMER_CALLBACK( svcpcb_bios_timer_callback ) { int harddip3 = input_port_read(machine, "HARDDIP") & 1; - memory_set_bankptr(machine, NEOGEO_BANK_BIOS, machine.region("mainbios")->base() + 0x20000 + harddip3 * 0x20000); + machine.root_device().subbank(NEOGEO_BANK_BIOS)->set_base(machine.region("mainbios")->base() + 0x20000 + harddip3 * 0x20000); } static DRIVER_INIT( svcpcb ) diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index 4ec5ae69de5..96da58a7cef 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -625,7 +625,7 @@ CUSTOM_INPUT_MEMBER(neogeo_state::get_audio_result) static void _set_main_cpu_vector_table_source( running_machine &machine ) { neogeo_state *state = machine.driver_data<neogeo_state>(); - memory_set_bank(machine, NEOGEO_BANK_VECTORS, state->m_main_cpu_vector_table_source); + state->subbank(NEOGEO_BANK_VECTORS)->set_entry(state->m_main_cpu_vector_table_source); } @@ -641,7 +641,7 @@ static void set_main_cpu_vector_table_source( running_machine &machine, UINT8 da static void _set_main_cpu_bank_address( running_machine &machine ) { neogeo_state *state = machine.driver_data<neogeo_state>(); - memory_set_bankptr(machine, NEOGEO_BANK_CARTRIDGE, &machine.region("maincpu")->base()[state->m_main_cpu_bank_address]); + state->subbank(NEOGEO_BANK_CARTRIDGE)->set_base(&machine.region("maincpu")->base()[state->m_main_cpu_bank_address]); } @@ -684,8 +684,8 @@ static void main_cpu_banking_init( running_machine &machine ) address_space *mainspace = machine.device("maincpu")->memory().space(AS_PROGRAM); /* create vector banks */ - memory_configure_bank(machine, NEOGEO_BANK_VECTORS, 0, 1, machine.region("mainbios")->base(), 0); - memory_configure_bank(machine, NEOGEO_BANK_VECTORS, 1, 1, machine.region("maincpu")->base(), 0); + machine.root_device().subbank(NEOGEO_BANK_VECTORS)->configure_entry(0, machine.region("mainbios")->base()); + machine.root_device().subbank(NEOGEO_BANK_VECTORS)->configure_entry(1, machine.region("maincpu")->base()); /* set initial main CPU bank */ if (machine.region("maincpu")->bytes() > 0x100000) @@ -708,7 +708,7 @@ static void set_audio_cpu_banking( running_machine &machine ) int region; for (region = 0; region < 4; region++) - memory_set_bank(machine, NEOGEO_BANK_AUDIO_CPU_CART_BANK + region, state->m_audio_cpu_banks[region]); + state->subbank(NEOGEO_BANK_AUDIO_CPU_CART_BANK + region)->set_entry(state->m_audio_cpu_banks[region]); } @@ -763,7 +763,7 @@ static void _set_audio_cpu_rom_source( address_space *space ) /* if (!machine.region("audiobios")->base()) */ state->m_audio_cpu_rom_source = 1; - memory_set_bank(space->machine(), NEOGEO_BANK_AUDIO_CPU_MAIN_BANK, state->m_audio_cpu_rom_source); + state->subbank(NEOGEO_BANK_AUDIO_CPU_MAIN_BANK)->set_entry(state->m_audio_cpu_rom_source); /* reset CPU if the source changed -- this is a guess */ if (state->m_audio_cpu_rom_source != state->m_audio_cpu_rom_source_last) @@ -796,8 +796,8 @@ static void audio_cpu_banking_init( running_machine &machine ) /* audio bios/cartridge selection */ if (machine.region("audiobios")->base()) - memory_configure_bank(machine, NEOGEO_BANK_AUDIO_CPU_MAIN_BANK, 0, 1, machine.region("audiobios")->base(), 0); - memory_configure_bank(machine, NEOGEO_BANK_AUDIO_CPU_MAIN_BANK, 1, 1, machine.region("audiocpu")->base(), 0); + state->subbank(NEOGEO_BANK_AUDIO_CPU_MAIN_BANK)->configure_entry(0, machine.region("audiobios")->base()); + state->subbank(NEOGEO_BANK_AUDIO_CPU_MAIN_BANK)->configure_entry(1, machine.region("audiocpu")->base()); /* audio banking */ address_mask = machine.region("audiocpu")->bytes() - 0x10000 - 1; @@ -808,7 +808,7 @@ static void audio_cpu_banking_init( running_machine &machine ) for (bank = 0; bank < 0x100; bank++) { UINT32 bank_address = 0x10000 + (((bank << (11 + region)) & 0x3ffff) & address_mask); - memory_configure_bank(machine, NEOGEO_BANK_AUDIO_CPU_CART_BANK + region, bank, 1, &rgn[bank_address], 0); + state->subbank(NEOGEO_BANK_AUDIO_CPU_CART_BANK + region)->configure_entry(bank, &rgn[bank_address]); } } @@ -990,7 +990,7 @@ static MACHINE_START( neogeo ) machine.device<nvram_device>("saveram")->set_base(save_ram, 0x10000); /* set the BIOS bank */ - memory_set_bankptr(machine, NEOGEO_BANK_BIOS, machine.region("mainbios")->base()); + state->subbank(NEOGEO_BANK_BIOS)->set_base(machine.region("mainbios")->base()); /* set the initial main CPU bank */ main_cpu_banking_init(machine); @@ -1335,7 +1335,7 @@ DEVICE_IMAGE_LOAD( neo_cartridge ) // setup cartridge ROM area image.device().machine().device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x000080,0x0fffff,"cart_rom"); - memory_set_bankptr(image.device().machine(),"cart_rom",&image.device().machine().region("maincpu")->base()[0x80]); + image.device().machine().root_device().subbank("cart_rom")->set_base(&image.device().machine().region("maincpu")->base()[0x80]); // handle possible protection mvs_install_protection(image); diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c index 37f60e7f5b6..7907ccf1457 100644 --- a/src/mame/drivers/ninjakd2.c +++ b/src/mame/drivers/ninjakd2.c @@ -175,16 +175,16 @@ static INTERRUPT_GEN( ninjakd2_interrupt ) static MACHINE_RESET( ninjakd2 ) { /* initialize main Z80 bank */ - memory_configure_bank(machine, "bank1", 0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000); - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->configure_entries(0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->set_entry(0); } static void robokid_init_banks(running_machine &machine) { /* initialize main Z80 bank */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base(), 0x4000); - memory_configure_bank(machine, "bank1", 2, 14, machine.region("maincpu")->base() + 0x10000, 0x4000); - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base(), 0x4000); + machine.root_device().subbank("bank1")->configure_entries(2, 14, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->set_entry(0); } static MACHINE_RESET( robokid ) @@ -202,12 +202,12 @@ static MACHINE_RESET( omegaf ) WRITE8_MEMBER(ninjakd2_state::ninjakd2_bankselect_w) { - memory_set_bank(machine(), "bank1", data & 0x7); + subbank("bank1")->set_entry(data & 0x7); } WRITE8_MEMBER(ninjakd2_state::robokid_bankselect_w) { - memory_set_bank(machine(), "bank1", data & 0xf); + subbank("bank1")->set_entry(data & 0xf); } diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c index 94cfa6d4e9e..8251d93e1a9 100644 --- a/src/mame/drivers/ninjaw.c +++ b/src/mame/drivers/ninjaw.c @@ -355,7 +355,7 @@ WRITE16_MEMBER(ninjaw_state::cpua_ctrl_w) static void reset_sound_region( running_machine &machine ) { ninjaw_state *state = machine.driver_data<ninjaw_state>(); - memory_set_bank(machine, "bank10", state->m_banknum); + state->subbank("bank10")->set_entry(state->m_banknum); } WRITE8_MEMBER(ninjaw_state::sound_bankswitch_w) @@ -757,7 +757,7 @@ static MACHINE_START( ninjaw ) { ninjaw_state *state = machine.driver_data<ninjaw_state>(); - memory_configure_bank(machine, "bank10", 0, 8, machine.region("audiocpu")->base() + 0xc000, 0x4000); + state->subbank("bank10")->configure_entries(0, 8, machine.region("audiocpu")->base() + 0xc000, 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c index 6c6d914ad16..2eff4695c77 100644 --- a/src/mame/drivers/niyanpai.c +++ b/src/mame/drivers/niyanpai.c @@ -57,7 +57,7 @@ static void niyanpai_soundbank_w(running_machine &machine, int data) { UINT8 *SNDROM = machine.region("audiocpu")->base(); - memory_set_bankptr(machine, "bank1", &SNDROM[0x08000 + (0x8000 * (data & 0x03))]); + machine.root_device().subbank("bank1")->set_base(&SNDROM[0x08000 + (0x8000 * (data & 0x03))]); } READ8_MEMBER(niyanpai_state::niyanpai_sound_r) diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c index cb12661c99e..eb2d43735f2 100644 --- a/src/mame/drivers/nmk16.c +++ b/src/mame/drivers/nmk16.c @@ -277,7 +277,7 @@ WRITE8_MEMBER(nmk16_state::macross2_sound_bank_w) { UINT8 *rom = machine().region("audiocpu")->base() + 0x10000; - memory_set_bankptr(machine(), "bank1",rom + (data & 0x07) * 0x4000); + subbank("bank1")->set_base(rom + (data & 0x07) * 0x4000); } WRITE8_MEMBER(nmk16_state::tharrier_oki6295_bankswitch_0_w) @@ -1067,7 +1067,7 @@ WRITE8_MEMBER(nmk16_state::okibank_w) WRITE8_MEMBER(nmk16_state::raphero_sound_rombank_w) { - memory_set_bankptr(machine(), "bank1",machine().region("audiocpu")->base() + 0x10000 + (data & 0x07) * 0x4000); + subbank("bank1")->set_base(machine().region("audiocpu")->base() + 0x10000 + (data & 0x07) * 0x4000); } static ADDRESS_MAP_START( raphero_sound_mem_map, AS_PROGRAM, 8, nmk16_state ) diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c index 89362627f2b..8e980084e9b 100644 --- a/src/mame/drivers/nss.c +++ b/src/mame/drivers/nss.c @@ -481,7 +481,7 @@ WRITE8_MEMBER(nss_state::port80_w) ---- ---x BIOS bankswitch */ - memory_set_bank(machine(), "bank1", data & 1); + subbank("bank1")->set_entry(data & 1); m_m50458_rom_bank = data & 4; } @@ -512,8 +512,8 @@ static MACHINE_START( nss ) nss_state *state = machine.driver_data<nss_state>(); UINT8 *ROM = machine.region("bios")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x10000], 0x8000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x8000); + state->subbank("bank1")->set_entry(0); state->m_m50458_rom_bank = 0; diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c index 44a46ce8a22..a9399c0a892 100644 --- a/src/mame/drivers/nycaptor.c +++ b/src/mame/drivers/nycaptor.c @@ -331,7 +331,7 @@ READ8_MEMBER(nycaptor_state::nycaptor_generic_control_r) WRITE8_MEMBER(nycaptor_state::nycaptor_generic_control_w) { m_generic_control_reg = data; - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x10000 + ((data&0x08)>>3)*0x4000 ); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x10000 + ((data&0x08)>>3)*0x4000 ); } static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state ) @@ -436,7 +436,7 @@ WRITE8_MEMBER(nycaptor_state::cyclshtg_generic_control_w) int bank = (data >> 2) & 3; m_generic_control_reg = data; - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x10000 + bank*0x4000 ); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x10000 + bank*0x4000 ); } diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c index f854419551c..3895b0fcce8 100644 --- a/src/mame/drivers/ojankohs.c +++ b/src/mame/drivers/ojankohs.c @@ -41,13 +41,13 @@ Memo: WRITE8_MEMBER(ojankohs_state::ojankohs_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0x3f); + subbank("bank1")->set_entry(data & 0x3f); } WRITE8_MEMBER(ojankohs_state::ojankoy_rombank_w) { - memory_set_bank(machine(), "bank1", data & 0x1f); + subbank("bank1")->set_entry(data & 0x1f); m_adpcm_reset = BIT(data, 5); if (!m_adpcm_reset) @@ -95,7 +95,7 @@ static void ojankohs_adpcm_int( device_t *device ) WRITE8_MEMBER(ojankohs_state::ojankoc_ctrl_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); m_adpcm_reset = BIT(data, 4); msm5205_reset_w(m_msm, !BIT(data, 4)); @@ -810,7 +810,7 @@ static MACHINE_START( ojankohs ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x40, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x40, &ROM[0x10000], 0x4000); MACHINE_START_CALL(common); } @@ -819,7 +819,7 @@ static MACHINE_START( ojankoy ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 0x20, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x20, &ROM[0x10000], 0x4000); MACHINE_START_CALL(common); } @@ -828,7 +828,7 @@ static MACHINE_START( ojankoc ) { UINT8 *ROM = machine.region("user1")->base(); - memory_configure_bank(machine, "bank1", 0, 0x10, &ROM[0x0000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x10, &ROM[0x0000], 0x8000); MACHINE_START_CALL(common); } diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c index fef428045d1..b66dcde1017 100644 --- a/src/mame/drivers/onetwo.c +++ b/src/mame/drivers/onetwo.c @@ -120,7 +120,7 @@ WRITE8_MEMBER(onetwo_state::onetwo_fgram_w) WRITE8_MEMBER(onetwo_state::onetwo_cpubank_w) { - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); } WRITE8_MEMBER(onetwo_state::onetwo_coin_counters_w) @@ -350,7 +350,7 @@ static MACHINE_START( onetwo ) onetwo_state *state = machine.driver_data<onetwo_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c index ee9da646674..e32eb5fa932 100644 --- a/src/mame/drivers/opwolf.c +++ b/src/mame/drivers/opwolf.c @@ -346,7 +346,7 @@ READ8_MEMBER(opwolf_state::z80_input2_r) static WRITE8_DEVICE_HANDLER( sound_bankswitch_w ) { - memory_set_bank(device->machine(), "bank10", (data - 1) & 0x03); + device->machine().root_device().subbank("bank10")->set_entry((data - 1) & 0x03); } /*********************************************************** @@ -989,7 +989,7 @@ static DRIVER_INIT( opwolf ) state->m_opwolf_gun_xoffs = 0xec - (rom[0x03ffb0 / 2] & 0xff); state->m_opwolf_gun_yoffs = 0x1c - (rom[0x03ffae / 2] & 0xff); - memory_configure_bank(machine, "bank10", 0, 4, machine.region("audiocpu")->base() + 0x10000, 0x4000); + state->subbank("bank10")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000, 0x4000); } @@ -1004,7 +1004,7 @@ static DRIVER_INIT( opwolfb ) state->m_opwolf_gun_xoffs = -2; state->m_opwolf_gun_yoffs = 17; - memory_configure_bank(machine, "bank10", 0, 4, machine.region("audiocpu")->base() + 0x10000, 0x4000); + state->subbank("bank10")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000, 0x4000); } diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c index b47f5a8fdfe..cda525cf341 100644 --- a/src/mame/drivers/othunder.c +++ b/src/mame/drivers/othunder.c @@ -393,7 +393,7 @@ WRITE16_MEMBER(othunder_state::othunder_lightgun_w) static void reset_sound_region( running_machine &machine ) { othunder_state *state = machine.driver_data<othunder_state>(); - memory_set_bank(machine, "bank10", state->m_banknum); + state->subbank("bank10")->set_entry(state->m_banknum); } @@ -674,7 +674,7 @@ static MACHINE_START( othunder ) { othunder_state *state = machine.driver_data<othunder_state>(); - memory_configure_bank(machine, "bank10", 0, 4, machine.region("audiocpu")->base() + 0xc000, 0x4000); + state->subbank("bank10")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0xc000, 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c index 1fd3d987bbc..386972774a6 100644 --- a/src/mame/drivers/pacman.c +++ b/src/mame/drivers/pacman.c @@ -376,11 +376,11 @@ static MACHINE_RESET( mschamp ) UINT8 *rom = machine.region("maincpu")->base() + 0x10000; int whichbank = input_port_read(machine, "GAME") & 1; - memory_configure_bank(machine, "bank1", 0, 2, &rom[0x0000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 2, &rom[0x4000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &rom[0x0000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 2, &rom[0x4000], 0x8000); - memory_set_bank(machine, "bank1", whichbank); - memory_set_bank(machine, "bank2", whichbank); + machine.root_device().subbank("bank1")->set_entry(whichbank); + machine.root_device().subbank("bank2")->set_entry(whichbank); } @@ -671,10 +671,10 @@ static INTERRUPT_GEN( s2650_interrupt ) WRITE8_MEMBER(pacman_state::porky_banking_w) { - memory_set_bank(machine(), "bank1", data & 1); - memory_set_bank(machine(), "bank2", data & 1); - memory_set_bank(machine(), "bank3", data & 1); - memory_set_bank(machine(), "bank4", data & 1); + subbank("bank1")->set_entry(data & 1); + subbank("bank2")->set_entry(data & 1); + subbank("bank3")->set_entry(data & 1); + subbank("bank4")->set_entry(data & 1); } READ8_MEMBER(pacman_state::drivfrcp_port1_r) @@ -839,8 +839,8 @@ READ8_MEMBER(pacman_state::pacman_read_nop) vias required to lay out the aux PCB. */ -#define mspacman_enable_decode_latch(m) memory_set_bank(m, "bank1", 1) -#define mspacman_disable_decode_latch(m) memory_set_bank(m, "bank1", 0) +#define mspacman_enable_decode_latch(m) m.root_device().subbank("bank1")->set_entry(1) +#define mspacman_disable_decode_latch(m) m.root_device().subbank("bank1")->set_entry(0) // any access to these ROM addresses disables the decoder, and all you see is the original Pac-Man code READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x0038){ mspacman_disable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x0038]; } @@ -5710,8 +5710,8 @@ static DRIVER_INIT( mspacman ) } /* initialize the banks */ - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x00000], 0x10000); - memory_set_bank(machine, "bank1", 1); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &ROM[0x00000], 0x10000); + machine.root_device().subbank("bank1")->set_entry(1); } static DRIVER_INIT( woodpek ) @@ -5741,10 +5741,10 @@ static DRIVER_INIT( jumpshot ) static DRIVER_INIT( drivfrcp ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0 * 0x2000]); - memory_set_bankptr(machine, "bank2", &ROM[1 * 0x2000]); - memory_set_bankptr(machine, "bank3", &ROM[2 * 0x2000]); - memory_set_bankptr(machine, "bank4", &ROM[3 * 0x2000]); + machine.root_device().subbank("bank1")->set_base(&ROM[0 * 0x2000]); + machine.root_device().subbank("bank2")->set_base(&ROM[1 * 0x2000]); + machine.root_device().subbank("bank3")->set_base(&ROM[2 * 0x2000]); + machine.root_device().subbank("bank4")->set_base(&ROM[3 * 0x2000]); } static DRIVER_INIT( 8bpm ) @@ -5758,10 +5758,10 @@ static DRIVER_INIT( 8bpm ) ROM[i] = BITSWAP8(ROM[i],7,0,5,4,3,2,1,6); } - memory_set_bankptr(machine, "bank1", &ROM[0 * 0x2000]); - memory_set_bankptr(machine, "bank2", &ROM[1 * 0x2000]); - memory_set_bankptr(machine, "bank3", &ROM[2 * 0x2000]); - memory_set_bankptr(machine, "bank4", &ROM[3 * 0x2000]); + machine.root_device().subbank("bank1")->set_base(&ROM[0 * 0x2000]); + machine.root_device().subbank("bank2")->set_base(&ROM[1 * 0x2000]); + machine.root_device().subbank("bank3")->set_base(&ROM[2 * 0x2000]); + machine.root_device().subbank("bank4")->set_base(&ROM[3 * 0x2000]); } static DRIVER_INIT( porky ) @@ -5775,15 +5775,15 @@ static DRIVER_INIT( porky ) ROM[i] = BITSWAP8(ROM[i],7,6,5,0,3,2,1,4); } - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0 * 0x2000], 0x8000); - memory_configure_bank(machine, "bank2", 0, 2, &ROM[1 * 0x2000], 0x8000); - memory_configure_bank(machine, "bank3", 0, 2, &ROM[2 * 0x2000], 0x8000); - memory_configure_bank(machine, "bank4", 0, 2, &ROM[3 * 0x2000], 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &ROM[0 * 0x2000], 0x8000); + machine.root_device().subbank("bank2")->configure_entries(0, 2, &ROM[1 * 0x2000], 0x8000); + machine.root_device().subbank("bank3")->configure_entries(0, 2, &ROM[2 * 0x2000], 0x8000); + machine.root_device().subbank("bank4")->configure_entries(0, 2, &ROM[3 * 0x2000], 0x8000); - memory_set_bank(machine, "bank1", 0); - memory_set_bank(machine, "bank2", 0); - memory_set_bank(machine, "bank3", 0); - memory_set_bank(machine, "bank4", 0); + machine.root_device().subbank("bank1")->set_entry(0); + machine.root_device().subbank("bank2")->set_entry(0); + machine.root_device().subbank("bank3")->set_entry(0); + machine.root_device().subbank("bank4")->set_entry(0); } static DRIVER_INIT( rocktrv2 ) diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c index 85a981658d4..7d98179de9e 100644 --- a/src/mame/drivers/paradise.c +++ b/src/mame/drivers/paradise.c @@ -55,7 +55,7 @@ WRITE8_MEMBER(paradise_state::paradise_rombank_w) bank %= bank_n; } - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); } static WRITE8_DEVICE_HANDLER( paradise_okibank_w ) @@ -632,8 +632,8 @@ static MACHINE_START( paradise ) int bank_n = machine.region("maincpu")->bytes() / 0x4000 - 1; UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 3, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 3, bank_n - 3, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 3, &ROM[0x00000], 0x4000); + state->subbank("bank1")->configure_entries(3, bank_n - 3, &ROM[0x10000], 0x4000); state->save_item(NAME(state->m_palbank)); state->save_item(NAME(state->m_priority)); diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c index 457dc1c2f13..2ee0a682569 100644 --- a/src/mame/drivers/parodius.c +++ b/src/mame/drivers/parodius.c @@ -250,9 +250,9 @@ static MACHINE_START( parodius ) parodius_state *state = machine.driver_data<parodius_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 14, &ROM[0x10000], 0x4000); - memory_configure_bank(machine, "bank1", 14, 2, &ROM[0x08000], 0x4000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(14, 2, &ROM[0x08000], 0x4000); + state->subbank("bank1")->set_entry(0); state->m_generic_paletteram_8.allocate(0x1000); @@ -407,7 +407,7 @@ static KONAMI_SETLINES_CALLBACK( parodius_banking ) if (lines & 0xf0) logerror("%04x: setlines %02x\n", cpu_get_pc(device), lines); - memory_set_bank(device->machine(), "bank1", (lines & 0x0f) ^ 0x0f); + device->machine().root_device().subbank("bank1")->set_entry((lines & 0x0f) ^ 0x0f); } GAME( 1990, parodius, 0, parodius, parodius, 0, ROT0, "Konami", "Parodius DA! (World, set 1)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c index a11608a210d..9b6601ea6fb 100644 --- a/src/mame/drivers/pasha2.c +++ b/src/mame/drivers/pasha2.c @@ -127,7 +127,7 @@ WRITE16_MEMBER(pasha2_state::pasha2_misc_w) case 0xb000: case 0xc000: case 0xd000: - memory_set_bankptr(machine(), "bank1", machine().region("user2")->base() + 0x400 * (bank - 0x8000)); break; + subbank("bank1")->set_base(machine().region("user2")->base() + 0x400 * (bank - 0x8000)); break; } } } @@ -476,7 +476,7 @@ static DRIVER_INIT( pasha2 ) pasha2_state *state = machine.driver_data<pasha2_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x95744, 0x95747, read16_delegate(FUNC(pasha2_state::pasha2_speedup_r), state)); - memory_set_bankptr(machine, "bank1", machine.region("user2")->base()); + state->subbank("bank1")->set_base(machine.region("user2")->base()); } GAME( 1998, pasha2, 0, pasha2, pasha2, pasha2, ROT0, "Dong Sung", "Pasha Pasha 2", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pcat_nit.c b/src/mame/drivers/pcat_nit.c index c9bbb121606..e427587cc83 100644 --- a/src/mame/drivers/pcat_nit.c +++ b/src/mame/drivers/pcat_nit.c @@ -158,11 +158,11 @@ WRITE8_MEMBER(pcat_nit_state::pcat_nit_rombank_w) if ( data & 0x80 ) { - memory_set_bank(machine(), "rombank", (data & 0x3f) | 0x40 ); + subbank("rombank")->set_entry((data & 0x3f) | 0x40 ); } else { - memory_set_bank(machine(), "rombank", data & 0x3f ); + subbank("rombank")->set_entry(data & 0x3f ); } } else @@ -172,7 +172,7 @@ WRITE8_MEMBER(pcat_nit_state::pcat_nit_rombank_w) space.install_readwrite_bank(0x000d8000, 0x000d9fff, "nvrambank" ); - memory_set_bankptr(machine(), "nvrambank", m_banked_nvram); + subbank("nvrambank")->set_base(m_banked_nvram); } } @@ -232,8 +232,8 @@ static MACHINE_START( streetg2 ) init_pc_common(machine, PCCOMMON_KEYBOARD_AT, streetg2_set_keyb_int); - memory_configure_bank(machine, "rombank", 0, 0x80, machine.region("game_prg")->base(), 0x8000 ); - memory_set_bank(machine, "rombank", 0); + machine.root_device().subbank("rombank")->configure_entries(0, 0x80, machine.region("game_prg")->base(), 0x8000 ); + machine.root_device().subbank("rombank")->set_entry(0); //microtouch_init(machine, pcat_nit_microtouch_tx_callback, NULL); } diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c index 07389ab4f6a..3d7e130b4cd 100644 --- a/src/mame/drivers/pcktgal.c +++ b/src/mame/drivers/pcktgal.c @@ -26,16 +26,16 @@ WRITE8_MEMBER(pcktgal_state::pcktgal_bank_w) { UINT8 *RAM = machine().region("maincpu")->base(); - if (data & 1) { memory_set_bankptr(machine(), "bank1", &RAM[0x4000]); } - else { memory_set_bankptr(machine(), "bank1", &RAM[0x10000]); } + if (data & 1) { subbank("bank1")->set_base(&RAM[0x4000]); } + else { subbank("bank1")->set_base(&RAM[0x10000]); } - if (data & 2) { memory_set_bankptr(machine(), "bank2", &RAM[0x6000]); } - else { memory_set_bankptr(machine(), "bank2", &RAM[0x12000]); } + if (data & 2) { subbank("bank2")->set_base(&RAM[0x6000]); } + else { subbank("bank2")->set_base(&RAM[0x12000]); } } WRITE8_MEMBER(pcktgal_state::pcktgal_sound_bank_w) { - memory_set_bank(machine(), "bank3", (data >> 2) & 1); + subbank("bank3")->set_entry((data >> 2) & 1); } WRITE8_MEMBER(pcktgal_state::pcktgal_sound_w) @@ -421,8 +421,8 @@ static DRIVER_INIT( deco222 ) for (A = 0x8000;A < 0x18000;A++) decrypted[A-0x8000] = (rom[A] & 0x9f) | ((rom[A] & 0x20) << 1) | ((rom[A] & 0x40) >> 1); - memory_configure_bank(machine, "bank3", 0, 2, machine.region("audiocpu")->base() + 0x10000, 0x4000); - memory_configure_bank_decrypted(machine, "bank3", 0, 2, &decrypted[0x8000], 0x4000); + machine.root_device().subbank("bank3")->configure_entries(0, 2, machine.region("audiocpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank3")->configure_decrypted_entries(0, 2, &decrypted[0x8000], 0x4000); } static DRIVER_INIT( graphics ) @@ -431,7 +431,7 @@ static DRIVER_INIT( graphics ) int len = machine.region("gfx1")->bytes(); int i,j,temp[16]; - memory_configure_bank(machine, "bank3", 0, 2, machine.region("audiocpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank3")->configure_entries(0, 2, machine.region("audiocpu")->base() + 0x10000, 0x4000); /* Tile graphics roms have some swapped lines, original version only */ for (i = 0x00000;i < len;i += 32) diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c index eddc79b893e..5e2b21b26ac 100644 --- a/src/mame/drivers/pcxt.c +++ b/src/mame/drivers/pcxt.c @@ -199,7 +199,7 @@ WRITE8_MEMBER(pcxt_state::disk_iobank_w) if (newbank != m_bank) { m_bank = newbank; - memory_set_bankptr(machine(), "bank1",machine().region("game_prg")->base() + 0x10000 * m_bank ); + subbank("bank1")->set_base(machine().region("game_prg")->base() + 0x10000 * m_bank ); } m_lastvalue = data; diff --git a/src/mame/drivers/pengadvb.c b/src/mame/drivers/pengadvb.c index d738a9b9828..71f6bc12481 100644 --- a/src/mame/drivers/pengadvb.c +++ b/src/mame/drivers/pengadvb.c @@ -60,7 +60,7 @@ static void mem_map_banks(running_machine &machine) case 0: // BIOS machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x3fff, "bank1" ); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base()); + state->subbank("bank1")->set_base(machine.region("maincpu")->base()); break; default: @@ -75,16 +75,16 @@ static void mem_map_banks(running_machine &machine) // BIOS machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x4000, 0x5fff, "bank21" ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x6000, 0x7fff, "bank22" ); - memory_set_bankptr(machine, "bank21", machine.region("maincpu")->base() + 0x4000); - memory_set_bankptr(machine, "bank22", machine.region("maincpu")->base() + 0x4000 + 0x2000); + state->subbank("bank21")->set_base(machine.region("maincpu")->base() + 0x4000); + state->subbank("bank22")->set_base(machine.region("maincpu")->base() + 0x4000 + 0x2000); break; case 1: // game machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x4000, 0x5fff, "bank21" ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x6000, 0x7fff, "bank22" ); - memory_set_bankptr(machine, "bank21", machine.region("game")->base() + state->m_mem_banks[0]*0x2000); - memory_set_bankptr(machine, "bank22", machine.region("game")->base() + state->m_mem_banks[1]*0x2000); + state->subbank("bank21")->set_base(machine.region("game")->base() + state->m_mem_banks[0]*0x2000); + state->subbank("bank22")->set_base(machine.region("game")->base() + state->m_mem_banks[1]*0x2000); break; default: @@ -99,8 +99,8 @@ static void mem_map_banks(running_machine &machine) // game machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x8000, 0x9fff, "bank31" ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0xa000, 0xbfff, "bank32" ); - memory_set_bankptr(machine, "bank31", machine.region("game")->base() + state->m_mem_banks[2]*0x2000); - memory_set_bankptr(machine, "bank32", machine.region("game")->base() + state->m_mem_banks[3]*0x2000); + state->subbank("bank31")->set_base(machine.region("game")->base() + state->m_mem_banks[2]*0x2000); + state->subbank("bank32")->set_base(machine.region("game")->base() + state->m_mem_banks[3]*0x2000); break; default: @@ -114,7 +114,7 @@ static void mem_map_banks(running_machine &machine) case 3: // RAM machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0xc000, 0xffff, "bank4" ); - memory_set_bankptr(machine, "bank4", state->m_main_mem); + state->subbank("bank4")->set_base(state->m_main_mem); break; default: diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index 7c5e6bcd948..66fe97a42c2 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -3646,7 +3646,7 @@ void pgm_basic_init( running_machine &machine, bool set_bank) pgm_state *state = machine.driver_data<pgm_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - if (set_bank) memory_set_bankptr(machine, "bank1", &ROM[0x100000]); + if (set_bank) state->subbank("bank1")->set_base(&ROM[0x100000]); expand_32x32x5bpp(machine); expand_colourdata(machine); diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c index ae56da1a7eb..5737f1f9dfc 100644 --- a/src/mame/drivers/phoenix.c +++ b/src/mame/drivers/phoenix.c @@ -446,7 +446,7 @@ static const ay8910_interface survival_ay8910_interface = static MACHINE_RESET( phoenix ) { - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x4000); + machine.root_device().subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x4000); } diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c index 912cbfb1c22..55c02e3047b 100644 --- a/src/mame/drivers/photon.c +++ b/src/mame/drivers/photon.c @@ -42,51 +42,51 @@ static void pk8000_set_bank(running_machine &machine,UINT8 data) switch(block1) { case 0: - memory_set_bankptr(machine, "bank1", rom + 0x10000); - memory_set_bankptr(machine, "bank5", ram); + machine.root_device().subbank("bank1")->set_base(rom + 0x10000); + machine.root_device().subbank("bank5")->set_base(ram); break; case 1: break; case 2: break; case 3: - memory_set_bankptr(machine, "bank1", ram); - memory_set_bankptr(machine, "bank5", ram); + machine.root_device().subbank("bank1")->set_base(ram); + machine.root_device().subbank("bank5")->set_base(ram); break; } switch(block2) { case 0: - memory_set_bankptr(machine, "bank2", rom + 0x14000); - memory_set_bankptr(machine, "bank6", ram + 0x4000); + machine.root_device().subbank("bank2")->set_base(rom + 0x14000); + machine.root_device().subbank("bank6")->set_base(ram + 0x4000); break; case 1: break; case 2: break; case 3: - memory_set_bankptr(machine, "bank2", ram + 0x4000); - memory_set_bankptr(machine, "bank6", ram + 0x4000); + machine.root_device().subbank("bank2")->set_base(ram + 0x4000); + machine.root_device().subbank("bank6")->set_base(ram + 0x4000); break; } switch(block3) { case 0: - memory_set_bankptr(machine, "bank3", rom + 0x18000); - memory_set_bankptr(machine, "bank7", ram + 0x8000); + machine.root_device().subbank("bank3")->set_base(rom + 0x18000); + machine.root_device().subbank("bank7")->set_base(ram + 0x8000); break; case 1: break; case 2: break; case 3: - memory_set_bankptr(machine, "bank3", ram + 0x8000); - memory_set_bankptr(machine, "bank7", ram + 0x8000); + machine.root_device().subbank("bank3")->set_base(ram + 0x8000); + machine.root_device().subbank("bank7")->set_base(ram + 0x8000); break; } switch(block4) { case 0: - memory_set_bankptr(machine, "bank4", rom + 0x1c000); - memory_set_bankptr(machine, "bank8", ram + 0xc000); + machine.root_device().subbank("bank4")->set_base(rom + 0x1c000); + machine.root_device().subbank("bank8")->set_base(ram + 0xc000); break; case 1: break; case 2: break; case 3: - memory_set_bankptr(machine, "bank4", ram + 0xc000); - memory_set_bankptr(machine, "bank8", ram + 0xc000); + machine.root_device().subbank("bank4")->set_base(ram + 0xc000); + machine.root_device().subbank("bank8")->set_base(ram + 0xc000); break; } } diff --git a/src/mame/drivers/photon2.c b/src/mame/drivers/photon2.c index eb99b7a5e51..a9ce018ad97 100644 --- a/src/mame/drivers/photon2.c +++ b/src/mame/drivers/photon2.c @@ -198,7 +198,7 @@ WRITE8_MEMBER(photon2_state::photon2_membank_w) logerror( "Unknown banking write: %02X\n", data); } - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x4000*bank ); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x4000*bank ); } READ8_MEMBER(photon2_state::photon2_fe_r) @@ -312,7 +312,7 @@ static TIMER_DEVICE_CALLBACK( spec_interrupt_hack ) static MACHINE_RESET( photon2 ) { - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base()); + machine.root_device().subbank("bank1")->set_base(machine.region("maincpu")->base()); } static MACHINE_CONFIG_START( photon2, photon2_state ) diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c index 337df1f52b2..c2d297647d1 100644 --- a/src/mame/drivers/pingpong.c +++ b/src/mame/drivers/pingpong.c @@ -37,7 +37,7 @@ WRITE8_MEMBER(pingpong_state::cashquiz_question_bank_low_w) const char *bank = bankname[data & 7]; int bankaddr = m_question_addr_high | ((data - 0x60) * 0x100); UINT8 *questions = machine().region("user1")->base() + bankaddr; - memory_set_bankptr(machine(), bank,questions); + subbank(bank)->set_base(questions); } } @@ -598,14 +598,14 @@ static DRIVER_INIT( cashquiz ) machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x5700, 0x57ff, "bank8"); // setup default banks - memory_set_bankptr(machine, "bank1", machine.region("user1")->base() + 0x100*0 ); - memory_set_bankptr(machine, "bank2", machine.region("user1")->base() + 0x100*1 ); - memory_set_bankptr(machine, "bank3", machine.region("user1")->base() + 0x100*2 ); - memory_set_bankptr(machine, "bank4", machine.region("user1")->base() + 0x100*3 ); - memory_set_bankptr(machine, "bank5", machine.region("user1")->base() + 0x100*4 ); - memory_set_bankptr(machine, "bank6", machine.region("user1")->base() + 0x100*5 ); - memory_set_bankptr(machine, "bank7", machine.region("user1")->base() + 0x100*6 ); - memory_set_bankptr(machine, "bank8", machine.region("user1")->base() + 0x100*7 ); + state->subbank("bank1")->set_base(machine.region("user1")->base() + 0x100*0 ); + state->subbank("bank2")->set_base(machine.region("user1")->base() + 0x100*1 ); + state->subbank("bank3")->set_base(machine.region("user1")->base() + 0x100*2 ); + state->subbank("bank4")->set_base(machine.region("user1")->base() + 0x100*3 ); + state->subbank("bank5")->set_base(machine.region("user1")->base() + 0x100*4 ); + state->subbank("bank6")->set_base(machine.region("user1")->base() + 0x100*5 ); + state->subbank("bank7")->set_base(machine.region("user1")->base() + 0x100*6 ); + state->subbank("bank8")->set_base(machine.region("user1")->base() + 0x100*7 ); } diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c index 96ca8975eaa..cd62877a825 100644 --- a/src/mame/drivers/pipedrm.c +++ b/src/mame/drivers/pipedrm.c @@ -188,7 +188,7 @@ static WRITE8_HANDLER( pipedrm_bankswitch_w ) */ /* set the memory bank on the Z80 using the low 3 bits */ - memory_set_bank(space->machine(), "bank1", data & 0x7); + state->subbank("bank1")->set_entry(data & 0x7); /* map to the fromance gfx register */ state->fromance_gfxreg_w(*space, offset, ((data >> 6) & 0x01) | /* flipscreen */ @@ -198,7 +198,7 @@ static WRITE8_HANDLER( pipedrm_bankswitch_w ) static WRITE8_HANDLER( sound_bankswitch_w ) { - memory_set_bank(space->machine(), "bank2", data & 0x01); + space->machine().root_device().subbank("bank2")->set_entry(data & 0x01); } @@ -595,12 +595,12 @@ static MACHINE_START( pipedrm ) state->m_subcpu = machine.device("sub"); /* initialize main Z80 bank */ - memory_configure_bank(machine, "bank1", 0, 8, machine.region("maincpu")->base() + 0x10000, 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 8, machine.region("maincpu")->base() + 0x10000, 0x2000); + state->subbank("bank1")->set_entry(0); /* initialize sound bank */ - memory_configure_bank(machine, "bank2", 0, 2, machine.region("sub")->base() + 0x10000, 0x8000); - memory_set_bank(machine, "bank2", 0); + state->subbank("bank2")->configure_entries(0, 2, machine.region("sub")->base() + 0x10000, 0x8000); + state->subbank("bank2")->set_entry(0); /* state save */ state->save_item(NAME(state->m_pending_command)); diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c index 63ffb04f2f9..091ca17854a 100644 --- a/src/mame/drivers/plygonet.c +++ b/src/mame/drivers/plygonet.c @@ -545,7 +545,7 @@ ADDRESS_MAP_END static void reset_sound_region(running_machine &machine) { polygonet_state *state = machine.driver_data<polygonet_state>(); - memory_set_bankptr(machine, "bank2", machine.region("soundcpu")->base() + 0x10000 + state->m_cur_sound_region*0x4000); + state->subbank("bank2")->set_base(machine.region("soundcpu")->base() + 0x10000 + state->m_cur_sound_region*0x4000); } WRITE8_MEMBER(polygonet_state::sound_bankswitch_w) diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c index c6d9dcf16dc..189b394d530 100644 --- a/src/mame/drivers/pokechmp.c +++ b/src/mame/drivers/pokechmp.c @@ -57,31 +57,31 @@ WRITE8_MEMBER(pokechmp_state::pokechmp_bank_w) if (data == 0x00) { - memory_set_bankptr(machine(), "bank1",&RAM[0x10000]); - memory_set_bankptr(machine(), "bank2",&RAM[0x12000]); + subbank("bank1")->set_base(&RAM[0x10000]); + subbank("bank2")->set_base(&RAM[0x12000]); } if (data == 0x01) { - memory_set_bankptr(machine(), "bank1",&RAM[0x14000]); - memory_set_bankptr(machine(), "bank2",&RAM[0x16000]); + subbank("bank1")->set_base(&RAM[0x14000]); + subbank("bank2")->set_base(&RAM[0x16000]); } if (data == 0x02) { - memory_set_bankptr(machine(), "bank1",&RAM[0x20000]); - memory_set_bankptr(machine(), "bank2",&RAM[0x22000]); + subbank("bank1")->set_base(&RAM[0x20000]); + subbank("bank2")->set_base(&RAM[0x22000]); } if (data == 0x03) { - memory_set_bankptr(machine(), "bank1",&RAM[0x04000]); - memory_set_bankptr(machine(), "bank2",&RAM[0x06000]); + subbank("bank1")->set_base(&RAM[0x04000]); + subbank("bank2")->set_base(&RAM[0x06000]); } } #ifdef UNUSED_FUNCTION WRITE8_MEMBER(pokechmp_state::pokechmp_sound_bank_w) { - memory_set_bank(machine(), "bank3", (data >> 2) & 1); + subbank("bank3")->set_entry((data >> 2) & 1); } #endif @@ -262,7 +262,7 @@ MACHINE_CONFIG_END static DRIVER_INIT( pokechmp ) { - memory_configure_bank(machine, "bank3", 0, 2, machine.region("audiocpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank3")->configure_entries(0, 2, machine.region("audiocpu")->base() + 0x10000, 0x4000); } diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c index 9ab726688e7..b33f0723815 100644 --- a/src/mame/drivers/poker72.c +++ b/src/mame/drivers/poker72.c @@ -82,12 +82,12 @@ WRITE8_MEMBER(poker72_state::output_w) printf("%02x\n",data); /* if((data & 0xc) == 0xc) - memory_set_bankptr(machine(), "bank1", &ROM[0x10000]); + subbank("bank1")->set_base(&ROM[0x10000]); else*/ if(data & 8) - memory_set_bankptr(machine(), "bank1", &ROM[0x08000]); + subbank("bank1")->set_base(&ROM[0x08000]); else - memory_set_bankptr(machine(), "bank1", &ROM[0x00000]); + subbank("bank1")->set_base(&ROM[0x00000]); } WRITE8_MEMBER(poker72_state::tile_bank_w) @@ -341,7 +341,7 @@ static MACHINE_RESET( poker72 ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0]); + machine.root_device().subbank("bank1")->set_base(&ROM[0]); } static MACHINE_CONFIG_START( poker72, poker72_state ) diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c index 4a40704569c..805c5a7bbd7 100644 --- a/src/mame/drivers/ppmast93.c +++ b/src/mame/drivers/ppmast93.c @@ -178,7 +178,7 @@ WRITE8_MEMBER(ppmast93_state::ppmast93_port4_w) coin_counter_w(machine(), 1, data & 0x10); bank = data & 0x07; - memory_set_bankptr(machine(), "bank1",&rom[0x10000+(bank*0x4000)]); + subbank("bank1")->set_base(&rom[0x10000+(bank*0x4000)]); } static ADDRESS_MAP_START( ppmast93_cpu1_map, AS_PROGRAM, 8, ppmast93_state ) diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index 953bad7dbf5..1b05ed070ee 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -337,7 +337,7 @@ WRITE32_MEMBER(psikyo_state::s1945bl_oki_w) // not at all sure about this, it seems to write 0 too often UINT8 bank = (data & 0x00ff0000) >> 16; if (bank < 4) - memory_set_bank(machine(), "okibank", bank); + subbank("okibank")->set_entry(bank); } if (ACCESSING_BITS_8_15) @@ -403,7 +403,7 @@ WRITE8_MEMBER(psikyo_state::psikyo_clear_nmi_w) WRITE8_MEMBER(psikyo_state::sngkace_sound_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x03); + subbank("bank1")->set_entry(data & 0x03); } static ADDRESS_MAP_START( sngkace_sound_map, AS_PROGRAM, 8, psikyo_state ) @@ -427,7 +427,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(psikyo_state::gunbird_sound_bankswitch_w) { - memory_set_bank(machine(), "bank1", (data >> 4) & 0x03); + subbank("bank1")->set_entry((data >> 4) & 0x03); } static ADDRESS_MAP_START( gunbird_sound_map, AS_PROGRAM, 8, psikyo_state ) @@ -1832,7 +1832,7 @@ static DRIVER_INIT( sngkace ) state->m_ka302c_banking = 0; // SH201B doesn't have any gfx banking /* setup audiocpu banks */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000, 0x8000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000, 0x8000); /* Enable other regions */ #if 0 @@ -1892,7 +1892,7 @@ static DRIVER_INIT( tengai ) /* setup audiocpu banks */ /* The banked rom is seen at 8200-ffff, so the last 0x200 bytes of the rom not reachable. */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); } static DRIVER_INIT( gunbird ) @@ -1909,7 +1909,7 @@ static DRIVER_INIT( gunbird ) /* setup audiocpu banks */ /* The banked rom is seen at 8200-ffff, so the last 0x200 bytes of the rom not reachable. */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); } @@ -1933,7 +1933,7 @@ static DRIVER_INIT( s1945 ) /* setup audiocpu banks */ /* The banked rom is seen at 8200-ffff, so the last 0x200 bytes of the rom not reachable. */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); } static DRIVER_INIT( s1945a ) @@ -1956,7 +1956,7 @@ static DRIVER_INIT( s1945a ) /* setup audiocpu banks */ /* The banked rom is seen at 8200-ffff, so the last 0x200 bytes of the rom not reachable. */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); } static DRIVER_INIT( s1945j ) @@ -1979,7 +1979,7 @@ static DRIVER_INIT( s1945j ) /* setup audiocpu banks */ /* The banked rom is seen at 8200-ffff, so the last 0x200 bytes of the rom not reachable. */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); } static DRIVER_INIT( s1945jn ) @@ -1996,7 +1996,7 @@ static DRIVER_INIT( s1945jn ) /* setup audiocpu banks */ /* The banked rom is seen at 8200-ffff, so the last 0x200 bytes of the rom not reachable. */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); + state->subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000 + 0x200, 0x8000); } static DRIVER_INIT( s1945bl ) @@ -2011,8 +2011,8 @@ static DRIVER_INIT( s1945bl ) state->m_ka302c_banking = 1; - memory_configure_bank(machine, "okibank", 0, 4, machine.region("oki")->base() + 0x30000, 0x10000); - memory_set_bank(machine, "okibank", 0); + state->subbank("okibank")->configure_entries(0, 4, machine.region("oki")->base() + 0x30000, 0x10000); + state->subbank("okibank")->set_entry(0); } diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c index 1f89993a0b3..ead924c5e26 100644 --- a/src/mame/drivers/psikyo4.c +++ b/src/mame/drivers/psikyo4.c @@ -319,7 +319,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_vidregs_w) if (offset == 2) /* Configure bank for gfx test */ { if (ACCESSING_BITS_0_15) // Bank - memory_set_bankptr(machine(), "bank2", machine().region("gfx1")->base() + 0x2000 * (m_vidregs[offset] & 0x1fff)); /* Bank comes from vidregs */ + subbank("bank2")->set_base(machine().region("gfx1")->base() + 0x2000 * (m_vidregs[offset] & 0x1fff)); /* Bank comes from vidregs */ } } @@ -971,7 +971,7 @@ static void install_hotgmck_pcm_bank(running_machine &machine) static DRIVER_INIT( hotgmck ) { UINT8 *RAM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &RAM[0x100000]); + machine.root_device().subbank("bank1")->set_base(&RAM[0x100000]); install_hotgmck_pcm_bank(machine); // Banked PCM ROM } diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c index e635c8dde9a..c9e2079c739 100644 --- a/src/mame/drivers/psikyosh.c +++ b/src/mame/drivers/psikyosh.c @@ -380,7 +380,7 @@ WRITE32_MEMBER(psikyosh_state::psikyosh_vidregs_w) if (offset == 4) /* Configure bank for gfx test */ { if (ACCESSING_BITS_0_15) // Bank - memory_set_bank(machine(), "bank2", m_vidregs[offset] & 0xfff); + subbank("bank2")->set_entry(m_vidregs[offset] & 0xfff); } } @@ -799,7 +799,7 @@ static MACHINE_START( psikyosh ) state->m_maincpu = machine.device("maincpu"); - memory_configure_bank(machine, "bank2", 0, 0x1000, machine.region("gfx1")->base(), 0x20000); + state->subbank("bank2")->configure_entries(0, 0x1000, machine.region("gfx1")->base(), 0x20000); } @@ -1219,7 +1219,7 @@ static DRIVER_INIT( s1945ii ) static DRIVER_INIT( daraku ) { UINT8 *RAM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &RAM[0x100000]); + machine.root_device().subbank("bank1")->set_base(&RAM[0x100000]); sh2drc_set_options(machine.device("maincpu"), SH2DRC_FASTEST_OPTIONS); } @@ -1231,14 +1231,14 @@ static DRIVER_INIT( sbomberb ) static DRIVER_INIT( gunbird2 ) { UINT8 *RAM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &RAM[0x100000]); + machine.root_device().subbank("bank1")->set_base(&RAM[0x100000]); sh2drc_set_options(machine.device("maincpu"), SH2DRC_FASTEST_OPTIONS); } static DRIVER_INIT( s1945iii ) { UINT8 *RAM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &RAM[0x100000]); + machine.root_device().subbank("bank1")->set_base(&RAM[0x100000]); sh2drc_set_options(machine.device("maincpu"), SH2DRC_FASTEST_OPTIONS); } diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c index 5832d0926f4..fcd7369a60f 100644 --- a/src/mame/drivers/psychic5.c +++ b/src/mame/drivers/psychic5.c @@ -361,7 +361,7 @@ WRITE8_MEMBER(psychic5_state::psychic5_bankselect_w) { m_bank_latch = data; bankaddress = 0x10000 + ((data & 3) * 0x4000); - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); /* Select 4 banks of 16k */ + subbank("bank1")->set_base(&RAM[bankaddress]); /* Select 4 banks of 16k */ } } @@ -374,7 +374,7 @@ WRITE8_MEMBER(psychic5_state::bombsa_bankselect_w) { m_bank_latch = data; bankaddress = 0x10000 + ((data & 7) * 0x4000); - memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]); /* Select 8 banks of 16k */ + subbank("bank1")->set_base(&RAM[bankaddress]); /* Select 8 banks of 16k */ } } diff --git a/src/mame/drivers/qix.c b/src/mame/drivers/qix.c index 276bffa305f..af29bc95b40 100644 --- a/src/mame/drivers/qix.c +++ b/src/mame/drivers/qix.c @@ -1308,9 +1308,9 @@ static DRIVER_INIT( kram3 ) static DRIVER_INIT( zookeep ) { /* configure the banking */ - memory_configure_bank(machine, "bank1", 0, 1, machine.region("videocpu")->base() + 0xa000, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("videocpu")->base() + 0x10000, 0); - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->configure_entry(0, machine.region("videocpu")->base() + 0xa000); + machine.root_device().subbank("bank1")->configure_entry(1, machine.region("videocpu")->base() + 0x10000); + machine.root_device().subbank("bank1")->set_entry(0); } diff --git a/src/mame/drivers/queen.c b/src/mame/drivers/queen.c index 970bdbd8664..6bda025ee5f 100644 --- a/src/mame/drivers/queen.c +++ b/src/mame/drivers/queen.c @@ -141,50 +141,50 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i case 0x59: // PAM0 { if (data & 0x10) // enable RAM access to region 0xf0000 - 0xfffff - memory_set_bankptr(busdevice->machine(), "bios_bank", state->m_bios_ram); + state->subbank("bios_bank")->set_base(state->m_bios_ram); else // disable RAM access (reads go to BIOS ROM) - memory_set_bankptr(busdevice->machine(), "bios_bank", busdevice->machine().region("bios")->base() + 0x10000); + state->subbank("bios_bank")->set_base(busdevice->machine().region("bios")->base() + 0x10000); break; } case 0x5a: // PAM1 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "video_bank1", state->m_isa_ram1); + state->subbank("video_bank1")->set_base(state->m_isa_ram1); else - memory_set_bankptr(busdevice->machine(), "video_bank1", busdevice->machine().region("video_bios")->base() + 0); + state->subbank("video_bank1")->set_base(busdevice->machine().region("video_bios")->base() + 0); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "video_bank2", state->m_isa_ram2); + state->subbank("video_bank2")->set_base(state->m_isa_ram2); else - memory_set_bankptr(busdevice->machine(), "video_bank2", busdevice->machine().region("video_bios")->base() + 0x4000); + state->subbank("video_bank2")->set_base(busdevice->machine().region("video_bios")->base() + 0x4000); break; } case 0x5e: // PAM5 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "bios_ext1", state->m_bios_ext1_ram); + state->subbank("bios_ext1")->set_base(state->m_bios_ext1_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext1", busdevice->machine().region("bios")->base() + 0); + state->subbank("bios_ext1")->set_base(busdevice->machine().region("bios")->base() + 0); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "bios_ext2", state->m_bios_ext2_ram); + state->subbank("bios_ext2")->set_base(state->m_bios_ext2_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext2", busdevice->machine().region("bios")->base() + 0x4000); + state->subbank("bios_ext2")->set_base(busdevice->machine().region("bios")->base() + 0x4000); break; } case 0x5f: // PAM6 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "bios_ext3", state->m_bios_ext3_ram); + state->subbank("bios_ext3")->set_base(state->m_bios_ext3_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext3", busdevice->machine().region("bios")->base() + 0x8000); + state->subbank("bios_ext3")->set_base(busdevice->machine().region("bios")->base() + 0x8000); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "bios_ext4", state->m_bios_ext4_ram); + state->subbank("bios_ext4")->set_base(state->m_bios_ext4_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext4", busdevice->machine().region("bios")->base() + 0xc000); + state->subbank("bios_ext4")->set_base(busdevice->machine().region("bios")->base() + 0xc000); break; } @@ -658,13 +658,13 @@ static MACHINE_START( queen ) static MACHINE_RESET( queen ) { - memory_set_bankptr(machine, "bios_bank", machine.region("bios")->base() + 0x30000); - memory_set_bankptr(machine, "bios_ext1", machine.region("bios")->base() + 0x20000); - memory_set_bankptr(machine, "bios_ext2", machine.region("bios")->base() + 0x24000); - memory_set_bankptr(machine, "bios_ext3", machine.region("bios")->base() + 0x28000); - memory_set_bankptr(machine, "bios_ext4", machine.region("bios")->base() + 0x2c000); - memory_set_bankptr(machine, "video_bank1", machine.region("video_bios")->base() + 0); - memory_set_bankptr(machine, "video_bank2", machine.region("video_bios")->base() + 0x4000); + machine.root_device().subbank("bios_bank")->set_base(machine.region("bios")->base() + 0x30000); + machine.root_device().subbank("bios_ext1")->set_base(machine.region("bios")->base() + 0x20000); + machine.root_device().subbank("bios_ext2")->set_base(machine.region("bios")->base() + 0x24000); + machine.root_device().subbank("bios_ext3")->set_base(machine.region("bios")->base() + 0x28000); + machine.root_device().subbank("bios_ext4")->set_base(machine.region("bios")->base() + 0x2c000); + machine.root_device().subbank("video_bank1")->set_base(machine.region("video_bios")->base() + 0); + machine.root_device().subbank("video_bank2")->set_base(machine.region("video_bios")->base() + 0x4000); } diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c index 085034cd7aa..20fe16b8302 100644 --- a/src/mame/drivers/quizdna.c +++ b/src/mame/drivers/quizdna.c @@ -19,13 +19,13 @@ Quiz Gekiretsu Scramble (Gakuen Paradise 2) (c) 1993 Face WRITE8_MEMBER(quizdna_state::quizdna_rombank_w) { UINT8 *ROM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1",&ROM[0x10000+0x4000*(data & 0x3f)]); + subbank("bank1")->set_base(&ROM[0x10000+0x4000*(data & 0x3f)]); } WRITE8_MEMBER(quizdna_state::gekiretu_rombank_w) { UINT8 *ROM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1",&ROM[0x10000+0x4000*((data & 0x3f) ^ 0x0a)]); + subbank("bank1")->set_base(&ROM[0x10000+0x4000*((data & 0x3f) ^ 0x0a)]); } /****************************************************************************/ diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c index 05cc1eddbaa..fd7a47ab895 100644 --- a/src/mame/drivers/quizo.c +++ b/src/mame/drivers/quizo.c @@ -129,7 +129,7 @@ WRITE8_MEMBER(quizo_state::port60_w) data=0; } m_port60=data; - memory_set_bankptr(machine(), "bank1", &machine().region("user1")->base()[rombankLookup[data]*0x4000] ); + subbank("bank1")->set_base(&machine().region("user1")->base()[rombankLookup[data]*0x4000] ); } static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, quizo_state ) diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c index 44db712202b..7d3124fd285 100644 --- a/src/mame/drivers/quizpun2.c +++ b/src/mame/drivers/quizpun2.c @@ -344,7 +344,7 @@ WRITE8_MEMBER(quizpun2_state::quizpun2_protection_w) WRITE8_MEMBER(quizpun2_state::quizpun2_rombank_w) { UINT8 *ROM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1", &ROM[ 0x10000 + 0x2000 * (data & 0x1f) ] ); + subbank("bank1")->set_base(&ROM[ 0x10000 + 0x2000 * (data & 0x1f) ] ); } WRITE8_MEMBER(quizpun2_state::quizpun2_irq_ack) diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c index a58d06552d2..adc95ec9716 100644 --- a/src/mame/drivers/r2dx_v33.c +++ b/src/mame/drivers/r2dx_v33.c @@ -733,20 +733,20 @@ MACHINE_CONFIG_END static DRIVER_INIT(rdx_v33) { - memory_configure_bank(machine, "bank1", 0, 0x20, machine.region("mainprg")->base(), 0x20000); + machine.root_device().subbank("bank1")->configure_entries(0, 0x20, machine.region("mainprg")->base(), 0x20000); raiden2_decrypt_sprites(machine); - memory_set_bank(machine, "bank1", 1); + machine.root_device().subbank("bank1")->set_entry(1); } static DRIVER_INIT(nzerotea) { - memory_configure_bank(machine, "bank1", 0, 2, machine.region("mainprg")->base(), 0x20000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("mainprg")->base(), 0x20000); zeroteam_decrypt_sprites(machine); - memory_set_bank(machine, "bank1", 1); + machine.root_device().subbank("bank1")->set_entry(1); } diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c index ccbd5ee737f..f03eedf2675 100644 --- a/src/mame/drivers/rabbit.c +++ b/src/mame/drivers/rabbit.c @@ -526,9 +526,9 @@ WRITE32_MEMBER(rabbit_state::rabbit_rombank_w) printf("rabbit rombank %08x\n",data); bank = data & 0x3ff; - memory_set_bankptr(machine(), "bank1",&dataroms[0x40000*(bank&0x3ff)]); + subbank("bank1")->set_base(&dataroms[0x40000*(bank&0x3ff)]); #else - memory_set_bankptr(machine(), "bank1",&dataroms[0]); + subbank("bank1")->set_base(&dataroms[0]); #endif } diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c index 9486b071713..08afda13cd8 100644 --- a/src/mame/drivers/raiden2.c +++ b/src/mame/drivers/raiden2.c @@ -613,7 +613,7 @@ WRITE16_MEMBER(raiden2_state::cop_cmd_w) // case 0x6ca: // logerror("select bank %d %04x\n", (data >> 15) & 1, data); -// memory_set_bank(space.machine(), "bank1", (data >> 15) & 1); +// space.machine().root_device().subbank("bank1")->set_entry((data >> 15) & 1); static void combine32(UINT32 *val, int offset, UINT16 data, UINT16 mem_mask) @@ -813,7 +813,7 @@ WRITE16_MEMBER(raiden2_state::raidendx_cop_bank_2_w) /* probably bit 3 is from 6c9 */ /* TODO: this doesn't work! */ - memory_set_bank(space.machine(), "mainbank", 8 | (cop_bank & 0x7000) >> 12); + space.machine().root_device().subbank("mainbank")->set_entry(8 | (cop_bank & 0x7000) >> 12); } } @@ -1059,7 +1059,7 @@ static MACHINE_RESET(raiden2) sprcpt_init(); MACHINE_RESET_CALL(seibu_sound); - memory_set_bank(machine, "mainbank", 1); + state->subbank("mainbank")->set_entry(1); state->prg_bank = 0; //cop_init(); @@ -1072,7 +1072,7 @@ static MACHINE_RESET(raidendx) sprcpt_init(); MACHINE_RESET_CALL(seibu_sound); - memory_set_bank(machine, "mainbank", 8); + state->subbank("mainbank")->set_entry(8); state->prg_bank = 0x08; @@ -1088,7 +1088,7 @@ static MACHINE_RESET(zeroteam) sprcpt_init(); MACHINE_RESET_CALL(seibu_sound); - memory_set_bank(machine, "mainbank", 1); + state->subbank("mainbank")->set_entry(1); state->prg_bank = 0; //cop_init(); @@ -1103,7 +1103,7 @@ static MACHINE_RESET(xsedae) sprcpt_init(); MACHINE_RESET_CALL(seibu_sound); - //memory_set_bank(machine, "mainbank", 1); + state->subbank("mainbank")->set_entry(1); //cop_init(); } @@ -1122,7 +1122,7 @@ WRITE16_MEMBER(raiden2_state::raiden2_bank_w) { if(ACCESSING_BITS_8_15) { logerror("select bank %d %04x\n", (data >> 15) & 1, data); - memory_set_bank(space.machine(), "mainbank", !((data >> 15) & 1)); + space.machine().root_device().subbank("mainbank")->set_entry(!((data >> 15) & 1)); prg_bank = ((data >> 15) & 1); } } @@ -2894,25 +2894,25 @@ ROM_END static DRIVER_INIT (raiden2) { - memory_configure_bank(machine, "mainbank", 0, 2, machine.region("mainprg")->base(), 0x20000); + machine.root_device().subbank("mainbank")->configure_entries(0, 2, machine.region("mainprg")->base(), 0x20000); raiden2_decrypt_sprites(machine); } static DRIVER_INIT (raidendx) { - memory_configure_bank(machine, "mainbank", 0, 0x10, machine.region("mainprg")->base(), 0x20000); + machine.root_device().subbank("mainbank")->configure_entries(0, 0x10, machine.region("mainprg")->base(), 0x20000); raiden2_decrypt_sprites(machine); } static DRIVER_INIT (xsedae) { /* doesn't have banking */ - //memory_configure_bank(machine, "mainbank", 0, 2, machine.region("mainprg")->base(), 0x20000); + //machine.root_device().subbank("mainbank")->configure_entries(0, 2, machine.region("mainprg")->base(), 0x20000); } static DRIVER_INIT (zeroteam) { - memory_configure_bank(machine, "mainbank", 0, 2, machine.region("mainprg")->base(), 0x20000); + machine.root_device().subbank("mainbank")->configure_entries(0, 2, machine.region("mainprg")->base(), 0x20000); zeroteam_decrypt_sprites(machine); } diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c index 14b41f69bc9..7f19446a0c8 100644 --- a/src/mame/drivers/rainbow.c +++ b/src/mame/drivers/rainbow.c @@ -397,7 +397,7 @@ ADDRESS_MAP_END static WRITE8_DEVICE_HANDLER( bankswitch_w ) { - memory_set_bank(device->machine(), "bank1", data & 3); + device->machine().root_device().subbank("bank1")->set_entry(data & 3); } READ8_MEMBER(rbisland_state::jumping_latch_r) @@ -877,7 +877,7 @@ static DRIVER_INIT( rbisland ) { UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0xc000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000); rbisland_cchip_init(machine, 0); } @@ -886,7 +886,7 @@ static DRIVER_INIT( rbislande ) { UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0xc000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000); rbisland_cchip_init(machine, 1); } diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c index 674a621bf78..182b28b8f27 100644 --- a/src/mame/drivers/rastan.c +++ b/src/mame/drivers/rastan.c @@ -163,7 +163,7 @@ Note: The 'rastsagaa' set's rom numbers were named as RSxx_37 through RSxx_42 static WRITE8_DEVICE_HANDLER( rastan_bankswitch_w ) { - memory_set_bank(device->machine(), "bank1", data & 3); + device->machine().root_device().subbank("bank1")->set_entry(data & 3); } @@ -361,8 +361,8 @@ static MACHINE_START( rastan ) rastan_state *state = machine.driver_data<rastan_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 1, &ROM[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 1, 3, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entry(0, &ROM[0x00000]); + state->subbank("bank1")->configure_entries(1, 3, &ROM[0x10000], 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c index b006ebf81af..7bde8f9de26 100644 --- a/src/mame/drivers/renegade.c +++ b/src/mame/drivers/renegade.c @@ -241,7 +241,7 @@ static void setbank(running_machine &machine) { renegade_state *state = machine.driver_data<renegade_state>(); UINT8 *RAM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &RAM[state->m_bank ? 0x10000 : 0x4000]); + state->subbank("bank1")->set_base(&RAM[state->m_bank ? 0x10000 : 0x4000]); } static MACHINE_START( renegade ) diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c index 356cb1921c5..bf8c09ff091 100644 --- a/src/mame/drivers/rmhaihai.c +++ b/src/mame/drivers/rmhaihai.c @@ -184,8 +184,8 @@ WRITE8_MEMBER(rmhaihai_state::themj_rombank_w) UINT8 *rom = machine().region("maincpu")->base() + 0x10000; int bank = data & 0x03; logerror("banksw %d\n",bank); - memory_set_bankptr(machine(), "bank1", rom + bank*0x4000); - memory_set_bankptr(machine(), "bank2", rom + bank*0x4000 + 0x2000); + subbank("bank1")->set_base(rom + bank*0x4000); + subbank("bank2")->set_base(rom + bank*0x4000 + 0x2000); } static MACHINE_RESET( themj ) diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c index c776c8f8409..40b9f76aaae 100644 --- a/src/mame/drivers/rockrage.c +++ b/src/mame/drivers/rockrage.c @@ -67,7 +67,7 @@ static INTERRUPT_GEN( rockrage_interrupt ) WRITE8_MEMBER(rockrage_state::rockrage_bankswitch_w) { /* bits 4-6 = bank number */ - memory_set_bank(machine(), "bank1", (data & 0x70) >> 4); + subbank("bank1")->set_entry((data & 0x70) >> 4); /* bits 0 & 1 = coin counters */ coin_counter_w(machine(), 0,data & 0x01); @@ -239,7 +239,7 @@ static MACHINE_START( rockrage ) rockrage_state *state = machine.driver_data<rockrage_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000); state->m_audiocpu = machine.device("audiocpu"); state->m_k007342 = machine.device("k007342"); diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c index c541f8a0f1f..7ea6fa64da5 100644 --- a/src/mame/drivers/rollerg.c +++ b/src/mame/drivers/rollerg.c @@ -251,9 +251,9 @@ static MACHINE_START( rollerg ) rollerg_state *state = machine.driver_data<rollerg_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 6, &ROM[0x10000], 0x4000); - memory_configure_bank(machine, "bank1", 6, 2, &ROM[0x10000], 0x4000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(6, 2, &ROM[0x10000], 0x4000); + state->subbank("bank1")->set_entry(0); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); @@ -372,7 +372,7 @@ ROM_END static KONAMI_SETLINES_CALLBACK( rollerg_banking ) { - memory_set_bank(device->machine(), "bank1", lines & 0x07); + device->machine().root_device().subbank("bank1")->set_entry(lines & 0x07); } diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c index 3113ccf0721..f842cf1747d 100644 --- a/src/mame/drivers/royalmah.c +++ b/src/mame/drivers/royalmah.c @@ -396,7 +396,7 @@ logerror("%04x: bank %02x\n",cpu_get_pc(&space.device()),data); /* bits 6, 4 and 3 used for something input related? */ address = 0x10000 + (data & 0x07) * 0x8000; - memory_set_bankptr(machine(), "bank1",&rom[address]); + subbank("bank1")->set_base(&rom[address]); } @@ -404,7 +404,7 @@ WRITE8_MEMBER(royalmah_state::mjapinky_bank_w) { UINT8 *ROM = machine().region("maincpu")->base(); m_rombank = data; - memory_set_bankptr(machine(), "bank1",ROM + 0x10000 + 0x8000 * data); + subbank("bank1")->set_base(ROM + 0x10000 + 0x8000 * data); } WRITE8_MEMBER(royalmah_state::mjapinky_palbank_w) @@ -434,7 +434,7 @@ logerror("%04x: bank %02x\n",cpu_get_pc(&space.device()),data); address = 0x10000 + data * 0x8000; - memory_set_bankptr(machine(), "bank1",&rom[address]); + subbank("bank1")->set_base(&rom[address]); } @@ -452,7 +452,7 @@ WRITE8_MEMBER(royalmah_state::dynax_bank_w) address = 0x10000 + data * 0x8000; - memory_set_bankptr(machine(), "bank1",&rom[address]); + subbank("bank1")->set_base(&rom[address]); } READ8_MEMBER(royalmah_state::daisyari_dsw_r) @@ -478,7 +478,7 @@ WRITE8_MEMBER(royalmah_state::daisyari_bank_w) address = 0x10000 + ((data & 0x30)>>4) * 0x10000 + (data & 0x1) * 0x8000; // printf("%08x %02x\n",address,data); - memory_set_bankptr(machine(), "bank1",&rom[address]); + subbank("bank1")->set_base(&rom[address]); /* bit 1 used too but unknown purpose. */ } @@ -508,7 +508,7 @@ WRITE8_MEMBER(royalmah_state::mjclub_bank_w) address = 0x10000 + data * 0x8000; // printf("%08x\n",address); - memory_set_bankptr(machine(), "bank1",&rom[address]); + subbank("bank1")->set_base(&rom[address]); /* bit 5 used too but unknown purpose. */ } @@ -829,12 +829,12 @@ READ8_MEMBER(royalmah_state::janptr96_dsw_r) WRITE8_MEMBER(royalmah_state::janptr96_rombank_w) { UINT8 *ROM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1",ROM + 0x10000 + 0x8000 * data); + subbank("bank1")->set_base(ROM + 0x10000 + 0x8000 * data); } WRITE8_MEMBER(royalmah_state::janptr96_rambank_w) { - memory_set_bankptr(machine(), "bank2", m_janptr96_nvram + 0x1000 + 0x1000 * data); + subbank("bank2")->set_base(m_janptr96_nvram + 0x1000 + 0x1000 * data); } READ8_MEMBER(royalmah_state::janptr96_unknown_r) @@ -1050,7 +1050,7 @@ READ8_MEMBER(royalmah_state::mjtensin_p3_r) static void mjtensin_update_rombank(running_machine &machine) { royalmah_state *state = machine.driver_data<royalmah_state>(); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x10000 + state->m_rombank * 0x8000 ); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x10000 + state->m_rombank * 0x8000 ); } WRITE8_MEMBER(royalmah_state::mjtensin_p4_w) { @@ -1092,7 +1092,7 @@ ADDRESS_MAP_END static void cafetime_update_rombank(running_machine &machine) { royalmah_state *state = machine.driver_data<royalmah_state>(); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x10000 + state->m_rombank * 0x8000 ); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x10000 + state->m_rombank * 0x8000 ); } WRITE8_MEMBER(royalmah_state::cafetime_p4_w) { @@ -4710,13 +4710,13 @@ ROM_START( jansoua ) ROM_END -static DRIVER_INIT( ippatsu ) { memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x8000 ); } +static DRIVER_INIT( ippatsu ) { machine.root_device().subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x8000 ); } static DRIVER_INIT( janptr96 ) { royalmah_state *state = machine.driver_data<royalmah_state>(); state->m_janptr96_nvram = auto_alloc_array(machine, UINT8, 0x1000 * 9); - memory_set_bankptr(machine, "bank3", state->m_janptr96_nvram); + state->subbank("bank3")->set_base(state->m_janptr96_nvram); machine.device<nvram_device>("nvram")->set_base(state->m_janptr96_nvram, 0x1000 * 9); } diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c index b3e785b0918..4003b16e722 100644 --- a/src/mame/drivers/rungun.c +++ b/src/mame/drivers/rungun.c @@ -220,7 +220,7 @@ WRITE8_MEMBER(rungun_state::z80ctrl_w) m_z80_control = data; - memory_set_bank(machine(), "bank2", data & 0x07); + subbank("bank2")->set_entry(data & 0x07); if (data & 0x10) device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE); @@ -368,7 +368,7 @@ static MACHINE_START( rng ) rungun_state *state = machine.driver_data<rungun_state>(); UINT8 *ROM = machine.region("soundcpu")->base(); - memory_configure_bank(machine, "bank2", 0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank2")->configure_entries(0, 8, &ROM[0x10000], 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("soundcpu"); diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c index 9c7c6b17c58..bcf708e56d5 100644 --- a/src/mame/drivers/sandscrp.c +++ b/src/mame/drivers/sandscrp.c @@ -277,7 +277,7 @@ WRITE8_MEMBER(sandscrp_state::sandscrp_bankswitch_w) if (bank < 3) RAM = &RAM[0x4000 * bank]; else RAM = &RAM[0x4000 * (bank-3) + 0x10000]; - memory_set_bankptr(machine(), "bank1", RAM); + subbank("bank1")->set_base(RAM); } READ8_MEMBER(sandscrp_state::sandscrp_latchstatus_r) diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c index 36ccfabc0b3..140f0bbe576 100644 --- a/src/mame/drivers/sangho.c +++ b/src/mame/drivers/sangho.c @@ -73,13 +73,13 @@ static void pzlestar_map_banks(running_machine &machine) case 0: machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x3fff, "bank1"); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_bank(0x0000, 0x3fff, "bank5"); - memory_set_bankptr(machine, "bank1", state->m_ram); - memory_set_bankptr(machine, "bank5", state->m_ram); + state->subbank("bank1")->set_base(state->m_ram); + state->subbank("bank5")->set_base(state->m_ram); break; case 2: machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x3fff, "bank1"); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x0000, 0x3fff); - memory_set_bankptr(machine, "bank1", machine.region("user1")->base()+ 0x10000); + state->subbank("bank1")->set_base(machine.region("user1")->base()+ 0x10000); break; case 1: case 3: @@ -95,18 +95,18 @@ static void pzlestar_map_banks(running_machine &machine) case 0: machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x4000, 0x7fff, "bank2"); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_bank(0x4000, 0x7fff, "bank6"); - memory_set_bankptr(machine, "bank2", state->m_ram + 0x4000); - memory_set_bankptr(machine, "bank6", state->m_ram + 0x4000); + state->subbank("bank2")->set_base(state->m_ram + 0x4000); + state->subbank("bank6")->set_base(state->m_ram + 0x4000); break; case 2: machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x4000, 0x7fff, "bank2"); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x4000, 0x7fff); - memory_set_bankptr(machine, "bank2", machine.region("user1")->base()+ 0x18000); + state->subbank("bank2")->set_base(machine.region("user1")->base()+ 0x18000); break; case 3: machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x4000, 0x7fff, "bank2"); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x4000, 0x7fff); - memory_set_bankptr(machine, "bank2", machine.region("user1")->base()+ 0x20000 + (state->m_pzlestar_rom_bank*0x8000) + 0x4000); + state->subbank("bank2")->set_base(machine.region("user1")->base()+ 0x20000 + (state->m_pzlestar_rom_bank*0x8000) + 0x4000); break; case 1: machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_read(0x4000, 0x7fff); @@ -121,13 +121,13 @@ static void pzlestar_map_banks(running_machine &machine) case 0: machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x8000, 0xbfff, "bank3"); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_bank(0x8000, 0xbfff, "bank7"); - memory_set_bankptr(machine, "bank3", state->m_ram + 0x8000); - memory_set_bankptr(machine, "bank7", state->m_ram + 0x8000); + state->subbank("bank3")->set_base(state->m_ram + 0x8000); + state->subbank("bank7")->set_base(state->m_ram + 0x8000); break; case 3: machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x8000, 0xbfff, "bank3"); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x8000, 0xbfff); - memory_set_bankptr(machine, "bank3", machine.region("user1")->base()+ 0x20000 + (state->m_pzlestar_rom_bank*0x8000)); + state->subbank("bank3")->set_base(machine.region("user1")->base()+ 0x20000 + (state->m_pzlestar_rom_bank*0x8000)); break; case 1: case 2: @@ -143,8 +143,8 @@ static void pzlestar_map_banks(running_machine &machine) case 0: machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0xc000, 0xffff, "bank4"); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_bank(0xc000, 0xffff, "bank8"); - memory_set_bankptr(machine, "bank4", state->m_ram + 0xc000); - memory_set_bankptr(machine, "bank8", state->m_ram + 0xc000); + state->subbank("bank4")->set_base(state->m_ram + 0xc000); + state->subbank("bank8")->set_base(state->m_ram + 0xc000); break; case 1: case 2: @@ -191,25 +191,25 @@ static void sexyboom_map_bank(running_machine &machine, int bank) if (banknum & 0x80) { // ram - memory_set_bankptr(machine, read_bank_name, &state->m_ram[(banknum & 0x7f) * 0x4000]); + state->subbank(read_bank_name)->set_base(&state->m_ram[(banknum & 0x7f) * 0x4000]); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_bank(bank*0x4000, (bank+1)*0x4000 - 1, write_bank_name ); - memory_set_bankptr(machine, write_bank_name, &state->m_ram[(banknum & 0x7f) * 0x4000]); + state->subbank(write_bank_name)->set_base(&state->m_ram[(banknum & 0x7f) * 0x4000]); } else { // rom 0 - memory_set_bankptr(machine, read_bank_name, machine.region("user1")->base()+0x4000*banknum); + state->subbank(read_bank_name)->set_base(machine.region("user1")->base()+0x4000*banknum); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(bank*0x4000, (bank+1)*0x4000 - 1); } } else if (banktype == 0x82) { - memory_set_bankptr(machine, read_bank_name, machine.region("user1")->base()+0x20000+banknum*0x4000); + state->subbank(read_bank_name)->set_base(machine.region("user1")->base()+0x20000+banknum*0x4000); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(bank*0x4000, (bank+1)*0x4000 - 1); } else if (banktype == 0x80) { - memory_set_bankptr(machine, read_bank_name, machine.region("user1")->base()+0x120000+banknum*0x4000); + state->subbank(read_bank_name)->set_base(machine.region("user1")->base()+0x120000+banknum*0x4000); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(bank*0x4000, (bank+1)*0x4000 - 1); } else diff --git a/src/mame/drivers/savquest.c b/src/mame/drivers/savquest.c index f81e6115408..b04e9d6e10e 100644 --- a/src/mame/drivers/savquest.c +++ b/src/mame/drivers/savquest.c @@ -106,11 +106,11 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i { if (data & 0x10) // enable RAM access to region 0xf0000 - 0xfffff { - memory_set_bankptr(busdevice->machine(), "bank1", state->m_bios_ram); + state->subbank("bank1")->set_base(state->m_bios_ram); } else // disable RAM access (reads go to BIOS ROM) { - memory_set_bankptr(busdevice->machine(), "bank1", busdevice->machine().region("bios")->base() + 0x20000); + state->subbank("bank1")->set_base(busdevice->machine().region("bios")->base() + 0x20000); } break; } @@ -531,7 +531,7 @@ static MACHINE_START( savquest ) static MACHINE_RESET( savquest ) { - memory_set_bankptr(machine, "bank1", machine.region("bios")->base() + 0x20000); + machine.root_device().subbank("bank1")->set_base(machine.region("bios")->base() + 0x20000); } diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index f0acb4225be..1dd79f9b1ea 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -99,7 +99,7 @@ static MACHINE_START( sbrkout ) { sbrkout_state *state = machine.driver_data<sbrkout_state>(); UINT8 *videoram = state->m_videoram; - memory_set_bankptr(machine, "bank1", &videoram[0x380]); + state->subbank("bank1")->set_base(&videoram[0x380]); state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(scanline_callback)); state->m_pot_timer = machine.scheduler().timer_alloc(FUNC(pot_trigger_callback)); diff --git a/src/mame/drivers/segae.c b/src/mame/drivers/segae.c index c4449b06ef0..1530ce618de 100644 --- a/src/mame/drivers/segae.c +++ b/src/mame/drivers/segae.c @@ -427,10 +427,10 @@ WRITE8_MEMBER( systeme_state::bank_write ) { m_f7_bank_value = data; - memory_set_bankptr(machine(), "vdp1_bank", m_vdp1_vram->base() + ( ( data & 0x80 ) ? 0x4000 : 0 ) ); - memory_set_bankptr(machine(), "vdp2_bank", m_vdp2_vram->base() + ( ( data & 0x40 ) ? 0x4000 : 0 ) ); + subbank("vdp1_bank")->set_base(m_vdp1_vram->base() + ( ( data & 0x80 ) ? 0x4000 : 0 ) ); + subbank("vdp2_bank")->set_base(m_vdp2_vram->base() + ( ( data & 0x40 ) ? 0x4000 : 0 ) ); - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } @@ -440,7 +440,7 @@ void systeme_state::driver_start() m_vdp1_vram = machine().region_alloc("vdp1_vram", 2 * 0x4000, 1, ENDIANNESS_LITTLE); m_vdp2_vram = machine().region_alloc("vdp2_vram", 2 * 0x4000, 1, ENDIANNESS_LITTLE); - memory_configure_bank(machine(), "bank1", 0, 16, machine().region("maincpu")->base() + 0x10000, 0x4000); + subbank("bank1")->configure_entries(0, 16, machine().region("maincpu")->base() + 0x10000, 0x4000); if ( !strcmp( system().name, "ridleofp" ) ) { diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c index 4623b29aaf1..f205b80d54a 100644 --- a/src/mame/drivers/segald.c +++ b/src/mame/drivers/segald.c @@ -240,7 +240,7 @@ WRITE8_MEMBER(segald_state::astron_FIX_write) WRITE8_MEMBER(segald_state::astron_io_bankswitch_w) { logerror("Banking 0x%x\n", data); - memory_set_bank(machine(), "bank1", data & 0xff); + subbank("bank1")->set_entry(data & 0xff); } @@ -598,7 +598,7 @@ ROM_END static DRIVER_INIT( astron ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x8000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &ROM[0x8000], 0x4000); } diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c index 5f9c609a77c..9025ca0321e 100644 --- a/src/mame/drivers/segas16b.c +++ b/src/mame/drivers/segas16b.c @@ -1376,7 +1376,7 @@ static WRITE8_DEVICE_HANDLER( upd7759_control_w ) bankoffs += (data & 0x07) * 0x04000; break; } - memory_set_bankptr(device->machine(), "bank1", device->machine().region("soundcpu")->base() + 0x10000 + (bankoffs % size)); + state->subbank("bank1")->set_base(device->machine().region("soundcpu")->base() + 0x10000 + (bankoffs % size)); } } @@ -7061,14 +7061,14 @@ static WRITE16_HANDLER( isgsm_main_bank_change_w ) // other values on real hw have strange results, change memory mapping etc?? if (data==1) { - memory_set_bankptr(space->machine(),ISGSM_MAIN_BANK, space->machine().region("maincpu")->base()); + space->machine().root_device().subbank(ISGSM_MAIN_BANK)->set_base(space->machine().region("maincpu")->base()); } } static MACHINE_START( isgsm ) { - memory_set_bankptr(machine,ISGSM_CART_BANK, machine.region("gamecart_rgn")->base()); - memory_set_bankptr(machine,ISGSM_MAIN_BANK, machine.region("bios")->base()); + machine.root_device().subbank(ISGSM_CART_BANK)->set_base(machine.region("gamecart_rgn")->base()); + machine.root_device().subbank(ISGSM_MAIN_BANK)->set_base(machine.region("bios")->base()); } static ADDRESS_MAP_START( isgsm_map, AS_PROGRAM, 16, segas1x_state ) @@ -7219,8 +7219,8 @@ static MACHINE_RESET( isgsm ) for (int i = 0; i < 16; i++) segaic16_sprites_set_bank(machine, 0, i, i); - memory_set_bankptr(machine,ISGSM_CART_BANK, machine.region("gamecart_rgn")->base()); - memory_set_bankptr(machine,ISGSM_MAIN_BANK, machine.region("bios")->base()); + machine.root_device().subbank(ISGSM_CART_BANK)->set_base(machine.region("gamecart_rgn")->base()); + machine.root_device().subbank(ISGSM_MAIN_BANK)->set_base(machine.region("bios")->base()); devtag_reset( machine, "maincpu" ); } diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c index 8faa3154ff2..54d523651fe 100644 --- a/src/mame/drivers/segas18.c +++ b/src/mame/drivers/segas18.c @@ -587,7 +587,7 @@ static WRITE16_HANDLER( wwally_custom_io_w ) static WRITE8_HANDLER( soundbank_w ) { - memory_set_bankptr(space->machine(), "bank1", space->machine().region("soundcpu")->base() + 0x10000 + 0x2000 * data); + space->machine().root_device().subbank("bank1")->set_base(space->machine().region("soundcpu")->base() + 0x10000 + 0x2000 * data); } diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c index fb391f8549c..7ea78877609 100644 --- a/src/mame/drivers/segas24.c +++ b/src/mame/drivers/segas24.c @@ -714,8 +714,8 @@ void segas24_state::reset_bank() { if (machine().region("romboard")->base()) { - memory_set_bank(machine(), "bank1", curbank & 15); - memory_set_bank(machine(), "bank2", curbank & 15); + subbank("bank1")->set_entry(curbank & 15); + subbank("bank2")->set_entry(curbank & 15); } } @@ -1267,8 +1267,8 @@ static MACHINE_START( system24 ) UINT8 *usr1 = machine.region("romboard")->base(); if (usr1) { - memory_configure_bank(machine, "bank1", 0, 16, usr1, 0x40000); - memory_configure_bank(machine, "bank2", 0, 16, usr1, 0x40000); + state->subbank("bank1")->configure_entries(0, 16, usr1, 0x40000); + state->subbank("bank2")->configure_entries(0, 16, usr1, 0x40000); } state->vtile = machine.device<segas24_tile>("tile"); diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c index 73dbfdf18ff..f9f3887629c 100644 --- a/src/mame/drivers/segas32.c +++ b/src/mame/drivers/segas32.c @@ -1130,14 +1130,14 @@ static void ym3438_irq_handler(device_t *device, int state) WRITE8_MEMBER(segas32_state::sound_bank_lo_w) { m_sound_bank = (m_sound_bank & ~0x3f) | (data & 0x3f); - memory_set_bankptr(machine(), "bank1", machine().region("soundcpu")->base() + 0x100000 + 0x2000 * m_sound_bank); + subbank("bank1")->set_base(machine().region("soundcpu")->base() + 0x100000 + 0x2000 * m_sound_bank); } WRITE8_MEMBER(segas32_state::sound_bank_hi_w) { m_sound_bank = (m_sound_bank & 0x3f) | ((data & 0x04) << 4) | ((data & 0x03) << 7); - memory_set_bankptr(machine(), "bank1", machine().region("soundcpu")->base() + 0x100000 + 0x2000 * m_sound_bank); + subbank("bank1")->set_base(machine().region("soundcpu")->base() + 0x100000 + 0x2000 * m_sound_bank); } diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c index e830195cf3e..735a614a1d6 100644 --- a/src/mame/drivers/seibuspi.c +++ b/src/mame/drivers/seibuspi.c @@ -979,7 +979,7 @@ WRITE8_MEMBER(seibuspi_state::z80_bank_w) if ((data & 7) != m_z80_lastbank) { m_z80_lastbank = (data & 7); - memory_set_bankptr(machine(), "bank4", m_z80_rom + (0x8000 * m_z80_lastbank)); + subbank("bank4")->set_base(m_z80_rom + (0x8000 * m_z80_lastbank)); } } @@ -1824,8 +1824,8 @@ static MACHINE_RESET( spi ) machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00000688, 0x0000068b, write32_delegate(FUNC(seibuspi_state::z80_prg_fifo_w),state)); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0000068c, 0x0000068f, write32_delegate(FUNC(seibuspi_state::z80_enable_w),state)); - memory_set_bankptr(machine, "bank4", state->m_z80_rom); - memory_set_bankptr(machine, "bank5", state->m_z80_rom); + state->subbank("bank4")->set_base(state->m_z80_rom); + state->subbank("bank5")->set_base(state->m_z80_rom); /* If the first value doesn't match, the game shows a checksum error */ /* If any of the other values are wrong, the game goes to update mode */ @@ -1899,8 +1899,8 @@ static MACHINE_RESET( sxx2f ) seibuspi_state *state = machine.driver_data<seibuspi_state>(); UINT8 *rom = machine.region("soundcpu")->base(); - memory_set_bankptr(machine, "bank4", state->m_z80_rom); - memory_set_bankptr(machine, "bank5", state->m_z80_rom); + state->subbank("bank4")->set_base(state->m_z80_rom); + state->subbank("bank5")->set_base(state->m_z80_rom); memcpy(state->m_z80_rom, rom, 0x40000); diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index 90fc664a76d..75faddc50da 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -2978,7 +2978,7 @@ WRITE8_MEMBER(seta_state::sub_bankswitch_w) UINT8 *rom = machine().region("sub")->base(); int bank = data >> 4; - memory_set_bankptr(machine(), "bank1", &rom[bank * 0x4000 + 0xc000]); + subbank("bank1")->set_base(&rom[bank * 0x4000 + 0xc000]); } WRITE8_MEMBER(seta_state::sub_bankswitch_lockout_w) diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c index feb9ff4428e..71aab9744dd 100644 --- a/src/mame/drivers/sf.c +++ b/src/mame/drivers/sf.c @@ -173,7 +173,7 @@ READ16_MEMBER(sf_state::button2_r) WRITE8_MEMBER(sf_state::sound2_bank_w) { - memory_set_bankptr(machine(), "bank1", machine().region("audio2")->base() + 0x8000 * (data + 1)); + subbank("bank1")->set_base(machine().region("audio2")->base() + 0x8000 * (data + 1)); } diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c index 3edb91b2286..922bc503dbb 100644 --- a/src/mame/drivers/sfbonus.c +++ b/src/mame/drivers/sfbonus.c @@ -1085,7 +1085,7 @@ WRITE8_MEMBER(sfbonus_state::sfbonus_bank_w) bank = data & 7; - memory_set_bankptr(machine(), "bank1", &ROM[bank * 0x10000]); + subbank("bank1")->set_base(&ROM[bank * 0x10000]); } @@ -1216,7 +1216,7 @@ static MACHINE_RESET( sfbonus ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0]); + machine.root_device().subbank("bank1")->set_base(&ROM[0]); } static NVRAM_HANDLER( sfbonus ) diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c index 2403b37f579..ce22a0ae170 100644 --- a/src/mame/drivers/sfkick.c +++ b/src/mame/drivers/sfkick.c @@ -109,32 +109,32 @@ static void sfkick_remap_banks(running_machine &machine) case 0: /* bios */ { UINT8 *mem = machine.region("bios")->base(); - memory_set_bankptr(machine,"bank1", mem); - memory_set_bankptr(machine,"bank2", mem+0x2000); + state->subbank("bank1")->set_base(mem); + state->subbank("bank2")->set_base(mem+0x2000); } break; case 1: /* ext rom */ { UINT8 *mem = machine.region("extrom")->base(); - memory_set_bankptr(machine,"bank1", mem+0x4000); - memory_set_bankptr(machine,"bank2", mem+0x6000); + state->subbank("bank1")->set_base(mem+0x4000); + state->subbank("bank2")->set_base(mem+0x6000); } break; case 2: /* banked */ { UINT8 *mem = machine.region("banked")->base(); - memory_set_bankptr(machine,"bank1", mem+0x2000*state->m_bank[0]); - memory_set_bankptr(machine,"bank2", mem+0x2000*state->m_bank[1]); + state->subbank("bank1")->set_base(mem+0x2000*state->m_bank[0]); + state->subbank("bank2")->set_base(mem+0x2000*state->m_bank[1]); } break; case 3: /* unknown */ { UINT8 *mem = machine.region("banked")->base(); - memory_set_bankptr(machine,"bank1", mem+0x18000); - memory_set_bankptr(machine,"bank2", mem+0x18000); + state->subbank("bank1")->set_base(mem+0x18000); + state->subbank("bank2")->set_base(mem+0x18000); } break; } @@ -145,8 +145,8 @@ static void sfkick_remap_banks(running_machine &machine) case 0: /* bios - upper part */ { UINT8 *mem = machine.region("bios")->base(); - memory_set_bankptr(machine,"bank3", mem+0x4000); - memory_set_bankptr(machine,"bank4", mem+0x6000); + state->subbank("bank3")->set_base(mem+0x4000); + state->subbank("bank4")->set_base(mem+0x6000); } break; @@ -154,16 +154,16 @@ static void sfkick_remap_banks(running_machine &machine) case 3: { UINT8 *mem = machine.region("banked")->base(); - memory_set_bankptr(machine,"bank3", mem+0x18000); - memory_set_bankptr(machine,"bank4", mem+0x18000); + state->subbank("bank3")->set_base(mem+0x18000); + state->subbank("bank4")->set_base(mem+0x18000); } break; case 2: /* banked */ { UINT8 *mem = machine.region("banked")->base(); - memory_set_bankptr(machine,"bank3", mem+0x2000*state->m_bank[2]); - memory_set_bankptr(machine,"bank4", mem+0x2000*state->m_bank[3]); + state->subbank("bank3")->set_base(mem+0x2000*state->m_bank[2]); + state->subbank("bank4")->set_base(mem+0x2000*state->m_bank[3]); } break; } @@ -174,8 +174,8 @@ static void sfkick_remap_banks(running_machine &machine) case 0: /* cartridge */ { UINT8 *mem = machine.region("cartridge")->base(); - memory_set_bankptr(machine,"bank5", mem+0x4000); - memory_set_bankptr(machine,"bank6", mem+0x6000); + state->subbank("bank5")->set_base(mem+0x4000); + state->subbank("bank6")->set_base(mem+0x6000); } break; @@ -183,16 +183,16 @@ static void sfkick_remap_banks(running_machine &machine) case 3: { UINT8 *mem = machine.region("banked")->base(); - memory_set_bankptr(machine,"bank5", mem+0x18000); - memory_set_bankptr(machine,"bank6", mem+0x18000); + state->subbank("bank5")->set_base(mem+0x18000); + state->subbank("bank6")->set_base(mem+0x18000); } break; case 2: /* banked */ { UINT8 *mem = machine.region("banked")->base(); - memory_set_bankptr(machine,"bank5", mem+0x2000*state->m_bank[4]); - memory_set_bankptr(machine,"bank6", mem+0x2000*state->m_bank[5]); + state->subbank("bank5")->set_base(mem+0x2000*state->m_bank[4]); + state->subbank("bank6")->set_base(mem+0x2000*state->m_bank[5]); } break; } @@ -204,23 +204,23 @@ static void sfkick_remap_banks(running_machine &machine) case 1: { UINT8 *mem = machine.region("banked")->base(); - memory_set_bankptr(machine,"bank7", mem+0x18000); - memory_set_bankptr(machine,"bank8", mem+0x18000); + state->subbank("bank7")->set_base(mem+0x18000); + state->subbank("bank8")->set_base(mem+0x18000); } break; case 2: /* banked */ { UINT8 *mem = machine.region("banked")->base(); - memory_set_bankptr(machine,"bank7", mem+0x2000*state->m_bank[6]); - memory_set_bankptr(machine,"bank8", mem+0x2000*state->m_bank[7]); + state->subbank("bank7")->set_base(mem+0x2000*state->m_bank[6]); + state->subbank("bank8")->set_base(mem+0x2000*state->m_bank[7]); } break; case 3: /* RAM */ { - memory_set_bankptr(machine,"bank7", state->m_main_mem); - memory_set_bankptr(machine,"bank8", state->m_main_mem+0x2000); + state->subbank("bank7")->set_base(state->m_main_mem); + state->subbank("bank8")->set_base(state->m_main_mem+0x2000); } break; } diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c index f5b35371f9b..011fac636bd 100644 --- a/src/mame/drivers/shangkid.c +++ b/src/mame/drivers/shangkid.c @@ -58,7 +58,7 @@ Games by Nihon Game/Culture Brain: WRITE8_MEMBER(shangkid_state::shangkid_maincpu_bank_w) { - memory_set_bank(machine(), "bank1", data & 1); + subbank("bank1")->set_entry(data & 1); } WRITE8_MEMBER(shangkid_state::shangkid_bbx_enable_w) @@ -104,7 +104,7 @@ static WRITE8_DEVICE_HANDLER( shangkid_ay8910_porta_w ) cputag_set_input_line(device->machine(), "audiocpu", 0, HOLD_LINE ); } else - memory_set_bank(device->machine(), "bank2", data ? 0 : 1); + state->subbank("bank2")->set_entry(data ? 0 : 1); } static WRITE8_DEVICE_HANDLER( ay8910_portb_w ) @@ -134,8 +134,8 @@ static DRIVER_INIT( shangkid ) state->m_gfx_type = 1; /* set up banking */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x8000, 0x8000); - memory_configure_bank(machine, "bank2", 0, 2, machine.region("audiocpu")->base() + 0x0000, 0x10000); + state->subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x8000, 0x8000); + state->subbank("bank2")->configure_entries(0, 2, machine.region("audiocpu")->base() + 0x0000, 0x10000); } /***************************************************************************************/ @@ -149,8 +149,8 @@ static MACHINE_RESET( shangkid ) { cputag_set_input_line(machine, "bbx", INPUT_LINE_HALT, 1 ); - memory_set_bank(machine, "bank1", 0); - memory_set_bank(machine, "bank2", 0); + machine.root_device().subbank("bank1")->set_entry(0); + machine.root_device().subbank("bank2")->set_entry(0); } /***************************************************************************************/ diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c index 0ea5fa6fab3..a7b7b8b731c 100644 --- a/src/mame/drivers/shootout.c +++ b/src/mame/drivers/shootout.c @@ -43,7 +43,7 @@ WRITE8_MEMBER(shootout_state::shootout_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } WRITE8_MEMBER(shootout_state::sound_cpu_command_w) @@ -419,13 +419,13 @@ static DRIVER_INIT( shootout ) for (A = 0x8000;A < length;A++) decrypt[A-0x8000] = (rom[A] & 0x9f) | ((rom[A] & 0x40) >> 1) | ((rom[A] & 0x20) << 1); - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); - memory_configure_bank_decrypted(machine, "bank1", 0, 16, decrypt + 0x8000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x8000, 0x4000); } static DRIVER_INIT( shootouj ) { - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); } diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c index a325eb98fa9..c4554d24b19 100644 --- a/src/mame/drivers/sidearms.c +++ b/src/mame/drivers/sidearms.c @@ -49,7 +49,7 @@ WRITE8_MEMBER(sidearms_state::sidearms_bankswitch_w) /* bits 0 and 1 select the ROM bank */ bankaddress = 0x10000 + (data & 0x0f) * 0x4000; - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } @@ -136,7 +136,7 @@ WRITE8_MEMBER(sidearms_state::whizz_bankswitch_w) } bankaddress = 0x10000 + bank * 0x4000; - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8, sidearms_state ) diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c index e3ad00f7fa1..095b83c0f7c 100644 --- a/src/mame/drivers/sigmab52.c +++ b/src/mame/drivers/sigmab52.c @@ -294,7 +294,7 @@ READ8_MEMBER(sigmab52_state::unk_f700_r) WRITE8_MEMBER(sigmab52_state::unk_f710_w) { - memory_set_bankptr(machine(), "bank1" ,&machine().region("maincpu")->base()[0x10000 + ((data&0x80)?0x4000:0x0000)]); + subbank("bank1" )->set_base(&machine().region("maincpu")->base()[0x10000 + ((data&0x80)?0x4000:0x0000)]); } READ8_MEMBER(sigmab52_state::unk_f721_r) @@ -542,11 +542,11 @@ static INTERRUPT_GEN( timer_irq ) static MACHINE_START(jwildb52) { - memory_set_bankptr(machine, "bank1", &machine.region("maincpu")->base()[0x10000 + 0x0000]); + machine.root_device().subbank("bank1")->set_base(&machine.region("maincpu")->base()[0x10000 + 0x0000]); - memory_set_bankptr(machine, "bank2", &machine.region("maincpu")->base()[0x10000 + 0xf800]); + machine.root_device().subbank("bank2")->set_base(&machine.region("maincpu")->base()[0x10000 + 0xf800]); - memory_set_bankptr(machine, "bank3", &machine.region("maincpu")->base()[0x10000 + 0x8000]); + machine.root_device().subbank("bank3")->set_base(&machine.region("maincpu")->base()[0x10000 + 0x8000]); /* diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index d101c09d0b4..52e34699bf9 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -347,7 +347,7 @@ WRITE8_MEMBER(sigmab98_state::regs_w) if (data >= 0x18) logerror("%s: unknown rom bank = %02x\n", machine().describe_context(), data); else - memory_set_bank(machine(), "rombank", data); + subbank("rombank")->set_entry(data); break; default: @@ -386,10 +386,10 @@ WRITE8_MEMBER(sigmab98_state::regs2_w) switch (data) { case 0x32: - memory_set_bank(machine(), "rambank", 0); + subbank("rambank")->set_entry(0); break; case 0x36: - memory_set_bank(machine(), "rambank", 1); + subbank("rambank")->set_entry(1); break; default: logerror("%s: unknown ram bank = %02x\n", machine().describe_context(), data); @@ -549,9 +549,9 @@ WRITE8_MEMBER(sigmab98_state::animalc_rombank_w) m_rombank = data; switch (data) { - case 0x10: memory_set_bankptr(machine(), "rombank", rom + 0x400 + 0x4000); break; - case 0x14: memory_set_bankptr(machine(), "rombank", rom + 0x400 + 0x8000); break; - case 0x18: memory_set_bankptr(machine(), "rombank", rom + 0x400 + 0xc000); break; + case 0x10: subbank("rombank")->set_base(rom + 0x400 + 0x4000); break; + case 0x14: subbank("rombank")->set_base(rom + 0x400 + 0x8000); break; + case 0x18: subbank("rombank")->set_base(rom + 0x400 + 0xc000); break; default: logerror("%s: unknown rom bank = %02x, reg = %02x\n", machine().describe_context(), data, m_reg); } @@ -602,9 +602,9 @@ WRITE8_MEMBER(sigmab98_state::animalc_rambank_w) logerror("%s: unknown ram bank = %02x, reg2 = %02x\n", machine().describe_context(), data, m_reg2); return; } - memory_set_bank(machine(), "rambank", bank); + subbank("rambank")->set_entry(bank); if ( (bank == 1) || (bank == 2) || (bank == 3) ) - memory_set_bank(machine(), "sprbank", bank-1); + subbank("sprbank")->set_entry(bank-1); break; default: @@ -1018,10 +1018,10 @@ WRITE8_MEMBER(sigmab98_state::itazuram_rombank_w) switch (data) { case 0x11: // 3800 IS ROM - memory_set_bankptr(machine(), "rombank0", rom + 0x4c00); - memory_set_bankptr(machine(), "rombank1", rom + 0x5c00); - memory_set_bankptr(machine(), "sprbank0", m_spriteram + 0x1000*4); // scratch - memory_set_bankptr(machine(), "sprbank1", m_spriteram + 0x1000*4); // scratch + subbank("rombank0")->set_base(rom + 0x4c00); + subbank("rombank1")->set_base(rom + 0x5c00); + subbank("sprbank0")->set_base(m_spriteram + 0x1000*4); // scratch + subbank("sprbank1")->set_base(m_spriteram + 0x1000*4); // scratch break; default: @@ -1034,10 +1034,10 @@ WRITE8_MEMBER(sigmab98_state::itazuram_rombank_w) switch (data) { case 0x14: // 3800 IS ROM - memory_set_bankptr(machine(), "rombank0", rom + 0x8000); - memory_set_bankptr(machine(), "rombank1", rom + 0x9000); - memory_set_bankptr(machine(), "sprbank0", m_spriteram + 0x1000*4); // scratch - memory_set_bankptr(machine(), "sprbank1", m_spriteram + 0x1000*4); // scratch + subbank("rombank0")->set_base(rom + 0x8000); + subbank("rombank1")->set_base(rom + 0x9000); + subbank("sprbank0")->set_base(m_spriteram + 0x1000*4); // scratch + subbank("sprbank1")->set_base(m_spriteram + 0x1000*4); // scratch break; default: @@ -1050,33 +1050,33 @@ WRITE8_MEMBER(sigmab98_state::itazuram_rombank_w) switch (data) { case 0x0f: // 3800 IS ROM - memory_set_bankptr(machine(), "rombank0", rom + 0x3400); - memory_set_bankptr(machine(), "rombank1", rom + 0x4400); - memory_set_bankptr(machine(), "sprbank0", m_spriteram + 0x1000*4); // scratch - memory_set_bankptr(machine(), "sprbank1", m_spriteram + 0x1000*4); // scratch + subbank("rombank0")->set_base(rom + 0x3400); + subbank("rombank1")->set_base(rom + 0x4400); + subbank("sprbank0")->set_base(m_spriteram + 0x1000*4); // scratch + subbank("sprbank1")->set_base(m_spriteram + 0x1000*4); // scratch break; case 0x12: // 3800 IS ROM - memory_set_bankptr(machine(), "rombank0", rom + 0x6400); - memory_set_bankptr(machine(), "rombank1", rom + 0x7400); - memory_set_bankptr(machine(), "sprbank0", m_spriteram + 0x1000*4); // scratch - memory_set_bankptr(machine(), "sprbank1", m_spriteram + 0x1000*4); // scratch + subbank("rombank0")->set_base(rom + 0x6400); + subbank("rombank1")->set_base(rom + 0x7400); + subbank("sprbank0")->set_base(m_spriteram + 0x1000*4); // scratch + subbank("sprbank1")->set_base(m_spriteram + 0x1000*4); // scratch break; // used in test mode: -// case 0x5c: memory_set_bankptr(machine(), "rombank", rom + 0x400 + 0x0000); break; // 3800 IS RAM! (8000 bytes) +// case 0x5c: subbank("rombank")->set_base(rom + 0x400 + 0x0000); break; // 3800 IS RAM! (8000 bytes) case 0x5e: // 3800 IS RAM! (1404 bytes) - memory_set_bankptr(machine(), "rombank0", m_spriteram + 0x1000*1); - memory_set_bankptr(machine(), "sprbank0", m_spriteram + 0x1000*1); - memory_set_bankptr(machine(), "rombank1", m_spriteram + 0x1000*2); - memory_set_bankptr(machine(), "sprbank1", m_spriteram + 0x1000*2); + subbank("rombank0")->set_base(m_spriteram + 0x1000*1); + subbank("sprbank0")->set_base(m_spriteram + 0x1000*1); + subbank("rombank1")->set_base(m_spriteram + 0x1000*2); + subbank("sprbank1")->set_base(m_spriteram + 0x1000*2); break; case 0x6c: // 3800 IS RAM! (1000 bytes) - SPRITERAM - memory_set_bankptr(machine(), "rombank0", m_spriteram); - memory_set_bankptr(machine(), "sprbank0", m_spriteram); -// memory_set_bankptr(machine(), "sprbank1", m_spriteram + 0x1000*4); // scratch + subbank("rombank0")->set_base(m_spriteram); + subbank("sprbank0")->set_base(m_spriteram); +// subbank("sprbank1")->set_base(m_spriteram + 0x1000*4); // scratch break; default: @@ -1089,10 +1089,10 @@ WRITE8_MEMBER(sigmab98_state::itazuram_rombank_w) switch (data) { case 0x14: // 3800 IS ROM - memory_set_bankptr(machine(), "rombank0", rom + 0x8800); - memory_set_bankptr(machine(), "rombank1", rom + 0x9800); - memory_set_bankptr(machine(), "sprbank0", m_spriteram + 0x1000*4); // scratch - memory_set_bankptr(machine(), "sprbank1", m_spriteram + 0x1000*4); // scratch + subbank("rombank0")->set_base(rom + 0x8800); + subbank("rombank1")->set_base(rom + 0x9800); + subbank("sprbank0")->set_base(m_spriteram + 0x1000*4); // scratch + subbank("sprbank1")->set_base(m_spriteram + 0x1000*4); // scratch break; default: @@ -1139,8 +1139,8 @@ WRITE8_MEMBER(sigmab98_state::itazuram_rambank_w) m_rambank = data; switch (data) { - case 0x52: memory_set_bankptr(machine(), "palbank", m_nvram); break; - case 0x64: memory_set_bankptr(machine(), "palbank", m_generic_paletteram_8); break; + case 0x52: subbank("palbank")->set_base(m_nvram); break; + case 0x64: subbank("palbank")->set_base(m_generic_paletteram_8); break; default: logerror("%s: unknown ram bank = %02x, reg2 = %02x\n", machine().describe_context(), data, m_reg2); return; @@ -1915,14 +1915,14 @@ static DRIVER_INIT( gegege ) rom[0x8165] = 0x00; // ROM banks - memory_configure_bank(machine, "rombank", 0, 0x18, rom + 0x8000, 0x1000); - memory_set_bank(machine, "rombank", 0); + machine.root_device().subbank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); + machine.root_device().subbank("rombank")->set_entry(0); // RAM banks UINT8 *bankedram = auto_alloc_array(machine, UINT8, 0x800 * 2); - memory_configure_bank(machine, "rambank", 0, 2, bankedram, 0x800); - memory_set_bank(machine, "rambank", 0); + machine.root_device().subbank("rambank")->configure_entries(0, 2, bankedram, 0x800); + machine.root_device().subbank("rambank")->set_entry(0); } @@ -1964,14 +1964,14 @@ static DRIVER_INIT( pepsiman ) rom[0x8165] = 0x00; // ROM banks - memory_configure_bank(machine, "rombank", 0, 0x18, rom + 0x8000, 0x1000); - memory_set_bank(machine, "rombank", 0); + machine.root_device().subbank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); + machine.root_device().subbank("rombank")->set_entry(0); // RAM banks UINT8 *bankedram = auto_alloc_array(machine, UINT8, 0x800 * 2); - memory_configure_bank(machine, "rambank", 0, 2, bankedram, 0x800); - memory_set_bank(machine, "rambank", 0); + machine.root_device().subbank("rambank")->configure_entries(0, 2, bankedram, 0x800); + machine.root_device().subbank("rambank")->set_entry(0); } @@ -2015,14 +2015,14 @@ static DRIVER_INIT( ucytokyu ) rom[0x8165] = 0x00; // ROM banks - memory_configure_bank(machine, "rombank", 0, 0x18, rom + 0x8000, 0x1000); - memory_set_bank(machine, "rombank", 0); + machine.root_device().subbank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); + machine.root_device().subbank("rombank")->set_entry(0); // RAM banks UINT8 *bankedram = auto_alloc_array(machine, UINT8, 0x800 * 2); - memory_configure_bank(machine, "rambank", 0, 2, bankedram, 0x800); - memory_set_bank(machine, "rambank", 0); + machine.root_device().subbank("rambank")->configure_entries(0, 2, bankedram, 0x800); + machine.root_device().subbank("rambank")->set_entry(0); } @@ -2110,14 +2110,14 @@ static DRIVER_INIT( animalc ) sigmab98_state *state = machine.driver_data<sigmab98_state>(); // RAM banks UINT8 *bankedram = auto_alloc_array(machine, UINT8, 0x1000 * 5); - memory_configure_bank(machine, "rambank", 0, 1, state->m_nvram, 0x1000); - memory_configure_bank(machine, "rambank", 1, 4, bankedram, 0x1000); - memory_set_bank(machine, "rambank", 0); + state->subbank("rambank")->configure_entry(0, state->m_nvram); + state->subbank("rambank")->configure_entries(1, 4, bankedram, 0x1000); + state->subbank("rambank")->set_entry(0); state->m_spriteram.allocate(0x1000 * 5); memset(state->m_spriteram, 0, 0x1000 * 5); - memory_configure_bank(machine, "sprbank", 0, 5, state->m_spriteram, 0x1000); - memory_set_bank(machine, "sprbank", 0); + state->subbank("sprbank")->configure_entries(0, 5, state->m_spriteram, 0x1000); + state->subbank("sprbank")->set_entry(0); state->m_vblank_vector = 0x00; // increment counter state->m_timer0_vector = 0x1c; // read hopper state @@ -2151,20 +2151,20 @@ static DRIVER_INIT( itazuram ) sigmab98_state *state = machine.driver_data<sigmab98_state>(); // ROM banks UINT8 *rom = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "rombank0", rom + 0x3400); - memory_set_bankptr(machine, "rombank1", rom + 0x4400); + state->subbank("rombank0")->set_base(rom + 0x3400); + state->subbank("rombank1")->set_base(rom + 0x4400); state->m_rombank = 0x0f; // RAM banks state->m_generic_paletteram_8.allocate(0x3000); memset(state->m_generic_paletteram_8, 0, 0x3000); - memory_set_bankptr(machine, "palbank", state->m_generic_paletteram_8); + state->subbank("palbank")->set_base(state->m_generic_paletteram_8); state->m_rambank = 0x64; state->m_spriteram.allocate(0x1000 * 5); memset(state->m_spriteram, 0, 0x1000 * 5); - memory_set_bankptr(machine, "sprbank0", state->m_spriteram + 0x1000*4); // scratch - memory_set_bankptr(machine, "sprbank1", state->m_spriteram + 0x1000*4); // scratch + state->subbank("sprbank0")->set_base(state->m_spriteram + 0x1000*4); // scratch + state->subbank("sprbank1")->set_base(state->m_spriteram + 0x1000*4); // scratch state->m_vblank_vector = 0x00; state->m_timer0_vector = 0x02; diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c index f7c2bb70b71..840334e7e7b 100644 --- a/src/mame/drivers/simpsons.c +++ b/src/mame/drivers/simpsons.c @@ -108,7 +108,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(simpsons_state::z80_bankswitch_w) { - memory_set_bank(machine(), "bank2", data & 7); + subbank("bank2")->set_entry(data & 7); } #if 0 diff --git a/src/mame/drivers/skimaxx.c b/src/mame/drivers/skimaxx.c index 335142a2565..bdc1d940da9 100644 --- a/src/mame/drivers/skimaxx.c +++ b/src/mame/drivers/skimaxx.c @@ -144,8 +144,8 @@ static VIDEO_START( skimaxx ) state->m_bg_buffer = auto_alloc_array(machine, UINT32, 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 2); // 2 buffers state->m_bg_buffer_back = state->m_bg_buffer + 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 0; state->m_bg_buffer_front = state->m_bg_buffer + 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * 1; - memory_configure_bank(machine, "bank1", 0, 1, state->m_bg_buffer_back, 0); - memory_configure_bank(machine, "bank1", 1, 1, state->m_bg_buffer_front, 0); + state->subbank("bank1")->configure_entry(0, state->m_bg_buffer_back); + state->subbank("bank1")->configure_entry(1, state->m_bg_buffer_front); } static SCREEN_UPDATE_IND16( skimaxx ) @@ -265,7 +265,7 @@ WRITE32_MEMBER(skimaxx_state::skimaxx_fpga_ctrl_w) m_bg_buffer_back = m_bg_buffer + 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * bank_bg_buffer; m_bg_buffer_front = m_bg_buffer + 0x400 * 0x100 * sizeof(UINT16) / sizeof(UINT32) * (1 - bank_bg_buffer); - memory_set_bank(machine(), "bank1", bank_bg_buffer); + subbank("bank1")->set_entry(bank_bg_buffer); } } diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c index 072a44e455d..6c6509910d3 100644 --- a/src/mame/drivers/skykid.c +++ b/src/mame/drivers/skykid.c @@ -69,7 +69,7 @@ WRITE8_MEMBER(skykid_state::skykid_subreset_w) WRITE8_MEMBER(skykid_state::skykid_bankswitch_w) { - memory_set_bank(machine(), "bank1", !BIT(offset,11)); + subbank("bank1")->set_entry(!BIT(offset,11)); } WRITE8_MEMBER(skykid_state::skykid_irq_1_ctrl_w) @@ -92,7 +92,7 @@ static MACHINE_START( skykid ) { skykid_state *state = machine.driver_data<skykid_state>(); /* configure the banks */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x10000, 0x2000); + state->subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x10000, 0x2000); state_save_register_global(machine, state->m_inputport_selected); } diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c index 98cb07b6b27..91ae8dfd8cf 100644 --- a/src/mame/drivers/slapshot.c +++ b/src/mame/drivers/slapshot.c @@ -242,7 +242,7 @@ WRITE16_MEMBER(slapshot_state::opwolf3_adc_req_w) static void reset_sound_region( running_machine &machine ) { slapshot_state *state = machine.driver_data<slapshot_state>(); - memory_set_bank(machine, "bank10", state->m_banknum); + state->subbank("bank10")->set_entry(state->m_banknum); } WRITE8_MEMBER(slapshot_state::sound_bankswitch_w) @@ -524,7 +524,7 @@ static MACHINE_START( slapshot ) { slapshot_state *state = machine.driver_data<slapshot_state>(); - memory_configure_bank(machine, "bank10", 0, 4, machine.region("audiocpu")->base() + 0xc000, 0x4000); + state->subbank("bank10")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0xc000, 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c index 5e43767253c..f66d0adc990 100644 --- a/src/mame/drivers/sms.c +++ b/src/mame/drivers/sms.c @@ -248,7 +248,7 @@ public: WRITE8_MEMBER(smsmfg_state::bankswitch_w) { - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); } /************************************* @@ -533,7 +533,7 @@ ADDRESS_MAP_END static MACHINE_START( sms ) { smsmfg_state *state = machine.driver_data<smsmfg_state>(); - memory_configure_bank(machine, "bank1", 0, 16, machine.region("questions")->base(), 0x4000); + state->subbank("bank1")->configure_entries(0, 16, machine.region("questions")->base(), 0x4000); state_save_register_global(machine, state->m_communication_port_status); state_save_register_global_array(machine, state->m_communication_port); diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c index 08b940aa2f2..777e8204039 100644 --- a/src/mame/drivers/snk68.c +++ b/src/mame/drivers/snk68.c @@ -1040,7 +1040,7 @@ ROM_END static DRIVER_INIT( searchar ) { - memory_set_bankptr(machine, "bank1", machine.region("user1")->base()); + machine.root_device().subbank("bank1")->set_base(machine.region("user1")->base()); } /******************************************************************************/ diff --git a/src/mame/drivers/sothello.c b/src/mame/drivers/sothello.c index 24bc6381133..f311db646b7 100644 --- a/src/mame/drivers/sothello.c +++ b/src/mame/drivers/sothello.c @@ -89,7 +89,7 @@ WRITE8_MEMBER(sothello_state::bank_w) case 4: bank=2; break; case 8: bank=3; break; } - memory_set_bankptr(machine(),"bank1",&RAM[bank*0x4000+0x10000]); + subbank("bank1")->set_base(&RAM[bank*0x4000+0x10000]); } static TIMER_CALLBACK( subcpu_suspend ) diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c index 9145b898aea..de325ec9d24 100644 --- a/src/mame/drivers/speedspn.c +++ b/src/mame/drivers/speedspn.c @@ -85,7 +85,7 @@ WRITE8_MEMBER(speedspn_state::speedspn_banked_rom_change) break; } - memory_set_bankptr(machine(), "bank1",&rom[addr + 0x8000]); + subbank("bank1")->set_base(&rom[addr + 0x8000]); } /*** SOUND RELATED ***********************************************************/ diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c index 52335033828..f8af2fb5d99 100644 --- a/src/mame/drivers/splash.c +++ b/src/mame/drivers/splash.c @@ -140,7 +140,7 @@ READ16_MEMBER(splash_state::roldfrog_bombs_r) WRITE8_MEMBER(splash_state::sound_bank_w) { - memory_set_bank(machine(), "sound_bank", data & 0xf); + subbank("sound_bank")->set_entry(data & 0xf); } @@ -1017,7 +1017,7 @@ static DRIVER_INIT( roldfrog ) { splash_state *state = machine.driver_data<splash_state>(); UINT8 * ROM = (UINT8 *)machine.region("audiocpu")->base(); - memory_configure_bank(machine, "sound_bank", 0, 16, &ROM[0x10000], 0x8000); + state->subbank("sound_bank")->configure_entries(0, 16, &ROM[0x10000], 0x8000); state->m_bitmap_type = 1; state->m_sprite_attr2_shift = 8; @@ -1097,7 +1097,7 @@ static DRIVER_INIT( funystrp ) ROM = (UINT16 *)machine.region("audiocpu")->base(); - memory_configure_bank(machine, "sound_bank", 0, 16, &ROM[0x00000], 0x8000); + state->subbank("sound_bank")->configure_entries(0, 16, &ROM[0x00000], 0x8000); } diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c index 7e6a5618261..335af91f143 100644 --- a/src/mame/drivers/sprcros2.c +++ b/src/mame/drivers/sprcros2.c @@ -76,7 +76,7 @@ WRITE8_MEMBER(sprcros2_state::sprcros2_m_port7_w) //-------x nmi enable if((m_port7^data)&0x40) - memory_set_bankptr(machine(), "bank1",&RAM[0x10000+((data&0x40)<<7)]); + subbank("bank1")->set_base(&RAM[0x10000+((data&0x40)<<7)]); machine().tilemap().set_flip_all(data&0x02?(TILEMAP_FLIPX|TILEMAP_FLIPY):0 ); @@ -94,7 +94,7 @@ WRITE8_MEMBER(sprcros2_state::sprcros2_s_port3_w) //-------x nmi enable if((m_s_port3^data)&0x08) - memory_set_bankptr(machine(), "bank2",&RAM[0x10000+((data&0x08)<<10)]); + subbank("bank2")->set_base(&RAM[0x10000+((data&0x08)<<10)]); m_s_port3 = data; } diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c index 0e73c8ceddb..1b634518e72 100644 --- a/src/mame/drivers/spy.c +++ b/src/mame/drivers/spy.c @@ -161,7 +161,7 @@ WRITE8_MEMBER(spy_state::bankswitch_w) else bank = ((data & 0x0e) >> 1); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); } static void spy_collision( running_machine &machine ) @@ -500,7 +500,7 @@ static MACHINE_START( spy ) spy_state *state = machine.driver_data<spy_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 12, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000); state->m_generic_paletteram_8.allocate(0x800); memset(state->m_pmcram, 0, sizeof(state->m_pmcram)); diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c index 18130d4e069..1530b8c253b 100644 --- a/src/mame/drivers/srmp2.c +++ b/src/mame/drivers/srmp2.c @@ -365,7 +365,7 @@ WRITE8_MEMBER(srmp2_state::srmp3_rombank_w) if (data & 0x1f) addr = ((0x10000 + (0x2000 * (data & 0x0f))) - 0x8000); else addr = 0x10000; - memory_set_bankptr(machine(), "bank1", &ROM[addr]); + subbank("bank1")->set_base(&ROM[addr]); } /************************************************************************** @@ -515,7 +515,7 @@ WRITE8_MEMBER(srmp2_state::rmgoldyh_rombank_w) if (data & 0x1f) addr = ((0x10000 + (0x2000 * (data & 0x1f))) - 0x8000); else addr = 0x10000; - memory_set_bankptr(machine(), "bank1", &ROM[addr]); + subbank("bank1")->set_base(&ROM[addr]); } static ADDRESS_MAP_START( rmgoldyh_io_map, AS_IO, 8, srmp2_state ) diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c index 3f16448638c..fb2d09d8fb2 100644 --- a/src/mame/drivers/srmp6.c +++ b/src/mame/drivers/srmp6.c @@ -335,7 +335,7 @@ WRITE16_MEMBER(srmp6_state::video_regs_w) { const UINT8 *rom = machine().region("nile")->base(); LOG(("%x\n",data)); - memory_set_bankptr(machine(), "bank1",(UINT16 *)(rom + (data & 0x0f)*0x200000)); + subbank("bank1")->set_base((UINT16 *)(rom + (data & 0x0f)*0x200000)); break; } diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c index bdf1dc4feb4..bec1b01c88d 100644 --- a/src/mame/drivers/srumbler.c +++ b/src/mame/drivers/srumbler.c @@ -39,7 +39,7 @@ WRITE8_MEMBER(srumbler_state::srumbler_bankswitch_w) /* bit 2 of prom1 selects ROM or RAM - not supported */ sprintf(bankname, "%04x", i*0x1000); - memory_set_bankptr(machine(), bankname,&ROM[bank*0x1000]); + subbank(bankname)->set_base(&ROM[bank*0x1000]); } } diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c index b81dc4a4a41..9ca34ff00d0 100644 --- a/src/mame/drivers/ssv.c +++ b/src/mame/drivers/ssv.c @@ -326,7 +326,7 @@ static MACHINE_RESET( ssv ) ssv_state *state = machine.driver_data<ssv_state>(); state->m_requested_int = 0; device_set_irq_callback(machine.device("maincpu"), ssv_irq_callback); - memory_set_bankptr(machine, "bank1", machine.region("user1")->base()); + state->subbank("bank1")->set_base(machine.region("user1")->base()); } diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c index 58654ebd6b9..27770042b16 100644 --- a/src/mame/drivers/st0016.c +++ b/src/mame/drivers/st0016.c @@ -70,7 +70,7 @@ WRITE8_MEMBER(st0016_state::mux_select_w) WRITE8_MEMBER(st0016_state::st0016_rom_bank_w) { - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + (data* 0x4000) + 0x10000 ); + subbank("bank1")->set_base(machine().region("maincpu")->base() + (data* 0x4000) + 0x10000 ); st0016_rom_bank=data; } @@ -681,13 +681,13 @@ static DRIVER_INIT(nratechu) static DRIVER_INIT(mayjinsn) { st0016_game=4|0x80; - memory_set_bankptr(machine, "bank2", machine.region("user1")->base()); + machine.root_device().subbank("bank2")->set_base(machine.region("user1")->base()); } static DRIVER_INIT(mayjisn2) { st0016_game=4; - memory_set_bankptr(machine, "bank2", machine.region("user1")->base()); + machine.root_device().subbank("bank2")->set_base(machine.region("user1")->base()); } /************************************* diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c index 0c29f0f3849..86ed2778c9e 100644 --- a/src/mame/drivers/starwars.c +++ b/src/mame/drivers/starwars.c @@ -502,8 +502,8 @@ static DRIVER_INIT( starwars ) starwars_mproc_init(machine); /* initialize banking */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x6000, 0x10000 - 0x6000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x6000, 0x10000 - 0x6000); + state->subbank("bank1")->set_entry(0); } @@ -532,10 +532,10 @@ static DRIVER_INIT( esb ) starwars_mproc_init(machine); /* initialize banking */ - memory_configure_bank(machine, "bank1", 0, 2, rom + 0x6000, 0x10000 - 0x6000); - memory_set_bank(machine, "bank1", 0); - memory_configure_bank(machine, "bank2", 0, 2, rom + 0xa000, 0x1c000 - 0xa000); - memory_set_bank(machine, "bank2", 0); + state->subbank("bank1")->configure_entries(0, 2, rom + 0x6000, 0x10000 - 0x6000); + state->subbank("bank1")->set_entry(0); + state->subbank("bank2")->configure_entries(0, 2, rom + 0xa000, 0x1c000 - 0xa000); + state->subbank("bank2")->set_entry(0); /* additional globals for state saving */ state->save_item(NAME(state->m_slapstic_current_bank)); diff --git a/src/mame/drivers/su2000.c b/src/mame/drivers/su2000.c index 80a68ce6a88..e8e2813706b 100644 --- a/src/mame/drivers/su2000.c +++ b/src/mame/drivers/su2000.c @@ -270,13 +270,13 @@ static MACHINE_START( su2000 ) state->m_pc_ram = auto_alloc_array_clear(machine, UINT32, PC_RAM_SIZE); /* Conventional memory */ - memory_set_bankptr(machine, "mem_bank", state->m_pc_ram); + state->subbank("mem_bank")->set_base(state->m_pc_ram); /* HMA */ offs_t ram_limit = 0x100000 + PC_RAM_SIZE - 0x0a0000; space->install_read_bank(0x100000, ram_limit - 1, "hma_bank"); space->install_write_bank(0x100000, ram_limit - 1, "hma_bank"); - memory_set_bankptr(machine, "hma_bank", state->m_pc_ram + 0xa0000); + state->subbank("hma_bank")->set_base(state->m_pc_ram + 0xa0000); device_set_irq_callback(machine.device("maincpu"), pc_irq_callback); diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c index a630115e722..2d776c644e4 100644 --- a/src/mame/drivers/suna16.c +++ b/src/mame/drivers/suna16.c @@ -263,7 +263,7 @@ WRITE8_MEMBER(suna16_state::bssoccer_pcm_1_bankswitch_w) UINT8 *RAM = machine().region("pcm1")->base(); int bank = data & 7; if (bank & ~7) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space.device()), data); - memory_set_bankptr(machine(), "bank1", &RAM[bank * 0x10000 + 0x1000]); + subbank("bank1")->set_base(&RAM[bank * 0x10000 + 0x1000]); } WRITE8_MEMBER(suna16_state::bssoccer_pcm_2_bankswitch_w) @@ -271,7 +271,7 @@ WRITE8_MEMBER(suna16_state::bssoccer_pcm_2_bankswitch_w) UINT8 *RAM = machine().region("pcm2")->base(); int bank = data & 7; if (bank & ~7) logerror("CPU#3 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space.device()), data); - memory_set_bankptr(machine(), "bank2", &RAM[bank * 0x10000 + 0x1000]); + subbank("bank2")->set_base(&RAM[bank * 0x10000 + 0x1000]); } @@ -325,7 +325,7 @@ WRITE8_MEMBER(suna16_state::uballoon_pcm_1_bankswitch_w) UINT8 *RAM = machine().region("pcm1")->base(); int bank = data & 1; if (bank & ~1) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space.device()), data); - memory_set_bankptr(machine(), "bank1", &RAM[bank * 0x10000 + 0x400]); + subbank("bank1")->set_base(&RAM[bank * 0x10000 + 0x400]); } /* Memory maps: Yes, *no* RAM */ diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c index a95a83a3ade..d72a7ea41b8 100644 --- a/src/mame/drivers/suna8.c +++ b/src/mame/drivers/suna8.c @@ -75,7 +75,7 @@ static DRIVER_INIT( hardhead ) rom[i] = BITSWAP8(rom[i], 7,6,5,3,4,2,1,0) ^ 0x58; } - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); } /* Non encrypted bootleg */ @@ -83,7 +83,7 @@ static DRIVER_INIT( hardhedb ) { address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); space->set_decrypted_region(0x0000, 0x7fff, machine.region("maincpu")->base() + 0x48000); - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); } /*************************************************************************** @@ -162,8 +162,8 @@ static DRIVER_INIT( brickzn ) decrypt[0x24b5] = 0x00; // HALT -> NOP decrypt[0x2583] = 0x00; // HALT -> NOP - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); - memory_configure_bank_decrypted(machine, "bank1", 0, 16, decrypt + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x10000, 0x4000); } static DRIVER_INIT( brickzn3 ) @@ -193,8 +193,8 @@ static DRIVER_INIT( brickzn3 ) decrypt[0x2487] = 0x00; // HALT -> NOP decrypt[0x256c] = 0x00; // HALT -> NOP - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); - memory_configure_bank_decrypted(machine, "bank1", 0, 16, decrypt + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x10000, 0x4000); } @@ -280,8 +280,8 @@ rom13: 0?, 1y, 2n, 3n ?,?,?,? (palettes) RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x41; } - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); - memory_configure_bank(machine, "bank2", 0, 2, auto_alloc_array(machine, UINT8, 0x2000 * 2), 0x2000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank2")->configure_entries(0, 2, auto_alloc_array(machine, UINT8, 0x2000 * 2), 0x2000); } @@ -349,7 +349,7 @@ static DRIVER_INIT( starfigh ) RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x45; } - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); } @@ -417,7 +417,7 @@ static DRIVER_INIT( sparkman ) RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x44; } - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); } /*************************************************************************** @@ -490,7 +490,7 @@ WRITE8_MEMBER(suna8_state::hardhead_bankswitch_w) int bank = data & 0x0f; if (data & ~0xef) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space.device()),data); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); } @@ -547,7 +547,7 @@ WRITE8_MEMBER(suna8_state::rranger_bankswitch_w) if (data & ~0xf7) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space.device()),data); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); flip_screen_set(data & 0x20); coin_lockout_w ( machine(), 0, data & 0x40); @@ -651,7 +651,7 @@ WRITE8_MEMBER(suna8_state::brickzn_rombank_w) if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); m_rombank = data; } @@ -727,7 +727,7 @@ WRITE8_MEMBER(suna8_state::hardhea2_rombank_w) if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); m_rombank = data; } @@ -745,12 +745,12 @@ WRITE8_MEMBER(suna8_state::hardhea2_spritebank_1_w) WRITE8_MEMBER(suna8_state::hardhea2_rambank_0_w) { - memory_set_bank(machine(), "bank2", 0); + subbank("bank2")->set_entry(0); } WRITE8_MEMBER(suna8_state::hardhea2_rambank_1_w) { - memory_set_bank(machine(), "bank2", 1); + subbank("bank2")->set_entry(1); } @@ -925,7 +925,7 @@ WRITE8_MEMBER(suna8_state::sparkman_rombank_w) //if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data); - memory_set_bank(machine(), "bank1", bank); + subbank("bank1")->set_entry(bank); m_rombank = data; } @@ -2355,7 +2355,7 @@ ROM_END static DRIVER_INIT( suna8 ) { - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x4000); } /* Working Games */ diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c index c97699037ff..d9c8926720e 100644 --- a/src/mame/drivers/superqix.c +++ b/src/mame/drivers/superqix.c @@ -548,7 +548,7 @@ static void machine_init_common(running_machine &machine) static MACHINE_START( superqix ) { /* configure the banks */ - memory_configure_bank(machine, "bank1", 0, 4, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, machine.region("maincpu")->base() + 0x10000, 0x4000); machine_init_common(machine); } @@ -556,7 +556,7 @@ static MACHINE_START( superqix ) static MACHINE_START( pbillian ) { /* configure the banks */ - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x10000, 0x4000); machine_init_common(machine); } diff --git a/src/mame/drivers/supertnk.c b/src/mame/drivers/supertnk.c index 14552c89490..b4da23647dc 100644 --- a/src/mame/drivers/supertnk.c +++ b/src/mame/drivers/supertnk.c @@ -140,7 +140,7 @@ WRITE8_MEMBER(supertnk_state::supertnk_bankswitch_0_w) bank_address = 0x10000 + (m_rom_bank * 0x1000); - memory_set_bankptr(machine(), "bank1", &machine().region("maincpu")->base()[bank_address]); + subbank("bank1")->set_base(&machine().region("maincpu")->base()[bank_address]); } @@ -152,7 +152,7 @@ WRITE8_MEMBER(supertnk_state::supertnk_bankswitch_1_w) bank_address = 0x10000 + (m_rom_bank * 0x1000); - memory_set_bankptr(machine(), "bank1", &machine().region("maincpu")->base()[bank_address]); + subbank("bank1")->set_base(&machine().region("maincpu")->base()[bank_address]); } diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c index 46dc7d965e2..2eeb1650c30 100644 --- a/src/mame/drivers/suprgolf.c +++ b/src/mame/drivers/suprgolf.c @@ -264,7 +264,7 @@ static WRITE8_DEVICE_HANDLER( rom_bank_select_w ) //popmessage("%08x %02x",((data & 0x3f) * 0x4000),data); // mame_printf_debug("ROM_BANK 0x8000 - %X @%X\n",data,cpu_get_previouspc(&space->device())); - memory_set_bankptr(device->machine(), "bank2", region_base + (data&0x3f ) * 0x4000); + state->subbank("bank2")->set_base(region_base + (data&0x3f ) * 0x4000); state->m_msm_nmi_mask = data & 0x40; state->flip_screen_set(data & 0x80); @@ -275,7 +275,7 @@ WRITE8_MEMBER(suprgolf_state::rom2_bank_select_w) UINT8 *region_base = machine().region("user2")->base(); // mame_printf_debug("ROM_BANK 0x4000 - %X @%X\n",data,cpu_get_previouspc(&space.device())); - memory_set_bankptr(machine(), "bank1", region_base + (data&0x0f) * 0x4000); + subbank("bank1")->set_base(region_base + (data&0x0f) * 0x4000); if(data & 0xf0) printf("Rom bank select 2 with data %02x activated\n",data); diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index 50e82876a4c..ec495309256 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -431,7 +431,7 @@ static MACHINE_RESET(skns) else hit.disconnect= 0; - memory_set_bankptr(machine, "bank1",machine.region("user1")->base()); + state->subbank("bank1")->set_base(machine.region("user1")->base()); } diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c index 743a27672cc..690143c69f2 100644 --- a/src/mame/drivers/suprslam.c +++ b/src/mame/drivers/suprslam.c @@ -118,7 +118,7 @@ WRITE8_MEMBER(suprslam_state::suprslam_sh_bankswitch_w) int bankaddress; bankaddress = 0x10000 + (data & 0x03) * 0x8000; - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } /*** MEMORY MAPS *************************************************************/ diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c index 82c688f97df..2ae8e54cb14 100644 --- a/src/mame/drivers/surpratk.c +++ b/src/mame/drivers/surpratk.c @@ -193,9 +193,9 @@ static MACHINE_START( surpratk ) surpratk_state *state = machine.driver_data<surpratk_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 28, &ROM[0x10000], 0x2000); - memory_configure_bank(machine, "bank1", 28, 4, &ROM[0x08000], 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 28, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(28, 4, &ROM[0x08000], 0x2000); + state->subbank("bank1")->set_entry(0); state->m_generic_paletteram_8.allocate(0x1000); @@ -323,7 +323,7 @@ ROM_END static KONAMI_SETLINES_CALLBACK( surpratk_banking ) { logerror("%04x: setlines %02x\n",cpu_get_pc(device), lines); - memory_set_bank(device->machine(), "bank1", lines & 0x1f); + device->machine().root_device().subbank("bank1")->set_entry(lines & 0x1f); } diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c index f51f2b69b94..71fd773b66f 100644 --- a/src/mame/drivers/system1.c +++ b/src/mame/drivers/system1.c @@ -359,10 +359,10 @@ static MACHINE_START( system1 ) UINT32 numbanks = (machine.region("maincpu")->bytes() - 0x10000) / 0x4000; if (numbanks > 0) - memory_configure_bank(machine, "bank1", 0, numbanks, machine.region("maincpu")->base() + 0x10000, 0x4000); + state->subbank("bank1")->configure_entries(0, numbanks, machine.region("maincpu")->base() + 0x10000, 0x4000); else - memory_configure_bank(machine, "bank1", 0, 1, machine.region("maincpu")->base() + 0x8000, 0); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entry(0, machine.region("maincpu")->base() + 0x8000); + state->subbank("bank1")->set_entry(0); z80_set_cycle_tables(machine.device("maincpu"), cc_op, cc_cb, cc_ed, cc_xy, cc_xycb, cc_ex); @@ -400,14 +400,14 @@ static MACHINE_RESET( system1 ) static void bank44_custom_w(running_machine &machine, UINT8 data, UINT8 prevdata) { /* bank bits are bits 6 and 2 */ - memory_set_bank(machine, "bank1", ((data & 0x40) >> 5) | ((data & 0x04) >> 2)); + machine.root_device().subbank("bank1")->set_entry(((data & 0x40) >> 5) | ((data & 0x04) >> 2)); } static void bank0c_custom_w(running_machine &machine, UINT8 data, UINT8 prevdata) { /* bank bits are bits 3 and 2 */ - memory_set_bank(machine, "bank1", (data & 0x0c) >> 2); + machine.root_device().subbank("bank1")->set_entry((data & 0x0c) >> 2); } @@ -4756,7 +4756,7 @@ static DRIVER_INIT( bootsys2 ) { address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); space->set_decrypted_region(0x0000, 0x7fff, machine.region("maincpu")->base() + 0x20000); - memory_configure_bank_decrypted(machine, "bank1", 0, 4, machine.region("maincpu")->base() + 0x30000, 0x4000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, 4, machine.region("maincpu")->base() + 0x30000, 0x4000); DRIVER_INIT_CALL(bank0c); } diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c index 8794dab1cfc..cb07aae87ef 100644 --- a/src/mame/drivers/system16.c +++ b/src/mame/drivers/system16.c @@ -464,7 +464,7 @@ static WRITE8_DEVICE_HANDLER( upd7759_bank_w ) //* upd7759_reset_w(device, data & 0x40); offs = 0x10000 + (data * 0x4000) % size; - memory_set_bankptr(device->machine(), "bank1", device->machine().region("soundcpu")->base() + offs); + device->machine().root_device().subbank("bank1")->set_base(device->machine().region("soundcpu")->base() + offs); } diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c index 8d36d331fc9..076f0c71cf3 100644 --- a/src/mame/drivers/tail2nos.c +++ b/src/mame/drivers/tail2nos.c @@ -29,7 +29,7 @@ WRITE16_MEMBER(tail2nos_state::sound_command_w) static WRITE8_DEVICE_HANDLER( sound_bankswitch_w ) { - memory_set_bank(device->machine(), "bank3", data & 0x01); + device->machine().root_device().subbank("bank3")->set_entry(data & 0x01); } static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tail2nos_state ) @@ -210,8 +210,8 @@ static MACHINE_START( tail2nos ) tail2nos_state *state = machine.driver_data<tail2nos_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank3", 0, 2, &ROM[0x10000], 0x8000); - memory_set_bank(machine, "bank3", 0); + state->subbank("bank3")->configure_entries(0, 2, &ROM[0x10000], 0x8000); + state->subbank("bank3")->set_entry(0); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); @@ -227,8 +227,8 @@ static MACHINE_RESET( tail2nos ) tail2nos_state *state = machine.driver_data<tail2nos_state>(); /* point to the extra ROMs */ - memory_set_bankptr(machine, "bank1", machine.region("user1")->base()); - memory_set_bankptr(machine, "bank2", machine.region("user2")->base()); + state->subbank("bank1")->set_base(machine.region("user1")->base()); + state->subbank("bank2")->set_base(machine.region("user2")->base()); state->m_charbank = 0; state->m_charpalette = 0; diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c index a51770370f3..2f1fcf58cbe 100644 --- a/src/mame/drivers/taito_b.c +++ b/src/mame/drivers/taito_b.c @@ -193,7 +193,7 @@ TODO! WRITE8_MEMBER(taitob_state::bankswitch_w) { - memory_set_bank(machine(), "bank1", (data - 1) & 3); + subbank("bank1")->set_entry((data - 1) & 3); } static TIMER_CALLBACK( rsaga2_interrupt2 ) @@ -3707,7 +3707,7 @@ ROM_END static DRIVER_INIT( taito_b ) { - memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0x10000, 0x4000); } GAME( 1989, masterw, 0, masterw, masterw, taito_b, ROT270, "Taito Corporation Japan", "Master of Weapon (World)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c index ab9ba53e66e..d125f015d35 100644 --- a/src/mame/drivers/taito_f2.c +++ b/src/mame/drivers/taito_f2.c @@ -591,7 +591,7 @@ static INTERRUPT_GEN( taitof2_interrupt ) WRITE8_MEMBER(taitof2_state::sound_bankswitch_w) { - memory_set_bank(machine(), "bank2", (data - 1) & 7); + subbank("bank2")->set_entry((data - 1) & 7); #ifdef MAME_DEBUG if (((data - 1) & 7) > 2) @@ -3013,7 +3013,7 @@ static MACHINE_START( common ) static MACHINE_START( f2 ) { MACHINE_START_CALL(common); - memory_configure_bank(machine, "bank2", 0, 8, machine.region("audiocpu")->base() + 0x10000, 0x4000); + machine.root_device().subbank("bank2")->configure_entries(0, 8, machine.region("audiocpu")->base() + 0x10000, 0x4000); } static MACHINE_CONFIG_START( taito_f2, taitof2_state ) diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c index d8f563f22f3..1f5cff38937 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -133,7 +133,7 @@ WRITE32_MEMBER(taito_f3_state::f3_sound_bankswitch_w) /* Banks are 0x20000 bytes each, divide by two to get data16 pointer rather than byte pointer */ - memory_set_bankptr(machine(), "bank2", &rom[(idx*0x20000)/2 + 0x80000]); + subbank("bank2")->set_base(&rom[(idx*0x20000)/2 + 0x80000]); } else { logerror("Sound bankswitch in unsupported game\n"); diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c index da6cdc7ce8a..16e0bee0360 100644 --- a/src/mame/drivers/taito_h.c +++ b/src/mame/drivers/taito_h.c @@ -231,7 +231,7 @@ READ8_MEMBER(taitoh_state::syvalion_input_bypass_r) static void reset_sound_region(running_machine &machine) { taitoh_state *state = machine.driver_data<taitoh_state>(); - memory_set_bank(machine, "bank1", state->m_banknum); + state->subbank("bank1")->set_entry(state->m_banknum); } WRITE8_MEMBER(taitoh_state::sound_bankswitch_w) @@ -520,7 +520,7 @@ static MACHINE_START( taitoh ) taitoh_state *state = machine.driver_data<taitoh_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0xc000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000); state->m_audiocpu = machine.device("audiocpu"); state->m_tc0220ioc = machine.device("tc0220ioc"); diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index ae0cb86ac64..d5661ba3b27 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -169,11 +169,11 @@ static void machine_reset(running_machine &machine) state->m_cur_rambank[i] = 0x80; state->m_current_notifier[i] = palette_notifier; state->m_current_base[i] = state->m_palette_ram; - memory_set_bankptr(machine, bankname[i], state->m_current_base[i]); + state->subbank(bankname[i])->set_base(state->m_current_base[i]); } state->m_cur_rombank = state->m_cur_rombank2 = 0; - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x10000); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x10000); gfx_element_set_source(machine.gfx[2], state->m_rambanks); @@ -377,7 +377,7 @@ WRITE8_MEMBER(taitol_state::rombankswitch_w) //logerror("robs %d, %02x (%04x)\n", offset, data, cpu_get_pc(&space.device())); m_cur_rombank = data; - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x10000 + 0x2000 * m_cur_rombank); + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x10000 + 0x2000 * m_cur_rombank); } } @@ -397,7 +397,7 @@ WRITE8_MEMBER(taitol_state::rombank2switch_w) //logerror("robs2 %02x (%04x)\n", data, cpu_get_pc(&space.device())); m_cur_rombank2 = data; - memory_set_bankptr(machine(), "bank6", machine().region("slave")->base() + 0x10000 + 0x4000 * m_cur_rombank2); + subbank("bank6")->set_base(machine().region("slave")->base() + 0x10000 + 0x4000 * m_cur_rombank2); } } @@ -435,7 +435,7 @@ WRITE8_MEMBER(taitol_state::rambankswitch_w) m_current_notifier[offset] = 0; m_current_base[offset] = m_empty_ram; } - memory_set_bankptr(machine(), bankname[offset], m_current_base[offset]); + subbank(bankname[offset])->set_base(m_current_base[offset]); } } @@ -743,7 +743,7 @@ WRITE8_MEMBER(taitol_state::sound_bankswitch_w) UINT8 *RAM = machine().region("audiocpu")->base(); int banknum = (data - 1) & 3; - memory_set_bankptr (machine(), "bank7", &RAM [0x10000 + (banknum * 0x4000)]); + subbank ("bank7")->set_base (&RAM [0x10000 + (banknum * 0x4000)]); } static ADDRESS_MAP_START( raimais_3_map, AS_PROGRAM, 8, taitol_state ) @@ -1788,7 +1788,7 @@ static WRITE8_DEVICE_HANDLER( portA_w ) state->m_cur_bank = data & 0x03; bankaddress = 0x10000 + (state->m_cur_bank - 1) * 0x4000; - memory_set_bankptr(device->machine(), "bank7", &RAM[bankaddress]); + state->subbank("bank7")->set_base(&RAM[bankaddress]); //logerror ("YM2203 bank change val=%02x pc=%04x\n", state->m_cur_bank, cpu_get_pc(&space->device()) ); } } diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c index a03a9b1653d..2ea5e1c8696 100644 --- a/src/mame/drivers/taito_x.c +++ b/src/mame/drivers/taito_x.c @@ -412,7 +412,7 @@ static void reset_sound_region(running_machine &machine) { taitox_state *state = machine.driver_data<taitox_state>(); - memory_set_bankptr(machine, "bank2", machine.region("audiocpu")->base() + (state->m_banknum * 0x4000) + 0x10000 ); + state->subbank("bank2")->set_base(machine.region("audiocpu")->base() + (state->m_banknum * 0x4000) + 0x10000 ); } WRITE8_MEMBER(taitox_state::sound_bankswitch_w) diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c index 6ef2702bfba..7e99b232bfb 100644 --- a/src/mame/drivers/taito_z.c +++ b/src/mame/drivers/taito_z.c @@ -1417,7 +1417,7 @@ READ16_MEMBER(taitoz_state::aquajack_unknown_r) static void reset_sound_region( running_machine &machine ) { taitoz_state *state = machine.driver_data<taitoz_state>(); - memory_set_bank(machine, "bank10", state->m_banknum); + state->subbank("bank10")->set_entry(state->m_banknum); } WRITE8_MEMBER(taitoz_state::sound_bankswitch_w) @@ -3062,7 +3062,7 @@ static MACHINE_START( taitoz ) { int banks = (machine.region("audiocpu")->bytes() - 0xc000) / 0x4000; - memory_configure_bank(machine, "bank10", 0, banks, machine.region("audiocpu")->base() + 0xc000, 0x4000); + machine.root_device().subbank("bank10")->configure_entries(0, banks, machine.region("audiocpu")->base() + 0xc000, 0x4000); machine.save().register_postload(save_prepost_delegate(FUNC(taitoz_postload), &machine)); diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c index 6bc35d2a28d..0ce21731154 100644 --- a/src/mame/drivers/taitoair.c +++ b/src/mame/drivers/taitoair.c @@ -378,7 +378,7 @@ READ16_MEMBER(taitoair_state::stick2_input_r) static void reset_sound_region( running_machine &machine ) { taitoair_state *state = machine.driver_data<taitoair_state>(); - memory_set_bank(machine, "bank1", state->m_banknum); + state->subbank("bank1")->set_entry(state->m_banknum); } WRITE8_MEMBER(taitoair_state::sound_bankswitch_w) @@ -672,7 +672,7 @@ static MACHINE_START( taitoair ) UINT8 *ROM = machine.region("audiocpu")->base(); int i; - memory_configure_bank(machine, "bank1", 0, 4, &ROM[0xc000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000); state->m_audiocpu = machine.device("audiocpu"); state->m_dsp = machine.device("dsp"); diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c index 15edd551ee9..18644510201 100644 --- a/src/mame/drivers/taitowlf.c +++ b/src/mame/drivers/taitowlf.c @@ -144,11 +144,11 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i { if (data & 0x10) // enable RAM access to region 0xf0000 - 0xfffff { - memory_set_bankptr(busdevice->machine(), "bank1", state->m_bios_ram); + state->subbank("bank1")->set_base(state->m_bios_ram); } else // disable RAM access (reads go to BIOS ROM) { - memory_set_bankptr(busdevice->machine(), "bank1", busdevice->machine().region("user1")->base() + 0x30000); + state->subbank("bank1")->set_base(busdevice->machine().region("user1")->base() + 0x30000); } break; } @@ -539,7 +539,7 @@ static MACHINE_START(taitowlf) static MACHINE_RESET(taitowlf) { - memory_set_bankptr(machine, "bank1", machine.region("user1")->base() + 0x30000); + machine.root_device().subbank("bank1")->set_base(machine.region("user1")->base() + 0x30000); } diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c index 7ba02089efd..2c3b8e857f1 100644 --- a/src/mame/drivers/tankbust.c +++ b/src/mame/drivers/tankbust.c @@ -99,8 +99,8 @@ WRITE8_MEMBER(tankbust_state::tankbust_e0xx_w) case 7: /* 0xe007 bankswitch */ /* bank 1 at 0x6000-9fff = from 0x10000 when bit0=0 else from 0x14000 */ /* bank 2 at 0xa000-bfff = from 0x18000 when bit0=0 else from 0x1a000 */ - memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x10000 + ((data&1) * 0x4000) ); - memory_set_bankptr(machine(), "bank2", machine().region("maincpu")->base() + 0x18000 + ((data&1) * 0x2000) ); /* verified (the game will reset after the "game over" otherwise) */ + subbank("bank1")->set_base(machine().region("maincpu")->base() + 0x10000 + ((data&1) * 0x4000) ); + subbank("bank2")->set_base(machine().region("maincpu")->base() + 0x18000 + ((data&1) * 0x2000) ); /* verified (the game will reset after the "game over" otherwise) */ break; } } diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c index 37b8868189b..ebd2f84e622 100644 --- a/src/mame/drivers/taotaido.c +++ b/src/mame/drivers/taotaido.c @@ -125,7 +125,7 @@ WRITE8_MEMBER(taotaido_state::taotaido_sh_bankswitch_w) { UINT8 *rom = machine().region("audiocpu")->base() + 0x10000; - memory_set_bankptr(machine(), "bank1",rom + (data & 0x03) * 0x8000); + subbank("bank1")->set_base(rom + (data & 0x03) * 0x8000); } static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taotaido_state ) diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c index 177b7644677..9a44ba6d3f7 100644 --- a/src/mame/drivers/tatsumi.c +++ b/src/mame/drivers/tatsumi.c @@ -1355,11 +1355,11 @@ static DRIVER_INIT( cyclwarr ) dst = machine.region("maincpu")->base(); memcpy(state->m_cyclwarr_cpua_ram,dst,8); - memory_set_bankptr(machine, "bank1", dst); + state->subbank("bank1")->set_base(dst); dst = machine.region("sub")->base(); memcpy(state->m_cyclwarr_cpub_ram,dst,8); - memory_set_bankptr(machine, "bank2", dst); + state->subbank("bank2")->set_base(dst); // Copy sprite & palette data out of GFX rom area state->m_rom_sprite_lookup1 = machine.region("gfx2")->base(); diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c index c142d7e4550..87c17880b3d 100644 --- a/src/mame/drivers/tbowl.c +++ b/src/mame/drivers/tbowl.c @@ -38,7 +38,7 @@ WRITE8_MEMBER(tbowl_state::tbowlb_bankswitch_w) bankaddress = 0x10000 + ((data & 0xf8) << 8); - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } WRITE8_MEMBER(tbowl_state::tbowlc_bankswitch_w) @@ -50,7 +50,7 @@ WRITE8_MEMBER(tbowl_state::tbowlc_bankswitch_w) bankaddress = 0x10000 + ((data & 0xf8) << 8); - memory_set_bankptr(machine(), "bank2", &RAM[bankaddress]); + subbank("bank2")->set_base(&RAM[bankaddress]); } /*** Shared Ram Handlers diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c index 6763677e32e..d9315d992dc 100644 --- a/src/mame/drivers/tecmo.c +++ b/src/mame/drivers/tecmo.c @@ -59,7 +59,7 @@ WRITE8_MEMBER(tecmo_state::tecmo_bankswitch_w) bankaddress = 0x10000 + ((data & 0xf8) << 8); - memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } WRITE8_MEMBER(tecmo_state::tecmo_sound_command_w) diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index 806416cb4dc..cb51934a178 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -326,7 +326,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(tecmosys_state::tecmosys_z80_bank_w) { - memory_set_bank(machine(), "bank1", data); + subbank("bank1")->set_entry(data); } WRITE8_MEMBER(tecmosys_state::tecmosys_oki_bank_w) @@ -448,7 +448,7 @@ static const ymf262_interface tecmosys_ymf262_interface = static MACHINE_START( tecmosys ) { // tecmosys_state *state = machine.driver_data<tecmosys_state>(); - memory_configure_bank(machine, "bank1", 0, 16, machine.region("audiocpu")->base(), 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 16, machine.region("audiocpu")->base(), 0x4000); } static MACHINE_CONFIG_START( deroon, tecmosys_state ) diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c index 1e77b3b687f..3770a282bc0 100644 --- a/src/mame/drivers/thedeep.c +++ b/src/mame/drivers/thedeep.c @@ -53,7 +53,7 @@ WRITE8_MEMBER(thedeep_state::thedeep_sound_w) static MACHINE_RESET( thedeep ) { thedeep_state *state = machine.driver_data<thedeep_state>(); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x10000 + 0 * 0x4000); + state->subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x10000 + 0 * 0x4000); state->m_scroll[0] = 0; state->m_scroll[1] = 0; state->m_scroll[2] = 0; @@ -87,7 +87,7 @@ WRITE8_MEMBER(thedeep_state::thedeep_protection_w) if (m_rombank == new_rombank) break; m_rombank = new_rombank; rom = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1", rom + 0x10000 + m_rombank * 0x4000); + subbank("bank1")->set_base(rom + 0x10000 + m_rombank * 0x4000); /* there's code which falls through from the fixed ROM to bank #1, I have to */ /* copy it there otherwise the CPU bank switching support will not catch it. */ memcpy(rom + 0x08000, rom + 0x10000 + m_rombank * 0x4000, 0x4000); @@ -198,7 +198,7 @@ static void thedeep_maincpu_bankswitch(running_machine &machine,UINT8 bank_trig) return; state->m_rombank = new_rombank; rom = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", rom + 0x10000 + state->m_rombank * 0x4000); + state->subbank("bank1")->set_base(rom + 0x10000 + state->m_rombank * 0x4000); /* there's code which falls through from the fixed ROM to bank #1, I have to */ /* copy it there otherwise the CPU bank switching support will not catch it. */ memcpy(rom + 0x08000, rom + 0x10000 + state->m_rombank * 0x4000, 0x4000); diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c index dbd88fb27aa..f4cb94da11b 100644 --- a/src/mame/drivers/thunderx.c +++ b/src/mame/drivers/thunderx.c @@ -322,7 +322,7 @@ WRITE8_MEMBER(thunderx_state::scontra_bankswitch_w) /* bits 0-3 ROM bank */ offs = 0x10000 + (data & 0x0f)*0x2000; - memory_set_bankptr(machine(), "bank1", &RAM[offs] ); + subbank("bank1")->set_base(&RAM[offs] ); /* bit 4 select work RAM or palette RAM at 5800-5fff */ m_palette_selected = ~data & 0x10; @@ -626,9 +626,9 @@ static MACHINE_START( thunderx ) thunderx_state *state = machine.driver_data<thunderx_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 12, &ROM[0x10000], 0x2000); - memory_configure_bank(machine, "bank1", 12, 4, &ROM[0x08000], 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(12, 4, &ROM[0x08000], 0x2000); + state->subbank("bank1")->set_entry(0); memset(state->m_pmcram, 0, sizeof(state->m_pmcram)); @@ -991,7 +991,7 @@ ROM_END static KONAMI_SETLINES_CALLBACK( thunderx_banking ) { //logerror("thunderx %04x: bank select %02x\n", cpu_get_pc(device->cpu), lines); - memory_set_bank(device->machine(), "bank1", ((lines & 0x0f) ^ 0x08)); + device->machine().root_device().subbank("bank1")->set_entry(((lines & 0x0f) ^ 0x08)); } GAME( 1988, scontra, 0, scontra, scontra, 0, ROT90, "Konami", "Super Contra", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c index 8e4d00fef5f..c2615c06229 100644 --- a/src/mame/drivers/tmaster.c +++ b/src/mame/drivers/tmaster.c @@ -660,9 +660,9 @@ static void galgames_update_rombank(running_machine &machine, UINT32 cart) state->m_gfx_offs = 0x200000 * cart; if (machine.memory().bank(GALGAMES_BANK_000000_R) == GALGAMES_RAM) - memory_set_bank(machine, GALGAMES_BANK_200000_R, GALGAMES_ROM0 + state->m_galgames_cart); // rom + state->subbank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_ROM0 + state->m_galgames_cart); // rom - memory_set_bank(machine, GALGAMES_BANK_240000_R, GALGAMES_ROM0 + state->m_galgames_cart); // rom + state->subbank(GALGAMES_BANK_240000_R)->set_entry(GALGAMES_ROM0 + state->m_galgames_cart); // rom } WRITE16_MEMBER(tmaster_state::galgames_cart_sel_w) @@ -712,14 +712,14 @@ WRITE16_MEMBER(tmaster_state::galgames_cart_clock_w) // ROM/RAM banking if ((data & 0xf7) == 0x05) { - memory_set_bank(machine(), GALGAMES_BANK_000000_R, GALGAMES_RAM); // ram + subbank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_RAM); // ram galgames_update_rombank(machine(), m_galgames_cart); logerror("%06x: romram bank = %04x\n", cpu_get_pc(&space.device()), data); } else { - memory_set_bank(machine(), GALGAMES_BANK_000000_R, GALGAMES_ROM0); // rom - memory_set_bank(machine(), GALGAMES_BANK_200000_R, GALGAMES_RAM); // ram + subbank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_ROM0); // rom + subbank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_RAM); // ram logerror("%06x: unknown romram bank = %04x\n", cpu_get_pc(&space.device()), data); } } @@ -951,13 +951,13 @@ static MACHINE_RESET( galgames ) state->m_gfx_offs = 0; state->m_gfx_size = 0x200000; - memory_set_bank(machine, GALGAMES_BANK_000000_R, GALGAMES_ROM0); // rom - memory_set_bank(machine, GALGAMES_BANK_000000_W, GALGAMES_RAM); // ram + state->subbank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_ROM0); // rom + state->subbank(GALGAMES_BANK_000000_W)->set_entry(GALGAMES_RAM); // ram - memory_set_bank(machine, GALGAMES_BANK_200000_R, GALGAMES_RAM); // ram - memory_set_bank(machine, GALGAMES_BANK_200000_W, GALGAMES_RAM); // ram + state->subbank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_RAM); // ram + state->subbank(GALGAMES_BANK_200000_W)->set_entry(GALGAMES_RAM); // ram - memory_set_bank(machine, GALGAMES_BANK_240000_R, GALGAMES_ROM0); // rom + state->subbank(GALGAMES_BANK_240000_R)->set_entry(GALGAMES_ROM0); // rom galgames_update_rombank(machine, 0); @@ -1840,17 +1840,17 @@ static DRIVER_INIT( galgames ) // RAM bank at 0x000000-0x03ffff and 0x200000-0x23ffff // ROM bank at 0x000000-0x1fffff and 0x200000-0x3fffff (bios) - memory_configure_bank(machine, GALGAMES_BANK_000000_R, GALGAMES_RAM, 1, state->m_galgames_ram, 0x40000); - memory_configure_bank(machine, GALGAMES_BANK_000000_R, GALGAMES_ROM0, 1, ROM+0x000000, 0x40000); + state->subbank(GALGAMES_BANK_000000_R)->configure_entry(GALGAMES_RAM, state->m_galgames_ram); + state->subbank(GALGAMES_BANK_000000_R)->configure_entry(GALGAMES_ROM0, ROM+0x000000); - memory_configure_bank(machine, GALGAMES_BANK_000000_W, GALGAMES_RAM, 1, state->m_galgames_ram, 0x40000); + state->subbank(GALGAMES_BANK_000000_W)->configure_entry(GALGAMES_RAM, state->m_galgames_ram); - memory_configure_bank(machine, GALGAMES_BANK_200000_R, GALGAMES_RAM, 1, state->m_galgames_ram, 0x40000); - memory_configure_bank(machine, GALGAMES_BANK_200000_R, GALGAMES_ROM0, 1, ROM+0x000000, 0x40000); + state->subbank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_RAM, state->m_galgames_ram); + state->subbank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_ROM0, ROM+0x000000); - memory_configure_bank(machine, GALGAMES_BANK_200000_W, GALGAMES_RAM, 1, state->m_galgames_ram, 0x40000); + state->subbank(GALGAMES_BANK_200000_W)->configure_entry(GALGAMES_RAM, state->m_galgames_ram); - memory_configure_bank(machine, GALGAMES_BANK_240000_R, GALGAMES_ROM0, 1, ROM+0x040000, 0x1c0000); + state->subbank(GALGAMES_BANK_240000_R)->configure_entry(GALGAMES_ROM0, ROM+0x040000); // More ROM banks at 0x200000-0x3fffff (carts) @@ -1861,8 +1861,8 @@ static DRIVER_INIT( galgames ) if (0x200000 * (cart+1) <= machine.region("maincpu")->bytes()) CART += 0x200000 * cart; - memory_configure_bank(machine, GALGAMES_BANK_200000_R, GALGAMES_ROM0+cart, 1, CART, 0x40000); - memory_configure_bank(machine, GALGAMES_BANK_240000_R, GALGAMES_ROM0+cart, 1, CART+0x040000, 0x1c0000); + state->subbank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_ROM0+cart, CART); + state->subbank(GALGAMES_BANK_240000_R)->configure_entry(GALGAMES_ROM0+cart, CART+0x040000); } } diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index 9207690ea9f..cbeb4c9d57f 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -236,7 +236,7 @@ WRITE16_MEMBER(tmnt_state::prmrsocr_sound_irq_w) WRITE8_MEMBER(tmnt_state::prmrsocr_audio_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 7); + subbank("bank1")->set_entry(data & 7); } @@ -2605,7 +2605,7 @@ static MACHINE_START( prmrsocr ) { MACHINE_START_CALL(common); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); } static MACHINE_CONFIG_START( prmrsocr, tmnt_state ) diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c index 1d8abe5b18d..5743e5358d0 100644 --- a/src/mame/drivers/tmspoker.c +++ b/src/mame/drivers/tmspoker.c @@ -294,7 +294,7 @@ static INTERRUPT_GEN( tmspoker_interrupt ) static MACHINE_START( tmspoker ) { UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &ROM[0], 0x1000); } @@ -304,7 +304,7 @@ static MACHINE_RESET( tmspoker ) popmessage("ROM Bank: %02X", seldsw); - memory_set_bank(machine, "bank1", seldsw); + machine.root_device().subbank("bank1")->set_entry(seldsw); } diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c index d0b3662a36e..699a95c3cfc 100644 --- a/src/mame/drivers/tnzs.c +++ b/src/mame/drivers/tnzs.c @@ -738,7 +738,7 @@ static WRITE8_DEVICE_HANDLER( kabukiz_sound_bank_w ) { // to avoid the write when the sound chip is initialized if (data != 0xff) - memory_set_bank(device->machine(), "bank3", data & 0x07); + device->machine().root_device().subbank("bank3")->set_entry(data & 0x07); } static WRITE8_DEVICE_HANDLER( kabukiz_sample_w ) @@ -903,7 +903,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(tnzs_state::jpopnics_subbankswitch_w) { /* bits 0-1 select ROM bank */ - memory_set_bank(machine(), "bank2", data & 0x03); + subbank("bank2")->set_entry(data & 0x03); } static ADDRESS_MAP_START( jpopnics_sub_map, AS_PROGRAM, 8, tnzs_state ) diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index f2b6641c498..63c279e8b4b 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -433,7 +433,7 @@ static DRIVER_INIT( fixeightbl ) { UINT8 *ROM = machine.region("oki")->base(); - memory_configure_bank(machine, "bank1", 0, 5, &ROM[0x30000], 0x10000); + machine.root_device().subbank("bank1")->configure_entries(0, 5, &ROM[0x30000], 0x10000); } @@ -464,7 +464,7 @@ static DRIVER_INIT( bgaregga ) UINT8 *Z80 = machine.region("audiocpu")->base(); // seems to only use banks 0x0a to 0x0f - memory_configure_bank(machine, "bank1", 8, 8, Z80, 0x4000); + machine.root_device().subbank("bank1")->configure_entries(8, 8, Z80, 0x4000); } @@ -473,7 +473,7 @@ static DRIVER_INIT( batrider ) toaplan2_state *state = machine.driver_data<toaplan2_state>(); UINT8 *Z80 = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank1", 0, 16, Z80, 0x4000); + state->subbank("bank1")->configure_entries(0, 16, Z80, 0x4000); state->m_sndirq_line = 4; } @@ -781,7 +781,7 @@ WRITE16_MEMBER(toaplan2_state::fixeightbl_oki_bankswitch_w) if (ACCESSING_BITS_0_7) { data &= 7; - if (data <= 4) memory_set_bank(machine(), "bank1", data); + if (data <= 4) subbank("bank1")->set_entry(data); } } @@ -840,7 +840,7 @@ READ8_MEMBER(toaplan2_state::fixeight_region_r) WRITE8_MEMBER(toaplan2_state::raizing_z80_bankswitch_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c index 105cc94b5eb..4617f77d3a1 100644 --- a/src/mame/drivers/toki.c +++ b/src/mame/drivers/toki.c @@ -76,7 +76,7 @@ static WRITE8_DEVICE_HANDLER( toki_adpcm_control_w ) /* the code writes either 2 or 3 in the bottom two bits */ bankaddress = 0x10000 + (data & 0x01) * 0x4000; - memory_set_bankptr(device->machine(), "bank1",&RAM[bankaddress]); + device->machine().root_device().subbank("bank1")->set_base(&RAM[bankaddress]); msm5205_reset_w(device,data & 0x08); } diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c index 9c43404c465..22e79cae719 100644 --- a/src/mame/drivers/topspeed.c +++ b/src/mame/drivers/topspeed.c @@ -392,7 +392,7 @@ WRITE16_MEMBER(topspeed_state::topspeed_motor_w) static void reset_sound_region( running_machine &machine ) { topspeed_state *state = machine.driver_data<topspeed_state>(); - memory_set_bank(machine, "bank10", state->m_banknum); + state->subbank("bank10")->set_entry(state->m_banknum); } static WRITE8_DEVICE_HANDLER( sound_bankswitch_w ) /* assumes Z80 sandwiched between 68Ks */ @@ -646,7 +646,7 @@ static MACHINE_START( topspeed ) { topspeed_state *state = machine.driver_data<topspeed_state>(); - memory_configure_bank(machine, "bank10", 0, 4, machine.region("audiocpu")->base() + 0xc000, 0x4000); + state->subbank("bank10")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0xc000, 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_subcpu = machine.device("sub"); diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c index 1dbf614f29d..bf22540ee3a 100644 --- a/src/mame/drivers/trackfld.c +++ b/src/mame/drivers/trackfld.c @@ -211,7 +211,7 @@ WRITE8_MEMBER(trackfld_state::questions_bank_w) { if((data & 1 << i) == 0) // check first bit active low, change ROM bank according to the correlated bit { - memory_set_bank(machine(), "bank1", i); + subbank("bank1")->set_entry(i); return; } } @@ -1446,10 +1446,10 @@ static DRIVER_INIT( atlantol ) space->install_read_bank(0x1380, 0x17ff, "bank11"); space->install_read_bank(0x2000, 0x27ff, "bank12"); space->install_read_bank(0x4000, 0x5fff, "bank13"); - memory_set_bankptr(machine, "bank10", &rom[0x0000]); - memory_set_bankptr(machine, "bank11", &rom[0x1380]); - memory_set_bankptr(machine, "bank12", &rom[0x2000]); - memory_set_bankptr(machine, "bank13", &rom[0x4000]); + state->subbank("bank10")->set_base(&rom[0x0000]); + state->subbank("bank11")->set_base(&rom[0x1380]); + state->subbank("bank12")->set_base(&rom[0x2000]); + state->subbank("bank13")->set_base(&rom[0x4000]); } static DRIVER_INIT( mastkin ) @@ -1488,7 +1488,7 @@ static DRIVER_INIT( wizzquiz ) for (i = 0; i < 0x40000; i++) ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); - memory_configure_bank(machine, "bank1", 0, 8, ROM, 0x8000); + machine.root_device().subbank("bank1")->configure_entries(0, 8, ROM, 0x8000); } diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c index 93b659089c6..aa151e2203e 100644 --- a/src/mame/drivers/trvmadns.c +++ b/src/mame/drivers/trvmadns.c @@ -114,8 +114,8 @@ WRITE8_MEMBER(trvmadns_state::trvmadns_banking_w) address |= (data & 0x10) ? 0x10000 : 0; - memory_set_bankptr(machine(), "bank1", &rom[address]); - memory_set_bankptr(machine(), "bank2", &rom[address + 0x1000]); + subbank("bank1")->set_base(&rom[address]); + subbank("bank2")->set_base(&rom[address + 0x1000]); } else { @@ -154,7 +154,7 @@ WRITE8_MEMBER(trvmadns_state::trvmadns_banking_w) // logerror("add = %X\n",address); - memory_set_bankptr(machine(), "bank1", &rom[address]); + subbank("bank1")->set_base(&rom[address]); } } diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c index c32ec378e62..97d3aaefd9b 100644 --- a/src/mame/drivers/tryout.c +++ b/src/mame/drivers/tryout.c @@ -49,7 +49,7 @@ WRITE8_MEMBER(tryout_state::tryout_bankswitch_w) int bankaddress; bankaddress = 0x10000 + (data & 0x01) * 0x2000; - memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, tryout_state ) diff --git a/src/mame/drivers/ttchamp.c b/src/mame/drivers/ttchamp.c index 1e4352c4362..8e86d699d0a 100644 --- a/src/mame/drivers/ttchamp.c +++ b/src/mame/drivers/ttchamp.c @@ -114,7 +114,7 @@ WRITE16_MEMBER(ttchamp_state::pcup_prgbank_w) if (ACCESSING_BITS_0_7) { bank = (data>>4) &0x07; - memory_set_bankptr(machine(), "bank2",&ROM1[0x80000*(bank)]); + subbank("bank2")->set_base(&ROM1[0x80000*(bank)]); } } #endif @@ -338,8 +338,8 @@ ROM_END static DRIVER_INIT (ttchamp) { UINT8 *ROM1 = machine.region("user1")->base(); - memory_set_bankptr(machine, "bank1",&ROM1[0x120000]); - memory_set_bankptr(machine, "bank2",&ROM1[0x180000]); + machine.root_device().subbank("bank1")->set_base(&ROM1[0x120000]); + machine.root_device().subbank("bank2")->set_base(&ROM1[0x180000]); } GAME( 199?, ttchamp, 0, ttchamp, ttchamp, ttchamp, ROT0, "Gamart?", "Table Tennis Champions (set 1)", GAME_NOT_WORKING|GAME_NO_SOUND ) diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c index 95e9070b2a8..435b431af01 100644 --- a/src/mame/drivers/tumbleb.c +++ b/src/mame/drivers/tumbleb.c @@ -808,7 +808,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(tumbleb_state::jumppop_z80_bank_w) { - memory_set_bankptr(machine(), "bank1", machine().region("audiocpu")->base() + 0x10000 + (0x4000 * data)); + subbank("bank1")->set_base(machine().region("audiocpu")->base() + 0x10000 + (0x4000 * data)); } static ADDRESS_MAP_START( jumppop_sound_map, AS_PROGRAM, 8, tumbleb_state ) diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c index cc930edab25..b0fa22cd315 100644 --- a/src/mame/drivers/tutankhm.c +++ b/src/mame/drivers/tutankhm.c @@ -89,7 +89,7 @@ WRITE8_MEMBER(tutankhm_state::irq_enable_w) WRITE8_MEMBER(tutankhm_state::tutankhm_bankselect_w) { - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } @@ -198,7 +198,7 @@ static MACHINE_START( tutankhm ) { tutankhm_state *state = machine.driver_data<tutankhm_state>(); - memory_configure_bank(machine, "bank1", 0, 16, machine.region("maincpu")->base() + 0x10000, 0x1000); + state->subbank("bank1")->configure_entries(0, 16, machine.region("maincpu")->base() + 0x10000, 0x1000); state->m_maincpu = machine.device<cpu_device>("maincpu"); diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c index d5137078ff5..6309aeb3d49 100644 --- a/src/mame/drivers/upscope.c +++ b/src/mame/drivers/upscope.c @@ -87,7 +87,7 @@ static void upscope_reset(running_machine &machine) static WRITE8_DEVICE_HANDLER( upscope_cia_0_porta_w ) { /* switch banks as appropriate */ - memory_set_bank(device->machine(), "bank1", data & 1); + device->machine().root_device().subbank("bank1")->set_entry(data & 1); /* swap the write handlers between ROM and bank 1 based on the bit */ if ((data & 1) == 0) @@ -404,8 +404,8 @@ static DRIVER_INIT( upscope ) machine.device<nvram_device>("nvram")->set_base(state->m_nvram, sizeof(state->m_nvram)); /* set up memory */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_chip_ram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("user1")->base(), 0); + state->subbank("bank1")->configure_entry(0, state->m_chip_ram); + state->subbank("bank1")->configure_entry(1, machine.region("user1")->base()); } diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c index ef2b52d77ea..a45ff24e68b 100644 --- a/src/mame/drivers/usgames.c +++ b/src/mame/drivers/usgames.c @@ -38,7 +38,7 @@ WRITE8_MEMBER(usgames_state::usgames_rombank_w) // logerror ("BANK WRITE? -%02x-\n",data); //popmessage("%02x",data); - memory_set_bankptr(machine(), "bank1",&RAM[ 0x10000 + 0x4000 * data] ); + subbank("bank1")->set_base(&RAM[ 0x10000 + 0x4000 * data] ); } WRITE8_MEMBER(usgames_state::lamps1_w) diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c index c42949876ed..a126fffe323 100644 --- a/src/mame/drivers/vball.c +++ b/src/mame/drivers/vball.c @@ -158,7 +158,7 @@ WRITE8_MEMBER(vball_state::vball_irq_ack_w) WRITE8_MEMBER(vball_state::vb_bankswitch_w) { UINT8 *RAM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1", &RAM[0x10000 + (0x4000 * (data & 1))]); + subbank("bank1")->set_base(&RAM[0x10000 + (0x4000 * (data & 1))]); if (m_gfxset != ((data & 0x20) ^ 0x20)) { diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c index 465aa0ffdd1..687f7d772b8 100644 --- a/src/mame/drivers/vendetta.c +++ b/src/mame/drivers/vendetta.c @@ -171,7 +171,7 @@ static void vendetta_video_banking( running_machine &machine, int select ) space->install_read_bank(state->m_video_banking_base + 0x2000, state->m_video_banking_base + 0x2fff, "bank4" ); space->install_write_handler(state->m_video_banking_base + 0x2000, state->m_video_banking_base + 0x2fff, write8_delegate(FUNC(vendetta_state::paletteram_xBBBBBGGGGGRRRRR_byte_be_w), state) ); space->install_legacy_readwrite_handler(*state->m_k053246, state->m_video_banking_base + 0x0000, state->m_video_banking_base + 0x0fff, FUNC(k053247_r), FUNC(k053247_w) ); - memory_set_bankptr(machine, "bank4", state->m_generic_paletteram_8); + state->subbank("bank4")->set_base(state->m_generic_paletteram_8); } else { @@ -461,8 +461,8 @@ static MACHINE_START( vendetta ) vendetta_state *state = machine.driver_data<vendetta_state>(); UINT8 *ROM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 28, &ROM[0x10000], 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 28, &ROM[0x10000], 0x2000); + state->subbank("bank1")->set_entry(0); state->m_generic_paletteram_8.allocate(0x1000); @@ -786,7 +786,7 @@ static KONAMI_SETLINES_CALLBACK( vendetta_banking ) if (lines >= 0x1c) logerror("PC = %04x : Unknown bank selected %02x\n", cpu_get_pc(device), lines); else - memory_set_bank(device->machine(), "bank1", lines); + device->machine().root_device().subbank("bank1")->set_entry(lines); } static DRIVER_INIT( vendetta ) diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c index 5b9d7b92dc9..82f29885b02 100644 --- a/src/mame/drivers/vigilant.c +++ b/src/mame/drivers/vigilant.c @@ -29,7 +29,7 @@ WRITE8_MEMBER(vigilant_state::vigilant_bank_select_w) UINT8 *RAM = machine().region("maincpu")->base(); bankaddress = 0x10000 + (data & 0x07) * 0x4000; - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } /*************************************************************************** diff --git a/src/mame/drivers/voyager.c b/src/mame/drivers/voyager.c index a0a8696d972..aa2913d473e 100644 --- a/src/mame/drivers/voyager.c +++ b/src/mame/drivers/voyager.c @@ -234,7 +234,7 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i //if (data & 0x10) // enable RAM access to region 0xf0000 - 0xfffff if ((data & 0x50) | (data & 0xA0)) { - memory_set_bankptr(busdevice->machine(), "bank1", state->m_bios_ram); + state->subbank("bank1")->set_base(state->m_bios_ram); } else // disable RAM access (reads go to BIOS ROM) { @@ -247,8 +247,8 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i } #endif - //memory_set_bankptr(busdevice->machine(), "bank1", busdevice->machine().region("bios")->base() + 0x10000); - memory_set_bankptr(busdevice->machine(), "bank1", busdevice->machine().region("bios")->base()); + state->subbank("bank1")->set_base(busdevice->machine().region("bios")->base() + 0x10000); + state->subbank("bank1")->set_base(busdevice->machine().region("bios")->base()); } break; } @@ -720,8 +720,8 @@ static const struct pit8253_config voyager_pit8254_config = static MACHINE_RESET(voyager) { - //memory_set_bankptr(machine, "bank1", machine.region("bios")->base() + 0x10000); - memory_set_bankptr(machine, "bank1", machine.region("bios")->base()); + //machine.root_device().subbank("bank1")->set_base(machine.region("bios")->base() + 0x10000); + machine.root_device().subbank("bank1")->set_base(machine.region("bios")->base()); } static void set_gate_a20(running_machine &machine, int a20) diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c index 664968e2ded..393be32a8fc 100644 --- a/src/mame/drivers/wardner.c +++ b/src/mame/drivers/wardner.c @@ -171,7 +171,7 @@ WRITE8_MEMBER(wardner_state::wardner_ramrom_bank_sw) case 6: bankaddress = 0x30000; break; /* not used */ default: bankaddress = 0x00000; break; /* not used */ } - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); } else { @@ -179,10 +179,10 @@ WRITE8_MEMBER(wardner_state::wardner_ramrom_bank_sw) mainspace->install_read_bank(0xa000, 0xadff, "bank4"); mainspace->install_read_bank(0xae00, 0xafff, "bank2"); mainspace->install_read_bank(0xc000, 0xc7ff, "bank3"); - memory_set_bankptr(machine(), "bank1", &RAM[0x0000]); - memory_set_bankptr(machine(), "bank2", m_rambase_ae00); - memory_set_bankptr(machine(), "bank3", m_rambase_c000); - memory_set_bankptr(machine(), "bank4", m_generic_paletteram_8); + subbank("bank1")->set_base(&RAM[0x0000]); + subbank("bank2")->set_base(m_rambase_ae00); + subbank("bank3")->set_base(m_rambase_c000); + subbank("bank4")->set_base(m_generic_paletteram_8); } } } diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c index 2f12c219181..5074dff8ed7 100644 --- a/src/mame/drivers/warriorb.c +++ b/src/mame/drivers/warriorb.c @@ -167,7 +167,7 @@ static MACHINE_RESET( taito_dualscreen ); static void reset_sound_region( running_machine &machine ) { warriorb_state *state = machine.driver_data<warriorb_state>(); - memory_set_bank(machine, "bank10", state->m_banknum); + state->subbank("bank10")->set_entry(state->m_banknum); } WRITE8_MEMBER(warriorb_state::sound_bankswitch_w) @@ -542,7 +542,7 @@ static MACHINE_START( warriorb ) { warriorb_state *state = machine.driver_data<warriorb_state>(); - memory_configure_bank(machine, "bank10", 0, 8, machine.region("audiocpu")->base() + 0xc000, 0x4000); + state->subbank("bank10")->configure_entries(0, 8, machine.region("audiocpu")->base() + 0xc000, 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c index 41cdee50212..7f93552d1f0 100644 --- a/src/mame/drivers/wc90.c +++ b/src/mame/drivers/wc90.c @@ -87,7 +87,7 @@ WRITE8_MEMBER(wc90_state::wc90_bankswitch_w) bankaddress = 0x10000 + ( ( data & 0xf8 ) << 8 ); - memory_set_bankptr(machine(), "bank1", &RAM[bankaddress] ); + subbank("bank1")->set_base(&RAM[bankaddress] ); } WRITE8_MEMBER(wc90_state::wc90_bankswitch1_w) @@ -97,7 +97,7 @@ WRITE8_MEMBER(wc90_state::wc90_bankswitch1_w) bankaddress = 0x10000 + ( ( data & 0xf8 ) << 8 ); - memory_set_bankptr(machine(), "bank2", &RAM[bankaddress] ); + subbank("bank2")->set_base(&RAM[bankaddress] ); } WRITE8_MEMBER(wc90_state::wc90_sound_command_w) diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c index 00294bb69e2..0d8007f787c 100644 --- a/src/mame/drivers/wc90b.c +++ b/src/mame/drivers/wc90b.c @@ -102,7 +102,7 @@ WRITE8_MEMBER(wc90b_state::wc90b_bankswitch_w) UINT8 *ROM = machine().region("maincpu")->base(); bankaddress = 0x10000 + ((data & 0xf8) << 8); - memory_set_bankptr(machine(), "bank1",&ROM[bankaddress]); + subbank("bank1")->set_base(&ROM[bankaddress]); } WRITE8_MEMBER(wc90b_state::wc90b_bankswitch1_w) @@ -111,7 +111,7 @@ WRITE8_MEMBER(wc90b_state::wc90b_bankswitch1_w) UINT8 *ROM = machine().region("sub")->base(); bankaddress = 0x10000 + ((data & 0xf8) << 8); - memory_set_bankptr(machine(), "bank2",&ROM[bankaddress]); + subbank("bank2")->set_base(&ROM[bankaddress]); } WRITE8_MEMBER(wc90b_state::wc90b_sound_command_w) @@ -127,7 +127,7 @@ static WRITE8_DEVICE_HANDLER( adpcm_control_w ) /* the code writes either 2 or 3 in the bottom two bits */ bankaddress = 0x10000 + (data & 0x01) * 0x4000; - memory_set_bankptr(device->machine(), "bank3",&ROM[bankaddress]); + device->machine().root_device().subbank("bank3")->set_base(&ROM[bankaddress]); msm5205_reset_w(device,data & 0x08); } diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c index 36d177db58b..219edf36c45 100644 --- a/src/mame/drivers/welltris.c +++ b/src/mame/drivers/welltris.c @@ -324,7 +324,7 @@ WRITE8_MEMBER(welltris_state::welltris_sh_bankswitch_w) { UINT8 *rom = machine().region("audiocpu")->base() + 0x10000; - memory_set_bankptr(machine(), "bank1",rom + (data & 0x03) * 0x8000); + subbank("bank1")->set_base(rom + (data & 0x03) * 0x8000); } diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c index 0b1d6904d6b..da906f73b94 100644 --- a/src/mame/drivers/wgp.c +++ b/src/mame/drivers/wgp.c @@ -608,7 +608,7 @@ WRITE16_MEMBER(wgp_state::wgp_adinput_w) static void reset_sound_region( running_machine &machine ) /* assumes Z80 sandwiched between the 68Ks */ { wgp_state *state = machine.driver_data<wgp_state>(); - memory_set_bank(machine, "bank10", state->m_banknum); + state->subbank("bank10")->set_entry(state->m_banknum); } WRITE8_MEMBER(wgp_state::sound_bankswitch_w) @@ -946,7 +946,7 @@ static MACHINE_START( wgp ) { wgp_state *state = machine.driver_data<wgp_state>(); - memory_configure_bank(machine, "bank10", 0, 4, machine.region("audiocpu")->base() + 0xc000, 0x4000); + state->subbank("bank10")->configure_entries(0, 4, machine.region("audiocpu")->base() + 0xc000, 0x4000); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/whitestar.c b/src/mame/drivers/whitestar.c index 08cf956c5cf..85afe5b7e78 100644 --- a/src/mame/drivers/whitestar.c +++ b/src/mame/drivers/whitestar.c @@ -98,12 +98,12 @@ WRITE8_MEMBER(whitestar_state::switch_w) WRITE8_MEMBER(whitestar_state::bank_w) { - memory_set_bankptr(machine(), "bank1", machine().region("user1")->base() + (data & 0x1f) * 0x4000); + subbank("bank1")->set_base(machine().region("user1")->base() + (data & 0x1f) * 0x4000); } WRITE8_MEMBER(whitestar_state::dmd_bank_w) { - memory_set_bankptr(machine(), "dmd_bank1", machine().region("dmdcpu")->base() + (data & 0x1f) * 0x4000); + subbank("dmd_bank1")->set_base(machine().region("dmdcpu")->base() + (data & 0x1f) * 0x4000); } READ8_MEMBER(whitestar_state::dmd_latch_r) @@ -170,8 +170,8 @@ ADDRESS_MAP_END static MACHINE_RESET( whitestar ) { - memory_set_bankptr(machine, "bank1", machine.region("user1")->base()); - memory_set_bankptr(machine, "dmd_bank1", machine.region("dmdcpu")->base()); + machine.root_device().subbank("bank1")->set_base(machine.region("user1")->base()); + machine.root_device().subbank("dmd_bank1")->set_base(machine.region("dmdcpu")->base()); } static DRIVER_INIT( whitestar ) diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c index 39b1045d97e..954e0b1a030 100644 --- a/src/mame/drivers/williams.c +++ b/src/mame/drivers/williams.c @@ -534,8 +534,8 @@ void defender_install_io_space(address_space *space) space->install_read_handler (0xc800, 0xcbff, 0, 0x03e0, read8_delegate(FUNC(williams_state::williams_video_counter_r),state)); space->install_readwrite_handler(0xcc00, 0xcc03, 0, 0x03e0, read8_delegate(FUNC(pia6821_device::read), pia_1), write8_delegate(FUNC(pia6821_device::write), pia_1)); space->install_readwrite_handler(0xcc04, 0xcc07, 0, 0x03e0, read8_delegate(FUNC(pia6821_device::read), pia_0), write8_delegate(FUNC(pia6821_device::write), pia_0)); - memory_set_bankptr(space->machine(), "bank3", space->machine().driver_data<williams_state>()->m_nvram); - memory_set_bankptr(space->machine(), "bank4", space->machine().driver_data<williams_state>()->m_generic_paletteram_8); + state->subbank("bank3")->set_base(space->machine().driver_data<williams_state>()->m_nvram); + state->subbank("bank4")->set_base(space->machine().driver_data<williams_state>()->m_generic_paletteram_8); } diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c index 7a9e09a1bed..360ce0a14db 100644 --- a/src/mame/drivers/witch.c +++ b/src/mame/drivers/witch.c @@ -383,7 +383,7 @@ WRITE8_MEMBER(witch_state::write_a00x) UINT8 *ROM = machine().region("maincpu")->base(); m_bank = newbank; ROM = &ROM[0x10000+0x8000 * newbank + UNBANKED_SIZE]; - memory_set_bankptr(machine(), "bank1",ROM); + subbank("bank1")->set_base(ROM); } } break; @@ -871,7 +871,7 @@ static DRIVER_INIT(witch) { witch_state *state = machine.driver_data<witch_state>(); UINT8 *ROM = (UINT8 *)machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank1", &ROM[0x10000+UNBANKED_SIZE]); + state->subbank("bank1")->set_base(&ROM[0x10000+UNBANKED_SIZE]); machine.device("sub")->memory().space(AS_PROGRAM)->install_read_handler(0x7000, 0x700f, read8_delegate(FUNC(witch_state::prot_read_700x), state)); state->m_bank = -1; diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c index e6d64dd63e9..98772dddc68 100644 --- a/src/mame/drivers/xain.c +++ b/src/mame/drivers/xain.c @@ -213,12 +213,12 @@ static TIMER_DEVICE_CALLBACK( xain_scanline ) WRITE8_MEMBER(xain_state::xainCPUA_bankswitch_w) { m_pri = data & 0x7; - memory_set_bank(machine(), "bank1", (data >> 3) & 1); + subbank("bank1")->set_entry((data >> 3) & 1); } WRITE8_MEMBER(xain_state::xainCPUB_bankswitch_w) { - memory_set_bank(machine(), "bank2", data & 1); + subbank("bank2")->set_entry(data & 1); } WRITE8_MEMBER(xain_state::xain_sound_command_w) @@ -568,10 +568,10 @@ static const ym2203_interface ym2203_config = static MACHINE_START( xsleena ) { - memory_configure_bank(machine, "bank1", 0, 2, machine.region("maincpu")->base() + 0x4000, 0xc000); - memory_configure_bank(machine, "bank2", 0, 2, machine.region("sub")->base() + 0x4000, 0xc000); - memory_set_bank(machine, "bank1", 0); - memory_set_bank(machine, "bank2", 0); + machine.root_device().subbank("bank1")->configure_entries(0, 2, machine.region("maincpu")->base() + 0x4000, 0xc000); + machine.root_device().subbank("bank2")->configure_entries(0, 2, machine.region("sub")->base() + 0x4000, 0xc000); + machine.root_device().subbank("bank1")->set_entry(0); + machine.root_device().subbank("bank2")->set_entry(0); } static MACHINE_CONFIG_START( xsleena, xain_state ) diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c index 1394d0b63d5..b5c72b6993a 100644 --- a/src/mame/drivers/xexex.c +++ b/src/mame/drivers/xexex.c @@ -237,7 +237,7 @@ READ16_MEMBER(xexex_state::sound_status_r) static void reset_sound_region(running_machine &machine) { xexex_state *state = machine.driver_data<xexex_state>(); - memory_set_bank(machine, "bank2", state->m_cur_sound_region & 0x07); + state->subbank("bank2")->set_entry(state->m_cur_sound_region & 0x07); } WRITE8_MEMBER(xexex_state::sound_bankswitch_w) @@ -458,8 +458,8 @@ static MACHINE_START( xexex ) xexex_state *state = machine.driver_data<xexex_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank2", 0, 8, &ROM[0x10000], 0x4000); - memory_set_bank(machine, "bank2", 0); + state->subbank("bank2")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank2")->set_entry(0); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 1e34fdefccb..83f8a354a43 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -97,7 +97,7 @@ WRITE16_MEMBER(xmen_state::xmen_18fa00_w) static void sound_reset_bank( running_machine &machine ) { xmen_state *state = machine.driver_data<xmen_state>(); - memory_set_bank(machine, "bank4", state->m_sound_curbank & 0x07); + state->subbank("bank4")->set_entry(state->m_sound_curbank & 0x07); } WRITE8_MEMBER(xmen_state::sound_bankswitch_w) @@ -297,8 +297,8 @@ static MACHINE_START( xmen ) xmen_state *state = machine.driver_data<xmen_state>(); UINT8 *ROM = machine.region("audiocpu")->base(); - memory_configure_bank(machine, "bank4", 0, 8, &ROM[0x10000], 0x4000); - memory_set_bank(machine, "bank4", 0); + state->subbank("bank4")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank4")->set_entry(0); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/xtom3d.c b/src/mame/drivers/xtom3d.c index a4eb7cfc7c0..9cb855ffb6a 100644 --- a/src/mame/drivers/xtom3d.c +++ b/src/mame/drivers/xtom3d.c @@ -145,50 +145,50 @@ static void mxtc_config_w(device_t *busdevice, device_t *device, int function, i case 0x59: // PAM0 { if (data & 0x10) // enable RAM access to region 0xf0000 - 0xfffff - memory_set_bankptr(busdevice->machine(), "bios_bank", state->m_bios_ram); + state->subbank("bios_bank")->set_base(state->m_bios_ram); else // disable RAM access (reads go to BIOS ROM) - memory_set_bankptr(busdevice->machine(), "bios_bank", busdevice->machine().region("bios")->base() + 0x10000); + state->subbank("bios_bank")->set_base(busdevice->machine().region("bios")->base() + 0x10000); break; } case 0x5a: // PAM1 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "video_bank1", state->m_isa_ram1); + state->subbank("video_bank1")->set_base(state->m_isa_ram1); else - memory_set_bankptr(busdevice->machine(), "video_bank1", busdevice->machine().region("video_bios")->base() + 0); + state->subbank("video_bank1")->set_base(busdevice->machine().region("video_bios")->base() + 0); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "video_bank2", state->m_isa_ram2); + state->subbank("video_bank2")->set_base(state->m_isa_ram2); else - memory_set_bankptr(busdevice->machine(), "video_bank2", busdevice->machine().region("video_bios")->base() + 0x4000); + state->subbank("video_bank2")->set_base(busdevice->machine().region("video_bios")->base() + 0x4000); break; } case 0x5e: // PAM5 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "bios_ext1", state->m_bios_ext1_ram); + state->subbank("bios_ext1")->set_base(state->m_bios_ext1_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext1", busdevice->machine().region("bios")->base() + 0); + state->subbank("bios_ext1")->set_base(busdevice->machine().region("bios")->base() + 0); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "bios_ext2", state->m_bios_ext2_ram); + state->subbank("bios_ext2")->set_base(state->m_bios_ext2_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext2", busdevice->machine().region("bios")->base() + 0x4000); + state->subbank("bios_ext2")->set_base(busdevice->machine().region("bios")->base() + 0x4000); break; } case 0x5f: // PAM6 { if (data & 0x1) - memory_set_bankptr(busdevice->machine(), "bios_ext3", state->m_bios_ext3_ram); + state->subbank("bios_ext3")->set_base(state->m_bios_ext3_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext3", busdevice->machine().region("bios")->base() + 0x8000); + state->subbank("bios_ext3")->set_base(busdevice->machine().region("bios")->base() + 0x8000); if (data & 0x10) - memory_set_bankptr(busdevice->machine(), "bios_ext4", state->m_bios_ext4_ram); + state->subbank("bios_ext4")->set_base(state->m_bios_ext4_ram); else - memory_set_bankptr(busdevice->machine(), "bios_ext4", busdevice->machine().region("bios")->base() + 0xc000); + state->subbank("bios_ext4")->set_base(busdevice->machine().region("bios")->base() + 0xc000); break; } @@ -666,13 +666,13 @@ static MACHINE_START( xtom3d ) static MACHINE_RESET( xtom3d ) { - memory_set_bankptr(machine, "bios_bank", machine.region("bios")->base() + 0x10000); - memory_set_bankptr(machine, "bios_ext1", machine.region("bios")->base() + 0); - memory_set_bankptr(machine, "bios_ext2", machine.region("bios")->base() + 0x4000); - memory_set_bankptr(machine, "bios_ext3", machine.region("bios")->base() + 0x8000); - memory_set_bankptr(machine, "bios_ext4", machine.region("bios")->base() + 0xc000); - memory_set_bankptr(machine, "video_bank1", machine.region("video_bios")->base() + 0); - memory_set_bankptr(machine, "video_bank2", machine.region("video_bios")->base() + 0x4000); + machine.root_device().subbank("bios_bank")->set_base(machine.region("bios")->base() + 0x10000); + machine.root_device().subbank("bios_ext1")->set_base(machine.region("bios")->base() + 0); + machine.root_device().subbank("bios_ext2")->set_base(machine.region("bios")->base() + 0x4000); + machine.root_device().subbank("bios_ext3")->set_base(machine.region("bios")->base() + 0x8000); + machine.root_device().subbank("bios_ext4")->set_base(machine.region("bios")->base() + 0xc000); + machine.root_device().subbank("video_bank1")->set_base(machine.region("video_bios")->base() + 0); + machine.root_device().subbank("video_bank2")->set_base(machine.region("video_bios")->base() + 0x4000); } diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c index fcd3fed7ba6..2f7bc4e16cc 100644 --- a/src/mame/drivers/xxmissio.c +++ b/src/mame/drivers/xxmissio.c @@ -16,7 +16,7 @@ XX Mission (c) 1986 UPL WRITE8_MEMBER(xxmissio_state::xxmissio_bank_sel_w) { - memory_set_bank(machine(), "bank1", data & 7); + subbank("bank1")->set_entry(data & 7); } CUSTOM_INPUT_MEMBER(xxmissio_state::xxmissio_status_r) @@ -79,8 +79,8 @@ static INTERRUPT_GEN( xxmissio_interrupt_s ) static MACHINE_START( xxmissio ) { - memory_configure_bank(machine, "bank1", 0, 8, machine.region("user1")->base(), 0x4000); - memory_set_bank(machine, "bank1", 0); + machine.root_device().subbank("bank1")->configure_entries(0, 8, machine.region("user1")->base(), 0x4000); + machine.root_device().subbank("bank1")->set_entry(0); } /****************************************************************************/ diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c index 39fbfb57358..c6672cb2859 100644 --- a/src/mame/drivers/yunsung8.c +++ b/src/mame/drivers/yunsung8.c @@ -49,7 +49,7 @@ WRITE8_MEMBER(yunsung8_state::yunsung8_bankswitch_w) m_layers_ctrl = data & 0x30; // Layers enable - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); if (data & ~0x37) logerror("CPU #0 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data); @@ -98,7 +98,7 @@ static WRITE8_DEVICE_HANDLER( yunsung8_sound_bankswitch_w ) { msm5205_reset_w(device, data & 0x20); - memory_set_bank(device->machine(), "bank2", data & 0x07); + device->machine().root_device().subbank("bank2")->set_entry(data & 0x07); if (data != (data & (~0x27))) logerror("%s: Bank %02X\n", device->machine().describe_context(), data); @@ -472,10 +472,10 @@ static MACHINE_START( yunsung8 ) state->m_videoram_0 = state->m_videoram + 0x0000; // Ram is banked state->m_videoram_1 = state->m_videoram + 0x2000; - memory_configure_bank(machine, "bank1", 0, 3, &MAIN[0x00000], 0x4000); - memory_configure_bank(machine, "bank1", 3, 5, &MAIN[0x10000], 0x4000); - memory_configure_bank(machine, "bank2", 0, 3, &AUDIO[0x00000], 0x4000); - memory_configure_bank(machine, "bank2", 3, 5, &AUDIO[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 3, &MAIN[0x00000], 0x4000); + state->subbank("bank1")->configure_entries(3, 5, &MAIN[0x10000], 0x4000); + state->subbank("bank2")->configure_entries(0, 3, &AUDIO[0x00000], 0x4000); + machine.root_device().subbank("bank2")->configure_entries(3, 5, &AUDIO[0x10000], 0x4000); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index c8dace0e687..39c26dbf9e8 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -684,12 +684,12 @@ READ32_MEMBER(zn_state::capcom_kickharness_r) WRITE32_MEMBER(zn_state::bank_coh1000c_w) { - memory_set_bankptr( machine(), "bank2", machine().region( "user2" )->base() + 0x400000 + ( data * 0x400000 ) ); + subbank( "bank2" )->set_base( machine().region( "user2" )->base() + 0x400000 + ( data * 0x400000 ) ); } WRITE8_MEMBER(zn_state::qsound_bankswitch_w) { - memory_set_bankptr( machine(), "bank10", machine().region( "audiocpu" )->base() + 0x10000 + ( ( data & 0x0f ) * 0x4000 ) ); + subbank( "bank10" )->set_base( machine().region( "audiocpu" )->base() + 0x10000 + ( ( data & 0x0f ) * 0x4000 ) ); } static INTERRUPT_GEN( qsound_interrupt ) @@ -728,9 +728,9 @@ static DRIVER_INIT( coh1000c ) static MACHINE_RESET( coh1000c ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* fixed game rom */ - memory_set_bankptr( machine, "bank2", machine.region( "user2" )->base() + 0x400000 ); /* banked game rom */ - memory_set_bankptr( machine, "bank3", machine.region( "user3" )->base() ); /* country rom */ + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* fixed game rom */ + machine.root_device().subbank( "bank2" )->set_base( machine.region( "user2" )->base() + 0x400000 ); /* banked game rom */ + machine.root_device().subbank( "bank3" )->set_base( machine.region( "user3" )->base() ); /* country rom */ zn_machine_init(machine); } @@ -918,7 +918,7 @@ Notes: WRITE32_MEMBER(zn_state::bank_coh3002c_w) { - memory_set_bankptr( machine(), "bank2", machine().region( "user2" )->base() + 0x400000 + ( data * 0x400000 ) ); + subbank( "bank2" )->set_base( machine().region( "user2" )->base() + 0x400000 + ( data * 0x400000 ) ); } static DRIVER_INIT( coh3002c ) @@ -937,9 +937,9 @@ static DRIVER_INIT( coh3002c ) static MACHINE_RESET( coh3002c ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* fixed game rom */ - memory_set_bankptr( machine, "bank2", machine.region( "user2" )->base() + 0x400000 ); /* banked game rom */ - memory_set_bankptr( machine, "bank3", machine.region( "user3" )->base() ); /* country rom */ + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* fixed game rom */ + machine.root_device().subbank( "bank2" )->set_base( machine.region( "user2" )->base() + 0x400000 ); /* banked game rom */ + machine.root_device().subbank( "bank3" )->set_base( machine.region( "user3" )->base() ); /* country rom */ zn_machine_init(machine); } @@ -1180,12 +1180,12 @@ WRITE32_MEMBER(zn_state::bank_coh1000t_w) device_t *mb3773 = machine().device("mb3773"); mb3773_set_ck(mb3773, (data & 0x20) >> 5); verboselog( machine(), 1, "bank_coh1000t_w( %08x, %08x, %08x )\n", offset, data, mem_mask ); - memory_set_bankptr( machine(), "bank1", machine().region( "user2" )->base() + ( ( data & 3 ) * 0x800000 ) ); + subbank( "bank1" )->set_base( machine().region( "user2" )->base() + ( ( data & 3 ) * 0x800000 ) ); } WRITE8_MEMBER(zn_state::fx1a_sound_bankswitch_w) { - memory_set_bankptr( machine(), "bank10", machine().region( "audiocpu" )->base() + 0x10000 + ( ( ( data - 1 ) & 0x07 ) * 0x4000 ) ); + subbank( "bank10" )->set_base( machine().region( "audiocpu" )->base() + 0x10000 + ( ( ( data - 1 ) & 0x07 ) * 0x4000 ) ); } READ32_MEMBER(zn_state::taitofx1a_ymsound_r) @@ -1225,8 +1225,8 @@ static DRIVER_INIT( coh1000ta ) static MACHINE_RESET( coh1000ta ) { zn_state *state = machine.driver_data<zn_state>(); - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* banked game rom */ - memory_set_bankptr( machine, "bank2", state->m_taitofx1_eeprom1 ); + state->subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* banked game rom */ + state->subbank( "bank2" )->set_base( state->m_taitofx1_eeprom1 ); zn_machine_init(machine); } @@ -1320,9 +1320,9 @@ static MACHINE_RESET( coh1000tb ) { zn_state *state = machine.driver_data<zn_state>(); - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* banked game rom */ - memory_set_bankptr( machine, "bank2", state->m_taitofx1_eeprom1 ); - memory_set_bankptr( machine, "bank3", state->m_taitofx1_eeprom2 ); + state->subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* banked game rom */ + state->subbank( "bank2" )->set_base( state->m_taitofx1_eeprom1 ); + state->subbank( "bank3" )->set_base( state->m_taitofx1_eeprom2 ); zn_machine_init(machine); } @@ -1505,7 +1505,7 @@ static DRIVER_INIT( coh1000w ) static MACHINE_RESET( coh1000w ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* fixed game rom */ + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* fixed game rom */ zn_machine_init(machine); devtag_reset(machine, "ide"); @@ -1670,7 +1670,7 @@ WRITE32_MEMBER(zn_state::coh1002e_bank_w) { znsecsel_w( space, offset, data, mem_mask ); - memory_set_bankptr( machine(), "bank1", machine().region( "user2" )->base() + ( ( data & 3 ) * 0x800000 ) ); + subbank( "bank1" )->set_base( machine().region( "user2" )->base() + ( ( data & 3 ) * 0x800000 ) ); } WRITE32_MEMBER(zn_state::coh1002e_latch_w) @@ -1693,7 +1693,7 @@ static DRIVER_INIT( coh1002e ) static MACHINE_RESET( coh1002e ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* banked game rom */ + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* banked game rom */ zn_machine_init(machine); } @@ -1784,7 +1784,7 @@ WRITE32_MEMBER(zn_state::bam2_mcu_w) { if (ACCESSING_BITS_0_15) { - memory_set_bankptr( machine(), "bank2", machine().region( "user2" )->base() + ( ( data & 0xf ) * 0x400000 ) ); + subbank( "bank2" )->set_base( machine().region( "user2" )->base() + ( ( data & 0xf ) * 0x400000 ) ); } else if (ACCESSING_BITS_16_31) { @@ -1839,8 +1839,8 @@ static DRIVER_INIT( bam2 ) static MACHINE_RESET( bam2 ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* fixed game rom */ - memory_set_bankptr( machine, "bank2", machine.region( "user2" )->base() + 0x400000 ); /* banked game rom */ + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* fixed game rom */ + machine.root_device().subbank( "bank2" )->set_base( machine.region( "user2" )->base() + 0x400000 ); /* banked game rom */ zn_machine_init(machine); } @@ -2158,7 +2158,7 @@ static DRIVER_INIT( coh1000a ) machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler ( 0x1fbfff08, 0x1fbfff0b, read32_delegate(FUNC(zn_state::nbajamex_08_r),state)); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler( 0x1fbfff80, 0x1fbfff83, read32_delegate(FUNC(zn_state::nbajamex_80_r),state), write32_delegate(FUNC(zn_state::nbajamex_80_w),state)); - memory_set_bankptr( machine, "bank2", state->m_nbajamex_eeprom ); /* ram/eeprom/?? */ + state->subbank( "bank2" )->set_base( state->m_nbajamex_eeprom ); /* ram/eeprom/?? */ } if( ( !strcmp( machine.system().name, "jdredd" ) ) || @@ -2176,7 +2176,7 @@ static DRIVER_INIT( coh1000a ) static MACHINE_RESET( coh1000a ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* fixed game rom */ + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* fixed game rom */ zn_machine_init(machine); if( ( !strcmp( machine.system().name, "jdredd" ) ) || ( !strcmp( machine.system().name, "jdreddb" ) ) ) @@ -2318,7 +2318,7 @@ Notes: WRITE32_MEMBER(zn_state::coh1001l_bnk_w) { - memory_set_bankptr( machine(), "bank1", machine().region( "user2" )->base() + ( ( ( data >> 16 ) & 3 ) * 0x800000 ) ); + subbank( "bank1" )->set_base( machine().region( "user2" )->base() + ( ( ( data >> 16 ) & 3 ) * 0x800000 ) ); } static DRIVER_INIT( coh1001l ) @@ -2332,7 +2332,7 @@ static DRIVER_INIT( coh1001l ) static MACHINE_RESET( coh1001l ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* banked rom */ + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* banked rom */ zn_machine_init(machine); } @@ -2361,7 +2361,7 @@ Key: Mother KN01 WRITE32_MEMBER(zn_state::coh1002v_bnk_w) { - memory_set_bankptr( machine(), "bank2", machine().region( "user3" )->base() + ( data * 0x100000 ) ); + subbank( "bank2" )->set_base( machine().region( "user3" )->base() + ( data * 0x100000 ) ); } static DRIVER_INIT( coh1002v ) @@ -2376,8 +2376,8 @@ static DRIVER_INIT( coh1002v ) static MACHINE_RESET( coh1002v ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); /* fixed game rom */ - memory_set_bankptr( machine, "bank2", machine.region( "user3" )->base() ); /* banked rom */ + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); /* fixed game rom */ + machine.root_device().subbank( "bank2" )->set_base( machine.region( "user3" )->base() ); /* banked rom */ zn_machine_init(machine); } @@ -2546,7 +2546,7 @@ Notes: WRITE32_MEMBER(zn_state::coh1002m_bank_w) { verboselog( machine(), 1, "coh1002m_bank_w( %08x, %08x, %08x )\n", offset, data, mem_mask ); - memory_set_bankptr( machine(), "bank1", machine().region( "user2" )->base() + ((data>>16) * 0x800000) ); + subbank( "bank1" )->set_base( machine().region( "user2" )->base() + ((data>>16) * 0x800000) ); } READ32_MEMBER(zn_state::cbaj_z80_r) @@ -2580,7 +2580,7 @@ static DRIVER_INIT( coh1002m ) static MACHINE_RESET( coh1002m ) { - memory_set_bankptr( machine, "bank1", machine.region( "user2" )->base() ); + machine.root_device().subbank( "bank1" )->set_base( machine.region( "user2" )->base() ); zn_machine_init(machine); } diff --git a/src/mame/machine/3do.c b/src/mame/machine/3do.c index 188fec67ecf..11f951e2507 100644 --- a/src/mame/machine/3do.c +++ b/src/mame/machine/3do.c @@ -121,7 +121,7 @@ WRITE32_MEMBER(_3do_state::_3do_slow2_w) case 0: /* Boot ROM writes 03180000 here and then starts reading some things */ { /* disable ROM overlay */ - memory_set_bank(machine(), "bank1", 0); + subbank("bank1")->set_entry(0); } m_slow2.cg_input = m_slow2.cg_input << 1 | ( data & 0x00000001 ); m_slow2.cg_w_count ++; diff --git a/src/mame/machine/acitya.c b/src/mame/machine/acitya.c index a310ad1562f..7d22fa8a309 100644 --- a/src/mame/machine/acitya.c +++ b/src/mame/machine/acitya.c @@ -168,10 +168,10 @@ READ8_HANDLER( acitya_decrypt_rom ) switch(state->m_counter) { - case 0x08: memory_set_bank (space->machine(), "bank1", 0); break; - case 0x09: memory_set_bank (space->machine(), "bank1", 1); break; - case 0x0A: memory_set_bank (space->machine(), "bank1", 2); break; - case 0x0B: memory_set_bank (space->machine(), "bank1", 3); break; + case 0x08: state->subbank ("bank1")->set_entry (0); break; + case 0x09: state->subbank ("bank1")->set_entry (1); break; + case 0x0A: state->subbank ("bank1")->set_entry (2); break; + case 0x0B: state->subbank ("bank1")->set_entry (3); break; default: logerror("Invalid counter = %02X\n",state->m_counter); break; @@ -194,7 +194,7 @@ MACHINE_START( acitya ) acitya_decrypt_rom_A(machine); acitya_decrypt_rom_B(machine); - memory_configure_bank(machine, "bank1", 0, 4, &RAM[0x10000], 0x4000); + machine.root_device().subbank("bank1")->configure_entries(0, 4, &RAM[0x10000], 0x4000); state_save_register_global(machine, state->m_counter); } @@ -205,5 +205,5 @@ MACHINE_RESET( acitya ) pacman_state *state = machine.driver_data<pacman_state>(); /* The initial state of the counter is 0x0B */ state->m_counter = 0x0B; - memory_set_bank(machine, "bank1", 3); + state->subbank("bank1")->set_entry(3); } diff --git a/src/mame/machine/ajax.c b/src/mame/machine/ajax.c index 2702b480a41..182fc7ad6e7 100644 --- a/src/mame/machine/ajax.c +++ b/src/mame/machine/ajax.c @@ -48,7 +48,7 @@ WRITE8_MEMBER(ajax_state::ajax_bankswitch_w) /* bank # (ROMS N11 and N12) */ bank += (data & 0x07); - memory_set_bank(machine(), "bank2", bank); + subbank("bank2")->set_entry(bank); } /* ajax_lamps_w: @@ -191,7 +191,7 @@ WRITE8_MEMBER(ajax_state::ajax_bankswitch_2_w) m_firq_enable = data & 0x10; /* bank # (ROMS G16 and I16) */ - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); } MACHINE_START( ajax ) @@ -200,11 +200,11 @@ MACHINE_START( ajax ) UINT8 *MAIN = machine.region("maincpu")->base(); UINT8 *SUB = machine.region("sub")->base(); - memory_configure_bank(machine, "bank1", 0, 9, &SUB[0x10000], 0x2000); - memory_configure_bank(machine, "bank2", 0, 12, &MAIN[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 9, &SUB[0x10000], 0x2000); + state->subbank("bank2")->configure_entries(0, 12, &MAIN[0x10000], 0x2000); - memory_set_bank(machine, "bank1", 0); - memory_set_bank(machine, "bank2", 0); + state->subbank("bank1")->set_entry(0); + state->subbank("bank2")->set_entry(0); state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); diff --git a/src/mame/machine/asteroid.c b/src/mame/machine/asteroid.c index aa6b46ff66d..ec8d19ea251 100644 --- a/src/mame/machine/asteroid.c +++ b/src/mame/machine/asteroid.c @@ -96,13 +96,13 @@ WRITE8_MEMBER(asteroid_state::asteroid_bank_switch_w) { if (data & 4) { - memory_set_bankptr(machine(), "bank1", m_ram2); - memory_set_bankptr(machine(), "bank2", m_ram1); + subbank("bank1")->set_base(m_ram2); + subbank("bank2")->set_base(m_ram1); } else { - memory_set_bankptr(machine(), "bank1", m_ram1); - memory_set_bankptr(machine(), "bank2", m_ram2); + subbank("bank1")->set_base(m_ram1); + subbank("bank2")->set_base(m_ram2); } set_led_status (machine(), 0, ~data & 0x02); @@ -114,13 +114,13 @@ WRITE8_MEMBER(asteroid_state::astdelux_bank_switch_w) { if (data & 0x80) { - memory_set_bankptr(machine(), "bank1", m_ram2); - memory_set_bankptr(machine(), "bank2", m_ram1); + subbank("bank1")->set_base(m_ram2); + subbank("bank2")->set_base(m_ram1); } else { - memory_set_bankptr(machine(), "bank1", m_ram1); - memory_set_bankptr(machine(), "bank2", m_ram2); + subbank("bank1")->set_base(m_ram1); + subbank("bank2")->set_base(m_ram2); } } diff --git a/src/mame/machine/atari.c b/src/mame/machine/atari.c index 7e02c0011c3..f913d3412a3 100644 --- a/src/mame/machine/atari.c +++ b/src/mame/machine/atari.c @@ -112,7 +112,7 @@ void a600xl_mmu(running_machine &machine, UINT8 new_mmu) logerror("%s MMU SELFTEST ROM\n", machine.system().name); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x5000, 0x57ff, "bank2"); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x5000, 0x57ff); - memory_set_bankptr(machine, "bank2", machine.region("maincpu")->base() + 0x5000); + machine.root_device().subbank("bank2")->set_base(machine.region("maincpu")->base() + 0x5000); } } diff --git a/src/mame/machine/balsente.c b/src/mame/machine/balsente.c index 186f2ceae41..f69d3e8c44f 100644 --- a/src/mame/machine/balsente.c +++ b/src/mame/machine/balsente.c @@ -173,10 +173,10 @@ MACHINE_RESET( balsente ) /* point the banks to bank 0 */ numbanks = (machine.region("maincpu")->bytes() > 0x40000) ? 16 : 8; - memory_configure_bank(machine, "bank1", 0, numbanks, &machine.region("maincpu")->base()[0x10000], 0x6000); - memory_configure_bank(machine, "bank2", 0, numbanks, &machine.region("maincpu")->base()[0x12000], 0x6000); - memory_set_bank(space->machine(), "bank1", 0); - memory_set_bank(space->machine(), "bank2", 0); + state->subbank("bank1")->configure_entries(0, numbanks, &machine.region("maincpu")->base()[0x10000], 0x6000); + state->subbank("bank2")->configure_entries(0, numbanks, &machine.region("maincpu")->base()[0x12000], 0x6000); + state->subbank("bank1")->set_entry(0); + state->subbank("bank2")->set_entry(0); machine.device("maincpu")->reset(); /* start a timer to generate interrupts */ @@ -280,8 +280,8 @@ READ8_MEMBER(balsente_state::balsente_random_num_r) WRITE8_MEMBER(balsente_state::balsente_rombank_select_w) { /* the bank number comes from bits 4-6 */ - memory_set_bank(machine(), "bank1", (data >> 4) & 7); - memory_set_bank(machine(), "bank2", (data >> 4) & 7); + subbank("bank1")->set_entry((data >> 4) & 7); + subbank("bank2")->set_entry((data >> 4) & 7); } @@ -296,15 +296,15 @@ WRITE8_MEMBER(balsente_state::balsente_rombank2_select_w) /* when they set the AB bank, it appears as though the CD bank is reset */ if (data & 0x20) { - memory_set_bank(machine(), "bank1", bank); - memory_set_bank(machine(), "bank2", 6); + subbank("bank1")->set_entry(bank); + subbank("bank2")->set_entry(6); } /* set both banks */ else { - memory_set_bank(machine(), "bank1", bank); - memory_set_bank(machine(), "bank2", bank); + subbank("bank1")->set_entry(bank); + subbank("bank2")->set_entry(bank); } } diff --git a/src/mame/machine/bublbobl.c b/src/mame/machine/bublbobl.c index 9c7df8e198c..040e7e538cf 100644 --- a/src/mame/machine/bublbobl.c +++ b/src/mame/machine/bublbobl.c @@ -16,7 +16,7 @@ WRITE8_MEMBER(bublbobl_state::bublbobl_bankswitch_w) { /* bits 0-2 select ROM bank */ - memory_set_bank(machine(), "bank1", (data ^ 4) & 7); + subbank("bank1")->set_entry((data ^ 4) & 7); /* bit 3 n.c. */ @@ -37,7 +37,7 @@ WRITE8_MEMBER(bublbobl_state::bublbobl_bankswitch_w) WRITE8_MEMBER(bublbobl_state::tokio_bankswitch_w) { /* bits 0-2 select ROM bank */ - memory_set_bank(machine(), "bank1", data & 7); + subbank("bank1")->set_entry(data & 7); /* bits 3-7 unknown */ } diff --git a/src/mame/machine/decocass.c b/src/mame/machine/decocass.c index 10899baebed..70f6c224014 100644 --- a/src/mame/machine/decocass.c +++ b/src/mame/machine/decocass.c @@ -1288,7 +1288,7 @@ WRITE8_HANDLER( decocass_e900_w ) { decocass_state *state = space->machine().driver_data<decocass_state>(); state->m_de0091_enable = data & 1; - memory_set_bank(space->machine(), "bank1", data & 1); + state->subbank("bank1")->set_entry(data & 1); /* Perhaps the second row of ROMs is enabled by another bit. * There is no way to verify this yet, so for now just look * at bit 0 to enable the daughter board at reads between diff --git a/src/mame/machine/galaxold.c b/src/mame/machine/galaxold.c index b579ed2ef31..2017755121e 100644 --- a/src/mame/machine/galaxold.c +++ b/src/mame/machine/galaxold.c @@ -154,23 +154,23 @@ WRITE8_MEMBER(galaxold_state::zigzag_sillyprotection_w) if (data) { /* swap ROM 2 and 3! */ - memory_set_bank(machine(), "bank1", 1); - memory_set_bank(machine(), "bank2", 0); + subbank("bank1")->set_entry(1); + subbank("bank2")->set_entry(0); } else { - memory_set_bank(machine(), "bank1", 0); - memory_set_bank(machine(), "bank2", 1); + subbank("bank1")->set_entry(0); + subbank("bank2")->set_entry(1); } } DRIVER_INIT( zigzag ) { UINT8 *RAM = machine.region("maincpu")->base(); - memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x2000], 0x1000); - memory_configure_bank(machine, "bank2", 0, 2, &RAM[0x2000], 0x1000); - memory_set_bank(machine, "bank1", 0); - memory_set_bank(machine, "bank2", 1); + machine.root_device().subbank("bank1")->configure_entries(0, 2, &RAM[0x2000], 0x1000); + machine.root_device().subbank("bank2")->configure_entries(0, 2, &RAM[0x2000], 0x1000); + machine.root_device().subbank("bank1")->set_entry(0); + machine.root_device().subbank("bank2")->set_entry(1); } @@ -251,7 +251,7 @@ WRITE8_MEMBER(galaxold_state::_4in1_bank_w) { m__4in1_bank = data & 0x03; galaxold_gfxbank_w(space, 0, m__4in1_bank); - memory_set_bank(machine(), "bank1", m__4in1_bank); + subbank("bank1")->set_entry(m__4in1_bank); } CUSTOM_INPUT_MEMBER(galaxold_state::_4in1_fake_port_r) @@ -407,7 +407,7 @@ DRIVER_INIT( 4in1 ) RAM[i] = RAM[i] ^ (i & 0xff); /* games are banked at 0x0000 - 0x3fff */ - memory_configure_bank(machine, "bank1", 0, 4, &RAM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &RAM[0x10000], 0x4000); state->_4in1_bank_w(*space, 0, 0); /* set the initial CPU bank */ diff --git a/src/mame/machine/irobot.c b/src/mame/machine/irobot.c index eeb26770e26..b4b1b51a9a1 100644 --- a/src/mame/machine/irobot.c +++ b/src/mame/machine/irobot.c @@ -107,13 +107,13 @@ WRITE8_MEMBER(irobot_state::irobot_out0_w) switch (data & 0x60) { case 0: - memory_set_bankptr(machine(), "bank2", &RAM[0x1C000]); + subbank("bank2")->set_base(&RAM[0x1C000]); break; case 0x20: - memory_set_bankptr(machine(), "bank2", &RAM[0x1C800]); + subbank("bank2")->set_base(&RAM[0x1C800]); break; case 0x40: - memory_set_bankptr(machine(), "bank2", &RAM[0x1D000]); + subbank("bank2")->set_base(&RAM[0x1D000]); break; } m_outx = (data & 0x18) >> 3; @@ -128,22 +128,22 @@ WRITE8_MEMBER(irobot_state::irobot_rom_banksel_w) switch ((data & 0x0E) >> 1) { case 0: - memory_set_bankptr(machine(), "bank1", &RAM[0x10000]); + subbank("bank1")->set_base(&RAM[0x10000]); break; case 1: - memory_set_bankptr(machine(), "bank1", &RAM[0x12000]); + subbank("bank1")->set_base(&RAM[0x12000]); break; case 2: - memory_set_bankptr(machine(), "bank1", &RAM[0x14000]); + subbank("bank1")->set_base(&RAM[0x14000]); break; case 3: - memory_set_bankptr(machine(), "bank1", &RAM[0x16000]); + subbank("bank1")->set_base(&RAM[0x16000]); break; case 4: - memory_set_bankptr(machine(), "bank1", &RAM[0x18000]); + subbank("bank1")->set_base(&RAM[0x18000]); break; case 5: - memory_set_bankptr(machine(), "bank1", &RAM[0x1A000]); + subbank("bank1")->set_base(&RAM[0x1A000]); break; } set_led_status(machine(), 0,data & 0x10); diff --git a/src/mame/machine/kabuki.c b/src/mame/machine/kabuki.c index 1f54be88f95..8f3ab8183cd 100644 --- a/src/mame/machine/kabuki.c +++ b/src/mame/machine/kabuki.c @@ -175,7 +175,7 @@ static void mitchell_decode(running_machine &machine, int swap_key1,int swap_key for (i = 0; i < numbanks; i++) kabuki_decode(rom+i*0x4000,decrypt+i*0x4000,rom+i*0x4000,0x8000,0x4000, swap_key1,swap_key2,addr_key,xor_key); - memory_configure_bank_decrypted(machine, "bank1", 0, numbanks, decrypt, 0x4000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0, numbanks, decrypt, 0x4000); /* { FILE *f; diff --git a/src/mame/machine/konppc.c b/src/mame/machine/konppc.c index 19b1a1b0c70..6e8d0e18272 100644 --- a/src/mame/machine/konppc.c +++ b/src/mame/machine/konppc.c @@ -118,7 +118,7 @@ void set_cgboard_texture_bank(running_machine &machine, int board, const char *b { texture_bank[board] = bank; - memory_configure_bank(machine, bank, 0, 2, rom, 0x800000); + machine.root_device().subbank(bank)->configure_entries(0, 2, rom, 0x800000); } /*****************************************************************************/ @@ -254,7 +254,7 @@ static void dsp_comm_sharc_w(address_space *space, int board, int offset, UINT32 { int offset = (data & 0x08) ? 1 : 0; - memory_set_bank(space->machine(), texture_bank[board], offset); + space->machine().root_device().subbank(texture_bank[board])->set_entry(offset); } } break; @@ -268,7 +268,7 @@ static void dsp_comm_sharc_w(address_space *space, int board, int offset, UINT32 { int offset = (data & 0x08) ? 1 : 0; - memory_set_bank(space->machine(), texture_bank[board], offset); + space->machine().root_device().subbank(texture_bank[board])->set_entry(offset); } } break; diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c index 21fe4a71afe..1ea6c94ae38 100644 --- a/src/mame/machine/leland.c +++ b/src/mame/machine/leland.c @@ -362,7 +362,7 @@ MACHINE_RESET( leland ) state->m_slave_length = machine.region("slave")->bytes(); state->m_slave_base = machine.region("slave")->base(); if (state->m_slave_length > 0x10000) - memory_set_bankptr(machine, "bank3", &state->m_slave_base[0x10000]); + state->subbank("bank3")->set_base(&state->m_slave_base[0x10000]); } @@ -408,7 +408,7 @@ MACHINE_RESET( ataxx ) state->m_slave_length = machine.region("slave")->bytes(); state->m_slave_base = machine.region("slave")->base(); if (state->m_slave_length > 0x10000) - memory_set_bankptr(machine, "bank3", &state->m_slave_base[0x10000]); + state->subbank("bank3")->set_base(&state->m_slave_base[0x10000]); } @@ -494,10 +494,10 @@ void mayhem_bankswitch(running_machine &machine) state->m_battery_ram_enable = ((state->m_sound_port_bank & 0x24) == 0); address = (!(state->m_sound_port_bank & 0x04)) ? &state->m_master_base[0x10000] : &state->m_master_base[0x1c000]; - memory_set_bankptr(machine, "bank1", address); + state->subbank("bank1")->set_base(address); address = state->m_battery_ram_enable ? state->m_battery_ram : &address[0x8000]; - memory_set_bankptr(machine, "bank2", address); + state->subbank("bank2")->set_base(address); } @@ -510,10 +510,10 @@ void dangerz_bankswitch(running_machine &machine) state->m_battery_ram_enable = ((state->m_top_board_bank & 0x80) != 0); address = (!(state->m_alternate_bank & 1)) ? &state->m_master_base[0x02000] : &state->m_master_base[0x12000]; - memory_set_bankptr(machine, "bank1", address); + state->subbank("bank1")->set_base(address); address = state->m_battery_ram_enable ? state->m_battery_ram : &address[0x8000]; - memory_set_bankptr(machine, "bank2", address); + state->subbank("bank2")->set_base(address); } @@ -529,10 +529,10 @@ void basebal2_bankswitch(running_machine &machine) address = (!(state->m_sound_port_bank & 0x04)) ? &state->m_master_base[0x10000] : &state->m_master_base[0x1c000]; else address = (!(state->m_top_board_bank & 0x40)) ? &state->m_master_base[0x28000] : &state->m_master_base[0x30000]; - memory_set_bankptr(machine, "bank1", address); + state->subbank("bank1")->set_base(address); address = state->m_battery_ram_enable ? state->m_battery_ram : &address[0x8000]; - memory_set_bankptr(machine, "bank2", address); + state->subbank("bank2")->set_base(address); } @@ -546,10 +546,10 @@ void redline_bankswitch(running_machine &machine) state->m_battery_ram_enable = ((state->m_alternate_bank & 3) == 1); address = &state->m_master_base[bank_list[state->m_alternate_bank & 3]]; - memory_set_bankptr(machine, "bank1", address); + state->subbank("bank1")->set_base(address); address = state->m_battery_ram_enable ? state->m_battery_ram : &state->m_master_base[0xa000]; - memory_set_bankptr(machine, "bank2", address); + state->subbank("bank2")->set_base(address); } @@ -568,10 +568,10 @@ void viper_bankswitch(running_machine &machine) logerror("%s:Master bank %02X out of range!\n", machine.describe_context(), state->m_alternate_bank & 3); address = &state->m_master_base[bank_list[0]]; } - memory_set_bankptr(machine, "bank1", address); + state->subbank("bank1")->set_base(address); address = state->m_battery_ram_enable ? state->m_battery_ram : &state->m_master_base[0xa000]; - memory_set_bankptr(machine, "bank2", address); + state->subbank("bank2")->set_base(address); } @@ -590,10 +590,10 @@ void offroad_bankswitch(running_machine &machine) logerror("%s:Master bank %02X out of range!\n", machine.describe_context(), state->m_alternate_bank & 7); address = &state->m_master_base[bank_list[0]]; } - memory_set_bankptr(machine, "bank1", address); + state->subbank("bank1")->set_base(address); address = state->m_battery_ram_enable ? state->m_battery_ram : &state->m_master_base[0xa000]; - memory_set_bankptr(machine, "bank2", address); + state->subbank("bank2")->set_base(address); } @@ -616,7 +616,7 @@ void ataxx_bankswitch(running_machine &machine) logerror("%s:Master bank %02X out of range!\n", machine.describe_context(), state->m_master_bank & 15); address = &state->m_master_base[bank_list[0]]; } - memory_set_bankptr(machine, "bank1", address); + state->subbank("bank1")->set_base(address); if (state->m_battery_ram_enable) address = state->m_battery_ram; @@ -624,7 +624,7 @@ void ataxx_bankswitch(running_machine &machine) address = &state->m_ataxx_qram[(state->m_master_bank & 0xc0) << 8]; else address = &state->m_master_base[0xa000]; - memory_set_bankptr(machine, "bank2", address); + state->subbank("bank2")->set_base(address); state->m_wcol_enable = ((state->m_master_bank & 0x30) == 0x30); } @@ -1349,7 +1349,7 @@ WRITE8_MEMBER(leland_state::leland_slave_small_banksw_w) logerror("%04X:Slave bank %02X out of range!", cpu_get_pc(&space.device()), data & 1); bankaddress = 0x10000; } - memory_set_bankptr(machine(), "bank3", &m_slave_base[bankaddress]); + subbank("bank3")->set_base(&m_slave_base[bankaddress]); if (LOG_BANKSWITCHING_S) logerror("%04X:Slave bank = %02X (%05X)\n", cpu_get_pc(&space.device()), data & 1, bankaddress); } @@ -1364,7 +1364,7 @@ WRITE8_MEMBER(leland_state::leland_slave_large_banksw_w) logerror("%04X:Slave bank %02X out of range!", cpu_get_pc(&space.device()), data & 15); bankaddress = 0x10000; } - memory_set_bankptr(machine(), "bank3", &m_slave_base[bankaddress]); + subbank("bank3")->set_base(&m_slave_base[bankaddress]); if (LOG_BANKSWITCHING_S) logerror("%04X:Slave bank = %02X (%05X)\n", cpu_get_pc(&space.device()), data & 15, bankaddress); } @@ -1388,7 +1388,7 @@ WRITE8_MEMBER(leland_state::ataxx_slave_banksw_w) logerror("%04X:Slave bank %02X out of range!", cpu_get_pc(&space.device()), data & 0x3f); bankaddress = 0x2000; } - memory_set_bankptr(machine(), "bank3", &m_slave_base[bankaddress]); + subbank("bank3")->set_base(&m_slave_base[bankaddress]); if (LOG_BANKSWITCHING_S) logerror("%04X:Slave bank = %02X (%05X)\n", cpu_get_pc(&space.device()), data, bankaddress); } diff --git a/src/mame/machine/mc8123.c b/src/mame/machine/mc8123.c index 7628c2cb8be..9de03b952d8 100644 --- a/src/mame/machine/mc8123.c +++ b/src/mame/machine/mc8123.c @@ -400,7 +400,7 @@ void mc8123_decrypt_rom(running_machine &machine, const char *cpu, const char *k if (bankname != NULL) { - memory_configure_bank_decrypted(machine, bankname, 0, numbanks, decrypted2, 0x4000); + machine.root_device().subbank(bankname)->configure_decrypted_entries(0, numbanks, decrypted2, 0x4000); for (bank = 0; bank < numbanks; ++bank) { diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c index 5df5da388e0..faaed4823f7 100644 --- a/src/mame/machine/megadriv.c +++ b/src/mame/machine/megadriv.c @@ -2863,7 +2863,7 @@ static WRITE16_HANDLER( _32x_68k_a15100_w ) space->install_rom(0x0880000, 0x08fffff, space->machine().region("gamecart")->base()); // 'fixed' 512kb rom bank space->install_read_bank(0x0900000, 0x09fffff, "bank12"); // 'bankable' 1024kb rom bank - memory_set_bankptr(space->machine(), "bank12", space->machine().region("gamecart")->base()+((_32x_68k_a15104_reg&0x3)*0x100000) ); + space->machine().root_device().subbank("bank12")->set_base(space->machine().region("gamecart")->base()+((_32x_68k_a15104_reg&0x3)*0x100000) ); space->install_rom(0x0000000, 0x03fffff, space->machine().region("32x_68k_bios")->base()); @@ -2949,7 +2949,7 @@ static WRITE16_HANDLER( _32x_68k_a15104_w ) _32x_68k_a15104_reg = (_32x_68k_a15104_reg & 0x00ff) | (data & 0xff00); } - memory_set_bankptr(space->machine(), "bank12", space->machine().region("gamecart")->base()+((_32x_68k_a15104_reg&0x3)*0x100000) ); + space->machine().root_device().subbank("bank12")->set_base(space->machine().region("gamecart")->base()+((_32x_68k_a15104_reg&0x3)*0x100000) ); } /**********************************************************************************************/ @@ -6005,7 +6005,7 @@ void segacd_init_main_cpu( running_machine& machine ) space->unmap_readwrite (0x020000,0x3fffff); // space->install_read_bank(0x0020000, 0x003ffff, "scd_4m_prgbank"); -// memory_set_bankptr(space->machine(), "scd_4m_prgbank", segacd_4meg_prgram + segacd_4meg_prgbank * 0x20000 ); +// space->machine().root_device().subbank("scd_4m_prgbank")->set_base(segacd_4meg_prgram + segacd_4meg_prgbank * 0x20000 ); space->install_legacy_read_handler (0x0020000, 0x003ffff, FUNC(scd_4m_prgbank_ram_r) ); space->install_legacy_write_handler (0x0020000, 0x003ffff, FUNC(scd_4m_prgbank_ram_w) ); segacd_wordram_mapped = 1; @@ -7173,10 +7173,10 @@ static void svp_init(running_machine &machine) machine.device("svp")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x438, 0x438, FUNC(svp_speedup_r)); state->m_iram = auto_alloc_array(machine, UINT8, 0x800); - memory_set_bankptr(machine, "bank3", state->m_iram); + state->subbank("bank3")->set_base(state->m_iram); /* SVP ROM just shares m68k region.. */ ROM = machine.region("maincpu")->base(); - memory_set_bankptr(machine, "bank4", ROM + 0x800); + state->subbank("bank4")->set_base(ROM + 0x800); megadrive_io_read_data_port_ptr = megadrive_io_read_data_port_svp; } @@ -9856,7 +9856,7 @@ static void megadriv_init_common(running_machine &machine) //printf("GENESIS Sound Z80 cpu found '%s'\n", _genesis_snd_z80_cpu->tag() ); genz80.z80_prgram = auto_alloc_array(machine, UINT8, 0x2000); - memory_set_bankptr(machine, "bank1", genz80.z80_prgram ); + machine.root_device().subbank("bank1")->set_base(genz80.z80_prgram ); } /* Look to see if this system has the 32x Master SH2 */ @@ -10050,7 +10050,7 @@ void megatech_set_megadrive_z80_as_megadrive_z80(running_machine &machine, const machine.device(tag)->memory().space(AS_PROGRAM)->install_readwrite_bank(0x0000, 0x1fff, "bank1"); - memory_set_bankptr(machine, "bank1", genz80.z80_prgram ); + machine.root_device().subbank("bank1")->set_base(genz80.z80_prgram ); machine.device(tag)->memory().space(AS_PROGRAM)->install_ram(0x0000, 0x1fff, genz80.z80_prgram); diff --git a/src/mame/machine/mhavoc.c b/src/mame/machine/mhavoc.c index 1552077607f..a9141521b62 100644 --- a/src/mame/machine/mhavoc.c +++ b/src/mame/machine/mhavoc.c @@ -87,9 +87,9 @@ MACHINE_RESET( mhavoc ) address_space *space = machine.device("alpha")->memory().space(AS_PROGRAM); state->m_has_gamma_cpu = (machine.device("gamma") != NULL); - memory_configure_bank(machine, "bank1", 0, 1, state->m_zram0, 0); - memory_configure_bank(machine, "bank1", 1, 1, state->m_zram1, 0); - memory_configure_bank(machine, "bank2", 0, 4, machine.region("alpha")->base() + 0x10000, 0x2000); + state->subbank("bank1")->configure_entry(0, state->m_zram0); + state->subbank("bank1")->configure_entry(1, state->m_zram1); + state->subbank("bank2")->configure_entries(0, 4, machine.region("alpha")->base() + 0x10000, 0x2000); /* reset RAM/ROM banks to 0 */ state->mhavoc_ram_banksel_w(*space, 0, 0); @@ -188,13 +188,13 @@ READ8_MEMBER(mhavoc_state::mhavoc_gamma_r) WRITE8_MEMBER(mhavoc_state::mhavoc_ram_banksel_w) { - memory_set_bank(machine(), "bank1", data & 1); + subbank("bank1")->set_entry(data & 1); } WRITE8_MEMBER(mhavoc_state::mhavoc_rom_banksel_w) { - memory_set_bank(machine(), "bank2", data & 3); + subbank("bank2")->set_entry(data & 3); } diff --git a/src/mame/machine/midtunit.c b/src/mame/machine/midtunit.c index 78e4e27fd99..285e3a611f3 100644 --- a/src/mame/machine/midtunit.c +++ b/src/mame/machine/midtunit.c @@ -526,7 +526,7 @@ DRIVER_INIT( jdreddp ) /* sound chip protection (hidden RAM) */ machine.device("adpcm:cpu")->memory().space(AS_PROGRAM)->install_read_bank(0xfbcf, 0xfbf9, "bank7"); machine.device("adpcm:cpu")->memory().space(AS_PROGRAM)->install_write_bank(0xfbcf, 0xfbf9, "bank9"); - memory_set_bankptr(machine, "bank9", auto_alloc_array(machine, UINT8, 0x80)); + state->subbank("bank9")->set_base(auto_alloc_array(machine, UINT8, 0x80)); #if ENABLE_ALL_JDREDD_LEVELS /* how about the final levels? */ diff --git a/src/mame/machine/namcos1.c b/src/mame/machine/namcos1.c index 4f1dee5a11f..76801666b18 100644 --- a/src/mame/machine/namcos1.c +++ b/src/mame/machine/namcos1.c @@ -557,7 +557,7 @@ WRITE8_MEMBER(namcos1_state::namcos1_sound_bankswitch_w) UINT8 *rom = machine().region("audiocpu")->base() + 0xc000; int bank = (data & 0x70) >> 4; - memory_set_bankptr(machine(), "bank17",rom + 0x4000 * bank); + subbank("bank17")->set_base(rom + 0x4000 * bank); } @@ -677,7 +677,7 @@ static void set_bank(running_machine &machine, int banknum, const bankhandler *h /* for BANK handlers , memory direct and OP-code base */ if (handler->bank_pointer) - memory_set_bankptr(machine, banktags[banknum], handler->bank_pointer); + state->subbank(banktags[banknum])->set_base(handler->bank_pointer); /* read handlers */ if (!handler->bank_handler_r) @@ -920,7 +920,7 @@ WRITE8_MEMBER(namcos1_state::namcos1_mcu_bankswitch_w) /* bit 0-1 : address line A15-A16 */ addr += (data & 3) * 0x8000; - memory_set_bankptr(machine(), "bank20", machine().region("mcu")->base() + addr); + subbank("bank20")->set_base(machine().region("mcu")->base() + addr); } @@ -997,8 +997,8 @@ static void namcos1_driver_init( running_machine &machine, const struct namcos1_ state_save_register_global_pointer(machine, state->m_paletteram, 0x8000); /* Point mcu & sound shared RAM to destination */ - memory_set_bankptr(machine, "bank18", state->m_triram ); - memory_set_bankptr(machine, "bank19", state->m_triram ); + state->subbank("bank18")->set_base(state->m_triram ); + state->subbank("bank19")->set_base(state->m_triram ); /* build bank elements */ namcos1_build_banks(machine,specific->key_r,specific->key_w); diff --git a/src/mame/machine/namcos2.c b/src/mame/machine/namcos2.c index fe9b7dc3b85..9da551cedd6 100644 --- a/src/mame/machine/namcos2.c +++ b/src/mame/machine/namcos2.c @@ -712,7 +712,7 @@ WRITE8_HANDLER( namcos2_sound_bankselect_w ) UINT8 *RAM=space->machine().region("audiocpu")->base(); UINT32 max = (space->machine().region("audiocpu")->bytes() - 0x10000) / 0x4000; int bank = ( data >> 4 ) % max; /* 991104.CAB */ - memory_set_bankptr(space->machine(), BANKED_SOUND_ROM, &RAM[ 0x10000 + ( 0x4000 * bank ) ] ); + space->machine().root_device().subbank(BANKED_SOUND_ROM)->set_base(&RAM[ 0x10000 + ( 0x4000 * bank ) ] ); } /**************************************************************/ diff --git a/src/mame/machine/qix.c b/src/mame/machine/qix.c index 7b6083d6b33..71d11517b7c 100644 --- a/src/mame/machine/qix.c +++ b/src/mame/machine/qix.c @@ -266,7 +266,7 @@ WRITE_LINE_DEVICE_HANDLER( qix_vsync_changed ) WRITE8_MEMBER(qix_state::zookeep_bankswitch_w) { - memory_set_bank(machine(), "bank1", (data >> 2) & 1); + subbank("bank1")->set_entry((data >> 2) & 1); /* not necessary, but technically correct */ qix_palettebank_w(space, offset, data); } diff --git a/src/mame/machine/scramble.c b/src/mame/machine/scramble.c index e60f262c895..99ef4b5c5f0 100644 --- a/src/mame/machine/scramble.c +++ b/src/mame/machine/scramble.c @@ -111,7 +111,7 @@ static void cavelon_banksw(running_machine &machine) to keep the CPU core happy at the boundaries */ state->m_cavelon_bank = !state->m_cavelon_bank; - memory_set_bank(machine, "bank1", state->m_cavelon_bank); + state->subbank("bank1")->set_entry(state->m_cavelon_bank); } static READ8_HANDLER( cavelon_banksw_r ) @@ -246,7 +246,7 @@ DRIVER_INIT( mariner ) /* extra ROM */ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x5800, 0x67ff, "bank1"); machine.device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x5800, 0x67ff); - memory_set_bankptr(machine, "bank1", machine.region("maincpu")->base() + 0x5800); + machine.root_device().subbank("bank1")->set_base(machine.region("maincpu")->base() + 0x5800); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x9008, 0x9008, FUNC(mariner_protection_2_r)); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xb401, 0xb401, FUNC(mariner_protection_1_r)); @@ -332,7 +332,7 @@ DRIVER_INIT( cavelon ) /* banked ROM */ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x3fff, "bank1"); - memory_configure_bank(machine, "bank1", 0, 2, &ROM[0x00000], 0x10000); + state->subbank("bank1")->configure_entries(0, 2, &ROM[0x00000], 0x10000); cavelon_banksw(machine); /* A15 switches memory banks */ diff --git a/src/mame/machine/segacrpt.c b/src/mame/machine/segacrpt.c index b26447a6920..e81952ab9ca 100644 --- a/src/mame/machine/segacrpt.c +++ b/src/mame/machine/segacrpt.c @@ -471,10 +471,10 @@ void toprollr_decode(running_machine &machine, const char *cputag, const char *r rom[A+bankstart] = (src & ~0xa8) | (convtable[2*row+1][col] ^ xorval); } - memory_configure_bank(machine, "bank1",0,3, machine.region(regiontag)->base(),0x6000); - memory_configure_bank_decrypted(machine, "bank1",0,3,decrypted,0x6000); + machine.root_device().subbank("bank1")->configure_entries(0,3, machine.region(regiontag)->base(),0x6000); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0,3,decrypted,0x6000); space->set_decrypted_region(0x0000, 0x5fff, decrypted); - memory_set_bank(space->machine(), "bank1", 0); + space->machine().root_device().subbank("bank1")->set_entry(0); } @@ -830,10 +830,10 @@ void jongkyo_decode(running_machine &machine, const char *cputag) rom[A] = (src & ~0xa8) | (convtable[2*row+1][col] ^ xorval); } - memory_configure_bank(machine, "bank1",0,8, machine.region(cputag)->base()+0x7000,0x0400); - memory_configure_bank_decrypted(machine, "bank1",0,8,decrypted+0x7000,0x0400); + machine.root_device().subbank("bank1")->configure_entries(0,8, machine.region(cputag)->base()+0x7000,0x0400); + machine.root_device().subbank("bank1")->configure_decrypted_entries(0,8,decrypted+0x7000,0x0400); space->set_decrypted_region(0x0000, 0x6bff, decrypted); - memory_set_bank(space->machine(), "bank1", 0); + machine.root_device().subbank("bank1")->set_entry(0); } diff --git a/src/mame/machine/segaic16.c b/src/mame/machine/segaic16.c index 02019c7b5ea..cea122c9ef5 100644 --- a/src/mame/machine/segaic16.c +++ b/src/mame/machine/segaic16.c @@ -157,8 +157,8 @@ void segaic16_memory_mapper_set_decrypted(running_machine &machine, UINT8 *decry if (region_start >= romsize) continue; - memory_configure_bank_decrypted(machine, readbank, 0, 1, decrypted + region_start, 0); - memory_set_bank(machine, readbank, 0); + machine.root_device().subbank(readbank)->configure_decrypted_entry(0, decrypted + region_start); + machine.root_device().subbank(readbank)->set_entry(0); } } @@ -349,8 +349,8 @@ static void update_memory_mapping(running_machine &machine, struct memory_mapper { if (rgn->base != NULL) { - memory_configure_bank(machine, readbank, 0, 1, *rgn->base, 0); - memory_set_bank(machine, readbank, 0); + machine.root_device().subbank(readbank)->configure_entry(0, *rgn->base); + machine.root_device().subbank(readbank)->set_entry(0); } else if (rgn->romoffset != ~0) { @@ -363,11 +363,11 @@ static void update_memory_mapping(running_machine &machine, struct memory_mapper decrypted = (UINT8 *)fd1089_get_decrypted_base(); } - memory_configure_bank(machine, readbank, 0, 1, chip->cpu->region()->base() + region_start, 0); + machine.root_device().subbank(readbank)->configure_entry(0, chip->cpu->region()->base() + region_start); if (decrypted) - memory_configure_bank_decrypted(machine, readbank, 0, 1, decrypted + region_start, 0); + machine.root_device().subbank(readbank)->configure_decrypted_entry(0, decrypted + region_start); - memory_set_bank(machine, readbank, 0); + machine.root_device().subbank(readbank)->set_entry(0); } } diff --git a/src/mame/machine/simpsons.c b/src/mame/machine/simpsons.c index f16ab1de77b..5b1c89afe23 100644 --- a/src/mame/machine/simpsons.c +++ b/src/mame/machine/simpsons.c @@ -65,7 +65,7 @@ READ8_DEVICE_HANDLER( simpsons_sound_r ) static KONAMI_SETLINES_CALLBACK( simpsons_banking ) { - memory_set_bank(device->machine(), "bank1", lines & 0x3f); + device->machine().root_device().subbank("bank1")->set_entry(lines & 0x3f); } static void simpsons_postload(running_machine &machine) @@ -118,12 +118,12 @@ MACHINE_RESET( simpsons ) state->m_video_bank = 0; /* init the default banks */ - memory_configure_bank(machine, "bank1", 0, 64, machine.region("maincpu")->base() + 0x10000, 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entries(0, 64, machine.region("maincpu")->base() + 0x10000, 0x2000); + state->subbank("bank1")->set_entry(0); - memory_configure_bank(machine, "bank2", 0, 2, machine.region("audiocpu")->base() + 0x10000, 0); - memory_configure_bank(machine, "bank2", 2, 6, machine.region("audiocpu")->base() + 0x10000, 0x4000); - memory_set_bank(machine, "bank2", 0); + state->subbank("bank2")->configure_entries(0, 2, machine.region("audiocpu")->base() + 0x10000, 0); + state->subbank("bank2")->configure_entries(2, 6, machine.region("audiocpu")->base() + 0x10000, 0x4000); + state->subbank("bank2")->set_entry(0); simpsons_video_banking(machine, 0); } diff --git a/src/mame/machine/slapfght.c b/src/mame/machine/slapfght.c index 80ea1724bf8..ba819436265 100644 --- a/src/mame/machine/slapfght.c +++ b/src/mame/machine/slapfght.c @@ -67,14 +67,14 @@ WRITE8_MEMBER(slapfght_state::slapfight_port_08_w) { UINT8 *RAM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1",&RAM[0x10000]); + subbank("bank1")->set_base(&RAM[0x10000]); } WRITE8_MEMBER(slapfght_state::slapfight_port_09_w) { UINT8 *RAM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1",&RAM[0x14000]); + subbank("bank1")->set_base(&RAM[0x14000]); } diff --git a/src/mame/machine/starwars.c b/src/mame/machine/starwars.c index c7878bf4509..f3927db19d5 100644 --- a/src/mame/machine/starwars.c +++ b/src/mame/machine/starwars.c @@ -82,9 +82,9 @@ WRITE8_MEMBER(starwars_state::starwars_out_w) break; case 4: /* bank switch */ - memory_set_bank(machine(), "bank1", (data >> 7) & 1); + subbank("bank1")->set_entry((data >> 7) & 1); if (m_is_esb) - memory_set_bank(machine(), "bank2", (data >> 7) & 1); + subbank("bank2")->set_entry((data >> 7) & 1); break; case 5: /* reset PRNG */ break; diff --git a/src/mame/machine/stfight.c b/src/mame/machine/stfight.c index bc827c80fa1..9e24dbcece7 100644 --- a/src/mame/machine/stfight.c +++ b/src/mame/machine/stfight.c @@ -105,7 +105,7 @@ WRITE8_MEMBER(stfight_state::stfight_bank_w) { UINT8 *ROM2 = machine().region("maincpu")->base() + 0x10000; - memory_set_bankptr(machine(), "bank1", &ROM2[data<<14] ); + subbank("bank1")->set_base(&ROM2[data<<14] ); } /* diff --git a/src/mame/machine/taitosj.c b/src/mame/machine/taitosj.c index 68ae7973295..7754a63114d 100644 --- a/src/mame/machine/taitosj.c +++ b/src/mame/machine/taitosj.c @@ -19,8 +19,8 @@ MACHINE_START( taitosj ) { taitosj_state *state = machine.driver_data<taitosj_state>(); - memory_configure_bank(machine, "bank1", 0, 1, machine.region("maincpu")->base() + 0x6000, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("maincpu")->base() + 0x10000, 0); + state->subbank("bank1")->configure_entry(0, machine.region("maincpu")->base() + 0x6000); + state->subbank("bank1")->configure_entry(1, machine.region("maincpu")->base() + 0x10000); state->save_item(NAME(state->m_fromz80)); state->save_item(NAME(state->m_toz80)); @@ -58,8 +58,8 @@ WRITE8_MEMBER(taitosj_state::taitosj_bankswitch_w) { coin_lockout_global_w(machine(), ~data & 1); - if(data & 0x80) memory_set_bank(machine(), "bank1", 1); - else memory_set_bank(machine(), "bank1", 0); + if(data & 0x80) subbank("bank1")->set_entry(1); + else subbank("bank1")->set_entry(0); } diff --git a/src/mame/machine/theglobp.c b/src/mame/machine/theglobp.c index 2be6b0afcb6..b5429d1ac80 100644 --- a/src/mame/machine/theglobp.c +++ b/src/mame/machine/theglobp.c @@ -222,10 +222,10 @@ READ8_HANDLER( theglobp_decrypt_rom ) switch(state->m_counter) { - case 0x08: memory_set_bank (space->machine(), "bank1", 0); break; - case 0x09: memory_set_bank (space->machine(), "bank1", 1); break; - case 0x0A: memory_set_bank (space->machine(), "bank1", 2); break; - case 0x0B: memory_set_bank (space->machine(), "bank1", 3); break; + case 0x08: state->subbank ("bank1")->set_entry (0); break; + case 0x09: state->subbank ("bank1")->set_entry (1); break; + case 0x0A: state->subbank ("bank1")->set_entry (2); break; + case 0x0B: state->subbank ("bank1")->set_entry (3); break; default: logerror("Invalid counter = %02X\n",state->m_counter); break; @@ -248,7 +248,7 @@ MACHINE_START( theglobp ) theglobp_decrypt_rom_A(machine); theglobp_decrypt_rom_B(machine); - memory_configure_bank(machine, "bank1", 0, 4, &RAM[0x10000], 0x4000); + state->subbank("bank1")->configure_entries(0, 4, &RAM[0x10000], 0x4000); state_save_register_global(machine, state->m_counter); } @@ -259,5 +259,5 @@ MACHINE_RESET( theglobp ) pacman_state *state = machine.driver_data<pacman_state>(); /* The initial state of the counter is 0x0A */ state->m_counter = 0x0A; - memory_set_bank(machine, "bank1", 2); + state->subbank("bank1")->set_entry(2); } diff --git a/src/mame/machine/tnzs.c b/src/mame/machine/tnzs.c index c3fd5beeee0..bcaccba227f 100644 --- a/src/mame/machine/tnzs.c +++ b/src/mame/machine/tnzs.c @@ -538,7 +538,7 @@ DRIVER_INIT( kabukiz ) UINT8 *SOUND = machine.region("audiocpu")->base(); state->m_mcu_type = MCU_NONE_KABUKIZ; - memory_configure_bank(machine, "bank3", 0, 8, &SOUND[0x10000], 0x4000); + state->subbank("bank3")->configure_entries(0, 8, &SOUND[0x10000], 0x4000); } DRIVER_INIT( insectx ) @@ -659,8 +659,8 @@ static void tnzs_postload(running_machine &machine) tnzs_state *state = machine.driver_data<tnzs_state>(); address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - memory_set_bank(machine, "bank1", state->m_bank1); - memory_set_bank(machine, "bank2", state->m_bank2); + state->subbank("bank1")->set_entry(state->m_bank1); + state->subbank("bank2")->set_entry(state->m_bank2); if (state->m_bank1 <= 1) space->install_write_bank(0x8000, 0xbfff, "bank1"); @@ -674,11 +674,11 @@ MACHINE_START( tnzs ) UINT8 *ROM = machine.region("maincpu")->base(); UINT8 *SUB = machine.region("sub")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); - memory_configure_bank(machine, "bank2", 0, 4, &SUB[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank2")->configure_entries(0, 4, &SUB[0x10000], 0x2000); - memory_set_bank(machine, "bank1", 2); - memory_set_bank(machine, "bank2", 0); + state->subbank("bank1")->set_entry(2); + state->subbank("bank2")->set_entry(0); state->m_bank1 = 2; state->m_bank2 = 0; @@ -712,8 +712,8 @@ MACHINE_START( jpopnics ) UINT8 *ROM = machine.region("maincpu")->base(); UINT8 *SUB = machine.region("sub")->base(); - memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000); - memory_configure_bank(machine, "bank2", 0, 4, &SUB[0x10000], 0x2000); + state->subbank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + state->subbank("bank2")->configure_entries(0, 4, &SUB[0x10000], 0x2000); state->m_subcpu = machine.device("sub"); state->m_mcu = NULL; @@ -742,7 +742,7 @@ WRITE8_MEMBER(tnzs_state::tnzs_bankswitch_w) /* bits 0-2 select RAM/ROM bank */ m_bank1 = data & 0x07; - memory_set_bank(machine(), "bank1", m_bank1); + subbank("bank1")->set_entry(m_bank1); if (m_bank1 <= 1) space.install_write_bank(0x8000, 0xbfff, "bank1"); @@ -798,5 +798,5 @@ WRITE8_MEMBER(tnzs_state::tnzs_bankswitch1_w) /* bits 0-1 select ROM bank */ m_bank2 = data & 0x03; - memory_set_bank(machine(), "bank2", m_bank2); + subbank("bank2")->set_entry(m_bank2); } diff --git a/src/mame/machine/vsnes.c b/src/mame/machine/vsnes.c index f875cffbab0..0c03ff2270d 100644 --- a/src/mame/machine/vsnes.c +++ b/src/mame/machine/vsnes.c @@ -182,7 +182,7 @@ static void v_set_videorom_bank( running_machine& machine, int start, int count, /* count determines the size of the area mapped */ for (i = 0; i < count; i++) { - memory_set_bank(machine, chr_banknames[i + start], vrom_start_bank + i); + state->subbank(chr_banknames[i + start])->set_entry(vrom_start_bank + i); } } @@ -214,7 +214,7 @@ MACHINE_START( vsnes ) for (i = 0; i < 8; i++) { ppu1_space->install_read_bank(0x0400 * i, 0x0400 * i + 0x03ff, chr_banknames[i]); - memory_configure_bank(machine, chr_banknames[i], 0, state->m_vrom_banks, state->m_vrom[0], 0x400); + state->subbank(chr_banknames[i])->configure_entries(0, state->m_vrom_banks, state->m_vrom[0], 0x400); } v_set_videorom_bank(machine, 0, 8, 0); } @@ -251,10 +251,10 @@ MACHINE_START( vsdual ) machine.device("ppu1")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank2"); // read only! machine.device("ppu2")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x1fff, "bank3"); - memory_configure_bank(machine, "bank2", 0, state->m_vrom_size[0] / 0x2000, state->m_vrom[0], 0x2000); - memory_configure_bank(machine, "bank3", 0, state->m_vrom_size[1] / 0x2000, state->m_vrom[1], 0x2000); - memory_set_bank(machine, "bank2", 0); - memory_set_bank(machine, "bank3", 0); + state->subbank("bank2")->configure_entries(0, state->m_vrom_size[0] / 0x2000, state->m_vrom[0], 0x2000); + state->subbank("bank3")->configure_entries(0, state->m_vrom_size[1] / 0x2000, state->m_vrom[1], 0x2000); + state->subbank("bank2")->set_entry(0); + state->subbank("bank3")->set_entry(0); } /************************************* @@ -1012,7 +1012,7 @@ WRITE8_MEMBER(vsnes_state::vsdual_vrom_banking) { device_t *other_cpu = (&space.device() == machine().device("maincpu")) ? machine().device("sub") : machine().device("maincpu"); /* switch vrom */ - (&space.device() == machine().device("maincpu")) ? memory_set_bank(machine(), "bank2", BIT(data, 2)) : memory_set_bank(machine(), "bank3", BIT(data, 2)); + (&space.device() == machine().device("maincpu")) ? subbank("bank2")->set_entry(BIT(data, 2)) : subbank("bank3")->set_entry(BIT(data, 2)); /* bit 1 ( data & 2 ) triggers irq on the other cpu */ device_set_input_line(other_cpu, 0, (data & 2) ? CLEAR_LINE : ASSERT_LINE); diff --git a/src/mame/machine/williams.c b/src/mame/machine/williams.c index fe8ecf3b40a..5521bd82779 100644 --- a/src/mame/machine/williams.c +++ b/src/mame/machine/williams.c @@ -368,8 +368,8 @@ static MACHINE_START( williams_common ) { williams_state *state = machine.driver_data<williams_state>(); /* configure the memory bank */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_videoram, 0); - memory_configure_bank(machine, "bank1", 1, 1, machine.region("maincpu")->base() + 0x10000, 0); + state->subbank("bank1")->configure_entry(0, state->m_videoram); + state->subbank("bank1")->configure_entry(1, machine.region("maincpu")->base() + 0x10000); state_save_register_global(machine, state->m_vram_bank); } @@ -466,8 +466,8 @@ MACHINE_START( williams2 ) { williams_state *state = machine.driver_data<williams_state>(); /* configure memory banks */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_videoram, 0); - memory_configure_bank(machine, "bank1", 1, 4, machine.region("maincpu")->base() + 0x10000, 0x10000); + state->subbank("bank1")->configure_entry(0, state->m_videoram); + state->subbank("bank1")->configure_entries(1, 4, machine.region("maincpu")->base() + 0x10000, 0x10000); /* register for save states */ state_save_register_global(machine, state->m_vram_bank); @@ -504,7 +504,7 @@ WRITE8_MEMBER(williams_state::williams_vram_select_w) { /* VRAM/ROM banking from bit 0 */ m_vram_bank = data & 0x01; - memory_set_bank(machine(), "bank1", m_vram_bank); + subbank("bank1")->set_entry(m_vram_bank); /* cocktail flip from bit 1 */ m_cocktail = data & 0x02; @@ -522,8 +522,8 @@ WRITE8_MEMBER(williams_state::williams2_bank_select_w) case 0: space.install_read_bank(0x0000, 0x8fff, "bank1"); space.install_write_bank(0x8000, 0x87ff, "bank4"); - memory_set_bank(machine(), "bank1", 0); - memory_set_bankptr(machine(), "bank4", &m_videoram[0x8000]); + subbank("bank1")->set_entry(0); + subbank("bank4")->set_base(&m_videoram[0x8000]); break; /* pages 1 and 2 are ROM */ @@ -531,16 +531,16 @@ WRITE8_MEMBER(williams_state::williams2_bank_select_w) case 2: space.install_read_bank(0x0000, 0x8fff, "bank1"); space.install_write_bank(0x8000, 0x87ff, "bank4"); - memory_set_bank(machine(), "bank1", 1 + ((m_vram_bank & 6) >> 1)); - memory_set_bankptr(machine(), "bank4", &m_videoram[0x8000]); + subbank("bank1")->set_entry(1 + ((m_vram_bank & 6) >> 1)); + subbank("bank4")->set_base(&m_videoram[0x8000]); break; /* page 3 accesses palette RAM; the remaining areas are as if page 1 ROM was selected */ case 3: space.install_read_bank(0x8000, 0x87ff, "bank4"); space.install_write_handler(0x8000, 0x87ff, write8_delegate(FUNC(williams_state::williams2_paletteram_w),this)); - memory_set_bank(machine(), "bank1", 1 + ((m_vram_bank & 4) >> 1)); - memory_set_bankptr(machine(), "bank4", m_generic_paletteram_8); + subbank("bank1")->set_entry(1 + ((m_vram_bank & 4) >> 1)); + subbank("bank4")->set_base(m_generic_paletteram_8); break; } } @@ -772,7 +772,7 @@ MACHINE_START( defender ) MACHINE_START_CALL(williams_common); /* configure the banking and make sure it is reset to 0 */ - memory_configure_bank(machine, "bank1", 0, 9, &machine.region("maincpu")->base()[0x10000], 0x1000); + machine.root_device().subbank("bank1")->configure_entries(0, 9, &machine.region("maincpu")->base()[0x10000], 0x1000); machine.save().register_postload(save_prepost_delegate(FUNC(defender_postload), &machine)); } @@ -819,7 +819,7 @@ WRITE8_MEMBER(williams_state::defender_bank_select_w) case 9: space.install_read_bank(0xc000, 0xcfff, "bank1"); space.unmap_write(0xc000, 0xcfff); - memory_set_bank(machine(), "bank1", m_vram_bank - 1); + subbank("bank1")->set_entry(m_vram_bank - 1); break; /* pages A-F are not connected */ @@ -878,11 +878,11 @@ MACHINE_START( blaster ) MACHINE_START_CALL(williams_common); /* banking is different for blaster */ - memory_configure_bank(machine, "bank1", 0, 1, state->m_videoram, 0); - memory_configure_bank(machine, "bank1", 1, 16, machine.region("maincpu")->base() + 0x18000, 0x4000); + state->subbank("bank1")->configure_entry(0, state->m_videoram); + state->subbank("bank1")->configure_entries(1, 16, machine.region("maincpu")->base() + 0x18000, 0x4000); - memory_configure_bank(machine, "bank2", 0, 1, state->m_videoram + 0x4000, 0); - memory_configure_bank(machine, "bank2", 1, 16, machine.region("maincpu")->base() + 0x10000, 0x0000); + state->subbank("bank2")->configure_entry(0, state->m_videoram + 0x4000); + state->subbank("bank2")->configure_entries(1, 16, machine.region("maincpu")->base() + 0x10000, 0x0000); state_save_register_global(machine, state->m_blaster_bank); } @@ -897,8 +897,8 @@ MACHINE_RESET( blaster ) INLINE void update_blaster_banking(running_machine &machine) { williams_state *state = machine.driver_data<williams_state>(); - memory_set_bank(machine, "bank1", state->m_vram_bank * (state->m_blaster_bank + 1)); - memory_set_bank(machine, "bank2", state->m_vram_bank * (state->m_blaster_bank + 1)); + state->subbank("bank1")->set_entry(state->m_vram_bank * (state->m_blaster_bank + 1)); + state->subbank("bank2")->set_entry(state->m_vram_bank * (state->m_blaster_bank + 1)); } diff --git a/src/mame/video/1943.c b/src/mame/video/1943.c index 2b6d16d5180..81ff009c4e9 100644 --- a/src/mame/video/1943.c +++ b/src/mame/video/1943.c @@ -141,7 +141,7 @@ WRITE8_MEMBER(_1943_state::c1943_c804_w) coin_counter_w(machine(), 1, data & 0x02); /* bits 2, 3 and 4 select the ROM bank */ - memory_set_bank(machine(), "bank1", (data & 0x1c) >> 2); + subbank("bank1")->set_entry((data & 0x1c) >> 2); /* bit 5 resets the sound CPU - we ignore it */ diff --git a/src/mame/video/appoooh.c b/src/mame/video/appoooh.c index 48101cb71fb..c6477bd559f 100644 --- a/src/mame/video/appoooh.c +++ b/src/mame/video/appoooh.c @@ -197,7 +197,7 @@ WRITE8_MEMBER(appoooh_state::appoooh_out_w) { UINT8 *RAM = machine().region("maincpu")->base(); - memory_set_bankptr(machine(), "bank1",&RAM[data&0x40 ? 0x10000 : 0x0a000]); + subbank("bank1")->set_base(&RAM[data&0x40 ? 0x10000 : 0x0a000]); } /* bit 7 unknown (used) */ diff --git a/src/mame/video/arkanoid.c b/src/mame/video/arkanoid.c index 4c46d35a8fa..11221ac4821 100644 --- a/src/mame/video/arkanoid.c +++ b/src/mame/video/arkanoid.c @@ -137,7 +137,7 @@ WRITE8_MEMBER(arkanoid_state::hexa_d008_w) /* bit 2 - 3 unknown */ /* bit 4 could be the ROM bank selector for 8000-bfff (not sure) */ - memory_set_bank(machine(), "bank1", ((data & 0x10) >> 4)); + subbank("bank1")->set_entry(((data & 0x10) >> 4)); /* bit 5 = gfx bank */ if (m_gfxbank != ((data & 0x20) >> 5)) diff --git a/src/mame/video/bfm_adr2.c b/src/mame/video/bfm_adr2.c index 2154933d56e..acac9ab08fb 100644 --- a/src/mame/video/bfm_adr2.c +++ b/src/mame/video/bfm_adr2.c @@ -188,9 +188,9 @@ VIDEO_RESET( adder2 ) { UINT8 *rom = machine.region("adder2")->base(); - memory_configure_bank(machine, "bank2", 0, 4, &rom[0x00000], 0x08000); + machine.root_device().subbank("bank2")->configure_entries(0, 4, &rom[0x00000], 0x08000); - memory_set_bank(machine, "bank2",0&0x03); + machine.root_device().subbank("bank2")->set_entry(0&0x03); } } @@ -323,7 +323,7 @@ static WRITE8_HANDLER( normal_ram_w ) static WRITE8_HANDLER( adder2_rom_page_w ) { - memory_set_bank(space->machine(), "bank2",data&0x03); + space->machine().root_device().subbank("bank2")->set_entry(data&0x03); } /////////////////////////////////////////////////////////////////////////// diff --git a/src/mame/video/brkthru.c b/src/mame/video/brkthru.c index ad77f8b9b4b..ab59d17f9ff 100644 --- a/src/mame/video/brkthru.c +++ b/src/mame/video/brkthru.c @@ -129,7 +129,7 @@ WRITE8_MEMBER(brkthru_state::brkthru_1800_w) else if (offset == 1) { /* bit 0-2 = ROM bank select */ - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); /* bit 3-5 = background tiles color code */ if (((data & 0x38) >> 2) != m_bgbasecolor) diff --git a/src/mame/video/chaknpop.c b/src/mame/video/chaknpop.c index 72860a7603f..2f8c812b8f6 100644 --- a/src/mame/video/chaknpop.c +++ b/src/mame/video/chaknpop.c @@ -81,7 +81,7 @@ WRITE8_MEMBER(chaknpop_state::chaknpop_gfxmode_w) int all_dirty = 0; m_gfxmode = data; - memory_set_bank(machine(), "bank1", (m_gfxmode & GFX_VRAM_BANK) ? 1 : 0); /* Select 2 banks of 16k */ + subbank("bank1")->set_entry((m_gfxmode & GFX_VRAM_BANK) ? 1 : 0); /* Select 2 banks of 16k */ if (m_flip_x != (m_gfxmode & GFX_FLIP_X)) { @@ -169,7 +169,7 @@ VIDEO_START( chaknpop ) state->save_pointer(NAME(state->m_vram3), 0x2000); state->save_pointer(NAME(state->m_vram4), 0x2000); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->set_entry(0); tx_tilemap_mark_all_dirty(machine); machine.save().register_postload(save_prepost_delegate(FUNC(tx_tilemap_mark_all_dirty), &machine)); diff --git a/src/mame/video/cloud9.c b/src/mame/video/cloud9.c index 491fff15d7d..904294720e0 100644 --- a/src/mame/video/cloud9.c +++ b/src/mame/video/cloud9.c @@ -22,7 +22,7 @@ VIDEO_START( cloud9 ) /* allocate second bank of videoram */ state->m_videoram = auto_alloc_array(machine, UINT8, 0x8000); - memory_set_bankptr(machine, "bank1", state->m_videoram); + state->subbank("bank1")->set_base(state->m_videoram); /* get pointers to our PROMs */ state->m_syncprom = machine.region("proms")->base() + 0x000; diff --git a/src/mame/video/dec8.c b/src/mame/video/dec8.c index 6dd62b4c68f..93e1943d204 100644 --- a/src/mame/video/dec8.c +++ b/src/mame/video/dec8.c @@ -140,7 +140,7 @@ WRITE8_MEMBER(dec8_state::srdarwin_control_w) switch (offset) { case 0: /* Top 3 bits - bank switch, bottom 4 - scroll MSB */ - memory_set_bank(machine(), "bank1", (data >> 5)); + subbank("bank1")->set_entry((data >> 5)); m_scroll2[0] = data & 0xf; return; @@ -160,7 +160,7 @@ WRITE8_MEMBER(dec8_state::lastmisn_control_w) Bit 0x40 - Y scroll MSB Bit 0x80 - Hold subcpu reset line high if clear, else low */ - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); m_scroll2[0] = (data >> 5) & 1; m_scroll2[2] = (data >> 6) & 1; @@ -175,7 +175,7 @@ WRITE8_MEMBER(dec8_state::shackled_control_w) { /* Bottom 4 bits - bank switch, Bits 4 & 5 - Scroll MSBs */ - memory_set_bank(machine(), "bank1", data & 0x0f); + subbank("bank1")->set_entry(data & 0x0f); m_scroll2[0] = (data >> 5) & 1; m_scroll2[2] = (data >> 6) & 1; diff --git a/src/mame/video/dooyong.c b/src/mame/video/dooyong.c index 55362e1d6c7..c4b481d15c7 100644 --- a/src/mame/video/dooyong.c +++ b/src/mame/video/dooyong.c @@ -139,7 +139,7 @@ WRITE8_MEMBER(dooyong_state::pollux_ctrl_w) WRITE8_MEMBER(dooyong_state::primella_ctrl_w) { /* bits 0-2 select ROM bank */ - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); /* bit 3 disables tx layer */ m_tx_pri = data & 0x08; diff --git a/src/mame/video/galivan.c b/src/mame/video/galivan.c index 9880b229fda..0c532eda332 100644 --- a/src/mame/video/galivan.c +++ b/src/mame/video/galivan.c @@ -229,7 +229,7 @@ WRITE8_MEMBER(galivan_state::galivan_gfxbank_w) m_tx_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); /* bit 7 selects one of two ROM banks for c000-dfff */ - memory_set_bank(machine(), "bank1", (data & 0x80) >> 7); + subbank("bank1")->set_entry((data & 0x80) >> 7); /* logerror("Address: %04X - port 40 = %02x\n", cpu_get_pc(&space.device()), data); */ } @@ -254,7 +254,7 @@ WRITE8_MEMBER(galivan_state::ninjemak_gfxbank_w) /* bit 5 sprite flag ??? */ /* bit 6, 7 ROM bank select */ - memory_set_bank(machine(), "bank1", (data & 0xc0) >> 6); + subbank("bank1")->set_entry((data & 0xc0) >> 6); #if 0 { diff --git a/src/mame/video/gunsmoke.c b/src/mame/video/gunsmoke.c index 543f74b9299..bb5d89373b8 100644 --- a/src/mame/video/gunsmoke.c +++ b/src/mame/video/gunsmoke.c @@ -79,7 +79,7 @@ WRITE8_MEMBER(gunsmoke_state::gunsmoke_c804_w) coin_counter_w(machine(), 0, data & 0x02); /* bits 2 and 3 select the ROM bank */ - memory_set_bank(machine(), "bank1", (data & 0x0c) >> 2); + subbank("bank1")->set_entry((data & 0x0c) >> 2); /* bit 5 resets the sound CPU? - we ignore it */ diff --git a/src/mame/video/hexion.c b/src/mame/video/hexion.c index beebc5f1c78..056afd79b58 100644 --- a/src/mame/video/hexion.c +++ b/src/mame/video/hexion.c @@ -68,7 +68,7 @@ WRITE8_MEMBER(hexion_state::hexion_bankswitch_w) UINT8 *rom = machine().region("maincpu")->base() + 0x10000; /* bits 0-3 select ROM bank */ - memory_set_bankptr(machine(), "bank1",rom + 0x2000 * (data & 0x0f)); + subbank("bank1")->set_base(rom + 0x2000 * (data & 0x0f)); /* does bit 6 trigger the 052591? */ if (data & 0x40) diff --git a/src/mame/video/homerun.c b/src/mame/video/homerun.c index b54423fc28d..1a8ff117f8f 100644 --- a/src/mame/video/homerun.c +++ b/src/mame/video/homerun.c @@ -15,7 +15,7 @@ WRITE8_DEVICE_HANDLER(homerun_banking_w) state->m_tilemap->mark_all_dirty(); data >>= 5; - memory_set_bank(device->machine(), "bank1", data & 0x07); + state->subbank("bank1")->set_entry(data & 0x07); } WRITE8_MEMBER(homerun_state::homerun_videoram_w) diff --git a/src/mame/video/kangaroo.c b/src/mame/video/kangaroo.c index e546548290d..88df42a2d8b 100644 --- a/src/mame/video/kangaroo.c +++ b/src/mame/video/kangaroo.c @@ -85,7 +85,7 @@ WRITE8_MEMBER(kangaroo_state::kangaroo_video_control_w) break; case 8: /* bank select */ - memory_set_bank(machine(), "bank1", (data & 0x05) ? 0 : 1); + subbank("bank1")->set_entry((data & 0x05) ? 0 : 1); break; } } diff --git a/src/mame/video/metlclsh.c b/src/mame/video/metlclsh.c index 3f6a98b3d58..45359c06b8d 100644 --- a/src/mame/video/metlclsh.c +++ b/src/mame/video/metlclsh.c @@ -28,12 +28,12 @@ WRITE8_MEMBER(metlclsh_state::metlclsh_rambank_w) if (data & 1) { m_write_mask = 0; - memory_set_bankptr(machine(), "bank1", m_bgram); + subbank("bank1")->set_base(m_bgram); } else { m_write_mask = 1 << (data >> 1); - memory_set_bankptr(machine(), "bank1", m_otherram); + subbank("bank1")->set_base(m_otherram); } } diff --git a/src/mame/video/mexico86.c b/src/mame/video/mexico86.c index f3c4bdf6cc1..57f72682597 100644 --- a/src/mame/video/mexico86.c +++ b/src/mame/video/mexico86.c @@ -8,7 +8,7 @@ WRITE8_MEMBER(mexico86_state::mexico86_bankswitch_w) if ((data & 7) > 5) popmessage("Switching to invalid bank!"); - memory_set_bank(machine(), "bank1", data & 0x07); + subbank("bank1")->set_entry(data & 0x07); m_charbank = BIT(data, 5); } diff --git a/src/mame/video/mjkjidai.c b/src/mame/video/mjkjidai.c index 74128e8bf61..e918b2b3b8e 100644 --- a/src/mame/video/mjkjidai.c +++ b/src/mame/video/mjkjidai.c @@ -68,12 +68,12 @@ WRITE8_MEMBER(mjkjidai_state::mjkjidai_ctrl_w) /* bits 6-7 select ROM bank */ if (data & 0xc0) { - memory_set_bankptr(machine(), "bank1",rom + 0x10000-0x4000 + ((data & 0xc0) << 8)); + subbank("bank1")->set_base(rom + 0x10000-0x4000 + ((data & 0xc0) << 8)); } else { /* there is code flowing from 7fff to this bank so they have to be contiguous in memory */ - memory_set_bankptr(machine(), "bank1",rom + 0x08000); + subbank("bank1")->set_base(rom + 0x08000); } } diff --git a/src/mame/video/pacland.c b/src/mame/video/pacland.c index d75ad4b91ff..2b8dded4f65 100644 --- a/src/mame/video/pacland.c +++ b/src/mame/video/pacland.c @@ -256,7 +256,7 @@ WRITE8_MEMBER(pacland_state::pacland_bankswitch_w) UINT8 *RAM = machine().region("maincpu")->base(); bankaddress = 0x10000 + ((data & 0x07) << 13); - memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); // pbc = data & 0x20; diff --git a/src/mame/video/phoenix.c b/src/mame/video/phoenix.c index ebec2a27c72..bf78c020e00 100644 --- a/src/mame/video/phoenix.c +++ b/src/mame/video/phoenix.c @@ -178,9 +178,9 @@ VIDEO_START( phoenix ) state->m_videoram_pg[0] = auto_alloc_array(machine, UINT8, 0x1000); state->m_videoram_pg[1] = auto_alloc_array(machine, UINT8, 0x1000); - memory_configure_bank(machine, "bank1", 0, 1, state->m_videoram_pg[0], 0); - memory_configure_bank(machine, "bank1", 1, 1, state->m_videoram_pg[1], 0); - memory_set_bank(machine, "bank1", 0); + state->subbank("bank1")->configure_entry(0, state->m_videoram_pg[0]); + state->subbank("bank1")->configure_entry(1, state->m_videoram_pg[1]); + state->subbank("bank1")->set_entry(0); state->m_videoram_pg_index = 0; state->m_palette_bank = 0; @@ -249,7 +249,7 @@ WRITE8_MEMBER(phoenix_state::phoenix_videoreg_w) { /* set memory bank */ m_videoram_pg_index = data & 1; - memory_set_bank(machine(), "bank1", m_videoram_pg_index); + subbank("bank1")->set_entry(m_videoram_pg_index); m_cocktail_mode = m_videoram_pg_index && (input_port_read(machine(), "CAB") & 0x01); @@ -272,7 +272,7 @@ WRITE8_MEMBER(phoenix_state::pleiads_videoreg_w) { /* set memory bank */ m_videoram_pg_index = data & 1; - memory_set_bank(machine(), "bank1", m_videoram_pg_index); + subbank("bank1")->set_entry(m_videoram_pg_index); m_cocktail_mode = m_videoram_pg_index && (input_port_read(machine(), "CAB") & 0x01); diff --git a/src/mame/video/shisen.c b/src/mame/video/shisen.c index 7b1bd3430aa..7658a715ea6 100644 --- a/src/mame/video/shisen.c +++ b/src/mame/video/shisen.c @@ -18,7 +18,7 @@ WRITE8_MEMBER(shisen_state::sichuan2_bankswitch_w) /* bits 0-2 select ROM bank */ bankaddress = 0x10000 + (data & 0x07) * 0x4000; - memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]); + subbank("bank1")->set_base(&RAM[bankaddress]); /* bits 3-5 select gfx bank */ bank = (data & 0x38) >> 3; diff --git a/src/mame/video/simpsons.c b/src/mame/video/simpsons.c index d0c8ea78c68..04039b41b63 100644 --- a/src/mame/video/simpsons.c +++ b/src/mame/video/simpsons.c @@ -99,7 +99,7 @@ void simpsons_video_banking( running_machine &machine, int bank ) { space->install_read_bank(0x0000, 0x0fff, "bank5"); space->install_write_handler(0x0000, 0x0fff, write8_delegate(FUNC(simpsons_state::paletteram_xBBBBBGGGGGRRRRR_byte_be_w), state)); - memory_set_bankptr(machine, "bank5", state->m_generic_paletteram_8); + state->subbank("bank5")->set_base(state->m_generic_paletteram_8); } else space->install_legacy_readwrite_handler(*state->m_k052109, 0x0000, 0x0fff, FUNC(k052109_r), FUNC(k052109_w)); diff --git a/src/mame/video/spdodgeb.c b/src/mame/video/spdodgeb.c index 38ae3b71c93..590cb29af00 100644 --- a/src/mame/video/spdodgeb.c +++ b/src/mame/video/spdodgeb.c @@ -114,7 +114,7 @@ WRITE8_MEMBER(spdodgeb_state::spdodgeb_ctrl_w) flip_screen_set(data & 0x01); /* bit 1 = ROM bank switch */ - memory_set_bankptr(machine(), "bank1",rom + 0x10000 + 0x4000 * ((~data & 0x02) >> 1)); + subbank("bank1")->set_base(rom + 0x10000 + 0x4000 * ((~data & 0x02) >> 1)); /* bit 2 = scroll high bit */ m_lastscroll = (m_lastscroll & 0x0ff) | ((data & 0x04) << 6); diff --git a/src/mame/video/superqix.c b/src/mame/video/superqix.c index a1e0fb5130c..112bf67cebd 100644 --- a/src/mame/video/superqix.c +++ b/src/mame/video/superqix.c @@ -127,7 +127,7 @@ WRITE8_MEMBER(superqix_state::pbillian_0410_w) coin_counter_w(machine(), 0,data & 0x02); coin_counter_w(machine(), 1,data & 0x04); - memory_set_bank(machine(), "bank1", (data & 0x08) >> 3); + subbank("bank1")->set_entry((data & 0x08) >> 3); m_nmi_mask = data & 0x10; flip_screen_set(data & 0x20); @@ -149,7 +149,7 @@ WRITE8_MEMBER(superqix_state::superqix_0410_w) m_nmi_mask = data & 0x08; /* bits 4-5 control ROM bank */ - memory_set_bank(machine(), "bank1", (data & 0x30) >> 4); + subbank("bank1")->set_entry((data & 0x30) >> 4); } |