mirror of
https://github.com/holub/mame
synced 2025-06-21 11:46:49 +03:00
A few more set_base removals (nw)
This commit is contained in:
parent
6c5bf63c2c
commit
bbeb8de3bb
@ -107,6 +107,7 @@ public:
|
|||||||
DECLARE_WRITE16_MEMBER(paletteram_w);
|
DECLARE_WRITE16_MEMBER(paletteram_w);
|
||||||
DECLARE_READ16_MEMBER(srmp6_irq_ack_r);
|
DECLARE_READ16_MEMBER(srmp6_irq_ack_r);
|
||||||
DECLARE_DRIVER_INIT(INIT);
|
DECLARE_DRIVER_INIT(INIT);
|
||||||
|
virtual void machine_start();
|
||||||
virtual void video_start();
|
virtual void video_start();
|
||||||
UINT32 screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||||
void update_palette();
|
void update_palette();
|
||||||
@ -306,6 +307,11 @@ UINT32 srmp6_state::screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bit
|
|||||||
Main CPU memory handlers
|
Main CPU memory handlers
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
void srmp6_state::machine_start()
|
||||||
|
{
|
||||||
|
membank("bank1")->configure_entries(0, 16, memregion("nile")->base(), 0x200000);
|
||||||
|
}
|
||||||
|
|
||||||
WRITE16_MEMBER(srmp6_state::srmp6_input_select_w)
|
WRITE16_MEMBER(srmp6_state::srmp6_input_select_w)
|
||||||
{
|
{
|
||||||
m_input_select = data & 0x0f;
|
m_input_select = data & 0x0f;
|
||||||
@ -313,7 +319,7 @@ WRITE16_MEMBER(srmp6_state::srmp6_input_select_w)
|
|||||||
|
|
||||||
READ16_MEMBER(srmp6_state::srmp6_inputs_r)
|
READ16_MEMBER(srmp6_state::srmp6_inputs_r)
|
||||||
{
|
{
|
||||||
if (offset == 0) // DSW
|
if (offset == 0) // DSW
|
||||||
return ioport("DSW")->read();
|
return ioport("DSW")->read();
|
||||||
|
|
||||||
switch (m_input_select) // inputs
|
switch (m_input_select) // inputs
|
||||||
@ -334,9 +340,8 @@ WRITE16_MEMBER(srmp6_state::video_regs_w)
|
|||||||
{
|
{
|
||||||
case 0x5e/2: // bank switch, used by ROM check
|
case 0x5e/2: // bank switch, used by ROM check
|
||||||
{
|
{
|
||||||
const UINT8 *rom = memregion("nile")->base();
|
LOG(("%x\n",data));
|
||||||
LOG(("%x\n",data));
|
membank("bank1")->set_entry(data & 0x0f);
|
||||||
membank("bank1")->set_base((UINT16 *)(rom + (data & 0x0f)*0x200000));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -544,7 +549,7 @@ READ16_MEMBER(srmp6_state::srmp6_irq_ack_r)
|
|||||||
static ADDRESS_MAP_START( srmp6_map, AS_PROGRAM, 16, srmp6_state )
|
static ADDRESS_MAP_START( srmp6_map, AS_PROGRAM, 16, srmp6_state )
|
||||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||||
AM_RANGE(0x200000, 0x23ffff) AM_RAM // work RAM
|
AM_RANGE(0x200000, 0x23ffff) AM_RAM // work RAM
|
||||||
AM_RANGE(0x600000, 0x7fffff) AM_ROMBANK("bank1") // banked ROM (used by ROM check)
|
AM_RANGE(0x600000, 0x7fffff) AM_ROMBANK("bank1") // banked ROM (used by ROM check)
|
||||||
AM_RANGE(0x800000, 0x9fffff) AM_ROM AM_REGION("user1", 0)
|
AM_RANGE(0x800000, 0x9fffff) AM_ROM AM_REGION("user1", 0)
|
||||||
|
|
||||||
AM_RANGE(0x300000, 0x300005) AM_READWRITE(srmp6_inputs_r, srmp6_input_select_w) // inputs
|
AM_RANGE(0x300000, 0x300005) AM_READWRITE(srmp6_inputs_r, srmp6_input_select_w) // inputs
|
||||||
|
@ -27,27 +27,31 @@ WRITE8_MEMBER(srumbler_state::srumbler_bankswitch_w)
|
|||||||
Note that 5000-8fff can be either ROM or RAM, so we should handle
|
Note that 5000-8fff can be either ROM or RAM, so we should handle
|
||||||
that as well to be 100% accurate.
|
that as well to be 100% accurate.
|
||||||
*/
|
*/
|
||||||
int i;
|
|
||||||
UINT8 *ROM = memregion("user1")->base();
|
|
||||||
UINT8 *prom1 = memregion("proms")->base() + (data & 0xf0);
|
UINT8 *prom1 = memregion("proms")->base() + (data & 0xf0);
|
||||||
UINT8 *prom2 = memregion("proms")->base() + 0x100 + ((data & 0x0f) << 4);
|
UINT8 *prom2 = memregion("proms")->base() + 0x100 + ((data & 0x0f) << 4);
|
||||||
|
|
||||||
for (i = 0x05;i < 0x10;i++)
|
for (int i = 0x05;i < 0x10;i++)
|
||||||
{
|
{
|
||||||
|
/* bit 2 of prom1 selects ROM or RAM - not supported */
|
||||||
int bank = ((prom1[i] & 0x03) << 4) | (prom2[i] & 0x0f);
|
int bank = ((prom1[i] & 0x03) << 4) | (prom2[i] & 0x0f);
|
||||||
char bankname[10];
|
|
||||||
/* bit 2 of prom1 selects ROM or RAM - not supported */
|
|
||||||
|
|
||||||
|
char bankname[10];
|
||||||
sprintf(bankname, "%04x", i*0x1000);
|
sprintf(bankname, "%04x", i*0x1000);
|
||||||
membank(bankname)->set_base(&ROM[bank*0x1000]);
|
membank(bankname)->set_entry(bank);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void srumbler_state::machine_start()
|
void srumbler_state::machine_start()
|
||||||
{
|
{
|
||||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
for (int i = 0x05; i < 0x10; i++)
|
||||||
/* initialize banked ROM pointers */
|
{
|
||||||
srumbler_bankswitch_w(space,0,0);
|
char bankname[10];
|
||||||
|
sprintf(bankname, "%04x", i*0x1000);
|
||||||
|
membank(bankname)->configure_entries(0, 64, memregion("user1")->base(), 0x1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* initialize banked ROM pointers */
|
||||||
|
srumbler_bankswitch_w(m_maincpu->space(AS_PROGRAM), 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(srumbler_state::srumbler_interrupt)
|
TIMER_DEVICE_CALLBACK_MEMBER(srumbler_state::srumbler_interrupt)
|
||||||
@ -84,7 +88,7 @@ static ADDRESS_MAP_START( srumbler_map, AS_PROGRAM, 8, srumbler_state )
|
|||||||
AM_RANGE(0x400e, 0x400e) AM_WRITE(soundlatch_byte_w)
|
AM_RANGE(0x400e, 0x400e) AM_WRITE(soundlatch_byte_w)
|
||||||
AM_RANGE(0x5000, 0x5fff) AM_ROMBANK("5000") AM_WRITE(srumbler_foreground_w) AM_SHARE("foregroundram") /* Banked ROM */
|
AM_RANGE(0x5000, 0x5fff) AM_ROMBANK("5000") AM_WRITE(srumbler_foreground_w) AM_SHARE("foregroundram") /* Banked ROM */
|
||||||
AM_RANGE(0x6000, 0x6fff) AM_ROMBANK("6000") /* Banked ROM */
|
AM_RANGE(0x6000, 0x6fff) AM_ROMBANK("6000") /* Banked ROM */
|
||||||
AM_RANGE(0x6000, 0x6fff) AM_WRITENOP /* Video RAM 2 ??? (not used) */
|
AM_RANGE(0x6000, 0x6fff) AM_WRITENOP /* Video RAM 2 ??? (not used) */
|
||||||
AM_RANGE(0x7000, 0x7fff) AM_ROMBANK("7000") /* Banked ROM */
|
AM_RANGE(0x7000, 0x7fff) AM_ROMBANK("7000") /* Banked ROM */
|
||||||
AM_RANGE(0x7000, 0x73ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
AM_RANGE(0x7000, 0x73ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||||
AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("8000") /* Banked ROM */
|
AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("8000") /* Banked ROM */
|
||||||
|
@ -288,22 +288,28 @@ ADDRESS_MAP_END
|
|||||||
Back Street Soccer
|
Back Street Soccer
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
MACHINE_START_MEMBER(suna16_state, bssoccer)
|
||||||
|
{
|
||||||
|
membank("bank1")->configure_entries(0, 8, memregion("pcm1")->base() + 0x1000, 0x10000);
|
||||||
|
membank("bank2")->configure_entries(0, 8, memregion("pcm2")->base() + 0x1000, 0x10000);
|
||||||
|
}
|
||||||
|
|
||||||
/* Bank Switching */
|
/* Bank Switching */
|
||||||
|
|
||||||
WRITE8_MEMBER(suna16_state::bssoccer_pcm_1_bankswitch_w)
|
WRITE8_MEMBER(suna16_state::bssoccer_pcm_1_bankswitch_w)
|
||||||
{
|
{
|
||||||
UINT8 *RAM = memregion("pcm1")->base();
|
const int bank = data & 7;
|
||||||
int bank = data & 7;
|
|
||||||
if (bank & ~7) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
|
if (bank & ~7) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
|
||||||
membank("bank1")->set_base(&RAM[bank * 0x10000 + 0x1000]);
|
printf("%d %d\n", 1, bank);
|
||||||
|
membank("bank1")->set_entry(bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(suna16_state::bssoccer_pcm_2_bankswitch_w)
|
WRITE8_MEMBER(suna16_state::bssoccer_pcm_2_bankswitch_w)
|
||||||
{
|
{
|
||||||
UINT8 *RAM = memregion("pcm2")->base();
|
const int bank = data & 7;
|
||||||
int bank = data & 7;
|
|
||||||
if (bank & ~7) logerror("CPU#3 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
|
if (bank & ~7) logerror("CPU#3 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
|
||||||
membank("bank2")->set_base(&RAM[bank * 0x10000 + 0x1000]);
|
printf("%d %d\n", 2, bank);
|
||||||
|
membank("bank2")->set_entry(bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -366,10 +372,9 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
WRITE8_MEMBER(suna16_state::uballoon_pcm_1_bankswitch_w)
|
WRITE8_MEMBER(suna16_state::uballoon_pcm_1_bankswitch_w)
|
||||||
{
|
{
|
||||||
UINT8 *RAM = memregion("pcm1")->base();
|
const int bank = data & 1;
|
||||||
int bank = data & 1;
|
|
||||||
if (bank & ~1) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
|
if (bank & ~1) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
|
||||||
membank("bank1")->set_base(&RAM[bank * 0x10000 + 0x400]);
|
membank("bank1")->set_entry(bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Memory maps: Yes, *no* RAM */
|
/* Memory maps: Yes, *no* RAM */
|
||||||
@ -387,6 +392,11 @@ static ADDRESS_MAP_START( uballoon_pcm_1_io_map, AS_IO, 8, suna16_state )
|
|||||||
AM_RANGE(0x03, 0x03) AM_WRITE(uballoon_pcm_1_bankswitch_w) // Rom Bank
|
AM_RANGE(0x03, 0x03) AM_WRITE(uballoon_pcm_1_bankswitch_w) // Rom Bank
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
MACHINE_START_MEMBER(suna16_state,uballoon)
|
||||||
|
{
|
||||||
|
membank("bank1")->configure_entries(0, 2, memregion("pcm1")->base() + 0x400, 0x10000);
|
||||||
|
}
|
||||||
|
|
||||||
MACHINE_RESET_MEMBER(suna16_state,uballoon)
|
MACHINE_RESET_MEMBER(suna16_state,uballoon)
|
||||||
{
|
{
|
||||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||||
@ -812,6 +822,8 @@ static MACHINE_CONFIG_START( bssoccer, suna16_state )
|
|||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||||
|
|
||||||
|
MCFG_MACHINE_START_OVERRIDE(suna16_state,bssoccer)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
MCFG_SCREEN_REFRESH_RATE(60)
|
MCFG_SCREEN_REFRESH_RATE(60)
|
||||||
@ -869,6 +881,7 @@ static MACHINE_CONFIG_START( uballoon, suna16_state )
|
|||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||||
|
|
||||||
|
MCFG_MACHINE_START_OVERRIDE(suna16_state,uballoon)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(suna16_state,uballoon)
|
MCFG_MACHINE_RESET_OVERRIDE(suna16_state,uballoon)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -46,6 +46,7 @@ public:
|
|||||||
DECLARE_WRITE16_MEMBER(bestbest_flipscreen_w);
|
DECLARE_WRITE16_MEMBER(bestbest_flipscreen_w);
|
||||||
DECLARE_READ16_MEMBER(suna16_paletteram16_r);
|
DECLARE_READ16_MEMBER(suna16_paletteram16_r);
|
||||||
DECLARE_WRITE16_MEMBER(suna16_paletteram16_w);
|
DECLARE_WRITE16_MEMBER(suna16_paletteram16_w);
|
||||||
|
DECLARE_MACHINE_START(bssoccer);
|
||||||
DECLARE_WRITE8_MEMBER(bssoccer_DAC1_w);
|
DECLARE_WRITE8_MEMBER(bssoccer_DAC1_w);
|
||||||
DECLARE_WRITE8_MEMBER(bssoccer_DAC2_w);
|
DECLARE_WRITE8_MEMBER(bssoccer_DAC2_w);
|
||||||
DECLARE_WRITE8_MEMBER(bssoccer_DAC3_w);
|
DECLARE_WRITE8_MEMBER(bssoccer_DAC3_w);
|
||||||
@ -54,6 +55,7 @@ public:
|
|||||||
DECLARE_DRIVER_INIT(uballoon);
|
DECLARE_DRIVER_INIT(uballoon);
|
||||||
virtual void video_start();
|
virtual void video_start();
|
||||||
DECLARE_MACHINE_RESET(uballoon);
|
DECLARE_MACHINE_RESET(uballoon);
|
||||||
|
DECLARE_MACHINE_START(uballoon);
|
||||||
UINT32 screen_update_suna16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_suna16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
UINT32 screen_update_bestbest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_bestbest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(bssoccer_interrupt);
|
TIMER_DEVICE_CALLBACK_MEMBER(bssoccer_interrupt);
|
||||||
|
Loading…
Reference in New Issue
Block a user