even more fixes (mustache, altbeast2, mitchell) (nw)

This commit is contained in:
Olivier Galibert 2015-06-26 08:09:06 +02:00
parent ecb569279a
commit 06923f50b8
5 changed files with 29 additions and 18 deletions

View File

@ -120,8 +120,9 @@ WRITE8_MEMBER(mitchell_state::eeprom_serial_w)
WRITE8_MEMBER(mitchell_state::pang_bankswitch_w)
{
membank("bank1")->set_entry(data & 0x0f);
membank("bank1d")->set_entry(data & 0x0f);
m_bank1->set_entry(data & 0x0f);
if(m_bank1d)
m_bank1d->set_entry(data & 0x0f);
}
/*************************************
@ -310,7 +311,7 @@ static ADDRESS_MAP_START( spangbl_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(pang_paletteram_r, pang_paletteram_w) /* Banked palette RAM */
AM_RANGE(0xc800, 0xcfff) AM_READWRITE(pang_colorram_r, pang_colorram_w) AM_SHARE("colorram")/* Attribute RAM */
AM_RANGE(0xd000, 0xdfff) AM_READWRITE(pang_videoram_r, pang_videoram_w) AM_SHARE("videoram") /* Banked char / OBJ RAM */
AM_RANGE(0xe000, 0xffff) AM_RAM /* Work RAM */
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("ram") /* Work RAM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( spangbl_io_map, AS_IO, 8, mitchell_state )
@ -2099,9 +2100,9 @@ ROM_END
void mitchell_state::bootleg_decode()
{
membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
membank("bank0d")->set_base(memregion("maincpu")->base() + 0x50000);
membank("bank1d")->configure_entries(0, 16, memregion("maincpu")->base() + 0x60000, 0x4000);
m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
m_bank0d->set_base(memregion("maincpu")->base() + 0x50000);
m_bank1d->configure_entries(0, 16, memregion("maincpu")->base() + 0x60000, 0x4000);
}
@ -2111,9 +2112,9 @@ void mitchell_state::configure_banks(void (*decode)(UINT8 *src, UINT8 *dst, int
int size = memregion("maincpu")->bytes();
UINT8 *dst = auto_alloc_array(machine(), UINT8, size);
decode(src, dst, size);
membank("bank1")->configure_entries(0, 16, src + 0x10000, 0x4000);
membank("bank0d")->set_base(dst);
membank("bank1d")->configure_entries(0, 16, dst + 0x10000, 0x4000);
m_bank1->configure_entries(0, 16, src + 0x10000, 0x4000);
m_bank0d->set_base(dst);
m_bank1d->configure_entries(0, 16, dst + 0x10000, 0x4000);
}
@ -2184,7 +2185,7 @@ DRIVER_INIT_MEMBER(mitchell_state,qsangoku)
DRIVER_INIT_MEMBER(mitchell_state,mgakuen)
{
m_input_type = 1;
membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
m_maincpu->space(AS_IO).install_read_port(0x03, 0x03, "DSW0");
m_maincpu->space(AS_IO).install_read_port(0x04, 0x04, "DSW1");
}

View File

@ -43,8 +43,7 @@ YM2151:
static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, mustache_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
AM_RANGE(0xd000, 0xd000) AM_DEVWRITE("t5182", t5182_device, sound_irq_w)
AM_RANGE(0xd001, 0xd001) AM_DEVREAD("t5182", t5182_device, sharedram_semaphore_snd_r)
@ -62,6 +61,10 @@ static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, mustache_state )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, mustache_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM AM_SHARE("decrypted_opcodes")
ADDRESS_MAP_END
/******************************************************************************/
static INPUT_PORTS_START( mustache )
@ -172,6 +175,7 @@ static MACHINE_CONFIG_START( mustache, mustache_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(memmap)
MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mustache_state, scanline, "screen", 0, 1)
MCFG_DEVICE_ADD("t5182", T5182, 0)
@ -270,7 +274,7 @@ DRIVER_INIT_MEMBER(mustache_state,mustache)
for (i = 0; i < 2*G2; i++)
gfx2[i] = buf[BITSWAP24(i,23,22,21,20,19,18,17,16,15,12,11,10,9,8,7,6,5,4,13,14,3,2,1,0)];
seibu_sound_device::apply_decrypt(NULL, NULL, 0xc000);
seibu_sound_device::apply_decrypt(memregion("maincpu")->base(), m_decrypted_opcodes, 0xc000);
}

View File

@ -6930,7 +6930,7 @@ GAME( 1988, altbeast6, altbeast, system16b_i8751, altbeast, segas16b_state,
GAME( 1988, altbeast5, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Altered Beast (set 5, FD1094 317-0069)", 0 )
GAME( 1988, altbeast4, altbeast, system16b_mc8123, altbeast, segas16b_state,altbeas4_5521, ROT0, "Sega", "Altered Beast (set 4, MC-8123B 317-0066)", 0 )
GAME( 1988, altbeastj3, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Juuouki (set 3, Japan, FD1094 317-0068)", 0 )
GAME( 1988, altbeast2, altbeast, system16b, altbeast, segas16b_state,altbeas4_5521, ROT0, "Sega", "Altered Beast (set 2, MC-8123B 317-0066)", 0 )
GAME( 1988, altbeast2, altbeast, system16b_mc8123, altbeast, segas16b_state,altbeas4_5521, ROT0, "Sega", "Altered Beast (set 2, MC-8123B 317-0066)", 0 )
GAME( 1988, altbeastj1, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Juuouki (set 1, Japan, FD1094 317-0065)", 0 )
GAME( 1990, aurail, 0, system16b, aurail, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Aurail (set 3, US, unprotected)", 0 )

View File

@ -25,7 +25,10 @@ public:
m_eeprom(*this, "eeprom"),
m_msm(*this, "msm"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"){ }
m_palette(*this, "palette"),
m_bank1(*this, "bank1"),
m_bank0d(*this, "bank0d"),
m_bank1d(*this, "bank1d") { }
/* devices */
required_device<cpu_device> m_maincpu;
@ -40,6 +43,9 @@ public:
optional_device<msm5205_device> m_msm;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
required_memory_bank m_bank1;
optional_memory_bank m_bank0d;
optional_memory_bank m_bank1d;
/* video-related */
tilemap_t *m_bg_tilemap;

View File

@ -8,21 +8,21 @@ public:
mustache_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_cpu_decrypt(*this, "seibu_sound"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_videoram(*this, "videoram"),
m_spriteram(*this, "spriteram") { }
m_spriteram(*this, "spriteram"),
m_decrypted_opcodes(*this, "decrypted_opcodes") { }
required_device<cpu_device> m_maincpu;
required_device<seibu_sound_device> m_cpu_decrypt;
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_decrypted_opcodes;
tilemap_t *m_bg_tilemap;
int m_control_byte;