Memory maps merges for the following drivers:

* puckpkmn.c
* punchout.c
* qdrmfgp.c
* quizpani.c
* rabbit.c
* rainbow.c
* rcorsair.c
* redclash.c (also cleaned-up the irq/nmi generation on coin insertion)
* renegade.c
* rmhaihai.c
* rockrage.c
* rocnrope.c
* rollerg.c
* rollrace.c
* runaway.c
* rungun.c
* sangho.c
* sauro.c (also cleaned-up a video function)
* sbasketb.c
* sbugger.c
* scregg.c
* segae.c

Removed deprecat.h dependancy for usgames.c
This commit is contained in:
Angelo Salese 2009-04-28 23:43:22 +00:00
parent d88da3d539
commit b9cffa68c9
23 changed files with 500 additions and 802 deletions

View File

@ -126,40 +126,28 @@ static INPUT_PORTS_START( puckpkmn )
INPUT_PORTS_END
static ADDRESS_MAP_START( puckpkmn_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM) /* Main 68k Program Roms */
static ADDRESS_MAP_START( puckpkmn_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x1fffff) AM_ROM /* Main 68k Program Roms */
AM_RANGE(0x700010, 0x700011) AM_READ_PORT("P2")
AM_RANGE(0x700012, 0x700013) AM_READ_PORT("P1")
AM_RANGE(0x700014, 0x700015) AM_READ_PORT("UNK")
AM_RANGE(0x700016, 0x700017) AM_READ_PORT("DSW1")
AM_RANGE(0x700018, 0x700019) AM_READ_PORT("DSW2")
AM_RANGE(0x700022, 0x700023) AM_DEVREAD8("oki", okim6295_r, 0x00ff) /* M6295 Sound Chip Status Register */
AM_RANGE(0xa04000, 0xa04003) AM_DEVREAD8("ym", ym3438_r, 0xffff) /* Ym3438 Sound Chip Status Register */
AM_RANGE(0xc00000, 0xc0001f) AM_READ(genesis_vdp_r) /* VDP Access */
AM_RANGE(0xe00000, 0xe1ffff) AM_READ(SMH_BANK(1)) /* VDP sees the roms here */
AM_RANGE(0xfe0000, 0xfeffff) AM_READ(SMH_BANK(2)) /* VDP sees the ram here */
AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) /* Main Ram */
AM_RANGE(0x700022, 0x700023) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) /* M6295 Sound Chip Status Register/Writes */
AM_RANGE(0xa04000, 0xa04003) AM_DEVREADWRITE8("ym", ym3438_r,ym3438_w, 0xffff) /* Ym3438 Sound Chip Status Register */
AM_RANGE(0xc00000, 0xc0001f) AM_READWRITE(genesis_vdp_r,genesis_vdp_w) /* VDP Access */
AM_RANGE(0xe00000, 0xe1ffff) AM_ROMBANK(1) /* VDP sees the roms here */
AM_RANGE(0xfe0000, 0xfeffff) AM_RAMBANK(2) /* VDP sees the ram here */
AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_BASE(&main_ram) /* Main Ram */
/* Unknown reads: */
// AM_RANGE(0xa10000, 0xa10001) AM_READNOP /* ? once */
AM_RANGE(0xa10002, 0xa10005) AM_READNOP /* ? alternative way of reading inputs ? */
AM_RANGE(0xa11100, 0xa11101) AM_READNOP /* ? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( puckpkmn_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM) /* Main 68k Program Roms */
AM_RANGE(0x700022, 0x700023) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) /* M6295 Sound Chip Writes */
AM_RANGE(0xa04000, 0xa04003) AM_DEVWRITE8("ym", ym3438_w, 0xffff) /* Ym3438 Sound Chip Writes */
AM_RANGE(0xc00000, 0xc0001f) AM_WRITE(genesis_vdp_w) /* VDP Access */
AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) AM_BASE(&main_ram) /* Main Ram */
/* Unknown writes: */
AM_RANGE(0xa00000, 0xa00551) AM_WRITE(SMH_RAM) /* ? */
AM_RANGE(0xa10002, 0xa10005) AM_WRITENOP /* ? alternative way of reading inputs ? */
// AM_RANGE(0xa10008, 0xa1000d) AM_WRITENOP /* ? once */
// AM_RANGE(0xa14000, 0xa14003) AM_WRITENOP /* ? once */
AM_RANGE(0xa11100, 0xa11101) AM_WRITENOP /* ? */
AM_RANGE(0xa11200, 0xa11201) AM_WRITENOP /* ? */
/* Unknown reads/writes: */
AM_RANGE(0xa00000, 0xa00551) AM_WRITENOP /* ? */
// AM_RANGE(0xa10000, 0xa10001) AM_READNOP /* ? once */
AM_RANGE(0xa10002, 0xa10005) AM_NOP /* ? alternative way of reading inputs ? */
AM_RANGE(0xa11100, 0xa11101) AM_NOP /* ? */
// AM_RANGE(0xa10008, 0xa1000d) AM_WRITENOP /* ? once */
// AM_RANGE(0xa14000, 0xa14003) AM_WRITENOP /* ? once */
AM_RANGE(0xa11200, 0xa11201) AM_WRITENOP /* ? */
ADDRESS_MAP_END
@ -172,7 +160,7 @@ static MACHINE_DRIVER_START( puckpkmn )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu",M68000, MASTER_CLOCK/7) /*???*/
MDRV_CPU_PROGRAM_MAP(puckpkmn_readmem,puckpkmn_writemem)
MDRV_CPU_PROGRAM_MAP(puckpkmn_map,0)
MDRV_CPU_VBLANK_INT("screen", genesis_vblank_interrupt)
MDRV_MACHINE_START(genesis)

View File

@ -365,7 +365,7 @@ static ADDRESS_MAP_START( armwrest_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
static ADDRESS_MAP_START( punchout_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")
@ -388,18 +388,12 @@ static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x07, 0x07) AM_MIRROR(0xf0) AM_MASK(0xf0) AM_READWRITE(spunchout_exp_r, spunchout_exp_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_READ(SMH_RAM)
static ADDRESS_MAP_START( punchout_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x4016, 0x4016) AM_READ(soundlatch_r)
AM_RANGE(0x4017, 0x4017) AM_READ(soundlatch2_r)
AM_RANGE(0x4000, 0x4017) AM_DEVREAD("nes", nes_psg_r)
AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x4000, 0x4017) AM_DEVWRITE("nes", nes_psg_w)
AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x4000, 0x4017) AM_DEVREADWRITE("nes", nes_psg_r,nes_psg_w)
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -613,11 +607,11 @@ static MACHINE_DRIVER_START( punchout )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 8000000/2) /* 4 MHz */
MDRV_CPU_PROGRAM_MAP(punchout_map,0)
MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_IO_MAP(punchout_io_map,0)
MDRV_CPU_VBLANK_INT("top", nmi_line_pulse)
MDRV_CPU_ADD("audiocpu", N2A03, N2A03_DEFAULTCLOCK)
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_PROGRAM_MAP(punchout_sound_map,0)
MDRV_CPU_VBLANK_INT("top", nmi_line_pulse)
MDRV_MACHINE_RESET(punchout)

View File

@ -327,77 +327,49 @@ static void gp2_ide_interrupt(const device_config *device, int state)
*
*************************************/
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_READ(SMH_RAM) /* backup ram */
AM_RANGE(0x280000, 0x280fff) AM_READ(SMH_RAM) /* color ram */
AM_RANGE(0x320000, 0x32001f) AM_READ(K053252_word_r) /* ccu */
AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service sw */
AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000") /* inputport */
AM_RANGE(0x800000, 0x80045f) AM_DEVREAD8("konami", k054539_r, 0x00ff) /* sound regs */
AM_RANGE(0x880000, 0x881fff) AM_READ(K056832_ram_word_r) /* vram */
AM_RANGE(0x882000, 0x883fff) AM_READ(K056832_ram_word_r) /* vram (mirror) */
AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */
AM_RANGE(0xa00000, 0xa0000f) AM_DEVREAD("ide", ide_std_r) /* IDE control regs */
AM_RANGE(0xa4000c, 0xa4000f) AM_DEVREAD("ide", ide_alt_r) /* IDE status control reg */
AM_RANGE(0xc00000, 0xcbffff) AM_READ(sndram_r) /* sound ram */
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&workram) /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_WRITE(SMH_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) /* backup ram */
AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w) /* video reg */
AM_RANGE(0x320000, 0x32001f) AM_WRITE(K053252_word_w) /* ccu */
AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */
AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */
AM_RANGE(0x370000, 0x370001) AM_WRITE(gp_control_w) /* control reg */
AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */
AM_RANGE(0x800000, 0x80045f) AM_DEVWRITE8("konami", k054539_w, 0x00ff) /* sound regs */
AM_RANGE(0x880000, 0x881fff) AM_WRITE(K056832_ram_word_w) /* vram */
AM_RANGE(0x882000, 0x883fff) AM_WRITE(K056832_ram_word_w) /* vram (mirror) */
AM_RANGE(0xa00000, 0xa0000f) AM_DEVWRITE("ide", ide_std_w) /* IDE control regs */
AM_RANGE(0xa4000c, 0xa4000f) AM_DEVWRITE("ide", ide_alt_w) /* IDE status control reg */
AM_RANGE(0xc00000, 0xcbffff) AM_WRITE(sndram_w) /* sound ram */
static ADDRESS_MAP_START( qdrmfgp_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE(&workram) /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) /* backup ram */
AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w) /* video reg */
AM_RANGE(0x320000, 0x32001f) AM_READWRITE(K053252_word_r,K053252_word_w) /* ccu */
AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service sw */
AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000") /* inputport */
AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */
AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */
AM_RANGE(0x370000, 0x370001) AM_WRITE(gp_control_w) /* control reg */
AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */
AM_RANGE(0x800000, 0x80045f) AM_DEVREADWRITE8("konami", k054539_r,k054539_w, 0x00ff) /* sound regs */
AM_RANGE(0x880000, 0x881fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) /* vram */
AM_RANGE(0x882000, 0x883fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) /* vram (mirror) */
AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */
AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE("ide", ide_std_r,ide_std_w) /* IDE control regs */
AM_RANGE(0xa4000c, 0xa4000f) AM_DEVREADWRITE("ide", ide_alt_r,ide_alt_w) /* IDE status control reg */
AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r,sndram_w) /* sound ram */
ADDRESS_MAP_END
static ADDRESS_MAP_START( gp2_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
AM_RANGE(0x100000, 0x110fff) AM_READ(SMH_RAM) /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_READ(SMH_RAM) /* backup ram */
AM_RANGE(0x280000, 0x280fff) AM_READ(SMH_RAM) /* color ram */
AM_RANGE(0x320000, 0x32001f) AM_READ(K053252_word_r) /* ccu */
AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service */
AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000") /* inputport */
AM_RANGE(0x800000, 0x80045f) AM_DEVREAD8("konami", k054539_r, 0x00ff) /* sound regs */
AM_RANGE(0x880000, 0x881fff) AM_READ(gp2_vram_r) /* vram */
AM_RANGE(0x89f000, 0x8a0fff) AM_READ(gp2_vram_mirror_r) /* vram (mirror) */
AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */
AM_RANGE(0xa00000, 0xa0000f) AM_READ(gp2_ide_std_r) /* IDE control regs */
AM_RANGE(0xa4000c, 0xa4000f) AM_DEVREAD("ide", ide_alt_r) /* IDE status control reg */
AM_RANGE(0xc00000, 0xcbffff) AM_READ(sndram_r) /* sound ram */
ADDRESS_MAP_END
static ADDRESS_MAP_START( gp2_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x100000, 0x110fff) AM_WRITE(SMH_RAM) AM_BASE(&workram) /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_WRITE(SMH_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) /* backup ram */
AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w) /* video reg */
AM_RANGE(0x320000, 0x32001f) AM_WRITE(K053252_word_w) /* ccu */
AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */
AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */
AM_RANGE(0x370000, 0x370001) AM_WRITE(gp2_control_w) /* control reg */
AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */
AM_RANGE(0x800000, 0x80045f) AM_DEVWRITE8("konami", k054539_w, 0x00ff) /* sound regs */
AM_RANGE(0x880000, 0x881fff) AM_WRITE(gp2_vram_w) /* vram */
AM_RANGE(0x89f000, 0x8a0fff) AM_WRITE(gp2_vram_mirror_w) /* vram (mirror) */
AM_RANGE(0xa00000, 0xa0000f) AM_DEVWRITE("ide", ide_std_w) /* IDE control regs */
AM_RANGE(0xa4000c, 0xa4000f) AM_DEVWRITE("ide", ide_alt_w) /* IDE status control reg */
AM_RANGE(0xc00000, 0xcbffff) AM_WRITE(sndram_w) /* sound ram */
static ADDRESS_MAP_START( qdrmfgp2_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x110fff) AM_RAM AM_BASE(&workram) /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) /* backup ram */
AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w) /* video reg */
AM_RANGE(0x320000, 0x32001f) AM_READWRITE(K053252_word_r,K053252_word_w) /* ccu */
AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service */
AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000") /* inputport */
AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */
AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */
AM_RANGE(0x370000, 0x370001) AM_WRITE(gp2_control_w) /* control reg */
AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */
AM_RANGE(0x800000, 0x80045f) AM_DEVREADWRITE8("konami", k054539_r,k054539_w, 0x00ff) /* sound regs */
AM_RANGE(0x880000, 0x881fff) AM_READWRITE(gp2_vram_r,gp2_vram_w) /* vram */
AM_RANGE(0x89f000, 0x8a0fff) AM_READWRITE(gp2_vram_mirror_r,gp2_vram_mirror_w) /* vram (mirror) */
AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */
AM_RANGE(0xa00000, 0xa0000f) AM_READ(gp2_ide_std_r) AM_DEVWRITE("ide", ide_std_w) /* IDE control regs */
AM_RANGE(0xa4000c, 0xa4000f) AM_DEVREADWRITE("ide", ide_alt_r,ide_alt_w) /* IDE status control reg */
AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r,sndram_w) /* sound ram */
ADDRESS_MAP_END
@ -646,7 +618,7 @@ static MACHINE_DRIVER_START( qdrmfgp )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 32000000/2) /* 16.000 MHz */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(qdrmfgp_map,0)
MDRV_CPU_VBLANK_INT_HACK(qdrmfgp_interrupt, 2)
MDRV_MACHINE_START(qdrmfgp)
@ -681,7 +653,7 @@ static MACHINE_DRIVER_START( qdrmfgp2 )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 32000000/2) /* 16.000 MHz */
MDRV_CPU_PROGRAM_MAP(gp2_readmem,gp2_writemem)
MDRV_CPU_PROGRAM_MAP(qdrmfgp2_map,0)
MDRV_CPU_VBLANK_INT("screen", qdrmfgp2_interrupt)
MDRV_MACHINE_START(qdrmfgp)

View File

@ -47,35 +47,27 @@ extern WRITE16_HANDLER( quizpani_tilesbank_w );
extern VIDEO_START( quizpani );
extern VIDEO_UPDATE( quizpani );
static ADDRESS_MAP_START( quizpani_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
static ADDRESS_MAP_START( quizpani_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("P1_P2")
AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW1")
AM_RANGE(0x10000a, 0x10000b) AM_READ_PORT("DSW2")
AM_RANGE(0x104000, 0x104001) AM_DEVREAD8("oki", okim6295_r, 0x00ff)
AM_RANGE(0x108000, 0x1083ff) AM_READ(SMH_RAM)
AM_RANGE(0x110000, 0x113fff) AM_READ(SMH_RAM)
AM_RANGE(0x180000, 0x18ffff) AM_READ(SMH_RAM)
AM_RANGE(0x200000, 0x33ffff) AM_READ(SMH_ROM)
AM_RANGE(0x100014, 0x100015) AM_WRITENOP
AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ enable? */
AM_RANGE(0x100018, 0x100019) AM_WRITE(quizpani_tilesbank_w)
AM_RANGE(0x104000, 0x104001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff)
AM_RANGE(0x104020, 0x104027) AM_WRITE(NMK112_okibank_lsb_w)
AM_RANGE(0x108000, 0x1083ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x108400, 0x1085ff) AM_WRITENOP
AM_RANGE(0x10c000, 0x10c007) AM_RAM AM_BASE(&quizpani_scrollreg)
AM_RANGE(0x10c008, 0x10c403) AM_WRITENOP
AM_RANGE(0x110000, 0x113fff) AM_RAM_WRITE(quizpani_bg_videoram_w) AM_BASE(&quizpani_bg_videoram)
AM_RANGE(0x11c000, 0x11ffff) AM_RAM_WRITE(quizpani_txt_videoram_w) AM_BASE(&quizpani_txt_videoram)
AM_RANGE(0x180000, 0x18ffff) AM_RAM
AM_RANGE(0x200000, 0x33ffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( quizpani_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x100014, 0x100015) AM_WRITENOP
AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ eanble? */
AM_RANGE(0x100018, 0x100019) AM_WRITE(quizpani_tilesbank_w)
AM_RANGE(0x104000, 0x104001) AM_DEVWRITE8("oki", okim6295_w, 0x00ff)
AM_RANGE(0x104020, 0x104027) AM_WRITE(NMK112_okibank_lsb_w)
AM_RANGE(0x108000, 0x1083ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x108400, 0x1085ff) AM_WRITENOP
AM_RANGE(0x10c000, 0x10c007) AM_WRITE(SMH_RAM) AM_BASE(&quizpani_scrollreg)
AM_RANGE(0x10c008, 0x10c403) AM_WRITENOP
AM_RANGE(0x110000, 0x113fff) AM_WRITE(quizpani_bg_videoram_w) AM_BASE(&quizpani_bg_videoram)
AM_RANGE(0x11c000, 0x11ffff) AM_WRITE(quizpani_txt_videoram_w) AM_BASE(&quizpani_txt_videoram)
AM_RANGE(0x180000, 0x18ffff) AM_WRITE(SMH_RAM)
AM_RANGE(0x200000, 0x33ffff) AM_WRITE(SMH_ROM)
ADDRESS_MAP_END
static INPUT_PORTS_START( quizpani )
PORT_START("SYSTEM")
@ -249,7 +241,7 @@ static MACHINE_RESET( quizpani )
static MACHINE_DRIVER_START( quizpani )
MDRV_CPU_ADD("maincpu", M68000, 10000000)
MDRV_CPU_PROGRAM_MAP(quizpani_readmem,quizpani_writemem)
MDRV_CPU_PROGRAM_MAP(quizpani_map,0)
MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
MDRV_CPU_PERIODIC_INT(irq1_line_hold,164) // music tempo

View File

@ -479,23 +479,6 @@ static READ32_HANDLER( randomrabbits )
return mame_rand(space->machine);
}
static ADDRESS_MAP_START( rabbit_readmem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
AM_RANGE(0x200000, 0x200003) AM_READ_PORT("INPUTS")
AM_RANGE(0x400010, 0x400013) AM_READ(randomrabbits) // gfx chip status?
AM_RANGE(0x400980, 0x400983) AM_READ(randomrabbits) // sound chip status?
AM_RANGE(0x400984, 0x400987) AM_READ(randomrabbits) // sound chip status?
AM_RANGE(0x440000, 0x47ffff) AM_READ(SMH_BANK(1)) // roms read from here during testing
/* tilemaps */
AM_RANGE(0x480000, 0x483fff) AM_READ(rabbit_tilemap0_r)
AM_RANGE(0x484000, 0x487fff) AM_READ(rabbit_tilemap1_r)
AM_RANGE(0x488000, 0x48bfff) AM_READ(rabbit_tilemap2_r)
AM_RANGE(0x48c000, 0x48ffff) AM_READ(rabbit_tilemap3_r)
AM_RANGE(0x494000, 0x49ffff) AM_READ(SMH_RAM)
AM_RANGE(0x4a0000, 0x4affff) AM_READ(SMH_RAM) /* palette */
AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM)
ADDRESS_MAP_END
/* rom bank is used when testing roms, not currently hooked up */
static WRITE32_HANDLER ( rabbit_rombank_w )
{
@ -714,54 +697,45 @@ static WRITE32_HANDLER( rabbit_eeprom_write )
}
}
static ADDRESS_MAP_START( rabbit_writemem, ADDRESS_SPACE_PROGRAM, 32 )
static ADDRESS_MAP_START( rabbit_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x000000, 0x000003) AM_WRITENOP // bug in code / emulation?
AM_RANGE(0x000010, 0x000013) AM_WRITENOP // bug in code / emulation?
AM_RANGE(0x000024, 0x000027) AM_WRITENOP // bug in code / emulation?
AM_RANGE(0x00719C, 0x00719F) AM_WRITENOP // bug in code / emulation?
AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x200000, 0x200003) AM_WRITE(rabbit_eeprom_write)
AM_RANGE(0x00719c, 0x00719f) AM_WRITENOP // bug in code / emulation?
AM_RANGE(0x200000, 0x200003) AM_READ_PORT("INPUTS") AM_WRITE(rabbit_eeprom_write)
AM_RANGE(0x400010, 0x400013) AM_READ(randomrabbits) // gfx chip status?
AM_RANGE(0x400980, 0x400983) AM_READ(randomrabbits) // sound chip status?
AM_RANGE(0x400984, 0x400987) AM_READ(randomrabbits) // sound chip status?
/* this lot are probably gfxchip/blitter etc. related */
AM_RANGE(0x400010, 0x400013) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs0 )
AM_RANGE(0x400100, 0x400117) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_tilemap_regs[0] ) // tilemap regs1
AM_RANGE(0x400120, 0x400137) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_tilemap_regs[1] ) // tilemap regs2
AM_RANGE(0x400140, 0x400157) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_tilemap_regs[2] ) // tilemap regs3
AM_RANGE(0x400160, 0x400177) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_tilemap_regs[3] ) // tilemap regs4
AM_RANGE(0x400200, 0x40021b) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_spriteregs ) // sprregs?
AM_RANGE(0x400010, 0x400013) AM_WRITEONLY AM_BASE( &rabbit_viewregs0 )
AM_RANGE(0x400100, 0x400117) AM_WRITEONLY AM_BASE( &rabbit_tilemap_regs[0] ) // tilemap regs1
AM_RANGE(0x400120, 0x400137) AM_WRITEONLY AM_BASE( &rabbit_tilemap_regs[1] ) // tilemap regs2
AM_RANGE(0x400140, 0x400157) AM_WRITEONLY AM_BASE( &rabbit_tilemap_regs[2] ) // tilemap regs3
AM_RANGE(0x400160, 0x400177) AM_WRITEONLY AM_BASE( &rabbit_tilemap_regs[3] ) // tilemap regs4
AM_RANGE(0x400200, 0x40021b) AM_WRITEONLY AM_BASE( &rabbit_spriteregs ) // sprregs?
AM_RANGE(0x400300, 0x400303) AM_WRITE(rabbit_rombank_w) // used during rom testing, rombank/area select + something else?
AM_RANGE(0x400400, 0x400413) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs6 ) // some global controls? (brightness etc.?)
AM_RANGE(0x400500, 0x400503) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs7 )
AM_RANGE(0x400400, 0x400413) AM_WRITEONLY AM_BASE( &rabbit_viewregs6 ) // some global controls? (brightness etc.?)
AM_RANGE(0x400500, 0x400503) AM_WRITEONLY AM_BASE( &rabbit_viewregs7 )
AM_RANGE(0x400700, 0x40070f) AM_WRITE(rabbit_blitter_w) AM_BASE( &rabbit_blitterregs )
AM_RANGE(0x400800, 0x40080f) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs9 ) // never changes?
AM_RANGE(0x400800, 0x40080f) AM_WRITEONLY AM_BASE( &rabbit_viewregs9 ) // never changes?
AM_RANGE(0x400900, 0x40098f) AM_WRITE(rabbit_audio_w)
/* hmm */
AM_RANGE(0x479700, 0x479713) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs10 )
AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_BASE( &rabbit_viewregs10 )
AM_RANGE(0x440000, 0x47ffff) AM_ROMBANK(1) // roms read from here during testing
/* tilemaps */
AM_RANGE(0x480000, 0x483fff) AM_WRITE(rabbit_tilemap0_w)
AM_RANGE(0x484000, 0x487fff) AM_WRITE(rabbit_tilemap1_w)
AM_RANGE(0x488000, 0x48bfff) AM_WRITE(rabbit_tilemap2_w)
AM_RANGE(0x48c000, 0x48ffff) AM_WRITE(rabbit_tilemap3_w)
AM_RANGE(0x494000, 0x497fff) AM_WRITE(SMH_RAM) AM_BASE(&rabbit_spriteram) // sprites?
AM_RANGE(0x4a0000, 0x4affff) AM_WRITE(rabbit_paletteram_dword_w) AM_BASE(&paletteram32)
AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM)
AM_RANGE(0x480000, 0x483fff) AM_READWRITE(rabbit_tilemap0_r,rabbit_tilemap0_w)
AM_RANGE(0x484000, 0x487fff) AM_READWRITE(rabbit_tilemap1_r,rabbit_tilemap1_w)
AM_RANGE(0x488000, 0x48bfff) AM_READWRITE(rabbit_tilemap2_r,rabbit_tilemap2_w)
AM_RANGE(0x48c000, 0x48ffff) AM_READWRITE(rabbit_tilemap3_r,rabbit_tilemap3_w)
AM_RANGE(0x494000, 0x497fff) AM_RAM AM_BASE(&rabbit_spriteram) // sprites?
AM_RANGE(0x4a0000, 0x4affff) AM_RAM_WRITE(rabbit_paletteram_dword_w) AM_BASE(&paletteram32)
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
/* tmmjprd has a different memory map */
static ADDRESS_MAP_START( tmmjprd_readmem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
AM_RANGE(0x200010, 0x200013) AM_READ(randomrabbits) // gfx chip status?
AM_RANGE(0x200980, 0x200983) AM_READ(randomrabbits) // sound chip status?
AM_RANGE(0x200984, 0x200987) AM_READ(randomrabbits) // sound chip status?
AM_RANGE(0x280000, 0x283fff) AM_READ(rabbit_tilemap0_r)
AM_RANGE(0x284000, 0x287fff) AM_READ(rabbit_tilemap1_r)
AM_RANGE(0x288000, 0x28bfff) AM_READ(rabbit_tilemap2_r)
AM_RANGE(0x28c000, 0x28ffff) AM_READ(rabbit_tilemap3_r)
AM_RANGE(0x290000, 0x29ffff) AM_READ(SMH_RAM)
AM_RANGE(0x400000, 0x400003) AM_READ_PORT("INPUTS")
AM_RANGE(0xf00000, 0xffffff) AM_READ(SMH_RAM)
ADDRESS_MAP_END
static WRITE32_HANDLER( tmmjprd_paletteram_dword_w )
{
int r,g,b;
@ -774,36 +748,40 @@ static WRITE32_HANDLER( tmmjprd_paletteram_dword_w )
palette_set_color(space->machine,(offset^0xff)+0x2000,MAKE_RGB(r,g,b));
}
static ADDRESS_MAP_START( tmmjprd_writemem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM)
/* check these are used .. */
// AM_RANGE(0x200010, 0x200013) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs0 )
AM_RANGE(0x200100, 0x200117) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_tilemap_regs[0] ) // tilemap regs1
AM_RANGE(0x200120, 0x200137) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_tilemap_regs[1] ) // tilemap regs2
AM_RANGE(0x200140, 0x200157) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_tilemap_regs[2] ) // tilemap regs3
AM_RANGE(0x200160, 0x200177) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_tilemap_regs[3] ) // tilemap regs4
AM_RANGE(0x200200, 0x20021b) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_spriteregs ) // sprregs?
static ADDRESS_MAP_START( tmmjprd_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200010, 0x200013) AM_READ(randomrabbits) // gfx chip status?
AM_RANGE(0x200980, 0x200983) AM_READ(randomrabbits) // sound chip status?
AM_RANGE(0x200984, 0x200987) AM_READ(randomrabbits) // sound chip status?
/* check these are used .. */
// AM_RANGE(0x200010, 0x200013) AM_WRITEONLY AM_BASE( &rabbit_viewregs0 )
AM_RANGE(0x200100, 0x200117) AM_WRITEONLY AM_BASE( &rabbit_tilemap_regs[0] ) // tilemap regs1
AM_RANGE(0x200120, 0x200137) AM_WRITEONLY AM_BASE( &rabbit_tilemap_regs[1] ) // tilemap regs2
AM_RANGE(0x200140, 0x200157) AM_WRITEONLY AM_BASE( &rabbit_tilemap_regs[2] ) // tilemap regs3
AM_RANGE(0x200160, 0x200177) AM_WRITEONLY AM_BASE( &rabbit_tilemap_regs[3] ) // tilemap regs4
AM_RANGE(0x200200, 0x20021b) AM_WRITEONLY AM_BASE( &rabbit_spriteregs ) // sprregs?
// AM_RANGE(0x200300, 0x200303) AM_WRITE(rabbit_rombank_w) // used during rom testing, rombank/area select + something else?
// AM_RANGE(0x200400, 0x200413) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs6 ) // some global controls? (brightness etc.?)
// AM_RANGE(0x200500, 0x200503) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs7 )
// AM_RANGE(0x200400, 0x200413) AM_WRITEONLY AM_BASE( &rabbit_viewregs6 ) // some global controls? (brightness etc.?)
// AM_RANGE(0x200500, 0x200503) AM_WRITEONLY AM_BASE( &rabbit_viewregs7 )
// AM_RANGE(0x200700, 0x20070f) AM_WRITE(rabbit_blitter_w) AM_BASE( &rabbit_blitterregs )
// AM_RANGE(0x200800, 0x20080f) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs9 ) // never changes?
// AM_RANGE(0x200800, 0x20080f) AM_WRITEONLY AM_BASE( &rabbit_viewregs9 ) // never changes?
// AM_RANGE(0x200900, 0x20098f) AM_WRITE(rabbit_audio_w)
/* hmm */
// AM_RANGE(0x279700, 0x279713) AM_WRITE(SMH_RAM) AM_BASE( &rabbit_viewregs10 )
// AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_BASE( &rabbit_viewregs10 )
/* tilemaps */
AM_RANGE(0x280000, 0x283fff) AM_WRITE(rabbit_tilemap0_w)
AM_RANGE(0x284000, 0x287fff) AM_WRITE(rabbit_tilemap1_w)
AM_RANGE(0x288000, 0x28bfff) AM_WRITE(rabbit_tilemap2_w)
AM_RANGE(0x28c000, 0x28ffff) AM_WRITE(rabbit_tilemap3_w)
AM_RANGE(0x280000, 0x283fff) AM_READWRITE(rabbit_tilemap0_r,rabbit_tilemap0_w)
AM_RANGE(0x284000, 0x287fff) AM_READWRITE(rabbit_tilemap1_r,rabbit_tilemap1_w)
AM_RANGE(0x288000, 0x28bfff) AM_READWRITE(rabbit_tilemap2_r,rabbit_tilemap2_w)
AM_RANGE(0x28c000, 0x28ffff) AM_READWRITE(rabbit_tilemap3_r,rabbit_tilemap3_w)
/* ?? is palette ram shared with sprites in this case or just a different map */
AM_RANGE(0x290000, 0x29bfff) AM_WRITE(SMH_RAM) AM_BASE(&rabbit_spriteram)
AM_RANGE(0x29c000, 0x29ffff) AM_WRITE(tmmjprd_paletteram_dword_w) AM_BASE(&paletteram32)
AM_RANGE(0x400000, 0x400003) AM_WRITE(rabbit_eeprom_write)
AM_RANGE(0xf00000, 0xffffff) AM_WRITE(SMH_RAM)
AM_RANGE(0x290000, 0x29bfff) AM_RAM AM_BASE(&rabbit_spriteram)
AM_RANGE(0x29c000, 0x29ffff) AM_RAM_WRITE(tmmjprd_paletteram_dword_w) AM_BASE(&paletteram32)
AM_RANGE(0x400000, 0x400003) AM_READ_PORT("INPUTS") AM_WRITE(rabbit_eeprom_write)
AM_RANGE(0xf00000, 0xffffff) AM_RAM
ADDRESS_MAP_END
static INPUT_PORTS_START( rabbit )
PORT_START("INPUTS")
PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) // as per code at 4d932
@ -1044,7 +1022,7 @@ static INTERRUPT_GEN( rabbit_interrupts )
static MACHINE_DRIVER_START( rabbit )
MDRV_CPU_ADD("maincpu",M68EC020,24000000) /* 24 MHz */
MDRV_CPU_PROGRAM_MAP(rabbit_readmem,rabbit_writemem)
MDRV_CPU_PROGRAM_MAP(rabbit_map,0)
MDRV_CPU_VBLANK_INT_HACK(rabbit_interrupts,262)
/* (rabbit) */
/* lev 1 : 0x64 : 0000 027c -
@ -1169,7 +1147,7 @@ static INTERRUPT_GEN( tmmjprd_interrupt )
static MACHINE_DRIVER_START( tmmjprd )
MDRV_IMPORT_FROM(rabbit)
MDRV_CPU_MODIFY("maincpu")
MDRV_CPU_PROGRAM_MAP(tmmjprd_readmem,tmmjprd_writemem)
MDRV_CPU_PROGRAM_MAP(tmmjprd_map,0)
MDRV_CPU_VBLANK_INT_HACK(tmmjprd_interrupt,2)
MDRV_VIDEO_START(tmmjprd)

View File

@ -272,71 +272,47 @@ static WRITE16_HANDLER( jumping_sound_w )
MEMORY STRUCTURES
***************************************************************************/
static ADDRESS_MAP_START( rainbow_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
AM_RANGE(0x10c000, 0x10ffff) AM_READ(SMH_RAM) /* main RAM */
AM_RANGE(0x200000, 0x200fff) AM_READ(SMH_RAM) /* palette */
AM_RANGE(0x201000, 0x203fff) AM_READ(SMH_RAM) /* read in initial checks */
static ADDRESS_MAP_START( rainbow_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */
AM_RANGE(0x390000, 0x390003) AM_READ_PORT("DSWA")
AM_RANGE(0x3b0000, 0x3b0003) AM_READ_PORT("DSWB")
AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP
AM_RANGE(0x3e0002, 0x3e0003) AM_READ8(taitosound_comm_r, 0x00ff)
AM_RANGE(0x800000, 0x8007ff) AM_READ(rainbow_cchip_ram_r)
AM_RANGE(0x800802, 0x800803) AM_READ(rainbow_cchip_ctrl_r)
AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r)
AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram + other stuff */
ADDRESS_MAP_END
static ADDRESS_MAP_START( rainbow_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(SMH_RAM)
AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x201000, 0x203fff) AM_WRITE(SMH_RAM) /* written in initial checks */
AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(rainbow_spritectrl_w)
AM_RANGE(0x3c0000, 0x3c0003) AM_WRITENOP /* written very often, watchdog? */
AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0x00ff)
AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE8(taitosound_comm_w, 0x00ff)
AM_RANGE(0x800000, 0x8007ff) AM_WRITE(rainbow_cchip_ram_w)
AM_RANGE(0x800802, 0x800803) AM_WRITE(rainbow_cchip_ctrl_w)
AM_RANGE(0x3b0000, 0x3b0003) AM_READ_PORT("DSWB")
AM_RANGE(0x3c0000, 0x3c0003) AM_WRITENOP /* written very often, watchdog? */
AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff)
AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE8(taitosound_comm_r,taitosound_comm_w, 0x00ff)
AM_RANGE(0x800000, 0x8007ff) AM_READWRITE(rainbow_cchip_ram_r,rainbow_cchip_ram_w)
AM_RANGE(0x800802, 0x800803) AM_READWRITE(rainbow_cchip_ctrl_r,rainbow_cchip_ctrl_w)
AM_RANGE(0x800c00, 0x800c01) AM_WRITE(rainbow_cchip_bank_w)
AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(PC080SN_word_0_w)
AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(PC080SN_word_0_r,PC080SN_word_0_w)
AM_RANGE(0xc20000, 0xc20003) AM_WRITE(PC080SN_yscroll_word_0_w)
AM_RANGE(0xc40000, 0xc40003) AM_WRITE(PC080SN_xscroll_word_0_w)
AM_RANGE(0xc50000, 0xc50003) AM_WRITE(PC080SN_ctrl_word_0_w)
AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram + other stuff */
AM_RANGE(0xd00000, 0xd03fff) AM_READWRITE(PC090OJ_word_0_r,PC090OJ_word_0_w) /* sprite ram + other stuff */
ADDRESS_MAP_END
static ADDRESS_MAP_START( jumping_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x09ffff) AM_READ(SMH_ROM)
AM_RANGE(0x10c000, 0x10ffff) AM_READ(SMH_RAM) /* main RAM */
AM_RANGE(0x200000, 0x200fff) AM_READ(SMH_RAM) /* palette */
AM_RANGE(0x201000, 0x203fff) AM_READ(SMH_RAM) /* read in initial checks */
static ADDRESS_MAP_START( jumping_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("DSWA")
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSWB")
AM_RANGE(0x401000, 0x401001) AM_READ_PORT("401001")
AM_RANGE(0x401002, 0x401003) AM_READ_PORT("401003")
AM_RANGE(0x420000, 0x420001) AM_READNOP /* read, but result not used */
AM_RANGE(0x440000, 0x4407ff) AM_READ(SMH_RAM)
AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r)
AM_RANGE(0xd00000, 0xd01fff) AM_READ(SMH_RAM) /* original spriteram location, needed for Attract Mode */
ADDRESS_MAP_END
static ADDRESS_MAP_START( jumping_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x09ffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(SMH_RAM)
AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x201000, 0x203fff) AM_WRITE(SMH_RAM) /* written in initial checks */
AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(jumping_spritectrl_w)
AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog? */
AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog? */
AM_RANGE(0x400006, 0x400007) AM_WRITE(jumping_sound_w)
AM_RANGE(0x420000, 0x420001) AM_READNOP /* read, but result not used */
AM_RANGE(0x430000, 0x430003) AM_WRITE(PC080SN_yscroll_word_0_w)
AM_RANGE(0x440000, 0x4407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
AM_RANGE(0x800000, 0x80ffff) AM_WRITENOP /* original c-chip location (not used) */
AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(PC080SN_word_0_w)
AM_RANGE(0xc20000, 0xc20003) AM_WRITENOP /* seems it is a leftover from rainbow: scroll y written here too */
AM_RANGE(0x440000, 0x4407ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
AM_RANGE(0x800000, 0x80ffff) AM_WRITENOP /* original c-chip location (not used) */
AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(PC080SN_word_0_r,PC080SN_word_0_w)
AM_RANGE(0xc20000, 0xc20003) AM_WRITENOP /* seems it is a leftover from rainbow: scroll y written here too */
AM_RANGE(0xc40000, 0xc40003) AM_WRITE(PC080SN_xscroll_word_0_w)
AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(SMH_RAM) /* original spriteram location, needed for Attract Mode */
AM_RANGE(0xd00000, 0xd01fff) AM_RAM /* original spriteram location, needed for Attract Mode */
ADDRESS_MAP_END
@ -349,7 +325,7 @@ ADDRESS_MAP_END
static WRITE8_DEVICE_HANDLER( bankswitch_w )
{
memory_set_bankptr(device->machine, 5, memory_region(device->machine, "audiocpu") + ((data - 1) & 3) * 0x4000 + 0x10000);
memory_set_bankptr(device->machine, 1, memory_region(device->machine, "audiocpu") + ((data - 1) & 3) * 0x4000 + 0x10000);
}
static READ8_HANDLER( jumping_latch_r )
@ -358,38 +334,24 @@ static READ8_HANDLER( jumping_latch_r )
}
static ADDRESS_MAP_START( rainbow_s_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK(5))
AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM)
AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym", ym2151_r)
AM_RANGE(0x9002, 0x9100) AM_READ(SMH_RAM)
AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( rainbow_s_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM)
AM_RANGE(0x9000, 0x9001) AM_DEVWRITE("ym", ym2151_w)
static ADDRESS_MAP_START( rainbow_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1)
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym", ym2151_r,ym2151_w)
AM_RANGE(0x9002, 0x9100) AM_READNOP
AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w)
AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w)
AM_RANGE(0xa001, 0xa001) AM_READWRITE(taitosound_slave_comm_r,taitosound_slave_comm_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( jumping_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM)
AM_RANGE(0xb000, 0xb001) AM_DEVREAD("ym1", ym2203_r)
AM_RANGE(0xb400, 0xb401) AM_DEVREAD("ym2", ym2203_r)
static ADDRESS_MAP_START( jumping_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ym1", ym2203_r,ym2203_w)
AM_RANGE(0xb400, 0xb401) AM_DEVREADWRITE("ym2", ym2203_r,ym2203_w)
AM_RANGE(0xb800, 0xb800) AM_READ(jumping_latch_r)
AM_RANGE(0xc000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( jumping_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM)
AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0xb400, 0xb401) AM_DEVWRITE("ym2", ym2203_w)
AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP /* looks like a bankswitch, but sound works with or without it */
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -609,11 +571,11 @@ static MACHINE_DRIVER_START( rainbow )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(rainbow_readmem,rainbow_writemem)
MDRV_CPU_PROGRAM_MAP(rainbow_map,0)
MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
MDRV_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(rainbow_s_readmem,rainbow_s_writemem)
MDRV_CPU_PROGRAM_MAP(rainbow_sound_map,0)
MDRV_QUANTUM_TIME(HZ(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
@ -641,16 +603,16 @@ static MACHINE_DRIVER_START( rainbow )
MACHINE_DRIVER_END
/* Jumping The pcb has 2 xtals, 24MHz and 18,432MHz */
/* Jumping: The PCB has 2 Xtals, 24MHz and 18,432MHz */
static MACHINE_DRIVER_START( jumping )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, XTAL_24MHz/3) /* not verified but matches original */
MDRV_CPU_PROGRAM_MAP(jumping_readmem,jumping_writemem)
MDRV_CPU_PROGRAM_MAP(jumping_map,0)
MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
MDRV_CPU_ADD("audiocpu", Z80, XTAL_18_432MHz/6) /* not verified but music tempo matches original */
MDRV_CPU_PROGRAM_MAP(jumping_sound_readmem,jumping_sound_writemem)
MDRV_CPU_PROGRAM_MAP(jumping_sound_map,0)
MDRV_QUANTUM_TIME(HZ(600)) /* 10 CPU slices per frame - enough ? */

View File

@ -1,5 +1,6 @@
/* Red Corsair */
/* skeleton driver */
/* This driver is not being worked on by the original author.
Somebody will probably need to do extensive research on the
PCB to establish what the custom block actually contains,
@ -53,12 +54,8 @@ so even the Main CPU is unknown, assuming the 8085 is the sound CPU
#include "driver.h"
#include "cpu/i8085/i8085.h"
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
static ADDRESS_MAP_START( rcorsair_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM
ADDRESS_MAP_END
static INPUT_PORTS_START( inports )
@ -120,7 +117,7 @@ static MACHINE_DRIVER_START( rcorsair )
program code, unknown type */
MDRV_CPU_ADD("maincpu", 8085A,8000000) /* Sound CPU? */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(rcorsair_map,0)
// MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
MDRV_SCREEN_ADD("screen", RASTER)

View File

@ -38,18 +38,7 @@ extern VIDEO_START( redclash );
extern VIDEO_UPDATE( redclash );
extern VIDEO_EOF( redclash );
/*
This game doesn't have VBlank interrupts.
Interrupts are still used, but they are related to coin
slots. Left slot generates an IRQ, Right slot a NMI.
*/
static INTERRUPT_GEN( redclash_interrupt )
{
if (input_port_read(device->machine, "FAKE") & 1) /* Left Coin */
cpu_set_input_line(device,0,ASSERT_LINE);
else if (input_port_read(device->machine, "FAKE") & 2) /* Right Coin */
cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
static WRITE8_HANDLER( irqack_w )
{
@ -57,22 +46,15 @@ static WRITE8_HANDLER( irqack_w )
}
static ADDRESS_MAP_START( zero_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_READ(SMH_ROM)
AM_RANGE(0x3000, 0x37ff) AM_READ(SMH_RAM)
static ADDRESS_MAP_START( zerohour_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x37ff) AM_RAM
AM_RANGE(0x3800, 0x3bff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(redclash_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("IN0") /* IN0 */
AM_RANGE(0x4801, 0x4801) AM_READ_PORT("IN1") /* IN1 */
AM_RANGE(0x4802, 0x4802) AM_READ_PORT("DSW1") /* DSW0 */
AM_RANGE(0x4803, 0x4803) AM_READ_PORT("DSW2") /* DSW1 */
AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM) /* video RAM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( zero_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x3000, 0x37ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x3800, 0x3bff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x4000, 0x43ff) AM_WRITE(redclash_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x5000, 0x5007) AM_WRITENOP /* to sound board */
AM_RANGE(0x5800, 0x5800) AM_WRITE(redclash_star0_w)
AM_RANGE(0x5801, 0x5804) AM_WRITENOP /* to sound board */
@ -83,34 +65,43 @@ static ADDRESS_MAP_START( zero_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x7800, 0x7800) AM_WRITE(irqack_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_READ(SMH_ROM)
static ADDRESS_MAP_START( redclash_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_ROM
// AM_RANGE(0x3000, 0x3000) AM_WRITENOP
// AM_RANGE(0x3800, 0x3800) AM_WRITENOP
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(redclash_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("IN0") /* IN0 */
AM_RANGE(0x4801, 0x4801) AM_READ_PORT("IN1") /* IN1 */
AM_RANGE(0x4802, 0x4802) AM_READ_PORT("DSW1") /* DSW0 */
AM_RANGE(0x4803, 0x4803) AM_READ_PORT("DSW2") /* DSW1 */
AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM) /* video RAM */
AM_RANGE(0x6000, 0x67ff) AM_READ(SMH_RAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM)
// AM_RANGE(0x3000, 0x3000) AM_WRITENOP
// AM_RANGE(0x3800, 0x3800) AM_WRITENOP
AM_RANGE(0x4000, 0x43ff) AM_WRITE(redclash_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x5000, 0x5007) AM_WRITENOP /* to sound board */
AM_RANGE(0x5800, 0x5800) AM_WRITE(redclash_star0_w)
AM_RANGE(0x5801, 0x5801) AM_WRITE(redclash_gfxbank_w)
AM_RANGE(0x5805, 0x5805) AM_WRITE(redclash_star1_w)
AM_RANGE(0x5806, 0x5806) AM_WRITE(redclash_star2_w)
AM_RANGE(0x5807, 0x5807) AM_WRITE(redclash_flipscreen_w)
AM_RANGE(0x6000, 0x67ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x6800, 0x6bff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x6800, 0x6bff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x7000, 0x7000) AM_WRITE(redclash_star_reset_w)
AM_RANGE(0x7800, 0x7800) AM_WRITE(irqack_w)
ADDRESS_MAP_END
/*
This game doesn't have VBlank interrupts.
Interrupts are still used, but they are related to coin
slots. Left slot generates an IRQ, Right slot a NMI.
*/
static INPUT_CHANGED( left_coin_inserted )
{
if(newval)
cputag_set_input_line(field->port->machine, "maincpu", 0, ASSERT_LINE);
}
static INPUT_CHANGED( right_coin_inserted )
{
if(newval)
cputag_set_input_line(field->port->machine, "maincpu", INPUT_LINE_NMI, PULSE_LINE);
}
static INPUT_PORTS_START( redclash )
PORT_START("IN0") /* IN0 */
@ -201,8 +192,8 @@ static INPUT_PORTS_START( redclash )
/* handler to be notified of coin insertions. We use IMPULSE to */
/* trigger exactly one interrupt, without having to check when the */
/* user releases the key. */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1)
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED(left_coin_inserted, 0)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED(right_coin_inserted, 0)
INPUT_PORTS_END
static INPUT_PORTS_START( zerohour )
@ -276,8 +267,8 @@ static INPUT_PORTS_START( zerohour )
/* handler to be notified of coin insertions. We use IMPULSE to */
/* trigger exactly one interrupt, without having to check when the */
/* user releases the key. */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1)
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED(left_coin_inserted, 0)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED(right_coin_inserted, 0)
INPUT_PORTS_END
static const gfx_layout charlayout =
@ -350,8 +341,7 @@ static MACHINE_DRIVER_START( zerohour )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */
MDRV_CPU_PROGRAM_MAP(zero_readmem,zero_writemem)
MDRV_CPU_VBLANK_INT("screen", redclash_interrupt)
MDRV_CPU_PROGRAM_MAP(zerohour_map,0)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
@ -377,8 +367,7 @@ static MACHINE_DRIVER_START( redclash )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_VBLANK_INT("screen", redclash_interrupt)
MDRV_CPU_PROGRAM_MAP(redclash_map,0)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)

View File

@ -535,51 +535,33 @@ static WRITE8_HANDLER( renegade_coin_counter_w )
/********************************************************************************************/
static ADDRESS_MAP_START( main_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x37ff) AM_READ(SMH_RAM)
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") /* Player#1 controls, P1,P2 start */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") /* Player#2 controls, coin triggers */
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW2") /* DIP2 various IO ports */
AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW1") /* DIP1 */
AM_RANGE(0x3804, 0x3804) AM_READ(mcu_r)
AM_RANGE(0x3805, 0x3805) AM_READ(mcu_reset_r)
AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK(1))
AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x1800, 0x1fff) AM_WRITE(renegade_videoram2_w) AM_BASE(&renegade_videoram2)
AM_RANGE(0x2000, 0x27ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
AM_RANGE(0x2800, 0x2fff) AM_WRITE(renegade_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x3000, 0x30ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE(&paletteram)
AM_RANGE(0x3100, 0x31ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE(&paletteram_2)
AM_RANGE(0x3800, 0x3800) AM_WRITE(renegade_scroll0_w)
AM_RANGE(0x3801, 0x3801) AM_WRITE(renegade_scroll1_w)
AM_RANGE(0x3802, 0x3802) AM_WRITE(sound_w)
AM_RANGE(0x3803, 0x3803) AM_WRITE(renegade_flipscreen_w)
AM_RANGE(0x3804, 0x3804) AM_WRITE(mcu_w)
AM_RANGE(0x3805, 0x3805) AM_WRITE(bankswitch_w)
static ADDRESS_MAP_START( renegade_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(renegade_videoram2_w) AM_BASE(&renegade_videoram2)
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE(&spriteram)
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(renegade_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x3000, 0x30ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE(&paletteram)
AM_RANGE(0x3100, 0x31ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE(&paletteram_2)
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") AM_WRITE(renegade_scroll0_w) /* Player#1 controls, P1,P2 start */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") AM_WRITE(renegade_scroll1_w) /* Player#2 controls, coin triggers */
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW2") AM_WRITE(sound_w) /* DIP2 various IO ports */
AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW1") AM_WRITE(renegade_flipscreen_w) /* DIP1 */
AM_RANGE(0x3804, 0x3804) AM_READWRITE(mcu_r,mcu_w)
AM_RANGE(0x3805, 0x3805) AM_READWRITE(mcu_reset_r,bankswitch_w)
AM_RANGE(0x3806, 0x3806) AM_WRITENOP // ?? watchdog
AM_RANGE(0x3807, 0x3807) AM_WRITE(renegade_coin_counter_w)
AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_RAM)
static ADDRESS_MAP_START( renegade_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_r)
AM_RANGE(0x2800, 0x2801) AM_DEVREAD("ym", ym3526_r)
AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_WRITE(SMH_RAM)
AM_RANGE(0x1800, 0x1800) AM_WRITENOP // this gets written the same values as 0x2000
AM_RANGE(0x2000, 0x2000) AM_WRITE(adpcm_play_w)
AM_RANGE(0x2800, 0x2801) AM_DEVWRITE("ym", ym3526_w)
AM_RANGE(0x2800, 0x2801) AM_DEVREADWRITE("ym", ym3526_r,ym3526_w)
AM_RANGE(0x3000, 0x3000) AM_WRITENOP /* adpcm related? stereo pan? */
AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -799,11 +781,11 @@ static MACHINE_DRIVER_START( renegade )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 12000000/8) /* 1.5 MHz (measured) */
MDRV_CPU_PROGRAM_MAP(main_readmem,main_writemem)
MDRV_CPU_PROGRAM_MAP(renegade_map,0)
MDRV_CPU_VBLANK_INT_HACK(renegade_interrupt,2)
MDRV_CPU_ADD("audiocpu", M6809, 12000000/8)
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_PROGRAM_MAP(renegade_sound_map,0)
/* IRQs are caused by the main CPU */
MDRV_MACHINE_START(renegade)
MDRV_MACHINE_RESET(renegade)

View File

@ -171,35 +171,18 @@ static MACHINE_RESET( themj )
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x9fff) AM_READ(SMH_ROM)
AM_RANGE(0xa000, 0xa7ff) AM_READ(SMH_RAM)
AM_RANGE(0xa800, 0xb7ff) AM_READ(SMH_RAM)
AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_ROM)
AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM) /* rmhaisei only */
ADDRESS_MAP_END
static ADDRESS_MAP_START( themj_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_BANK(1))
AM_RANGE(0xa000, 0xa7ff) AM_READ(SMH_RAM)
AM_RANGE(0xa800, 0xb7ff) AM_READ(SMH_RAM)
AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_BANK(2))
AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x9fff) AM_WRITE(SMH_ROM)
AM_RANGE(0xa000, 0xa7ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xa800, 0xafff) AM_WRITE(rmhaihai_colorram_w) AM_BASE(&colorram)
AM_RANGE(0xb000, 0xb7ff) AM_WRITE(rmhaihai_videoram_w) AM_BASE(&videoram)
static ADDRESS_MAP_START( rmhaihai_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM
AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(rmhaihai_colorram_w) AM_BASE(&colorram)
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(rmhaihai_videoram_w) AM_BASE(&videoram)
AM_RANGE(0xb83c, 0xb83c) AM_WRITENOP // ??
AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP // ??
AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_ROM)
AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_ROM) /* rmhaisei only */
AM_RANGE(0xc000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_ROM /* rmhaisei only */
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
static ADDRESS_MAP_START( rmhaihai_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(samples_r)
AM_RANGE(0x8000, 0x8000) AM_READWRITE(keyboard_r, SMH_NOP) // ??
AM_RANGE(0x8001, 0x8001) AM_READWRITE(SMH_NOP, keyboard_w) // ??
@ -212,6 +195,16 @@ static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0xbc0c, 0xbc0c) AM_WRITENOP // ??
ADDRESS_MAP_END
static ADDRESS_MAP_START( themj_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(1)
AM_RANGE(0xa000, 0xa7ff) AM_RAM
AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(rmhaihai_colorram_w) AM_BASE(&colorram)
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(rmhaihai_videoram_w) AM_BASE(&videoram)
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK(2)
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( themj_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(samples_r)
AM_RANGE(0x8000, 0x8000) AM_READWRITE(keyboard_r, SMH_NOP) // ??
@ -226,6 +219,7 @@ static ADDRESS_MAP_START( themj_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0xbc0c, 0xbc0c) AM_WRITENOP // ??
ADDRESS_MAP_END
static INPUT_PORTS_START( mjctrl )
PORT_START("KEY0") // fake, handled by keyboard_r()
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_MAHJONG_SMALL )
@ -415,11 +409,11 @@ static const gfx_layout charlayout =
16*8
};
static GFXDECODE_START( 1 )
static GFXDECODE_START( rmhaihai )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 32 )
GFXDECODE_END
static GFXDECODE_START( 2 )
static GFXDECODE_START( themj )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 64 )
GFXDECODE_END
@ -445,8 +439,8 @@ static MACHINE_DRIVER_START( rmhaihai )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu",Z80,20000000/4) /* 5 MHz ??? */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_PROGRAM_MAP(rmhaihai_map,0)
MDRV_CPU_IO_MAP(rmhaihai_io_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
/* video hardware */
@ -457,7 +451,7 @@ static MACHINE_DRIVER_START( rmhaihai )
MDRV_SCREEN_SIZE(64*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(4*8, 60*8-1, 2*8, 30*8-1)
MDRV_GFXDECODE(1)
MDRV_GFXDECODE(rmhaihai)
MDRV_PALETTE_LENGTH(0x100)
MDRV_PALETTE_INIT(RRRR_GGGG_BBBB)
@ -482,7 +476,7 @@ static MACHINE_DRIVER_START( rmhaisei )
MDRV_IMPORT_FROM(rmhaihai)
/* video hardware */
MDRV_GFXDECODE(2)
MDRV_GFXDECODE(themj)
MDRV_PALETTE_LENGTH(0x200)
MACHINE_DRIVER_END
@ -492,13 +486,13 @@ static MACHINE_DRIVER_START( themj )
MDRV_IMPORT_FROM(rmhaihai)
MDRV_CPU_MODIFY("maincpu")
MDRV_CPU_PROGRAM_MAP(themj_readmem,writemem)
MDRV_CPU_PROGRAM_MAP(themj_map,0)
MDRV_CPU_IO_MAP(themj_io_map,0)
MDRV_MACHINE_RESET(themj)
/* video hardware */
MDRV_GFXDECODE(2)
MDRV_GFXDECODE(themj)
MDRV_PALETTE_LENGTH(0x200)
MACHINE_DRIVER_END

View File

@ -100,50 +100,34 @@ static WRITE8_DEVICE_HANDLER( rockrage_speech_w ) {
vlm5030_st( device, ( data >> 0 ) & 0x01 );
}
static ADDRESS_MAP_START( rockrage_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_READ(K007342_r) /* Color RAM + Video RAM */
AM_RANGE(0x2000, 0x21ff) AM_READ(K007420_r) /* Sprite RAM */
AM_RANGE(0x2200, 0x23ff) AM_READ(K007342_scroll_r) /* Scroll RAM */
AM_RANGE(0x2400, 0x247f) AM_READ(SMH_RAM) /* Palette */
static ADDRESS_MAP_START( rockrage_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(K007342_r,K007342_w) /* Color RAM + Video RAM */
AM_RANGE(0x2000, 0x21ff) AM_READWRITE(K007420_r,K007420_w) /* Sprite RAM */
AM_RANGE(0x2200, 0x23ff) AM_READWRITE(K007342_scroll_r,K007342_scroll_w) /* Scroll RAM */
AM_RANGE(0x2400, 0x247f) AM_RAM AM_BASE(&paletteram) /* Palette */
AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */
AM_RANGE(0x2e00, 0x2e00) AM_READ_PORT("SYSTEM")
AM_RANGE(0x2e01, 0x2e01) AM_READ_PORT("P1")
AM_RANGE(0x2e02, 0x2e02) AM_READ_PORT("P2")
AM_RANGE(0x2e03, 0x2e03) AM_READ_PORT("DSW2")
AM_RANGE(0x2e40, 0x2e40) AM_READ_PORT("DSW1")
AM_RANGE(0x2e00, 0x2e00) AM_READ_PORT("SYSTEM")
AM_RANGE(0x4000, 0x5fff) AM_READ(SMH_RAM) /* RAM */
AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_BANK(1)) /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM */
AM_RANGE(0x2e80, 0x2e80) AM_WRITE(rockrage_sh_irqtrigger_w) /* cause interrupt on audio CPU */
AM_RANGE(0x2ec0, 0x2ec0) AM_WRITE(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x2f00, 0x2f00) AM_WRITE(rockrage_vreg_w) /* ??? */
AM_RANGE(0x2f40, 0x2f40) AM_WRITE(rockrage_bankswitch_w) /* bankswitch control */
AM_RANGE(0x4000, 0x5fff) AM_RAM /* RAM */
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1) /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( rockrage_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_WRITE(K007342_w) /* Color RAM + Video RAM */
AM_RANGE(0x2000, 0x21ff) AM_WRITE(K007420_w) /* Sprite RAM */
AM_RANGE(0x2200, 0x23ff) AM_WRITE(K007342_scroll_w) /* Scroll RAM */
AM_RANGE(0x2400, 0x247f) AM_WRITE(SMH_RAM) AM_BASE(&paletteram)/* palette */
AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */
AM_RANGE(0x2e80, 0x2e80) AM_WRITE(rockrage_sh_irqtrigger_w)/* cause interrupt on audio CPU */
AM_RANGE(0x2ec0, 0x2ec0) AM_WRITE(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x2f00, 0x2f00) AM_WRITE(rockrage_vreg_w) /* ??? */
AM_RANGE(0x2f40, 0x2f40) AM_WRITE(rockrage_bankswitch_w) /* bankswitch control */
AM_RANGE(0x4000, 0x5fff) AM_WRITE(SMH_RAM) /* RAM */
AM_RANGE(0x6000, 0x7fff) AM_WRITE(SMH_RAM) /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) /* ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( rockrage_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x3000, 0x3000) AM_DEVREAD("vlm", rockrage_VLM5030_busy_r)/* VLM5030 */
AM_RANGE(0x5000, 0x5000) AM_READ(soundlatch_r) /* soundlatch_r */
AM_RANGE(0x6000, 0x6001) AM_DEVREAD("ym", ym2151_r) /* YM 2151 */
AM_RANGE(0x7000, 0x77ff) AM_READ(SMH_RAM) /* RAM */
AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( rockrage_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("vlm", vlm5030_data_w) /* VLM5030 */
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("vlm", rockrage_speech_w) /* VLM5030 */
AM_RANGE(0x6000, 0x6001) AM_DEVWRITE("ym", ym2151_w) /* YM 2151 */
AM_RANGE(0x7000, 0x77ff) AM_WRITE(SMH_RAM) /* RAM */
AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) /* ROM */
static ADDRESS_MAP_START( rockrage_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("vlm", vlm5030_data_w) /* VLM5030 */
AM_RANGE(0x3000, 0x3000) AM_DEVREAD("vlm", rockrage_VLM5030_busy_r) /* VLM5030 */
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("vlm", rockrage_speech_w) /* VLM5030 */
AM_RANGE(0x5000, 0x5000) AM_READ(soundlatch_r) /* soundlatch_r */
AM_RANGE(0x6000, 0x6001) AM_DEVREADWRITE("ym", ym2151_r,ym2151_w) /* YM 2151 */
AM_RANGE(0x7000, 0x77ff) AM_RAM /* RAM */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
/***************************************************************************
@ -286,11 +270,11 @@ static MACHINE_DRIVER_START( rockrage )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", HD6309, 3000000*4) /* 24MHz/8 */
MDRV_CPU_PROGRAM_MAP(rockrage_readmem,rockrage_writemem)
MDRV_CPU_PROGRAM_MAP(rockrage_map,0)
MDRV_CPU_VBLANK_INT("screen", rockrage_interrupt)
MDRV_CPU_ADD("audiocpu", M6809, 1500000) /* 24MHz/16 */
MDRV_CPU_PROGRAM_MAP(rockrage_readmem_sound,rockrage_writemem_sound)
MDRV_CPU_PROGRAM_MAP(rockrage_sound_map,0)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)

View File

@ -1,5 +1,7 @@
/***************************************************************************
Roc'n Rope (c) 1983 Konami
Based on drivers from Juno First emulator by Chris Hardy (chrish@kcbbs.gen.nz)
***************************************************************************/
@ -31,24 +33,19 @@ static WRITE8_HANDLER( rocnrope_interrupt_vector_w )
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
static ADDRESS_MAP_START( rocnrope_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x3080, 0x3080) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3081, 0x3081) AM_READ_PORT("P1")
AM_RANGE(0x3082, 0x3082) AM_READ_PORT("P2")
AM_RANGE(0x3083, 0x3083) AM_READ_PORT("DSW1")
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW2")
AM_RANGE(0x3100, 0x3100) AM_READ_PORT("DSW3")
AM_RANGE(0x4000, 0x5fff) AM_READ(SMH_RAM)
AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x402f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
AM_RANGE(0x4400, 0x442f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x4800, 0x4bff) AM_WRITE(rocnrope_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x4c00, 0x4fff) AM_WRITE(rocnrope_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x5000, 0x5fff) AM_WRITE(SMH_RAM)
AM_RANGE(0x4000, 0x402f) AM_RAM AM_BASE(&spriteram_2)
AM_RANGE(0x4400, 0x442f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(rocnrope_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x4c00, 0x4fff) AM_RAM_WRITE(rocnrope_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x5000, 0x5fff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x8080, 0x8080) AM_WRITE(rocnrope_flipscreen_w)
AM_RANGE(0x8081, 0x8081) AM_WRITE(timeplt_sh_irqtrigger_w) /* cause interrupt on audio CPU */
@ -58,7 +55,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8087, 0x8087) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x8100, 0x8100) AM_WRITE(soundlatch_w)
AM_RANGE(0x8182, 0x818d) AM_WRITE(rocnrope_interrupt_vector_w)
AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -168,7 +165,7 @@ static MACHINE_DRIVER_START( rocnrope )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6809, MASTER_CLOCK / 3 / 4) /* Verified in schematics */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(rocnrope_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
/* video hardware */

View File

@ -80,51 +80,33 @@ static READ8_HANDLER( pip_r )
return 0x7f;
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0020, 0x0020) AM_READ(watchdog_reset_r)
AM_RANGE(0x0030, 0x0031) AM_DEVREAD("konami", rollerg_sound_r) /* K053260 */
static ADDRESS_MAP_START( rollerg_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0010, 0x0010) AM_WRITE(rollerg_0010_w)
AM_RANGE(0x0020, 0x0020) AM_READWRITE(watchdog_reset_r,watchdog_reset_w)
AM_RANGE(0x0030, 0x0031) AM_DEVREADWRITE("konami", rollerg_sound_r,k053260_w) /* K053260 */
AM_RANGE(0x0040, 0x0040) AM_WRITE(soundirq_w)
AM_RANGE(0x0050, 0x0050) AM_READ_PORT("P1")
AM_RANGE(0x0051, 0x0051) AM_READ_PORT("P2")
AM_RANGE(0x0052, 0x0052) AM_READ_PORT("DSW3")
AM_RANGE(0x0053, 0x0053) AM_READ_PORT("DSW1")
AM_RANGE(0x0060, 0x0060) AM_READ_PORT("DSW2")
AM_RANGE(0x0061, 0x0061) AM_READ(pip_r) /* ????? */
AM_RANGE(0x0300, 0x030f) AM_READ(K053244_r)
AM_RANGE(0x0800, 0x0fff) AM_READ(rollerg_K051316_r)
AM_RANGE(0x1000, 0x17ff) AM_READ(K053245_r)
AM_RANGE(0x1800, 0x1fff) AM_READ(SMH_RAM)
AM_RANGE(0x2000, 0x3aff) AM_READ(SMH_RAM)
AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK(1))
AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0010, 0x0010) AM_WRITE(rollerg_0010_w)
AM_RANGE(0x0020, 0x0020) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x0030, 0x0031) AM_DEVWRITE("konami", k053260_w)
AM_RANGE(0x0040, 0x0040) AM_WRITE(soundirq_w)
AM_RANGE(0x0100, 0x010f) AM_WRITENOP /* 053252? */
AM_RANGE(0x0200, 0x020f) AM_WRITE(K051316_ctrl_0_w)
AM_RANGE(0x0300, 0x030f) AM_WRITE(K053244_w)
AM_RANGE(0x0800, 0x0fff) AM_WRITE(K051316_0_w)
AM_RANGE(0x1000, 0x17ff) AM_WRITE(K053245_w)
AM_RANGE(0x1800, 0x1fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)
AM_RANGE(0x2000, 0x3aff) AM_WRITE(SMH_RAM)
AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x0300, 0x030f) AM_READWRITE(K053244_r,K053244_w)
AM_RANGE(0x0800, 0x0fff) AM_READWRITE(rollerg_K051316_r,K051316_0_w)
AM_RANGE(0x1000, 0x17ff) AM_READWRITE(K053245_r,K053245_w)
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)
AM_RANGE(0x2000, 0x3aff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
AM_RANGE(0xa000, 0xa02f) AM_DEVREAD("konami", k053260_r)
AM_RANGE(0xc000, 0xc001) AM_DEVREAD("ym", ym3812_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xa000, 0xa02f) AM_DEVWRITE("konami", k053260_w)
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym3812_w)
static ADDRESS_MAP_START( rollerg_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa02f) AM_DEVREADWRITE("konami", k053260_r,k053260_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym3812_r,ym3812_w)
AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w)
ADDRESS_MAP_END
@ -239,11 +221,11 @@ static MACHINE_DRIVER_START( rollerg )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", KONAMI, 3000000) /* ? */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(rollerg_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
MDRV_CPU_ADD("audiocpu", Z80, 3579545)
MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound)
MDRV_CPU_PROGRAM_MAP(rollerg_sound_map,0)
/* NMIs are generated by the 053260 */
MDRV_MACHINE_RESET(rollerg)

View File

@ -1,7 +1,10 @@
/***************************************************************************
Fighting Roller (c) 1983 Kaneko
Issues:
-sound effects missing
***************************************************************************/
#include "driver.h"
@ -34,57 +37,39 @@ static WRITE8_HANDLER( ra_fake_d800_w )
/* logerror("d900: %02X\n",data);*/
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_ROM) /* only rollace2 */
AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM)
AM_RANGE(0xd900, 0xd900) AM_READ(ra_fake_d800_r) /* protection ??*/
AM_RANGE(0xe000, 0xe3ff) AM_READ(SMH_RAM)
AM_RANGE(0xe400, 0xe47f) AM_READ(SMH_RAM)
AM_RANGE(0xec00, 0xec0f) AM_READNOP /* Analog sound effects ??*/
AM_RANGE(0xf000, 0xf0ff) AM_READ(SMH_RAM)
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2")
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
static ADDRESS_MAP_START( rollrace_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROM /* only rollace2 */
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd806, 0xd806) AM_READNOP /* looks like a watchdog, bit4 checked*/
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x9fff) AM_WRITE(SMH_ROM)
AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
AM_RANGE(0xd900, 0xd900) AM_WRITE(ra_fake_d800_w) /* protection ?? */
AM_RANGE(0xe000, 0xe3ff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0xe400, 0xe47f) AM_WRITE(SMH_RAM) AM_BASE(&colorram)
AM_RANGE(0xd900, 0xd900) AM_READWRITE(ra_fake_d800_r,ra_fake_d800_w) /* protection ??*/
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0xe400, 0xe47f) AM_RAM AM_BASE(&colorram)
AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_w)
AM_RANGE(0xec00, 0xec0f) AM_WRITENOP /* Analog sound effects ?? ec00 sound enable ?*/
AM_RANGE(0xf000, 0xf0ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0xec00, 0xec0f) AM_NOP /* Analog sound effects ?? ec00 sound enable ?*/
AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0xf400, 0xf400) AM_WRITE(rollrace_backgroundcolor_w)
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE(rollrace_bkgpen_w)
AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE(rollrace_backgroundpage_w)
AM_RANGE(0xf803, 0xf803) AM_WRITE(rollrace_flipy_w)
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
AM_RANGE(0xfc00, 0xfc00) AM_WRITE(rollrace_flipx_w)
AM_RANGE(0xfc01, 0xfc01) AM_WRITE(interrupt_enable_w)
AM_RANGE(0xfc02, 0xfc03) AM_WRITENOP /* coin counters */
AM_RANGE(0xfc04, 0xfc05) AM_WRITE(rollrace_charbank_w)
AM_RANGE(0xfc06, 0xfc06) AM_WRITE(rollrace_spritebank_w)
AM_RANGE(0xf400, 0xf400) AM_WRITE(rollrace_backgroundcolor_w)
AM_RANGE(0xf801, 0xf801) AM_WRITE(rollrace_bkgpen_w)
AM_RANGE(0xf802, 0xf802) AM_WRITE(rollrace_backgroundpage_w)
AM_RANGE(0xf803, 0xf803) AM_WRITE(rollrace_flipy_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( readmem_snd, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM)
AM_RANGE(0x2000, 0x2fff) AM_READ(SMH_RAM)
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem_snd, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x2000, 0x2fff) AM_WRITE(SMH_RAM)
AM_RANGE(0x3000, 0x3000) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x5000, 0x5001) AM_DEVWRITE("ay2", ay8910_address_data_w)
AM_RANGE(0x6000, 0x6001) AM_DEVWRITE("ay3", ay8910_address_data_w)
static ADDRESS_MAP_START( rollrace_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READWRITE(soundlatch_r,interrupt_enable_w)
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x5000, 0x5001) AM_DEVWRITE("ay2", ay8910_address_data_w)
AM_RANGE(0x6000, 0x6001) AM_DEVWRITE("ay3", ay8910_address_data_w)
ADDRESS_MAP_END
@ -180,66 +165,60 @@ INPUT_PORTS_END
static const gfx_layout charlayout =
{
8,8, /* 8*8 characters */
256, /* 256 characters */
3, /* 3 bits per pixel */
{ 0,1024*8*8, 2*1024*8*8 }, /* the two bitplanes are separated */
256, /* 256 characters */
3, /* 3 bits per pixel */
{ 0,1024*8*8, 2*1024*8*8 }, /* the two bitplanes are separated */
{ 0,1,2,3,4,5,6,7 },
{ 7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 },
8*8 /* every char takes 8 consecutive bytes */
};
static const gfx_layout charlayout2 =
{
8,8, /* 8*8 characters */
1024, /* 1024 characters */
3, /* 3 bits per pixel */
{ 0,1024*8*8, 2*1024*8*8 }, /* the two bitplanes are separated */
1024, /* 1024 characters */
3, /* 3 bits per pixel */
{ 0,1024*8*8, 2*1024*8*8 }, /* the two bitplanes are separated */
{ 0, 1, 2, 3, 4, 5, 6, 7 },
{ 7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 },
// { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
8*8 /* every char takes 8 consecutive bytes */
};
static const gfx_layout spritelayout =
{
32,32, /* 32*32 sprites */
64, /* 64 sprites */
32,32, /* 32*32 sprites */
64, /* 64 sprites */
3, /* 3 bits per pixel */
{ 0x4000*8, 0x2000*8, 0 }, /* the three bitplanes are separated */
{ 0x4000*8, 0x2000*8, 0 }, /* the three bitplanes are separated */
{ 0, 1, 2, 3, 4, 5, 6, 7,
8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7,16*8,16*8+1,16*8+2,16*8+3,16*8+4,16*8+5,16*8+6,16*8+7,24*8,24*8+1,24*8+2,24*8+3,24*8+4,24*8+5,24*8+6,24*8+7},
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8,
64*8,65*8,66*8,67*8,68*8,69*8,70*8,71*8, 96*8,97*8,98*8,99*8,100*8,101*8,102*8,103*8 },
32*32 /* every sprite takes 128 consecutive bytes */
32*32 /* every sprite takes 128 consecutive bytes */
};
static GFXDECODE_START( rollrace )
GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 0, 32 ) /* foreground */
GFXDECODE_ENTRY( "gfx1", 0x0800, charlayout, 0, 32 )
GFXDECODE_ENTRY( "gfx1", 0x1000, charlayout, 0, 32 )
GFXDECODE_ENTRY( "gfx1", 0x1800, charlayout, 0, 32 )
GFXDECODE_ENTRY( "gfx2", 0x0000, charlayout2, 0, 32 ) /* for the road */
GFXDECODE_ENTRY( "gfx3", 0x0000, spritelayout, 0, 32 ) /* sprites */
GFXDECODE_ENTRY( "gfx4", 0x0000, spritelayout, 0, 32 )
GFXDECODE_ENTRY( "gfx5", 0x0000, spritelayout, 0, 32 )
GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 0, 32 ) /* foreground */
GFXDECODE_ENTRY( "gfx1", 0x0800, charlayout, 0, 32 )
GFXDECODE_ENTRY( "gfx1", 0x1000, charlayout, 0, 32 )
GFXDECODE_ENTRY( "gfx1", 0x1800, charlayout, 0, 32 )
GFXDECODE_ENTRY( "gfx2", 0x0000, charlayout2, 0, 32 ) /* for the road */
GFXDECODE_ENTRY( "gfx3", 0x0000, spritelayout, 0, 32 ) /* sprites */
GFXDECODE_ENTRY( "gfx4", 0x0000, spritelayout, 0, 32 )
GFXDECODE_ENTRY( "gfx5", 0x0000, spritelayout, 0, 32 )
GFXDECODE_END
static MACHINE_DRIVER_START( rollrace )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80,XTAL_24MHz/8) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(rollrace_map,0)
MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse)
MDRV_CPU_ADD("audiocpu", Z80,XTAL_24MHz/16) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(readmem_snd,writemem_snd)
MDRV_CPU_PROGRAM_MAP(rollrace_sound_map,0)
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,4)
/* video hardware */
@ -427,6 +406,7 @@ ROM_START( rollace2 )
ROM_LOAD( "8.6f", 0x0000, 0x1000, CRC(6ec3c545) SHA1(1a2477b9e1563734195b0743f5dbbb005e06022e) )
ROM_END
GAME( 1983, fightrol, 0, rollrace, rollrace, 0, ROT270, "[Kaneko] (Taito license)", "Fighting Roller", GAME_IMPERFECT_SOUND )
GAME( 1983, rollace, fightrol, rollrace, rollrace, 0, ROT270, "[Kaneko] (Williams license)", "Roller Aces (set 1)", GAME_IMPERFECT_SOUND )
GAME( 1983, rollace2, fightrol, rollace2, rollrace, 0, ROT90, "[Kaneko] (Williams license)", "Roller Aces (set 2)", GAME_IMPERFECT_SOUND )

View File

@ -85,34 +85,26 @@ static WRITE8_HANDLER( runaway_irq_ack_w )
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_READ(SMH_RAM)
AM_RANGE(0x0400, 0x07ff) AM_READ(SMH_RAM)
AM_RANGE(0x3000, 0x3007) AM_READ(runaway_input_r)
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("4000")
AM_RANGE(0x5000, 0x5000) AM_DEVREAD("earom", atari_vg_earom_r)
AM_RANGE(0x6000, 0x600f) AM_DEVREAD("pokey1", pokey_r)
AM_RANGE(0x7000, 0x700f) AM_DEVREAD("pokey2", pokey_r)
AM_RANGE(0x8000, 0xcfff) AM_READ(SMH_ROM)
AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM) /* for the interrupt vectors */
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x0400, 0x07bf) AM_WRITE(runaway_video_ram_w) AM_BASE(&runaway_video_ram)
AM_RANGE(0x07c0, 0x07ff) AM_WRITE(SMH_RAM) AM_BASE(&runaway_sprite_ram)
static ADDRESS_MAP_START( runaway_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(runaway_video_ram_w) AM_BASE(&runaway_video_ram)
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE(&runaway_sprite_ram)
AM_RANGE(0x1000, 0x1000) AM_WRITE(runaway_irq_ack_w)
AM_RANGE(0x1400, 0x143F) AM_DEVWRITE("earom", atari_vg_earom_w)
AM_RANGE(0x1400, 0x143f) AM_DEVWRITE("earom", atari_vg_earom_w)
AM_RANGE(0x1800, 0x1800) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w)
AM_RANGE(0x1c00, 0x1c0f) AM_WRITE(runaway_paletteram_w)
AM_RANGE(0x2000, 0x2000) AM_WRITENOP /* coin counter? */
AM_RANGE(0x2001, 0x2001) AM_WRITENOP /* coin counter? */
AM_RANGE(0x2003, 0x2004) AM_WRITE(runaway_led_w)
AM_RANGE(0x2005, 0x2005) AM_WRITE(runaway_tile_bank_w)
AM_RANGE(0x6000, 0x600f) AM_DEVWRITE("pokey1", pokey_w)
AM_RANGE(0x7000, 0x700f) AM_DEVWRITE("pokey2", pokey_w)
AM_RANGE(0x8000, 0xcfff) AM_WRITE(SMH_ROM)
AM_RANGE(0x3000, 0x3007) AM_READ(runaway_input_r)
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("4000")
AM_RANGE(0x5000, 0x5000) AM_DEVREAD("earom", atari_vg_earom_r)
AM_RANGE(0x6000, 0x600f) AM_DEVREADWRITE("pokey1", pokey_r,pokey_w)
AM_RANGE(0x7000, 0x700f) AM_DEVREADWRITE("pokey2", pokey_r,pokey_w)
AM_RANGE(0x8000, 0xcfff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_ROM /* for the interrupt vectors */
ADDRESS_MAP_END
@ -363,7 +355,7 @@ static MACHINE_DRIVER_START( runaway )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 12096000 / 8) /* ? */
MDRV_CPU_PROGRAM_MAP(readmem, writemem)
MDRV_CPU_PROGRAM_MAP(runaway_map, 0)
MDRV_MACHINE_RESET(runaway)

View File

@ -206,47 +206,34 @@ static INTERRUPT_GEN(rng_interrupt)
cpu_set_input_line(device, M68K_IRQ_5, ASSERT_LINE);
}
static ADDRESS_MAP_START( rngreadmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x2fffff) AM_READ(SMH_ROM) // main program + data
AM_RANGE(0x300000, 0x3007ff) AM_READ(SMH_RAM) // palette RAM
AM_RANGE(0x380000, 0x39ffff) AM_READ(SMH_RAM) // work RAM
AM_RANGE(0x400000, 0x43ffff) AM_READNOP // K053936_0_rom_r }, // '936 ROM readback window
AM_RANGE(0x480000, 0x48001f) AM_READ(rng_sysregs_r)
AM_RANGE(0x4c0000, 0x4c001f) AM_READ(K053252_word_r) // CCU (for scanline and vblank polling)
static ADDRESS_MAP_START( rungun_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x2fffff) AM_ROM // main program + data
AM_RANGE(0x300000, 0x3007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x380000, 0x39ffff) AM_RAM // work RAM
AM_RANGE(0x400000, 0x43ffff) AM_READNOP // AM_READ( K053936_0_rom_r ) // '936 ROM readback window
AM_RANGE(0x480000, 0x48001f) AM_READWRITE(rng_sysregs_r,rng_sysregs_w) AM_BASE(&rng_sysreg)
AM_RANGE(0x4c0000, 0x4c001f) AM_READ(K053252_word_r) // CCU (for scanline and vblank polling)
AM_RANGE(0x540000, 0x540001) AM_WRITE(sound_irq_w)
AM_RANGE(0x58000c, 0x58000d) AM_WRITE(sound_cmd1_w)
AM_RANGE(0x58000e, 0x58000f) AM_WRITE(sound_cmd2_w)
AM_RANGE(0x580014, 0x580015) AM_READ(sound_status_msb_r)
AM_RANGE(0x580000, 0x58001f) AM_READ(SMH_RAM) // sound regs read fall-through
AM_RANGE(0x5c0000, 0x5c000d) AM_READ(K053246_word_r) // 246A ROM readback window
AM_RANGE(0x600000, 0x600fff) AM_READ(K053247_word_r) // OBJ RAM
AM_RANGE(0x601000, 0x601fff) AM_READ(SMH_RAM) // communication? second monitor buffer?
AM_RANGE(0x6c0000, 0x6cffff) AM_READ(SMH_RAM) // PSAC2 render RAM
AM_RANGE(0x700000, 0x7007ff) AM_READ(SMH_RAM) // PSAC2 line effect
AM_RANGE(0x740000, 0x741fff) AM_READ(rng_ttl_ram_r) // text plane RAM
AM_RANGE(0x580000, 0x58001f) AM_RAM // sound regs read/write fall-through
AM_RANGE(0x5c0000, 0x5c000d) AM_READ(K053246_word_r) // 246A ROM readback window
AM_RANGE(0x5c0010, 0x5c001f) AM_WRITE(K053247_reg_word_w)
AM_RANGE(0x600000, 0x600fff) AM_READWRITE(K053247_word_r,K053247_word_w) // OBJ RAM
AM_RANGE(0x601000, 0x601fff) AM_RAM // communication? second monitor buffer?
AM_RANGE(0x640000, 0x640007) AM_WRITE(K053246_word_w) // '246A registers
AM_RANGE(0x680000, 0x68001f) AM_WRITEONLY AM_BASE(&K053936_0_ctrl) // '936 registers
AM_RANGE(0x6c0000, 0x6cffff) AM_RAM_WRITE(rng_936_videoram_w) AM_BASE(&rng_936_videoram) // PSAC2 ('936) RAM (34v + 35v)
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_BASE(&K053936_0_linectrl) // PSAC "Line RAM"
AM_RANGE(0x740000, 0x741fff) AM_READWRITE(rng_ttl_ram_r,rng_ttl_ram_w) // text plane RAM
AM_RANGE(0x7c0000, 0x7c0001) AM_WRITENOP // watchdog
#if RNG_DEBUG
AM_RANGE(0x5c0010, 0x5c001f) AM_READ(K053247_reg_word_r)
AM_RANGE(0x640000, 0x640007) AM_READ(K053246_reg_word_r)
#endif
ADDRESS_MAP_END
static ADDRESS_MAP_START( rngwritemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x2fffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x300000, 0x3007ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x380000, 0x39ffff) AM_WRITE(SMH_RAM) // work RAM
AM_RANGE(0x480000, 0x48001f) AM_WRITE(rng_sysregs_w) AM_BASE(&rng_sysreg)
AM_RANGE(0x4c0000, 0x4c001f) AM_WRITE(K053252_word_w) // CCU
AM_RANGE(0x540000, 0x540001) AM_WRITE(sound_irq_w)
AM_RANGE(0x58000c, 0x58000d) AM_WRITE(sound_cmd1_w)
AM_RANGE(0x58000e, 0x58000f) AM_WRITE(sound_cmd2_w)
AM_RANGE(0x580000, 0x58001f) AM_WRITE(SMH_RAM) // sound regs write fall-through
AM_RANGE(0x5c0010, 0x5c001f) AM_WRITE(K053247_reg_word_w)
AM_RANGE(0x600000, 0x600fff) AM_WRITE(K053247_word_w) // OBJ RAM
AM_RANGE(0x601000, 0x601fff) AM_WRITE(SMH_RAM) // communication? second monitor buffer?
AM_RANGE(0x640000, 0x640007) AM_WRITE(K053246_word_w) // '246A registers
AM_RANGE(0x680000, 0x68001f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl) // '936 registers
AM_RANGE(0x6c0000, 0x6cffff) AM_WRITE(rng_936_videoram_w) AM_BASE(&rng_936_videoram) // PSAC2 ('936) RAM (34v + 35v)
AM_RANGE(0x700000, 0x7007ff) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_linectrl) // "Line RAM"
AM_RANGE(0x740000, 0x741fff) AM_WRITE(rng_ttl_ram_w) // text plane RAM
AM_RANGE(0x7c0000, 0x7c0001) AM_WRITENOP // watchdog
ADDRESS_MAP_END
/**********************************************************************************/
@ -274,30 +261,22 @@ static INTERRUPT_GEN(audio_interrupt)
/* sound (this should be split into audio/xexex.c or pregx.c or so someday) */
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK(2))
AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
AM_RANGE(0xe000, 0xe22f) AM_DEVREAD("konami1", k054539_r)
AM_RANGE(0xe230, 0xe3ff) AM_READ(SMH_RAM)
AM_RANGE(0xe400, 0xe62f) AM_DEVREAD("konami2", k054539_r)
AM_RANGE(0xe630, 0xe7ff) AM_READ(SMH_RAM)
static ADDRESS_MAP_START( rungun_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(2)
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe22f) AM_DEVREADWRITE("konami1", k054539_r,k054539_w)
AM_RANGE(0xe230, 0xe3ff) AM_RAM
AM_RANGE(0xe400, 0xe62f) AM_DEVREADWRITE("konami2", k054539_r,k054539_w)
AM_RANGE(0xe630, 0xe7ff) AM_RAM
AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_status_w)
AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r)
AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM)
AM_RANGE(0xe000, 0xe22f) AM_DEVWRITE("konami1", k054539_w)
AM_RANGE(0xe230, 0xe3ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xe400, 0xe62f) AM_DEVWRITE("konami2", k054539_w)
AM_RANGE(0xe630, 0xe7ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_status_w)
AM_RANGE(0xf800, 0xf800) AM_WRITE(z80ctrl_w)
AM_RANGE(0xfff0, 0xfff3) AM_WRITENOP
ADDRESS_MAP_END
static const k054539_interface k054539_config =
{
"shared"
@ -326,11 +305,11 @@ static MACHINE_DRIVER_START( rng )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 16000000)
MDRV_CPU_PROGRAM_MAP(rngreadmem,rngwritemem)
MDRV_CPU_PROGRAM_MAP(rungun_map,0)
MDRV_CPU_VBLANK_INT("screen", rng_interrupt)
MDRV_CPU_ADD("soundcpu", Z80, 10000000) // 8Mhz (10Mhz is much safer in self-test due to heavy sync)
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_PROGRAM_MAP(rungun_sound_map,0)
MDRV_CPU_PERIODIC_INT(audio_interrupt, 480)
MDRV_QUANTUM_TIME(HZ(6000)) // higher if sound stutters

View File

@ -59,12 +59,12 @@ static WRITE8_HANDLER(sangho_ram_w)
sangho_ram[offset]=data;
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
static ADDRESS_MAP_START( pzlestar_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xffff) AM_WRITE(sangho_ram_w)
AM_RANGE(0x0000, 0x3fff) AM_READ( SMH_BANK(1) )
AM_RANGE(0x4000, 0x7fff) AM_READ( SMH_BANK(2) )
AM_RANGE(0x8000, 0xbfff) AM_READ( SMH_BANK(3) )
AM_RANGE(0xc000, 0xffff) AM_READ( SMH_BANK(4) )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK(1)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(2)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(3)
AM_RANGE(0xc000, 0xffff) AM_ROMBANK(4)
ADDRESS_MAP_END
/* Wrong ! */
@ -223,7 +223,7 @@ static VIDEO_START( sangho )
static MACHINE_DRIVER_START(pzlestar)
MDRV_CPU_ADD("maincpu", Z80,8000000) // ?
MDRV_CPU_PROGRAM_MAP(readmem, 0)
MDRV_CPU_PROGRAM_MAP(pzlestar_map, 0)
MDRV_CPU_IO_MAP(pzlestar_io_map,0)
MDRV_CPU_VBLANK_INT_HACK(sangho_interrupt,262)
@ -256,7 +256,7 @@ MACHINE_DRIVER_END
static MACHINE_DRIVER_START(sexyboom )
MDRV_CPU_ADD("maincpu", Z80,8000000) // ?
MDRV_CPU_PROGRAM_MAP(readmem, 0)
MDRV_CPU_PROGRAM_MAP(pzlestar_map, 0)
MDRV_CPU_IO_MAP(sexyboom_io_map,0)
MDRV_CPU_VBLANK_INT_HACK(sangho_interrupt,262)

View File

@ -90,7 +90,6 @@ WRITE8_HANDLER( tecfri_videoram2_w );
WRITE8_HANDLER( tecfri_colorram2_w );
WRITE8_HANDLER( tecfri_scroll_bg_w );
WRITE8_HANDLER( sauro_scroll_fg_w );
WRITE8_HANDLER( trckydoc_spriteram_mirror_w );
WRITE8_HANDLER( sauro_palette_bank_w );
VIDEO_START( sauro );
@ -135,23 +134,16 @@ static WRITE8_DEVICE_HANDLER( adpcm_w )
sp0256_ALD_w(device, 0, data);
}
static ADDRESS_MAP_START( sauro_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xdfff) AM_READ(SMH_ROM)
AM_RANGE(0xe000, 0xebff) AM_READ(SMH_RAM)
AM_RANGE(0xf000, 0xffff) AM_READ(SMH_RAM)
static ADDRESS_MAP_START( sauro_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xebff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(tecfri_videoram_w) AM_BASE(&tecfri_videoram)
AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(tecfri_colorram_w) AM_BASE(&tecfri_colorram)
AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(tecfri_videoram2_w) AM_BASE(&tecfri_videoram2)
AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE(tecfri_colorram2_w) AM_BASE(&tecfri_colorram2)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sauro_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xdfff) AM_WRITE(SMH_ROM)
AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xe800, 0xebff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0xf000, 0xf3ff) AM_WRITE(tecfri_videoram_w) AM_BASE(&tecfri_videoram)
AM_RANGE(0xf400, 0xf7ff) AM_WRITE(tecfri_colorram_w) AM_BASE(&tecfri_colorram)
AM_RANGE(0xf800, 0xfbff) AM_WRITE(tecfri_videoram2_w) AM_BASE(&tecfri_videoram2)
AM_RANGE(0xfc00, 0xffff) AM_WRITE(tecfri_colorram2_w) AM_BASE(&tecfri_colorram2)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sauro_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1")
@ -177,38 +169,29 @@ static ADDRESS_MAP_START( sauro_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sauro_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
AM_RANGE(0xe000, 0xe000) AM_READ(sauro_sound_command_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sauro_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
static ADDRESS_MAP_START( sauro_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym3812_w)
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("speech", adpcm_w)
AM_RANGE(0xe000, 0xe000) AM_READ(sauro_sound_command_r)
AM_RANGE(0xe000, 0xe006) AM_WRITENOP /* echo from write to e0000 */
AM_RANGE(0xe00e, 0xe00f) AM_WRITENOP
ADDRESS_MAP_END
static ADDRESS_MAP_START( trckydoc_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xdfff) AM_READ(SMH_ROM)
AM_RANGE(0xe000, 0xe7ff) AM_READ(SMH_RAM)
static ADDRESS_MAP_START( trckydoc_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xebff) AM_RAM AM_MIRROR(0x400) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(tecfri_videoram_w) AM_BASE(&tecfri_videoram)
AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(tecfri_colorram_w) AM_BASE(&tecfri_colorram)
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSW1")
AM_RANGE(0xf808, 0xf808) AM_READ_PORT("DSW2")
AM_RANGE(0xf810, 0xf810) AM_READ_PORT("P1")
AM_RANGE(0xf818, 0xf818) AM_READ_PORT("P2")
AM_RANGE(0xf828, 0xf828) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( trckydoc_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xdfff) AM_WRITE(SMH_ROM)
AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xe800, 0xebff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0xec00, 0xefff) AM_WRITE(trckydoc_spriteram_mirror_w) // it clears sprites from the screen by writing here to set some of the attributes
AM_RANGE(0xf000, 0xf3ff) AM_WRITE(tecfri_videoram_w) AM_BASE(&tecfri_videoram)
AM_RANGE(0xf400, 0xf7ff) AM_WRITE(tecfri_colorram_w) AM_BASE(&tecfri_colorram)
AM_RANGE(0xf820, 0xf821) AM_DEVWRITE("ym", ym3812_w)
AM_RANGE(0xf828, 0xf828) AM_READ(watchdog_reset_r)
AM_RANGE(0xf830, 0xf830) AM_WRITE(tecfri_scroll_bg_w)
AM_RANGE(0xf838, 0xf838) AM_WRITENOP /* only written at startup */
AM_RANGE(0xf839, 0xf839) AM_WRITE(flip_screen_w)
@ -218,6 +201,7 @@ static ADDRESS_MAP_START( trckydoc_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf83f, 0xf83f) AM_WRITENOP /* only written at startup */
ADDRESS_MAP_END
static INPUT_PORTS_START( tecfri )
PORT_START("P1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
@ -376,7 +360,7 @@ static MACHINE_DRIVER_START( trckydoc )
MDRV_IMPORT_FROM(tecfri)
MDRV_CPU_MODIFY("maincpu")
MDRV_CPU_PROGRAM_MAP(trckydoc_readmem, trckydoc_writemem )
MDRV_CPU_PROGRAM_MAP(trckydoc_map,0 )
MDRV_GFXDECODE(trckydoc)
@ -389,12 +373,12 @@ static MACHINE_DRIVER_START( sauro )
MDRV_IMPORT_FROM(tecfri)
MDRV_CPU_MODIFY("maincpu")
MDRV_CPU_PROGRAM_MAP(sauro_readmem, sauro_writemem)
MDRV_CPU_PROGRAM_MAP(sauro_map, 0)
MDRV_CPU_IO_MAP(sauro_io_map,0)
MDRV_CPU_ADD("audiocpu", Z80, 4000000) // 4 MHz?
MDRV_CPU_PROGRAM_MAP(sauro_sound_readmem, sauro_sound_writemem)
MDRV_CPU_VBLANK_INT_HACK(sauro_interrupt, 8) // ?
MDRV_CPU_PROGRAM_MAP(sauro_sound_map, 0)
MDRV_CPU_PERIODIC_INT(sauro_interrupt, 8*60) // ?
MDRV_GFXDECODE(sauro)
@ -404,7 +388,6 @@ static MACHINE_DRIVER_START( sauro )
MDRV_SOUND_ADD("speech", SP0256, 3120000)
MDRV_SOUND_CONFIG(sauro_sp256)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_DRIVER_END
/***************************************************************************

View File

@ -73,44 +73,36 @@ static WRITE8_HANDLER( sbasketb_coin_counter_w )
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x3bff) AM_READ(SMH_RAM)
AM_RANGE(0x3c10, 0x3c10) AM_READNOP /* ???? */
AM_RANGE(0x3e00, 0x3e00) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3e01, 0x3e01) AM_READ_PORT("P1")
AM_RANGE(0x3e02, 0x3e02) AM_READ_PORT("P2")
AM_RANGE(0x3e03, 0x3e03) AM_READNOP
AM_RANGE(0x3e80, 0x3e80) AM_READ_PORT("DSW2")
AM_RANGE(0x3f00, 0x3f00) AM_READ_PORT("DSW1")
AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x2fff) AM_WRITE(SMH_RAM)
AM_RANGE(0x3000, 0x33ff) AM_WRITE(sbasketb_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x3400, 0x37ff) AM_WRITE(sbasketb_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x3800, 0x39ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x3a00, 0x3bff) AM_WRITE(SMH_RAM) /* Probably unused, but initialized */
static ADDRESS_MAP_START( sbasketb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x33ff) AM_RAM_WRITE(sbasketb_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x3400, 0x37ff) AM_RAM_WRITE(sbasketb_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x3800, 0x39ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x3a00, 0x3bff) AM_RAM /* Probably unused, but initialized */
AM_RANGE(0x3c00, 0x3c00) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x3c20, 0x3c20) AM_WRITE(SMH_RAM) AM_BASE(&sbasketb_palettebank)
AM_RANGE(0x3c10, 0x3c10) AM_READNOP /* ???? */
AM_RANGE(0x3c20, 0x3c20) AM_WRITEONLY AM_BASE(&sbasketb_palettebank)
AM_RANGE(0x3c80, 0x3c80) AM_WRITE(sbasketb_flipscreen_w)
AM_RANGE(0x3c81, 0x3c81) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x3c83, 0x3c84) AM_WRITE(sbasketb_coin_counter_w)
AM_RANGE(0x3c85, 0x3c85) AM_WRITE(SMH_RAM) AM_BASE(&sbasketb_spriteram_select)
AM_RANGE(0x3d00, 0x3d00) AM_WRITE(soundlatch_w)
AM_RANGE(0x3d80, 0x3d80) AM_WRITE(sbasketb_sh_irqtrigger_w)
AM_RANGE(0x3f80, 0x3f80) AM_WRITE(SMH_RAM) AM_BASE(&sbasketb_scroll)
AM_RANGE(0x3e00, 0x3e00) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3e01, 0x3e01) AM_READ_PORT("P1")
AM_RANGE(0x3e02, 0x3e02) AM_READ_PORT("P2")
AM_RANGE(0x3e03, 0x3e03) AM_READNOP
AM_RANGE(0x3e80, 0x3e80) AM_READ_PORT("DSW2")
AM_RANGE(0x3f00, 0x3f00) AM_READ_PORT("DSW1")
AM_RANGE(0x3f80, 0x3f80) AM_WRITEONLY AM_BASE(&sbasketb_scroll)
AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM)
static ADDRESS_MAP_START( sbasketb_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
AM_RANGE(0x8000, 0x8000) AM_READ(hyperspt_sh_timer_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("vlm", vlm5030_data_w) /* speech data */
AM_RANGE(0xc000, 0xdfff) AM_DEVWRITE("vlm", hyperspt_sound_w) /* speech and output controll */
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("dac", dac_w)
@ -119,7 +111,6 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static INPUT_PORTS_START( sbasketb )
PORT_START("SYSTEM")
KONAMI8_SYSTEM_UNK
@ -197,11 +188,11 @@ static MACHINE_DRIVER_START( sbasketb )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6809, 1400000) /* 1.400 MHz ??? */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(sbasketb_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
MDRV_CPU_ADD("audiocpu", Z80, XTAL_14_31818MHz / 4) /* 3.5795 MHz */
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_PROGRAM_MAP(sbasketb_sound_map,0)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)

View File

@ -51,63 +51,43 @@ it as ASCII text.
#include "driver.h"
#include "cpu/m6502/m6502.h"
#include "deprecat.h"
#include "sound/ay8910.h"
#include "includes/btime.h"
static ADDRESS_MAP_START( dommy_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_READ(SMH_RAM)
AM_RANGE(0x2000, 0x27ff) AM_READ(SMH_RAM)
AM_RANGE(0x2800, 0x2bff) AM_READ(btime_mirrorvideoram_r)
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1")
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2")
static ADDRESS_MAP_START( dommy_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x2000, 0x23ff) AM_RAM AM_BASE(&btime_videoram) AM_SIZE(&btime_videoram_size)
AM_RANGE(0x2400, 0x27ff) AM_RAM AM_BASE(&btime_colorram)
AM_RANGE(0x2800, 0x2bff) AM_READWRITE(btime_mirrorvideoram_r,btime_mirrorvideoram_w)
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") AM_WRITENOP
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") AM_WRITE(btime_video_control_w)
/* AM_RANGE(0x4004, 0x4004) */ /* this is read */
AM_RANGE(0x4002, 0x4002) AM_READ_PORT("P1")
AM_RANGE(0x4003, 0x4003) AM_READ_PORT("P2")
AM_RANGE(0xa000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( dommy_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x2000, 0x23ff) AM_WRITE(SMH_RAM) AM_BASE(&btime_videoram) AM_SIZE(&btime_videoram_size)
AM_RANGE(0x2400, 0x27ff) AM_WRITE(SMH_RAM) AM_BASE(&btime_colorram)
AM_RANGE(0x2800, 0x2bff) AM_WRITE(btime_mirrorvideoram_w)
AM_RANGE(0x4000, 0x4000) AM_WRITENOP
AM_RANGE(0x4001, 0x4001) AM_WRITE(btime_video_control_w)
AM_RANGE(0x4004, 0x4005) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x4006, 0x4007) AM_DEVWRITE("ay2", ay8910_address_data_w)
AM_RANGE(0xa000, 0xffff) AM_WRITE(SMH_ROM)
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( eggs_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_READ(SMH_RAM)
AM_RANGE(0x1000, 0x17ff) AM_READ(SMH_RAM)
AM_RANGE(0x1800, 0x1bff) AM_READ(btime_mirrorvideoram_r)
AM_RANGE(0x1c00, 0x1fff) AM_READ(btime_mirrorcolorram_r)
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW1")
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("DSW2")
static ADDRESS_MAP_START( eggs_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE(&btime_videoram) AM_SIZE(&btime_videoram_size)
AM_RANGE(0x1400, 0x17ff) AM_RAM AM_BASE(&btime_colorram)
AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r,btime_mirrorvideoram_w)
AM_RANGE(0x1c00, 0x1fff) AM_READWRITE(btime_mirrorcolorram_r,btime_mirrorcolorram_w)
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW1") AM_WRITE(btime_video_control_w)
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("DSW2") AM_WRITENOP
AM_RANGE(0x2002, 0x2002) AM_READ_PORT("P1")
AM_RANGE(0x2003, 0x2003) AM_READ_PORT("P2")
AM_RANGE(0x3000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM) /* reset/interrupt vectors */
ADDRESS_MAP_END
static ADDRESS_MAP_START( eggs_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x1000, 0x13ff) AM_WRITE(SMH_RAM) AM_BASE(&btime_videoram) AM_SIZE(&btime_videoram_size)
AM_RANGE(0x1400, 0x17ff) AM_WRITE(SMH_RAM) AM_BASE(&btime_colorram)
AM_RANGE(0x1800, 0x1bff) AM_WRITE(btime_mirrorvideoram_w)
AM_RANGE(0x1c00, 0x1fff) AM_WRITE(btime_mirrorcolorram_w)
AM_RANGE(0x2000, 0x2000) AM_WRITE(btime_video_control_w)
AM_RANGE(0x2001, 0x2001) AM_WRITENOP
AM_RANGE(0x2004, 0x2005) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x2006, 0x2007) AM_DEVWRITE("ay2", ay8910_address_data_w)
AM_RANGE(0x3000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x3000, 0x7fff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_ROM /* reset/interrupt vectors */
ADDRESS_MAP_END
static INPUT_PORTS_START( scregg )
PORT_START("P1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
@ -224,8 +204,8 @@ static MACHINE_DRIVER_START( dommy )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 1500000)
MDRV_CPU_PROGRAM_MAP(dommy_readmem,dommy_writemem)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,16)
MDRV_CPU_PROGRAM_MAP(dommy_map,0)
MDRV_CPU_PERIODIC_INT(irq0_line_hold,16*60) //???
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
@ -257,8 +237,8 @@ static MACHINE_DRIVER_START( scregg )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6502, 1500000)
MDRV_CPU_PROGRAM_MAP(eggs_readmem,eggs_writemem)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,16)
MDRV_CPU_PROGRAM_MAP(eggs_map,0)
MDRV_CPU_PERIODIC_INT(irq0_line_hold,16*60) //???
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)

View File

@ -316,31 +316,19 @@ static struct sms_vdp *md_sms_vdp;
#define SMS_VDP_VRAM(address) chip->vram[(address)&0x3fff]
#ifdef UNUSED_FUNCTION
static ADDRESS_MAP_START( sms_readmem, ADDRESS_SPACE_PROGRAM, 8 )
// AM_RANGE(0x0000 , 0xbfff) AM_READ(SMH_ROM)
// AM_RANGE(0xc000 , 0xdfff) AM_READ(SMH_RAM) AM_MIRROR(0x2000)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sms_writemem, ADDRESS_SPACE_PROGRAM, 8 )
// AM_RANGE(0x0000 , 0xbfff) AM_WRITE(SMH_ROM)
// AM_RANGE(0xc000 , 0xdfff) AM_WRITE(SMH_RAM) AM_MIRROR(0x2000)
static ADDRESS_MAP_START( sms_map, ADDRESS_SPACE_PROGRAM, 8 )
// AM_RANGE(0x0000 , 0xbfff) AM_ROM
// AM_RANGE(0xc000 , 0xdfff) AM_RAM AM_MIRROR(0x2000)
ADDRESS_MAP_END
#endif
/* we have to fill in the ROM addresses for systeme due to the encrypted games */
static ADDRESS_MAP_START( systeme_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) /* Fixed ROM */
AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK(1)) /* Banked ROM */
static ADDRESS_MAP_START( systeme_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* Fixed ROM */
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) /* Banked ROM */
// AM_RANGE(0x0000 , 0xbfff) AM_READ(SMH_ROM)
// AM_RANGE(0xc000 , 0xdfff) AM_READ(SMH_RAM) AM_MIRROR(0x2000)
ADDRESS_MAP_END
static ADDRESS_MAP_START( systeme_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) /* Fixed ROM */
// AM_RANGE(0x0000 , 0xbfff) AM_WRITE(SMH_ROM)
// AM_RANGE(0xc000 , 0xdfff) AM_WRITE(SMH_RAM) AM_MIRROR(0x2000)
// AM_RANGE(0x0000 , 0xbfff) AM_ROM
// AM_RANGE(0xc000 , 0xdfff) AM_RAM AM_MIRROR(0x2000)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sms_io_map, ADDRESS_SPACE_IO, 8 )
@ -2036,7 +2024,7 @@ static VIDEO_UPDATE(systeme)
static MACHINE_DRIVER_START( systeme )
MDRV_CPU_ADD("z80", Z80, 10738600/2) /* correct for hangonjr, and astroflash/transformer at least */
MDRV_CPU_PROGRAM_MAP(systeme_readmem,systeme_writemem)
MDRV_CPU_PROGRAM_MAP(systeme_map,0)
MDRV_CPU_IO_MAP(sms_io_map,0)
/* IRQ handled via the timers */

View File

@ -25,7 +25,6 @@ Sound: AY-3-8912
#include "driver.h"
#include "cpu/m6809/m6809.h"
#include "deprecat.h"
#include "video/mc6845.h"
#include "sound/ay8910.h"
@ -241,7 +240,7 @@ static MACHINE_DRIVER_START( usg32 )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M6809, 2000000) /* ?? */
MDRV_CPU_PROGRAM_MAP(usgames_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,5) /* ?? */
MDRV_CPU_PERIODIC_INT(irq0_line_hold,5*60) /* ?? */
MDRV_NVRAM_HANDLER(generic_0fill)

View File

@ -152,11 +152,6 @@ VIDEO_UPDATE( sauro )
/* Tricky Doc */
WRITE8_HANDLER ( trckydoc_spriteram_mirror_w )
{
spriteram[offset] = data;
}
VIDEO_START( trckydoc )
{
bg_tilemap = tilemap_create(machine, get_tile_info_bg, tilemap_scan_cols,