diff options
Diffstat (limited to 'src/mame/drivers/btime.cpp')
-rw-r--r-- | src/mame/drivers/btime.cpp | 2214 |
1 files changed, 0 insertions, 2214 deletions
diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp deleted file mode 100644 index 1a4498ab4ec..00000000000 --- a/src/mame/drivers/btime.cpp +++ /dev/null @@ -1,2214 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Zsolt Vasvari, Couriersud -/*************************************************************************** - -Burger Time - -driver by Zsolt Vasvari - -hardware description: - -Actually Lock'n'Chase is (C)1981 while Burger Time is (C)1982, so it might -be more accurate to say 'Lock'n'Chase hardware'. - -The bootleg called Cook Race runs on hardware similar but different. The fact -that it addresses the program ROMs in the range 0500-3fff instead of the usual -c000-ffff makes me suspect that it is a bootleg of the *tape system* version. -Little is known about that system, but it is quite likely that it would have -RAM in the range 0000-3fff and load the program there from tape. - - -This hardware is pretty straightforward, but has a couple of interesting -twists. There are two ports to the video and color RAMs, one normal access, -and one with X and Y coordinates swapped. The sprite RAM occupies the -first row of the swapped area, so it appears in the regular video RAM as -the first column of on the left side. - -These games don't have VBLANK interrupts, but instead an IRQ or NMI -(depending on the particular board) is generated when a coin is inserted. - -Some of the games also have a background playfield which, in the -case of Bump 'n' Jump and Zoar, can be scrolled vertically. - -These boards use two 8910's for sound, controlled by a dedicated 6502. The -main processor triggers an IRQ request when writing a command to the sound -CPU. - - - -Zoar (Data East, 1982) -Hardware info by Guru - -Top PCB - -DE-0123 -|---------------------------------| -|UPC1181H SW2 Z17.15B | -| VOL SW1 |-| -| Z16.13B | | -| 2128 Z15.12B | | -| X | | -| AY-3-8910 X |-| -| AY-3-8910 DIP24 | -| 6502 | -|1 Z13.6B | -|8 |-| -|W Z12.4B | | -|A | | -|Y Z11.3B | | -| |-| -| 555 Z10.1B | -|---------------------------------| -Notes: - 6502 - clock 500.0kHz [12/24] - AY-3-8910 - clock 3.00MHz(both) [12/4] - 2128 - 2k x8 SRAM == 6116 - X - Position for a socket, but not populated with anything - DIP24 - Empty socket. There are rumours that this socket would hold test mode code or something else. - It's possible a factory test ROM did exist for factory-only testing as this was common with - several manufacturers at the time. However the PCB came from the factory with this socket empty - so it would be extremely unlikely to find a PCB with that socket populated. - SW1/2 - 8 position DIP switches - To set cocktail mode, set DIP#1 SW7 & 8 OFF. The player has 2 buttons only and the screen will flip between PL1 & PL2 - To set upright mode, set DIP#1 SW7 & 8 ON. The player has 3 buttons and the screen will not flip between PL1 & PL2 - DIP Notes: - SW1 #5 is unused - SW1 #6 must remain OFF otherwise the game will not boot-up and just displays garbage. - There is no TEST mode. - SW2 #5 is listed in the manual as "Panel B". This enables or removes the 2nd button. - There were two types of panels supplied, either cocktail or upright cabs. The cocktail panel - doesn't have 3 buttons. The 2 buttons are air-air missile and air-ground missile/bomb and - there's an extra button for accelerate on the 3 button panel. On the 2 button panel, button 1 is - the air-air and air-ground missile/bomb weapon button and is auto selected based on the enemies on - screen and the 2nd button is wired to accelerate. There is no button for manually selecting - the missiles/bombs. - -Bottom PCB - -DE-0122 -|---------------------------------| -| Z08.15L PB3 PB0 2128 | -| Z07.14L 2128 |-------| |-| -| 2128 | | | | -| Z06.12L | CPU-7 | | | -| | | | | -| Z05.11L | | |-| -| |-------| | -| Z04.9L | -| Z03.8L Z19.7B | -| AM93425 |-| -|1 Z02.6L AM93425 AM93425 | | -|0 Z01.5L AM93425 AM93425 PB2 | | -|W Z00.3L AM93425 PB4 PB1 | | -|A Z21.2L PB4 555 |-| -|Y Z20.1L 12MHz | -|---------------------------------| -Notes: - CPU-7 - Epoxy block containing a 6502 clocked at 1.5MHz [12/8] - and some 74xx logic chips - 2128 - 2k x8 SRAM == 6116 - AM93425 - 1k x1 SRAM == 2125 - PB* - PALs (not dumped, registered types) - Z19/20/21 - PROMs, type Harris 7603 (32 bytes), compatible with 82S123 - VSync - 57.4358Hz - HSync - 15.6235kHz - - -Note on Lock'n'Chase: - -The watchdog test prints "WATCHDOG TEST ER". Just by looking at the code, -I can't see how it could print anything else, there is only one path it -can take. Should the game reset???? - - -2008-07: -Verified dip locations for: btime (manual), bnj (dips listing), lnc (manual), -zoar (manual), disco (dips listing). Names of disco switches in DIPLOC are -not confirmed (manual needed, in the meanwhile I put generic SW1 & SW2). - -A few notes: -* All the documents says that DSW1 bit 7 is related to the cocktail mode - (either flipping the screen or changing the control panel) -* According to manuals, btime & bnj Service dips should have a different - effect, using 2 bits to access different tests (see commented out - settings below). This is normal, the tests are in sets btime3 & btimem -* How do country codes affect disco? are there other values other than - the ones in the manual? -* If/when tisland is fixed/working it needs its own inputs/DIPs (currently wrong using btime inputs/DIPs) -* Most games have SW2.8 on. This is normal because that bit is part of the vblank circuit. - Currently MAME can't show that as a DIPSW but it must be on regardless or those games won't boot. -* Some games have no sound or bad sound after a manual soft reset (F3). Use shift-F3 (hard reset). -* wtennis is not fully understood and has a reset hack to make it work but the real issue should be fixed. - Even with the hack it does not boot directly into the game, it stays on a test screen. - Reset the game with F3 (soft reset) or two shift-F3 hard resets to 'fix' it. - -***************************************************************************/ - -#include "emu.h" -#include "includes/btime.h" - -#include "cpu/m6502/m6502.h" -#include "sound/ay8910.h" -#include "sound/discrete.h" -#include "machine/decocpu7.h" -#include "machine/deco222.h" -#include "speaker.h" - -#define MASTER_CLOCK XTAL(12'000'000) -#define HCLK (MASTER_CLOCK/2) -#define HCLK1 (HCLK/2) -#define HCLK2 (HCLK1/2) -#define HCLK4 (HCLK2/2) - -enum -{ - AUDIO_ENABLE_DIRECT, /* via direct address in memory map */ - AUDIO_ENABLE_AY8910 /* via ay-8910 port A */ -}; - - -void btime_state::audio_nmi_enable_w(uint8_t data) -{ - /* for most games, this serves as the NMI enable for the audio CPU; however, - lnc and disco use bit 0 of the first AY-8910's port A instead; many other - games also write there in addition to this address */ - if (m_audio_nmi_enable_type == AUDIO_ENABLE_DIRECT) - m_audionmi->in_w<0>(BIT(data, 0)); -} - -void btime_state::ay_audio_nmi_enable_w(uint8_t data) -{ - /* port A bit 0, when 1, inhibits the NMI */ - if (m_audio_nmi_enable_type == AUDIO_ENABLE_AY8910) - m_audionmi->in_w<0>(BIT(~data, 0)); -} - -TIMER_DEVICE_CALLBACK_MEMBER(btime_state::audio_nmi_gen) -{ - int scanline = param; - m_audionmi->in_w<1>((scanline & 8) >> 3); -} - -void btime_state::btime_map(address_map &map) -{ - map(0x0000, 0x07ff).ram().share("rambase"); - map(0x0c00, 0x0c0f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); - map(0x1000, 0x13ff).ram().share("videoram"); - map(0x1400, 0x17ff).ram().share("colorram"); - map(0x1800, 0x1bff).rw(FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w)); - map(0x1c00, 0x1fff).rw(FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w)); - map(0x4000, 0x4000).portr("P1").nopw(); - map(0x4001, 0x4001).portr("P2"); - map(0x4002, 0x4002).portr("SYSTEM").w(FUNC(btime_state::btime_video_control_w)); - map(0x4003, 0x4003).portr("DSW1").w(m_soundlatch, FUNC(generic_latch_8_device::write)); - map(0x4004, 0x4004).portr("DSW2").w(FUNC(btime_state::bnj_scroll1_w)); - map(0xb000, 0xffff).rom(); -} - -void btime_state::cookrace_map(address_map &map) -{ - map(0x0000, 0x03ff).ram().share("rambase"); - map(0x0500, 0x3fff).rom(); - map(0xc000, 0xc3ff).ram().share("videoram"); - map(0xc400, 0xc7ff).ram().share("colorram"); - map(0xc800, 0xcbff).rw(FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w)); - map(0xcc00, 0xcfff).rw(FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w)); - map(0xd000, 0xd0ff).ram(); /* background? */ - map(0xd100, 0xd3ff).ram(); /* ? */ - map(0xd400, 0xd7ff).ram().share("bnj_bgram"); - map(0xe000, 0xe000).portr("DSW1").w(FUNC(btime_state::bnj_video_control_w)); - map(0xe300, 0xe300).portr("DSW1"); /* mirror address used on high score name entry */ - /* screen */ - map(0xe001, 0xe001).portr("DSW2").w(m_soundlatch, FUNC(generic_latch_8_device::write)); - map(0xe002, 0xe002).portr("P1"); - map(0xe003, 0xe003).portr("P2"); - map(0xe004, 0xe004).portr("SYSTEM"); - map(0xfff9, 0xffff).rom(); -} - -void btime_state::tisland_map(address_map &map) -{ - map(0x0000, 0x07ff).ram().share("rambase"); - map(0x0c00, 0x0c0f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); - map(0x1000, 0x13ff).ram().share("videoram"); - map(0x1400, 0x17ff).ram().share("colorram"); - map(0x1800, 0x1bff).rw(FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w)); - map(0x1c00, 0x1fff).rw(FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w)); - map(0x4000, 0x4000).portr("P1").nopw(); - map(0x4001, 0x4001).portr("P2"); - map(0x4002, 0x4002).portr("SYSTEM").w(FUNC(btime_state::btime_video_control_w)); - map(0x4003, 0x4003).portr("DSW1").w(m_soundlatch, FUNC(generic_latch_8_device::write)); - map(0x4004, 0x4004).portr("DSW2").w(FUNC(btime_state::bnj_scroll1_w)); - map(0x4005, 0x4005).w(FUNC(btime_state::bnj_scroll2_w)); - map(0x9000, 0xffff).rom(); -} - -void btime_state::zoar_map(address_map &map) -{ - map(0x0000, 0x07ff).ram().share("rambase"); - map(0x8000, 0x83ff).writeonly().share("videoram"); - map(0x8400, 0x87ff).writeonly().share("colorram"); - map(0x8800, 0x8bff).w(FUNC(btime_state::btime_mirrorvideoram_w)); - map(0x8c00, 0x8fff).w(FUNC(btime_state::btime_mirrorcolorram_w)); - map(0x9000, 0x9000).w(FUNC(btime_state::zoar_video_control_w)); - map(0x9800, 0x9800).r(FUNC(btime_state::zoar_dsw1_read)); - map(0x9801, 0x9801).portr("DSW2"); - map(0x9802, 0x9802).portr("P1"); - map(0x9803, 0x9803).portr("P2"); - map(0x9800, 0x9803).writeonly().share("zoar_scrollram"); - map(0x9804, 0x9804).portr("SYSTEM").w(FUNC(btime_state::bnj_scroll2_w)); - map(0x9805, 0x9805).w(FUNC(btime_state::bnj_scroll1_w)); - map(0x9806, 0x9806).w(m_soundlatch, FUNC(generic_latch_8_device::write)); - map(0xd000, 0xffff).rom(); -} - -void btime_state::lnc_map(address_map &map) -{ - map(0x0000, 0x3bff).ram().share("rambase"); - map(0x3c00, 0x3fff).ram().w(FUNC(btime_state::lnc_videoram_w)).share("videoram"); - map(0x7800, 0x7bff).writeonly().share("colorram"); /* this is just here to initialize the pointer */ - map(0x7c00, 0x7fff).rw(FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::lnc_mirrorvideoram_w)); - map(0x8000, 0x8000).portr("DSW1").nopw(); /* ??? */ - map(0x8001, 0x8001).portr("DSW2").w(FUNC(btime_state::bnj_video_control_w)); - map(0x8003, 0x8003).writeonly().share("lnc_charbank"); - map(0x9000, 0x9000).portr("P1").nopw(); /* IRQ ack??? */ - map(0x9001, 0x9001).portr("P2"); - map(0x9002, 0x9002).portr("SYSTEM").w(m_soundlatch, FUNC(generic_latch_8_device::write)); - map(0xb000, 0xb1ff).ram(); - map(0xc000, 0xffff).rom(); -} - -void btime_state::mmonkey_map(address_map &map) -{ - map(0x0000, 0x3bff).ram().share("rambase"); - map(0x3c00, 0x3fff).ram().w(FUNC(btime_state::lnc_videoram_w)).share("videoram"); - map(0x7800, 0x7bff).writeonly().share("colorram"); /* this is just here to initialize the pointer */ - map(0x7c00, 0x7fff).rw(FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::lnc_mirrorvideoram_w)); - map(0x8000, 0x8000).portr("DSW1"); - map(0x8001, 0x8001).portr("DSW2").w(FUNC(btime_state::bnj_video_control_w)); - map(0x8003, 0x8003).writeonly().share("lnc_charbank"); - map(0x9000, 0x9000).portr("P1").nopw(); /* IRQ ack??? */ - map(0x9001, 0x9001).portr("P2"); - map(0x9002, 0x9002).portr("SYSTEM").w(m_soundlatch, FUNC(generic_latch_8_device::write)); - map(0xb000, 0xbfff).rw(FUNC(btime_state::mmonkey_protection_r), FUNC(btime_state::mmonkey_protection_w)); - map(0xc000, 0xffff).rom(); -} - -void btime_state::bnj_map(address_map &map) -{ - map(0x0000, 0x07ff).ram().share("rambase"); - map(0x1000, 0x1000).portr("DSW1"); - map(0x1001, 0x1001).portr("DSW2").w(FUNC(btime_state::bnj_video_control_w)); - map(0x1002, 0x1002).portr("P1").w(m_soundlatch, FUNC(generic_latch_8_device::write)); - map(0x1003, 0x1003).portr("P2"); - map(0x1004, 0x1004).portr("SYSTEM"); - map(0x4000, 0x43ff).ram().share("videoram"); - map(0x4400, 0x47ff).ram().share("colorram"); - map(0x4800, 0x4bff).rw(FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w)); - map(0x4c00, 0x4fff).rw(FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w)); - map(0x5000, 0x51ff).ram().w(FUNC(btime_state::bnj_background_w)).share("bnj_bgram"); - map(0x5200, 0x53ff).ram(); - map(0x5400, 0x5400).w(FUNC(btime_state::bnj_scroll1_w)); - map(0x5800, 0x5800).w(FUNC(btime_state::bnj_scroll2_w)); - map(0x5c00, 0x5c0f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); - map(0xa000, 0xffff).rom(); -} - -void btime_state::disco_map(address_map &map) -{ - map(0x0000, 0x04ff).ram().share("rambase"); - map(0x2000, 0x7fff).ram().w(FUNC(btime_state::deco_charram_w)).share("deco_charram"); - map(0x8000, 0x83ff).ram().share("videoram"); - map(0x8400, 0x87ff).ram().share("colorram"); - map(0x8800, 0x881f).ram().share("spriteram"); - map(0x9000, 0x9000).portr("SYSTEM"); - map(0x9200, 0x9200).portr("P1"); - map(0x9400, 0x9400).portr("P2"); - map(0x9800, 0x9800).portr("DSW1"); - map(0x9a00, 0x9a00).portr("DSW2").w(m_soundlatch, FUNC(generic_latch_8_device::write)); - map(0x9c00, 0x9c00).portr("VBLANK").w(FUNC(btime_state::disco_video_control_w)); - map(0xa000, 0xffff).rom(); -} - -void btime_state::protenn_map(address_map &map) -{ - disco_map(map); - - map(0x9a00, 0x9a00).unmapr(); - map(0x9a01, 0x9a01).portr("DSW2"); -} - -void btime_state::audio_map(address_map &map) -{ - map(0x0000, 0x03ff).mirror(0x1c00).ram().share("audio_rambase"); - map(0x2000, 0x3fff).w("ay1", FUNC(ay8910_device::data_w)); - map(0x4000, 0x5fff).w("ay1", FUNC(ay8910_device::address_w)); - map(0x6000, 0x7fff).w("ay2", FUNC(ay8910_device::data_w)); - map(0x8000, 0x9fff).w("ay2", FUNC(ay8910_device::address_w)); - map(0xa000, 0xbfff).r(m_soundlatch, FUNC(generic_latch_8_device::read)); - map(0xc000, 0xdfff).w(FUNC(btime_state::audio_nmi_enable_w)); - map(0xe000, 0xefff).mirror(0x1000).rom(); -} - -void btime_state::disco_audio_map(address_map &map) -{ - map(0x0000, 0x03ff).ram(); - map(0x4000, 0x4fff).w("ay1", FUNC(ay8910_device::data_w)); - map(0x5000, 0x5fff).w("ay1", FUNC(ay8910_device::address_w)); - map(0x6000, 0x6fff).w("ay2", FUNC(ay8910_device::data_w)); - map(0x7000, 0x7fff).w("ay2", FUNC(ay8910_device::address_w)); - map(0x8000, 0x8fff).rw(m_soundlatch, FUNC(generic_latch_8_device::read), FUNC(generic_latch_8_device::acknowledge_w)); - map(0xf000, 0xffff).rom(); -} - - -INPUT_CHANGED_MEMBER(btime_state::coin_inserted_irq_hi) -{ - if (newval) - m_maincpu->set_input_line(0, HOLD_LINE); -} - -INPUT_CHANGED_MEMBER(btime_state::coin_inserted_irq_lo) -{ - if (!newval) - m_maincpu->set_input_line(0, HOLD_LINE); -} - -INPUT_CHANGED_MEMBER(btime_state::coin_inserted_nmi_lo) -{ - m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); -} - - -uint8_t btime_state::zoar_dsw1_read() -{ - return (!m_screen->vblank() << 7) | (ioport("DSW1")->read() & 0x7f); -} - -static INPUT_PORTS_START( btime ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_irq_hi, 0) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_irq_hi, 0) - - PORT_START("DSW1") // At location 15D on sound PCB - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x10, 0x10, "Leave Off" ) PORT_DIPLOCATION("SW1:5") // Must be OFF. No test mode in ROM - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) // so this locks up the game at boot-up if on - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:6" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) -// PORT_DIPNAME( 0x80, 0x00, "Screen" ) PORT_DIPLOCATION("SW1:8") // Manual states this is Screen Invert -// PORT_DIPSETTING( 0x00, "Normal" ) -// PORT_DIPSETTING( 0x80, "Invert" ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // Schematics show this is connected to DIP SW2.8 - - PORT_START("DSW2") // At location 14D on sound PCB - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x02, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "10000" ) - PORT_DIPSETTING( 0x04, "15000" ) - PORT_DIPSETTING( 0x02, "20000" ) - PORT_DIPSETTING( 0x00, "30000" ) - PORT_DIPNAME( 0x08, 0x08, "Enemies" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x10, 0x00, "End of Level Pepper" ) PORT_DIPLOCATION("SW2:5") - PORT_DIPSETTING( 0x10, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6" ) // should be OFF according to the manual - PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW2:7" ) // should be OFF according to the manual - PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:8" ) // should be OFF according to the manual -INPUT_PORTS_END - -static INPUT_PORTS_START( btime3 ) // Used for btime3 and btimem - PORT_INCLUDE( btime ) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x30, 0x30, "Test Mode" ) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x30, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, "Sound Test Only" ) - PORT_DIPSETTING( 0x10, "Cross Hatch Only" ) - PORT_DIPSETTING( 0x20, "Normal Test" ) // Use Coin A to advance the tests - - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "30000" ) - PORT_DIPSETTING( 0x04, "50000" ) - PORT_DIPSETTING( 0x02, "80000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( cookrace ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:5" ) - PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:6" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // Actually DIP SW2.8 - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "20000" ) - PORT_DIPSETTING( 0x04, "30000" ) - PORT_DIPSETTING( 0x02, "40000" ) - PORT_DIPSETTING( 0x00, "50000" ) - PORT_DIPNAME( 0x08, 0x08, "Enemies" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x10, 0x10, "End of Level Pepper" ) PORT_DIPLOCATION("SW2:5") - PORT_DIPSETTING( 0x10, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8") - PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( zoar ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_irq_lo, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_irq_lo, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:5" ) // Manual says bit 5 & 6 have to stay off - PORT_DIPNAME( 0x20, 0x20, "Leave Off" ) PORT_DIPLOCATION("SW1:6") // Must be OFF. No test mode in ROM - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) // so this locks up the game at boot-up when on - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) -// PORT_DIPNAME( 0x80, 0x00, "Screen" ) PORT_DIPLOCATION("SW1:8") // Manual says Screen Invert but it is not implimented -// PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) -// PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - // I can't use PORT_VBLANK as players would have almost no time to enter their initials - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Actually DIP SW2.8 - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "5000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x02, "15000" ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x00, "Number Of Buttons" ) PORT_DIPLOCATION("SW2:5") // Manual says 'Panel B' - PORT_DIPSETTING( 0x00, "3 (Manual Weapon Select)" ) // This removes a button as the cocktail has less buttons - PORT_DIPSETTING( 0x10, "2 (Auto Weapon Select)" ) // See notes in this driver at around line 80 - PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW2:6" ) // These 3 switches have something to do with coinage - PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW2:7" ) // See code at $d234. Feel free to figure them out - PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW2:8" ) // Manual says to leave them off -INPUT_PORTS_END - -static INPUT_PORTS_START( lnc ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x30, 0x30, "Test Mode" ) PORT_DIPLOCATION("SW1:5,6") // Manual says these bits are unused - PORT_DIPSETTING( 0x30, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, "RAM Test Only" ) - PORT_DIPSETTING( 0x20, "Watchdog Test Only" ) - PORT_DIPSETTING( 0x10, "All Tests" ) // Use Coin A to advance the tests - PORT_DIPNAME( 0x40, 0x00, "Control Panel" ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) -// PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8") -// PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) -// PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // Actually DIP SW2.8 - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "15000" ) - PORT_DIPSETTING( 0x04, "20000" ) - PORT_DIPSETTING( 0x02, "30000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "Game Speed" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, "Slow" ) - PORT_DIPSETTING( 0x00, "Fast" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) // should be OFF according to the manual */ - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) // should be OFF according to the manual */ - PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" ) // should be OFF according to the manual */ - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) // should be OFF according to the manual */ -INPUT_PORTS_END - -static INPUT_PORTS_START( wtennis ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:5" ) - PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:6" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // Actually DIP SW2.8 - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "10000" ) - PORT_DIPSETTING( 0x04, "20000" ) - PORT_DIPSETTING( 0x02, "30000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:4" ) // definitely used - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) - PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) // Switches 6,7,8 - PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" ) // have something to do - PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) // with coinage. -INPUT_PORTS_END - -static INPUT_PORTS_START( mmonkey ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW1:6" ) // almost certainly unused - PORT_DIPNAME( 0x40, 0x00, "Control Panel" ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) -// PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8") -// PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) -// PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // Actually DIP SW2.8 - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x02, "Every 15000" ) - PORT_DIPSETTING( 0x04, "Every 30000" ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPSETTING( 0x06, DEF_STR( None ) ) - PORT_DIPNAME( 0x18, 0x08, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4,5") - PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, "Level Skip Mode (Cheat)") - PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6" ) // almost certainly unused - PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW2:7" ) // almost certainly unused - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( bnj ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - - PORT_START("DSW1") // At location 8D - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x30, 0x30, "Test Mode" ) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x30, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, "All Tests" ) // Use Coin A to advance the tests - PORT_DIPSETTING( 0x00, "RAM Test Only" ) - PORT_DIPSETTING( 0x10, "No Effect" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - // According to crazykong.com dips this should change the control layout -// PORT_DIPNAME( 0x80, 0x00, "Control Panel" ) PORT_DIPLOCATION("SW1:8") -// PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) -// PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // Schematics show this is connected to DIP SW2.8 - - PORT_START("DSW2") // At location 7D - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "Every 30000" ) - PORT_DIPSETTING( 0x04, "Every 70000" ) - PORT_DIPSETTING( 0x02, "20000 Only" ) - PORT_DIPSETTING( 0x00, "30000 Only" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:5") - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) // it should be OFF according to the manual - PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" ) // it should be OFF according to the manual - PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) // it should be OFF according to the manual -INPUT_PORTS_END - - -static INPUT_PORTS_START( brubber ) // no test mode for brubber - PORT_INCLUDE( bnj ) - - PORT_MODIFY("DSW1") - PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:5" ) - PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:6" ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( caractn2 ) // Lives DIP changes in this set - PORT_INCLUDE( brubber ) - - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x00, "3" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( disco ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - - PORT_START("SYSTEM") - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_irq_hi, 0) - PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_irq_hi, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!1,!2") - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!3,!4") - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW1:!5" ) - PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x00, "SW1:!6" ) - PORT_DIPNAME( 0x40, 0x40, "Control Panel" ) PORT_DIPLOCATION("SW1:!7") - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!8") - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!1") - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!2,!3") - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x02, "20000" ) - PORT_DIPSETTING( 0x04, "30000" ) - PORT_DIPSETTING( 0x06, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x00, "Music Weapons" ) PORT_DIPLOCATION("SW2:!4") - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPSETTING( 0x08, "8" ) - PORT_DIPNAME( 0x10, 0x00, "Game Speed" ) PORT_DIPLOCATION("SW2:!5") - PORT_DIPSETTING( 0x00, "Slow" ) - PORT_DIPSETTING( 0x10, "Fast" ) - PORT_DIPNAME( 0xe0, 0x00, "Country Code" ) PORT_DIPLOCATION("SW2:!6,!7,!8") - PORT_DIPSETTING( 0x00, "A" ) - PORT_DIPSETTING( 0x20, "B" ) - PORT_DIPSETTING( 0x40, "C" ) - PORT_DIPSETTING( 0x60, "D" ) - PORT_DIPSETTING( 0x80, "E" ) - PORT_DIPSETTING( 0xa0, "F" ) - - PORT_START("VBLANK") - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") -INPUT_PORTS_END - -static INPUT_PORTS_START( protenn ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - - PORT_START("SYSTEM") - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_irq_hi, 0) - PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_irq_hi, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:5" ) - PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:6" ) - PORT_DIPNAME( 0x40, 0x40, "Control Panel" ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "10000" ) - PORT_DIPSETTING( 0x04, "20000" ) - PORT_DIPSETTING( 0x02, "30000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, "Amateur" ) - PORT_DIPSETTING( 0x00, "Professional" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) - PORT_DIPNAME( 0xe0, 0xe0, "Country Code" ) PORT_DIPLOCATION("SW2:6,7,8") // Listed as "DON'T CHANGE" - PORT_DIPSETTING( 0xe0, "A" ) - PORT_DIPSETTING( 0xc0, "B" ) - PORT_DIPSETTING( 0xa0, "C" ) - PORT_DIPSETTING( 0x80, "D" ) - PORT_DIPSETTING( 0x60, "E" ) - PORT_DIPSETTING( 0x40, "F" ) - - PORT_START("VBLANK") - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") -INPUT_PORTS_END - -static INPUT_PORTS_START( sdtennis ) - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, btime_state,coin_inserted_nmi_lo, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x30, 0x30, "Test Mode" ) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x30, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, "All Tests" ) // Use Coin A to advance the tests - PORT_DIPSETTING( 0x00, "Video Tests Only" ) - PORT_DIPSETTING( 0x10, "No Effect" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // Actually DIP SW2.8 - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, "1 Set won" ) - PORT_DIPSETTING( 0x04, "2 Sets won" ) - PORT_DIPSETTING( 0x02, "3 Sets won" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4") // Check code at 0xc55b - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) // Check code at 0xc5af - PORT_DIPNAME( 0xe0, 0xe0, "Copyright" ) PORT_DIPLOCATION("SW2:6,7,8") - PORT_DIPSETTING( 0xc0, "Data East USA" ) - PORT_DIPSETTING( 0xe0, "Data East Corporation" ) - PORT_DIPSETTING( 0x80, "Data East Corporation" ) - PORT_DIPSETTING( 0x00, "Data East Corporation" ) - PORT_DIPSETTING( 0x60, "Special: Coin A 3 Credits, Coin B 8 Credits" ) - // Only two copyrights show. Other values are the same as 0xe0 - // 0x60 gives a special coinage : COIN1 gives 3 credits and COIN2 gives 8 credits - // and the coinage DIP switches are ignored in this case -INPUT_PORTS_END - -static const gfx_layout tile8layout = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) }, - { STEP8(0,1) }, - { STEP8(0,8) }, - 8*8 -}; - -static const gfx_layout disco_tile8layout = -{ - 8,8, - 0x6000/3/8, - 3, - { 0x4000*8, 0x2000*8, 0x0000*8 }, - { STEP8(0,1) }, - { STEP8(0,8) }, - 8*8 -}; - - -static const gfx_layout tile16layout = -{ - 16,16, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) }, - { STEP8(16*8,1), STEP8(0,1) }, - { STEP16(0,8) }, - 32*8 -}; - -static const gfx_layout disco_tile16layout = -{ - 16,16, - 0x6000/3/32, - 3, - { 0x4000*8, 0x2000*8, 0x0000*8 }, - { STEP8(16*8,1), STEP8(0,1) }, - { STEP16(0,8) }, - 32*8 -}; - -static const gfx_layout bnj_tile16layout = -{ - 16,16, - RGN_FRAC(1,2), - 3, - { RGN_FRAC(1,2)+4, RGN_FRAC(0,2)+0, RGN_FRAC(0,2)+4 }, - { STEP4(3*16*8,1), STEP4(2*16*8,1), STEP4(1*16*8,1), STEP4(0*16*8,1) }, - { STEP16(0,8) }, - 64*8 -}; - -static GFXDECODE_START( gfx_btime ) - GFXDECODE_ENTRY( "gfx1", 0, tile8layout, 0, 1 ) /* char set #1 */ - GFXDECODE_ENTRY( "gfx1", 0, tile16layout, 0, 1 ) /* sprites */ - GFXDECODE_ENTRY( "gfx2", 0, tile16layout, 8, 1 ) /* background tiles */ -GFXDECODE_END - -static GFXDECODE_START( gfx_cookrace ) - GFXDECODE_ENTRY( "gfx1", 0, tile8layout, 0, 1 ) /* char set #1 */ - GFXDECODE_ENTRY( "gfx1", 0, tile16layout, 0, 1 ) /* sprites */ - GFXDECODE_ENTRY( "gfx2", 0, tile8layout, 8, 1 ) /* background tiles */ -GFXDECODE_END - -static GFXDECODE_START( gfx_lnc ) - GFXDECODE_ENTRY( "gfx1", 0, tile8layout, 0, 1 ) /* char set #1 */ - GFXDECODE_ENTRY( "gfx1", 0, tile16layout, 0, 1 ) /* sprites */ -GFXDECODE_END - -static GFXDECODE_START( gfx_bnj ) - GFXDECODE_ENTRY( "gfx1", 0, tile8layout, 0, 1 ) /* char set #1 */ - GFXDECODE_ENTRY( "gfx1", 0, tile16layout, 0, 1 ) /* sprites */ - GFXDECODE_ENTRY( "gfx2", 0, bnj_tile16layout,8, 1 ) /* background tiles */ -GFXDECODE_END - -static GFXDECODE_START( gfx_zoar ) - GFXDECODE_ENTRY( "gfx1", 0, tile8layout, 0, 8 ) /* char set #1 */ - GFXDECODE_ENTRY( "gfx3", 0, tile16layout, 0, 8 ) /* sprites */ - GFXDECODE_ENTRY( "gfx2", 0, tile16layout, 0, 8 ) /* background tiles */ -GFXDECODE_END - -static GFXDECODE_START( gfx_disco ) - GFXDECODE_ENTRY( nullptr, 0, disco_tile8layout, 0, 4 ) /* char set #1 */ - GFXDECODE_ENTRY( nullptr, 0, disco_tile16layout, 0, 4 ) /* sprites */ -GFXDECODE_END - -/*************************************************************************** - Discrete Filtering and Mixing - - All values taken from Burger Time Schematics. - - ****************************************************************************/ - -static const discrete_mixer_desc btime_sound_mixer_desc = - {DISC_MIXER_IS_OP_AMP, - {RES_K(100), RES_K(100)}, - {0,0}, /* no variable resistors */ - {0,0}, /* no node capacitors */ - 0, /* no RI */ - RES_K(10), - CAP_P(150), - 0, /* Modelled separately */ - 0, 1}; - -/* R49 has 4.7k in schematics, but listed as 47k in bill of material - * 47k gives proper low pass filtering - * - * Anoid measured R49 to R52 on a Burger Time pcb. These are - * listed below - */ -#define BTIME_R49 RES_K(47) /* pcb: 47.4k */ - -/* The input divider R51 R50 is not independent of R52, which - * also depends on ay internal resistance. - * FIXME: Develop proper model when I am retired. - * - * With R51 being 1K, the gain is way to high (23.5). Therefore R51 - * is set to 5k, but this is a hack. With the modification, - * sound levels are in line with observations. - * R51,R50,R52 and R49 verified on real pcb by Anoid. - * - * http://www.coinopvideogames.com/videogames01.php - * There are two recordings from 1982 where the filtered sound is way louder - * than the music. There is a later recording - * http://www.coinopvideogames.com/videogames03.php - * in which the filtered sounds have volumes closer to the music. - * - */ - -#define BTIME_R52 RES_K(1) /* pcb: .912k = 1K || 11k */ -#define BTIME_R51 RES_K(5) /* pcb: .923k = 1k || 11k schematics 1k */ -#define BTIME_R50 RES_K(10) /* pcb: 1.667k = 10k || 2k */ - -static const discrete_op_amp_filt_info btime_opamp_desc = - {BTIME_R51, 0, BTIME_R50, 0, BTIME_R49, CAP_U(0.068), CAP_U(0.068), 0, 0, 5.0, -5.0}; - -static DISCRETE_SOUND_START( btime_sound_discrete ) - - DISCRETE_INPUTX_STREAM(NODE_01, 0, 5.0/32767.0, 0) - DISCRETE_INPUTX_STREAM(NODE_02, 1, 5.0/32767.0, 0) - DISCRETE_INPUTX_STREAM(NODE_03, 2, 5.0/32767.0, 0) - - DISCRETE_INPUTX_STREAM(NODE_04, 3, 5.0/32767.0, 0) - DISCRETE_INPUTX_STREAM(NODE_05, 4, 5.0/32767.0, 0) - DISCRETE_INPUTX_STREAM(NODE_06, 5, 5.0/32767.0, 0) - - /* Mix 5 channels 1A, 1B, 1C, 2B, 2C directly */ - DISCRETE_ADDER3(NODE_20, 1, NODE_01, NODE_02, NODE_03) - DISCRETE_ADDER3(NODE_21, 1, NODE_20, NODE_05, NODE_06) - DISCRETE_MULTIPLY(NODE_22, NODE_21, 0.2) - - /* Filter of channel 2A */ - DISCRETE_OP_AMP_FILTER(NODE_30, 1, NODE_04, NODE_NC, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &btime_opamp_desc) - - DISCRETE_MIXER2(NODE_40, 1, NODE_22, NODE_30, &btime_sound_mixer_desc) - DISCRETE_CRFILTER(NODE_41, NODE_40, RES_K(10), CAP_U(10)) - - /* Amplifier is upc1181H3 - * - * http://www.ic-ts-histo.de/fad/ics/upc1181/upc1181.htm - * - * A linear frequency response is mentioned as well as a lower - * edge frequency determined by cap on pin3, however no formula given. - * - * not modelled here - */ - - /* Assuming a 4 Ohm impedance speaker */ - DISCRETE_CRFILTER(NODE_43, NODE_41, 3.0, CAP_U(100)) - - DISCRETE_OUTPUT(NODE_43, 32767.0 / 5. * 35.0) - -DISCRETE_SOUND_END - - -MACHINE_START_MEMBER(btime_state,btime) -{ - save_item(NAME(m_btime_palette)); - save_item(NAME(m_bnj_scroll1)); - save_item(NAME(m_bnj_scroll2)); - save_item(NAME(m_btime_tilemap)); -} - -MACHINE_START_MEMBER(btime_state,mmonkey) -{ - MACHINE_START_CALL_MEMBER(btime); - - save_item(NAME(m_protection_command)); - save_item(NAME(m_protection_status)); - save_item(NAME(m_protection_value)); - save_item(NAME(m_protection_ret)); -} - -MACHINE_RESET_MEMBER(btime_state,btime) -{ - /* by default, the audio NMI is disabled, except for bootlegs which don't use the enable */ - if (m_audionmi.found()) - m_audionmi->in_w<0>(0); - - m_btime_palette = 0; - m_bnj_scroll1 = 0; - m_bnj_scroll2 = 0; - m_btime_tilemap[0] = 0; - m_btime_tilemap[1] = 0; - m_btime_tilemap[2] = 0; - m_btime_tilemap[3] = 0; -} - -MACHINE_RESET_MEMBER(btime_state,lnc) -{ - *m_lnc_charbank = 1; - - MACHINE_RESET_CALL_MEMBER(btime); -} - -MACHINE_RESET_MEMBER(btime_state,mmonkey) -{ - MACHINE_RESET_CALL_MEMBER(lnc); - - m_protection_command = 0; - m_protection_status = 0; - m_protection_value = 0; - m_protection_ret = 0; -} - -void btime_state::btime(machine_config &config) -{ - /* basic machine hardware */ - DECO_CPU7(config, m_maincpu, HCLK2); /* selectable between H2/H4 via jumper */ - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::btime_map); - - M6502(config, m_audiocpu, HCLK1/3/2); - m_audiocpu->set_addrmap(AS_PROGRAM, &btime_state::audio_map); - TIMER(config, "8vck").configure_scanline(FUNC(btime_state::audio_nmi_gen), "screen", 0, 8); - - INPUT_MERGER_ALL_HIGH(config, "audionmi").output_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI); - - /* video hardware */ - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(HCLK, 384, 8, 248, 272, 8, 248); - m_screen->set_screen_update(FUNC(btime_state::screen_update_btime)); - m_screen->set_palette(m_palette); - - MCFG_MACHINE_START_OVERRIDE(btime_state,btime) - MCFG_MACHINE_RESET_OVERRIDE(btime_state,btime) - - GFXDECODE(config, m_gfxdecode, m_palette, gfx_btime); - PALETTE(config, m_palette, FUNC(btime_state::btime_palette)).set_format(palette_device::BGR_233_inverted, 16); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - - GENERIC_LATCH_8(config, m_soundlatch); - m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); - - ay8910_device &ay1(AY8910(config, "ay1", HCLK2)); - ay1.set_flags(AY8910_DISCRETE_OUTPUT); - ay1.set_resistors_load(RES_K(5), RES_K(5), RES_K(5)); - ay1.port_a_write_callback().set(FUNC(btime_state::ay_audio_nmi_enable_w)); - ay1.add_route(0, "discrete", 1.0, 0); - ay1.add_route(1, "discrete", 1.0, 1); - ay1.add_route(2, "discrete", 1.0, 2); - - ay8910_device &ay2(AY8910(config, "ay2", HCLK2)); - ay2.set_flags(AY8910_DISCRETE_OUTPUT); - ay2.set_resistors_load(RES_K(1), RES_K(5), RES_K(5)); - ay2.add_route(0, "discrete", 1.0, 3); - ay2.add_route(1, "discrete", 1.0, 4); - ay2.add_route(2, "discrete", 1.0, 5); - - DISCRETE(config, "discrete", btime_sound_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); -} - - -void btime_state::cookrace(machine_config &config) -{ - btime(config); - - /* basic machine hardware */ - DECO_C10707(config.replace(), m_maincpu, HCLK2); - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::cookrace_map); - - m_audiocpu->set_addrmap(AS_PROGRAM, &btime_state::audio_map); - - /* video hardware */ - m_gfxdecode->set_info(gfx_cookrace); - m_screen->set_screen_update(FUNC(btime_state::screen_update_cookrace)); -} - - -void btime_state::lnc(machine_config &config) -{ - btime(config); - - /* basic machine hardware */ - DECO_C10707(config.replace(), m_maincpu, HCLK2); - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::lnc_map); - - MCFG_MACHINE_RESET_OVERRIDE(btime_state,lnc) - - /* video hardware */ - m_gfxdecode->set_info(gfx_lnc); - - m_palette->set_entries(8); - m_palette->set_init(FUNC(btime_state::lnc_palette)); - - m_screen->set_screen_update(FUNC(btime_state::screen_update_lnc)); -} - - -void btime_state::wtennis(machine_config &config) -{ - lnc(config); - - /* video hardware */ - m_screen->set_screen_update(FUNC(btime_state::screen_update_eggs)); -} - - -void btime_state::mmonkey(machine_config &config) -{ - wtennis(config); - - /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::mmonkey_map); - - MCFG_MACHINE_START_OVERRIDE(btime_state,mmonkey) - MCFG_MACHINE_RESET_OVERRIDE(btime_state,mmonkey) -} - -void btime_state::bnj(machine_config &config) -{ - btime(config); - - /* basic machine hardware */ - DECO_C10707(config.replace(), m_maincpu, HCLK4); - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::bnj_map); - - /* video hardware */ - m_gfxdecode->set_info(gfx_bnj); - - MCFG_VIDEO_START_OVERRIDE(btime_state,bnj) - - m_screen->set_screen_update(FUNC(btime_state::screen_update_bnj)); - m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1); // 256 * 240, confirmed -} - - -void btime_state::sdtennis(machine_config &config) -{ - bnj(config); - - /* basic machine hardware */ - DECO_C10707(config.replace(), m_audiocpu, HCLK1/3/2); - m_audiocpu->set_addrmap(AS_PROGRAM, &btime_state::audio_map); -} - - -void btime_state::zoar(machine_config &config) -{ - btime(config); - - /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::zoar_map); - - /* video hardware */ - m_gfxdecode->set_info(gfx_zoar); - - m_palette->set_entries(64); - - m_screen->set_screen_update(FUNC(btime_state::screen_update_zoar)); - m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1); // 256 * 240, confirmed - - /* sound hardware */ - ay8910_device &ay1(AY8910(config.replace(), "ay1", HCLK1)); - ay1.add_route(ALL_OUTPUTS, "mono", 0.23); - ay1.set_flags(AY8910_DISCRETE_OUTPUT); - ay1.set_resistors_load(RES_K(5), RES_K(5), RES_K(5)); - ay1.port_a_write_callback().set(FUNC(btime_state::ay_audio_nmi_enable_w)); - - ay8910_device &ay2(AY8910(config.replace(), "ay2", HCLK1)); - ay2.add_route(ALL_OUTPUTS, "mono", 0.23); -} - - -void btime_state::disco(machine_config &config) -{ - btime(config); - - /* basic machine hardware */ - m_maincpu->set_clock(HCLK4); - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::disco_map); - - m_audiocpu->set_addrmap(AS_PROGRAM, &btime_state::disco_audio_map); - - m_soundlatch->set_separate_acknowledge(true); - - /* video hardware */ - m_gfxdecode->set_info(gfx_disco); - m_palette->set_entries(32); - - MCFG_VIDEO_START_OVERRIDE(btime_state,disco) - - m_screen->set_screen_update(FUNC(btime_state::screen_update_disco)); -} - - -void btime_state::protenn(machine_config &config) -{ - disco(config); - - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::protenn_map); -} - - -void btime_state::tisland(machine_config &config) -{ - btime(config); - - /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &btime_state::tisland_map); - - /* video hardware */ - m_gfxdecode->set_info(gfx_zoar); -} - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( btime ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "aa04.9b", 0xc000, 0x1000, CRC(368a25b5) SHA1(ed3f3712423979dcb351941fa85dce6a0a7bb16b) ) - ROM_LOAD( "aa06.13b", 0xd000, 0x1000, CRC(b4ba400d) SHA1(8c77397e934907bc47a739f263196a0f2f81ba3d) ) - ROM_LOAD( "aa05.10b", 0xe000, 0x1000, CRC(8005bffa) SHA1(d0da4e360039f6a8d8142a4e8e05c1f90c0af68a) ) - ROM_LOAD( "aa07.15b", 0xf000, 0x1000, CRC(086440ad) SHA1(4a32bc92f8ff5fbe112f56e62d2c03da8851a7b9) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "aa12.7k", 0x0000, 0x1000, CRC(c4617243) SHA1(24204d591aa2c264a852ee9ba8c4be63efd97728) ) /* charset #1 */ - ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) ) - ROM_LOAD( "ab10.10k", 0x2000, 0x1000, CRC(854a872a) SHA1(3d2ecfd54a5a9d68b53cf4b4ee1f2daa6aef2123) ) - ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) ) - ROM_LOAD( "aa8.13k", 0x4000, 0x1000, CRC(8650c788) SHA1(d9b1ee2d1f2fd66705d497c80252861b49aa9254) ) - ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) ) - - ROM_REGION( 0x1800, "gfx2", 0 ) - ROM_LOAD( "ab00.1b", 0x0000, 0x0800, CRC(c7a14485) SHA1(6a0a8e6b7860859f22daa33634e34fbf91387659) ) /* charset #2 */ - ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) ) - ROM_LOAD( "ab02.4b", 0x1000, 0x0800, CRC(b8ef56c3) SHA1(4a03bf011dc1fb2902f42587b1174b880cf06df1) ) - - ROM_REGION( 0x0800, "bg_map", 0 ) /* background tilemaps */ - ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) ) -ROM_END - - -ROM_START( btime2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "aa04.9b2", 0xc000, 0x1000, CRC(a041e25b) SHA1(caaab3ae46619d0a87a8985d316411f23be0b696) ) - ROM_LOAD( "aa06.13b", 0xd000, 0x1000, CRC(b4ba400d) SHA1(8c77397e934907bc47a739f263196a0f2f81ba3d) ) - ROM_LOAD( "aa05.10b", 0xe000, 0x1000, CRC(8005bffa) SHA1(d0da4e360039f6a8d8142a4e8e05c1f90c0af68a) ) - ROM_LOAD( "aa07.15b", 0xf000, 0x1000, CRC(086440ad) SHA1(4a32bc92f8ff5fbe112f56e62d2c03da8851a7b9) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "aa12.7k", 0x0000, 0x1000, CRC(c4617243) SHA1(24204d591aa2c264a852ee9ba8c4be63efd97728) ) /* charset #1 */ - ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) ) - ROM_LOAD( "ab10.10k", 0x2000, 0x1000, CRC(854a872a) SHA1(3d2ecfd54a5a9d68b53cf4b4ee1f2daa6aef2123) ) - ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) ) - ROM_LOAD( "aa8.13k", 0x4000, 0x1000, CRC(8650c788) SHA1(d9b1ee2d1f2fd66705d497c80252861b49aa9254) ) - ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) ) - - ROM_REGION( 0x1800, "gfx2", 0 ) - ROM_LOAD( "ab00.1b", 0x0000, 0x0800, CRC(c7a14485) SHA1(6a0a8e6b7860859f22daa33634e34fbf91387659) ) /* charset #2 */ - ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) ) - ROM_LOAD( "ab02.4b", 0x1000, 0x0800, CRC(b8ef56c3) SHA1(4a03bf011dc1fb2902f42587b1174b880cf06df1) ) - - ROM_REGION( 0x0800, "bg_map", 0 ) /* background tilemaps */ - ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) ) -ROM_END - -ROM_START( btime3 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ab05a-3.12b", 0xb000, 0x1000, CRC(12e9f58c) SHA1(c1a933c83255af431643451b4eb68dc755bf0f61) ) /* Revision 3 & Copyright 1982 DATA EAST USA. INC. */ - ROM_LOAD( "ab04-3.9b", 0xc000, 0x1000, CRC(5d90c696) SHA1(7b1674e7b6249a2d806d81abd967adeeb51111be) ) - ROM_LOAD( "ab06-3.13b", 0xd000, 0x1000, CRC(e0b993ad) SHA1(42674cc399a8281a9a6c6cdbe38f7e5a4b3e6cb9) ) - ROM_LOAD( "ab05-3.10b", 0xe000, 0x1000, CRC(c2b44b7f) SHA1(03c972f4ca0a31a2689d2f2d4064d82732fb19b9) ) - ROM_LOAD( "ab07-3.15b", 0xf000, 0x1000, CRC(91986594) SHA1(f163eb7b27b602ce61a2dee1ae221a6e1f84c43d) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "ab14-1.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "ab12-1.7k", 0x0000, 0x1000, BAD_DUMP CRC(6c79f79f) SHA1(338009199b5889621693833d88c35abb8e9e38a2) ) /* ROM was damaged, not verified the same */ /* charset #1 */ - ROM_LOAD( "ab13-1.9k", 0x1000, 0x1000, BAD_DUMP CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) ) /* ROM was damaged, not verified the same */ - ROM_LOAD( "ab10-1.10k", 0x2000, 0x1000, CRC(854a872a) SHA1(3d2ecfd54a5a9d68b53cf4b4ee1f2daa6aef2123) ) - ROM_LOAD( "ab11-1.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) ) - ROM_LOAD( "ab8-1.13k", 0x4000, 0x1000, BAD_DUMP CRC(70b35bbe) SHA1(ee8d70d6792ac4b8fe3de90c665457fedb94a7ba) ) /* ROM was damaged, not verified the same */ - ROM_LOAD( "ab9-1.15k", 0x5000, 0x1000, BAD_DUMP CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) ) /* ROM was damaged, not verified the same */ - - ROM_REGION( 0x1800, "gfx2", 0 ) - ROM_LOAD( "ab00-1.1b", 0x0000, 0x0800, CRC(c7a14485) SHA1(6a0a8e6b7860859f22daa33634e34fbf91387659) ) - ROM_LOAD( "ab01-1.3b", 0x0800, 0x0800, BAD_DUMP CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) ) /* ROM was damaged, not verified the same */ - ROM_LOAD( "ab02-1.4b", 0x1000, 0x0800, CRC(b8ef56c3) SHA1(4a03bf011dc1fb2902f42587b1174b880cf06df1) ) - - ROM_REGION( 0x0800, "bg_map", 0 ) /* background tilemaps */ - ROM_LOAD( "ab03-3.6b", 0x0000, 0x0800, CRC(f699d797) SHA1(c09ba5e652f26683d90b6a5637e41adecc4f1afa) ) -ROM_END - -ROM_START( btimem ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ab05a1.12b", 0xb000, 0x1000, CRC(0a98b230) SHA1(aeee4f6f0aaa27575b80261d03c5453cc6ebd646) ) - ROM_LOAD( "ab04.9b", 0xc000, 0x1000, CRC(797e5f75) SHA1(35ea5fa4b8f3494adf7774b3946ed2540ac826ff) ) - ROM_LOAD( "ab06.13b", 0xd000, 0x1000, CRC(c77f3f64) SHA1(f283087fad0a102fe92be7ce80ed18e64dc93b67) ) - ROM_LOAD( "ab05.10b", 0xe000, 0x1000, CRC(b0d3640f) SHA1(6ba28971714ece6f1c04fa2dbf1f9f216ded7cfa) ) - ROM_LOAD( "ab07.15b", 0xf000, 0x1000, CRC(a142f862) SHA1(39d7ef172d18874885f1b1542e885cc4287dc344) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "ab12.7k", 0x0000, 0x1000, CRC(6c79f79f) SHA1(338009199b5889621693833d88c35abb8e9e38a2) ) /* charset #1 */ - ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) ) - ROM_LOAD( "ab10.10k", 0x2000, 0x1000, CRC(854a872a) SHA1(3d2ecfd54a5a9d68b53cf4b4ee1f2daa6aef2123) ) - ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) ) - ROM_LOAD( "ab8.13k", 0x4000, 0x1000, CRC(70b35bbe) SHA1(ee8d70d6792ac4b8fe3de90c665457fedb94a7ba) ) - ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) ) - - ROM_REGION( 0x1800, "gfx2", 0 ) - ROM_LOAD( "ab00.1b", 0x0000, 0x0800, CRC(c7a14485) SHA1(6a0a8e6b7860859f22daa33634e34fbf91387659) ) /* charset #2 */ - ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) ) - ROM_LOAD( "ab02.4b", 0x1000, 0x0800, CRC(b8ef56c3) SHA1(4a03bf011dc1fb2902f42587b1174b880cf06df1) ) - - ROM_REGION( 0x0800, "bg_map", 0 ) /* background tilemaps */ - ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) ) -ROM_END - -ROM_START( cookrace ) - ROM_REGION( 0x10000, "maincpu", 0 ) - /* code is in the range 0500-3fff, encrypted */ - ROM_LOAD( "1f.1", 0x0000, 0x2000, CRC(68759d32) SHA1(2112a6f17b871aefdb39739e47d4a9f368a2eb3c) ) - ROM_LOAD( "2f.2", 0x2000, 0x2000, CRC(be7d72d1) SHA1(232d108098cb490e7c828aa4524ad09d3866ae18) ) - ROM_LOAD( "2k", 0xffe0, 0x0020, CRC(e2553b3d) SHA1(0a38929cdb3f37c6e4bacc5c3f94c049b4352858) ) /* reset/interrupt vectors */ - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "6f.6", 0xe000, 0x1000, CRC(6b8e0272) SHA1(372a891b7b357aea0297ba9bcae752c3c9d8c1be) ) /* starts at 0000, not f000; 0000-01ff is RAM */ - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "m8.7", 0x0000, 0x2000, CRC(a1a0d5a6) SHA1(e9583320e9c303407abfe02988b95403e5209c52) ) /* charset #1 */ - ROM_LOAD( "m7.8", 0x2000, 0x2000, CRC(1104f497) SHA1(60abd05c2549fe014660c169011480beb191f36d) ) - ROM_LOAD( "m6.9", 0x4000, 0x2000, CRC(d0d94477) SHA1(74ca9134a52cabe5769d714855b38a49632b9e40) ) - - ROM_REGION( 0x1800, "gfx2", 0 ) - ROM_LOAD( "2f.3", 0x0000, 0x0800, CRC(28609a75) SHA1(ab5d02bc0a771227db820a79b16aa662fb2140cf) ) /* garbage?? */ - ROM_CONTINUE( 0x0000, 0x0800 ) /* charset #2 */ - ROM_LOAD( "4f.4", 0x0800, 0x0800, CRC(7742e771) SHA1(c938c5714273bd4f2a1beb23d781ecbe7b023e6d) ) /* garbage?? */ - ROM_CONTINUE( 0x0800, 0x0800 ) - ROM_LOAD( "5f.5", 0x1000, 0x0800, CRC(611c686f) SHA1(e2c45061597d3d1a855a625a906b5a17a87deb2c) ) /* garbage?? */ - ROM_CONTINUE( 0x1000, 0x0800 ) - - ROM_REGION( 0x0040, "proms", 0 ) - ROM_LOAD( "f9.clr", 0x0000, 0x0020, CRC(c2348c1d) SHA1(a7cc4b499b6c89c5966711f8bb922026c2978e1a) ) /* palette */ - ROM_LOAD( "b7", 0x0020, 0x0020, CRC(e4268fa6) SHA1(93f74e633c3a19755e78e0e2883109cd8ccde9a8) ) /* unknown */ -ROM_END - -ROM_START( tisland ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "t-04.b7", 0xa000, 0x1000, CRC(641af7f9) SHA1(50cd8f2372725356bb5a66024084363f5c5a870d) ) - ROM_RELOAD( 0x9000, 0x1000 ) - ROM_LOAD( "t-07.b11", 0xb000, 0x1000, CRC(6af00c8b) SHA1(e3948ca36642d3c2a1f94b017893d6e2fe178bb0) ) - ROM_LOAD( "t-05.b9", 0xc000, 0x1000, CRC(95b1a1d3) SHA1(5636580f26e839d1140838c7efc1cabc2cf06f6f) ) - ROM_LOAD( "t-08.b13", 0xd000, 0x1000, CRC(b7bbc008) SHA1(751491eac90f46985c83a6c06088638bcd0c0f20) ) - ROM_LOAD( "t-06.b10", 0xe000, 0x1000, CRC(5a6783cf) SHA1(f518290efec0fedb92432b4e3448aea2438b8448) ) - ROM_LOAD( "t-09.b14", 0xf000, 0x1000, CRC(5b26771a) SHA1(31d86acba4b6549fc08a3947d6d6d1a470fcb9da) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "t-0a.j11", 0xe000, 0x1000, CRC(807e1652) SHA1(ccfee616dc0e34d10a0e62b9864fd987291bf176) ) - - ROM_REGION( 0x3000, "gfx1", 0 ) - ROM_LOAD( "t-13.k14", 0x0000, 0x1000, CRC(95bdec2f) SHA1(201b9c53ea53a25535b619231d0d14e08c206ecf) ) - ROM_LOAD( "t-10.k10", 0x1000, 0x1000, CRC(3ba416cb) SHA1(90c968f963ba6f52f979f28f62eaccc0e2911508) ) - ROM_LOAD( "t-0d.k5", 0x2000, 0x1000, CRC(3d3e40b2) SHA1(90576c82500ce8eddbf4dd02e59ec4ccc3b13000) ) /* 8x8 tiles */ - - ROM_REGION( 0x1800, "gfx2", 0 ) /* bg tiles */ - // also contains the (incomplete) bg tilemap data for 1 tilemap (0x400-0x7ff of every rom is same as bg_map region, leftover?) */ - ROM_LOAD( "t-00.b1", 0x0000, 0x0800, CRC(05eaf899) SHA1(b03a1b7d985b4d841d6bbb213a32a33e324dff89) ) /* charset #2 */ - ROM_LOAD( "t-01.b2", 0x0800, 0x0800, CRC(f692e9e0) SHA1(e07ef20de8e9387f1096412d42d14ed5e52bbbd9) ) - ROM_LOAD( "t-02.b4", 0x1000, 0x0800, CRC(88396cae) SHA1(47233d91e9c7b14091a0050524fa49e1bc69311d) ) - - ROM_REGION( 0x6000, "gfx3", 0 ) - ROM_LOAD( "t-11.k11", 0x0000, 0x1000, CRC(779cc47c) SHA1(8921b81d460232252fd5a3c9bb2ad0befc1421da) ) /* 16x16 tiles*/ - ROM_LOAD( "t-12.k13", 0x1000, 0x1000, CRC(c804a8aa) SHA1(f8ce1da88443416b6cd276741a600104d36c3725) ) - ROM_LOAD( "t-0e.k6", 0x2000, 0x1000, CRC(63aa2b22) SHA1(765c405b1948191f5bdf1d8c1e7f20acb0894195) ) - ROM_LOAD( "t-0f.k8", 0x3000, 0x1000, CRC(3eeca392) SHA1(78deceea3628aed0a57cb4208d260a91a304695a) ) - ROM_LOAD( "t-0b.k2", 0x4000, 0x1000, CRC(ec416f20) SHA1(20852ef9753b103c5ec03d5eede778c0e25fc059) ) - ROM_LOAD( "t-0c.k4", 0x5000, 0x1000, CRC(428513a7) SHA1(aab97ee938dc743a2941f71f827c22b9dde8aef0) ) - - ROM_REGION( 0x1000, "bg_map", 0 ) /* bg tilemap data */ - ROM_LOAD( "t-03.b5", 0x0000, 0x1000, CRC(68df6d50) SHA1(461acc39089faac36bf8a8d279fbb6c046ae0264) ) -ROM_END - -/* There is a flyer with a screen shot for Lock'n'Chase at: - http://www.arcadeflyers.com/?page=flyer&db=videodb&id=608&image=1 */ - -ROM_START( lnc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "s3-3d", 0xc000, 0x1000, CRC(1ab4f2c2) SHA1(c5890b768172cd2e3912b84db5f71546969ad7e2) ) - ROM_LOAD( "s2-3c", 0xd000, 0x1000, CRC(5e46b789) SHA1(00b2510e07eb565cb373db798dd537191b0b7cc8) ) - ROM_LOAD( "s1-3b", 0xe000, 0x1000, CRC(1308a32e) SHA1(da64fe7b76f5ac8ac35460e6c789ab1e986c78ef) ) - ROM_LOAD( "s0-3a", 0xf000, 0x1000, CRC(beb4b1fc) SHA1(166a96b5757946231f3619844366218065412935) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "sa-1h", 0xe000, 0x1000, CRC(379387ec) SHA1(29d37f04c64ed53a2573962dfa9c0623b89e0045) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "s4-11l", 0x0000, 0x1000, CRC(a2162a9e) SHA1(2729cef805c8e863af540424faa1aca82d3525e2) ) - ROM_LOAD( "s5-11m", 0x1000, 0x1000, CRC(12f1c2db) SHA1(004e25a53ffa197e1238dfa53c530f128cf40516) ) - ROM_LOAD( "s6-13l", 0x2000, 0x1000, CRC(d21e2a57) SHA1(0462cd3a5be87da97ed1bd8b79f8822cd5a33cf1) ) - ROM_LOAD( "s7-13m", 0x3000, 0x1000, CRC(c4f247cd) SHA1(2c86bf479169981daf0378eb0b3e1a600937aaf2) ) - ROM_LOAD( "s8-15l", 0x4000, 0x1000, CRC(672a92d0) SHA1(1bc89f6a76873504aa0fcfa0c6a43e8546edde27) ) - ROM_LOAD( "s9-15m", 0x5000, 0x1000, CRC(87c8ee9a) SHA1(158019b18bc3e5104bebeb241c077a706bf72ff2) ) - - ROM_REGION( 0x0040, "proms", 0 ) - ROM_LOAD( "sc-5m", 0x0000, 0x0020, CRC(2a976ebe) SHA1(f3c1b0d98f431f9cd0d5fa009fafa1115aabe6e5) ) /* palette */ - ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) ) /* RAS/CAS logic - not used */ -ROM_END - - -// DE-0106C-0 with CPU-7 + GGM-02 DE-0087C-1 -ROM_START( protenn ) - ROM_REGION( 0x10000, "maincpu", 0 ) // all 2732s - ROM_LOAD( "w5-t.1a", 0xa000, 0x1000, CRC(d75d708b) SHA1(6262b3e6e5ff94596606a184383833935aa7025f) ) - ROM_LOAD( "w4-t.2a", 0xb000, 0x1000, CRC(9131ed87) SHA1(af2276a82e024bf00c6db02deb7f06ade89dd386) ) - ROM_LOAD( "w3-t.4a", 0xc000, 0x1000, CRC(01dc0e71) SHA1(a359468fb9dab9cfadcf8ec22a4d7ce9341f4324) ) - ROM_LOAD( "w2-t.6a", 0xd000, 0x1000, CRC(6253acec) SHA1(24aaac1cdea1c60f8ff05dff6c17ba3a0e732187) ) - ROM_LOAD( "w1-t.8a", 0xe000, 0x1000, CRC(6faf561c) SHA1(7fd5430af4b3f255e2c01e9b092b960ebdca8d13) ) - ROM_LOAD( "w0-t.9a", 0xf000, 0x1000, CRC(baa330ae) SHA1(b10c66d9a03b036d95926d0c0fe441bb7ca4015d) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "w6-t.1b", 0xf000, 0x1000, CRC(a6bcc2d1) SHA1(383cd170417256467dfce94939d6afa66518c6d2) ) // 2732 - - ROM_REGION( 0x6000, "gfx1", ROMREGION_ERASE00 ) - // dynamically allocated - - ROM_REGION( 0x0040, "proms", 0 ) // both 82S123s - ROM_LOAD( "8.8a", 0x0000, 0x0020, CRC(6a0006ac) SHA1(72265bc472fb7610af190130560ef507244ce41c) ) // palette - ROM_LOAD( "7.10j", 0x0020, 0x0020, CRC(27b004e3) SHA1(4b9960b99130281a3b07f44816001e5eabf7a6fc) ) // RAS/CAS logic - not used -ROM_END - - -/*This one doesn't have the (c) deco and the "pro" word at the title screen so I'm assuming it's a bootleg.*/ -ROM_START( protennb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "t6.a1", 0xa000, 0x1000, CRC(e89cc295) SHA1(68f1578c4be816db6028a561d286b19553c87506) ) - ROM_LOAD( "t5.a3", 0xb000, 0x1000, CRC(9131ed87) SHA1(af2276a82e024bf00c6db02deb7f06ade89dd386) ) - ROM_LOAD( "t4.a4", 0xc000, 0x1000, CRC(01dc0e71) SHA1(a359468fb9dab9cfadcf8ec22a4d7ce9341f4324) ) - ROM_LOAD( "t3.a6", 0xd000, 0x1000, CRC(6253acec) SHA1(24aaac1cdea1c60f8ff05dff6c17ba3a0e732187) ) - ROM_LOAD( "t2.a8", 0xe000, 0x1000, CRC(6faf561c) SHA1(7fd5430af4b3f255e2c01e9b092b960ebdca8d13) ) - ROM_LOAD( "t1.a9", 0xf000, 0x1000, CRC(baa330ae) SHA1(b10c66d9a03b036d95926d0c0fe441bb7ca4015d) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "t7.b1", 0xf000, 0x1000, CRC(a6bcc2d1) SHA1(383cd170417256467dfce94939d6afa66518c6d2) ) - - ROM_REGION( 0x6000, "gfx1", ROMREGION_ERASE00 ) - /* dynamically allocated */ - - ROM_REGION( 0x0040, "proms", 0 ) - ROM_LOAD( "82s123n.a8", 0x0000, 0x0020, CRC(6a0006ac) SHA1(72265bc472fb7610af190130560ef507244ce41c) ) /* palette */ - ROM_LOAD( "82s123n.j10", 0x0020, 0x0020, CRC(27b004e3) SHA1(4b9960b99130281a3b07f44816001e5eabf7a6fc) ) /* RAS/CAS logic - not used */ -ROM_END - -ROM_START( wtennis ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ten14.h4", 0xc000, 0x1000, CRC(f7b27303) SHA1(043476429bcc8def412f77d1f79a01586d984bfc) ) - ROM_LOAD( "ten4.d4", 0xd000, 0x1000, CRC(e465d82c) SHA1(c357dcf17539150425574985afa559db2e6ab834) ) // was t4 - ROM_LOAD( "ten3.c4", 0xe000, 0x1000, CRC(8f090eab) SHA1(baeef8ee05010bf44cf8865a22911f3d458df1b0) ) // was t3 - ROM_LOAD( "ten2.a4", 0xf000, 0x1000, CRC(d2f9dd30) SHA1(1faa088806e8627b5e561d8b99054d295045dcfb) ) // was t2 - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "ten1.h1", 0xe000, 0x1000, CRC(40737ea7) SHA1(27e8474028385574035d3982f9c576bb9bb3facd) ) /* was t1 - starts at 0000, not f000; 0000-01ff is RAM */ - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "ten7.l11", 0x0000, 0x1000, CRC(aa935169) SHA1(965f41a9fcf35ac7c899e79acd0a85ab588d5831) ) // was t7 - ROM_LOAD( "ten10.m11", 0x1000, 0x1000, CRC(746be927) SHA1(a3361384437ac7c494fde92953c5aa5e3c104644) ) // was t10 - ROM_LOAD( "ten6.l13", 0x2000, 0x1000, CRC(4fb8565d) SHA1(6de865e41dcba45190af0753baebf5ab66e4eeb4) ) // was t6 - ROM_LOAD( "ten9.m13", 0x3000, 0x1000, CRC(4893286d) SHA1(f2c330286272b8d334b887bc4dd9608158249fc3) ) // was t9 - ROM_LOAD( "ten5.l14", 0x4000, 0x1000, CRC(ea1efa5d) SHA1(dd8ef1991d74778e6844a669e6de649e1130ec79) ) // was t5 - ROM_LOAD( "ten8.m14", 0x5000, 0x1000, CRC(542ace7b) SHA1(b1423d39302ad7d98c9223d8b1d6d062b7676dd9) ) // was t8 - - ROM_REGION( 0x0040, "proms", 0 ) - ROM_LOAD( "mb7051.m5", 0x0000, 0x0020, CRC(f051cb28) SHA1(6aebccd38ba7887caff248c8acddb8e14526f1e7) ) /* palette */ - ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) ) /* RAS/CAS logic - not used */ -ROM_END - -ROM_START( mmonkey ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "mmonkey.e4", 0xc000, 0x1000, CRC(8d31bf6a) SHA1(77b44d8e2b4db148727e7bfc5162c7e9e9cfc662) ) - ROM_LOAD( "mmonkey.d4", 0xd000, 0x1000, CRC(e54f584a) SHA1(a03fef09f6a0bb6802b33b28c45548efb85cda5c) ) - ROM_LOAD( "mmonkey.b4", 0xe000, 0x1000, CRC(399a161e) SHA1(0eb3c5031a7d8c7b14019e215b18dac24a9e70dd) ) - ROM_LOAD( "mmonkey.a4", 0xf000, 0x1000, CRC(f7d3d1e3) SHA1(ff650a833e5e8975fe5b4a644ce6c35de5e04740) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "mmonkey.h1", 0xe000, 0x1000, CRC(5bcb2e81) SHA1(60fb8fd83c83b278e3aaf96f0b6dbefbc1eef0f7) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "mmonkey.l11", 0x0000, 0x1000, CRC(b6aa8566) SHA1(bc90d4cfa9a221477d1989fea532621ce3e76439) ) - ROM_LOAD( "mmonkey.m11", 0x1000, 0x1000, CRC(6cc4d0c4) SHA1(f43450e97dd0c6d0a269c06e4c4253d0814590e9) ) - ROM_LOAD( "mmonkey.l13", 0x2000, 0x1000, CRC(2a343b7e) SHA1(1dba32a83db933096b9a9fbcfd8e0290aba76483) ) - ROM_LOAD( "mmonkey.m13", 0x3000, 0x1000, CRC(0230b50d) SHA1(d62b5d1be35c8bf29483fb616cd7e3949a422e76) ) - ROM_LOAD( "mmonkey.l14", 0x4000, 0x1000, CRC(922bb3e1) SHA1(72d2017e80bea7700a3a61a06882839ecffcabe8) ) - ROM_LOAD( "mmonkey.m14", 0x5000, 0x1000, CRC(f943e28c) SHA1(6ff536a21f34cbb958f6d0f84791102938966ff3) ) - - ROM_REGION( 0x0040, "proms", 0 ) - ROM_LOAD( "mmi6331.m5", 0x0000, 0x0020, CRC(55e28b32) SHA1(b73f85224738252dc8dbb38a54250dcfe1fc3ae3) ) /* palette */ - ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) ) /* RAS/CAS logic - not used */ -ROM_END - -ROM_START( mmonkeyj ) - ROM_REGION( 0x10000, "maincpu", 0 ) // all 2732 - ROM_LOAD( "b00.e4", 0xc000, 0x1000, CRC(8d31bf6a) SHA1(77b44d8e2b4db148727e7bfc5162c7e9e9cfc662) ) - ROM_LOAD( "b10.d4", 0xd000, 0x1000, CRC(e54f584a) SHA1(a03fef09f6a0bb6802b33b28c45548efb85cda5c) ) - ROM_LOAD( "b20.b4", 0xe000, 0x1000, CRC(9f606767) SHA1(afd248e5bc05e3ee4b31545efe5d66a032cea275) ) - ROM_LOAD( "b30.a4", 0xf000, 0x1000, CRC(a4e85439) SHA1(0455a520d6dbd5efa0598f80e48b88574135922a) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "b40.h1", 0xe000, 0x1000, CRC(5bcb2e81) SHA1(60fb8fd83c83b278e3aaf96f0b6dbefbc1eef0f7) ) // 2732 - - ROM_REGION( 0x6000, "gfx1", 0 ) // all 2732 - ROM_LOAD( "b50.l11", 0x0000, 0x1000, CRC(b6aa8566) SHA1(bc90d4cfa9a221477d1989fea532621ce3e76439) ) - ROM_LOAD( "b60.m11", 0x1000, 0x1000, CRC(6cc4d0c4) SHA1(f43450e97dd0c6d0a269c06e4c4253d0814590e9) ) - ROM_LOAD( "b70.l13", 0x2000, 0x1000, CRC(2a343b7e) SHA1(1dba32a83db933096b9a9fbcfd8e0290aba76483) ) - ROM_LOAD( "b80.m13", 0x3000, 0x1000, CRC(0230b50d) SHA1(d62b5d1be35c8bf29483fb616cd7e3949a422e76) ) - ROM_LOAD( "b90.l14", 0x4000, 0x1000, CRC(922bb3e1) SHA1(72d2017e80bea7700a3a61a06882839ecffcabe8) ) - ROM_LOAD( "ba0.m14", 0x5000, 0x1000, CRC(f943e28c) SHA1(6ff536a21f34cbb958f6d0f84791102938966ff3) ) - - ROM_REGION( 0x0040, "proms", 0 ) - ROM_LOAD( "bc0.m5", 0x0000, 0x0020, CRC(55e28b32) SHA1(b73f85224738252dc8dbb38a54250dcfe1fc3ae3) ) /* 82S123, palette */ - ROM_LOAD( "m3-7603-5.c4", 0x0020, 0x0020, BAD_DUMP CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) ) /* not dumped for this set - RAS/CAS logic - not used */ -ROM_END - -ROM_START( brubber ) - ROM_REGION( 0x10000, "maincpu", 0 ) - /* a000-bfff space for the service ROM */ - ROM_LOAD( "brubber.12c", 0xc000, 0x2000, CRC(b5279c70) SHA1(5fb1c50040dc4e9444aed440e2c3cf4c79b72311) ) - ROM_LOAD( "brubber.12d", 0xe000, 0x2000, CRC(b2ce51f5) SHA1(5e38ea24bcafef1faba023def96532abd6f97d38) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "bnj6c.bin", 0xe000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "bnj4e.bin", 0x0000, 0x2000, CRC(b864d082) SHA1(cacf71fa6c0f7121d077381a0ff6222f534295ab) ) - ROM_LOAD( "bnj4f.bin", 0x2000, 0x2000, CRC(6c31d77a) SHA1(5e52554f594f569527af4768d244cc40a7b4460a) ) - ROM_LOAD( "bnj4h.bin", 0x4000, 0x2000, CRC(5824e6fb) SHA1(e98f0eb476b8f033f5cc70a6e503afc4e651fd45) ) - - ROM_REGION( 0x2000, "gfx2", 0 ) - ROM_LOAD( "bnj10e.bin", 0x0000, 0x1000, CRC(f4e9eb49) SHA1(b356512d2ebd4e2005e76496b434e5ecebadb251) ) - ROM_LOAD( "bnj10f.bin", 0x1000, 0x1000, CRC(a9ffacb4) SHA1(49d5f9c0b695f474197fbb761bacc065b6b5808a) ) -ROM_END - - -/* - Bump 'n Jump (Data East USA) - - Sound Board: - CIS-1 - DATA EAST-0136 - - Video Board: - DSP-12 - DE-0135-2 -*/ - -ROM_START( bnj ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ad08.12b", 0xa000, 0x2000, CRC(8d649bd5) SHA1(83105718c2d18ef75ca18ae92b34545cb939bc02) ) - ROM_LOAD( "ad07.12c", 0xc000, 0x2000, CRC(7a27f5f4) SHA1(f62d752bb7a995e120ed4d642793c543f0ef13ca) ) - ROM_LOAD( "ad06.12d", 0xe000, 0x2000, CRC(f855a2d2) SHA1(f231ed008537aeeeacbec64f485e9a96ab3441e1) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "ad05.6c", 0xe000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "ad00.4e", 0x0000, 0x2000, CRC(b864d082) SHA1(cacf71fa6c0f7121d077381a0ff6222f534295ab) ) - ROM_LOAD( "ad01.4f", 0x2000, 0x2000, CRC(6c31d77a) SHA1(5e52554f594f569527af4768d244cc40a7b4460a) ) - ROM_LOAD( "ad02.4h", 0x4000, 0x2000, CRC(5824e6fb) SHA1(e98f0eb476b8f033f5cc70a6e503afc4e651fd45) ) - - ROM_REGION( 0x2000, "gfx2", 0 ) - ROM_LOAD( "ad03.10e", 0x0000, 0x1000, CRC(f4e9eb49) SHA1(b356512d2ebd4e2005e76496b434e5ecebadb251) ) - ROM_LOAD( "ad04.10f", 0x1000, 0x1000, CRC(a9ffacb4) SHA1(49d5f9c0b695f474197fbb761bacc065b6b5808a) ) - - ROM_REGION( 0x002d, "plds", 0 ) - ROM_LOAD( "pb-5.10k.bin", 0x0000, 0x002c, CRC(dc72a65f) SHA1(d61c149d4df93a2074debf7c5e46557c6b06d10d) ) /* PAL10L8 */ - ROM_LOAD( "pb-4.2d.bin", 0x002c, 0x0001, NO_DUMP ) /* PAL16R4CN - same as Car Action? */ -ROM_END - -ROM_START( bnjm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "bnj12b.bin", 0xa000, 0x2000, CRC(ba3e3801) SHA1(56284076d938c33c1492a07281b936681eb09808) ) - ROM_LOAD( "bnj12c.bin", 0xc000, 0x2000, CRC(fb3a2cdd) SHA1(4a964389cc8035b9264d4cb133eb6d3826e74b95) ) - ROM_LOAD( "bnj12d.bin", 0xe000, 0x2000, CRC(b88bc99e) SHA1(08a4ddea4037f9e14d0d9f4262a1746b0a3a140c) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "bnj6c.bin", 0xe000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "bnj4e.bin", 0x0000, 0x2000, CRC(b864d082) SHA1(cacf71fa6c0f7121d077381a0ff6222f534295ab) ) - ROM_LOAD( "bnj4f.bin", 0x2000, 0x2000, CRC(6c31d77a) SHA1(5e52554f594f569527af4768d244cc40a7b4460a) ) - ROM_LOAD( "bnj4h.bin", 0x4000, 0x2000, CRC(5824e6fb) SHA1(e98f0eb476b8f033f5cc70a6e503afc4e651fd45) ) - - ROM_REGION( 0x2000, "gfx2", 0 ) - ROM_LOAD( "bnj10e.bin", 0x0000, 0x1000, CRC(f4e9eb49) SHA1(b356512d2ebd4e2005e76496b434e5ecebadb251) ) - ROM_LOAD( "bnj10f.bin", 0x1000, 0x1000, CRC(a9ffacb4) SHA1(49d5f9c0b695f474197fbb761bacc065b6b5808a) ) -ROM_END - -ROM_START( caractn ) - ROM_REGION( 0x10000, "maincpu", 0 ) - /* a000-bfff space for the service ROM */ - ROM_LOAD( "c7.12c", 0xc000, 0x2000, CRC(b5279c70) SHA1(5fb1c50040dc4e9444aed440e2c3cf4c79b72311) ) - ROM_LOAD( "c6.12d", 0xe000, 0x2000, CRC(1d6957c4) SHA1(bd30f00187e56eef9adcc167dd752a3bb616454c) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "c5.6c", 0xe000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "c0.4e", 0x0000, 0x2000, CRC(bf3ea732) SHA1(d98970b2dda8c3435506656909e5e3aa70d45652) ) - ROM_LOAD( "c1.4f", 0x2000, 0x2000, CRC(9789f639) SHA1(77a4d494698718c052fa1967242a0e4fa263b6ad) ) - ROM_LOAD( "c2.4h", 0x4000, 0x2000, CRC(51dcc111) SHA1(9753d682ba2f4fb4d3b14783ac35ad214bf788b5) ) - - ROM_REGION( 0x2000, "gfx2", 0 ) - ROM_LOAD( "c3.10e", 0x0000, 0x1000, CRC(f4e9eb49) SHA1(b356512d2ebd4e2005e76496b434e5ecebadb251) ) - ROM_LOAD( "c4.10f", 0x1000, 0x1000, CRC(a9ffacb4) SHA1(49d5f9c0b695f474197fbb761bacc065b6b5808a) ) - - ROM_REGION( 0x0040, "proms", 0 ) - ROM_LOAD( "tbp18s030.11a", 0x0000, 0x020, CRC(318d25b9) SHA1(9a82619c94f5911d01ddf6b85f7e30cdc6f1d0a3) ) /* palette */ - ROM_LOAD( "tbp18s030.cpu", 0x0020, 0x020, CRC(6b0c2942) SHA1(7d25acc753923b265792fc78f8fc70175c0e0ec2) ) /* RAS/CAS logic - not used */ - - ROM_REGION( 0x0140, "plds", 0 ) - ROM_LOAD( "pal10l8.10k", 0x0000, 0x002c, CRC(dc72a65f) SHA1(d61c149d4df93a2074debf7c5e46557c6b06d10d) ) - ROM_LOAD( "pal16r4a.2d", 0x0030, 0x0104, CRC(fd1f3aa2) SHA1(67f1e74fcfc0e2301204ed58b8c6e35d4866a344) ) -ROM_END - -ROM_START( caractn2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - /* a000-bfff space for the service ROM */ - ROM_LOAD( "7.c12", 0xc000, 0x2000, CRC(406086aa) SHA1(711d547eeb73044930fb1fd15060dbd1e85339d6) ) /* 2 bytes difference, Lives DIP 2/3 instead of 3/5 */ - ROM_LOAD( "c6.12d", 0xe000, 0x2000, CRC(1d6957c4) SHA1(bd30f00187e56eef9adcc167dd752a3bb616454c) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "c5.6c", 0xe000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "c0.4e", 0x0000, 0x2000, CRC(bf3ea732) SHA1(d98970b2dda8c3435506656909e5e3aa70d45652) ) - ROM_LOAD( "c1.4f", 0x2000, 0x2000, CRC(9789f639) SHA1(77a4d494698718c052fa1967242a0e4fa263b6ad) ) - ROM_LOAD( "c2.4h", 0x4000, 0x2000, CRC(51dcc111) SHA1(9753d682ba2f4fb4d3b14783ac35ad214bf788b5) ) - - ROM_REGION( 0x2000, "gfx2", 0 ) - ROM_LOAD( "c3.10e", 0x0000, 0x1000, CRC(f4e9eb49) SHA1(b356512d2ebd4e2005e76496b434e5ecebadb251) ) - ROM_LOAD( "c4.10f", 0x1000, 0x1000, CRC(a9ffacb4) SHA1(49d5f9c0b695f474197fbb761bacc065b6b5808a) ) - - ROM_REGION( 0x0040, "proms", 0 ) - ROM_LOAD( "tbp18s030.11a", 0x0000, 0x020, CRC(318d25b9) SHA1(9a82619c94f5911d01ddf6b85f7e30cdc6f1d0a3) ) /* palette */ - ROM_LOAD( "tbp18s030.cpu", 0x0020, 0x020, CRC(6b0c2942) SHA1(7d25acc753923b265792fc78f8fc70175c0e0ec2) ) /* RAS/CAS logic - not used */ - - ROM_REGION( 0x0140, "plds", 0 ) - ROM_LOAD( "pal10l8.10k", 0x0000, 0x002c, CRC(dc72a65f) SHA1(d61c149d4df93a2074debf7c5e46557c6b06d10d) ) - ROM_LOAD( "pal16r4a.2d", 0x0030, 0x0104, CRC(fd1f3aa2) SHA1(67f1e74fcfc0e2301204ed58b8c6e35d4866a344) ) -ROM_END - -ROM_START( zoar ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "z15.12b", 0xd000, 0x1000, CRC(1f0cfdb7) SHA1(ce7e871f17c52b6eaf99cfb721e702e4f0e6bb25) ) - ROM_LOAD( "z16.13b", 0xe000, 0x1000, CRC(7685999c) SHA1(fabe38d71e797ae0b04b5d3aba228b4c85d96185) ) - ROM_LOAD( "z17.15b", 0xf000, 0x1000, CRC(619ea867) SHA1(0a3735384f03a1052d54ab799b5e37038d8ece2a) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "z09.13c", 0xe000, 0x1000, CRC(18d96ff1) SHA1(671d934a451e0b042450ea86d24c3751a39b38f8) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "z00.3l", 0x0000, 0x1000, CRC(fd2dcb64) SHA1(1a49a6ec6ffd354d872b1af83d55ec96e8215b2b) ) - ROM_LOAD( "z01.5l", 0x1000, 0x1000, CRC(74d3ca48) SHA1(2c75ea246f86a057467deb35ef6a6e72f667dd84) ) - ROM_LOAD( "z03.8l", 0x2000, 0x1000, CRC(77b7df14) SHA1(a1cbc214fc849b7e3417b1156d1e4440ab67f631) ) - ROM_LOAD( "z04.9l", 0x3000, 0x1000, CRC(9be786de) SHA1(480733a1438dffa4b0fac6f76bf84a0deec5d1fa) ) - ROM_LOAD( "z06.12l", 0x4000, 0x1000, CRC(07638c71) SHA1(1a7fc49657ac7ac0033bd60c86663bd615079230) ) - ROM_LOAD( "z07.14l", 0x5000, 0x1000, CRC(f4710f25) SHA1(08b4cc4252f83a689cded38d9a5a50f55ee6beee) ) - - ROM_REGION( 0x1800, "gfx2", 0 ) - ROM_LOAD( "z10.1b", 0x0000, 0x0800, CRC(aa8bcab8) SHA1(81f1a9fd754fd6f8030ff6b5aa80c7670be9d02e) ) - ROM_LOAD( "z11.3b", 0x0800, 0x0800, CRC(dcdad357) SHA1(d1569e1d38f14f5f457547e24df4f80f726c6157) ) - ROM_LOAD( "z12.4b", 0x1000, 0x0800, CRC(ed317e40) SHA1(db70889af5f233ca71acf734abfbdb74b6a393c0) ) - - ROM_REGION( 0x3000, "gfx3", 0 ) - ROM_LOAD( "z02.6l", 0x0000, 0x1000, CRC(d8c3c122) SHA1(841006cc84622e851df462a64696b64bb8cb62a1) ) - ROM_LOAD( "z05.14l", 0x1000, 0x1000, CRC(05dc6b09) SHA1(197c720544a090e12980513b441a2b9cf04e212f) ) - ROM_LOAD( "z08.15l", 0x2000, 0x1000, CRC(9a148551) SHA1(db92dd7552c6f76a062910f37a3fe3524fdffd38) ) - - ROM_REGION( 0x1000, "bg_map", 0 ) /* background tilemaps */ - ROM_LOAD( "z13.6b", 0x0000, 0x1000, CRC(8fefa960) SHA1(614026aa71703dd3898e470f45730e5c6934b31b) ) - - ROM_REGION( 0x0060, "proms", 0 ) - ROM_LOAD( "z20.1l", 0x0000, 0x0020, CRC(a63f0a07) SHA1(16532d3ac0536ad4b712005fd722ee8c14d02e9b) ) - ROM_LOAD( "z21.2l", 0x0020, 0x0020, CRC(5e1e5788) SHA1(56068b209cc7c734bbcbb9858f40faa6474c8095) ) - ROM_LOAD( "z19.7b", 0x0040, 0x0020, CRC(03ee3a96) SHA1(4acb4061ef0d8a1fab50207fc81a54bfa4c7455d) ) -ROM_END - -ROM_START( disco ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "disco.w5", 0xa000, 0x1000, CRC(b2c87b78) SHA1(4095f0052ff0ac35ecd2ec1c1e99d21283d336e1) ) - ROM_LOAD( "disco.w4", 0xb000, 0x1000, CRC(ad7040ee) SHA1(287a4ff06edda4c66e2351e49a94212728aacb4e) ) - ROM_LOAD( "disco.w3", 0xc000, 0x1000, CRC(12fb4f08) SHA1(d6095f20d8676df89b1459134b5521ac311ddded) ) - ROM_LOAD( "disco.w2", 0xd000, 0x1000, CRC(73f6fb2f) SHA1(7b75b825d9bf7e512e054762500f79c18a276e1f) ) - ROM_LOAD( "disco.w1", 0xe000, 0x1000, CRC(ee7b536b) SHA1(b2de5da15cee1d80391eafd0a08361803f859c89) ) - ROM_LOAD( "disco.w0", 0xf000, 0x1000, CRC(7c26e76b) SHA1(952e91c4acc18d01b0e2c3efd764da8768f583da) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "disco.w6", 0xf000, 0x1000, CRC(d81e781e) SHA1(bde510bfed06a13bd56bf7ddbf220e7cf82f79b6) ) - - ROM_REGION( 0x0020, "proms", 0 ) - ROM_LOAD( "disco.clr", 0x0000, 0x0020, CRC(a393f913) SHA1(42dce159283427064b3f5ce3a6e2189744ecd943) ) -ROM_END - -ROM_START( discof ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "w5-f.1a", 0xa000, 0x1000, CRC(9d53c71c) SHA1(53c410cfa4fbbfd08e1c3cf7aeba1c9627171a71) ) - ROM_LOAD( "w4-f.2a", 0xb000, 0x1000, CRC(c1f8d747) SHA1(33f5fe73d1851ef4da670075d1aec1550e0417ce) ) - ROM_LOAD( "w3-f.4a", 0xc000, 0x1000, CRC(9aadd252) SHA1(c6da7ef46333d525e676c59f03ccc908108b41ba) ) - ROM_LOAD( "w2-f.6a", 0xd000, 0x1000, CRC(f131a5bb) SHA1(84b7dea112dce12e5cb235a13f6dc4edcfb18c06) ) - ROM_LOAD( "w1-f.9a", 0xe000, 0x1000, CRC(a6ce9a19) SHA1(e8f380e17a21fb33504d6efe9d01d0f903fa25e1) ) -// ROM_LOAD( "w1-f", 0xe000, 0x1000, CRC(c8ec57c5) SHA1(904a9ed0a7f1230c611bf473b9bc52e63eb56dbe) ) // 0x7d3 is 0x10 instead of 0x00, 1 bit different, looks out of place, bad? - ROM_LOAD( "w0-f.9a", 0xf000, 0x1000, CRC(b3787a92) SHA1(7f40621dc739c1108a5df43142ab04709a380219) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "w6-.1b", 0xf000, 0x1000, CRC(d81e781e) SHA1(bde510bfed06a13bd56bf7ddbf220e7cf82f79b6) ) - - ROM_REGION( 0x0020, "proms", 0 ) // board uses 2 proms, not 1 - ROM_LOAD( "disco.clr", 0x0000, 0x0020, CRC(a393f913) SHA1(42dce159283427064b3f5ce3a6e2189744ecd943) ) -ROM_END - -ROM_START( sdtennis ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ao_08.12b", 0xa000, 0x2000, CRC(6193724c) SHA1(97239c5aa8c8cd1812fba1b15be4d9a48eb0651a) ) - ROM_LOAD( "ao_07.12c", 0xc000, 0x2000, CRC(064888db) SHA1(f7bb728ab3408bb553191d9e131a441db1b39666) ) - ROM_LOAD( "ao_06.12d", 0xe000, 0x2000, CRC(413c984c) SHA1(1431df4db52d621ba39fd47dbd49da103b5c0bcf) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "ao_05.6c", 0xe000, 0x1000, CRC(46833e38) SHA1(420831149a566199d6a3c74ef3df0687b4ddcbe4) ) - - ROM_REGION( 0x6000, "gfx1", 0 ) - ROM_LOAD( "ao_00.4e", 0x0000, 0x2000, CRC(f4e0cbd6) SHA1(a2ede0ce4a26957a5d3b62872a42b8979f5000aa) ) - ROM_LOAD( "ao_01.4f", 0x2000, 0x2000, CRC(f99029da) SHA1(45bc56ff6284d02371d5e1cd5239be665f9e56c7) ) - ROM_LOAD( "ao_02.4h", 0x4000, 0x2000, CRC(c3077555) SHA1(addfc67735dc22dfed9c4c4ec8d9dcf590c76737) ) - - ROM_REGION( 0x2000, "gfx2", 0 ) - ROM_LOAD( "ao_03.10e", 0x0000, 0x1000, CRC(1977db9b) SHA1(d175974967fdeb608df668089fa2a14b2d1609e6) ) - ROM_LOAD( "ao_04.10f", 0x1000, 0x1000, CRC(921952af) SHA1(4e9248f3493a5f4651278f27c11f507571242317) ) -ROM_END - -uint8_t btime_state::wtennis_reset_hack_r() -{ - uint8_t *RAM = memregion("maincpu")->base(); - - /* Otherwise the game goes into test mode and there is no way out that I - can see. I'm not sure how it can work, it probably somehow has to do - with the tape system */ - - RAM[0xfc30] = 0; - - return RAM[0xc15f]; -} - -void btime_state::init_btime() -{ - m_audio_nmi_enable_type = AUDIO_ENABLE_DIRECT; -} - -void btime_state::init_zoar() -{ - uint8_t *rom = memregion("maincpu")->base(); - - /* At location 0xD50A is what looks like an undocumented opcode. I tried - implementing it given what opcode 0x23 should do, but it still didn't - work in demo mode, this could be another protection. - - The ROM has been confirmed as good on multiple working PCBs, so this - isn't a bitrot issue */ - memset(&rom[0xd50a],0xea,8); - - m_audio_nmi_enable_type = AUDIO_ENABLE_AY8910; -} - -void btime_state::init_tisland() -{ - uint8_t *rom = memregion("maincpu")->base(); - - /* At location 0xa2b6 there's a strange RLA followed by a BPL that reads from an - unmapped area that causes the game to fail in several circumstances.On the Cassette - version the RLA (33) is in reality a BIT (24),so I'm guessing that there's something - wrong going on in the encryption scheme. - - There are other locations with similar problems. These ROMs have NOT yet been - confirmed on multiple PCBs, so this could still be a bad dump. - */ - memset(&rom[0xa2b6],0x24,1); - - m_audio_nmi_enable_type = AUDIO_ENABLE_DIRECT; -} - -void btime_state::init_lnc() -{ - m_audio_nmi_enable_type = AUDIO_ENABLE_AY8910; -} - -void btime_state::init_bnj() -{ - m_audio_nmi_enable_type = AUDIO_ENABLE_DIRECT; -} - -void btime_state::init_disco() -{ - init_btime(); - m_audio_nmi_enable_type = AUDIO_ENABLE_AY8910; -} - -void btime_state::init_cookrace() -{ - m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0200, 0x0fff, "bank10"); - membank("bank10")->set_base(memregion("audiocpu")->base() + 0xe200); - m_audio_nmi_enable_type = AUDIO_ENABLE_DIRECT; -} - -void btime_state::init_protennb() -{ - init_btime(); - m_audio_nmi_enable_type = AUDIO_ENABLE_AY8910; -} - -void btime_state::init_wtennis() -{ - m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8smo_delegate(*this, FUNC(btime_state::wtennis_reset_hack_r))); - - m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0200, 0x0fff, "bank10"); - membank("bank10")->set_base(memregion("audiocpu")->base() + 0xe200); - m_audio_nmi_enable_type = AUDIO_ENABLE_AY8910; -} - -void btime_state::init_sdtennis() -{ - m_audio_nmi_enable_type = AUDIO_ENABLE_DIRECT; -} - - -GAME( 1982, btime, 0, btime, btime, btime_state, init_btime, ROT270, "Data East Corporation", "Burger Time (Data East set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, btime2, btime, btime, btime, btime_state, init_btime, ROT270, "Data East Corporation", "Burger Time (Data East set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, btime3, btime, btime, btime3, btime_state, init_btime, ROT270, "Data East USA Inc.", "Burger Time (Data East USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, btimem, btime, btime, btime3, btime_state, init_btime, ROT270, "Data East (Bally Midway license)", "Burger Time (Midway)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, cookrace, btime, cookrace, cookrace, btime_state, init_cookrace, ROT270, "bootleg", "Cook Race", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, tisland, 0, tisland, btime, btime_state, init_tisland, ROT270, "Data East Corporation", "Treasure Island", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, lnc, 0, lnc, lnc, btime_state, init_lnc, ROT270, "Data East Corporation", "Lock'n'Chase", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, protenn, 0, protenn, protenn, btime_state, init_protennb, ROT270, "Data East Corporation", "Pro Tennis (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, protennb, protenn, protenn, protenn, btime_state, init_protennb, ROT270, "bootleg", "Tennis (bootleg of Pro Tennis)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, wtennis, 0, wtennis, wtennis, btime_state, init_wtennis, ROT270, "bootleg", "World Tennis", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mmonkey, 0, mmonkey, mmonkey, btime_state, init_lnc, ROT270, "Technos Japan / Roller Tron", "Minky Monkey", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mmonkeyj, mmonkey, mmonkey, mmonkey, btime_state, init_lnc, ROT270, "Technos Japan / Roller Tron", "Minky Monkey (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, brubber, 0, bnj, brubber, btime_state, init_bnj, ROT270, "Data East", "Burnin' Rubber", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bnj, brubber, bnj, bnj, btime_state, init_bnj, ROT270, "Data East USA", "Bump 'n' Jump", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bnjm, brubber, bnj, bnj, btime_state, init_bnj, ROT270, "Data East USA (Bally Midway license)", "Bump 'n' Jump (Midway)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, caractn, brubber, bnj, brubber, btime_state, init_bnj, ROT270, "bootleg", "Car Action (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, caractn2, brubber, bnj, caractn2, btime_state, init_bnj, ROT270, "bootleg", "Car Action (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zoar, 0, zoar, zoar, btime_state, init_zoar, ROT270, "Data East USA", "Zoar", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, disco, 0, disco, disco, btime_state, init_disco, ROT270, "Data East", "Disco No.1", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, discof, disco, disco, disco, btime_state, init_disco, ROT270, "Data East", "Disco No.1 (Rev.F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, sdtennis, 0, sdtennis, sdtennis, btime_state, init_sdtennis, ROT270, "Data East Corporation", "Super Doubles Tennis", MACHINE_SUPPORTS_SAVE ) |