mirror of
https://github.com/holub/mame
synced 2025-06-30 07:58:56 +03:00
Untangle the three basic dooyong board types
This commit is contained in:
parent
52624c168e
commit
edeaa1ff6c
@ -84,27 +84,27 @@ be verified on real PCB.
|
||||
#include "sound/okim6295.h"
|
||||
#include "includes/dooyong.h"
|
||||
|
||||
WRITE8_MEMBER(dooyong_state::lastday_bankswitch_w)
|
||||
WRITE8_MEMBER(dooyong_z80_state::bankswitch_w)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x07);
|
||||
|
||||
if (data & 0xf8) popmessage("bankswitch %02x",data);
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(dooyong_state,lastday)
|
||||
MACHINE_START_MEMBER(dooyong_z80_state, cpu_z80)
|
||||
{
|
||||
membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(dooyong_state::flip_screen_w)
|
||||
WRITE8_MEMBER(dooyong_z80_state::flip_screen_w)
|
||||
{
|
||||
flip_screen_set(data);
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(dooyong_state,sound_ym2203)
|
||||
MACHINE_RESET_MEMBER(dooyong_z80_ym2203_state, sound_ym2203)
|
||||
{
|
||||
m_interrupt_line_1=0;
|
||||
m_interrupt_line_2=0;
|
||||
m_interrupt_line_1 = 0;
|
||||
m_interrupt_line_2 = 0;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
@ -113,63 +113,63 @@ MACHINE_RESET_MEMBER(dooyong_state,sound_ym2203)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_state )
|
||||
static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xc007) AM_WRITE(dooyong_bgscroll8_w)
|
||||
AM_RANGE(0xc008, 0xc00f) AM_WRITE(dooyong_fgscroll8_w)
|
||||
AM_RANGE(0xc000, 0xc007) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0xc008, 0xc00f) AM_WRITE(fgscroll_w)
|
||||
AM_RANGE(0xc010, 0xc010) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xc010, 0xc010) AM_WRITE(lastday_ctrl_w) /* coin counter, flip screen */
|
||||
AM_RANGE(0xc011, 0xc011) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xc011, 0xc011) AM_WRITE(lastday_bankswitch_w)
|
||||
AM_RANGE(0xc011, 0xc011) AM_WRITE(bankswitch_w)
|
||||
AM_RANGE(0xc012, 0xc012) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xc012, 0xc012) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc013, 0xc013) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xc014, 0xc014) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xc800, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_state )
|
||||
static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSWA") AM_WRITE(lastday_bankswitch_w)
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSWA") AM_WRITE(bankswitch_w)
|
||||
AM_RANGE(0xf001, 0xf001) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xf002, 0xf002) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xf003, 0xf003) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xf004, 0xf004) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xf008, 0xf008) AM_WRITE(pollux_ctrl_w) /* coin counter, flip screen */
|
||||
AM_RANGE(0xf010, 0xf010) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xf018, 0xf01f) AM_WRITE(dooyong_bgscroll8_w)
|
||||
AM_RANGE(0xf020, 0xf027) AM_WRITE(dooyong_fgscroll8_w)
|
||||
AM_RANGE(0xf018, 0xf01f) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0xf020, 0xf027) AM_WRITE(fgscroll_w)
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_state )
|
||||
static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(lastday_bankswitch_w)
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(bankswitch_w)
|
||||
AM_RANGE(0xf001, 0xf001) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xf002, 0xf002) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xf003, 0xf003) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xf004, 0xf004) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xf008, 0xf008) AM_WRITE(pollux_ctrl_w) /* coin counter, flip screen */
|
||||
AM_RANGE(0xf010, 0xf010) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xf018, 0xf01f) AM_WRITE(dooyong_bgscroll8_w)
|
||||
AM_RANGE(0xf020, 0xf027) AM_WRITE(dooyong_fgscroll8_w)
|
||||
AM_RANGE(0xf018, 0xf01f) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0xf020, 0xf027) AM_WRITE(fgscroll_w)
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_state )
|
||||
static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_z80_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSWA")
|
||||
@ -178,42 +178,42 @@ static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_state )
|
||||
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xc008, 0xc008) AM_WRITE(lastday_bankswitch_w)
|
||||
AM_RANGE(0xc008, 0xc008) AM_WRITE(bankswitch_w)
|
||||
AM_RANGE(0xc010, 0xc010) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc018, 0xc01f) AM_WRITE(dooyong_fg2scroll8_w)
|
||||
AM_RANGE(0xc040, 0xc047) AM_WRITE(dooyong_bgscroll8_w)
|
||||
AM_RANGE(0xc048, 0xc04f) AM_WRITE(dooyong_fgscroll8_w)
|
||||
AM_RANGE(0xc018, 0xc01f) AM_WRITE(fg2scroll_w)
|
||||
AM_RANGE(0xc040, 0xc047) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0xc048, 0xc04f) AM_WRITE(fgscroll_w)
|
||||
AM_RANGE(0xc800, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8, dooyong_state )
|
||||
static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8, dooyong_z80_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xe000, 0xe000) AM_WRITE(lastday_bankswitch_w)
|
||||
AM_RANGE(0xe000, 0xe000) AM_WRITE(bankswitch_w)
|
||||
AM_RANGE(0xe002, 0xe002) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xe004, 0xe004) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xe006, 0xe006) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xe008, 0xe008) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xe010, 0xe010) AM_WRITE(flytiger_ctrl_w) /* coin counter, flip screen */
|
||||
AM_RANGE(0xe020, 0xe020) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xe030, 0xe037) AM_WRITE(dooyong_bgscroll8_w)
|
||||
AM_RANGE(0xe040, 0xe047) AM_WRITE(dooyong_fgscroll8_w)
|
||||
AM_RANGE(0xe030, 0xe037) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0xe040, 0xe047) AM_WRITE(fgscroll_w)
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_flytiger_w) AM_SHARE("flytiger_palram")
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_state )
|
||||
static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_z80_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM
|
||||
AM_RANGE(0xd000, 0xd3ff) AM_RAM /* what is this? looks like a palette? scratchpad RAM maybe? */
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xf800, 0xf800) AM_WRITE(primella_ctrl_w) /* bank switch, flip screen etc */
|
||||
@ -222,67 +222,67 @@ static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_state )
|
||||
AM_RANGE(0xf820, 0xf820) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xf830, 0xf830) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xf840, 0xf840) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xfc00, 0xfc07) AM_WRITE(dooyong_bgscroll8_w)
|
||||
AM_RANGE(0xfc08, 0xfc0f) AM_WRITE(dooyong_fgscroll8_w)
|
||||
AM_RANGE(0xfc00, 0xfc07) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0xfc08, 0xfc0f) AM_WRITE(fgscroll_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16, dooyong_state )
|
||||
static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16, dooyong_68k_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xfffff) /* super-x needs this and is similar */
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x040000, 0x04cfff) AM_RAM
|
||||
AM_RANGE(0x04d000, 0x04dfff) AM_RAM AM_SHARE("spriteram16")
|
||||
AM_RANGE(0x04d000, 0x04dfff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x04e000, 0x04ffff) AM_RAM
|
||||
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x0c0004, 0x0c0005) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x0c0006, 0x0c0007) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(dooyong_bgscroll16_w)
|
||||
AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(dooyong_bg2scroll16_w)
|
||||
AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(bg2scroll_w)
|
||||
AM_RANGE(0x0c8000, 0x0c8fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0x0c0012, 0x0c0013) AM_WRITE(soundlatch_word_w)
|
||||
AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(rshark_ctrl_w) /* flip screen + unknown stuff */
|
||||
AM_RANGE(0x0cc000, 0x0cc00f) AM_WRITE(dooyong_fgscroll16_w)
|
||||
AM_RANGE(0x0cc010, 0x0cc01f) AM_WRITE(dooyong_fg2scroll16_w)
|
||||
AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(ctrl_w) /* flip screen + unknown stuff */
|
||||
AM_RANGE(0x0cc000, 0x0cc00f) AM_WRITE(fgscroll_w)
|
||||
AM_RANGE(0x0cc010, 0x0cc01f) AM_WRITE(fg2scroll_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16, dooyong_state )
|
||||
static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16, dooyong_68k_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x0d0000, 0x0dcfff) AM_RAM
|
||||
AM_RANGE(0x0dd000, 0x0ddfff) AM_RAM AM_SHARE("spriteram16")
|
||||
AM_RANGE(0x0dd000, 0x0ddfff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x0de000, 0x0dffff) AM_RAM
|
||||
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x080006, 0x080007) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x084000, 0x08400f) AM_WRITE(dooyong_bgscroll16_w)
|
||||
AM_RANGE(0x084010, 0x08401f) AM_WRITE(dooyong_bg2scroll16_w)
|
||||
AM_RANGE(0x084000, 0x08400f) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0x084010, 0x08401f) AM_WRITE(bg2scroll_w)
|
||||
AM_RANGE(0x088000, 0x088fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0x080012, 0x080013) AM_WRITE(soundlatch_word_w)
|
||||
AM_RANGE(0x080014, 0x080015) AM_WRITE(rshark_ctrl_w) /* flip screen + unknown stuff */
|
||||
AM_RANGE(0x08c000, 0x08c00f) AM_WRITE(dooyong_fgscroll16_w)
|
||||
AM_RANGE(0x08c010, 0x08c01f) AM_WRITE(dooyong_fg2scroll16_w)
|
||||
AM_RANGE(0x080014, 0x080015) AM_WRITE(ctrl_w) /* flip screen + unknown stuff */
|
||||
AM_RANGE(0x08c000, 0x08c00f) AM_WRITE(fgscroll_w)
|
||||
AM_RANGE(0x08c010, 0x08c01f) AM_WRITE(fg2scroll_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16, dooyong_state )
|
||||
static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16, dooyong_68k_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x040000, 0x04cfff) AM_RAM
|
||||
AM_RANGE(0x04d000, 0x04dfff) AM_RAM AM_SHARE("spriteram16")
|
||||
AM_RANGE(0x04d000, 0x04dfff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x04e000, 0x04ffff) AM_RAM
|
||||
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x0c0004, 0x0c0005) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x0c0006, 0x0c0007) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x0c0012, 0x0c0013) AM_WRITE(soundlatch_word_w)
|
||||
AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(rshark_ctrl_w)
|
||||
AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(ctrl_w)
|
||||
AM_RANGE(0x0c0018, 0x0c001b) AM_WRITENOP // ?
|
||||
AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(dooyong_bgscroll16_w)
|
||||
AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(dooyong_bg2scroll16_w) // not used atm
|
||||
AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(bgscroll_w)
|
||||
AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(bg2scroll_w) // not used atm
|
||||
AM_RANGE(0x0c8000, 0x0c8fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0x0cc000, 0x0cc00f) AM_WRITE(dooyong_fgscroll16_w) // not used atm
|
||||
AM_RANGE(0x0cc010, 0x0cc01f) AM_WRITE(dooyong_fg2scroll16_w) // not used atm
|
||||
AM_RANGE(0x0cc000, 0x0cc00f) AM_WRITE(fgscroll_w) // not used atm
|
||||
AM_RANGE(0x0cc010, 0x0cc01f) AM_WRITE(fg2scroll_w) // not used atm
|
||||
AM_RANGE(0x0dc000, 0x0dc01f) AM_RAM // registers of some kind?
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8, dooyong_state )
|
||||
static ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_byte_r)
|
||||
@ -290,7 +290,7 @@ static ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8, dooyong_state )
|
||||
AM_RANGE(0xf002, 0xf003) AM_DEVREADWRITE("ym2", ym2203_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( pollux_sound_map, AS_PROGRAM, 8, dooyong_state )
|
||||
static ADDRESS_MAP_START( pollux_sound_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state )
|
||||
AM_RANGE(0x0000, 0xefff) AM_ROM
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_byte_r)
|
||||
@ -772,18 +772,18 @@ static GFXDECODE_START( popbingo )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, popbingo_tilelayout, 256, 1 )
|
||||
GFXDECODE_END
|
||||
|
||||
READ8_MEMBER(dooyong_state::unk_r)
|
||||
READ8_MEMBER(dooyong_z80_ym2203_state::unk_r)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(dooyong_state::irqhandler_2203_1)
|
||||
WRITE_LINE_MEMBER(dooyong_z80_ym2203_state::irqhandler_2203_1)
|
||||
{
|
||||
m_interrupt_line_1=state;
|
||||
m_audiocpu->set_input_line(0, (m_interrupt_line_1 | m_interrupt_line_2) ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(dooyong_state::irqhandler_2203_2)
|
||||
WRITE_LINE_MEMBER(dooyong_z80_ym2203_state::irqhandler_2203_2)
|
||||
{
|
||||
m_interrupt_line_2=state;
|
||||
m_audiocpu->set_input_line(0, (m_interrupt_line_1 | m_interrupt_line_2) ? ASSERT_LINE : CLEAR_LINE);
|
||||
@ -800,13 +800,13 @@ static MACHINE_CONFIG_FRAGMENT( sound_2203 )
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_SOUND_ADD("ym1", YM2203, 1500000)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_state,irqhandler_2203_1))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_state, unk_r))
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_z80_ym2203_state, irqhandler_2203_1))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_z80_ym2203_state, unk_r))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
|
||||
MCFG_SOUND_ADD("ym2", YM2203, 1500000)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_state, irqhandler_2203_2))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_state, unk_r))
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_z80_ym2203_state, irqhandler_2203_2))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_z80_ym2203_state, unk_r))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -834,7 +834,7 @@ static MACHINE_CONFIG_FRAGMENT( sound_2151_m68k )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( lastday, dooyong_state )
|
||||
static MACHINE_CONFIG_START( lastday, dooyong_z80_ym2203_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 8000000) /* ??? */
|
||||
@ -844,8 +844,8 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 8000000) /* ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(lastday_sound_map)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(dooyong_state,sound_ym2203)
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(dooyong_z80_ym2203_state, sound_ym2203)
|
||||
|
||||
|
||||
/* video hardware */
|
||||
@ -856,7 +856,7 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_lastday)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_ym2203_state, screen_update_lastday)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -864,24 +864,24 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,lastday)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_ym2203_state, lastday)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_SOUND_ADD("ym1", YM2203, 4000000)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_state,irqhandler_2203_1))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_state, unk_r))
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_z80_ym2203_state, irqhandler_2203_1))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_z80_ym2203_state, unk_r))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
|
||||
MCFG_SOUND_ADD("ym2", YM2203, 4000000)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_state, irqhandler_2203_2))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_state, unk_r))
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_z80_ym2203_state, irqhandler_2203_2))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_z80_ym2203_state, unk_r))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
|
||||
static MACHINE_CONFIG_START( gulfstrm, dooyong_z80_ym2203_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 8000000) /* ??? */
|
||||
@ -891,8 +891,8 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 8000000) /* ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(lastday_sound_map)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(dooyong_state,sound_ym2203)
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(dooyong_z80_ym2203_state, sound_ym2203)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
|
||||
@ -902,7 +902,7 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_gulfstrm)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_ym2203_state, screen_update_gulfstrm)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -910,13 +910,13 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,gulfstrm)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_ym2203_state, gulfstrm)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD( sound_2203 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( pollux, dooyong_state )
|
||||
static MACHINE_CONFIG_START( pollux, dooyong_z80_ym2203_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 8000000) /* ??? */
|
||||
@ -926,8 +926,8 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 8000000) /* ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(pollux_sound_map)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(dooyong_state,sound_ym2203)
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(dooyong_z80_ym2203_state, sound_ym2203)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
|
||||
@ -937,7 +937,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_pollux)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_ym2203_state, screen_update_pollux)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -945,13 +945,13 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,pollux)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_ym2203_state, pollux)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD( sound_2203 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( bluehawk, dooyong_state )
|
||||
static MACHINE_CONFIG_START( bluehawk, dooyong_z80_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 8000000) /* ??? */
|
||||
@ -961,7 +961,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
|
||||
@ -971,7 +971,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_bluehawk)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_state, screen_update_bluehawk)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -979,13 +979,13 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,bluehawk)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_state, bluehawk)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD( sound_2151 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( flytiger, dooyong_state )
|
||||
static MACHINE_CONFIG_START( flytiger, dooyong_z80_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 8000000) /* ??? */
|
||||
@ -995,7 +995,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
|
||||
@ -1005,7 +1005,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_flytiger)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_state, screen_update_flytiger)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -1013,13 +1013,13 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,flytiger)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_state, flytiger)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD( sound_2151 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( primella, dooyong_state )
|
||||
static MACHINE_CONFIG_START( primella, dooyong_z80_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 8000000) /* ??? */
|
||||
@ -1029,7 +1029,7 @@ static MACHINE_CONFIG_START( primella, dooyong_state )
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_state,lastday)
|
||||
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -1037,122 +1037,123 @@ static MACHINE_CONFIG_START( primella, dooyong_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_primella)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_state, screen_update_primella)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", primella)
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,primella)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_state, primella)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD( sound_2151 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(dooyong_state::rshark_scanline)
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(dooyong_68k_state::scanline)
|
||||
{
|
||||
int scanline = param;
|
||||
|
||||
if(scanline == 248) // vblank-out irq
|
||||
if (scanline == 248) // vblank-out irq
|
||||
m_maincpu->set_input_line(5, HOLD_LINE);
|
||||
|
||||
if(scanline == 120) // timer irq?
|
||||
if (scanline == 120) // timer irq?
|
||||
m_maincpu->set_input_line(6, HOLD_LINE);
|
||||
}
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( rshark, dooyong_state )
|
||||
static MACHINE_CONFIG_START( rshark, dooyong_68k_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 8000000) /* measured on super-x */
|
||||
MCFG_CPU_PROGRAM_MAP(rshark_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dooyong_state, rshark_scanline, "screen", 0, 1)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dooyong_68k_state, scanline, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* measured on super-x */
|
||||
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram16")
|
||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_rshark)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_68k_state, screen_update_rshark)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", rshark)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,rshark)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_68k_state, rshark)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD( sound_2151_m68k )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map
|
||||
static MACHINE_CONFIG_START( superx, dooyong_68k_state ) // dif mem map
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 8000000) /* measured on super-x */
|
||||
MCFG_CPU_PROGRAM_MAP(superx_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dooyong_state, rshark_scanline, "screen", 0, 1)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dooyong_68k_state, scanline, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* measured on super-x */
|
||||
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram16")
|
||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_rshark)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_68k_state, screen_update_rshark)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", rshark)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,rshark)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_68k_state, rshark)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD( sound_2151_m68k )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( popbingo, dooyong_state )
|
||||
static MACHINE_CONFIG_START( popbingo, dooyong_68k_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 10000000)
|
||||
MCFG_CPU_PROGRAM_MAP(popbingo_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dooyong_state, rshark_scanline, "screen", 0, 1)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dooyong_68k_state, scanline, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* measured on super-x */
|
||||
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram16")
|
||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_popbingo)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dooyong_68k_state, screen_update_popbingo)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", popbingo)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_state,popbingo)
|
||||
MCFG_VIDEO_START_OVERRIDE(dooyong_68k_state, popbingo)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD( sound_2151_m68k )
|
||||
|
@ -5,24 +5,15 @@ class dooyong_state : public driver_device
|
||||
public:
|
||||
dooyong_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_spriteram16(*this, "spriteram16") ,
|
||||
m_txvideoram(*this, "txvideoram"),
|
||||
m_paletteram_flytiger(*this, "flytiger_palram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
m_palette(*this, "palette")
|
||||
{ }
|
||||
|
||||
inline void lastday_get_tile_info(tile_data &tileinfo, int tile_index, const UINT8 *tilerom, UINT8 *scroll, int graphics);
|
||||
inline void scroll8_w(offs_t offset, UINT8 data, UINT8 *scroll, tilemap_t *map);
|
||||
|
||||
optional_device<buffered_spriteram8_device> m_spriteram;
|
||||
optional_device<buffered_spriteram16_device> m_spriteram16;
|
||||
optional_shared_ptr<UINT8> m_txvideoram;
|
||||
optional_shared_ptr<UINT8> m_paletteram_flytiger;
|
||||
UINT8 m_sprites_disabled;
|
||||
UINT8 m_flytiger_palette_bank;
|
||||
UINT8 m_flytiger_pri;
|
||||
UINT8 m_tx_pri;
|
||||
UINT16 m_rshark_pri;
|
||||
tilemap_t *m_bg_tilemap;
|
||||
tilemap_t *m_bg2_tilemap;
|
||||
tilemap_t *m_fg_tilemap;
|
||||
@ -36,71 +27,116 @@ public:
|
||||
UINT8 *m_bg2_tilerom;
|
||||
UINT8 *m_fg_tilerom;
|
||||
UINT8 *m_fg2_tilerom;
|
||||
UINT8 *m_bg_tilerom2;
|
||||
UINT8 *m_bg2_tilerom2;
|
||||
UINT8 *m_fg_tilerom2;
|
||||
UINT8 *m_fg2_tilerom2;
|
||||
int m_bg_gfx;
|
||||
int m_bg2_gfx;
|
||||
int m_fg_gfx;
|
||||
int m_fg2_gfx;
|
||||
int m_tx_tilemap_mode;
|
||||
|
||||
int m_interrupt_line_1;
|
||||
int m_interrupt_line_2;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(lastday_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(flip_screen_w);
|
||||
DECLARE_WRITE8_MEMBER(dooyong_bgscroll8_w);
|
||||
DECLARE_WRITE8_MEMBER(dooyong_bg2scroll8_w);
|
||||
DECLARE_WRITE8_MEMBER(dooyong_fgscroll8_w);
|
||||
DECLARE_WRITE8_MEMBER(dooyong_fg2scroll8_w);
|
||||
DECLARE_WRITE16_MEMBER(dooyong_bgscroll16_w);
|
||||
DECLARE_WRITE16_MEMBER(dooyong_bg2scroll16_w);
|
||||
DECLARE_WRITE16_MEMBER(dooyong_fgscroll16_w);
|
||||
DECLARE_WRITE16_MEMBER(dooyong_fg2scroll16_w);
|
||||
DECLARE_WRITE8_MEMBER(dooyong_txvideoram8_w);
|
||||
DECLARE_WRITE8_MEMBER(lastday_ctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(pollux_ctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(primella_ctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(paletteram_flytiger_w);
|
||||
DECLARE_WRITE8_MEMBER(flytiger_ctrl_w);
|
||||
DECLARE_WRITE16_MEMBER(rshark_ctrl_w);
|
||||
DECLARE_READ8_MEMBER(unk_r);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg2_tile_info);
|
||||
TILE_GET_INFO_MEMBER(flytiger_get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tx_tile_info);
|
||||
inline void lastday_get_tile_info(tile_data &tileinfo, int tile_index, const UINT8 *tilerom, UINT8 *scroll, int graphics);
|
||||
inline void rshark_get_tile_info(tile_data &tileinfo, int tile_index, const UINT8 *tilerom1, const UINT8 *tilerom2, UINT8 *scroll, int graphics);
|
||||
DECLARE_MACHINE_START(lastday);
|
||||
DECLARE_MACHINE_RESET(sound_ym2203);
|
||||
DECLARE_VIDEO_START(lastday);
|
||||
DECLARE_VIDEO_START(gulfstrm);
|
||||
DECLARE_VIDEO_START(pollux);
|
||||
DECLARE_VIDEO_START(bluehawk);
|
||||
DECLARE_VIDEO_START(flytiger);
|
||||
DECLARE_VIDEO_START(primella);
|
||||
DECLARE_VIDEO_START(rshark);
|
||||
DECLARE_VIDEO_START(popbingo);
|
||||
UINT32 screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(rshark_scanline);
|
||||
inline void dooyong_scroll8_w(offs_t offset, UINT8 data, UINT8 *scroll, tilemap_t *map);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pollux_extensions);
|
||||
void rshark_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_1);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_2);
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
};
|
||||
|
||||
class dooyong_z80_state : public dooyong_state
|
||||
{
|
||||
public:
|
||||
dooyong_z80_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: dooyong_state(mconfig, type, tag),
|
||||
m_txvideoram(*this, "txvideoram"),
|
||||
m_paletteram_flytiger(*this, "flytiger_palram"),
|
||||
m_spriteram(*this, "spriteram")
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(bgscroll_w);
|
||||
DECLARE_WRITE8_MEMBER(bg2scroll_w);
|
||||
DECLARE_WRITE8_MEMBER(fgscroll_w);
|
||||
DECLARE_WRITE8_MEMBER(fg2scroll_w);
|
||||
DECLARE_WRITE8_MEMBER(flip_screen_w);
|
||||
DECLARE_WRITE8_MEMBER(bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(txvideoram_w);
|
||||
DECLARE_WRITE8_MEMBER(primella_ctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(paletteram_flytiger_w);
|
||||
DECLARE_WRITE8_MEMBER(flytiger_ctrl_w);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg2_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tx_tile_info);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pollux_extensions);
|
||||
UINT32 screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_MACHINE_START(cpu_z80);
|
||||
DECLARE_VIDEO_START(bluehawk);
|
||||
DECLARE_VIDEO_START(flytiger);
|
||||
DECLARE_VIDEO_START(primella);
|
||||
|
||||
required_shared_ptr<UINT8> m_txvideoram;
|
||||
optional_shared_ptr<UINT8> m_paletteram_flytiger;
|
||||
UINT8 m_sprites_disabled;
|
||||
UINT8 m_flytiger_palette_bank;
|
||||
UINT8 m_flytiger_pri;
|
||||
UINT8 m_tx_pri;
|
||||
int m_tx_tilemap_mode;
|
||||
|
||||
optional_device<buffered_spriteram8_device> m_spriteram;
|
||||
};
|
||||
|
||||
class dooyong_z80_ym2203_state : public dooyong_z80_state
|
||||
{
|
||||
public:
|
||||
dooyong_z80_ym2203_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: dooyong_z80_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(lastday_ctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(pollux_ctrl_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_1);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_2);
|
||||
DECLARE_READ8_MEMBER(unk_r);
|
||||
DECLARE_MACHINE_RESET(sound_ym2203);
|
||||
UINT32 screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_VIDEO_START(lastday);
|
||||
DECLARE_VIDEO_START(gulfstrm);
|
||||
DECLARE_VIDEO_START(pollux);
|
||||
|
||||
int m_interrupt_line_1;
|
||||
int m_interrupt_line_2;
|
||||
};
|
||||
|
||||
class dooyong_68k_state : public dooyong_state
|
||||
{
|
||||
public:
|
||||
dooyong_68k_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: dooyong_state(mconfig, type, tag),
|
||||
m_spriteram(*this, "spriteram")
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE16_MEMBER(bgscroll_w);
|
||||
DECLARE_WRITE16_MEMBER(bg2scroll_w);
|
||||
DECLARE_WRITE16_MEMBER(fgscroll_w);
|
||||
DECLARE_WRITE16_MEMBER(fg2scroll_w);
|
||||
DECLARE_WRITE16_MEMBER(ctrl_w);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(scanline);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg2_tile_info);
|
||||
inline void rshark_get_tile_info(tile_data &tileinfo, int tile_index, const UINT8 *tilerom1, const UINT8 *tilerom2, UINT8 *scroll, int graphics);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_VIDEO_START(rshark);
|
||||
DECLARE_VIDEO_START(popbingo);
|
||||
|
||||
UINT8 *m_bg_tilerom2;
|
||||
UINT8 *m_bg2_tilerom2;
|
||||
UINT8 *m_fg_tilerom2;
|
||||
UINT8 *m_fg2_tilerom2;
|
||||
UINT16 m_bg2_priority;
|
||||
|
||||
required_device<buffered_spriteram16_device> m_spriteram;
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user