mirror of
https://github.com/holub/mame
synced 2025-05-21 05:08:54 +03:00
remove mcu from bootleg clone of lsasquad
This commit is contained in:
parent
b94bf9156b
commit
e5a5726f3e
@ -5,8 +5,6 @@ Land Sea Air Squad / Storming Party (c) 1986 Taito
|
|||||||
driver by Nicola Salmoria
|
driver by Nicola Salmoria
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- I think storming is supposed to be a bootleg without mcu, so I should verify
|
|
||||||
if it works with the mcu not hooked up.
|
|
||||||
- Wrong sprite/tilemap priority. Sprites can appear above and below the middle
|
- Wrong sprite/tilemap priority. Sprites can appear above and below the middle
|
||||||
layer, it's not clear how this is selected since there are no free attribute
|
layer, it's not clear how this is selected since there are no free attribute
|
||||||
bits.
|
bits.
|
||||||
@ -212,6 +210,27 @@ static ADDRESS_MAP_START( lsasquad_m68705_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START( storming_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
|
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||||
|
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
|
||||||
|
AM_RANGE(0xa000, 0xbfff) AM_RAM /* SRAM */
|
||||||
|
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_SIZE_MEMBER(lsasquad_state, videoram, videoram_size) /* SCREEN RAM */
|
||||||
|
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_BASE_MEMBER(lsasquad_state, scrollram) /* SCROLL RAM */
|
||||||
|
AM_RANGE(0xe400, 0xe5ff) AM_RAM AM_BASE_SIZE_MEMBER(lsasquad_state, spriteram, spriteram_size) /* OBJECT RAM */
|
||||||
|
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("DSWA")
|
||||||
|
AM_RANGE(0xe801, 0xe801) AM_READ_PORT("DSWB")
|
||||||
|
AM_RANGE(0xe802, 0xe802) AM_READ_PORT("DSWC")
|
||||||
|
AM_RANGE(0xe803, 0xe803) AM_READ_PORT("COINS")
|
||||||
|
AM_RANGE(0xe804, 0xe804) AM_READ_PORT("P1")
|
||||||
|
AM_RANGE(0xe805, 0xe805) AM_READ_PORT("P2")
|
||||||
|
AM_RANGE(0xe806, 0xe806) AM_READ_PORT("START")
|
||||||
|
AM_RANGE(0xe807, 0xe807) AM_READ_PORT("SERVICE")
|
||||||
|
AM_RANGE(0xea00, 0xea00) AM_WRITE(lsasquad_bankswitch_w)
|
||||||
|
AM_RANGE(0xec00, 0xec00) AM_READWRITE(lsasquad_sound_result_r,lsasquad_sound_command_w)
|
||||||
|
AM_RANGE(0xec01, 0xec01) AM_READ(lsasquad_sound_status_r)
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
static INPUT_PORTS_START( lsasquad )
|
static INPUT_PORTS_START( lsasquad )
|
||||||
PORT_START("DSWA")
|
PORT_START("DSWA")
|
||||||
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
|
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
|
||||||
@ -284,7 +303,7 @@ static INPUT_PORTS_START( lsasquad )
|
|||||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
|
||||||
PORT_START("MCU?")
|
PORT_START("MCU")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 68705 ready to receive cmd */
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 68705 ready to receive cmd */
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 0 = 68705 has sent result */
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 0 = 68705 has sent result */
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||||
@ -335,6 +354,23 @@ static INPUT_PORTS_START( lsasquad )
|
|||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( storming )
|
||||||
|
PORT_INCLUDE( lsasquad ) // no MCU
|
||||||
|
|
||||||
|
PORT_START("COINS")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
/* DAIKAIJU */
|
/* DAIKAIJU */
|
||||||
|
|
||||||
static ADDRESS_MAP_START( daikaiju_map, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( daikaiju_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
@ -631,6 +667,15 @@ static MACHINE_DRIVER_START( lsasquad )
|
|||||||
MDRV_SOUND_ROUTE(3, "mono", 0.63)
|
MDRV_SOUND_ROUTE(3, "mono", 0.63)
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
static MACHINE_DRIVER_START( storming )
|
||||||
|
MDRV_IMPORT_FROM( lsasquad )
|
||||||
|
|
||||||
|
MDRV_CPU_MODIFY("maincpu")
|
||||||
|
MDRV_CPU_PROGRAM_MAP(storming_map)
|
||||||
|
|
||||||
|
MDRV_DEVICE_REMOVE("mcu")
|
||||||
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( daikaiju )
|
static MACHINE_DRIVER_START( daikaiju )
|
||||||
|
|
||||||
/* driver data */
|
/* driver data */
|
||||||
@ -735,9 +780,6 @@ ROM_START( storming )
|
|||||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the second CPU */
|
||||||
ROM_LOAD( "a64-04.44", 0x0000, 0x8000, CRC(c238406a) SHA1(bb8f9d952c4568edb375328a1f9f6681a1bb5907) )
|
ROM_LOAD( "a64-04.44", 0x0000, 0x8000, CRC(c238406a) SHA1(bb8f9d952c4568edb375328a1f9f6681a1bb5907) )
|
||||||
|
|
||||||
ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */
|
|
||||||
ROM_LOAD( "a64-05.35", 0x0000, 0x0800, CRC(572677b9) SHA1(e098d5d842bcc81221ba56652a7019505d8be082) )
|
|
||||||
|
|
||||||
ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT )
|
ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT )
|
||||||
ROM_LOAD( "a64-10.27", 0x00000, 0x8000, CRC(bb4f1b37) SHA1(ce8dc962a3d04a624e36b57dc678e7ca7726ba1d) )
|
ROM_LOAD( "a64-10.27", 0x00000, 0x8000, CRC(bb4f1b37) SHA1(ce8dc962a3d04a624e36b57dc678e7ca7726ba1d) )
|
||||||
ROM_LOAD( "stpartyj.009", 0x08000, 0x8000, CRC(8ee2443b) SHA1(855d8189efcfc796daa6b36f86d2872cc48adfde) )
|
ROM_LOAD( "stpartyj.009", 0x08000, 0x8000, CRC(8ee2443b) SHA1(855d8189efcfc796daa6b36f86d2872cc48adfde) )
|
||||||
@ -793,20 +835,6 @@ ROM_START( daikaiju )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
/* coin inputs are inverted in storming */
|
GAME( 1986, lsasquad, 0, lsasquad, lsasquad, 0, ROT270, "Taito", "Land Sea Air Squad / Riku Kai Kuu Saizensen", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
||||||
static DRIVER_INIT( lsasquad )
|
GAME( 1986, storming, lsasquad, storming, storming, 0, ROT270, "bootleg", "Storming Party / Riku Kai Kuu Saizensen", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
||||||
{
|
|
||||||
lsasquad_state *state = (lsasquad_state *)machine->driver_data;
|
|
||||||
state->invertcoin = 0x00;
|
|
||||||
}
|
|
||||||
|
|
||||||
static DRIVER_INIT( storming )
|
|
||||||
{
|
|
||||||
lsasquad_state *state = (lsasquad_state *)machine->driver_data;
|
|
||||||
state->invertcoin = 0x0c;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
GAME( 1986, lsasquad, 0, lsasquad, lsasquad, lsasquad, ROT270, "Taito", "Land Sea Air Squad / Riku Kai Kuu Saizensen", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
|
||||||
GAME( 1986, storming, lsasquad, lsasquad, lsasquad, storming, ROT270, "Taito", "Storming Party / Riku Kai Kuu Saizensen", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
|
||||||
GAME( 1986, daikaiju, 0, daikaiju, daikaiju, 0, ROT270, "Taito", "Daikaiju no Gyakushu", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
GAME( 1986, daikaiju, 0, daikaiju, daikaiju, 0, ROT270, "Taito", "Daikaiju no Gyakushu", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
||||||
|
@ -14,7 +14,6 @@ public:
|
|||||||
size_t videoram_size;
|
size_t videoram_size;
|
||||||
|
|
||||||
/* misc */
|
/* misc */
|
||||||
int invertcoin;
|
|
||||||
int sound_pending;
|
int sound_pending;
|
||||||
int sound_nmi_enable, pending_nmi, sound_cmd, sound_result;
|
int sound_nmi_enable, pending_nmi, sound_cmd, sound_result;
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ READ8_HANDLER( lsasquad_mcu_r )
|
|||||||
READ8_HANDLER( lsasquad_mcu_status_r )
|
READ8_HANDLER( lsasquad_mcu_status_r )
|
||||||
{
|
{
|
||||||
lsasquad_state *state = (lsasquad_state *)space->machine->driver_data;
|
lsasquad_state *state = (lsasquad_state *)space->machine->driver_data;
|
||||||
int res = input_port_read(space->machine, "MCU?");
|
int res = input_port_read(space->machine, "MCU");
|
||||||
|
|
||||||
/* bit 0 = when 1, mcu is ready to receive data from main cpu */
|
/* bit 0 = when 1, mcu is ready to receive data from main cpu */
|
||||||
/* bit 1 = when 0, mcu has sent data to the main cpu */
|
/* bit 1 = when 0, mcu has sent data to the main cpu */
|
||||||
@ -209,13 +209,13 @@ READ8_HANDLER( lsasquad_mcu_status_r )
|
|||||||
if (!state->mcu_sent)
|
if (!state->mcu_sent)
|
||||||
res |= 0x02;
|
res |= 0x02;
|
||||||
|
|
||||||
return res ^ state->invertcoin;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_HANDLER( daikaiju_mcu_status_r )
|
READ8_HANDLER( daikaiju_mcu_status_r )
|
||||||
{
|
{
|
||||||
lsasquad_state *state = (lsasquad_state *)space->machine->driver_data;
|
lsasquad_state *state = (lsasquad_state *)space->machine->driver_data;
|
||||||
int res = input_port_read(space->machine, "MCU?");
|
int res = input_port_read(space->machine, "MCU");
|
||||||
|
|
||||||
/* bit 0 = when 1, mcu is ready to receive data from main cpu */
|
/* bit 0 = when 1, mcu is ready to receive data from main cpu */
|
||||||
/* bit 1 = when 0, mcu has sent data to the main cpu */
|
/* bit 1 = when 0, mcu has sent data to the main cpu */
|
||||||
|
Loading…
Reference in New Issue
Block a user