mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
Memory maps merges for the following drivers:
* groundfx.c (also fixed 00487: groundfx: It has wrong default NVRAM settings, especially about the lap number (1) and the coin/credit settings (1/2).) * lastduel.c * macrossp.c * madmotor.c (also cleaned-up some video variables in it) * mcatadv.c (also reduced a 1.0 clipping out volume setting) * moo.c Converted ssingles.c case of AM_READ(SMH_ROM)
This commit is contained in:
parent
2a0bcb26f3
commit
cc551d8d90
@ -386,7 +386,7 @@ static WRITE8_HANDLER( cntsteer_background_w )
|
||||
|
||||
static WRITE8_HANDLER( gekitsui_sub_irq_ack )
|
||||
{
|
||||
cputag_set_input_line(space->machine, "sub", M6809_IRQ_LINE, CLEAR_LINE);
|
||||
cputag_set_input_line(space->machine, "subcpu", M6809_IRQ_LINE, CLEAR_LINE);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( cntsteer_sound_w )
|
||||
@ -399,23 +399,23 @@ static WRITE8_HANDLER( zerotrgt_ctrl_w )
|
||||
{
|
||||
/*TODO: check this.*/
|
||||
logerror("CTRL: %04x: %04x: %04x\n",cpu_get_pc(space->cpu),offset,data);
|
||||
// if (offset==0) cputag_set_input_line(space->machine, "audiocpu", INPUT_LINE_RESET, ASSERT_LINE);
|
||||
// if (offset==0) cputag_set_input_line(space->machine, "subcpu", INPUT_LINE_RESET, ASSERT_LINE);
|
||||
|
||||
// Wrong - bits 0 & 1 used on this
|
||||
if (offset==1) cputag_set_input_line(space->machine, "audiocpu", M6809_IRQ_LINE, ASSERT_LINE);
|
||||
// if (offset==2) cputag_set_input_line(space->machine, "audiocpu", INPUT_LINE_RESET, CLEAR_LINE);
|
||||
if (offset==1) cputag_set_input_line(space->machine, "subcpu", M6809_IRQ_LINE, ASSERT_LINE);
|
||||
// if (offset==2) cputag_set_input_line(space->machine, "subcpu", INPUT_LINE_RESET, CLEAR_LINE);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( cntsteer_sub_irq_w )
|
||||
{
|
||||
cputag_set_input_line(space->machine, "audiocpu", M6809_IRQ_LINE, ASSERT_LINE);
|
||||
cputag_set_input_line(space->machine, "subcpu", M6809_IRQ_LINE, ASSERT_LINE);
|
||||
// printf("%02x IRQ\n",data);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( cntsteer_sub_nmi_w )
|
||||
{
|
||||
// if(data)
|
||||
// cputag_set_input_line(space->machine, "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
// cputag_set_input_line(space->machine, "subcpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
// popmessage("%02x",data);
|
||||
}
|
||||
|
||||
@ -588,7 +588,7 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_CHANGED( coin_inserted )
|
||||
{
|
||||
cputag_set_input_line(field->port->machine, "audiocpu", INPUT_LINE_NMI, newval ? CLEAR_LINE : PULSE_LINE);
|
||||
cputag_set_input_line(field->port->machine, "subcpu", INPUT_LINE_NMI, newval ? CLEAR_LINE : PULSE_LINE);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( cntsteer )
|
||||
@ -738,7 +738,7 @@ static MACHINE_DRIVER_START( cntsteer )
|
||||
MDRV_CPU_PROGRAM_MAP(cntsteer_cpu1_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) /* ? */
|
||||
|
||||
MDRV_CPU_ADD("sub", M6809, 2000000) /* ? */
|
||||
MDRV_CPU_ADD("subcpu", M6809, 2000000) /* ? */
|
||||
MDRV_CPU_PROGRAM_MAP(cntsteer_cpu2_map,0)
|
||||
// MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) /* ? */
|
||||
|
||||
@ -781,7 +781,7 @@ static MACHINE_DRIVER_START( zerotrgt )
|
||||
MDRV_CPU_PROGRAM_MAP(gekitsui_cpu1_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) /* ? */
|
||||
|
||||
MDRV_CPU_ADD("sub", M6809, 2000000) /* ? */
|
||||
MDRV_CPU_ADD("subcpu", M6809, 2000000) /* ? */
|
||||
MDRV_CPU_PROGRAM_MAP(gekitsui_cpu2_map,0)
|
||||
// MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) /* ? */
|
||||
|
||||
@ -825,7 +825,7 @@ ROM_START( cntsteer )
|
||||
ROM_LOAD( "by02", 0x8000, 0x4000, CRC(b6fdd7fd) SHA1(e54cc31628966f747f9ccbf9db1017ed1eee0d5d) )
|
||||
ROM_LOAD( "by01", 0xc000, 0x4000, CRC(932423a5) SHA1(0d8164359a79ae554328dfb4d729a8d07de7ee75) )
|
||||
|
||||
ROM_REGION( 0x10000, "sub", 0 )
|
||||
ROM_REGION( 0x10000, "subcpu", 0 )
|
||||
ROM_LOAD( "by12", 0x4000, 0x4000, CRC(278e7fed) SHA1(5def4c8919a507c64045c57de2da65e1d39e1185) )
|
||||
ROM_LOAD( "by11", 0x8000, 0x4000, CRC(00624e34) SHA1(27bd472e9f2feef4a2c4753d8b0da26ff30d930d) )
|
||||
ROM_LOAD( "by10", 0xc000, 0x4000, CRC(9227a9ce) SHA1(8c86f22f90a3a8853562469037ffa06693045f4c) )
|
||||
@ -867,7 +867,7 @@ ROM_START( zerotrgt )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "ct01-s.4c", 0x8000, 0x8000, CRC(b35a16cb) SHA1(49581324c3e3d5219f0512d08a40161185368b10) )
|
||||
|
||||
ROM_REGION( 0x10000, "sub", 0 )
|
||||
ROM_REGION( 0x10000, "subcpu", 0 )
|
||||
ROM_LOAD( "ct08.16a", 0x4000, 0x4000, CRC(7e8db408) SHA1(2ae407d15645753a2a0d691c9f1cf1eb383d3e8a) )
|
||||
ROM_LOAD( "cty07.14a", 0x8000, 0x4000, CRC(119b6211) SHA1(2042f06387d34fad6b63bcb8ac6f9b06377f634d) )
|
||||
ROM_LOAD( "ct06.13a", 0xc000, 0x4000, CRC(bce5adad) SHA1(86c4eef0d68679a24bab6460b49640a498f32ecd) )
|
||||
@ -910,7 +910,7 @@ ROM_START( gekitsui )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "ct01", 0x8000, 0x8000, CRC(d3d82d8d) SHA1(c175c626d4cb89a2d82740c04892092db6faf616) )
|
||||
|
||||
ROM_REGION( 0x10000, "sub", 0 )
|
||||
ROM_REGION( 0x10000, "subcpu", 0 )
|
||||
ROM_LOAD( "ct08.16a", 0x4000, 0x4000, CRC(7e8db408) SHA1(2ae407d15645753a2a0d691c9f1cf1eb383d3e8a) )
|
||||
ROM_LOAD( "cty07.14a", 0x8000, 0x4000, CRC(119b6211) SHA1(2042f06387d34fad6b63bcb8ac6f9b06377f634d) )
|
||||
ROM_LOAD( "ct06.13a", 0xc000, 0x4000, CRC(bce5adad) SHA1(86c4eef0d68679a24bab6460b49640a498f32ecd) )
|
||||
@ -974,7 +974,7 @@ static void zerotrgt_rearrange_gfx(running_machine *machine, int romsize, int ro
|
||||
#if 0
|
||||
static void init_cntsteer(void)
|
||||
{
|
||||
UINT8 *RAM = memory_region(machine, "sub");
|
||||
UINT8 *RAM = memory_region(machine, "subcpu");
|
||||
|
||||
RAM[0xc2cf]=0x43; /* Patch out Cpu 1 ram test - it never ends..?! */
|
||||
RAM[0xc2d0]=0x43;
|
||||
|
@ -42,7 +42,6 @@ TS 2006.12.22:
|
||||
***************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
#include "deprecat.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "sound/2203intf.h"
|
||||
@ -62,7 +61,6 @@ static int ret;
|
||||
extern int splash_bitmap_type;
|
||||
extern int splash_sprite_attr2_shift;
|
||||
|
||||
READ16_HANDLER( splash_vram_r );
|
||||
WRITE16_HANDLER( splash_vram_w );
|
||||
VIDEO_START( splash );
|
||||
VIDEO_UPDATE( splash );
|
||||
@ -87,21 +85,6 @@ static WRITE16_HANDLER( roldf_sh_irqtrigger_w )
|
||||
cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(40));
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( splash_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_READ(SMH_ROM) /* ROM */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_READ(SMH_RAM) /* Pixel Layer */
|
||||
AM_RANGE(0x840000, 0x840001) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x840006, 0x840007) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_READ(splash_vram_r) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_READ(SMH_RAM) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_READ(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_READ(SMH_RAM) /* Palette */
|
||||
AM_RANGE(0x900000, 0x900fff) AM_READ(SMH_RAM) /* Sprite RAM */
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_READ(SMH_RAM) /* Work RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static WRITE16_HANDLER( splash_coin_w )
|
||||
{
|
||||
if (ACCESSING_BITS_8_15){
|
||||
@ -118,25 +101,21 @@ static WRITE16_HANDLER( splash_coin_w )
|
||||
}
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( splash_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_WRITE(SMH_ROM) /* ROM */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_WRITE(SMH_RAM) AM_BASE(&splash_pixelram) /* Pixel Layer */
|
||||
AM_RANGE(0x84000e, 0x84000f) AM_WRITE(splash_sh_irqtrigger_w) /* Sound command */
|
||||
AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_WRITE(splash_vram_w) AM_BASE(&splash_videoram) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_WRITE(SMH_RAM) AM_BASE(&splash_vregs) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_WRITE(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)/* Palette is xRRRRxGGGGxBBBBx */
|
||||
AM_RANGE(0x900000, 0x900fff) AM_WRITE(SMH_RAM) AM_BASE(&splash_spriteram) /* Sprite RAM */
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SMH_RAM) /* Work RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( splash_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xd7ff) AM_READ(SMH_ROM) /* ROM */
|
||||
AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) /* Sound latch */
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVREAD("ym", ym3812_r) /* YM3812 */
|
||||
AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) /* RAM */
|
||||
static ADDRESS_MAP_START( splash_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_ROM /* ROM */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE(&splash_pixelram) /* Pixel Layer */
|
||||
AM_RANGE(0x840000, 0x840001) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x840006, 0x840007) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x84000e, 0x84000f) AM_WRITE(splash_sh_irqtrigger_w) /* Sound command */
|
||||
AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_BASE(&splash_videoram) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(&splash_vregs) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)/* Palette is xRRRRxGGGGxBBBBx */
|
||||
AM_RANGE(0x900000, 0x900fff) AM_RAM AM_BASE(&splash_spriteram) /* Sprite RAM */
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static WRITE8_HANDLER( splash_adpcm_data_w ){
|
||||
@ -149,13 +128,13 @@ static void splash_msm5205_int(const device_config *device)
|
||||
adpcm_data = (adpcm_data << 4) & 0xf0;
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( splash_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xd7ff) AM_WRITE(SMH_ROM) /* ROM */
|
||||
AM_RANGE(0xd800, 0xd800) AM_WRITE(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
|
||||
// AM_RANGE(0xe000, 0xe000) AM_WRITENOP /* ??? */
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVWRITE("ym", ym3812_w) /* YM3812 */
|
||||
AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) /* RAM */
|
||||
static ADDRESS_MAP_START( splash_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xd7ff) AM_ROM /* ROM */
|
||||
AM_RANGE(0xd800, 0xd800) AM_WRITE(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
|
||||
// AM_RANGE(0xe000, 0xe000) AM_WRITENOP /* ??? */
|
||||
AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) /* Sound latch */
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ym", ym3812_r,ym3812_w) /* YM3812 */
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM /* RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* Return of Lady Frog Maps */
|
||||
@ -168,84 +147,59 @@ static READ16_HANDLER( roldfrog_bombs_r )
|
||||
return ret;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( roldfrog_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_READ(SMH_ROM) /* ROM */
|
||||
AM_RANGE(0x400000, 0x407fff) AM_ROM AM_BASE(&roldfrog_protdata) /* Protection Data */
|
||||
AM_RANGE(0x408000, 0x4087ff) AM_READ(SMH_RAM) /* Extra Ram */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_READ(SMH_RAM) /* Pixel Layer */
|
||||
static ADDRESS_MAP_START( roldfrog_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_ROM /* ROM */
|
||||
AM_RANGE(0x400000, 0x407fff) AM_ROM AM_BASE(&roldfrog_protdata) /* Protection Data */
|
||||
AM_RANGE(0x408000, 0x4087ff) AM_RAM /* Extra Ram */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE(&splash_pixelram) /* Pixel Layer */
|
||||
AM_RANGE(0x840000, 0x840001) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x840006, 0x840007) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_READ(splash_vram_r) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_READ(SMH_RAM) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_READ(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_READ(SMH_RAM) /* Palette */
|
||||
AM_RANGE(0x84000e, 0x84000f) AM_WRITE(roldf_sh_irqtrigger_w) /* Sound command */
|
||||
AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_BASE(&splash_videoram) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(&splash_vregs) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)/* Palette is xRRRRxGGGGxBBBBx */
|
||||
AM_RANGE(0xa00000, 0xa00001) AM_READ(roldfrog_bombs_r)
|
||||
AM_RANGE(0xd00000, 0xd00fff) AM_READ(SMH_RAM) /* Sprite RAM */
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_READ(SMH_RAM) /* Work RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( roldfrog_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_WRITE(SMH_ROM) /* ROM */
|
||||
AM_RANGE(0x408000, 0x4087ff) AM_WRITE(SMH_RAM) /* Extra Ram */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_WRITE(SMH_RAM) AM_BASE(&splash_pixelram) /* Pixel Layer */
|
||||
AM_RANGE(0x84000e, 0x84000f) AM_WRITE(roldf_sh_irqtrigger_w) /* Sound command */
|
||||
AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_WRITE(splash_vram_w) AM_BASE(&splash_videoram) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_WRITE(SMH_RAM) AM_BASE(&splash_vregs) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_WRITE(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)/* Palette is xRRRRxGGGGxBBBBx */
|
||||
AM_RANGE(0xd00000, 0xd00fff) AM_WRITE(SMH_RAM) AM_BASE(&splash_spriteram) /* Sprite RAM */
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_RAM) AM_BASE(&roldfrog_bitmap_mode) /* Bitmap Mode? */
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0xd00000, 0xd00fff) AM_RAM AM_BASE(&splash_spriteram) /* Sprite RAM */
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITEONLY AM_BASE(&roldfrog_bitmap_mode) /* Bitmap Mode? */
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( roldf_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
static ADDRESS_MAP_START( roldfrog_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x6fff) AM_ROM
|
||||
AM_RANGE(0x7000, 0x7fff) AM_RAM
|
||||
AM_RANGE(0x8000, 0xffff) AM_REGION("audiocpu", 0x8000) /* wrong, probably banked somehow */
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("audiocpu", 0x8000) /* wrong, probably banked somehow */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( roldf_sound_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
static ADDRESS_MAP_START( roldfrog_sound_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x12, 0x13) AM_DEVWRITE("ym", ym2203_w)
|
||||
AM_RANGE(0x40, 0x40) AM_NOP /* NMI ack */
|
||||
AM_RANGE(0x70, 0x70) AM_READ(soundlatch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( funystrp_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) /* ROM */
|
||||
AM_RANGE(0x100000, 0x100fff) AM_READ(SMH_ROM) /* protection? RAM */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_READ(SMH_RAM) /* Pixel Layer */
|
||||
static ADDRESS_MAP_START( funystrp_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_ROM /* ROM */
|
||||
AM_RANGE(0x100000, 0x100fff) AM_RAM /* protection? RAM */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE(&splash_pixelram) /* Pixel Layer */
|
||||
// AM_RANGE(0x84000e, 0x84000f) AM_WRITE(splash_sh_irqtrigger_w) /* Sound command */
|
||||
AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
|
||||
AM_RANGE(0x840000, 0x840001) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x840006, 0x840007) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_READ(splash_vram_r) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_READ(SMH_RAM) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_READ(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_READ(SMH_RAM) /* Palette */
|
||||
AM_RANGE(0xD00000, 0xD01fff) AM_READ(SMH_RAM) /* Sprite RAM */
|
||||
AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_BASE(&splash_videoram) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(&splash_vregs) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)/* Palette is xRRRRxGGGGxBBBBx */
|
||||
AM_RANGE(0xd00000, 0xd01fff) AM_RAM AM_BASE(&splash_spriteram) /* Sprite RAM */
|
||||
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* Work RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( funystrp_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) /* ROM */
|
||||
AM_RANGE(0x100000, 0x100fff) AM_WRITE(SMH_RAM) /* protection? RAM */
|
||||
AM_RANGE(0x800000, 0x83ffff) AM_WRITE(SMH_RAM) AM_BASE(&splash_pixelram) /* Pixel Layer */
|
||||
// AM_RANGE(0x84000e, 0x84000f) AM_WRITE(splash_sh_irqtrigger_w) /* Sound command */
|
||||
AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
|
||||
AM_RANGE(0x880000, 0x8817ff) AM_WRITE(splash_vram_w) AM_BASE(&splash_videoram) /* Video RAM */
|
||||
AM_RANGE(0x881800, 0x881803) AM_WRITE(SMH_RAM) AM_BASE(&splash_vregs) /* Scroll registers */
|
||||
AM_RANGE(0x881804, 0x881fff) AM_WRITE(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x8c0000, 0x8c0fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)/* Palette is xRRRRxGGGGxBBBBx */
|
||||
AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(SMH_RAM) AM_BASE(&splash_spriteram) /* Sprite RAM */
|
||||
AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) /* Work RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( splash )
|
||||
PORT_START("DSW1")
|
||||
@ -436,12 +390,12 @@ static MACHINE_DRIVER_START( splash )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz (24/2) */
|
||||
MDRV_CPU_PROGRAM_MAP(splash_readmem,splash_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(splash_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80,30000000/8)
|
||||
MDRV_CPU_PROGRAM_MAP(splash_readmem_sound,splash_writemem_sound)
|
||||
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,64) /* needed for the msm5205 to play the samples */
|
||||
MDRV_CPU_PROGRAM_MAP(splash_sound_map,0)
|
||||
MDRV_CPU_PERIODIC_INT(nmi_line_pulse,60*64) /* needed for the msm5205 to play the samples */
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -449,7 +403,7 @@ static MACHINE_DRIVER_START( splash )
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(64*8, 64*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(2*8, 49*8-1, 2*8, 32*8-1)
|
||||
MDRV_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1)
|
||||
|
||||
MDRV_GFXDECODE(splash)
|
||||
MDRV_PALETTE_LENGTH(2048)
|
||||
@ -489,13 +443,13 @@ static MACHINE_DRIVER_START( roldfrog )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz - verified */
|
||||
MDRV_CPU_PROGRAM_MAP(roldfrog_readmem,roldfrog_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(roldfrog_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80,3000000) /* 3 MHz - verified */
|
||||
MDRV_CPU_PROGRAM_MAP(roldf_sound_map,0)
|
||||
MDRV_CPU_IO_MAP(roldf_sound_io_map,0)
|
||||
// MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,64) /* needed for the msm5205 to play the samples */
|
||||
MDRV_CPU_PROGRAM_MAP(roldfrog_sound_map,0)
|
||||
MDRV_CPU_IO_MAP(roldfrog_sound_io_map,0)
|
||||
// MDRV_CPU_PERIODIC_INT(nmi_line_pulse,60*64) /* needed for the msm5205 to play the samples */
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -503,7 +457,7 @@ static MACHINE_DRIVER_START( roldfrog )
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(64*8, 64*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(2*8, 49*8-1, 2*8, 32*8-1)
|
||||
MDRV_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1)
|
||||
// MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1)
|
||||
|
||||
MDRV_GFXDECODE(splash)
|
||||
@ -529,12 +483,12 @@ static MACHINE_DRIVER_START( funystrp )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz (24/2) */
|
||||
MDRV_CPU_PROGRAM_MAP(funystrp_readmem,funystrp_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(funystrp_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
|
||||
|
||||
// MDRV_CPU_ADD("audiocpu", Z80,30000000/8)
|
||||
// MDRV_CPU_PROGRAM_MAP(splash_readmem_sound,splash_writemem_sound)
|
||||
// MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,64) /* needed for the msm5205 to play the samples */
|
||||
// MDRV_CPU_PERIODIC_INT(nmi_line_pulse,60*64) /* needed for the msm5205 to play the samples */
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -542,7 +496,7 @@ static MACHINE_DRIVER_START( funystrp )
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(64*8, 64*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 47*8-1, 2*8, 32*8-1)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 32*8-1)
|
||||
|
||||
MDRV_GFXDECODE(splash)
|
||||
MDRV_PALETTE_LENGTH(2048)
|
||||
|
@ -70,23 +70,14 @@ WRITE8_HANDLER( sprcros2_bgscrolly_w );
|
||||
PALETTE_INIT( sprcros2 );
|
||||
VIDEO_START( sprcros2 );
|
||||
VIDEO_UPDATE( sprcros2 );
|
||||
static UINT8 *sprcros2_sharedram;
|
||||
UINT8 sprcros2_m_port7 = 0;
|
||||
static UINT8 sprcros2_s_port3 = 0;
|
||||
|
||||
static READ8_HANDLER( sprcros2_sharedram_r )
|
||||
{
|
||||
return sprcros2_sharedram[offset];
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( sprcros2_sharedram_w )
|
||||
{
|
||||
sprcros2_sharedram[offset]=data;
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( sprcros2_m_port7_w )
|
||||
{
|
||||
UINT8 *RAM = memory_region(space->machine, "maincpu");
|
||||
UINT8 *RAM = memory_region(space->machine, "master");
|
||||
|
||||
//76543210
|
||||
//x------- unused
|
||||
@ -107,7 +98,7 @@ static WRITE8_HANDLER( sprcros2_m_port7_w )
|
||||
|
||||
static WRITE8_HANDLER( sprcros2_s_port3_w )
|
||||
{
|
||||
UINT8 *RAM = memory_region(space->machine, "audiocpu");
|
||||
UINT8 *RAM = memory_region(space->machine, "slave");
|
||||
|
||||
//76543210
|
||||
//xxxx---- unused
|
||||
@ -121,25 +112,18 @@ static WRITE8_HANDLER( sprcros2_s_port3_w )
|
||||
sprcros2_s_port3 = data;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( sprcros2_m_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_BANK(1))
|
||||
AM_RANGE(0xe000, 0xf7ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) //shared with slave cpu
|
||||
static ADDRESS_MAP_START( sprcros2_master_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK(1)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(sprcros2_fgvideoram_w) AM_BASE(&sprcros2_fgvideoram)
|
||||
AM_RANGE(0xe800, 0xe817) AM_RAM //always zero
|
||||
AM_RANGE(0xe818, 0xe83f) AM_RAM AM_BASE(&sprcros2_spriteram) AM_SIZE(&sprcros2_spriteram_size)
|
||||
AM_RANGE(0xe840, 0xefff) AM_RAM //always zero
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE(1) //shared with slave cpu
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sprcros2_m_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_BANK(1))
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_WRITE(sprcros2_fgvideoram_w) AM_BASE(&sprcros2_fgvideoram)
|
||||
AM_RANGE(0xe800, 0xe817) AM_WRITE(SMH_RAM) //always zero
|
||||
AM_RANGE(0xe818, 0xe83f) AM_WRITE(SMH_RAM) AM_BASE(&sprcros2_spriteram) AM_SIZE(&sprcros2_spriteram_size)
|
||||
AM_RANGE(0xe840, 0xefff) AM_WRITE(SMH_RAM) //always zero
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) AM_BASE(&sprcros2_sharedram) //shared with slave cpu
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
|
||||
static ADDRESS_MAP_START( sprcros2_master_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_DEVWRITE("sn1", sn76496_w)
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2") AM_DEVWRITE("sn2", sn76496_w)
|
||||
@ -149,25 +133,16 @@ static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0x07, 0x07) AM_WRITE(sprcros2_m_port7_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sprcros2_s_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_BANK(2))
|
||||
AM_RANGE(0xe000, 0xf7ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xf800, 0xffff) AM_READ(sprcros2_sharedram_r)
|
||||
static ADDRESS_MAP_START( sprcros2_slave_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK(2)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(sprcros2_bgvideoram_w) AM_BASE(&sprcros2_bgvideoram)
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM //always zero
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE(1)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sprcros2_s_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_BANK(2))
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_WRITE(sprcros2_bgvideoram_w) AM_BASE(&sprcros2_bgvideoram)
|
||||
AM_RANGE(0xe800, 0xefff) AM_WRITE(SMH_RAM) //always zero
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0xf800, 0xffff) AM_WRITE(sprcros2_sharedram_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( audio_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
static ADDRESS_MAP_START( sprcros2_slave_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_WRITE(sprcros2_bgscrollx_w)
|
||||
AM_RANGE(0x01, 0x01) AM_WRITE(sprcros2_bgscrolly_w)
|
||||
@ -295,14 +270,14 @@ static MACHINE_START( sprcros2 )
|
||||
static MACHINE_DRIVER_START( sprcros2 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", Z80,10000000/2)
|
||||
MDRV_CPU_PROGRAM_MAP(sprcros2_m_readmem,sprcros2_m_writemem)
|
||||
MDRV_CPU_IO_MAP(io_map,0)
|
||||
MDRV_CPU_ADD("master", Z80,10000000/2)
|
||||
MDRV_CPU_PROGRAM_MAP(sprcros2_master_map,0)
|
||||
MDRV_CPU_IO_MAP(sprcros2_master_io_map,0)
|
||||
MDRV_CPU_VBLANK_INT_HACK(sprcros2_m_interrupt,2) //1 nmi + 1 irq
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80,10000000/2)
|
||||
MDRV_CPU_PROGRAM_MAP(sprcros2_s_readmem,sprcros2_s_writemem)
|
||||
MDRV_CPU_IO_MAP(audio_io_map,0)
|
||||
MDRV_CPU_ADD("slave", Z80,10000000/2)
|
||||
MDRV_CPU_PROGRAM_MAP(sprcros2_slave_map,0)
|
||||
MDRV_CPU_IO_MAP(sprcros2_slave_io_map,0)
|
||||
MDRV_CPU_VBLANK_INT_HACK(sprcros2_s_interrupt,2) //2 nmis
|
||||
|
||||
MDRV_MACHINE_START(sprcros2)
|
||||
@ -336,14 +311,14 @@ static MACHINE_DRIVER_START( sprcros2 )
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
ROM_START( sprcros2 )
|
||||
ROM_REGION( 0x14000, "maincpu", 0 )
|
||||
ROM_REGION( 0x14000, "master", 0 )
|
||||
ROM_LOAD( "scm-03.10g", 0x00000, 0x4000, CRC(b9757908) SHA1(d59cb2aac1b6268fc766306850f5711d4a12d897) )
|
||||
ROM_LOAD( "scm-02.10j", 0x04000, 0x4000, CRC(849c5c87) SHA1(0e02c4990e371d6a290efa53301818e769648945) )
|
||||
ROM_LOAD( "scm-01.10k", 0x08000, 0x4000, CRC(385a62de) SHA1(847bf9d97ab3fa8949d9198e4e509948a940d6aa) )
|
||||
|
||||
ROM_LOAD( "scm-00.10l", 0x10000, 0x4000, CRC(13fa3684) SHA1(611b7a237e394f285dcc5beb027dacdbdd58a7a0) ) //banked into c000-dfff
|
||||
|
||||
ROM_REGION( 0x14000, "audiocpu", 0 )
|
||||
ROM_REGION( 0x14000, "slave", 0 )
|
||||
ROM_LOAD( "scs-30.5f", 0x00000, 0x4000, CRC(c0a40e41) SHA1(e74131b353855749258dffa45091c825ccdbf05a) )
|
||||
ROM_LOAD( "scs-29.5h", 0x04000, 0x4000, CRC(83d49fa5) SHA1(7112110df2f382bbc0e651adcec975054a485b9b) )
|
||||
ROM_LOAD( "scs-28.5j", 0x08000, 0x4000, CRC(480d351f) SHA1(d1b86f441ae0e58b30e0f089ab25de219d5f30e3) )
|
||||
@ -373,14 +348,14 @@ ROM_END
|
||||
|
||||
/* this is probably an old revision */
|
||||
ROM_START( sprcrs2a )
|
||||
ROM_REGION( 0x14000, "maincpu", 0 )
|
||||
ROM_REGION( 0x14000, "master", 0 )
|
||||
ROM_LOAD( "15.bin", 0x00000, 0x4000, CRC(b9d02558) SHA1(775404c6c7648d9dab02b496541739ea700cd481) )
|
||||
ROM_LOAD( "scm-02.10j", 0x04000, 0x4000, CRC(849c5c87) SHA1(0e02c4990e371d6a290efa53301818e769648945) )
|
||||
ROM_LOAD( "scm-01.10k", 0x08000, 0x4000, CRC(385a62de) SHA1(847bf9d97ab3fa8949d9198e4e509948a940d6aa) )
|
||||
|
||||
ROM_LOAD( "scm-00.10l", 0x10000, 0x4000, CRC(13fa3684) SHA1(611b7a237e394f285dcc5beb027dacdbdd58a7a0) ) //banked into c000-dfff
|
||||
|
||||
ROM_REGION( 0x14000, "audiocpu", 0 )
|
||||
ROM_REGION( 0x14000, "slave", 0 )
|
||||
ROM_LOAD( "scs-30.5f", 0x00000, 0x4000, CRC(c0a40e41) SHA1(e74131b353855749258dffa45091c825ccdbf05a) )
|
||||
ROM_LOAD( "scs-29.5h", 0x04000, 0x4000, CRC(83d49fa5) SHA1(7112110df2f382bbc0e651adcec975054a485b9b) )
|
||||
ROM_LOAD( "scs-28.5j", 0x08000, 0x4000, CRC(480d351f) SHA1(d1b86f441ae0e58b30e0f089ab25de219d5f30e3) )
|
||||
|
@ -246,9 +246,9 @@ static WRITE8_HANDLER( sprint2_lamp2_w )
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x03ff) AM_READ(sprint2_wram_r)
|
||||
AM_RANGE(0x0400, 0x07ff) AM_READ(SMH_RAM)
|
||||
static ADDRESS_MAP_START( sprint2_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x03ff) AM_READWRITE(sprint2_wram_r,sprint2_wram_w)
|
||||
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(sprint2_video_ram_w) AM_BASE(&sprint2_video_ram)
|
||||
AM_RANGE(0x0818, 0x081f) AM_READ(sprint2_input_A_r)
|
||||
AM_RANGE(0x0828, 0x082f) AM_READ(sprint2_input_B_r)
|
||||
AM_RANGE(0x0830, 0x0837) AM_READ(sprint2_dip_r)
|
||||
@ -256,17 +256,6 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0880, 0x08bf) AM_READ(sprint2_steering1_r)
|
||||
AM_RANGE(0x08c0, 0x08ff) AM_READ(sprint2_steering2_r)
|
||||
AM_RANGE(0x0c00, 0x0fff) AM_READ(sprint2_sync_r)
|
||||
AM_RANGE(0x1000, 0x13ff) AM_READ(sprint2_collision1_r)
|
||||
AM_RANGE(0x1400, 0x17ff) AM_READ(sprint2_collision2_r)
|
||||
AM_RANGE(0x1800, 0x1800) AM_READNOP /* debugger ROM location? */
|
||||
AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x03ff) AM_WRITE(sprint2_wram_w)
|
||||
AM_RANGE(0x0400, 0x07ff) AM_WRITE(sprint2_video_ram_w) AM_BASE(&sprint2_video_ram)
|
||||
AM_RANGE(0x0c00, 0x0c0f) AM_DEVWRITE("discrete", sprint2_attract_w)
|
||||
AM_RANGE(0x0c10, 0x0c1f) AM_DEVWRITE("discrete", sprint2_skid1_w)
|
||||
AM_RANGE(0x0c20, 0x0c2f) AM_DEVWRITE("discrete", sprint2_skid2_w)
|
||||
@ -279,8 +268,11 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0e00, 0x0e7f) AM_WRITE(sprint2_steering_reset1_w)
|
||||
AM_RANGE(0x0e80, 0x0eff) AM_WRITE(sprint2_steering_reset2_w)
|
||||
AM_RANGE(0x0f00, 0x0f7f) AM_DEVWRITE("discrete", sprint2_noise_reset_w)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x1000, 0x13ff) AM_READ(sprint2_collision1_r)
|
||||
AM_RANGE(0x1400, 0x17ff) AM_READ(sprint2_collision2_r)
|
||||
AM_RANGE(0x1800, 0x1800) AM_READNOP /* debugger ROM location? */
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0xe000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -504,7 +496,7 @@ static MACHINE_DRIVER_START( sprint2 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M6502, 12096000 / 16)
|
||||
MDRV_CPU_PROGRAM_MAP(readmem, writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(sprint2_map, 0)
|
||||
MDRV_CPU_VBLANK_INT("screen", sprint2)
|
||||
MDRV_WATCHDOG_VBLANK_INIT(8)
|
||||
|
||||
|
@ -113,36 +113,29 @@ static WRITE8_HANDLER( sprint8_attract_w ) {}
|
||||
static WRITE8_HANDLER( sprint8_motor_w ) {}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x00ff) AM_READ(SMH_RAM)
|
||||
static ADDRESS_MAP_START( sprint8_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x00ff) AM_RAM
|
||||
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(sprint8_video_ram_w) AM_BASE(&sprint8_video_ram)
|
||||
AM_RANGE(0x1c00, 0x1c00) AM_READ(sprint8_collision_r)
|
||||
AM_RANGE(0x1c01, 0x1c08) AM_READ(sprint8_input_r)
|
||||
AM_RANGE(0x1c09, 0x1c09) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x1c0a, 0x1c0a) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x1c0f, 0x1c0f) AM_READ_PORT("VBLANK")
|
||||
AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0xf800, 0xffff) AM_READ(SMH_ROM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x00ff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0x1800, 0x1bff) AM_WRITE(sprint8_video_ram_w) AM_BASE(&sprint8_video_ram)
|
||||
AM_RANGE(0x1c00, 0x1c0f) AM_WRITE(SMH_RAM) AM_BASE(&sprint8_pos_h_ram)
|
||||
AM_RANGE(0x1c10, 0x1c1f) AM_WRITE(SMH_RAM) AM_BASE(&sprint8_pos_v_ram)
|
||||
AM_RANGE(0x1c20, 0x1c2f) AM_WRITE(SMH_RAM) AM_BASE(&sprint8_pos_d_ram)
|
||||
AM_RANGE(0x1c00, 0x1c0f) AM_WRITEONLY AM_BASE(&sprint8_pos_h_ram)
|
||||
AM_RANGE(0x1c10, 0x1c1f) AM_WRITEONLY AM_BASE(&sprint8_pos_v_ram)
|
||||
AM_RANGE(0x1c20, 0x1c2f) AM_WRITEONLY AM_BASE(&sprint8_pos_d_ram)
|
||||
AM_RANGE(0x1c30, 0x1c37) AM_WRITE(sprint8_lockout_w)
|
||||
AM_RANGE(0x1d00, 0x1d00) AM_WRITE(sprint8_int_reset_w)
|
||||
AM_RANGE(0x1d01, 0x1d01) AM_WRITE(sprint8_crash_w)
|
||||
AM_RANGE(0x1d02, 0x1d02) AM_WRITE(sprint8_explosion_w)
|
||||
AM_RANGE(0x1d03, 0x1d03) AM_WRITE(sprint8_bugle_w)
|
||||
AM_RANGE(0x1d04, 0x1d04) AM_WRITE(sprint8_bug_w)
|
||||
AM_RANGE(0x1d05, 0x1d05) AM_WRITE(SMH_RAM) AM_BASE(&sprint8_team)
|
||||
AM_RANGE(0x1d05, 0x1d05) AM_WRITEONLY AM_BASE(&sprint8_team)
|
||||
AM_RANGE(0x1d06, 0x1d06) AM_WRITE(sprint8_attract_w)
|
||||
AM_RANGE(0x1e00, 0x1e07) AM_WRITE(sprint8_motor_w)
|
||||
AM_RANGE(0x1f00, 0x1f00) AM_WRITENOP /* probably a watchdog, disabled in service mode */
|
||||
AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0xf800, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -467,7 +460,7 @@ static MACHINE_DRIVER_START( sprint8 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M6800, 11055000 / 11) /* ? */
|
||||
MDRV_CPU_PROGRAM_MAP(readmem, writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(sprint8_map, 0)
|
||||
|
||||
MDRV_MACHINE_RESET(sprint8)
|
||||
|
||||
|
@ -66,28 +66,6 @@ static INTERRUPT_GEN( srumbler_interrupt )
|
||||
cpu_set_input_line(device,M6809_FIRQ_LINE,HOLD_LINE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_RAM) /* RAM (of 1 sort or another) */
|
||||
AM_RANGE(0x4008, 0x4008) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x4009, 0x4009) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x400a, 0x400a) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x400b, 0x400b) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x400c, 0x400c) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x5000, 0x5fff) AM_READ(SMH_BANK(6)) /* Banked ROM */
|
||||
AM_RANGE(0x6000, 0x6fff) AM_READ(SMH_BANK(7)) /* Banked ROM */
|
||||
AM_RANGE(0x7000, 0x7fff) AM_READ(SMH_BANK(8)) /* Banked ROM */
|
||||
AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_BANK(9)) /* Banked ROM */
|
||||
AM_RANGE(0x9000, 0x9fff) AM_READ(SMH_BANK(10)) /* Banked ROM */
|
||||
AM_RANGE(0xa000, 0xafff) AM_READ(SMH_BANK(11)) /* Banked ROM */
|
||||
AM_RANGE(0xb000, 0xbfff) AM_READ(SMH_BANK(12)) /* Banked ROM */
|
||||
AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_BANK(13)) /* Banked ROM */
|
||||
AM_RANGE(0xd000, 0xdfff) AM_READ(SMH_BANK(14)) /* Banked ROM */
|
||||
AM_RANGE(0xe000, 0xefff) AM_READ(SMH_BANK(15)) /* Banked ROM */
|
||||
AM_RANGE(0xf000, 0xffff) AM_READ(SMH_BANK(16)) /* Banked ROM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*
|
||||
The "scroll test" routine on the test screen appears to overflow and write
|
||||
over the control registers (0x4000-0x4080) when it clears the screen.
|
||||
@ -98,31 +76,38 @@ to the page register.
|
||||
Ignore the warnings about writing to unmapped memory.
|
||||
*/
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x1dff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0x1e00, 0x1fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_WRITE(srumbler_background_w) AM_BASE(&srumbler_backgroundram)
|
||||
AM_RANGE(0x4008, 0x4008) AM_WRITE(srumbler_bankswitch_w)
|
||||
AM_RANGE(0x4009, 0x4009) AM_WRITE(srumbler_4009_w)
|
||||
static ADDRESS_MAP_START( srumbler_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x1dff) AM_RAM /* RAM (of 1 sort or another) */
|
||||
AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(srumbler_background_w) AM_BASE(&srumbler_backgroundram)
|
||||
AM_RANGE(0x4008, 0x4008) AM_READ_PORT("SYSTEM") AM_WRITE(srumbler_bankswitch_w)
|
||||
AM_RANGE(0x4009, 0x4009) AM_READ_PORT("P1") AM_WRITE(srumbler_4009_w)
|
||||
AM_RANGE(0x400a, 0x400a) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x400b, 0x400b) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x400c, 0x400c) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x400a, 0x400d) AM_WRITE(srumbler_scroll_w)
|
||||
AM_RANGE(0x400e, 0x400e) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x5000, 0x5fff) AM_WRITE(srumbler_foreground_w) AM_BASE(&srumbler_foregroundram)
|
||||
AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM) /* Video RAM 2 ??? (not used) */
|
||||
AM_RANGE(0x5000, 0x5fff) AM_ROMBANK(6) AM_WRITE(srumbler_foreground_w) AM_BASE(&srumbler_foregroundram) /* Banked ROM */
|
||||
AM_RANGE(0x6000, 0x6fff) AM_ROMBANK(7) /* Banked ROM */
|
||||
AM_RANGE(0x6000, 0x6fff) AM_WRITENOP /* Video RAM 2 ??? (not used) */
|
||||
AM_RANGE(0x7000, 0x7fff) AM_ROMBANK(8) /* Banked ROM */
|
||||
AM_RANGE(0x7000, 0x73ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x7400, 0xffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x8000, 0x8fff) AM_ROMBANK(9) /* Banked ROM */
|
||||
AM_RANGE(0x9000, 0x9fff) AM_ROMBANK(10) /* Banked ROM */
|
||||
AM_RANGE(0xa000, 0xafff) AM_ROMBANK(11) /* Banked ROM */
|
||||
AM_RANGE(0xb000, 0xbfff) AM_ROMBANK(12) /* Banked ROM */
|
||||
AM_RANGE(0xc000, 0xcfff) AM_ROMBANK(13) /* Banked ROM */
|
||||
AM_RANGE(0xd000, 0xdfff) AM_ROMBANK(14) /* Banked ROM */
|
||||
AM_RANGE(0xe000, 0xefff) AM_ROMBANK(15) /* Banked ROM */
|
||||
AM_RANGE(0xf000, 0xffff) AM_ROMBANK(16) /* Banked ROM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM)
|
||||
static ADDRESS_MAP_START( srumbler_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ym1", ym2203_w)
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym2", ym2203_w)
|
||||
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -257,11 +242,11 @@ static MACHINE_DRIVER_START( srumbler )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M6809, 1500000) /* 1.5 MHz (?) */
|
||||
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(srumbler_map,0)
|
||||
MDRV_CPU_VBLANK_INT_HACK(srumbler_interrupt,2)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80, 3000000) /* 3 MHz ??? */
|
||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(srumbler_sound_map,0)
|
||||
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4)
|
||||
|
||||
MDRV_MACHINE_RESET(srumbler)
|
||||
|
@ -8,7 +8,6 @@ Driver by Takahiro Nogi (nogi@kt.rim.or.jp) 1999/10/04
|
||||
***************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
#include "deprecat.h"
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "sound/ay8910.h"
|
||||
@ -29,85 +28,45 @@ extern PALETTE_INIT( ssozumo );
|
||||
extern VIDEO_START( ssozumo );
|
||||
extern VIDEO_UPDATE( ssozumo );
|
||||
|
||||
|
||||
static INTERRUPT_GEN( ssozumo_interrupt )
|
||||
{
|
||||
static int coin;
|
||||
|
||||
if ((input_port_read(device->machine, "P1") & 0xc0) != 0xc0)
|
||||
{
|
||||
if (coin == 0)
|
||||
{
|
||||
coin = 1;
|
||||
nmi_line_pulse(device);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else coin = 0;
|
||||
|
||||
irq0_line_hold(device);
|
||||
}
|
||||
|
||||
|
||||
static WRITE8_HANDLER( ssozumo_sh_command_w )
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_w(space, 0, data);
|
||||
cpu_set_input_line(space->machine->cpu[1], M6502_IRQ_LINE, HOLD_LINE);
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x077f) AM_READ(SMH_RAM)
|
||||
|
||||
AM_RANGE(0x2000, 0x27ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x3000, 0x31ff) AM_READ(SMH_RAM)
|
||||
|
||||
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x4010, 0x4010) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x4020, 0x4020) AM_READ_PORT("DSW2")
|
||||
static ADDRESS_MAP_START( ssozumo_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x077f) AM_RAM
|
||||
AM_RANGE(0x0780, 0x07ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(ssozumo_videoram2_w) AM_BASE(&ssozumo_videoram2)
|
||||
AM_RANGE(0x2400, 0x27ff) AM_RAM_WRITE(ssozumo_colorram2_w) AM_BASE(&ssozumo_colorram2)
|
||||
AM_RANGE(0x3000, 0x31ff) AM_RAM_WRITE(ssozumo_videoram_w) AM_BASE(&videoram)
|
||||
AM_RANGE(0x3200, 0x33ff) AM_RAM_WRITE(ssozumo_colorram_w) AM_BASE(&colorram)
|
||||
AM_RANGE(0x3400, 0x35ff) AM_RAM
|
||||
AM_RANGE(0x3600, 0x37ff) AM_RAM
|
||||
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("P1") AM_WRITE(ssozumo_flipscreen_w)
|
||||
AM_RANGE(0x4010, 0x4010) AM_READ_PORT("P2") AM_WRITE(ssozumo_sh_command_w)
|
||||
AM_RANGE(0x4020, 0x4020) AM_READ_PORT("DSW2") AM_WRITE(ssozumo_scroll_w)
|
||||
AM_RANGE(0x4030, 0x4030) AM_READ_PORT("DSW1")
|
||||
|
||||
AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM)
|
||||
// AM_RANGE(0x4030, 0x4030) AM_WRITEONLY
|
||||
AM_RANGE(0x4050, 0x407f) AM_RAM_WRITE(ssozumo_paletteram_w) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x6000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x077f) AM_WRITE(SMH_RAM)
|
||||
|
||||
AM_RANGE(0x0780, 0x07ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x2000, 0x23ff) AM_WRITE(ssozumo_videoram2_w) AM_BASE(&ssozumo_videoram2)
|
||||
AM_RANGE(0x2400, 0x27ff) AM_WRITE(ssozumo_colorram2_w) AM_BASE(&ssozumo_colorram2)
|
||||
AM_RANGE(0x3000, 0x31ff) AM_WRITE(ssozumo_videoram_w) AM_BASE(&videoram)
|
||||
AM_RANGE(0x3200, 0x33ff) AM_WRITE(ssozumo_colorram_w) AM_BASE(&colorram)
|
||||
AM_RANGE(0x3400, 0x35ff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0x3600, 0x37ff) AM_WRITE(SMH_RAM)
|
||||
|
||||
AM_RANGE(0x4000, 0x4000) AM_WRITE(ssozumo_flipscreen_w)
|
||||
AM_RANGE(0x4010, 0x4010) AM_WRITE(ssozumo_sh_command_w)
|
||||
AM_RANGE(0x4020, 0x4020) AM_WRITE(ssozumo_scroll_w)
|
||||
// AM_RANGE(0x4030, 0x4030) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0x4050, 0x407f) AM_WRITE(ssozumo_paletteram_w) AM_BASE(&paletteram)
|
||||
|
||||
AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x01ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x2007, 0x2007) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x4000, 0xffff) AM_READ(SMH_ROM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x01ff) AM_WRITE(SMH_RAM)
|
||||
static ADDRESS_MAP_START( ssozumo_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x01ff) AM_RAM
|
||||
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ay1", ay8910_data_address_w)
|
||||
AM_RANGE(0x2002, 0x2003) AM_DEVWRITE("ay2", ay8910_data_address_w)
|
||||
AM_RANGE(0x2004, 0x2004) AM_DEVWRITE("dac", dac_signed_w)
|
||||
AM_RANGE(0x2005, 0x2005) AM_WRITE(interrupt_enable_w)
|
||||
AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x2007, 0x2007) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x4000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_CHANGED( coin_inserted )
|
||||
{
|
||||
cputag_set_input_line(field->port->machine, "maincpu", INPUT_LINE_NMI, newval ? CLEAR_LINE : PULSE_LINE);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( ssozumo )
|
||||
PORT_START("P1") /* IN0 */
|
||||
@ -117,8 +76,8 @@ static INPUT_PORTS_START( ssozumo )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED(coin_inserted, 0)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED(coin_inserted, 0)
|
||||
|
||||
PORT_START("P2") /* IN1 */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
|
||||
@ -232,12 +191,12 @@ static MACHINE_DRIVER_START( ssozumo )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M6502, 1200000) /* 1.2 MHz ???? */
|
||||
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
|
||||
MDRV_CPU_VBLANK_INT("screen", ssozumo_interrupt)
|
||||
MDRV_CPU_PROGRAM_MAP(ssozumo_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", M6502, 975000) /* 975 kHz ?? */
|
||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,16) /* IRQs are triggered by the main CPU */
|
||||
MDRV_CPU_PROGRAM_MAP(ssozumo_sound_map,0)
|
||||
MDRV_CPU_PERIODIC_INT(nmi_line_pulse,60*16) /* not accurate */
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -77,20 +77,14 @@ static WRITE8_HANDLER( sspeedr_sound_w )
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x2000, 0x21ff) AM_READ(SMH_RAM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x2000, 0x21ff) AM_WRITE(SMH_RAM)
|
||||
static ADDRESS_MAP_START( sspeedr_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||
AM_RANGE(0x2000, 0x21ff) AM_RAM
|
||||
AM_RANGE(0x7f00, 0x7f17) AM_WRITE(sspeedr_score_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
|
||||
static ADDRESS_MAP_START( sspeedr_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||
@ -196,8 +190,8 @@ static MACHINE_DRIVER_START( sspeedr )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", Z80, 19968000 / 8)
|
||||
MDRV_CPU_PROGRAM_MAP(readmem, writemem)
|
||||
MDRV_CPU_IO_MAP(io_map,0)
|
||||
MDRV_CPU_PROGRAM_MAP(sspeedr_map, 0)
|
||||
MDRV_CPU_IO_MAP(sspeedr_io_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
||||
|
||||
/* video hardware */
|
||||
|
@ -34,18 +34,12 @@ extern int p2_sprite;
|
||||
extern int s1_sprite;
|
||||
extern int s2_sprite;
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM) /* Program ROM */
|
||||
AM_RANGE(0x1000, 0x10ff) AM_READ(SMH_RAM) /* RAM */
|
||||
static ADDRESS_MAP_START( starcrus_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||
AM_RANGE(0x1000, 0x10ff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_WRITE(SMH_ROM) /* Program ROM */
|
||||
AM_RANGE(0x1000, 0x10ff) AM_WRITE(SMH_RAM) /* RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
|
||||
static ADDRESS_MAP_START( starcrus_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_WRITE(starcrus_s1_x_w)
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2") AM_WRITE(starcrus_s1_y_w)
|
||||
AM_RANGE(0x02, 0x02) AM_READWRITE(starcrus_coll_det_r, starcrus_s2_x_w)
|
||||
@ -164,8 +158,8 @@ static MACHINE_DRIVER_START( starcrus )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", 8080,9750000/9) /* 8224 chip is a divide by 9 */
|
||||
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
|
||||
MDRV_CPU_IO_MAP(io_map,0)
|
||||
MDRV_CPU_PROGRAM_MAP(starcrus_map,0)
|
||||
MDRV_CPU_IO_MAP(starcrus_io_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
|
||||
|
||||
/* video hardware */
|
||||
|
@ -164,31 +164,25 @@ static WRITE8_HANDLER( starshp1_misc_w )
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x00ff) AM_READ(SMH_RAM) AM_MIRROR(0x100)
|
||||
AM_RANGE(0x2c00, 0x3fff) AM_READ(SMH_ROM)
|
||||
static ADDRESS_MAP_START( starshp1_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x100)
|
||||
AM_RANGE(0x2c00, 0x3fff) AM_ROM
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("VBLANK")
|
||||
AM_RANGE(0xc400, 0xc400) AM_READ_PORT("COINAGE")
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ(starshp1_rng_r)
|
||||
AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x00ff) AM_WRITE(SMH_RAM) AM_MIRROR(0x100)
|
||||
AM_RANGE(0x2c00, 0x3fff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xc300, 0xc3ff) AM_WRITE(starshp1_sspic_w) /* spaceship picture */
|
||||
AM_RANGE(0xc400, 0xc400) AM_READ_PORT("COINAGE")
|
||||
AM_RANGE(0xc400, 0xc4ff) AM_WRITE(starshp1_ssadd_w) /* spaceship address */
|
||||
AM_RANGE(0xc800, 0xc9ff) AM_WRITE(starshp1_playfield_w) AM_BASE(&starshp1_playfield_ram)
|
||||
AM_RANGE(0xcc00, 0xcc0f) AM_WRITE(SMH_RAM) AM_BASE(&starshp1_hpos_ram)
|
||||
AM_RANGE(0xd000, 0xd00f) AM_WRITE(SMH_RAM) AM_BASE(&starshp1_vpos_ram)
|
||||
AM_RANGE(0xd400, 0xd40f) AM_WRITE(SMH_RAM) AM_BASE(&starshp1_obj_ram)
|
||||
AM_RANGE(0xc800, 0xc9ff) AM_RAM_WRITE(starshp1_playfield_w) AM_BASE(&starshp1_playfield_ram)
|
||||
AM_RANGE(0xcc00, 0xcc0f) AM_WRITEONLY AM_BASE(&starshp1_hpos_ram)
|
||||
AM_RANGE(0xd000, 0xd00f) AM_WRITEONLY AM_BASE(&starshp1_vpos_ram)
|
||||
AM_RANGE(0xd400, 0xd40f) AM_WRITEONLY AM_BASE(&starshp1_obj_ram)
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ(starshp1_rng_r)
|
||||
AM_RANGE(0xd800, 0xd80f) AM_WRITE(starshp1_collision_reset_w)
|
||||
AM_RANGE(0xdc00, 0xdc0f) AM_WRITE(starshp1_misc_w)
|
||||
AM_RANGE(0xdd00, 0xdd0f) AM_WRITE(starshp1_analog_in_w)
|
||||
AM_RANGE(0xde00, 0xde0f) AM_DEVWRITE("discrete", starshp1_audio_w)
|
||||
AM_RANGE(0xdf00, 0xdf0f) AM_DEVWRITE("discrete", starshp1_analog_out_w)
|
||||
AM_RANGE(0xf000, 0xffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xf000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -304,7 +298,7 @@ static MACHINE_DRIVER_START( starshp1 )
|
||||
/* basic machine hardware */
|
||||
|
||||
MDRV_CPU_ADD("maincpu", M6502, STARSHP1_CPU_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(readmem, writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(starshp1_map, 0)
|
||||
MDRV_CPU_VBLANK_INT("screen", starshp1_interrupt)
|
||||
|
||||
/* video hardware */
|
||||
|
@ -78,11 +78,6 @@ static TILE_GET_INFO( get_tile_info_splash_tilemap1 )
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
READ16_HANDLER( splash_vram_r )
|
||||
{
|
||||
return splash_videoram[offset];
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( splash_vram_w )
|
||||
{
|
||||
COMBINE_DATA(&splash_videoram[offset]);
|
||||
|
Loading…
Reference in New Issue
Block a user