mirror of
https://github.com/holub/mame
synced 2025-04-25 17:56:43 +03:00
Added ROM bank to cshooter and a bunch of hacks, brought it back to the initial state
This commit is contained in:
parent
a5493cd183
commit
872d779209
@ -230,6 +230,7 @@ DONE? (check on real board)
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/m6805/m6805.h"
|
||||
#include "sound/2203intf.h"
|
||||
#include "sound/msm5205.h"
|
||||
#include "includes/stfight.h"
|
||||
@ -258,9 +259,11 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cshooter_cpu1_map, AS_PROGRAM, 8, stfight_state )
|
||||
/* TODO: Main to MCU ports reads at 0x0004 - 0x0007 (yeah, in ROM area!) */
|
||||
AM_RANGE(0x0007, 0x0007) AM_READ(cshooter_mcu_unk1_r)
|
||||
AM_RANGE(0xc203, 0xc203) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xc204, 0xc204) AM_READ_PORT("DSW0")
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(cshooter_text_w) AM_SHARE("tx_vram")
|
||||
AM_RANGE(0xd809, 0xd809) AM_WRITE(stfight_bank_w)
|
||||
AM_IMPORT_FROM(cpu1_map)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -273,6 +276,18 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, stfight_state )
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cshooter_mcu_map, AS_PROGRAM, 8, stfight_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
|
||||
// AM_RANGE(0x0000, 0x0000) AM_READWRITE(mexico86_68705_port_a_r,mexico86_68705_port_a_w)
|
||||
// AM_RANGE(0x0001, 0x0001) AM_READWRITE(mexico86_68705_port_b_r,mexico86_68705_port_b_w)
|
||||
// AM_RANGE(0x0002, 0x0002) AM_READ_PORT("IN0") /* COIN */
|
||||
// AM_RANGE(0x0004, 0x0004) AM_WRITE(mexico86_68705_ddr_a_w)
|
||||
// AM_RANGE(0x0005, 0x0005) AM_WRITE(mexico86_68705_ddr_b_w)
|
||||
// AM_RANGE(0x000a, 0x000a) AM_WRITENOP
|
||||
AM_RANGE(0x0010, 0x007f) AM_RAM
|
||||
AM_RANGE(0x0080, 0x07ff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( stfight )
|
||||
PORT_START("P1") /* PLAYER 1 */
|
||||
@ -552,6 +567,9 @@ static MACHINE_CONFIG_DERIVED( cshooter, stfight )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(cshooter_cpu1_map)
|
||||
|
||||
MCFG_CPU_ADD("mcu", M68705, 3000000) /* 3 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(cshooter_mcu_map)
|
||||
|
||||
MCFG_GFXDECODE(cshooter)
|
||||
MCFG_VIDEO_START_OVERRIDE(stfight_state,cshooter)
|
||||
MACHINE_CONFIG_END
|
||||
@ -974,4 +992,5 @@ GAME( 1986, empcityj, empcity, stfight, stfight, stfight_state, stfight, ROT0,
|
||||
GAME( 1986, empcityi, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Eurobed license)", "Empire City: 1931 (Italy)", 0 )
|
||||
GAME( 1986, stfight, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Tuning license)", "Street Fight (Germany)", 0 )
|
||||
GAME( 1986, stfighta, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu", "Street Fight (bootleg?)", 0 )
|
||||
GAME( 1987, cshooter, 0, cshooter,cshooter, stfight_state, cshooter,ROT270, "Seibu Kaihatsu (Taito license)", "Cross Shooter (not encrypted)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_NO_SOUND )
|
||||
/* Cross Shooter runs on a slightly modified version of Empire City, with M68705 MCU, a different text tilemap and gfx blobs (see also airraid.c) */
|
||||
GAME( 1987, cshooter, 0, cshooter,cshooter, stfight_state, cshooter,ROT270,"Seibu Kaihatsu (Taito license)", "Cross Shooter (not encrypted)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
|
||||
|
@ -56,6 +56,7 @@ public:
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tx_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_cshooter_tx_tile_info);
|
||||
DECLARE_READ8_MEMBER(cshooter_mcu_unk1_r);
|
||||
DECLARE_VIDEO_START(stfight);
|
||||
DECLARE_VIDEO_START(cshooter);
|
||||
virtual void machine_reset();
|
||||
|
@ -82,7 +82,10 @@ DRIVER_INIT_MEMBER(stfight_state,stfight)
|
||||
|
||||
DRIVER_INIT_MEMBER(stfight_state,cshooter)
|
||||
{
|
||||
// ...
|
||||
UINT8 *rom = memregion("maincpu")->base();
|
||||
|
||||
/* patch out initial coin mech check for now */
|
||||
rom[0x5068] = 0xc9; /* ret z -> ret*/
|
||||
}
|
||||
|
||||
void stfight_state::machine_reset()
|
||||
@ -107,7 +110,7 @@ WRITE8_MEMBER(stfight_state::stfight_bank_w)
|
||||
{
|
||||
UINT8 *ROM2 = memregion("maincpu")->base() + 0x10000;
|
||||
|
||||
membank("bank1")->set_base(&ROM2[data<<14] );
|
||||
membank("bank1")->set_base(&ROM2[0x4000*((data>>4)&3)] );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -184,6 +187,11 @@ WRITE8_MEMBER(stfight_state::stfight_coin_w)
|
||||
m_coin_mech_query = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(stfight_state::cshooter_mcu_unk1_r)
|
||||
{
|
||||
return 0xff; // hack so it boots
|
||||
}
|
||||
|
||||
/*
|
||||
* Machine hardware for MSM5205 ADPCM sound control
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user