summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cischeat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cischeat.cpp')
-rw-r--r--src/mame/drivers/cischeat.cpp3747
1 files changed, 0 insertions, 3747 deletions
diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp
deleted file mode 100644
index 0dffc3ef63e..00000000000
--- a/src/mame/drivers/cischeat.cpp
+++ /dev/null
@@ -1,3747 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Luca Elia
-/***************************************************************************
-
- -= Jaleco Driving Games =-
-
- driver by Luca Elia (l.elia@tin.it)
-
-- Note: press F2 to enter service mode -
-
----------------------------------------------------------------------------
-Year + Game Hardware: Main Sub#1 Sub#2 Sound Sound Chips
----------------------------------------------------------------------------
-[89 Big Run] 68000 68000 68000 68000 YM2151 2xM6295
-
- BOARD #1 BR8950c
- BOARD #2 8951
- BOARD #3 8952A
- BOARD #4 8953
-
-[90 Cisco Heat] 68000 68000 68000 68000 YM2151 2xM6295
-
- BOARD #1 CH-9072 EB90001-20024
- BOARD #2 CH-9071 EB90001-20023
- BOARD #3 CH-9073 EB90001-20025
-
-[91 F1 GP Star] 68000 68000 68000 68000 YM2151 2xM6295
-
- TB - Top board (audio & I/O) GP-9190A EB90015-20039-1
- MB - Middle board (GFX) GP-9189 EB90015-20038
- LB - Lower board (CPU/GFX) GP-9188A EB90015-20037-1
-
- Chips:
-
- GS90015-02 (100 pin PQFP) x 3 [Tilemaps]
- GS-9000406 (80 pin PQFP) x 3
-
- GS900151 (44 pin PQFP) (too small for the full part No.)
- GS90015-03 (80 pin PQFP) x 3 + 2x LH52258D-45 (32kx8 SRAM)
- GS90015-06 (100 pin PQFP) x 2 + 2x LH52250AD-90L (32kx8 SRAM)
- GS90015-07 (64 pin PQFP)
- GS90015-08 (64 pin PQFP)
- GS90015-09 (64 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- GS90015-10 (64 pin PQFP)
- GS90015-12 (80 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- GS90015-11 (100 pin PQFP)
-
- CS90015-04 x 2 (64 pin PQFP) [Road]
- GS90015-05 x 2 (100 pin PQFP)
-
-[92 Wild Pilot] 68000 68000 68000 68000 YM2151 2xM6295 + another 68000
-
- TB - Top board (audio & I/O) WP-92116 EB92020-20053
- MB - Middle board (GFX) GP-9189 EB90015-20038
- LB - Lower board (CPU/GFX) GP-9188A EB90015-20037-1
-
-[92 Arm Champs II] 68000 - - - 2xM6295
-
- Top board EB91042-20048-3 AC-91106B
- Lower board EB91015-20038 GP-9189
- Same chips as Scud Hammer
-
-[94 Scud Hammer] 68000 - - - 2xM6295
-
- Board CF-92128B Chips:
- GS9001501
- GS90015-02 x 2 GS600406 x 2 [Tilemaps]
- GS90015-03
-
- Board GP-9189 Chips:
- GS90015-03 x 2 [Sprites]
- GS90015-06 x 2
- GS90015-07
- GS90015-08
- GS90015-09
- GS90015-10
- GS90015-11
- MR90015-35 x 2
----------------------------------------------------------------------------
-
-----------------------------------------------------------------------------------
-Main CPU [Cisco Heat] [F1 GP Star] [Scud Hammer]
-----------------------------------------------------------------------------------
-ROM R 000000-07ffff < <
- 100000-17ffff < RW : I / O + Sound
-Work RAM + Sprites RW 0f0000-0fffff < <
-Hardware Regs RW 080000-087fff < <
-Units Linking RAM RW 088000-88ffff < -
-Shared RAM #2 RW 090000-097fff < -
-Shared RAM #1 RW 098000-09ffff < -
-Scroll RAM 0 RW 0a0000-0a7fff < <
-Scroll RAM 1 RW 0a8000-0affff < -
-Scroll RAM 2 RW 0b0000-0b7fff < <
-Palette RAM RW 0b8000-0bffff < <
- Palette Scroll 0 0b9c00-0b9fff 0b9e00-0b9fff <
- Palette Scroll 1 0bac00-0bafff 0bae00-0bafff -
- Palette Road 0 0bb800-0bbfff < -
- Palette Road 1 0bc800-0bcfff < -
- Palette Sprites 0bd000-0bdfff < 0bb000-0bbfff
- Palette Scroll 2 0bec00-0befff0 0bee00-0befff 0bce00-0bcfff
-----------------------------------------------------------------------------------
-
-----------------------------------------------------------------
-Sub CPU's [Cisco Heat] [F1 GP Star]
-----------------------------------------------------------------
-ROM R 000000-03ffff <
- 200000-23ffff -
-Work RAM RW 0c0000-0c3fff 180000-183fff
-Shared RAM RW 040000-047fff 080000-087fff
-Road RAM RW 080000-0807ff 100000-1007ff
-Watchdog 100000-100001 200000-200001
-----------------------------------------------------------------
-
-----------------------------------------------------------------
-Sound CPU [Cisco Heat] [F1 GP Star]
-----------------------------------------------------------------
-ROM R 000000-03ffff <
-Work RAM RW 0f0000-0fffff 0e0000-0fffff
-M6295 #1 Banking W 040002-040003 040004-040005
-M6295 #2 Banking W 040004-040005 040008-040009
-Sound Latch W 060002-060003 060000-060001
-Sound Latch R 060004-060005 060000-060001
-YM2151 Reg Sel W 080001-080001 <
-YM2151 Data W 080003-080003 <
-YM2151 Status R 080003-080003 <
-M6295 #1 Status R 0a0001-0a0001 <
-M6295 #1 Data W 0a0000-0a0003 <
-M6295 #2 Status R 0c0001-0c0001 <
-M6295 #2 Data W 0c0000-0c0003 <
-----------------------------------------------------------------
-
-Cheats:
-
-[cischeat]
-- f011a.w *** stage - 1 ***
-- f0190.l *** score / 10 (BCD) ***
-- f0280.w *** time * 10 (seconds) ***
-- f61Xa.w car X data
-
-[f1gpstar]
-- Note: This game has some leftover code from Cisco Heat, it seems.
-- f9088.w *** lap - 1 ***
-- fa008.w ($fa000 + $08) *** time (seconds) ***
-- fa2aa.l ($fa200 + $aa) speed << 16
-
-Common Issues:
-
-- Some ROMs aren't used (priorities?)
-- Screen control register (priorities, layers enabling etc.) - Where is it?
-- Sound communication not quite right: see Test Mode
-
-To Do:
-
-- Priorities!
-- Use the Tilemap Manager for the road layers (when this kind of layers
- will be supported) for performance and better priority support.
- A line based zooming is additionally needed for f1gpstar.
-- Wild Pilot road needs some serious work (empty gaps, ship "floating"
- in stage 6 etc.);
-- Force feedback :)
-- Major cleanups needed, especially in video file;
-- Split the non-road games into own driver, merge them with Alien Command,
- device-ify the sprite chip;
-
-BTANBs:
-- In cischeat & bigrun, at the start of some levels, you can see the empty
- scrolling layers as they are filled. In f1gpstar, I'm unsure whether they
- are correct in a few places (e.g. in the attract mode, where cars move
- horizontally, the wheels don't follow for this reason, I think)
- Update: this happens on real HW as well (at least for Big Run);
-- Some serious sprite popups happening in Big Run, again this happens on
- the reference video too so not a bug.
-
-2008-08
-Dip locations verified for Big Run with the manual. Also added missing dips
-and locations from Service mode to: Scud Hammer, F1 GP Star 1 & 2 and
-Cisco Heat.
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/cischeat.h"
-
-#include "cpu/m68000/m68000.h"
-#include "machine/adc0804.h"
-#include "machine/jalcrpt.h"
-#include "machine/nvram.h"
-#include "sound/okim6295.h"
-#include "sound/ym2151.h"
-#include "speaker.h"
-
-#include "cischeat.lh"
-#include "f1gpstar.lh"
-#include "captflag.lh"
-
-/**************************************************************************
-
-
- Memory Maps - Main CPU (#1)
-
-
-**************************************************************************/
-
-
-/**************************************************************************
- Big Run
-**************************************************************************/
-
-
-void cischeat_state::bigrun_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x080000, 0x080001).portr("IN1").w(FUNC(cischeat_state::leds_out_w)); // Coins
- map(0x080002, 0x080003).portr("IN2").w(FUNC(cischeat_state::unknown_out_w)); // Buttons
- map(0x080004, 0x080005).portr("IN3").w(FUNC(cischeat_state::motor_out_w)); // Motor Limit Switches
- map(0x080006, 0x080007).portr("IN4").w(FUNC(cischeat_state::wheel_out_w)); // DSW 1 & 2
- map(0x080008, 0x080009).r(m_soundlatch2, FUNC(generic_latch_16_device::read)); // From sound cpu
- map(0x08000a, 0x08000b).w(m_soundlatch, FUNC(generic_latch_16_device::write)); // To sound cpu
- map(0x08000c, 0x08000d).nopw(); // ??
- map(0x080010, 0x080011).rw(FUNC(cischeat_state::bigrun_ip_select_r), FUNC(cischeat_state::ip_select_w));
- map(0x080012, 0x080013).w(FUNC(cischeat_state::ip_select_plus1_w));
- map(0x082000, 0x082005).rw("scroll0", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082008, 0x08200d).rw("scroll1", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082100, 0x082105).rw("scroll2", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082108, 0x082109).noprw(); // ? written with 0 only
- map(0x082200, 0x082201).portr("IN5"); // DSW 3 (4 bits)
- map(0x082208, 0x082209).noprw(); // watchdog reset
- map(0x082308, 0x082309).w(FUNC(cischeat_state::cischeat_comms_w));
- map(0x082400, 0x082401).w(FUNC(cischeat_state::active_layers_w));
-
- /* It's actually 0x84000-0x847ff, divided in four banks and shared with other boards.
- Each board expects reads from the other boards and writes to own bank.
- Amusingly, if you run the communication test as ID = X then soft reset -> ID = Y, what was at ID = X gets an OK in the second test
- so it's likely to be the only thing needed. */
- map(0x084000, 0x0847ff).ram(); // Linking with other units
- map(0x088000, 0x08bfff).ram().share("share2"); // Sharedram with sub CPU#2
- map(0x08c000, 0x08ffff).ram().share("share1"); // Sharedram with sub CPU#1
-
- /* Only writes to the first 0x40000 bytes affect the tilemaps: */
- /* either these games support larger tilemaps or have more ram than needed */
- map(0x090000, 0x093fff).ram().w("scroll0", FUNC(megasys1_tilemap_device::write)).share("scroll0"); // Scroll ram 0
- map(0x094000, 0x097fff).ram().w("scroll1", FUNC(megasys1_tilemap_device::write)).share("scroll1"); // Scroll ram 1
- map(0x098000, 0x09bfff).ram().w("scroll2", FUNC(megasys1_tilemap_device::write)).share("scroll2"); // Scroll ram 2
-
- map(0x09c000, 0x09ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palettes
- map(0x0f0000, 0x0fffff).ram().share("ram"); // RAM
- map(0x100000, 0x13ffff).rom().region("user1", 0); // ROM
-}
-
-
-/**************************************************************************
- Cisco Heat
-**************************************************************************/
-
-/* CISCO HEAT
- [ Test ] [ Real ]
- b9c00-b9fff < scroll 0
- bac00-bafff < scroll 1
- bb800-bbbff bb800-bbfff road 0
- bc800-bcbff bc800-bcfff road 1
- bd000-bd3ff bd000-bdfff sprites
- bec00-befff < text */
-
-
-void cischeat_state::cischeat_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x080000, 0x080001).portr("IN1").w(FUNC(cischeat_state::leds_out_w)); // Coins
- map(0x080002, 0x080003).portr("IN2").w(FUNC(cischeat_state::unknown_out_w)); // Buttons
- map(0x080004, 0x080005).portr("IN3").w(FUNC(cischeat_state::motor_out_w)); // Motor Limit Switches
- map(0x080006, 0x080007).portr("IN4").w(FUNC(cischeat_state::wheel_out_w)); // DSW 1 & 2
- map(0x08000a, 0x08000b).w(m_soundlatch, FUNC(generic_latch_16_device::write)); // To sound cpu
- map(0x08000c, 0x08000d).nopw(); // ??
- map(0x080010, 0x080011).rw(FUNC(cischeat_state::cischeat_ip_select_r), FUNC(cischeat_state::ip_select_w));
- map(0x080012, 0x080013).nopw(); // value above + 1
- map(0x082000, 0x082005).rw("scroll0", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082008, 0x08200d).rw("scroll1", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082100, 0x082105).rw("scroll2", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082108, 0x082109).noprw(); // ? written with 0 only
- map(0x082200, 0x082201).portr("IN5"); // DSW 3 (4 bits)
- map(0x082208, 0x082209).noprw(); // watchdog reset
- map(0x082300, 0x082301).r(m_soundlatch2, FUNC(generic_latch_16_device::read)).w(FUNC(cischeat_state::cischeat_soundlatch_w)); // From sound cpu
- map(0x082308, 0x082309).w(FUNC(cischeat_state::cischeat_comms_w));
- map(0x082400, 0x082401).w(FUNC(cischeat_state::active_layers_w));
-
- map(0x088000, 0x0887ff).ram(); // Linking with other units
-
-/* Only the first 0x800 bytes are tested but:
- CPU #0 PC 0000278c: warning - write 68c0 to unmapped memory address 0009c7fe
- CPU #0 PC 0000dd58: warning - read unmapped memory address 000945ac
- No mem access error from the other CPU's, though.. */
-
- /* this is the right order of sharedram's */
- map(0x090000, 0x097fff).ram().share("share2"); // Sharedram with sub CPU#2
- map(0x098000, 0x09ffff).ram().share("share1"); // Sharedram with sub CPU#1
-
- /* Only writes to the first 0x40000 bytes affect the tilemaps: */
- /* either these games support larger tilemaps or have more ram than needed */
- map(0x0a0000, 0x0a7fff).ram().w("scroll0", FUNC(megasys1_tilemap_device::write)).share("scroll0"); // Scroll ram 0
- map(0x0a8000, 0x0affff).ram().w("scroll1", FUNC(megasys1_tilemap_device::write)).share("scroll1"); // Scroll ram 1
- map(0x0b0000, 0x0b7fff).ram().w("scroll2", FUNC(megasys1_tilemap_device::write)).share("scroll2"); // Scroll ram 2
- map(0x0b8000, 0x0bffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palettes
-
- map(0x0f0000, 0x0fffff).ram().share("ram"); // RAM
- map(0x100000, 0x17ffff).rom().region("user1", 0); // ROM
-}
-
-
-/**************************************************************************
- F1 GrandPrix Star
-**************************************************************************/
-
-
-/* F1 GP Star tests:
- 0A0000-0B8000
- 0F0000-100000
- 0B8000-0C0000
- 090800-091000
- 098800-099000
- 0F8000-0F9000 */
-
-/*
-CPU #0 PC 00234A : Warning, vreg 0000 <- 0000
-CPU #0 PC 002350 : Warning, vreg 0002 <- 0000
-CPU #0 PC 00235C : Warning, vreg 0006 <- 0000
-*/
-
-void cischeat_state::f1gpstar_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x080000, 0x080001).portr("IN1"); // DSW 1 & 2
- map(0x080004, 0x080005).portr("IN2").w(FUNC(cischeat_state::f1gpstar_motor_w)); // Buttons
- map(0x080006, 0x080007).portr("IN3"); // ? Read at boot only
- map(0x080008, 0x080009).r(m_soundlatch2, FUNC(generic_latch_16_device::read)); // From sound cpu
- map(0x080008, 0x080009).w(m_soundlatch, FUNC(generic_latch_16_device::write)); // To sound cpu
- map(0x08000c, 0x08000d).portr("IN4"); // DSW 3
- map(0x080010, 0x080011).r(FUNC(cischeat_state::f1gpstar_wheel_r)).nopw(); // Accel + Driving Wheel
- map(0x080014, 0x080015).nopw();
- map(0x080018, 0x080019).w(FUNC(cischeat_state::f1gpstar_soundint_w));
-
- map(0x082000, 0x082005).rw("scroll0", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082008, 0x08200d).rw("scroll1", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082100, 0x082105).rw("scroll2", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082108, 0x082109).noprw(); // ? written with 0 only
- map(0x082208, 0x082209).noprw(); // watchdog reset
- map(0x082308, 0x082309).nopr().w(FUNC(cischeat_state::f1gpstar_comms_w));
- map(0x082400, 0x082401).w(FUNC(cischeat_state::active_layers_w));
-
- map(0x088000, 0x0883ff).ram(); // Linking with other units
-
- map(0x090000, 0x097fff).ram().share("share2"); // Sharedram with sub CPU#2
- map(0x098000, 0x09ffff).ram().share("share1"); // Sharedram with sub CPU#1
-
- /* Only writes to the first 0x40000 bytes affect the tilemaps: */
- /* either these games support larger tilemaps or have more ram than needed */
- map(0x0a0000, 0x0a7fff).ram().w("scroll0", FUNC(megasys1_tilemap_device::write)).share("scroll0"); // Scroll ram 0
- map(0x0a8000, 0x0affff).ram().w("scroll1", FUNC(megasys1_tilemap_device::write)).share("scroll1"); // Scroll ram 1
- map(0x0b0000, 0x0b7fff).ram().w("scroll2", FUNC(megasys1_tilemap_device::write)).share("scroll2"); // Scroll ram 2
- map(0x0b8000, 0x0bffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palettes
-
- map(0x0f0000, 0x0fffff).ram().share("ram"); // RAM
- map(0x100000, 0x17ffff).rom().region("user1", 0); // ROM
-}
-
-
-/**************************************************************************
- Wild Pilot
-**************************************************************************/
-
-// ad stick read select
-READ16_MEMBER(cischeat_state::wildplt_xy_r)
-{
- switch(m_ip_select)
- {
- case 1: return ioport("P2Y")->read() | (ioport("P2X")->read()<<8);
- case 2: return ioport("P1Y")->read() | (ioport("P1X")->read()<<8);
- }
-
- return 0xffff;
-}
-
-// buttons & sensors are muxed. bit 0 routes to coin chute (single according to test mode)
-READ16_MEMBER(cischeat_state::wildplt_mux_r)
-{
- uint16_t split_in = 0xffff;
- switch(m_wildplt_output & 0xc)
- {
-// case 0: return ioport("IN1")->read();
- case 4: split_in = ioport("IN1_1")->read(); break;
- case 8: split_in = ioport("IN1_2")->read(); break;
- }
-
- return split_in & ioport("IN1_COMMON")->read();
-}
-
-WRITE16_MEMBER(cischeat_state::wildplt_mux_w)
-{
- m_wildplt_output = data & 0xc;
-}
-
-
-// Same as f1gpstar, but vregs are slightly different:
-void wildplt_state::wildplt_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x080000, 0x080001).portr("IN0").w(FUNC(cischeat_state::f1gpstr2_io_w)); // DSW 1 & 2
- map(0x080004, 0x080005).r(FUNC(cischeat_state::wildplt_mux_r)).w(FUNC(cischeat_state::wildplt_mux_w)); // Buttons
- map(0x080008, 0x080009).r(m_soundlatch2, FUNC(generic_latch_16_device::read)); // From sound cpu
- map(0x080008, 0x080009).w(m_soundlatch, FUNC(generic_latch_16_device::write)); // To sound cpu
- map(0x08000c, 0x08000d).w(FUNC(wildplt_state::sprite_dma_w)); // 1000, 3000
- map(0x080010, 0x080011).r(FUNC(cischeat_state::wildplt_xy_r)).w(FUNC(cischeat_state::ip_select_w)); // X, Y
- map(0x080014, 0x080015).nopw();
- map(0x080018, 0x080019).rw(FUNC(cischeat_state::f1gpstr2_ioready_r), FUNC(cischeat_state::f1gpstar_soundint_w));
-
- map(0x081000, 0x081fff).ram().share("shareio");
-
- map(0x082000, 0x082005).rw("scroll0", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082008, 0x08200d).rw("scroll1", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082100, 0x082105).rw("scroll2", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082108, 0x082109).noprw(); // ? written with 0 only
- map(0x082208, 0x082209).noprw(); // watchdog reset
- map(0x082308, 0x082309).nopr().w(FUNC(cischeat_state::f1gpstar_comms_w));
- map(0x082400, 0x082401).w(FUNC(cischeat_state::active_layers_w));
-
-// map(0x088000, 0x088fff).ram(); // Linking with other units (not present on this)
-
- map(0x090000, 0x097fff).ram().share("share2"); // Sharedram with sub CPU#2
- map(0x098000, 0x09ffff).ram().share("share1"); // Sharedram with sub CPU#1
-
- /* Only writes to the first 0x40000 bytes affect the tilemaps: */
- /* either these games support larger tilemaps or have more ram than needed */
- map(0x0a0000, 0x0a7fff).ram().w("scroll0", FUNC(megasys1_tilemap_device::write)).share("scroll0"); // Scroll ram 0
- map(0x0a8000, 0x0affff).ram().w("scroll1", FUNC(megasys1_tilemap_device::write)).share("scroll1"); // Scroll ram 1
- map(0x0b0000, 0x0b7fff).ram().w("scroll2", FUNC(megasys1_tilemap_device::write)).share("scroll2"); // Scroll ram 2
- map(0x0b8000, 0x0bffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palettes
-
- map(0x0f0000, 0x0fffff).ram().share("ram"); // RAM
- map(0x100000, 0x17ffff).rom().region("user1", 0); // ROM
-}
-
-
-/**************************************************************************
- F1 GrandPrix Star II
-**************************************************************************/
-
-// Same as f1gpstar, but vregs are slightly different:
-void cischeat_state::f1gpstr2_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x080000, 0x080001).portr("IN1").w(FUNC(cischeat_state::f1gpstr2_io_w)); // DSW 1 & 2
- map(0x080004, 0x080005).portr("IN2").w(FUNC(cischeat_state::f1gpstar_motor_w)); // Buttons
- map(0x080006, 0x080007).portr("IN3"); // ? Read at boot only
- map(0x080008, 0x080009).r(m_soundlatch2, FUNC(generic_latch_16_device::read)); // From sound cpu
- map(0x080008, 0x080009).w(m_soundlatch, FUNC(generic_latch_16_device::write)); // To sound cpu
- map(0x08000c, 0x08000d).portr("IN4"); // DSW 3
- map(0x080010, 0x080011).r(FUNC(cischeat_state::f1gpstar_wheel_r)).nopw();
- map(0x080014, 0x080015).nopw();
- map(0x080018, 0x080019).rw(FUNC(cischeat_state::f1gpstr2_ioready_r), FUNC(cischeat_state::f1gpstar_soundint_w));
-
- map(0x081000, 0x081fff).ram().share("shareio");
-
- map(0x082000, 0x082005).rw("scroll0", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082008, 0x08200d).rw("scroll1", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082100, 0x082105).rw("scroll2", FUNC(megasys1_tilemap_device::scroll_r), FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082108, 0x082109).noprw(); // ? written with 0 only
- map(0x082208, 0x082209).noprw(); // watchdog reset
- map(0x082308, 0x082309).nopr().w(FUNC(cischeat_state::f1gpstar_comms_w));
- map(0x082400, 0x082401).w(FUNC(cischeat_state::active_layers_w));
-
- // 0x100 RAM banks instead of 0x200
- map(0x088000, 0x0887ff).ram(); // Linking with other units
-
- map(0x090000, 0x097fff).ram().share("share2"); // Sharedram with sub CPU#2
- map(0x098000, 0x09ffff).ram().share("share1"); // Sharedram with sub CPU#1
-
- /* Only writes to the first 0x40000 bytes affect the tilemaps: */
- /* either these games support larger tilemaps or have more ram than needed */
- map(0x0a0000, 0x0a7fff).ram().w("scroll0", FUNC(megasys1_tilemap_device::write)).share("scroll0"); // Scroll ram 0
- map(0x0a8000, 0x0affff).ram().w("scroll1", FUNC(megasys1_tilemap_device::write)).share("scroll1"); // Scroll ram 1
- map(0x0b0000, 0x0b7fff).ram().w("scroll2", FUNC(megasys1_tilemap_device::write)).share("scroll2"); // Scroll ram 2
- map(0x0b8000, 0x0bffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palettes
-
- map(0x0f0000, 0x0fffff).ram().share("ram"); // RAM
- map(0x100000, 0x17ffff).rom().region("user1", 0); // ROM
-}
-
-
-/**************************************************************************
- Scud Hammer
-**************************************************************************/
-
-
-
-/* Motor Status.
-
- f--- ---- ---- ---- Rotation Limit (R?)
- -e-- ---- ---- ---- Rotation Limit (L?)
- --dc ba98 7654 32--
- ---- ---- ---- --1- Up Limit
- ---- ---- ---- ---0 Down Limit */
-
-READ16_MEMBER(cischeat_state::scudhamm_motor_status_r)
-{
- return m_scudhamm_motor_command; // Motor Status
-}
-
-
-READ16_MEMBER(cischeat_state::scudhamm_motor_pos_r)
-{
- return 0x00 << 8;
-}
-
-
-/* Move the motor.
-
- fedc ba98 7654 32--
- ---- ---- ---- --1- Move Up
- ---- ---- ---- ---0 Move Down
-
- Within $20 vblanks the motor must reach the target. */
-
-WRITE16_MEMBER(cischeat_state::scudhamm_motor_command_w)
-{
- COMBINE_DATA( &m_scudhamm_motor_command );
-}
-
-
-uint8_t cischeat_state::scudhamm_analog_r()
-{
- int i=ioport("IN1")->read(),j;
-
- if ((i^m_prev)&0x4000) {
- if (i<m_prev) m_prev-=0x8000;
- else m_prev+=0x8000;
- }
-
- j=i-m_prev;
- m_prev=i;
-
- /* effect of hammer collision 'accelerometer':
- $00 - $09 - no hit
- $0A - $3F - soft hit
- $40 - $FF - hard hit */
- if (j<0) return 0;
- else if (j>0xff) return 0xff;
- return j;
-}
-
-/*
- I don't know how many leds are there, but each bit in the buttons input
- port (coins, tilt, buttons, select etc.) triggers the corresponding bit
- in this word. I mapped the 3 buttons to the first 3 led.
-*/
-WRITE16_MEMBER(cischeat_state::scudhamm_leds_w)
-{
- if (ACCESSING_BITS_8_15)
- {
- m_leds[0] = BIT(data, 8); // 3 buttons
- m_leds[1] = BIT(data, 9);
- m_leds[2] = BIT(data, 10);
- }
-
- if (ACCESSING_BITS_0_7)
- {
- m_leds[3] = BIT(data, 4);
- m_leds[4] = BIT(data, 5);
- }
-}
-
-
-/*
- $FFFC during self test, $FFFF onwards.
- It could be audio(L/R) or layers(0/2) enable.
-*/
-WRITE16_MEMBER(cischeat_state::scudhamm_enable_w)
-{
-}
-
-
-WRITE16_MEMBER(cischeat_state::scudhamm_oki_bank_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- m_oki1->set_rom_bank((data >> 0) & 0x3);
- m_oki2->set_rom_bank((data >> 4) & 0x3);
- }
-}
-
-void cischeat_state::scudhamm_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x082000, 0x082005).w("scroll0", FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082008, 0x08200d).nopw(); // UNUSED LAYER
- map(0x082100, 0x082105).w("scroll2", FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082208, 0x082209).rw(m_watchdog, FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w));
- map(0x0a0000, 0x0a3fff).ram().w("scroll0", FUNC(megasys1_tilemap_device::write)).share("scroll0"); // Scroll RAM 0
- map(0x0b0000, 0x0b3fff).ram().w("scroll2", FUNC(megasys1_tilemap_device::write)).share("scroll2"); // Scroll RAM 2
- map(0x0b8000, 0x0bffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette
- map(0x0f0000, 0x0fffff).ram().share("ram"); // Work RAM + Spriteram
- map(0x100000, 0x100001).w(FUNC(cischeat_state::scudhamm_oki_bank_w)); // Sound
- map(0x100008, 0x100009).portr("IN0").w(FUNC(cischeat_state::scudhamm_leds_w)); // Buttons
- map(0x100015, 0x100015).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
- map(0x100019, 0x100019).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); //
- map(0x10001c, 0x10001d).w(FUNC(cischeat_state::scudhamm_enable_w)); // ?
- map(0x100041, 0x100041).rw("adc", FUNC(adc0804_device::read), FUNC(adc0804_device::write)); // A / D
- map(0x100044, 0x100045).r(FUNC(cischeat_state::scudhamm_motor_pos_r)); // Motor Position
- map(0x100050, 0x100051).r(FUNC(cischeat_state::scudhamm_motor_status_r)).w(FUNC(cischeat_state::scudhamm_motor_command_w)); // Motor Limit Switches
- map(0x10005c, 0x10005d).portr("IN2"); // 2 x DSW
-}
-
-
-/**************************************************************************
- Arm Champs II
-**************************************************************************/
-
-READ16_MEMBER(cischeat_state::armchmp2_motor_status_r)
-{
- return 0x11;
-}
-
-WRITE16_MEMBER(cischeat_state::armchmp2_motor_command_w)
-{
- COMBINE_DATA( &m_scudhamm_motor_command );
-}
-
-uint8_t cischeat_state::armchmp2_analog_r()
-{
- int armdelta;
-
- armdelta = ioport("IN1")->read() - m_armold;
- m_armold = ioport("IN1")->read();
-
- return ~( m_scudhamm_motor_command + armdelta ); // + x : x<=0 and player loses, x>0 and player wins
-}
-
-READ16_MEMBER(cischeat_state::armchmp2_buttons_r)
-{
- int arm_x = ioport("IN1")->read();
-
- uint16_t ret = ioport("IN0")->read();
-
- if (arm_x < 0x40) ret &= ~1;
- else if (arm_x > 0xc0) ret &= ~2;
- else if ((arm_x > 0x60) && (arm_x < 0xa0)) ret &= ~4;
-
- return ret;
-}
-
-/*
- f--- ---- ---- ----
- -edc ---- ---- ---- Leds
- ---- ba9- ---- ----
- ---- ---8 ---- ---- Start button led
- ---- ---- 76-- ---- Coin counters
- ---- ---- --54 3210
-*/
-WRITE16_MEMBER(cischeat_state::armchmp2_leds_w)
-{
- if (ACCESSING_BITS_8_15)
- {
- m_leds[0] = BIT(data, 8);
- m_leds[1] = BIT(data, 12);
- m_leds[2] = BIT(data, 13);
- m_leds[3] = BIT(data, 14);
- }
-
- if (ACCESSING_BITS_0_7)
- {
- machine().bookkeeping().coin_counter_w(0, data & 0x0040);
- machine().bookkeeping().coin_counter_w(1, data & 0x0080);
- }
-}
-
-void cischeat_state::armchmp2_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x082000, 0x082005).w("scroll0", FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082008, 0x08200d).nopw(); // UNUSED LAYER
- map(0x082100, 0x082105).w("scroll2", FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082208, 0x082209).rw(m_watchdog, FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w));
- map(0x0a0000, 0x0a7fff).ram().w("scroll0", FUNC(megasys1_tilemap_device::write)).share("scroll0"); // Scroll ram 0
- map(0x0b0000, 0x0b7fff).ram().w("scroll2", FUNC(megasys1_tilemap_device::write)).share("scroll2"); // Scroll ram 2
- map(0x0b8000, 0x0bffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette
- map(0x0f0000, 0x0fffff).ram().share("ram"); // Work RAM + Spriteram
- map(0x100000, 0x100001).portr("IN2").w(FUNC(cischeat_state::scudhamm_oki_bank_w)); // DSW + Sound
- map(0x100004, 0x100005).portr("IN3"); // DSW
- map(0x100008, 0x100009).rw(FUNC(cischeat_state::armchmp2_buttons_r), FUNC(cischeat_state::armchmp2_leds_w)); // Leds + Coin Counters + Buttons + Sensors
- map(0x10000d, 0x10000d).rw("adc", FUNC(adc0804_device::read), FUNC(adc0804_device::write)); // A / D
- map(0x100010, 0x100011).rw(FUNC(cischeat_state::armchmp2_motor_status_r), FUNC(cischeat_state::armchmp2_motor_command_w)); // Motor Limit Switches?
- map(0x100015, 0x100015).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
- map(0x100019, 0x100019).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); //
-}
-
-
-/**************************************************************************
- Captain Flag
-**************************************************************************/
-
-#define RIGHT 0
-#define LEFT 1
-
-WRITE16_MEMBER(captflag_state::leds_w)
-{
- COMBINE_DATA( &m_captflag_leds );
- if (ACCESSING_BITS_8_15)
- {
- machine().bookkeeping().coin_counter_w(1, data & 0x0100); // coin 2
- m_leds[0] = BIT(data, 8); // decide
- machine().bookkeeping().coin_counter_w(0, data & 0x0400); // coin 1
- m_leds[1] = BIT(data, 13); // select
-
- int power = (data & 0x1000);
- m_hopper->motor_w(power ? 1 : 0); // prize motor
- if (!power)
- m_hopper->reset();
- }
-}
-
-WRITE16_MEMBER(captflag_state::oki_bank_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- m_oki1_bank->set_entry(((data >> 0) + 1) & 0x7);
- m_oki2_bank->set_entry(((data >> 4) + 1) & 0x7);
- }
-}
-
-// Motors
-
-WRITE16_MEMBER(captflag_state::motor_command_right_w)
-{
- // Output check:
- // e09a up
- // 80b9 - (when not busy)
- // 0088 - (when busy)
- // e0ba down
- data = COMBINE_DATA( &m_motor_command[RIGHT] );
- motor_move(RIGHT, data);
-}
-WRITE16_MEMBER(captflag_state::motor_command_left_w)
-{
- // Output check:
- // e0ba up
- // 8099 - (when not busy)
- // 0088 - (when busy)
- // e09a down
- data = COMBINE_DATA( &m_motor_command[LEFT] );
- motor_move(LEFT, data);
-}
-
-void captflag_state::motor_move(int side, uint16_t data)
-{
- uint16_t & pos = m_motor_pos[side];
-
- timer_device &dev((side == RIGHT) ? *m_motor_right : *m_motor_left);
-
-// bool busy = !(dev.time_left() == attotime::never);
- bool busy = false;
-
- if (data & 0x0010)
- {
- if (!busy)
- {
- bool down = (data & 0x0020);
-
- int inc;
- switch (data >> 8)
- {
- case 0xf5: inc = +2; break; // -5 -6
- case 0xf8: inc = +1; break; // -5 -3
- case 0xfe: inc = -1; break; // -5 +3
- case 0x01: inc = -2; break; // -5 +6
- default:
- if ((data >> 8) + 5 >= 0x100)
- inc = -1;
- else
- inc = +1;
- }
-
- if (data & 0x0001)
- inc = 1;
-
- if (down)
- inc *= -1;
-
- int new_pos = pos + inc;
- if (new_pos > 3)
- new_pos = 3;
- else if (new_pos < 0)
- new_pos = 0;
- busy = (new_pos != pos);
- pos = new_pos;
-
- if (busy)
- dev.adjust(attotime::from_msec(100));
- }
- }
- else
- {
- dev.reset();
- }
-
- output().set_value((side == RIGHT) ? "right" : "left", pos);
-}
-
-template <int N>
-CUSTOM_INPUT_MEMBER(captflag_state::motor_pos_r)
-{
- const uint8_t pos[4] = {1,0,2,3}; // -> 2,3,1,0 offsets -> 0123
- return ~pos[m_motor_pos[N]];
-}
-
-template <int N>
-READ_LINE_MEMBER(captflag_state::motor_busy_r)
-{
-// timer_device & dev = ((side == RIGHT) ? m_motor_right : m_motor_left);
-// return (dev.time_left() == attotime::never) ? 0 : 1;
- return 0;
-}
-
-void captflag_state::captflag_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x082000, 0x082005).w("scroll0", FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082008, 0x08200d).nopw(); // UNUSED LAYER
- map(0x082100, 0x082105).w("scroll2", FUNC(megasys1_tilemap_device::scroll_w));
- map(0x082208, 0x082209).rw(m_watchdog, FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w));
- map(0x090008, 0x090009).nopw(); // 0?
- map(0x0a0000, 0x0a7fff).ram().w("scroll0", FUNC(megasys1_tilemap_device::write)).share("scroll0"); // Scroll RAM 0
- map(0x0b0000, 0x0b7fff).ram().w("scroll2", FUNC(megasys1_tilemap_device::write)).share("scroll2"); // Scroll RAM 2
- map(0x0b8000, 0x0bffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette
- map(0x0f0000, 0x0fffff).ram().share("ram"); // Work RAM + Spriteram
- map(0x100000, 0x100001).portr("SW1_2").w(FUNC(captflag_state::oki_bank_w)); // 2 x DSW + Sound
- map(0x100008, 0x100009).portr("Buttons").w(FUNC(captflag_state::leds_w)); // Buttons + Leds
- map(0x100015, 0x100015).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
- map(0x100019, 0x100019).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); //
- map(0x10001c, 0x10001d).w(FUNC(captflag_state::scudhamm_enable_w)); // ?
- map(0x100040, 0x100041).portr("SW01"); // DSW + Motor
- map(0x100044, 0x100045).w(FUNC(captflag_state::motor_command_left_w)); // Motor Command (Left)
- map(0x100048, 0x100049).w(FUNC(captflag_state::motor_command_right_w)); // Motor Command (Right)
- map(0x100060, 0x10007f).ram().share("nvram"); // NVRAM (even bytes only)
-}
-
-void captflag_state::oki1_map(address_map &map)
-{
- map(0x00000, 0x1ffff).rom();
- map(0x20000, 0x3ffff).bankr("oki1_bank");
-}
-
-void captflag_state::oki2_map(address_map &map)
-{
- map(0x00000, 0x1ffff).rom();
- map(0x20000, 0x3ffff).bankr("oki2_bank");
-}
-
-
-/**************************************************************************
-
-
- Memory Maps - Road CPUs (#2 & #3)
-
-
-**************************************************************************/
-
-/**************************************************************************
- Big Run
-**************************************************************************/
-
-void cischeat_state::bigrun_map2(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x040000, 0x047fff).ram().share("share1"); // Shared RAM (with Main CPU)
- map(0x080000, 0x0807ff).ram().share("roadram.0"); // Road RAM
- map(0x0c0000, 0x0c3fff).ram(); // RAM
-}
-
-void cischeat_state::bigrun_map3(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x040000, 0x047fff).ram().share("share2"); // Shared RAM (with Main CPU)
- map(0x080000, 0x0807ff).ram().share("roadram.1"); // Road RAM
- map(0x0c0000, 0x0c3fff).ram(); // RAM
-}
-
-
-/**************************************************************************
- Cisco Heat
-**************************************************************************/
-
-void cischeat_state::cischeat_map2(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x040000, 0x047fff).ram().share("share1"); // Shared RAM (with Main CPU)
- map(0x080000, 0x0807ff).ram().share("roadram.0"); // Road RAM
- map(0x0c0000, 0x0c3fff).ram(); // RAM
- map(0x100000, 0x100001).nopw(); // watchdog
- map(0x200000, 0x23ffff).rom().region("cpu2", 0x40000); // ROM
-}
-
-void cischeat_state::cischeat_map3(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x040000, 0x047fff).ram().share("share2"); // Shared RAM (with Main CPU)
- map(0x080000, 0x0807ff).ram().share("roadram.1"); // Road RAM
- map(0x0c0000, 0x0c3fff).ram(); // RAM
- map(0x100000, 0x100001).nopw(); // watchdog
- map(0x200000, 0x23ffff).rom().region("cpu3", 0x40000); // ROM
-}
-
-
-
-/**************************************************************************
- F1 GrandPrix Star
-**************************************************************************/
-
-void cischeat_state::f1gpstar_map2(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x080000, 0x0807ff).ram().share("share1"); // Shared RAM (with Main CPU)
- map(0x100000, 0x1007ff).ram().share("roadram.0"); // Road RAM
- map(0x180000, 0x183fff).ram(); // RAM
- map(0x200000, 0x200001).nopw(); // watchdog
-}
-
-void cischeat_state::f1gpstar_map3(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x080000, 0x0807ff).ram().share("share2"); // Shared RAM (with Main CPU)
- map(0x100000, 0x1007ff).ram().share("roadram.1"); // Road RAM
- map(0x180000, 0x183fff).ram(); // RAM
- map(0x200000, 0x200001).nopw(); // watchdog
-}
-
-
-/**************************************************************************
-
-
- Memory Maps - Sound CPU (#4)
-
-
-**************************************************************************/
-
-/* Music tempo driven by the YM2151 timers (status reg polled) */
-
-
-/**************************************************************************
- Big Run
-**************************************************************************/
-
-WRITE16_MEMBER(cischeat_state::bigrun_soundbank_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- m_oki1->set_rom_bank((data >> 0) & 1);
- m_oki2->set_rom_bank((data >> 4) & 1);
- }
-}
-
-void cischeat_state::bigrun_sound_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x040000, 0x040001).r(m_soundlatch, FUNC(generic_latch_16_device::read)).w(FUNC(cischeat_state::bigrun_soundbank_w)); // From Main CPU
- map(0x060000, 0x060001).w(m_soundlatch2, FUNC(generic_latch_16_device::write)); // To Main CPU
- map(0x080000, 0x080003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff);
- map(0x0a0000, 0x0a0003).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff);
- map(0x0c0000, 0x0c0003).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff);
- map(0x0f0000, 0x0fffff).ram(); // RAM
-}
-
-
-/**************************************************************************
- Cisco Heat
-**************************************************************************/
-
-WRITE16_MEMBER(cischeat_state::cischeat_soundbank_1_w)
-{
- if (ACCESSING_BITS_0_7) m_oki1->set_rom_bank(data & 1);
-}
-
-WRITE16_MEMBER(cischeat_state::cischeat_soundbank_2_w)
-{
- if (ACCESSING_BITS_0_7) m_oki2->set_rom_bank(data & 1);
-}
-
-void cischeat_state::cischeat_sound_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x040002, 0x040003).w(FUNC(cischeat_state::cischeat_soundbank_1_w)); // Sample Banking
- map(0x040004, 0x040005).w(FUNC(cischeat_state::cischeat_soundbank_2_w)); // Sample Banking
- map(0x060002, 0x060003).w(m_soundlatch2, FUNC(generic_latch_16_device::write)); // To Main CPU
- map(0x060004, 0x060005).r(m_soundlatch, FUNC(generic_latch_16_device::read)); // From Main CPU
- map(0x080000, 0x080003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff);
- map(0x0a0000, 0x0a0003).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff);
- map(0x0c0000, 0x0c0003).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff);
- map(0x0f0000, 0x0fffff).ram(); // RAM
-}
-
-
-/**************************************************************************
- F1 GrandPrix Star
-**************************************************************************/
-
-void cischeat_state::f1gpstar_sound_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x040004, 0x040005).w(FUNC(cischeat_state::cischeat_soundbank_1_w)); // Sample Banking (cischeat: 40002)
- map(0x040008, 0x040009).w(FUNC(cischeat_state::cischeat_soundbank_2_w)); // Sample Banking (cischeat: 40004)
- map(0x060000, 0x060001).r(m_soundlatch, FUNC(generic_latch_16_device::read)).w(m_soundlatch2, FUNC(generic_latch_16_device::write)); // From Main CPU (cischeat: 60004)
- map(0x080000, 0x080003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff);
- map(0x0a0000, 0x0a0003).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff);
- map(0x0c0000, 0x0c0003).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff);
- map(0x0e0000, 0x0fffff).ram(); // RAM (cischeat: f0000-fffff)
-}
-
-
-/**************************************************************************
- F1 GrandPrix Star II
-**************************************************************************/
-
-void cischeat_state::f1gpstr2_sound_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x040004, 0x040005).w(FUNC(cischeat_state::cischeat_soundbank_1_w)); // Sample Banking
- map(0x040008, 0x040009).w(FUNC(cischeat_state::cischeat_soundbank_2_w)); // Sample Banking
- map(0x04000e, 0x04000f).nopw(); // ? 0 (f1gpstar: no)
- map(0x060002, 0x060003).w(m_soundlatch2, FUNC(generic_latch_16_device::write)); // To Main CPU
- map(0x060004, 0x060005).r(m_soundlatch, FUNC(generic_latch_16_device::read)); // From Main CPU
- map(0x080000, 0x080003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff);
- map(0x0a0000, 0x0a0003).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff);
- map(0x0c0000, 0x0c0003).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff);
- map(0x0e0000, 0x0fffff).ram(); // RAM
-}
-
-/**************************************************************************
-
-
- Memory Maps - IO CPU (#5)
-
-
-**************************************************************************/
-
-void cischeat_state::f1gpstr2_io_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x080000, 0x080fff).ram().share("shareio");
- map(0x100000, 0x100001).writeonly().share("ioready"); //
- map(0x180000, 0x183fff).ram(); // RAM
- map(0x200000, 0x200001).noprw(); //
-}
-
-
-/***************************************************************************
-
-
- Input Ports
-
-
-***************************************************************************/
-
-/* Fake input port to read the status of five buttons: used to
- implement the shift using 2 buttons, and the accelerator in
- f1gpstar */
-
-/**************************************************************************
- Big Run
-**************************************************************************/
-
-// Input Ports: [0] Fake: Buttons Status
-// [1] Coins [2] Controls [3] Unknown
-// [4] DSW 1 & 2 [5] DSW 3 [6] Driving Wheel
-
-static INPUT_PORTS_START( bigrun )
- PORT_START("IN1") // Coins - $80000.w
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) // called "Test"
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN2") //Controls - $80002.w
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Brake") // Brake
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Gear Shift") PORT_TOGGLE // Shift
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Horn") // Horn
-
- PORT_START("IN3") // Motor Control? - $80004.w
- PORT_DIPNAME( 0x01, 0x01, "Up Limit SW" ) // Limit the Cockpit movements?
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Down Limit SW" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
-// PORT_DIPNAME( 0x10, 0x10, "Right Limit SW" )
-// PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x20, 0x20, "Left Limit SW" )
-// PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN4") // DSW 2 & 3 - $80006.w
- // DSW 3
- PORT_DIPNAME( 0x0003, 0x0003, "Extra Setting For Coin B" ) PORT_DIPLOCATION("SW302:8,7") /* 'Not used' (and must be OFF) according to the manual */
- PORT_DIPSETTING( 0x0003, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 1C_5C ) ) PORT_CONDITION("IN4", 0x1c00, NOTEQUALS, 0x0000)
- PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) ) PORT_CONDITION("IN4", 0x1c00, NOTEQUALS, 0x0000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_7C ) ) PORT_CONDITION("IN4", 0x1c00, NOTEQUALS, 0x0000)
- PORT_DIPSETTING( 0x0001, DEF_STR( Unused ) ) PORT_CONDITION("IN4", 0x1c00, EQUALS, 0x0000)
- PORT_DIPSETTING( 0x0002, DEF_STR( Unused ) ) PORT_CONDITION("IN4", 0x1c00, EQUALS, 0x0000)
- PORT_DIPSETTING( 0x0000, DEF_STR( Unused ) ) PORT_CONDITION("IN4", 0x1c00, EQUALS, 0x0000)
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW302:6")
- PORT_DIPSETTING( 0x0004, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Region ) ) PORT_DIPLOCATION("SW302:5") // If you try to change Unit ID the game show the error message in different language
- PORT_DIPSETTING( 0x0008, DEF_STR( Japanese ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( English) )
- PORT_DIPNAME( 0x0010, 0x0010, "Move Cabinet" ) PORT_DIPLOCATION("SW302:4")
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW302:3,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Automatic Game Start" ) PORT_DIPLOCATION("SW302:1")
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0080, "After 15 Seconds" )
-
- // DSW 2
- PORT_DIPNAME( 0x0100, 0x0100, "Invulnerability" ) PORT_DIPLOCATION("SW301:8")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW301:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( On ) )
- PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW301:6,5,4") PORT_CONDITION("IN4", 0x0003, EQUALS, 0x0003)
- PORT_DIPSETTING( 0x1000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x1c00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1400, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x1c00, 0x1c00, "Set Coin B" ) PORT_DIPLOCATION("SW301:6,5,4") PORT_CONDITION("IN4", 0x0003, NOTEQUALS, 0x0003)
- PORT_DIPSETTING( 0x1c00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW301:3,2,1")
- PORT_DIPSETTING( 0x8000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
-
- PORT_START("IN5") // DSW 3 (4 bits, Cabinet Linking) - $82200.w
- /* According to Manual: "When Machines are linked for simultaneous racing throught the
- Com-Link System, SW1 should be set as shown", i.e. ON for Master Machine, OFF for others */
- PORT_DIPNAME( 0x01, 0x00, "Link ID" ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x00, "Master Unit" )
- PORT_DIPSETTING( 0x01, "Other Units" )
- PORT_DIPNAME( 0x06, 0x00, "Unit ID" ) PORT_DIPLOCATION("SW1:2,3")
- PORT_DIPSETTING( 0x00, "1 (Blue-White Car)" )
- PORT_DIPSETTING( 0x02, "2 (Green-White Car)" )
- PORT_DIPSETTING( 0x04, "3 (Red-White Car)" )
- PORT_DIPSETTING( 0x06, "4 (Yellow Car)" )
- PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "SW1:4") /* Always ON according to manual */
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN6") // Driving Wheel - $80010.w(0)
- PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30)
-
- PORT_START("PEDAL") // Accelerator Pedal
- PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
-INPUT_PORTS_END
-
-
-/**************************************************************************
- Cisco Heat
-**************************************************************************/
-
-// Input Ports: [0] Fake: Buttons Status
-// [1] Coins [2] Controls [3] Unknown
-// [4] DSW 1 & 2 [5] DSW 3 [6] Driving Wheel
-
-static INPUT_PORTS_START( cischeat )
- PORT_START("IN1") // Coins - $80000.w
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW) // called "Test"
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN2") // Controls - $80002.w
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Brake") // Brake
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Gear Shift") PORT_TOGGLE // Shift
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Accelerator") // Accel
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Horn") // Horn
-
- PORT_START("IN3") // Motor Control? - $80004.w
- PORT_DIPNAME( 0x01, 0x01, "Up Limit SW" ) // Limit the Cockpit movements?
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Down Limit SW" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_DIPNAME( 0x10, 0x10, "Right Limit SW" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Left Limit SW" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN4") // DSW 1 & 2 - $80006.w -> !f000a.w(hi byte) !f0008.w(low byte)
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW301:1,2,3")
- PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW301:4,5,6")
- PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW301:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW301:8" )
- // DSW 2
- PORT_DIPNAME( 0x0300, 0x0300, "Unit ID" ) PORT_DIPLOCATION("SW302:1,2") // -> !f0020 (ID of this unit, when linked)
- PORT_DIPSETTING( 0x0300, "0 (Red Car)" )
- PORT_DIPSETTING( 0x0200, "1 (Blue Car)" )
- PORT_DIPSETTING( 0x0100, "2 (Yellow Car)" )
- PORT_DIPSETTING( 0x0000, "3 (Green Car)" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW302:3,4") // -> !f0026
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x1000, 0x1000, "Infinite Time (Cheat)" ) PORT_DIPLOCATION("SW302:5") // -> !f0028
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW302:6")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Country" ) PORT_DIPLOCATION("SW302:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( Japan ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( USA ) )
- PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW302:8") // -> !f00c0
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_START("IN5") // DSW 3 (4 bits, Cabinet Linking) - $82200.w
- PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW1:1" )
- PORT_DIPNAME( 0x06, 0x06, "Unit ID (2)" ) PORT_DIPLOCATION("SW1:2,3") // -> f0020 (like DSW2 !!)
- PORT_DIPSETTING( 0x06, "Use other" )
- PORT_DIPSETTING( 0x00, "0 (Red Car)" )
- PORT_DIPSETTING( 0x02, "1 (Blue Car)" )
- PORT_DIPSETTING( 0x04, "2 (Yellow Car)" )
- PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW1:4" )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN6") // IN6 - Driving Wheel - $80010.w(0)
- PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30)
-INPUT_PORTS_END
-
-
-/**************************************************************************
- F1 GrandPrix Star
-**************************************************************************/
-
-// Input Ports: [0] Fake: Buttons Status
-// [1] DSW 1 & 2 [2] Controls [3] Unknown
-// [4] DSW 3 [5] Driving Wheel
-
-static INPUT_PORTS_START( f1gpstar )
-/* [Country]
- Japan "race together" in Test Mode, Always Choose Race
- Japanese, Km/h, "handle shock" , "(c)1991",
- USA English, Mph , "steering shock", "(c)1992 North America Only"
- Europe English, Mph , "steering shock", "(c)1992"
- France French, Km/h, "steering shock", "(c)1992" */
-
- PORT_START("IN1") // DSW 1 & 2 - $80000.w -> !f9012
- // DSW 1
- // Coinage Japan & USA (it changes with Country)
- PORT_DIPNAME( 0x0007, 0x0007, "Coin A (JP US)" ) PORT_DIPLOCATION("SW01:1,2,3") PORT_CONDITION("IN1", 0x0300, GREATERTHAN, 0x0100)
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0038, 0x0038, "Coin B (JP US)" ) PORT_DIPLOCATION("SW01:4,5,6") PORT_CONDITION("IN1", 0x0300, GREATERTHAN, 0x0100)
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW01:7") PORT_CONDITION("IN1", 0x0300, GREATERTHAN, 0x0100) // unused?
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- // Coinage Europe & France (it changes with Country)
- PORT_DIPNAME( 0x0007, 0x0007, "Coin A (EU FR)" ) PORT_DIPLOCATION("SW01:1,2,3") PORT_CONDITION("IN1", 0x0300, NOTGREATERTHAN, 0x0100)
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 1C_7C ) )
- PORT_DIPNAME( 0x0038, 0x0038, "Coin B (EU FR)" ) PORT_DIPLOCATION("SW01:4,5,6") PORT_CONDITION("IN1", 0x0300, NOTGREATERTHAN, 0x0100)
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x0040, 0x0040, "Free Play (EU & FR)" ) PORT_DIPLOCATION("SW01:7") PORT_CONDITION("IN1", 0x0300, NOTGREATERTHAN, 0x0100)
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "SW01:8" ) // unused?
-
- // DSW 2
- PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Region ) ) PORT_DIPLOCATION("SW02:1,2") // -> !f901e
- PORT_DIPSETTING( 0x0300, DEF_STR( Japan ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( USA ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Europe ) )
- PORT_DIPSETTING( 0x0000, "France" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW02:3,4") // -> !f9026
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) ) // 58 <- Initial Time (seconds, Germany)
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) // 51
- PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) // 48
- PORT_DIPSETTING( 0x0400, DEF_STR( Very_Hard ) ) // 46
- PORT_DIPNAME( 0x1000, 0x1000, "Infinite Time (Cheat)" ) PORT_DIPLOCATION("SW02:5")
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW02:6")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW02:7") PORT_CONDITION("IN1", 0x0300, EQUALS, 0x0300) // unused?
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Choose Race (US EU FR)" ) PORT_DIPLOCATION("SW02:7") PORT_CONDITION("IN1", 0x0300, NOTEQUALS, 0x0300) // -> f0020
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x8000, "Vibrations" ) PORT_DIPLOCATION("SW02:8")
- PORT_DIPSETTING( 0x8000, "Torque" )
- PORT_DIPSETTING( 0x0000, "Shake" )
-
- PORT_START("IN2") // Controls - $80004.w -> !f9016
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW) // -> f0100 (called "Test")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Gear Shift") PORT_TOGGLE // Shift
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Brake")// Brake -> !f9010
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) // "Race Together"
-
- PORT_START("IN3") // ? Read at boot only - $80006.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
-/* DSW3-2&1 (Country: JP) Effect
- OFF-OFF Red-White Car
- OFF- ON Red Car
- ON-OFF Blue-White Car
- ON- ON Blue Car, "equipped with communication link" */
-
- PORT_START("IN4") // DSW 3 (4 bits, Cabinet Linking) - $8000c.w -> !f9014
- PORT_DIPNAME( 0x01, 0x01, "This Unit Is" ) PORT_DIPLOCATION("SW03:1")
- PORT_DIPSETTING( 0x01, "Slave" )
- PORT_DIPSETTING( 0x00, "Master" )
- PORT_DIPNAME( 0x06, 0x06, "Unit ID" ) PORT_DIPLOCATION("SW03:2,3") // -> !f901c
- PORT_DIPSETTING( 0x06, "0 (Red-White Car)" )
- PORT_DIPSETTING( 0x04, "1 (Red Car)" )
- PORT_DIPSETTING( 0x02, "2 (Blue-White Car)" )
- PORT_DIPSETTING( 0x00, "3 (Blue Car)" )
- PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW03:4" ) // Redundant: Invert Unit ID
- PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW03:5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW03:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW03:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW03:8" )
-
- // Accelerator - $80010.b -> !f9004.w
- PORT_START("IN5") // Driving Wheel - $80011.b -> !f9008.w
- PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30)
-
- PORT_START("PEDAL") // Accelerator Pedal
- PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( f1gpstr2 )
- PORT_INCLUDE( f1gpstar )
-
- PORT_MODIFY("IN4")
- PORT_DIPNAME( 0x0e, 0x00, "Unit ID" ) PORT_DIPLOCATION("SW03:2,3,4") // -> !f901c
- PORT_DIPSETTING( 0x00, "1 (McLaren)" )
- PORT_DIPSETTING( 0x02, "2 (Williams)" )
- PORT_DIPSETTING( 0x04, "3 (Benetton)" )
- PORT_DIPSETTING( 0x06, "4 (Ferrari)" )
- PORT_DIPSETTING( 0x08, "5 (Tyrrell)" )
- PORT_DIPSETTING( 0x0a, "6 (Lotus)" )
- PORT_DIPSETTING( 0x0c, "7 (Jordan)" )
- PORT_DIPSETTING( 0x0e, "8 (Ligier)" )
-INPUT_PORTS_END
-
-/**************************************************************************
- Wild Pilot
-**************************************************************************/
-
-static INPUT_PORTS_START( wildplt )
- PORT_START("IN0") // DSW 1 & 2
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x2000, "2" )
- PORT_DIPSETTING( 0x0000, "4" )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Region ) )
- PORT_DIPSETTING( 0x4000, "Europe?" )
- PORT_DIPSETTING( 0x8000, DEF_STR( USA ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( Japan ) )
- PORT_DIPSETTING( 0x0000, "France?" )
-
- PORT_START("IN1_COMMON")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0xfffe, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN1_1")
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW )
- PORT_BIT( 0xfff3, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN1_2")
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Bomb")
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Shot")
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Missile")
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Shot")
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Missile")
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Bomb")
- PORT_BIT( 0xfe01, IP_ACTIVE_LOW, IPT_UNKNOWN )
-#if 0
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Up Limit SW.
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Dow Limit SW.
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Center SW.
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Senser SW. #1
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Senser SW. #2
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Emergency Button") //E Stop for motors? ( Senser SW. #3 )
-#endif
- PORT_START("P1Y")
- PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
-
- PORT_START("P1X")
- PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(1)
-
- PORT_START("P2Y")
- PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2)
-
- PORT_START("P2X")
- PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(2)
-INPUT_PORTS_END
-
-
-/**************************************************************************
- Scud Hammer
-**************************************************************************/
-
-static INPUT_PORTS_START( scudhamm )
- PORT_START("IN0") // Buttons
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) // GAME OVER if pressed on the selection screen
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW ) // called "Test"
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON4 ) // Select
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // Gu (rock)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // Choki (scissors)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON3 ) // Pa (paper)
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_TILT )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN1") // A/D
- PORT_BIT( 0x7fff, 0x0000, IPT_DIAL_V ) PORT_SENSITIVITY(50) PORT_KEYDELTA(50)
-
- PORT_START("IN2") // DSW
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:1,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x000c, 0x000c, "Time To Hit" ) PORT_DIPLOCATION("SW3:3,4")
- PORT_DIPSETTING( 0x000c, "2 s" )
- PORT_DIPSETTING( 0x0008, "3 s" )
- PORT_DIPSETTING( 0x0004, "4 s" )
- PORT_DIPSETTING( 0x0000, "5 s" )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW3:5")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW3:6")
- PORT_DIPSETTING( 0x0020, "3" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0040, 0x0040, "SW3:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "SW3:8" )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW4:1,2,3")
- PORT_DIPSETTING( 0x0100, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPUNKNOWN_DIPLOC( 0x0800, 0x0800, "SW4:4" )
- PORT_DIPUNKNOWN_DIPLOC( 0x1000, 0x1000, "SW4:5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x2000, 0x2000, "SW4:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x4000, 0x4000, "SW4:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x8000, 0x8000, "SW4:8" )
-INPUT_PORTS_END
-
-
-/**************************************************************************
- Arm Champs II
-**************************************************************************/
-
-static INPUT_PORTS_START( armchmp2 )
- PORT_START("IN0") // Buttons + Sensors
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_CUSTOM ) // left sensor
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_CUSTOM ) // right sensor
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) // center sensor
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0010, IP_ACTIVE_LOW )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON1 ) // hard
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) // easy
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 ) // elbow (it always complains though)
-
- PORT_START("IN1") // A/D
- PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10)
-
- PORT_START("IN2") // DSW
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x000c, "2" )
- PORT_DIPSETTING( 0x0008, "3" )
- PORT_DIPSETTING( 0x0004, "4" )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Game_Time ) )
- PORT_DIPSETTING( 0x0000, "15 s" )
- PORT_DIPSETTING( 0x0030, "20 s" )
- PORT_DIPSETTING( 0x0020, "25 s" )
- PORT_DIPSETTING( 0x0010, "30 s" )
- PORT_DIPNAME( 0x00c0, 0x0000, DEF_STR( Region ) ) // some text is in japanese regardless!
- PORT_DIPSETTING( 0x00c0, DEF_STR( Japan ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( USA ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Europe ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( World ) )
-
- PORT_START("IN3") // DSW
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Demo Arm" )
- PORT_DIPSETTING( 0x80, "Center" )
- PORT_DIPSETTING( 0x00, "Side" )
-INPUT_PORTS_END
-
-
-/**************************************************************************
- Captain Flag
-**************************************************************************/
-
-static INPUT_PORTS_START( captflag )
- PORT_START("Buttons")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_NAME("Left Red Stick Up")
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_NAME("Left Red Stick Down")
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_NAME("Right White Stick Up")
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_NAME("Right White Stick Down")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1) // coin 2
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Decide Button") // decide
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) // coin 1
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) // test
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Select Button") // select
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH,IPT_OUTPUT ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // prize sensor
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // potery on schems?
-
- PORT_START("SW1_2")
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x00c0, 0x00c0, "Qualify" ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x0000, "30/40" )
- PORT_DIPSETTING( 0x00c0, "30/50" )
- PORT_DIPSETTING( 0x0080, "40/50" )
- PORT_DIPSETTING( 0x0040, "50/50" )
-
- PORT_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SW2:1" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SW2:2" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0400, 0x0400, "SW2:3" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0800, 0x0800, "SW2:4" )
- PORT_DIPUNKNOWN_DIPLOC( 0x1000, 0x1000, "SW2:5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x2000, 0x2000, "SW2:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x4000, 0x4000, "SW2:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x8000, 0x8000, "SW2:8" )
-
- PORT_START("SW01")
- PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_CUSTOM_MEMBER(captflag_state, motor_pos_r<LEFT>)
- PORT_BIT( 0x000c, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_CUSTOM_MEMBER(captflag_state, motor_pos_r<RIGHT>)
-
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(captflag_state, motor_busy_r<LEFT>)
- PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(captflag_state, motor_busy_r<RIGHT>)
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW01:1,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW01:3")
- PORT_DIPSETTING( 0x0400, "3/4" )
- PORT_DIPSETTING( 0x0000, "4/5" )
- PORT_DIPNAME( 0x0800, 0x0800, "BGM Volume" ) PORT_DIPLOCATION("SW01:4")
- PORT_DIPSETTING( 0x0000, "Low" )
- PORT_DIPSETTING( 0x0800, DEF_STR( Normal ) )
- PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW01:5")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
- PORT_DIPNAME( 0xe000, 0xe000, "Capsule Payout" ) PORT_DIPLOCATION("SW01:6,7,8")
- PORT_DIPSETTING( 0x0000, "Nothing" )
- PORT_DIPSETTING( 0xc000, "05%" )
- PORT_DIPSETTING( 0xe000, "10%" )
- PORT_DIPSETTING( 0xa000, "15%" )
- PORT_DIPSETTING( 0x8000, "20%" )
- PORT_DIPSETTING( 0x6000, "30%" )
- PORT_DIPSETTING( 0x4000, "50%" )
- PORT_DIPSETTING( 0x2000, "All" )
-INPUT_PORTS_END
-
-
-/**************************************************************************
-
-
- Gfx Layouts
-
-
-**************************************************************************/
-
-static const uint32_t road_layout_xoffset[64] =
-{
- STEP16(16*4*0,4),STEP16(16*4*1,4),
- STEP16(16*4*2,4),STEP16(16*4*3,4)
-};
-
-/* Road: 64 x 1 x 4 */
-static const gfx_layout road_layout =
-{
- 64,1,
- RGN_FRAC(1,1),
- 4,
- { STEP4(0,1) },
- EXTENDED_XOFFS,
- { 0 },
- 64*1*4,
- road_layout_xoffset,
- nullptr
-};
-
-/**************************************************************************
- Big Run
-**************************************************************************/
-
-static GFXDECODE_START( gfx_bigrun )
- //GFXDECODE_ENTRY( "scroll0", 0, gfx_8x8x4_packed_msb, 0x0e00/2 , 16 ) // Scroll 0
- //GFXDECODE_ENTRY( "scroll1", 0, gfx_8x8x4_packed_msb, 0x1600/2 , 16 ) // Scroll 1
- //GFXDECODE_ENTRY( "scroll2", 0, gfx_8x8x4_packed_msb, 0x3600/2 , 16 ) // Scroll 2
- GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_msb, 0x2800/2 , 64 ) // [0] Sprites
- GFXDECODE_ENTRY( "road0", 0, road_layout,0x2000/2 , 64 ) // [1] Road 0
- GFXDECODE_ENTRY( "road1", 0, road_layout,0x1800/2 , 64 ) // [2] Road 1
-GFXDECODE_END
-
-/**************************************************************************
- Cisco Heat
-**************************************************************************/
-
-static GFXDECODE_START( gfx_cischeat )
- //GFXDECODE_ENTRY( "scroll0", 0, gfx_8x8x4_packed_msb, 0x1c00/2, 32 ) // Scroll 0
- //GFXDECODE_ENTRY( "scroll1", 0, gfx_8x8x4_packed_msb, 0x2c00/2, 32 ) // Scroll 1
- //GFXDECODE_ENTRY( "scroll2", 0, gfx_8x8x4_packed_msb, 0x6c00/2, 32 ) // Scroll 2
- GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_msb, 0x5000/2, 128 ) // [0] Sprites
- GFXDECODE_ENTRY( "road0", 0, road_layout,0x3800/2, 64 ) // [1] Road 0
- GFXDECODE_ENTRY( "road1", 0, road_layout,0x4800/2, 64 ) // [2] Road 1
-GFXDECODE_END
-
-/**************************************************************************
- F1 GrandPrix Star
-**************************************************************************/
-
-static GFXDECODE_START( gfx_f1gpstar )
- //GFXDECODE_ENTRY( "scroll0", 0, gfx_8x8x4_packed_msb, 0x1e00/2, 16 ) // Scroll 0
- //GFXDECODE_ENTRY( "scroll1", 0, gfx_8x8x4_packed_msb, 0x2e00/2, 16 ) // Scroll 1
- //GFXDECODE_ENTRY( "scroll2", 0, gfx_8x8x4_packed_msb, 0x6e00/2, 16 ) // Scroll 2
- GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_msb, 0x5000/2, 128 ) // [0] Sprites
- GFXDECODE_ENTRY( "road0", 0, road_layout,0x3800/2, 64 ) // [1] Road 0
- GFXDECODE_ENTRY( "road1", 0, road_layout,0x4800/2, 64 ) // [2] Road 1
-GFXDECODE_END
-
-/**************************************************************************
- Scud Hammer
-**************************************************************************/
-
-static GFXDECODE_START( gfx_scudhamm )
- //GFXDECODE_ENTRY( "scroll0", 0, gfx_8x8x4_packed_msb, 0x1e00/2, 16 ) // Scroll 0
- //GFXDECODE_ENTRY( "scroll0", 0, gfx_8x8x4_packed_msb, 0x0000/2, 16 ) // UNUSED
- //GFXDECODE_ENTRY( "scroll2", 0, gfx_8x8x4_packed_msb, 0x4e00/2, 16 ) // Scroll 2
- GFXDECODE_ENTRY( "sprites", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x3000/2, 128 ) // [0] sprites
- // No Road Layers
-GFXDECODE_END
-
-
-/***************************************************************************
-
-
- Machine Drivers
-
-
-**************************************************************************/
-
-/**************************************************************************
- Big Run, Cisco Heat, F1 GrandPrix Star
-**************************************************************************/
-
-// TODO: irq generation is unknown, as usual with Jaleco/NMK HW
-// - irq 1 is comms related, presumably the bridge chip is capable of sending the irq signal at given times.
-// Wild Pilot of course doesn't need it.
-// - irq 2/4 controls gameplay speed, currently unknown about the timing
-// - 2 updates palettes while 4 is vblank?
-// - Calling 2 every frame causes attract mode to desync in Big Run.
-// - Not calling 1 in Big Run causes service mode to not work at all, so even if the comms doesn't work
-// something still triggers it somehow?
-TIMER_DEVICE_CALLBACK_MEMBER(cischeat_state::bigrun_scanline)
-{
- int scanline = param;
-
- if(m_screen->frame_number() & 1)
- {
- if(scanline == 240)
- m_cpu1->set_input_line(1, HOLD_LINE);
-
- return;
- }
-
- if(scanline == 240) // vblank-out irq
- m_cpu1->set_input_line(4, HOLD_LINE);
-
- if(scanline == 0)
- m_cpu1->set_input_line(2, HOLD_LINE);
-}
-
-WRITE_LINE_MEMBER(cischeat_state::sound_irq)
-{
- if(state)
- m_soundcpu->set_input_line(4, HOLD_LINE);
-}
-
-
-
-void cischeat_state::bigrun(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_cpu1, 10000000);
- m_cpu1->set_addrmap(AS_PROGRAM, &cischeat_state::bigrun_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(cischeat_state::bigrun_scanline), "screen", 0, 1);
-
- M68000(config, m_cpu2, 10000000);
- m_cpu2->set_addrmap(AS_PROGRAM, &cischeat_state::bigrun_map2);
- m_cpu2->set_vblank_int("screen", FUNC(cischeat_state::irq4_line_hold));
-
- M68000(config, m_cpu3, 10000000);
- m_cpu3->set_addrmap(AS_PROGRAM, &cischeat_state::bigrun_map3);
- m_cpu3->set_vblank_int("screen", FUNC(cischeat_state::irq4_line_hold));
-
- M68000(config, m_soundcpu, 6000000);
- m_soundcpu->set_addrmap(AS_PROGRAM, &cischeat_state::bigrun_sound_map);
- // timing set by the YM irqhandler
-// m_soundcpu->set_periodic_int(FUNC(cischeat_state::irq4_line_hold), attotime::from_hz(16*30));
-
- config.set_maximum_quantum(attotime::from_hz(1200));
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
- m_screen->set_size(256, 256);
- m_screen->set_visarea(0, 256-1, 0+16, 256-16-1);
- m_screen->set_screen_update(FUNC(cischeat_state::screen_update_bigrun));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigrun);
- PALETTE(config, m_palette, palette_device::BLACK).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x4000/2);
- m_palette->enable_shadows();
-
- MEGASYS1_TILEMAP(config, m_tmap[0], m_palette, 0x0e00/2);
- MEGASYS1_TILEMAP(config, m_tmap[1], m_palette, 0x1600/2);
- MEGASYS1_TILEMAP(config, m_tmap[2], m_palette, 0x3600/2);
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- GENERIC_LATCH_16(config, m_soundlatch);
- GENERIC_LATCH_16(config, m_soundlatch2);
-
- // TODO: all sound frequencies unverified (assume same as Mega System 1)
- ym2151_device &ymsnd(YM2151(config, "ymsnd", 7000000/2));
- ymsnd.irq_handler().set(FUNC(cischeat_state::sound_irq));
- ymsnd.add_route(0, "lspeaker", 0.50);
- ymsnd.add_route(1, "rspeaker", 0.50);
-
- OKIM6295(config, m_oki1, 4000000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified
- m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 0.25);
- m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 0.25);
-
- OKIM6295(config, m_oki2, 4000000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified
- m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.25);
- m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.25);
-}
-
-
-void cischeat_state::cischeat(machine_config &config)
-{
- bigrun(config);
-
- /* basic machine hardware */
- m_cpu1->set_addrmap(AS_PROGRAM, &cischeat_state::cischeat_map);
-
- m_cpu2->set_addrmap(AS_PROGRAM, &cischeat_state::cischeat_map2);
-
- m_cpu3->set_addrmap(AS_PROGRAM, &cischeat_state::cischeat_map3);
-
- m_soundcpu->set_addrmap(AS_PROGRAM, &cischeat_state::cischeat_sound_map);
-
- /* video hardware */
- m_screen->set_visarea(0, 256-1, 0+16, 256-16-8-1);
- m_screen->set_screen_update(FUNC(cischeat_state::screen_update_cischeat));
-
- m_gfxdecode->set_info(gfx_cischeat);
- m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 0x8000/2);
-
- m_tmap[0]->set_colorbase(0x1c00/2);
- m_tmap[0]->set_bits_per_color_code(5);
-
- m_tmap[1]->set_colorbase(0x2c00/2);
- m_tmap[1]->set_bits_per_color_code(5);
-
- m_tmap[2]->set_colorbase(0x6c00/2);
- m_tmap[2]->set_bits_per_color_code(5);
-}
-
-
-void cischeat_state::f1gpstar(machine_config &config)
-{
- bigrun(config);
-
- /* basic machine hardware */
- m_cpu1->set_clock(12000000);
- m_cpu1->set_addrmap(AS_PROGRAM, &cischeat_state::f1gpstar_map);
-
- m_cpu2->set_clock(12000000);
- m_cpu2->set_addrmap(AS_PROGRAM, &cischeat_state::f1gpstar_map2);
-
- m_cpu3->set_clock(12000000);
- m_cpu3->set_addrmap(AS_PROGRAM, &cischeat_state::f1gpstar_map3);
-
- m_soundcpu->set_addrmap(AS_PROGRAM, &cischeat_state::f1gpstar_sound_map);
-
- /* video hardware */
- m_gfxdecode->set_info(gfx_f1gpstar);
- m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 0x8000/2);
-
- m_tmap[0]->set_colorbase(0x1e00/2);
-
- m_tmap[1]->set_colorbase(0x2e00/2);
-
- m_tmap[2]->set_colorbase(0x6e00/2);
-
- m_screen->set_screen_update(FUNC(cischeat_state::screen_update_f1gpstar));
-}
-
-
-void cischeat_state::f1gpstr2(machine_config &config)
-{
- f1gpstar(config);
-
- /* basic machine hardware */
-
- m_cpu1->set_addrmap(AS_PROGRAM, &cischeat_state::f1gpstr2_map);
-
- m_soundcpu->set_addrmap(AS_PROGRAM, &cischeat_state::f1gpstr2_sound_map);
-
- M68000(config, m_cpu5, 10000000);
- m_cpu5->set_addrmap(AS_PROGRAM, &cischeat_state::f1gpstr2_io_map);
-
- config.set_maximum_quantum(attotime::from_hz(12000));
-}
-
-
-void wildplt_state::wildplt(machine_config &config)
-{
- f1gpstr2(config);
- m_cpu1->set_addrmap(AS_PROGRAM, &wildplt_state::wildplt_map);
-}
-
-
-/**************************************************************************
- Scud Hammer
-**************************************************************************/
-
-/*
- 1, 5-7] busy loop
- 2] clr.w $fc810.l + rte
- 3] game
- 4] == 3
-*/
-
-TIMER_DEVICE_CALLBACK_MEMBER(cischeat_state::scudhamm_scanline)
-{
- int scanline = param;
-
- if(scanline == 240) // vblank-out irq
- m_maincpu->set_input_line(3, HOLD_LINE);
-
- if(scanline == 120) // timer irq (clears a flag, presumably sprite DMA end)
- m_maincpu->set_input_line(2, HOLD_LINE);
-}
-
-void cischeat_state::scudhamm(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 12000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &cischeat_state::scudhamm_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(cischeat_state::scudhamm_scanline), "screen", 0, 1);
-
- adc0804_device &adc(ADC0804(config, "adc", 640000)); // unknown clock
- adc.vin_callback().set(FUNC(cischeat_state::scudhamm_analog_r));
-
- WATCHDOG_TIMER(config, m_watchdog);
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
- m_screen->set_refresh_hz(30); //TODO: wrong!
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500 * 3) /* not accurate */);
- m_screen->set_size(256, 256);
- m_screen->set_visarea(0, 256-1, 0 +16, 256-1 -16);
- m_screen->set_screen_update(FUNC(cischeat_state::screen_update_scudhamm));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_scudhamm);
- PALETTE(config, m_palette, palette_device::BLACK).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x8000/2);
- m_palette->enable_shadows();
-
- MEGASYS1_TILEMAP(config, m_tmap[0], m_palette, 0x1e00/2);
- MEGASYS1_TILEMAP(config, m_tmap[2], m_palette, 0x4e00/2);
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- OKIM6295(config, m_oki1, 4000000/2, okim6295_device::PIN7_HIGH); // pin 7 not verified
- m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 0.5);
- m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 0.5);
-
- OKIM6295(config, m_oki2, 4000000/2, okim6295_device::PIN7_HIGH); // pin 7 not verified
- m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.5);
- m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.5);
-}
-
-
-/**************************************************************************
- Arm Champs II
-**************************************************************************/
-
-TIMER_DEVICE_CALLBACK_MEMBER(cischeat_state::armchamp2_scanline)
-{
- int scanline = param;
-
- if(scanline == 240) // vblank-out irq
- m_maincpu->set_input_line(2, HOLD_LINE);
-
- if(scanline == 120) // timer irq (TODO: timing)
- m_maincpu->set_input_line(4, HOLD_LINE);
-}
-
-void cischeat_state::armchmp2(machine_config &config)
-{
- scudhamm(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &cischeat_state::armchmp2_map);
- subdevice<timer_device>("scantimer")->set_callback(FUNC(cischeat_state::armchamp2_scanline));
- subdevice<adc0804_device>("adc")->vin_callback().set(FUNC(cischeat_state::armchmp2_analog_r));
-}
-
-
-/**************************************************************************
- Captain Flag
-**************************************************************************/
-
-/*
- 1] no-op
- 2] copy text buffer to tilemap, sound (~50 scanlines at 30Hz)
- 3] I/O, sound (~5 scanlines at 30Hz). Sets a flag to update text buffer and sprites
- 4-7] rte
-*/
-
-TIMER_DEVICE_CALLBACK_MEMBER(captflag_state::captflag_scanline)
-{
- int scanline = param;
-
- if(scanline == 240) // vblank: draw screen
- m_maincpu->set_input_line(2, HOLD_LINE);
-
- if(scanline == 50)
- m_maincpu->set_input_line(3, HOLD_LINE);
-}
-
-void captflag_state::captflag(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(24'000'000) / 2); // TMP68000P-12
- m_maincpu->set_addrmap(AS_PROGRAM, &captflag_state::captflag_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(captflag_state::captflag_scanline), "screen", 0, 1);
-
- TICKET_DISPENSER(config, m_hopper, attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH );
-
- WATCHDOG_TIMER(config, m_watchdog);
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
-// m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
- m_screen->set_refresh_hz(30); //TODO: wrong!
-// m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500 * 3) /* not accurate */);
- m_screen->set_size(256, 256);
- m_screen->set_visarea(0, 256-1, 0 +16, 256-1 -16);
- m_screen->set_screen_update(FUNC(captflag_state::screen_update_scudhamm));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_scudhamm);
- PALETTE(config, m_palette, palette_device::BLACK).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x8000/2);
- m_palette->enable_shadows();
-
- MEGASYS1_TILEMAP(config, m_tmap[0], m_palette, 0x1e00/2);
- MEGASYS1_TILEMAP(config, m_tmap[2], m_palette, 0x4e00/2);
-
- // Motors
- TIMER(config, m_motor_left).configure_generic(nullptr);
- TIMER(config, m_motor_right).configure_generic(nullptr);
-
- // Layout
- config.set_default_layout(layout_captflag);
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- OKIM6295(config, m_oki1, 4000000/2, okim6295_device::PIN7_HIGH); // pin 7 not verified
- m_oki1->set_addrmap(0, &captflag_state::oki1_map);
- m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 0.5);
- m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 0.5);
-
- OKIM6295(config, m_oki2, 4000000/2, okim6295_device::PIN7_HIGH); // pin 7 not verified
- m_oki2->set_addrmap(0, &captflag_state::oki2_map);
- m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.5);
- m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.5);
-}
-
-
-/***************************************************************************
-
-
- ROMs Loading
-
-
-**************************************************************************/
-
-/*
- Sprite data is stored like this:
-
- Sprite 0
- Line 0-15 (left half)
- Line 0-15 (right half)
- Sprite 1
- ..
-
- We need to untangle it
-*/
-void cischeat_state::cischeat_untangle_sprites(const char *region)
-{
- uint8_t *src = memregion(region)->base();
- const uint8_t *end = src + memregion(region)->bytes();
-
- while (src < end)
- {
- uint8_t sprite[16*8];
- int i;
-
- for (i = 0; i < 16 ; i++)
- {
- memcpy(&sprite[i*8+0], &src[i*4+0], 4);
- memcpy(&sprite[i*8+4], &src[i*4+16*4], 4);
- }
- memcpy(src, sprite, 16*8);
- src += 16*8;
- }
-}
-
-
-
-/***************************************************************************
-
- Big Run
-
-Jaleco 1989
-
-BR8950c
--------
-
- 20MHz
- 6264 6264
-68000-10 E1 3 58257 SCPT VCTR 5 6
- E2 4 58257
- 6264 6264
- SCPT VCTR 7 8
-
- 6264 6264
- SCPT VCTR 9
-
-
- PR88004D
- 2088 2088
-
-
- 2018
- PR88004P
-
-
-8951
-------
- 22
- 21 23
- 19 T48 T49 20
-
- 15 T42 T44 16
-
- 7 T41 T43 8
-
-8952A
------
-
- 18 T46 T45 14
-
-68000
-
-
-68000
-
-
- 18 T46 T45 4
-
-
-8953
-----
-
- 68000 YM2151
- D65006C
- BR8953C.1 58257
- BR8953C.2 58257
- 6295 5 T50
- 6295 8 T51
-
-***************************************************************************/
-
-ROM_START( bigrun )
- ROM_REGION( 0x80000, "cpu1", 0 )
- ROM_LOAD16_BYTE( "br8950b.e1", 0x000000, 0x040000, CRC(bfb54a62) SHA1(49f78e162e8bc19a75c62029737acd665b9b124b) )
- ROM_LOAD16_BYTE( "br8950b.e2", 0x000001, 0x040000, CRC(c0483e81) SHA1(e8fd8860191c7d8cb4dda44c69ce05cd58174a07) )
-
- ROM_REGION( 0x40000, "cpu2", 0 )
- ROM_LOAD16_BYTE( "br8952a.19", 0x000000, 0x020000, CRC(fcf6b70c) SHA1(34f7ca29241925251a043c63062596d1c220b730) ) // 1xxxxxxxxxxxxxxxx = 0xFF
- ROM_LOAD16_BYTE( "br8952a.20", 0x000001, 0x020000, CRC(c43d367b) SHA1(86242ba03cd172e95bf42eac369fb3acf42c7c45) ) // 1xxxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x40000, "cpu3", 0 )
- ROM_LOAD16_BYTE( "br8952a.9", 0x000000, 0x020000, CRC(f803f0d9) SHA1(6d2e90e74bb15cd443d901ad0fc827117432daa6) ) // 1xxxxxxxxxxxxxxxx = 0xFF
- ROM_LOAD16_BYTE( "br8952a.10", 0x000001, 0x020000, CRC(8c0df287) SHA1(3a2e689e2d841e2089b18267a8462f1acc40ae99) ) // 1xxxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x40000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "br8953c.2", 0x000000, 0x020000, CRC(b690d8d9) SHA1(317c0b4e9bef30c84daf16765af66f5a6f9d1c54) )
- ROM_LOAD16_BYTE( "br8953c.1", 0x000001, 0x020000, CRC(79fc7bc0) SHA1(edb6cf626f93417cdc9525627d85a0ca9bcd1b1c) )
-
- ROM_REGION16_BE( 0x40000, "user1", 0 ) /* second halves of program ROMs */
- ROM_LOAD16_BYTE( "br8950b.3", 0x000000, 0x020000, CRC(864cebf7) SHA1(4e63106cd5832901688dfce2e450f536a6927c81) )
- ROM_LOAD16_BYTE( "br8950b.4", 0x000001, 0x020000, CRC(702c2a6e) SHA1(cf3327919e24b7206d404b008cb00117e4308f94) )
-
- ROM_REGION( 0x040000, "scroll0", 0 ) // scroll 0
- ROM_LOAD( "br8950b.5", 0x000000, 0x020000, CRC(0530764e) SHA1(0a89eab2ce9bd5df574a46bb6ea884c33407f122) )
- ROM_LOAD( "br8950b.6", 0x020000, 0x020000, CRC(cf40ecfa) SHA1(96e1bfb7a33603a1eaaeb31386bba947fc005060) )
-
- ROM_REGION( 0x040000, "scroll1", 0 ) // scroll 1
- ROM_LOAD( "br8950b.7", 0x000000, 0x020000, CRC(bd5fd061) SHA1(e5e0afb0a3a1d5f7a27bd04b724c48ea65872233) )
- ROM_LOAD( "br8950b.8", 0x020000, 0x020000, CRC(7d66f418) SHA1(f6564ac9d65d40af17f5dd422c435aeb6a385256) )
-
- ROM_REGION( 0x020000, "scroll2", 0 ) // scroll 2
- ROM_LOAD( "br8950b.9", 0x000000, 0x020000, CRC(be0864c4) SHA1(e0f1c0f09b30a731f0e062b1acb1b3a3a772a5cc) )
-
- ROM_REGION( 0x280000, "sprites", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "mr88004a.t41", 0x000000, 0x080000, CRC(c781d8c5) SHA1(52b23842a20443b51490d701dca72fb0a3118033) )
- ROM_LOAD16_BYTE( "mr88004d.t43", 0x000001, 0x080000, CRC(e4041208) SHA1(f5bd21b42f627b01bca2324082aecee7852a37e6) )
- ROM_LOAD16_BYTE( "mr88004b.t42", 0x100000, 0x080000, CRC(2df2e7b9) SHA1(5772e0dc2f842077ea70a558b55ec5ceea693f00) )
- ROM_LOAD16_BYTE( "mr88004e.t44", 0x100001, 0x080000, CRC(7af7fbf6) SHA1(5b8e2d3bb0c9f29f2c96f68c6d4c7fbf63e640c9) )
- ROM_LOAD16_BYTE( "mb88004c.t48", 0x200000, 0x040000, CRC(02e2931d) SHA1(754b38929a2dd10d39634fb9cf737e3175a8b1ec) )
- ROM_LOAD16_BYTE( "mb88004f.t49", 0x200001, 0x040000, CRC(4f012dab) SHA1(35f756b1c7b41f2e81ccbefb2075608a5d663152) )
-
- ROM_REGION( 0x100000, "road0", 0 ) // Road 0
- ROM_LOAD( "mr88004g.t45", 0x000000, 0x080000, CRC(bb397bae) SHA1(c67d33bde6e8de2ea7581faadb96acd977adc13c) )
- ROM_LOAD( "mb88004h.t46", 0x080000, 0x080000, CRC(6b31a1ba) SHA1(71a956f0f51a63bddedfef0febdc95108ed42226) )
-
- ROM_REGION( 0x100000, "road1", 0 ) // Road 1
- ROM_LOAD( "mr88004g.t45", 0x000000, 0x080000, CRC(bb397bae) SHA1(c67d33bde6e8de2ea7581faadb96acd977adc13c) )
- ROM_LOAD( "mb88004h.t46", 0x080000, 0x080000, CRC(6b31a1ba) SHA1(71a956f0f51a63bddedfef0febdc95108ed42226) )
-
- /* t50 & t51: 40000-5ffff = 60000-7ffff */
- ROM_REGION( 0x80000, "oki1", 0 ) /* samples */
- ROM_LOAD( "mb88004l.t50", 0x000000, 0x020000, CRC(6b11fb10) SHA1(eb6e9614bb50b8fc332ada61882da484d34d727f) )
- ROM_CONTINUE( 0x040000, 0x020000 )
- ROM_CONTINUE( 0x020000, 0x020000 )
- ROM_CONTINUE( 0x060000, 0x020000 )
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* samples */
- ROM_LOAD( "mb88004m.t51", 0x000000, 0x020000, CRC(ee52f04d) SHA1(fc45bd1d3a7552433e40846c358573c6988127c3) )
- ROM_CONTINUE( 0x040000, 0x020000 )
- ROM_CONTINUE( 0x020000, 0x020000 )
- ROM_CONTINUE( 0x060000, 0x020000 )
-
- ROM_REGION( 0x20000, "user2", 0 ) /* ? Unused ROMs ? */
- ROM_LOAD( "br8951b.21", 0x000000, 0x020000, CRC(59b9c26b) SHA1(09fea3b77b045d9c1ed62bf53efa8b5242a33a10) ) // x00xxxxxxxxxxxxx, mask=0001e0
- ROM_LOAD( "br8951b.22", 0x000000, 0x020000, CRC(c112a803) SHA1(224a2ed690b78caef266958a93524211ff4a8e70) ) // x00xxxxxxxxxxxxx
- ROM_LOAD( "br8951b.23", 0x000000, 0x010000, CRC(b9474fec) SHA1(f1f0eab014e8f52572484b83f56189e0ff6f2b0d) ) // 000xxxxxxxxxxxxx
-ROM_END
-
-void cischeat_state::init_bigrun()
-{
- cischeat_untangle_sprites("sprites"); // Untangle sprites
- phantasm_rom_decode(machine(), "soundcpu"); // Decrypt sound cpu code
-}
-
-
-/***************************************************************************
-
- Cisco Heat
-
-From "ARCADE ROMS FROM JAPAN (ARFJ)"'s readme:
-
- -BOARD #1 CH-9072 EB90001-20024-
-| [9]r15 [10]r16 | EP: [1]ch9072.01 [2]ch9072.02
-| [11]r17 [12]r18 | [3]ch9072.03
-| [13]r25 [14]r26 |MASK: [9]ch9072.r15 [10]ch9072.r16
-| [15]r19 [16]r20 | [11]ch9072.r17 [12]ch9072.r18
-| [1]01 | [13]ch9072.r25 [14]ch9072.r26
-|[2]02[3]03 | [15]ch9072.r19 [16]ch9072.r20
-|[4] [5] [6] |
-|[7] | ([4][5][6][8]:27cx322 [7]:82S135)
-|[8] |
- --------------------------------
-
-Video Sound
- -BOARD #2 CH-9071 EB90001-20023- X1:12MHz X2:4MHz X3:20MHz X4:7MHz
-|68000 [9] 68000| YM2151x1 OKI M6295 x2 ([8]82S147 [9]:82S185)
-|[1]01 X3 X4 [11]11| EP: [1]ch9071v2.01 "CH-9071 Ver.2 1"
-|[2]02 [10]10| [2]ch9071.02
-|[3]03 | [3]ch9071v2.03 "CH-9071 Ver.2 3"
-|[4]04 X1 X2 [12]r23| [4]ch9071.04
-| [8] YM2151[13]r24| [7]ch9071.07
-|[7]07[5]a14[6]t74 | [10]ch9071.10 [11]ch9071.11
-| |MASK: [5]ch9071.a14 [6]ch9071.t74
- -------------------------------- [12]ch9071.r23 [13]ch9071.r24
-
- -BOARD #3 CH-9073 EB90001-20025-
-| [5]r21 [6]r22 68000|
-| [9] [1]01 [2]02 | EP: [1]ch9073.01 [2]ch9073.02
-| | [3]ch9073v1.03 "CH-9073 Ver.1 3"
-| [7]r21 [8]r22 68000| [4]ch9073v1.04 "CH-9073 Ver.1 4"
-| [3]03 [4]04 |MASK: [5][7]ch9073.r21
-| [10] [11] | [6][8]ch9073.r22
-| | ([9][10][11]:82S129)
- --------------------------------
-
-DIP SW:8BITx2 , 4BITx1
-
-According to KLOV:
-
-Controls: Steering: Wheel - A 'judder' motor is attached to the wheel.
- Pedals: 2 - Both foot controls are simple switches.
-Sound: Amplified Stereo (two channel)
-
-***************************************************************************/
-
-ROM_START( cischeat )
- ROM_REGION( 0x080000, "cpu1", 0 )
- ROM_LOAD16_BYTE( "ch9071v2.03", 0x000000, 0x040000, CRC(dd1bb26f) SHA1(2b9330b45edcc3291ad4ac935558c1f070ab5bd9) )
- ROM_LOAD16_BYTE( "ch9071v2.01", 0x000001, 0x040000, CRC(7b65276a) SHA1(e0075b6d09da12ab7c84b888ffe65cd33ec7c6b6) )
-
- ROM_REGION( 0x80000, "cpu2", 0 )
- ROM_LOAD16_BYTE( "ch9073.01", 0x000000, 0x040000, CRC(ba331526) SHA1(bed5182c0d63a64cc44f9c127d1b8ce55a701184) )
- ROM_LOAD16_BYTE( "ch9073.02", 0x000001, 0x040000, CRC(b45ff10f) SHA1(11fb2d9a3b5cc4f997816e0d3c9cf47bf749db17) )
-
- ROM_REGION( 0x80000, "cpu3", 0 )
- ROM_LOAD16_BYTE( "ch9073v1.03", 0x000000, 0x040000, CRC(bf1d1cbf) SHA1(0892ce5f35864393a6f899f02f811b8fdba03978) )
- ROM_LOAD16_BYTE( "ch9073v1.04", 0x000001, 0x040000, CRC(1ec8a597) SHA1(311d4aa8bd92dd2eea0a64f881f64d19b7ba7d12) )
-
- ROM_REGION( 0x40000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "ch9071.11", 0x000000, 0x020000, CRC(bc137bea) SHA1(ca6d781a617c797aec87e6ce0a002280aa62aebc) )
- ROM_LOAD16_BYTE( "ch9071.10", 0x000001, 0x020000, CRC(bf7b634d) SHA1(29186c41a397df322cc2c40decd1c19963f89d36) )
-
- ROM_REGION16_BE( 0x100000, "user1", 0 ) /* second halves of program ROMs */
- ROM_LOAD16_BYTE( "ch9071.04", 0x000000, 0x040000, CRC(7fb48cbc) SHA1(7f0442ce37b39e830fe8bcb8230cf7da2103059d) ) // cpu #1
- ROM_LOAD16_BYTE( "ch9071.02", 0x000001, 0x040000, CRC(a5d0f4dc) SHA1(2e7aaa915e27ab31e38ca6759301ffe33a12b427) )
- ROM_COPY( "cpu2", 0x40000, 0x80000, 0x40000 )
- ROM_COPY( "cpu3", 0x40000, 0xc0000, 0x40000 )
-
- ROM_REGION( 0x040000, "scroll0", 0 )
- ROM_LOAD( "ch9071.a14", 0x000000, 0x040000, CRC(7a6d147f) SHA1(8f52e012d9699311c2a2409130c6200c6d2e1c51) ) // scroll 0
-
- ROM_REGION( 0x040000, "scroll1", 0 )
- ROM_LOAD( "ch9071.t74", 0x000000, 0x040000, CRC(735a2e25) SHA1(51f528db207283c0d2b70acd5037ffafbe24f6f3) ) // scroll 1
-
- ROM_REGION( 0x010000, "scroll2", 0 )
- ROM_LOAD( "ch9071.07", 0x000000, 0x010000, CRC(3724ccc3) SHA1(3797ea49156362467ba948c51ac7b52610d1b9de) ) // scroll 2
-
- ROM_REGION( 0x400000, "sprites", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "ch9072.r15", 0x000000, 0x080000, CRC(38af4aea) SHA1(ea27ab44b33776984adaa9b26d85165d6700a12c) )
- ROM_LOAD16_BYTE( "ch9072.r16", 0x000001, 0x080000, CRC(71388dad) SHA1(0d2451e36cfbf7400ade849b4c8a1e8f56fc089c) )
- ROM_LOAD16_BYTE( "ch9072.r17", 0x100000, 0x080000, CRC(9d052cf3) SHA1(d6bd30965316104cb03e62a69df61eb60eb84741) )
- ROM_LOAD16_BYTE( "ch9072.r18", 0x100001, 0x080000, CRC(fe402a56) SHA1(c64aa0d83b77ce0fea5072a9332bbcbbd94a1be4) )
- ROM_LOAD16_BYTE( "ch9072.r25", 0x200000, 0x080000, CRC(be8cca47) SHA1(4e64cbbdec9b55721e420b50f0a563684e93f739) )
- ROM_LOAD16_BYTE( "ch9072.r26", 0x200001, 0x080000, CRC(2f96f47b) SHA1(045842428849bc4afb8b59f7f0594b3f537f9e12) )
- ROM_LOAD16_BYTE( "ch9072.r19", 0x300000, 0x080000, CRC(4e996fa8) SHA1(c74d761e0c8d17b3fb5d33b06136c4d0ba87c2e1) )
- ROM_LOAD16_BYTE( "ch9072.r20", 0x300001, 0x080000, CRC(fa70b92d) SHA1(01b5f7309c9c7cd6d41c0f46678772dda45344e1) )
-
- ROM_REGION( 0x100000, "road0", 0 )
- ROM_LOAD( "ch9073.r21", 0x000000, 0x080000, CRC(2943d2f6) SHA1(ae8a25c1d76d3c36aa326d0171acb7dce93c4d87) ) // Road
- ROM_LOAD( "ch9073.r22", 0x080000, 0x080000, CRC(2dd44f85) SHA1(5f20f75e96e14389187d3471bc7f2ceb0758eec4) )
-
- ROM_REGION( 0x100000, "road1", 0 )
- ROM_LOAD( "ch9073.r21", 0x000000, 0x080000, CRC(2943d2f6) SHA1(ae8a25c1d76d3c36aa326d0171acb7dce93c4d87) ) // Road
- ROM_LOAD( "ch9073.r22", 0x080000, 0x080000, CRC(2dd44f85) SHA1(5f20f75e96e14389187d3471bc7f2ceb0758eec4) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* samples */
- ROM_LOAD( "ch9071.r23", 0x000000, 0x080000, CRC(c7dbb992) SHA1(9fa802830947f4e5d41447b2ac9637daf1fd8193) ) // 2 x 0x40000
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* samples */
- ROM_LOAD( "ch9071.r24", 0x000000, 0x080000, CRC(e87ca4d7) SHA1(b2a2edd701324640e438d1e84dd033ec212917b5) ) // 2 x 0x40000 (FIRST AND SECOND HALF IDENTICAL)
-
- ROM_REGION( 0x40000, "user2", 0 ) /* ? Unused ROMs ? */
- ROM_LOAD( "ch9072.01", 0x000000, 0x020000, CRC(b2efed33) SHA1(3b347d4bc866aaa6cb53bd0991b4fb6a22e40a5c) ) // FIXED BITS (xxxxxxxx0xxxxxxx)
- ROM_LOAD( "ch9072.02", 0x000000, 0x040000, CRC(536edde4) SHA1(45ebd2add357275177fcd7b6d9ea748c6756f1c0) )
- ROM_LOAD( "ch9072.03", 0x000000, 0x040000, CRC(7e79151a) SHA1(5a305cff8600446be426641ce112208b379094b9) )
-ROM_END
-
-void cischeat_state::init_cischeat()
-{
- cischeat_untangle_sprites("sprites"); // Untangle sprites
- astyanax_rom_decode(machine(), "soundcpu"); // Decrypt sound cpu code
-}
-
-
-/***************************************************************************
-
- F1 GrandPrix Star
-
-From malcor's readme:
-
-Location Device File ID Checksum PROM Label
------------------------------------------------------------------
-LB IC2 27C010 9188A-1.V10 46C6 GP-9188A 1 Ver1.0
-LB IC27 27C010 9188A-6.V10 DB84 GP-9188A 6 Ver1.0
-LB IC46 27C010 9188A-11.V10 DFEA GP-9188A 11 Ver1.0
-LB IC70 27C010 9188A-16.V10 1034 GP-9188A 16 Ver1.0
-LB IC91 27C020 9188A-21.V10 B510 GP-9188A 21 Ver1.0
-LB IC92 27C020 9188A-22.V20 A9BA GP-9188A 22 Ver2.0
-LB IC124 27C020 9188A-26.V10 AA81 GP-9188A 26 Ver1.0
-LB IC125 27C020 9188A-27.V20 F34D GP-9188A 27 Ver2.0
-LB IC174 23C1000 9188A-30.V10 0AA5 GP-9188A 30 Ver1.0
-TB IC2 27C010 9190A-1.V11 B05A GP-9190A 1 Ver1.1
-TB IC4 27C010 9190A-2.V11 ED7A GP-9190A 2 Ver1.1
-LB IC37 23C4001 90015-01.W06 F10F MR90015-01-W06 *
-LB IC79 23C4001 90015-01.W06 F10F MR90015-01-W06 *
-LB IC38 23C4001 90015-02.W07 F901 MR90015-02-W07 *
-LB IC80 23C4001 90015-02.W07 F901 MR90015-02-W07 *
-LB IC39 23C4001 90015-03.W08 F100 MR90015-03-W08 *
-LB IC81 23C4001 90015-03.W08 F100 MR90015-03-W08 *
-LB IC40 23C4001 90015-04.W09 FA00 MR90015-04-W09 *
-LB IC82 23C4001 90015-04.W09 FA00 MR90015-04-W09 *
-LB IC64 23C4001 90015-05.W10 5FF9 MR90015-05-W10
-LB IC63 23C4001 90015-06.W11 6EDA MR90015-06-W11
-LB IC62 23C4001 90015-07.W12 E9B4 MR90015-07-W12
-LB IC61 23C4001 90015-08.W14 5107 MR90015-08-W14
-LB IC17 23C4001 90015-09.W13 71EE MR90015-09-W13
-LB IC16 23C4001 90015-10.W15 EFEF MR90015-10-W15
-MB IC54 23C4001 90015-20.R45 7890 MR90015-20-R45 *
-MB IC67 23C4001 90015-20.R45 7890 MR90015-20-R45 *
-MB IC1 23C4001 90015-21.R46 C73C MR90015-21-R46
-MB IC2 23C4001 90015-22.R47 5D58 MR90015-22-R47
-MB IC5 23C4001 90015-23.R48 4E7B MR90015-23-R48
-MB IC6 23C4001 90015-24.R49 F6A0 MR90015-24-R49
-MB IC11 23C4001 90015-25.R50 9FC0 MR90015-25-R50
-MB IC12 23C4001 90015-26.R51 13E4 MR90015-26-R51
-MB IC15 23C4001 90015-27.R52 8D5D MR90015-27-R52
-MB IC16 23C4001 90015-28.R53 E0B8 MR90015-28-R53
-MB IC21 23C4001 90015-29.R54 DF33 MR90015-29-R54
-MB IC22 23C4001 90015-30.R55 DA2D MR90015-30-R55
-LB IC123 23C4001 90015-31.R56 BE57 MR90015-31-R56
-LB IC152 23C4001 90015-32.R57 8B57 MR90015-32-R57
-TB IC12 23C4001 90015-33.W31 7C0E MR90015-33-W31
-TB IC11 23C4001 90015-34.W32 B203 MR90015-34-W32
-MB IC39 27CX322 CH9072-4 085F CH9072 4
-MB IC33 27CX322 CH9072-5 641D CH9072 5
-MB IC35 27CX322 CH9072-6 EAE1 CH9072 6
-MB IC59 27CX322 CH9072-8 AB60 CH9072 8
-LB IC105 N82S147 PR88004Q FCFC PR88004Q
-LB IC66 N82S135 PR88004W 20C8 PR88004W
-LB IC117 N82S185 PR90015A 3326 PR90015A
-LB IC153 N82S135 PR90015B 1E52 PR90015B
-
-Notes: TB - Top board (audio & I/O) GP-9190A EB90015-20039-1
- MB - Middle board (GFX) GP-9189 EB90015-20038
- LB - Lower board (CPU/GFX) GP-9188A EB90015-20037-1
-
- * - These ROMs are found twice on the PCB
- - There are two linked boards per cabinet (two player cabinet)
- (attract mode displays across both monitors)
-
-Brief hardware overview:
-------------------------
-
-Main processor - 68000
- - program ROMs: 9188A-22.V20 (odd), 9188A-27.V20 (even) bank 1
- 9188A-21.V10 (odd), 9188A-26.V10 (even) bank 2
- - Processor RAM 2x LH52250AD-90L (32kx8 SRAM)
-
-Slave processor1 - 68000
- - program ROMs: 9188A-11.V10 (odd), 9188A-16.V10 (even)
- - Processor RAM 2x LH5168D-10L (8kx8 SRAM)
- - CS90015-04 (64 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - GS90015-05 (100 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - uses ROMs: 90015-08.W14, 90015-07.W12, 90015-06.W11
- 90015-05.W10, 90015-01.W06, 90015-02.W07
- 90015-03.W08, 90015-04.W09
-
-Slave processor2 - 68000
- - Program ROMs: 9188A-1.V10 (odd), 9188A-6.V10 (even)
- - Processor RAM 2x LH5168D-10L (8kx8 SRAM)
- - CS90015-04 (64 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - GS90015-05 (100 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - uses ROMs: 90015-01.W06, 90015-02.W07, 90015-03.W08
- 90015-10.W15, 90015-09.W13, 90015-04.W09
-
-Sound processor - 68000
- - Program ROMs: 9190A-1.V11 (odd), 9190A-2.V11 (even)
- - Processor RAM 2x LH52250AD-90L (32kx8 SRAM)
- - M6295, uses ROM 90015-34.W32
- - M6295, uses ROM 90015-33.W31
- - YM2151
-
-GFX & Misc - GS90015-02 (100 pin PQFP), uses ROM 90015-31-R56
- GS-9000406 (80 pin PQFP) + 2x LH5168D-10L (8kx8 SRAM)
-
- - GS90015-02 (100 pin PQFP), uses ROM 90015-32-R57
- GS-9000406 (80 pin PQFP) + 2x LH5168D-10L (8kx8 SRAM)
-
- - GS90015-02 (100 pin PQFP), uses ROM 9188A-30-V10
- GS-9000406 (80 pin PQFP) + 2x LH5168D-10L (8kx8 SRAM)
-
- - GS900151 (44 pin PQFP) (too small for the full part No.)
- 3x - GS90015-03 (80 pin PQFP) + 2x LH52258D-45 (32kx8 SRAM)
- 2x - GS90015-06 (100 pin PQFP) + 2x LH52250AD-90L (32kx8 SRAM)
- - GS90015-07 (64 pin PQFP)
- - GS90015-08 (64 pin PQFP)
- - GS90015-09 (64 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - GS90015-10 (64 pin PQFP)
- - GS90015-12 (80 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - GS90015-11 (100 pin PQFP)
- uses ROMs 90015-30-R55, 90015-25-R50, 90015-24-R49
- 90015-29-R54, 90015-23-R48, 90015-22-R47
- 90015-28-R53, 90015-21-R46, 90015-27-R52
- 90015-26-R51
-
-***************************************************************************/
-
-ROM_START( f1gpstar )
- ROM_REGION( 0x100000, "cpu1", 0 )
- ROM_LOAD16_BYTE( "gp9188a27ver4.0.bin", 0x000000, 0x040000, CRC(47224c65) SHA1(1b09fe93b1896cf0706d4914ef956480c1ca231f) )
- ROM_LOAD16_BYTE( "gp9188a22ver4.0.bin", 0x000001, 0x040000, CRC(05ca6410) SHA1(3b8bfd1702c43c398bffda6931e5575110cc5962) )
-
- ROM_REGION( 0x80000, "cpu2", 0 )
- /* Should Use ROMs: 90015-01.W06, 90015-02.W07, 90015-03.W08, 90015-04.W09 */
- ROM_LOAD16_BYTE( "9188a-16.v10", 0x000000, 0x020000, CRC(ef0f7ca9) SHA1(98ad687fdab67dd9f54b50cf21fd10ac34b61e7a) )
- ROM_LOAD16_BYTE( "9188a-11.v10", 0x000001, 0x020000, CRC(de292ea3) SHA1(04ed19045edb4edfff2b8fedac37c4a3352dfa76) )
-
- ROM_REGION( 0x80000, "cpu3", 0 )
- /* Should Use ROMs: 90015-01.W06, 90015-02.W07, 90015-03.W08, 90015-04.W09 */
- ROM_LOAD16_BYTE( "9188a-6.v10", 0x000000, 0x020000, CRC(18ba0340) SHA1(e46e10a350f18cf3a46c0d3a0cb08fc369fced6d) )
- ROM_LOAD16_BYTE( "9188a-1.v10", 0x000001, 0x020000, CRC(109d2913) SHA1(e117556481e801d51b8526a143bc202dda222f7f) )
-
- ROM_REGION( 0x40000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "9190a-2.v11", 0x000000, 0x020000, CRC(acb2fd80) SHA1(bbed505ce745490ae11df8efdd3633181cfd4dec) )
- ROM_LOAD16_BYTE( "9190a-1.v11", 0x000001, 0x020000, CRC(7cccadaf) SHA1(d1b79fbd0e27e8d479ef533fa00b18d1f2982dda) )
-
- ROM_REGION16_BE( 0x80000, "user1", 0 ) /* second halves of program ROMs */
- ROM_LOAD16_BYTE( "9188a-26.v10", 0x000000, 0x040000, CRC(0b76673f) SHA1(cf29333ffb51250ae2d5363d612260f536cd15af) ) // cpu #1
- ROM_LOAD16_BYTE( "9188a-21.v10", 0x000001, 0x040000, CRC(3e098d77) SHA1(0bf7e8ca36086a7ae3d44a10b4ca43f869403eb0) )
-
- ROM_REGION( 0x080000, "scroll0", 0 )
- ROM_LOAD( "90015-31.r56", 0x000000, 0x080000, CRC(0c8f0e2b) SHA1(6b0917a632c6beaca018146b6be66a3561b863b3) ) // scroll 0
-
- ROM_REGION( 0x080000, "scroll1", 0 )
- ROM_LOAD( "90015-32.r57", 0x000000, 0x080000, CRC(9c921cfb) SHA1(006d4af6dbbc34bee05f3620ba0a947a568a2400) ) // scroll 1
-
- ROM_REGION( 0x020000, "scroll2", 0 )
- ROM_LOAD( "9188a-30.v10", 0x000000, 0x020000, CRC(0ef1fbf1) SHA1(28fa0b677e70833954a5fc2fdce233d0dec4f43c) ) // scroll 2
-
- ROM_REGION( 0x500000, "sprites", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "90015-21.r46", 0x000000, 0x080000, CRC(6f30211f) SHA1(aedba39fc6aab7847a3a2314e152bc00615cbd72) )
- ROM_LOAD16_BYTE( "90015-22.r47", 0x000001, 0x080000, CRC(05a9a5da) SHA1(807c43c3ee76bce8e4874fa51d2453917b1e4f3b) )
- ROM_LOAD16_BYTE( "90015-23.r48", 0x100000, 0x080000, CRC(58e9c6d2) SHA1(b81208819dbc5887183855001c72d0d91d32fc4b) )
- ROM_LOAD16_BYTE( "90015-24.r49", 0x100001, 0x080000, CRC(abd6c91d) SHA1(ccbf47a37008a0ec64d7058225e6ba991b559a39) )
- ROM_LOAD16_BYTE( "90015-25.r50", 0x200000, 0x080000, CRC(7ded911f) SHA1(d0083c17266f03f70f2d4b2953237fed0cb0696c) )
- ROM_LOAD16_BYTE( "90015-26.r51", 0x200001, 0x080000, CRC(18a6c663) SHA1(b39cbb4b6d09150c7d1a8cf2cd3a96b61c265d83) )
- ROM_LOAD16_BYTE( "90015-27.r52", 0x300000, 0x080000, CRC(7378c82f) SHA1(3e65064a36393b5d6ecb118a560f3fccc5b3c3c2) )
- ROM_LOAD16_BYTE( "90015-28.r53", 0x300001, 0x080000, CRC(9944dacd) SHA1(722a0c152ef97830d5ab6251d5447293d951261f) )
- ROM_LOAD16_BYTE( "90015-29.r54", 0x400000, 0x080000, CRC(2cdec370) SHA1(9fd8e8d6783a6c820d1f580a8872b5cc59641aa9) )
- ROM_LOAD16_BYTE( "90015-30.r55", 0x400001, 0x080000, CRC(47e37604) SHA1(114eb01d3258bf481c01a8378f5f08b2bdeffbba) )
-
- ROM_REGION( 0x200000, "road0", 0 )
- ROM_LOAD( "90015-05.w10", 0x000000, 0x080000, CRC(8eb48a23) SHA1(e394eb013dd1fdc1c30616ce356bebd187453d08) ) // Road 0
- ROM_LOAD( "90015-06.w11", 0x080000, 0x080000, CRC(32063a68) SHA1(587d35edec2755df11f4d63ff7bfd134a0f9fb36) )
- ROM_LOAD( "90015-07.w12", 0x100000, 0x080000, CRC(0d0d54f3) SHA1(8040945ea8f9487f0527140c90d6a66965c27ff4) )
- ROM_LOAD( "90015-08.w14", 0x180000, 0x080000, CRC(f48a42c5) SHA1(5caf50fbde682d7d1e4ec0cceacf0db7682b72a9) )
-
- ROM_REGION( 0x100000, "road1", 0 )
- ROM_LOAD( "90015-09.w13", 0x000000, 0x080000, CRC(55f49315) SHA1(ad338cb53149ccea2dbe5ad890433c9f09a8211c) ) // Road 1
- ROM_LOAD( "90015-10.w15", 0x080000, 0x080000, CRC(678be0cb) SHA1(3857b549170b62b29644cf5ebdd4aac1afa9e420) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* samples */
- ROM_LOAD( "90015-34.w32", 0x000000, 0x080000, CRC(2ca9b062) SHA1(c01b8020b409d826c0ae69c153fdc5d89241771e) ) // 2 x 0x40000
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* samples */
- ROM_LOAD( "90015-33.w31", 0x000000, 0x080000, CRC(6121d247) SHA1(213c7c45bc3d57c09778b1d58dbb5fe26d0b2477) ) // 2 x 0x40000
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
-// "I know that one of the ROM images in the archive looks bad (90015-04.W09)
-// however, it is good as far as I can tell. There were two of those ROMs
-// (soldered) onto the board and I checked them both against each other. "
-
- ROM_LOAD( "90015-04.w09", 0x000000, 0x080000, CRC(5b324c81) SHA1(ce61f2ea29086a74bdcf9f4df8e2edb749e41da5) ) // x 2 xxxxxxxxx0xxxxxxxxx = 0x00
- ROM_LOAD( "90015-03.w08", 0x000000, 0x080000, CRC(ccf5b158) SHA1(06250762646e0da1fb71fd7b638492eaab3f5b7f) ) // x 2 FIXED BITS (000x000x)
- ROM_LOAD( "90015-02.w07", 0x000000, 0x080000, CRC(fcbecc9b) SHA1(0670c276730ee282ef8c9599c00571b8d97725ab) ) // x 2
- ROM_LOAD( "90015-01.w06", 0x000000, 0x080000, CRC(ce4bfe6e) SHA1(d428eb3d5da3bd080957c585c5b72b94a7849fca) ) // x 2 FIXED BITS (000x000x)
-
- ROM_LOAD( "90015-20.r45", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) ) // x 2
-
- ROM_LOAD( "ch9072-4", 0x000000, 0x001000, CRC(5bc23535) SHA1(2fd1b7184175c416b19e6570de7ecb0d897deb9a) ) // FIXED BITS (0000000x)
- ROM_LOAD( "ch9072-5", 0x000000, 0x001000, CRC(0efac5b4) SHA1(a3e945aaf142bb62e0e791b8ca49a34891f31077) ) // FIXED BITS (xxxx0xxx)
- ROM_LOAD( "ch9072-6", 0x000000, 0x001000, CRC(76ff63c5) SHA1(652754533cc14773f4d7590a65183349eed9eb62) )
- ROM_LOAD( "ch9072-8", 0x000000, 0x001000, CRC(ca04bace) SHA1(3771ef4bf7983e97e3346309fcb0271e17a6d359) ) // FIXED BITS (0xxx0xxx)
-
- ROM_LOAD( "pr88004q", 0x000000, 0x000200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) ) // FIXED BITS (1xxxxxxx1111x1xx)
- ROM_LOAD( "pr88004w", 0x000000, 0x000100, CRC(3d648467) SHA1(bf8dbaa2176c801f7370313425c87f0eefe8a3a4) ) // FIXED BITS (00xxxxxx)
-
- ROM_LOAD( "pr90015a", 0x000000, 0x000800, CRC(777583db) SHA1(8fd060a68fbb6156feb55afcfc5afd95999a8a62) ) // FIXED BITS (00000xxx0000xxxx)
- ROM_LOAD( "pr90015b", 0x000000, 0x000100, CRC(be240dac) SHA1(6203b73c1a5e09e525380a78b555c3818929d5eb) ) // FIXED BITS (000xxxxx000xxxx1)
-ROM_END
-
-ROM_START( f1gpstar3 )
- ROM_REGION( 0x100000, "cpu1", 0 )
- ROM_LOAD16_BYTE( "gp9188a27ver3.0.ic125", 0x000000, 0x040000, CRC(e3ab0085) SHA1(c2de842f427d5e982a42467ca7354b728f63bf88) )
- ROM_LOAD16_BYTE( "gp9188a22ver3.0.ic92", 0x000001, 0x040000, CRC(7022061b) SHA1(241261f79072f09dbc325185e8e5b039c592a491) )
-
- ROM_REGION( 0x80000, "cpu2", 0 )
- /* Should Use ROMs: 90015-01.W06, 90015-02.W07, 90015-03.W08, 90015-04.W09 */
- ROM_LOAD16_BYTE( "9188a-16.v10", 0x000000, 0x020000, CRC(ef0f7ca9) SHA1(98ad687fdab67dd9f54b50cf21fd10ac34b61e7a) )
- ROM_LOAD16_BYTE( "9188a-11.v10", 0x000001, 0x020000, CRC(de292ea3) SHA1(04ed19045edb4edfff2b8fedac37c4a3352dfa76) )
-
- ROM_REGION( 0x80000, "cpu3", 0 )
- /* Should Use ROMs: 90015-01.W06, 90015-02.W07, 90015-03.W08, 90015-04.W09 */
- ROM_LOAD16_BYTE( "9188a-6.v10", 0x000000, 0x020000, CRC(18ba0340) SHA1(e46e10a350f18cf3a46c0d3a0cb08fc369fced6d) )
- ROM_LOAD16_BYTE( "9188a-1.v10", 0x000001, 0x020000, CRC(109d2913) SHA1(e117556481e801d51b8526a143bc202dda222f7f) )
-
- ROM_REGION( 0x40000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "9190a-2.v11", 0x000000, 0x020000, CRC(acb2fd80) SHA1(bbed505ce745490ae11df8efdd3633181cfd4dec) )
- ROM_LOAD16_BYTE( "9190a-1.v11", 0x000001, 0x020000, CRC(7cccadaf) SHA1(d1b79fbd0e27e8d479ef533fa00b18d1f2982dda) )
-
- ROM_REGION16_BE( 0x80000, "user1", 0 ) /* second halves of program ROMs */
- ROM_LOAD16_BYTE( "9188a-26.v10", 0x000000, 0x040000, CRC(0b76673f) SHA1(cf29333ffb51250ae2d5363d612260f536cd15af) ) // cpu #1
- ROM_LOAD16_BYTE( "9188a-21.v10", 0x000001, 0x040000, CRC(3e098d77) SHA1(0bf7e8ca36086a7ae3d44a10b4ca43f869403eb0) )
-
- ROM_REGION( 0x080000, "scroll0", 0 )
- ROM_LOAD( "90015-31.r56", 0x000000, 0x080000, CRC(0c8f0e2b) SHA1(6b0917a632c6beaca018146b6be66a3561b863b3) ) // scroll 0
-
- ROM_REGION( 0x080000, "scroll1", 0 )
- ROM_LOAD( "90015-32.r57", 0x000000, 0x080000, CRC(9c921cfb) SHA1(006d4af6dbbc34bee05f3620ba0a947a568a2400) ) // scroll 1
-
- ROM_REGION( 0x020000, "scroll2", 0 )
- ROM_LOAD( "9188a-30.v10", 0x000000, 0x020000, CRC(0ef1fbf1) SHA1(28fa0b677e70833954a5fc2fdce233d0dec4f43c) ) // scroll 2
-
- ROM_REGION( 0x500000, "sprites", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "90015-21.r46", 0x000000, 0x080000, CRC(6f30211f) SHA1(aedba39fc6aab7847a3a2314e152bc00615cbd72) )
- ROM_LOAD16_BYTE( "90015-22.r47", 0x000001, 0x080000, CRC(05a9a5da) SHA1(807c43c3ee76bce8e4874fa51d2453917b1e4f3b) )
- ROM_LOAD16_BYTE( "90015-23.r48", 0x100000, 0x080000, CRC(58e9c6d2) SHA1(b81208819dbc5887183855001c72d0d91d32fc4b) )
- ROM_LOAD16_BYTE( "90015-24.r49", 0x100001, 0x080000, CRC(abd6c91d) SHA1(ccbf47a37008a0ec64d7058225e6ba991b559a39) )
- ROM_LOAD16_BYTE( "90015-25.r50", 0x200000, 0x080000, CRC(7ded911f) SHA1(d0083c17266f03f70f2d4b2953237fed0cb0696c) )
- ROM_LOAD16_BYTE( "90015-26.r51", 0x200001, 0x080000, CRC(18a6c663) SHA1(b39cbb4b6d09150c7d1a8cf2cd3a96b61c265d83) )
- ROM_LOAD16_BYTE( "90015-27.r52", 0x300000, 0x080000, CRC(7378c82f) SHA1(3e65064a36393b5d6ecb118a560f3fccc5b3c3c2) )
- ROM_LOAD16_BYTE( "90015-28.r53", 0x300001, 0x080000, CRC(9944dacd) SHA1(722a0c152ef97830d5ab6251d5447293d951261f) )
- ROM_LOAD16_BYTE( "90015-29.r54", 0x400000, 0x080000, CRC(2cdec370) SHA1(9fd8e8d6783a6c820d1f580a8872b5cc59641aa9) )
- ROM_LOAD16_BYTE( "90015-30.r55", 0x400001, 0x080000, CRC(47e37604) SHA1(114eb01d3258bf481c01a8378f5f08b2bdeffbba) )
-
- ROM_REGION( 0x200000, "road0", 0 )
- ROM_LOAD( "90015-05.w10", 0x000000, 0x080000, CRC(8eb48a23) SHA1(e394eb013dd1fdc1c30616ce356bebd187453d08) ) // Road 0
- ROM_LOAD( "90015-06.w11", 0x080000, 0x080000, CRC(32063a68) SHA1(587d35edec2755df11f4d63ff7bfd134a0f9fb36) )
- ROM_LOAD( "90015-07.w12", 0x100000, 0x080000, CRC(0d0d54f3) SHA1(8040945ea8f9487f0527140c90d6a66965c27ff4) )
- ROM_LOAD( "90015-08.w14", 0x180000, 0x080000, CRC(f48a42c5) SHA1(5caf50fbde682d7d1e4ec0cceacf0db7682b72a9) )
-
- ROM_REGION( 0x100000, "road1", 0 )
- ROM_LOAD( "90015-09.w13", 0x000000, 0x080000, CRC(55f49315) SHA1(ad338cb53149ccea2dbe5ad890433c9f09a8211c) ) // Road 1
- ROM_LOAD( "90015-10.w15", 0x080000, 0x080000, CRC(678be0cb) SHA1(3857b549170b62b29644cf5ebdd4aac1afa9e420) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* samples */
- ROM_LOAD( "90015-34.w32", 0x000000, 0x080000, CRC(2ca9b062) SHA1(c01b8020b409d826c0ae69c153fdc5d89241771e) ) // 2 x 0x40000
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* samples */
- ROM_LOAD( "90015-33.w31", 0x000000, 0x080000, CRC(6121d247) SHA1(213c7c45bc3d57c09778b1d58dbb5fe26d0b2477) ) // 2 x 0x40000
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
-// "I know that one of the ROM images in the archive looks bad (90015-04.W09)
-// however, it is good as far as I can tell. There were two of those ROMs
-// (soldered) onto the board and I checked them both against each other. "
-
- ROM_LOAD( "90015-04.w09", 0x000000, 0x080000, CRC(5b324c81) SHA1(ce61f2ea29086a74bdcf9f4df8e2edb749e41da5) ) // x 2 xxxxxxxxx0xxxxxxxxx = 0x00
- ROM_LOAD( "90015-03.w08", 0x000000, 0x080000, CRC(ccf5b158) SHA1(06250762646e0da1fb71fd7b638492eaab3f5b7f) ) // x 2 FIXED BITS (000x000x)
- ROM_LOAD( "90015-02.w07", 0x000000, 0x080000, CRC(fcbecc9b) SHA1(0670c276730ee282ef8c9599c00571b8d97725ab) ) // x 2
- ROM_LOAD( "90015-01.w06", 0x000000, 0x080000, CRC(ce4bfe6e) SHA1(d428eb3d5da3bd080957c585c5b72b94a7849fca) ) // x 2 FIXED BITS (000x000x)
-
- ROM_LOAD( "90015-20.r45", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) ) // x 2
-
- ROM_LOAD( "ch9072-4", 0x000000, 0x001000, CRC(5bc23535) SHA1(2fd1b7184175c416b19e6570de7ecb0d897deb9a) ) // FIXED BITS (0000000x)
- ROM_LOAD( "ch9072-5", 0x000000, 0x001000, CRC(0efac5b4) SHA1(a3e945aaf142bb62e0e791b8ca49a34891f31077) ) // FIXED BITS (xxxx0xxx)
- ROM_LOAD( "ch9072-6", 0x000000, 0x001000, CRC(76ff63c5) SHA1(652754533cc14773f4d7590a65183349eed9eb62) )
- ROM_LOAD( "ch9072-8", 0x000000, 0x001000, CRC(ca04bace) SHA1(3771ef4bf7983e97e3346309fcb0271e17a6d359) ) // FIXED BITS (0xxx0xxx)
-
- ROM_LOAD( "pr88004q", 0x000000, 0x000200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) ) // FIXED BITS (1xxxxxxx1111x1xx)
- ROM_LOAD( "pr88004w", 0x000000, 0x000100, CRC(3d648467) SHA1(bf8dbaa2176c801f7370313425c87f0eefe8a3a4) ) // FIXED BITS (00xxxxxx)
-
- ROM_LOAD( "pr90015a", 0x000000, 0x000800, CRC(777583db) SHA1(8fd060a68fbb6156feb55afcfc5afd95999a8a62) ) // FIXED BITS (00000xxx0000xxxx)
- ROM_LOAD( "pr90015b", 0x000000, 0x000100, CRC(be240dac) SHA1(6203b73c1a5e09e525380a78b555c3818929d5eb) ) // FIXED BITS (000xxxxx000xxxx1)
-ROM_END
-
-ROM_START( f1gpstar2 )
- ROM_REGION( 0x100000, "cpu1", 0 )
- ROM_LOAD16_BYTE( "9188a-27.v20", 0x000000, 0x040000, CRC(0a9d3896) SHA1(5e3332a1b779dead1e4f9ef274a2f168721db0ed) )
- ROM_LOAD16_BYTE( "9188a-22.v20", 0x000001, 0x040000, CRC(de15c9ca) SHA1(f356b02ca66b7e8ab0293e6e28fcd3f7996c80c8) )
-
- ROM_REGION( 0x80000, "cpu2", 0 )
- /* Should Use ROMs: 90015-01.W06, 90015-02.W07, 90015-03.W08, 90015-04.W09 */
- ROM_LOAD16_BYTE( "9188a-16.v10", 0x000000, 0x020000, CRC(ef0f7ca9) SHA1(98ad687fdab67dd9f54b50cf21fd10ac34b61e7a) )
- ROM_LOAD16_BYTE( "9188a-11.v10", 0x000001, 0x020000, CRC(de292ea3) SHA1(04ed19045edb4edfff2b8fedac37c4a3352dfa76) )
-
- ROM_REGION( 0x80000, "cpu3", 0 )
- /* Should Use ROMs: 90015-01.W06, 90015-02.W07, 90015-03.W08, 90015-04.W09 */
- ROM_LOAD16_BYTE( "9188a-6.v10", 0x000000, 0x020000, CRC(18ba0340) SHA1(e46e10a350f18cf3a46c0d3a0cb08fc369fced6d) )
- ROM_LOAD16_BYTE( "9188a-1.v10", 0x000001, 0x020000, CRC(109d2913) SHA1(e117556481e801d51b8526a143bc202dda222f7f) )
-
- ROM_REGION( 0x40000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "9190a-2.v11", 0x000000, 0x020000, CRC(acb2fd80) SHA1(bbed505ce745490ae11df8efdd3633181cfd4dec) )
- ROM_LOAD16_BYTE( "9190a-1.v11", 0x000001, 0x020000, CRC(7cccadaf) SHA1(d1b79fbd0e27e8d479ef533fa00b18d1f2982dda) )
-
- ROM_REGION16_BE( 0x80000, "user1", 0 ) /* second halves of program ROMs */
- ROM_LOAD16_BYTE( "9188a-26.v10", 0x000000, 0x040000, CRC(0b76673f) SHA1(cf29333ffb51250ae2d5363d612260f536cd15af) ) // cpu #1
- ROM_LOAD16_BYTE( "9188a-21.v10", 0x000001, 0x040000, CRC(3e098d77) SHA1(0bf7e8ca36086a7ae3d44a10b4ca43f869403eb0) )
-
- ROM_REGION( 0x080000, "scroll0", 0 )
- ROM_LOAD( "90015-31.r56", 0x000000, 0x080000, CRC(0c8f0e2b) SHA1(6b0917a632c6beaca018146b6be66a3561b863b3) ) // scroll 0
-
- ROM_REGION( 0x080000, "scroll1", 0 )
- ROM_LOAD( "90015-32.r57", 0x000000, 0x080000, CRC(9c921cfb) SHA1(006d4af6dbbc34bee05f3620ba0a947a568a2400) ) // scroll 1
-
- ROM_REGION( 0x020000, "scroll2", 0 )
- ROM_LOAD( "9188a-30.v10", 0x000000, 0x020000, CRC(0ef1fbf1) SHA1(28fa0b677e70833954a5fc2fdce233d0dec4f43c) ) // scroll 2
-
- ROM_REGION( 0x500000, "sprites", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "90015-21.r46", 0x000000, 0x080000, CRC(6f30211f) SHA1(aedba39fc6aab7847a3a2314e152bc00615cbd72) )
- ROM_LOAD16_BYTE( "90015-22.r47", 0x000001, 0x080000, CRC(05a9a5da) SHA1(807c43c3ee76bce8e4874fa51d2453917b1e4f3b) )
- ROM_LOAD16_BYTE( "90015-23.r48", 0x100000, 0x080000, CRC(58e9c6d2) SHA1(b81208819dbc5887183855001c72d0d91d32fc4b) )
- ROM_LOAD16_BYTE( "90015-24.r49", 0x100001, 0x080000, CRC(abd6c91d) SHA1(ccbf47a37008a0ec64d7058225e6ba991b559a39) )
- ROM_LOAD16_BYTE( "90015-25.r50", 0x200000, 0x080000, CRC(7ded911f) SHA1(d0083c17266f03f70f2d4b2953237fed0cb0696c) )
- ROM_LOAD16_BYTE( "90015-26.r51", 0x200001, 0x080000, CRC(18a6c663) SHA1(b39cbb4b6d09150c7d1a8cf2cd3a96b61c265d83) )
- ROM_LOAD16_BYTE( "90015-27.r52", 0x300000, 0x080000, CRC(7378c82f) SHA1(3e65064a36393b5d6ecb118a560f3fccc5b3c3c2) )
- ROM_LOAD16_BYTE( "90015-28.r53", 0x300001, 0x080000, CRC(9944dacd) SHA1(722a0c152ef97830d5ab6251d5447293d951261f) )
- ROM_LOAD16_BYTE( "90015-29.r54", 0x400000, 0x080000, CRC(2cdec370) SHA1(9fd8e8d6783a6c820d1f580a8872b5cc59641aa9) )
- ROM_LOAD16_BYTE( "90015-30.r55", 0x400001, 0x080000, CRC(47e37604) SHA1(114eb01d3258bf481c01a8378f5f08b2bdeffbba) )
-
- ROM_REGION( 0x200000, "road0", 0 )
- ROM_LOAD( "90015-05.w10", 0x000000, 0x080000, CRC(8eb48a23) SHA1(e394eb013dd1fdc1c30616ce356bebd187453d08) ) // Road 0
- ROM_LOAD( "90015-06.w11", 0x080000, 0x080000, CRC(32063a68) SHA1(587d35edec2755df11f4d63ff7bfd134a0f9fb36) )
- ROM_LOAD( "90015-07.w12", 0x100000, 0x080000, CRC(0d0d54f3) SHA1(8040945ea8f9487f0527140c90d6a66965c27ff4) )
- ROM_LOAD( "90015-08.w14", 0x180000, 0x080000, CRC(f48a42c5) SHA1(5caf50fbde682d7d1e4ec0cceacf0db7682b72a9) )
-
- ROM_REGION( 0x100000, "road1", 0 )
- ROM_LOAD( "90015-09.w13", 0x000000, 0x080000, CRC(55f49315) SHA1(ad338cb53149ccea2dbe5ad890433c9f09a8211c) ) // Road 1
- ROM_LOAD( "90015-10.w15", 0x080000, 0x080000, CRC(678be0cb) SHA1(3857b549170b62b29644cf5ebdd4aac1afa9e420) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* samples */
- ROM_LOAD( "90015-34.w32", 0x000000, 0x080000, CRC(2ca9b062) SHA1(c01b8020b409d826c0ae69c153fdc5d89241771e) ) // 2 x 0x40000
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* samples */
- ROM_LOAD( "90015-33.w31", 0x000000, 0x080000, CRC(6121d247) SHA1(213c7c45bc3d57c09778b1d58dbb5fe26d0b2477) ) // 2 x 0x40000
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
-// "I know that one of the ROM images in the archive looks bad (90015-04.W09)
-// however, it is good as far as I can tell. There were two of those ROMs
-// (soldered) onto the board and I checked them both against each other. "
-
- ROM_LOAD( "90015-04.w09", 0x000000, 0x080000, CRC(5b324c81) SHA1(ce61f2ea29086a74bdcf9f4df8e2edb749e41da5) ) // x 2 xxxxxxxxx0xxxxxxxxx = 0x00
- ROM_LOAD( "90015-03.w08", 0x000000, 0x080000, CRC(ccf5b158) SHA1(06250762646e0da1fb71fd7b638492eaab3f5b7f) ) // x 2 FIXED BITS (000x000x)
- ROM_LOAD( "90015-02.w07", 0x000000, 0x080000, CRC(fcbecc9b) SHA1(0670c276730ee282ef8c9599c00571b8d97725ab) ) // x 2
- ROM_LOAD( "90015-01.w06", 0x000000, 0x080000, CRC(ce4bfe6e) SHA1(d428eb3d5da3bd080957c585c5b72b94a7849fca) ) // x 2 FIXED BITS (000x000x)
-
- ROM_LOAD( "90015-20.r45", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) ) // x 2
-
- ROM_LOAD( "ch9072-4", 0x000000, 0x001000, CRC(5bc23535) SHA1(2fd1b7184175c416b19e6570de7ecb0d897deb9a) ) // FIXED BITS (0000000x)
- ROM_LOAD( "ch9072-5", 0x000000, 0x001000, CRC(0efac5b4) SHA1(a3e945aaf142bb62e0e791b8ca49a34891f31077) ) // FIXED BITS (xxxx0xxx)
- ROM_LOAD( "ch9072-6", 0x000000, 0x001000, CRC(76ff63c5) SHA1(652754533cc14773f4d7590a65183349eed9eb62) )
- ROM_LOAD( "ch9072-8", 0x000000, 0x001000, CRC(ca04bace) SHA1(3771ef4bf7983e97e3346309fcb0271e17a6d359) ) // FIXED BITS (0xxx0xxx)
-
- ROM_LOAD( "pr88004q", 0x000000, 0x000200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) ) // FIXED BITS (1xxxxxxx1111x1xx)
- ROM_LOAD( "pr88004w", 0x000000, 0x000100, CRC(3d648467) SHA1(bf8dbaa2176c801f7370313425c87f0eefe8a3a4) ) // FIXED BITS (00xxxxxx)
-
- ROM_LOAD( "pr90015a", 0x000000, 0x000800, CRC(777583db) SHA1(8fd060a68fbb6156feb55afcfc5afd95999a8a62) ) // FIXED BITS (00000xxx0000xxxx)
- ROM_LOAD( "pr90015b", 0x000000, 0x000100, CRC(be240dac) SHA1(6203b73c1a5e09e525380a78b555c3818929d5eb) ) // FIXED BITS (000xxxxx000xxxx1)
-ROM_END
-
-void cischeat_state::init_f1gpstar()
-{
- cischeat_untangle_sprites("sprites");
-}
-
-
-/***************************************************************************
-
- Wild Pilot
-
-
-Location Device File ID Checksum
--------------------------------------------------------
-LB IC124 27C020 GP-9188A_21_Ver1-0.bin 765B [ CPU A PROG 1 ]
-LB IC91 27C020 GP-9188A_26_Ver1-0.bin 5614 [ CPU A PROG 1 ]
-LB IC92 27C020 GP-9188A_22_Ver1-4.bin 1907 [ CPU A PROG 2 ]
-LB IC125 27C020 GP-9188A_27_Ver1-4.bin A118 [ CPU A PROG 2 ]
-LB IC46 27C010 GP-9188A_11_Ver1-0.bin D98A [ CPU B PROG ]
-LB IC70 27C010 GP-9188A_16_Ver1-0.bin 41E6 [ CPU B PROG ]
-LB IC2 27C010 GP-9188A_01_Ver1-0.bin D714 [ CPU C PROG ]
-LB IC27 27C010 GP-9188A_06_Ver1-0.bin 3937 [ CPU C PROG ]
-LB IC23 27C4001 GP-9188A_25_Ver1-0.bin 90BE
-LB IC152 27C4001 GP-9188A_28_Ver1-0.bin 6BBC
-LB IC174 27C1001 GP-9188A_30_Ver1-0.bin 1740
-LB IC14 27C4001 MR92020-01_C46.bin E83D
-LB IC15 27C4001 MR92020-02_C53.bin 064F
-LB IC16 27C4001 MR92020-03_C52.bin B77C
-LB IC17 27C4001 MR92020-04_C47.bin D768
-LB IC61 27C4001 MR92020-05_C48.bin 7858
-LB IC62 27C4001 MR92020-06_C51.bin 8B52
-LB IC63 27C4001 MR92020-07_C49.bin B2B6
-LB IC64 27C4001 MR92020-08_C50.bin 37B7
-LB IC37 27C4001 MR90015-01_w06.bin F10F *
-LB IC38 27C4001 MR90015-02_w07.bin F901 *
-LB IC39 27C4001 MR90015-03_w08.bin F100 *
-LB IC40 27C4001 MR90015-04_w09.bin FA00 *
-LB IC79 27C4001 MR90015-01_w06.bin F10F *
-LB IC80 27C4001 MR90015-02_w07.bin F901 *
-LB IC81 27C4001 MR90015-03_w08.bin F100 *
-LB IC82 27C4001 MR90015-04_w09.bin FA00 *
-MB IC1 27C4001 MR92020-11_W65.bin 80F8
-MB IC2 27C4001 MR92020-12_W66.bin 2775
-MB IC5 27C4001 MR92020-13_W67.bin 00D3
-MB IC6 27C4001 MR92020-14_W68.bin 5645
-MB IC11 27C4001 MR92020-15_W69.bin F0BD
-MB IC12 27C4001 MR92020-16_W70.bin 9F01
-MB IC15 27C040 GP-9189_07_Ver1-0.bin 909A
-MB IC16 27C040 GP-9189_08_Ver1-0.bin 2FBE
-MB IC21 27C040 GP-9189_09_Ver1-0.bin A33A
-MB IC22 27C040 GP-9189_10_Ver1-0.bin CE2E
-MB IC54 27C4001 MR90015-35_W33.bin 7890 *
-MB IC67 27C4001 MR90015-35_W33.bin 7890 *
-TB IC4 27C4001 WP-92116_1_Ver1-0.bin 7485 [ CPU D SND ]
-TB IC18 27C4001 WP-92116_2_Ver1-0.bin 599D [ CPU D SND ]
-TB IC37 27C010 WP-92116_3_Ver1-1.bin 506F [ CPU D PROG ]
-TB IC38 27C010 WP-92116_4_Ver1-1.bin F032 [ CPU D PROG ]
-TB IC116 27C010 WP-92116_5_Ver1-0.bin A8E2 [ CPU E PROG ]
-TB IC117 27C010 WP-92116_6_Ver1-0.bin 253D [ CPU E PROG ]
-MB IC39 27CX642 CH9072-4.bin 10BE #
-MB IC33 27CX642 CH9072-5.bin C83A #
-MB IC35 27CX642 CH9072-6.bin D5C2 #
-MB IC59 27CX642 CH9072-8.bin 56C0 #
-LB IC105 N82S147 PR88004Q.bin FCFC
-MB IC66 N82S135 PR88004W.bin 20C8
-LB IC117 N82S185 PR90015A.bin 3326
-LB IC153 N82S135 PR90015B.bin 1E52
-
-
-Notes: TB - Top board (audio & I/O) WP-92116 EB92020-20053
- MB - Middle board (GFX) GP-9189 EB90015-20038
- LB - Lower board (CPU/GFX) GP-9188A EB90015-20037-1
-
- * - These ROMs are found twice on the PCB
- # - Device is larger than it needs to be. A 27CX322 could be substituted.
-
-Brief hardware overview:
-------------------------
-
-Main processor(A) - 68000
- - program ROMs: GP-9188A_21_Ver1-0.bin & GP-9188A_26_Ver1-0.bin
- GP-9188A_22_Ver1-4.bin & GP-9188A_27_Ver1-4.bin
- - Processor RAM 2x LH52250AD-90L (32kx8 SRAM)
-
-Slave processor(B) - 68000
- - program ROMs: GP-9188A_11_Ver1-0.bin & , GP-9188A_16_Ver1-0.bin
- - Processor RAM 2x LH5168D-10L (8kx8 SRAM)
- - CS90015-04 (64 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - GS90015-05 (100 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
-
-Slave processor(C) - 68000
- - Program ROMs: GP-9188A_01_Ver1-0.bin & GP-9188A_06_Ver1-0.bin
- - Processor RAM 2x LH5168D-10L (8kx8 SRAM)
- - CS90015-04 (64 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - GS90015-05 (100 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
-
-Sound processor(D) - 68000
- - Program ROMs: WP-92116_3_Ver1-1.bin & WP-92116_4_Ver1-1.bin
- - Processor RAM 2x LH52256ALSP-10 (32kx8 SRAM)
- - M6295, uses ROM WP-92116_1_Ver1-0.bin
- - M6295, uses ROM WP-92116_2_Ver1-0.bin
- - YM2151
- - YM3012
-
-I/O Processor(E) - 68000
- - Program ROMs: WP-92116_5_Ver1-0.bin & WP-92116_6_Ver1-0.bin
- - Processor RAM 2x LH5168D-10L (8kx8 SRAM)
- - GS90015-03 (80 PIN PQFP) + 2X 6116 SRAM
-
-GFX & Misc - GS90015-02 (100 pin PQFP)
- GS-9000406 (80 pin PQFP) + 2x LH5168D-10L (8kx8 SRAM)
-
- - GS90015-02 (100 pin PQFP)
- GS-9000406 (80 pin PQFP) + 2x LH5168D-10L (8kx8 SRAM)
-
- - GS90015-02 (100 pin PQFP)
- GS-9000406 (80 pin PQFP) + 2x LH5168D-10L (8kx8 SRAM)
-
- - GS900151 (44 pin PQFP) (too small for the full part No.)
- 3x - GS90015-03 (80 pin PQFP) + 2x LH52258D-45 (32kx8 SRAM)
- 2x - GS90015-06 (100 pin PQFP) + 2x LH52250AD-90L (32kx8 SRAM)
- - GS90015-07 (64 pin PQFP)
- - GS90015-08 (64 pin PQFP)
- - GS90015-09 (64 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - GS90015-10 (64 pin PQFP)
- - GS90015-12 (80 pin PQFP) + 2x MCM2018AN45 (2kx8 SRAM)
- - GS90015-11 (100 pin PQFP)
-
-***************************************************************************/
-
-ROM_START( wildplt )
- ROM_REGION( 0x100000, "cpu1", 0 )
- ROM_LOAD16_BYTE( "gp-9188a_27_ver1-4.bin", 0x000000, 0x40000, CRC(4754f023) SHA1(32865343d633fef7d3e081d52b423fbf4e5f2053) )
- ROM_LOAD16_BYTE( "gp-9188a_22_ver1-4.bin", 0x000001, 0x40000, CRC(9e099111) SHA1(11b17d77dfe6315105e8297b8f5f7c8d93b18ac0) )
-
- ROM_REGION( 0x80000, "cpu2", 0 )
- ROM_LOAD16_BYTE( "gp-9188a_16_ver1-0.bin", 0x000000, 0x20000, CRC(75e48920) SHA1(2344c1f394aa1199169e75b2f998e89648a39100) )
- ROM_LOAD16_BYTE( "gp-9188a_11_ver1-0.bin", 0x000001, 0x20000, CRC(8174e65b) SHA1(2c35ae0d04fc4a075c297fe69c429f57457348e1) )
-
- ROM_REGION( 0x80000, "cpu3", 0 )
- ROM_LOAD16_BYTE( "gp-9188a_06_ver1-0.bin", 0x000000, 0x20000, CRC(99139696) SHA1(4f8c96012a8214ed952aa44d65ff92e9b3adcf73) )
- ROM_LOAD16_BYTE( "gp-9188a_01_ver1-0.bin", 0x000001, 0x20000, CRC(2c3d7ec4) SHA1(30215b2ea106aa3c8069fef9411e5f41be5645f6) )
-
- ROM_REGION( 0x40000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "wp-92116_3_ver1-1.bin", 0x000000, 0x20000, CRC(51dd594b) SHA1(3fbec13c1d2942797267820157180d374b38347c) )
- ROM_LOAD16_BYTE( "wp-92116_4_ver1-1.bin", 0x000001, 0x20000, CRC(9ba3cb7b) SHA1(6f55e2675bde2756a2996e6ab6aaef4c9d3f4724) )
-
- ROM_REGION( 0x80000, "cpu5", 0 )
- ROM_LOAD16_BYTE( "wp-92116_5_ver1-0.bin", 0x000000, 0x20000, CRC(8952e07c) SHA1(9025954c09c20dfe910a83283cfe010a5e898f38) )
- ROM_LOAD16_BYTE( "wp-92116_6_ver1-0.bin", 0x000001, 0x20000, CRC(2c8108c2) SHA1(759ab884a09669c8cb532f72aa14a3df2806c5f2) )
-
- ROM_REGION16_BE( 0x80000, "user1", 0 ) /* second halves of program ROMs */
- ROM_LOAD16_BYTE( "gp-9188a_26_ver1-0.bin", 0x000000, 0x40000, CRC(bc48db69) SHA1(d66fa43347b991b899e086bfcf9ceb6277b859a9) )
- ROM_LOAD16_BYTE( "gp-9188a_21_ver1-0.bin", 0x000001, 0x40000, CRC(c3192fbe) SHA1(c4a82a9174f6dc48946925ab94f81162632f58b0) )
-
- ROM_REGION( 0x080000, "scroll0", 0 )
- ROM_LOAD( "gp-9188a_25_ver1-0.bin", 0x000000, 0x80000, CRC(e69d3ccc) SHA1(10ab3d1980c571a478625ec4e505d711d90670cf) )
-
- ROM_REGION( 0x080000, "scroll1", 0 )
- ROM_LOAD( "gp-9188a_28_ver1-0.bin", 0x000000, 0x80000, CRC(2166c803) SHA1(14b3446fbd9e6d65cdcc20e8e0820008d561894b) )
-
- ROM_REGION( 0x020000, "scroll2", 0 )
- ROM_LOAD( "gp-9188a_30_ver1-0.bin", 0x000000, 0x20000, CRC(35478ed9) SHA1(4090ad8c529c1295799a0fe6d7b05d68ec2cf584) )
-
- ROM_REGION( 0x500000, "sprites", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "mr92020-11_w65.bin", 0x000000, 0x80000, CRC(585448cb) SHA1(578d241b928cc5b531c63b118fd1e7f1b864d5f3) )
- ROM_LOAD16_BYTE( "mr92020-12_w66.bin", 0x000001, 0x80000, CRC(07104f78) SHA1(757fa1e0722533f42f12c7e030a283b7e90fc225) )
- ROM_LOAD16_BYTE( "mr92020-13_w67.bin", 0x100000, 0x80000, CRC(c4afa3dc) SHA1(deda215a72914c61d500fee82e108997990d4057) )
- ROM_LOAD16_BYTE( "mr92020-14_w68.bin", 0x100001, 0x80000, CRC(c8676eca) SHA1(268cb259a974ca3f6bece090a53b1334ce77ac17) )
- ROM_LOAD16_BYTE( "mr92020-15_w69.bin", 0x200000, 0x80000, CRC(cc24a3d7) SHA1(5cfce80677a6bd0d787e0d1b9175ceb2662c3ffd) )
- ROM_LOAD16_BYTE( "mr92020-16_w70.bin", 0x200001, 0x80000, CRC(6f4c9d4e) SHA1(56bd05f4f80c544dce919d548be0b05cd0454582) )
- ROM_LOAD16_BYTE( "gp-9189_7_ver1-0.bin", 0x300000, 0x80000, CRC(1ea6a85d) SHA1(2c8e7cf18219bb0a0f212234f967a89510c6e21f) )
- ROM_LOAD16_BYTE( "gp-9189_8_ver1-0.bin", 0x300001, 0x80000, CRC(d9822da0) SHA1(9a4059727d1ed5a2dd09bde5131ff8f47348109c) )
- ROM_LOAD16_BYTE( "gp-9189_9_ver1-0.bin", 0x400000, 0x80000, CRC(0d4f6b5e) SHA1(92412590d17b7297188678a2b64c1b0ee7b00622) )
- ROM_LOAD16_BYTE( "gp-9189_10_ver1-0.bin", 0x400001, 0x80000, CRC(9240969c) SHA1(1f7995349787792a759b1ba60673f28d0fe15cfe) )
-
- ROM_REGION( 0x200000, "road0", 0 )
- ROM_LOAD( "mr92020-08_c50.bin", 0x000000, 0x80000, CRC(5e840567) SHA1(26e0278f455013600d37fc89eb83ce8bf11bb39d) )
- ROM_LOAD( "mr92020-07_c49.bin", 0x080000, 0x80000, CRC(48d8ecb2) SHA1(dee5c274576c4463d33895a12e01b1b30a6daa58) )
- ROM_LOAD( "mr92020-06_c51.bin", 0x100000, 0x80000, CRC(c00f1245) SHA1(11b9f6acbdf7094debb5a7a897afeb6a63b84103) )
- ROM_LOAD( "mr92020-05_c48.bin", 0x180000, 0x80000, CRC(74ef3306) SHA1(9c22250df5bd14d50bb27728fe40b7f9ec283c24) )
-
- ROM_REGION( 0x200000, "road1", 0 )
- ROM_LOAD( "mr92020-04_c47.bin", 0x000000, 0x80000, CRC(c752f467) SHA1(9faa15567677dd5cc141727b182ba8d6de08329d) )
- ROM_LOAD( "mr92020-03_c52.bin", 0x080000, 0x80000, CRC(985b5fe0) SHA1(a28eb20d37f171241fd0be702f2db12be1329836) )
- ROM_LOAD( "mr92020-02_c53.bin", 0x100000, 0x80000, CRC(da961dd4) SHA1(fa36ee94d0a40a0e6e7201df2b74413f23e02ae0) )
- ROM_LOAD( "mr92020-01_c46.bin", 0x180000, 0x80000, CRC(f908c6e0) SHA1(40c50a01b8b3fb184b8fa9824f95652399d479e2) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* samples */
- ROM_LOAD( "wp-92116_2_ver1-0.bin", 0x000000, 0x80000, CRC(95237bd0) SHA1(45780d587565edf8ee0b6443bdc44db72fe65a86) )
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* samples */
- ROM_LOAD( "wp-92116_1_ver1-0.bin", 0x000000, 0x80000, CRC(559bafc3) SHA1(612fa66b02e72a93ea5e89b40426b6ffb2a2a373) )
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
- ROM_LOAD( "ch9072_4.bin", 0x000000, 0x2000, CRC(b45b4dc0) SHA1(b9fae0c9ac2d40f0a202c538d866d5f2941ba8dd) )
- ROM_LOAD( "ch9072_5.bin", 0x000000, 0x2000, CRC(e122916b) SHA1(86d5ecc7ecc6f175ecb28459697ef33e1ee06860) )
- ROM_LOAD( "ch9072_6.bin", 0x000000, 0x2000, CRC(05d95bf7) SHA1(78181cf71f22c090a1e62823a43757353a9ef6ab) )
- ROM_LOAD( "ch9072_8.bin", 0x000000, 0x2000, CRC(6bf52596) SHA1(bf4e7e7df3daae4aa6a441b58b15a435aa45630e) )
-
- ROM_LOAD( "mr90015-01_w06.bin", 0x000000, 0x80000, CRC(ce4bfe6e) SHA1(d428eb3d5da3bd080957c585c5b72b94a7849fca) ) // x 2
- ROM_LOAD( "mr90015-02_w07.bin", 0x000000, 0x80000, CRC(fcbecc9b) SHA1(0670c276730ee282ef8c9599c00571b8d97725ab) ) // x 2
- ROM_LOAD( "mr90015-03_w08.bin", 0x000000, 0x80000, CRC(ccf5b158) SHA1(06250762646e0da1fb71fd7b638492eaab3f5b7f) ) // x 2
- ROM_LOAD( "mr90015-04_w09.bin", 0x000000, 0x80000, CRC(5b324c81) SHA1(ce61f2ea29086a74bdcf9f4df8e2edb749e41da5) ) // x 2
- ROM_LOAD( "mr90015_35_w33.bin", 0x000000, 0x80000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) )
-
- ROM_LOAD( "pr88004q.bin", 0x000000, 0x0200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) )
- ROM_LOAD( "pr88004w.bin", 0x000000, 0x0100, CRC(3d648467) SHA1(bf8dbaa2176c801f7370313425c87f0eefe8a3a4) )
-
- ROM_LOAD( "pr90015a.bin", 0x000000, 0x0800, CRC(777583db) SHA1(8fd060a68fbb6156feb55afcfc5afd95999a8a62) )
- ROM_LOAD( "pr90015b.bin", 0x000000, 0x0100, CRC(be240dac) SHA1(6203b73c1a5e09e525380a78b555c3818929d5eb) )
-ROM_END
-
-
-/***************************************************************************
-
- F1 GrandPrix Star II
-
-This game uses the same bottom and middle boards as Grand Prix Star, however the top board
-(sound + I/O) is different (though I guess it has the same purpose.)
-The game is mostly a simple ROM swap on a F1 Grand Prix Star board.
-The swapped ROMs have been factory socketed. Some ROMs are soldered-in and match some in the
-F1 Grand Prix Star archive (i.e. they are not swapped).
-
-Top Board
----------
-PCB No: WP-92116 EB92020-20053
-CPUs : MC68000P10, TMP68000P-12
-SOUND : OKI M6295 (x2), YM2151, YM3012
-XTALs : 4.000MHz, 7.000MHz, 24.000MHz
-DIPs : 8 position (x3)
-RAM : MCM2018AN45 (x4, 2kx8 SRAM), LH5168D-10L (x2, 8kx8 SRAM), HM62256ALSP-10 (x2, 32kx8 SRAM)
-CUSTOM: GS90015-12 (QFP80)
- GS90015-03 (QFP80)
-ROMs :
- (extension = IC location on PCB)
- 92116-1.4 27c040 \
- 92116-2.18 27c040 |
- 92116-3.37 27c010 | Near MC68000P10 and YM2151
- 92116-4.38 27c010 /
-
- 92116-5.116 27c2001 \
- 92116-6.117 27c2001 / Near TMP68000P-12
-
-Notes : Labels on all these ROMs say Ver 1.0
-
-
-
-Middle Board
-------------
-PCB No: GP-9189 EB90015-90038
-RAM : HM62256ALSP-12 (x8, 32kx8 SRAM), MCM2018AN45 (x2, 2kx8 SRAM)
-CUSTOM: GS90015-11 (QFP100)
- GS90015-08 (QFP64)
- GS90015-07 (QFP64)
- GS90015-10 (QFP64)
- GS90015-09 (QFP64)
- GS90015-03 (x2, QFP80)
- GS90015-06 (x2, QFP100)
-ROMs :
- (extension = IC location on PCB)
- 92021-11.1 4M MASK \
- 92021-12.2 " |
- 92021-13.11 " | Socketed + Swapped
- 92021-14.12 " |
- 92021-15.21 " |
- 92021-16.22 " /
-
- 90015-35.54 4M MASK \ Matches 90015-20.R45 from f1gpstar archive! Mis-labelled filename?)
- 90015-35.67 " / Soldered-in, not swapped. Both are identical, near GS90015-08
-
-PROMs :
- (extension = IC location on PCB)
- CH9072_4.39 \
- CH9072_5.33 | unusual type ICT 27CX322 with a clear window (re-programmable!), purpose = ?
- CH9072_6.35 |
- CH9072_8.59 /
-
- PR88004W.66 type 82s135, near 90015-35
-
-
-Bottom Board
-------------
-PCB No: GP-9188A EB90015-20037-1
-CPU : TMP68000P-12 (x3)
-XTAL : 24.000MHz
-RAM : HM62256ALSP-10 (x2, 32kx8 SRAM), LH5168D-10L (x10, 8kx8 SRAM)
- MCM2018AN45 (x8, 2kx8 SRAM), PDM41256SA20P (x2, 32kx8 SRAM)
-CUSTOM: GS90015-03 (QFP80)
- GS9000406 (x3, QFP80)
- GS90015-02 (x3, QFP100)
- GS90015-01 (QFP44)
- GS90015-05 (x2, QFP100)
- GS90015-04 (x2, QFP64)
-
-ROMs :
- (extension = IC location on PCB)
- 92021-01.14 4M MASK \ \
- 92021-02.15 " | |
- 92021-03.16 " | Socketed + Swapped |
- 92021-04.17 " / |
- 90015-01.37 4M MASK \ |
- 90015-02.38 " | Soldered-in, not swapped, matches |
- 90015-03.39 " | same ROMs in F1 Grand Prix archive |
- 90015-04.40 " / | All these are
- 92021-05.61 4M MASK \ | grouped together
- 92021-06.62 " | |
- 92021-07.63 " | Socketed + Swapped |
- 92021-08.64 " / |
- 90015-01.79 4M MASK \ |
- 90015-02.80 " | Soldered-in, not swapped, matches |
- 90015-03.81 " | same ROMs in F1 Grand Prix archive |
- 90015-04.82 " / /
-
- 9188A-25.123 27c040 Label says Ver 1.0 \
- 9188A-28.152 " Label says Ver 4.0 | Near GS90015-02
- 9188A-30.174 27c1001 Label says Ver 1.0 /
-
- 9188A-21.91 27c2001 Label says Ver 4.0 \
- 9188A-22.92 " Label says Ver 4.0 | Near a 68000
- 9188A-26.124 " Label says Ver 4.0 |
- 9188A-27.125 " Label says Ver 4.0 /
-
- 9188A-11.46 27c1001 Label says Ver 1.0 \ Near a 68000
- 9188A-16.70 " Label says Ver 1.0 /
-
- 9188A-1.2 27c1001 Label says Ver 1.0 \ Near a 68000
- 9188A-6.27 " Label says Ver 1.0 /
-
-PROMs :
- (extension = IC location on PCB)
- PR90015A.117 type 82s185, near GS9000406
- PR90015B.153 type 82s135, near 9188A-26.124
- PR88004Q.105 type 82s147, near GS90015-01
-
-
-***************************************************************************/
-
-ROM_START( f1gpstr2 )
- ROM_REGION( 0x100000, "cpu1", 0 )
- ROM_LOAD16_BYTE( "9188a-27.125", 0x000000, 0x040000, CRC(ee60b894) SHA1(92247cd3b0e3fb2ed0ad27062d1cc13dadb21465) )
- ROM_LOAD16_BYTE( "9188a-22.92" , 0x000001, 0x040000, CRC(f229332b) SHA1(f7037515d77a1f42ce555b8baa15075d7009a5c6) )
-
- ROM_REGION( 0x80000, "cpu2", 0 )
- ROM_LOAD16_BYTE( "9188a-16.70", 0x000000, 0x020000, CRC(3b3d57a0) SHA1(2ad367fc938c385160a014b994fe45d1791d4ddb) )
- ROM_LOAD16_BYTE( "9188a-11.46", 0x000001, 0x020000, CRC(4d2afddf) SHA1(108ddbb6a008d390e43d88efd10d99b599c1d75d) )
-
- ROM_REGION( 0x80000, "cpu3", 0 )
- ROM_LOAD16_BYTE( "9188a-6.27", 0x000000, 0x020000, CRC(68faa23b) SHA1(b18c407cc1273295ec9fc30af191fccd94447ae8) )
- ROM_LOAD16_BYTE( "9188a-1.2", 0x000001, 0x020000, CRC(e4d83b4f) SHA1(4022521e43f6361c5e04a604f8a7fa1e60a2ac99) )
-
- ROM_REGION( 0x40000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "92116-3.37", 0x000000, 0x020000, CRC(2a541095) SHA1(934ef9b6bbe3f6e2e2649dde5671547b955ffc7c) )
- ROM_LOAD16_BYTE( "92116-4.38", 0x000001, 0x020000, CRC(70da1825) SHA1(7f2077e9b40d5acf4da3f6bcc5d7b92d6d08f861) )
-
- ROM_REGION( 0x80000, "cpu5", 0 )
- ROM_LOAD16_BYTE( "92116-5.116", 0x000000, 0x040000, CRC(da16db49) SHA1(a07fb706b0c93a83148a9fdaaca1bc5414bfe286) )
- ROM_LOAD16_BYTE( "92116-6.117", 0x000001, 0x040000, CRC(1f1e147a) SHA1(ebedcdad9cfda8fa3b5c2653232209da5be237e1) )
-
- ROM_REGION16_BE( 0x80000, "user1", 0 ) /* second halves of program ROMs */
- ROM_LOAD16_BYTE( "9188a-26.124", 0x000000, 0x040000, CRC(8690bb79) SHA1(8ef822cf8371cb209c30cfe5c4d5e8b36392f732) ) // cpu1
- ROM_LOAD16_BYTE( "9188a-21.91", 0x000001, 0x040000, CRC(c5a5807e) SHA1(15493030d154579d2095c7304dd843aed09a69ec) )
-
- ROM_REGION( 0x080000, "scroll0", 0 )
- ROM_LOAD( "9188a-25.123", 0x000000, 0x080000, CRC(000c83d2) SHA1(656e4553873ad945bbd770166cc3add287e525dd) ) // scroll 0
-
- ROM_REGION( 0x080000, "scroll1", 0 )
- ROM_LOAD( "9188a-28.152", 0x000000, 0x080000, CRC(e734f8ea) SHA1(efed2ce4a23d16a38872892c25fa9824ca0fed8e) ) // scroll 1
-
- ROM_REGION( 0x020000, "scroll2", 0 )
- ROM_LOAD( "9188a-30.174", 0x000000, 0x020000, CRC(c5906023) SHA1(6006c86995abef1442232ff5fbd68c2a37038d1f) ) // scroll 2
-
- ROM_REGION( 0x600000, "sprites", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "92021-11.1", 0x000000, 0x100000, CRC(fec883a7) SHA1(a17ca17fa37b35c5f28cede52efa91afe566a95a) )
- ROM_LOAD16_BYTE( "92021-12.2", 0x000001, 0x100000, CRC(df283a7e) SHA1(4e9eed9475186e6f94d9ef84a798fa807fb37903) )
- ROM_LOAD16_BYTE( "92021-13.11", 0x200000, 0x100000, CRC(1ceb593a) SHA1(e8428c42d10aa0d26717176b1bdea9a4a1d3e5f3) )
- ROM_LOAD16_BYTE( "92021-14.12", 0x200001, 0x100000, CRC(673c2c61) SHA1(5e04ac452ffd0747beaa42daca873a09cf179b18) )
- ROM_LOAD16_BYTE( "92021-15.21", 0x400000, 0x100000, CRC(66e8b197) SHA1(10f6c5beb4ab57fbd1940db0e15d07df486e4351) )
- ROM_LOAD16_BYTE( "92021-16.22", 0x400001, 0x100000, CRC(1f672dd8) SHA1(f75b8f3f9512e2ef085170888e621f54ee94f9d5) )
-
- ROM_REGION( 0x200000, "road0", 0 )
- ROM_LOAD( "92021-08.64", 0x000000, 0x080000, CRC(54ff00c4) SHA1(f86f16c77b211206fbe39efa278634db8a3eaf75) ) // Road 0
- ROM_LOAD( "92021-07.63", 0x080000, 0x080000, CRC(258d524a) SHA1(f2ba03b7fec81377b032476703cafe0fe79f6a2a) )
- ROM_LOAD( "92021-06.62", 0x100000, 0x080000, CRC(f1423efe) SHA1(bd45ba2b7908d10dc4df10b9c04dca6830894d2a) )
- ROM_LOAD( "92021-05.61", 0x180000, 0x080000, CRC(88bb6db1) SHA1(54413c41a4d02137aebc2a4866a38aadfe64825a) )
-
- ROM_REGION( 0x200000, "road1", 0 )
- ROM_LOAD( "92021-04.17", 0x000000, 0x080000, CRC(3a2e6b1e) SHA1(350465ade24c16e4fe39613f89bf3e7277cdd31e) ) // Road 1
- ROM_LOAD( "92021-03.16", 0x080000, 0x080000, CRC(1f041f65) SHA1(cc4defe3675b30e7de4b3e1eb580a71af4c36bc6) )
- ROM_LOAD( "92021-02.15", 0x100000, 0x080000, CRC(d0582ad8) SHA1(b343a6525bb9d7dbb288ddec392b23e85ae150bb) )
- ROM_LOAD( "92021-01.14", 0x180000, 0x080000, CRC(06e50be4) SHA1(60ced74d97ac5f641b7e721484abbe74522fe3ba) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* samples */
- ROM_LOAD( "92116-2.18", 0x000000, 0x080000, CRC(8c06cded) SHA1(789d620dddfebc1343d424fccd03dd51b58c50fa) )
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* samples */
- ROM_LOAD( "92116-1.4", 0x000000, 0x080000, CRC(8da37b9d) SHA1(ffc67901d087e63bfbb36d15d75c57f6847ef6ea) )
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
- ROM_LOAD( "90015-04.17", 0x000000, 0x080000, CRC(5b324c81) SHA1(ce61f2ea29086a74bdcf9f4df8e2edb749e41da5) ) // x 2 xxxxxxxxx0xxxxxxxxx = 0x00
- ROM_LOAD( "90015-04.82", 0x000000, 0x080000, CRC(5b324c81) SHA1(ce61f2ea29086a74bdcf9f4df8e2edb749e41da5) ) //
- ROM_LOAD( "90015-03.16", 0x000000, 0x080000, CRC(ccf5b158) SHA1(06250762646e0da1fb71fd7b638492eaab3f5b7f) ) // x 2 FIXED BITS (000x000x)
- ROM_LOAD( "90015-03.81", 0x000000, 0x080000, CRC(ccf5b158) SHA1(06250762646e0da1fb71fd7b638492eaab3f5b7f) ) //
- ROM_LOAD( "90015-02.15", 0x000000, 0x080000, CRC(fcbecc9b) SHA1(0670c276730ee282ef8c9599c00571b8d97725ab) ) // x 2
- ROM_LOAD( "90015-02.80", 0x000000, 0x080000, CRC(fcbecc9b) SHA1(0670c276730ee282ef8c9599c00571b8d97725ab) ) //
- ROM_LOAD( "90015-01.14", 0x000000, 0x080000, CRC(ce4bfe6e) SHA1(d428eb3d5da3bd080957c585c5b72b94a7849fca) ) // x 2 FIXED BITS (000x000x)
- ROM_LOAD( "90015-01.79", 0x000000, 0x080000, CRC(ce4bfe6e) SHA1(d428eb3d5da3bd080957c585c5b72b94a7849fca) ) //
-
- ROM_LOAD( "90015-35.54", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) ) // x 2
- ROM_LOAD( "90015-35.67", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) ) //
-
- ROM_LOAD( "ch9072_4.39", 0x000000, 0x002000, CRC(b45b4dc0) SHA1(b9fae0c9ac2d40f0a202c538d866d5f2941ba8dd) ) // FIXED BITS (0000000x)
- ROM_LOAD( "ch9072_5.33", 0x000000, 0x002000, CRC(e122916b) SHA1(86d5ecc7ecc6f175ecb28459697ef33e1ee06860) ) // FIXED BITS (xxxx0xxx)
- ROM_LOAD( "ch9072_6.35", 0x000000, 0x002000, CRC(05d95bf7) SHA1(78181cf71f22c090a1e62823a43757353a9ef6ab) )
- ROM_LOAD( "ch9072_8.59", 0x000000, 0x002000, CRC(6bf52596) SHA1(bf4e7e7df3daae4aa6a441b58b15a435aa45630e) ) // FIXED BITS (0xxx0xxx)
-
- ROM_LOAD( "pr88004q.105", 0x000000, 0x000200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) ) // FIXED BITS (1xxxxxxx1111x1xx)
- ROM_LOAD( "pr88004w.66", 0x000000, 0x000100, CRC(3d648467) SHA1(bf8dbaa2176c801f7370313425c87f0eefe8a3a4) ) // FIXED BITS (00xxxxxx)
-
- ROM_LOAD( "pr90015a.117", 0x000000, 0x000800, CRC(777583db) SHA1(8fd060a68fbb6156feb55afcfc5afd95999a8a62) ) // FIXED BITS (00000xxx0000xxxx)
- ROM_LOAD( "pr90015b.153", 0x000000, 0x000100, CRC(be240dac) SHA1(6203b73c1a5e09e525380a78b555c3818929d5eb) ) // FIXED BITS (000xxxxx000xxxx1)
-ROM_END
-
-
-/***************************************************************************
-
- Scud Hammer
-
-CF-92128B:
-
- GS9001501
- 2-H 2-L 6295 62256 62256
- 1-H 1-L 6295 68000-12 3 4 6 GS90015-02 8464 8464 GS600406
-
- 24MHz 5 GS90015-02 8464 8464 GS900406
-
- 7C199
- 7C199 GS90015-03
-
-GP-9189:
-
- 1 2 62256 62256
- 3 4 62256 GS90015-06 GS90015-06 62256
- 5 6 62256 62256
- 7 8 62256 GS90015-03 GS90015-03 62256
- 9 10
-
- GS90015-08 GS90015-07 GS90015-10
-
- GS90015-11
-
-
- MR90015-35
- MR90015-35 GS90015-09
-
-***************************************************************************/
-
-ROM_START( scudhamm )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* Main CPU Code */
- ROM_LOAD16_BYTE( "3", 0x000000, 0x040000, CRC(a908e7bd) SHA1(be0a8f959ab5c19122eee6c3def6137f37f1a9c6) )
- ROM_LOAD16_BYTE( "4", 0x000001, 0x040000, CRC(981c8b02) SHA1(db6c8993bf1c3993ab31dd649022ab76169975e1) )
-
- ROM_REGION( 0x080000, "scroll0", 0 ) /* Scroll 0 */
- ROM_LOAD( "5", 0x000000, 0x080000, CRC(714c115e) SHA1(c3e88b3972e3926f37968f3e84b932e1ac177142) )
-
-// ROM_REGION( 0x080000, "scroll1", 0 ) /* Scroll 1 */
-// UNUSED
-
- ROM_REGION( 0x020000, "scroll2", 0 ) /* Scroll 2 */
- ROM_LOAD( "6", 0x000000, 0x020000, CRC(b39aab63) SHA1(88275cce8b1323b2d835390a8fc2380b90d50d95) ) // 1xxxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x500000, "sprites", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "1.bot", 0x000000, 0x080000, CRC(46450d73) SHA1(c9acdf1cef760e5194c346d721e859c61afbfce6) )
- ROM_LOAD16_BYTE( "2.bot", 0x000001, 0x080000, CRC(fb7b66dd) SHA1(ad6bbae4fa72f957e5c0fc7bf6199ac45f837dac) )
- ROM_LOAD16_BYTE( "3.bot", 0x100000, 0x080000, CRC(7d45960b) SHA1(abf59cf85f28c90d4c08e3a1e5408a9a700071cc) )
- ROM_LOAD16_BYTE( "4.bot", 0x100001, 0x080000, CRC(393b6a22) SHA1(0d002a8c09de2fb8aaa7f5f020badc6fc096fa41) )
- ROM_LOAD16_BYTE( "5.bot", 0x200000, 0x080000, CRC(7a3c33ad) SHA1(fe0e3722e15919ae3acfeeacae57716aae43647c) )
- ROM_LOAD16_BYTE( "6.bot", 0x200001, 0x080000, CRC(d19c4bf7) SHA1(b8aa21920d5a02f10a7ae65ade8a0a88ad23f373) )
- ROM_LOAD16_BYTE( "7.bot", 0x300000, 0x080000, CRC(9e5edf59) SHA1(fcd4136e39d40bcce365153c96e06181a24a480a) )
- ROM_LOAD16_BYTE( "8.bot", 0x300001, 0x080000, CRC(4980051e) SHA1(10de91239b5b4dab8e7fa4bf51d93356c5111ddf) )
- ROM_LOAD16_BYTE( "9.bot", 0x400000, 0x080000, CRC(c1b301f1) SHA1(776b9889703d73afc4fb0ff77498b98c943246d3) )
- ROM_LOAD16_BYTE( "10.bot", 0x400001, 0x080000, CRC(dab4528f) SHA1(f5ddc37a2d106d5438ad1b7d23a2bbbce07f2c89) )
-
- ROM_REGION( 0x100000, "oki1", 0 ) /* Samples (4x40000) */
- ROM_LOAD( "2.l", 0x000000, 0x080000, CRC(889311da) SHA1(fcaee3e6c98a784cfde06fc2e0e8f5abbfb4df6c) )
- ROM_LOAD( "2.h", 0x080000, 0x080000, CRC(347928fc) SHA1(36903c38b9f13594de40dfc697326327c7010d65) )
-
- ROM_REGION( 0x100000, "oki2", 0 ) /* Samples (4x40000) */
- ROM_LOAD( "1.l", 0x000000, 0x080000, CRC(3c94aa90) SHA1(f9278fec9d93dac0309f30e35c727bd481f347d4) )
- ROM_LOAD( "1.h", 0x080000, 0x080000, CRC(5caee787) SHA1(267f4d3c28e71e53180a5d0ff27a6555ac6fa4a0) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
-ROM_END
-
-
-/***************************************************************************
-
-Arm Champs II
-Jaleco, 1992
-
-An arm wrestling game from Jaleco. Game is part mechanical, part video. The video part
-is shown on a vertical screen, being your opponent you are wrestling. The mechanical
-part is an arm you force against to pin your opponent's 'arm'. The mechanical arm is powered
-by a motor. The arm probably has a 5k potentiometer connected to it to give feedback to the
-hardware about the position of the mechanical arm.
-The opponents get progressively harder and harder, it's almost impossible to beat the final
-few opponents unless you have a few friends handy to swing on the arm ;-))
-Arm Champs II appears to be a simple ROM upgrade on Arm Champs hardware.
-The hardware appears to be similar to Jaleco's 'Grand Prix Star' etc, using many of
-the same custom IC's, and even some of the same ROMs.
-
-
-PCB Layouts
------------
-
-(top board)
-EB91042-20048-3
-AC-91106B
-|---------------------------------------------------------------------------|
-| uPC1318 GS9001501 TL7705 |
-| |-------------| |
-|POWER | 68000-12 | PR88004Q_8.IC102|
-| |-------------| |
-| 24MHz AC91106_VER1.2_7.IC99|
-| |
-| GS9000406 GS90015-02 |
-| |-|
-| 6264 6264 | |
-| AC91106_VER1.7_4.IC63 | |
-|C | |
-|U AC91106_VER1.7_3.IC62 | |
-|S | |
-|T MR91042-07-R66_6.IC95| |
-|O 62256 |-|
-|M |
-|7 62256 GS9000406 GS90015-02 |
-|2 ADC0804 |
-|P 6264 |
-|I |-|
-|N GS90015-03 6264 | |
-| | |
-| M6295 PR91042_5.IC91 | |
-| MR91042-08_2.IC57 | |
-| | |
-| M6295 | |
-| PMI_PM7528 AC91106_VER1.2_1.IC56 | |
-| 62256 | |
-| 62256 | |
-| POWER DSW1 DSW2 4MHz |-|
-|---------------------------------------------------------------------------|
-Notes:
- 68000 clock - 12.0MHz [24/2]
- Jaleco Custom ICs -
- GS9001501 (QFP44)
- GS9000406 (QFP80, x2)
- GS90015-02 (QFP100, x2)
- GS90015-03 (QFP80)
-
- ROMs -
- PR88004Q_8.IC102 - 82S147 PROM
- AC91106_VER1.2_7.IC99 - 27C010 EPROM
- MR91042007-R66_6.IC95 - 4M mask ROM
- AC91106_VER1.7_4.IC63 - 27C010 EPROM
- AC91106_VER1.7_3.IC62 - 27C010 EPROM
- MR91042-08_2.IC57 - 4M mask ROM
- AC91106_VER1.2_1.IC56 - 27C4001 EPROM
- PR91042_5.IC91 - 82S129 PROM
-
-
-(lower board)
-GP-9189
-EB91015-20038
-|---------------------------------------------------------------------------|
-|MR91042-01-R60_1.IC1 |
-| MR91042-02-R61_2.IC2 62256 62256 |
-| GS90015-06 GS90015-06 |
-|MR91042-03-R62_3.IC5 |
-| MR91042-04-R63_4.IC6 62256 62256 |
-| |
-|MR91042-05-R64_5.IC11 |
-| MR91042-06-R65_6.IC12 62256 62256 |-|
-| GS90015-03 GS90015-03 | |
-| | |
-| 62256 62256 | |
-| | |
-| | |
-| GS90015-08 | |
-| GS90015-07 GS90015-10 |-|
-| |
-| |
-| CH9072-5_11.IC33 |
-| GS90015-11 CH9072-6_12.IC35 |
-| CH9072-4_13.IC39 |-|
-| | |
-| | |
-| MR90015-35-W33_14.IC54 | |
-| | |
-| CH9072-8_15.IC59 MR90015-35-W33_17.IC67 | |
-| GS90015-09 | |
-| PR88004W_16.IC66 | |
-| | |
-| 6116 | |
-| POWER 6116 |-|
-|---------------------------------------------------------------------------|
-Notes:
- Jaleco Custom ICs -
- GS90015-03 (QFP80, x2)
- GS90015-06 (QFP100, x2)
- GS90015-07 (QFP64)
- GS90015-08 (QFP64)
- GS90015-09 (QFP64)
- GS90015-10 (QFP64)
- GS90015-11 (QFP100)
-
- ROMs -
- PR88004W_16.IC66 - 82S135 PROM
- CH9072-4_13.IC39 - Atmel AT27HC642R
- CH9072-5_11.IC33 - Atmel AT27HC642R
- CH9072-6_12.IC35 - Atmel AT27HC642R
- CH9072-8_15.IC59 - Atmel AT27HC642R
- MR90015-35-W33_14.IC54- 4M mask ROM \
- MR90015-35-W33_17.IC67- 4M mask ROM / Contain same data
- MR91042-01-R60_1.IC1 - 4M mask ROM
- MR91042-02-R61_2.IC2 - 4M mask ROM
- MR91042-03-R62_3.IC5 - 4M mask ROM
- MR91042-04-R63_4.IC6 - 4M mask ROM
- MR91042-05-R64_5.IC11 - 4M mask ROM
- MR91042-06-R65_6.IC12 - 4M mask ROM
-
-***************************************************************************/
-
-ROM_START( armchmp2 )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* Main CPU Code */
- ROM_LOAD16_BYTE( "4_ver_2.7.ic63", 0x000000, 0x020000, CRC(e0cec032) SHA1(743b022b6de3efb045c4f1cca49caed0259ccfff) ) // same rom contents as ver 2.6, it appears to be correct;
- ROM_LOAD16_BYTE( "3_ver_2.7.ic62", 0x000001, 0x020000, CRC(44186a37) SHA1(d21fbba11e9c82f48de2a699011ca7f3b90061ba) ) // modifications are in data area, where upper bytes are 00
-
- ROM_REGION( 0x080000, "scroll0", 0 ) /* Scroll 0 */
- ROM_LOAD( "mr91042-07-r66_6.ic95", 0x000000, 0x080000, CRC(d1be8699) SHA1(67563761f95892b08c7113ab1c52ab5aa7118fb8) )
-
-// ROM_REGION( 0x080000, "scroll1", 0 ) /* Scroll 1 */
-// UNUSED
-
- ROM_REGION( 0x020000, "scroll2", 0 ) /* Scroll 2 */
- ROM_LOAD( "ac91106_ver1.2_7.ic99", 0x000000, 0x020000, CRC(09755aef) SHA1(39c901fb9408a0ba488f0112d7f48b929b092e3b) )
-
- ROM_REGION( 0x300000, "sprites", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "mr91042-01-r60_1.ic1", 0x000000, 0x080000, CRC(fdfe6951) SHA1(ba6c5cd5d16fdca6f131302b19e621f8abe8136a) )
- ROM_LOAD16_BYTE( "mr91042-02-r61_2.ic2", 0x000001, 0x080000, CRC(2e6c8b30) SHA1(70503fec251606b37fea2c7f91e682aece252035) )
- ROM_LOAD16_BYTE( "mr91042-03-r62_3.ic5", 0x100000, 0x080000, CRC(07ba6d3a) SHA1(9c58e3a1931b593448c53a59e7f5b9aaac40ff88) )
- ROM_LOAD16_BYTE( "mr91042-04-r63_4.ic6", 0x100001, 0x080000, CRC(f37cb12c) SHA1(282ebbd795284d7efa335b797ca1eedc1110e9da) )
- ROM_LOAD16_BYTE( "mr91042-05-r64_5.ic11", 0x200000, 0x080000, CRC(7a3bb52d) SHA1(7f9d1dad4c89e6b55415b082363bc261115e9f96) )
- ROM_LOAD16_BYTE( "mr91042-06-r65_6.ic12", 0x200001, 0x080000, CRC(5312a4f2) SHA1(4dcd2839bb5acccecf1eb6c0e19e877a0cff6875) )
-
- ROM_REGION( 0x100000, "oki1", 0 ) /* Samples (4x40000) */
- ROM_LOAD( "mr91042-08_2.ic57", 0x000000, 0x080000, CRC(dc015f6c) SHA1(9d0677c50a25be1d11d43e54dbf3005f18b79b66) )
- ROM_RELOAD( 0x080000, 0x080000 )
-
- ROM_REGION( 0x100000, "oki2", 0 ) /* Samples (4x40000) */
- ROM_LOAD( "ac-91106v2.0_1.ic56", 0x000000, 0x080000, CRC(0ff5cbcf) SHA1(25ef8d67749ca78afc4c13a31b3f7a87284947c1) )
- ROM_RELOAD( 0x080000, 0x080000 )
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
- ROM_LOAD( "ch9072-4_13.ic39", 0x000000, 0x002000, CRC(b45b4dc0) SHA1(b9fae0c9ac2d40f0a202c538d866d5f2941ba8dd) )
- ROM_LOAD( "ch9072-5_11.ic33", 0x000000, 0x002000, CRC(e122916b) SHA1(86d5ecc7ecc6f175ecb28459697ef33e1ee06860) )
- ROM_LOAD( "ch9072-6_12.ic35", 0x000000, 0x002000, CRC(05d95bf7) SHA1(78181cf71f22c090a1e62823a43757353a9ef6ab) )
- ROM_LOAD( "ch9072-8_15.ic59", 0x000000, 0x002000, CRC(6bf52596) SHA1(bf4e7e7df3daae4aa6a441b58b15a435aa45630e) )
-
- ROM_LOAD( "mr90015-35-w33_17.ic67", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) )
- ROM_LOAD( "mr90015-35-w33_14.ic54", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) )
-
- ROM_LOAD( "pr88004q_8.ic102", 0x000000, 0x000200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) )
- ROM_LOAD( "pr88004w_16.ic66", 0x000000, 0x000100, CRC(3d648467) SHA1(bf8dbaa2176c801f7370313425c87f0eefe8a3a4) )
-
- ROM_LOAD( "pr91042_5.ic91", 0x000000, 0x000100, CRC(e71de4aa) SHA1(d06e5a35ad2127df2d6328cce153073380ee7819) )
-ROM_END
-
-ROM_START( armchmp2o2 )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* Main CPU Code */
- ROM_LOAD16_BYTE( "ac-91106v2.6_4.ic63", 0x000000, 0x020000, CRC(e0cec032) SHA1(743b022b6de3efb045c4f1cca49caed0259ccfff) )
- ROM_LOAD16_BYTE( "ac-91106v2.6_3.ic62", 0x000001, 0x020000, CRC(5de6da19) SHA1(1f46056596924789394ad2d99ec2d7fcb7845d3c) )
-
- ROM_REGION( 0x080000, "scroll0", 0 ) /* Scroll 0 */
- ROM_LOAD( "mr91042-07-r66_6.ic95", 0x000000, 0x080000, CRC(d1be8699) SHA1(67563761f95892b08c7113ab1c52ab5aa7118fb8) )
-
-// ROM_REGION( 0x080000, "scroll1", 0 ) /* Scroll 1 */
-// UNUSED
-
- ROM_REGION( 0x020000, "scroll2", 0 ) /* Scroll 2 */
- ROM_LOAD( "ac91106_ver1.2_7.ic99", 0x000000, 0x020000, CRC(09755aef) SHA1(39c901fb9408a0ba488f0112d7f48b929b092e3b) )
-
- ROM_REGION( 0x300000, "sprites", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "mr91042-01-r60_1.ic1", 0x000000, 0x080000, CRC(fdfe6951) SHA1(ba6c5cd5d16fdca6f131302b19e621f8abe8136a) )
- ROM_LOAD16_BYTE( "mr91042-02-r61_2.ic2", 0x000001, 0x080000, CRC(2e6c8b30) SHA1(70503fec251606b37fea2c7f91e682aece252035) )
- ROM_LOAD16_BYTE( "mr91042-03-r62_3.ic5", 0x100000, 0x080000, CRC(07ba6d3a) SHA1(9c58e3a1931b593448c53a59e7f5b9aaac40ff88) )
- ROM_LOAD16_BYTE( "mr91042-04-r63_4.ic6", 0x100001, 0x080000, CRC(f37cb12c) SHA1(282ebbd795284d7efa335b797ca1eedc1110e9da) )
- ROM_LOAD16_BYTE( "mr91042-05-r64_5.ic11", 0x200000, 0x080000, CRC(7a3bb52d) SHA1(7f9d1dad4c89e6b55415b082363bc261115e9f96) )
- ROM_LOAD16_BYTE( "mr91042-06-r65_6.ic12", 0x200001, 0x080000, CRC(5312a4f2) SHA1(4dcd2839bb5acccecf1eb6c0e19e877a0cff6875) )
-
- ROM_REGION( 0x100000, "oki1", 0 ) /* Samples (4x40000) */
- ROM_LOAD( "mr91042-08_2.ic57", 0x000000, 0x080000, CRC(dc015f6c) SHA1(9d0677c50a25be1d11d43e54dbf3005f18b79b66) )
- ROM_RELOAD( 0x080000, 0x080000 )
-
- ROM_REGION( 0x100000, "oki2", 0 ) /* Samples (4x40000) */
- ROM_LOAD( "ac-91106v2.0_1.ic56", 0x000000, 0x080000, CRC(0ff5cbcf) SHA1(25ef8d67749ca78afc4c13a31b3f7a87284947c1) )
- ROM_RELOAD( 0x080000, 0x080000 )
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
- ROM_LOAD( "ch9072-4_13.ic39", 0x000000, 0x002000, CRC(b45b4dc0) SHA1(b9fae0c9ac2d40f0a202c538d866d5f2941ba8dd) )
- ROM_LOAD( "ch9072-5_11.ic33", 0x000000, 0x002000, CRC(e122916b) SHA1(86d5ecc7ecc6f175ecb28459697ef33e1ee06860) )
- ROM_LOAD( "ch9072-6_12.ic35", 0x000000, 0x002000, CRC(05d95bf7) SHA1(78181cf71f22c090a1e62823a43757353a9ef6ab) )
- ROM_LOAD( "ch9072-8_15.ic59", 0x000000, 0x002000, CRC(6bf52596) SHA1(bf4e7e7df3daae4aa6a441b58b15a435aa45630e) )
-
- ROM_LOAD( "mr90015-35-w33_17.ic67", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) )
- ROM_LOAD( "mr90015-35-w33_14.ic54", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) )
-
- ROM_LOAD( "pr88004q_8.ic102", 0x000000, 0x000200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) )
- ROM_LOAD( "pr88004w_16.ic66", 0x000000, 0x000100, CRC(3d648467) SHA1(bf8dbaa2176c801f7370313425c87f0eefe8a3a4) )
-
- ROM_LOAD( "pr91042_5.ic91", 0x000000, 0x000100, CRC(e71de4aa) SHA1(d06e5a35ad2127df2d6328cce153073380ee7819) )
-ROM_END
-
-ROM_START( armchmp2o )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* Main CPU Code */
- ROM_LOAD16_BYTE( "ac91106_ver1.7_4.ic63", 0x000000, 0x020000, CRC(aaa11bc7) SHA1(ac6186f45a006074d3a86d7437c5a3411bf27188) )
- ROM_LOAD16_BYTE( "ac91106_ver1.7_3.ic62", 0x000001, 0x020000, CRC(a7965879) SHA1(556fecd6ea0f977b718d132c4180bb2160b9da7e) )
-
- ROM_REGION( 0x080000, "scroll0", 0 ) /* Scroll 0 */
- ROM_LOAD( "mr91042-07-r66_6.ic95", 0x000000, 0x080000, CRC(d1be8699) SHA1(67563761f95892b08c7113ab1c52ab5aa7118fb8) )
-
-// ROM_REGION( 0x080000, "scroll1", 0 ) /* Scroll 1 */
-// UNUSED
-
- ROM_REGION( 0x020000, "scroll2", 0 ) /* Scroll 2 */
- ROM_LOAD( "ac91106_ver1.2_7.ic99", 0x000000, 0x020000, CRC(09755aef) SHA1(39c901fb9408a0ba488f0112d7f48b929b092e3b) )
-
- ROM_REGION( 0x300000, "sprites", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "mr91042-01-r60_1.ic1", 0x000000, 0x080000, CRC(fdfe6951) SHA1(ba6c5cd5d16fdca6f131302b19e621f8abe8136a) )
- ROM_LOAD16_BYTE( "mr91042-02-r61_2.ic2", 0x000001, 0x080000, CRC(2e6c8b30) SHA1(70503fec251606b37fea2c7f91e682aece252035) )
- ROM_LOAD16_BYTE( "mr91042-03-r62_3.ic5", 0x100000, 0x080000, CRC(07ba6d3a) SHA1(9c58e3a1931b593448c53a59e7f5b9aaac40ff88) )
- ROM_LOAD16_BYTE( "mr91042-04-r63_4.ic6", 0x100001, 0x080000, CRC(f37cb12c) SHA1(282ebbd795284d7efa335b797ca1eedc1110e9da) )
- ROM_LOAD16_BYTE( "mr91042-05-r64_5.ic11", 0x200000, 0x080000, CRC(7a3bb52d) SHA1(7f9d1dad4c89e6b55415b082363bc261115e9f96) )
- ROM_LOAD16_BYTE( "mr91042-06-r65_6.ic12", 0x200001, 0x080000, CRC(5312a4f2) SHA1(4dcd2839bb5acccecf1eb6c0e19e877a0cff6875) )
-
- ROM_REGION( 0x100000, "oki1", 0 ) /* Samples (4x40000) */
- ROM_LOAD( "mr91042-08_2.ic57", 0x000000, 0x080000, CRC(dc015f6c) SHA1(9d0677c50a25be1d11d43e54dbf3005f18b79b66) )
- ROM_RELOAD( 0x080000, 0x080000 )
-
- ROM_REGION( 0x100000, "oki2", 0 ) /* Samples (4x40000) */
- ROM_LOAD( "ac91106_ver1.2_1.ic56", 0x000000, 0x080000, CRC(48208b69) SHA1(5dfcc7744f7cdd0326886a4a841755ab6ec5482b) )
- ROM_RELOAD( 0x080000, 0x080000 )
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
- ROM_LOAD( "ch9072-4_13.ic39", 0x000000, 0x002000, CRC(b45b4dc0) SHA1(b9fae0c9ac2d40f0a202c538d866d5f2941ba8dd) )
- ROM_LOAD( "ch9072-5_11.ic33", 0x000000, 0x002000, CRC(e122916b) SHA1(86d5ecc7ecc6f175ecb28459697ef33e1ee06860) )
- ROM_LOAD( "ch9072-6_12.ic35", 0x000000, 0x002000, CRC(05d95bf7) SHA1(78181cf71f22c090a1e62823a43757353a9ef6ab) )
- ROM_LOAD( "ch9072-8_15.ic59", 0x000000, 0x002000, CRC(6bf52596) SHA1(bf4e7e7df3daae4aa6a441b58b15a435aa45630e) )
-
- ROM_LOAD( "mr90015-35-w33_17.ic67", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) )
- ROM_LOAD( "mr90015-35-w33_14.ic54", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) )
-
- ROM_LOAD( "pr88004q_8.ic102", 0x000000, 0x000200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) )
- ROM_LOAD( "pr88004w_16.ic66", 0x000000, 0x000100, CRC(3d648467) SHA1(bf8dbaa2176c801f7370313425c87f0eefe8a3a4) )
-
- ROM_LOAD( "pr91042_5.ic91", 0x000000, 0x000100, CRC(e71de4aa) SHA1(d06e5a35ad2127df2d6328cce153073380ee7819) )
-ROM_END
-
-/***************************************************************************
-
- Captain Flag
-
-**************************************************************************/
-
-ROM_START( captflag )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU Code */
- ROM_LOAD16_BYTE( "cf-92128a_3_ver1.4.ic40", 0x000000, 0x020000, CRC(e62af6ae) SHA1(38eb581def468860e4705f25088550799303a9aa) )
- ROM_LOAD16_BYTE( "cf-92128_4_ver1.4.ic46", 0x000001, 0x020000, CRC(e773f87f) SHA1(cf9d72b0df256b69b96f1cd6b5f86282801873e3) )
-
- ROM_REGION( 0x80000, "scroll0", 0 ) /* Scroll 0 */
- ROM_LOAD( "mr92027-11_w89.ic54", 0x000000, 0x080000, CRC(d34cae3c) SHA1(622ad4645df12d34e55bbfb7194508957bb2198b) ) // 5 on the PCB
-
-// ROM_REGION( 0x080000, "scroll1", 0 ) /* Scroll 1 */
-// UNUSED
-
- ROM_REGION( 0x20000, "scroll2", 0 ) /* Scroll 2 */
- ROM_LOAD( "cf-92128_6.ic55", 0x000000, 0x020000, CRC(12debfc2) SHA1(f28d3f63a3c8965fcd838eedad4ef3682a28da0d) ) // 6 on the PCB
-
- ROM_REGION( 0x400000, "sprites", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "gp-9189_1.ic1", 0x000000, 0x080000, CRC(03d69f0f) SHA1(97a0552d94ca1e9c76896903c02c3f005752e5db) )
- ROM_LOAD16_BYTE( "gp-9189_2.ic2", 0x000001, 0x080000, CRC(fbfba282) SHA1(65735d8f6abdb5816b8b26ce2969959a0f2e2c7d) )
- ROM_LOAD16_BYTE( "mr92027-08_w85.ic5", 0x100000, 0x080000, CRC(1e02abff) SHA1(497aeab40c778ef6d8a76b005530fea5f4f68ab8) )
- ROM_LOAD16_BYTE( "mr92027-04_w86.ic6", 0x100001, 0x080000, CRC(89dfe3e8) SHA1(f069cf55d08e5901699e7ee7c6b2b5cdba031cf2) )
- ROM_LOAD16_BYTE( "gp-9189_5.ic11", 0x200000, 0x080000, CRC(edc33285) SHA1(a23f9a1877108eaaef6d467ae21433fe5f24261f) )
- ROM_LOAD16_BYTE( "gp-9189_6.ic12", 0x200001, 0x080000, CRC(99b8f6d8) SHA1(e01c85861d5a131bb31908460cb3bc9eb0ea045c) )
- ROM_LOAD16_BYTE( "mr92027-07_w87.ic15", 0x300000, 0x080000, CRC(07e49754) SHA1(c9fcd394badba104508e4c5ec5cf5513ecb2d69e) )
- ROM_LOAD16_BYTE( "mr92027-08_w88.ic16", 0x300001, 0x080000, CRC(fb080dd6) SHA1(49eceba8cdce76dec3f6a85327135125bb0910f0) )
-
- ROM_REGION( 0x80000, "user2", 0 ) /* ? Unused ROMs ? */
- ROM_LOAD( "pr91042.ic86", 0x000000, 0x000100, CRC(e71de4aa) SHA1(d06e5a35ad2127df2d6328cce153073380ee7819) ) // FIXED BITS (00000xxx0000xxxx)
- ROM_LOAD( "pr88004q.ic88", 0x000000, 0x000200, CRC(9327dc37) SHA1(cfe7b144cdcd76170d47f1c4e0f72b6d4fca0c8d) ) // FIXED BITS (1xxxxxxx1111x1xx)
- ROM_LOAD( "pr92027a.ic16", 0x000000, 0x000020, CRC(bee7adc6) SHA1(cd11a3dae0317d06a69b5707a653b8997c1eb97f) ) // FIXED BITS (0000000000000xxx), 1xxx0 = 0x00
- ROM_LOAD( "pr92027a.ic17", 0x000000, 0x000020, CRC(bee7adc6) SHA1(cd11a3dae0317d06a69b5707a653b8997c1eb97f) ) // ""
- ROM_LOAD( "pr92027b.ic32.bin", 0x000000, 0x000113, CRC(483f4fb5) SHA1(84bb0300a106261634c921a37858482d3233c05a) )
- ROM_LOAD( "pr92027b.ic32.jedec", 0x000000, 0x000bd0, CRC(f0ed1845) SHA1(203438fdee05810b2265624e1a1fdd55d360f833) )
- ROM_LOAD( "pr92027b.ic36.bin", 0x000000, 0x000113, CRC(483f4fb5) SHA1(84bb0300a106261634c921a37858482d3233c05a) )
- ROM_LOAD( "pr92027b.ic36.jedec", 0x000000, 0x000bd0, CRC(f0ed1845) SHA1(203438fdee05810b2265624e1a1fdd55d360f833) )
-
- ROM_LOAD( "ch9072_4.ic39", 0x000000, 0x002000, CRC(b45b4dc0) SHA1(b9fae0c9ac2d40f0a202c538d866d5f2941ba8dd) ) // FIXED BITS (0000000x), 1ST AND 2ND HALF IDENTICAL
- ROM_LOAD( "ch9072_5.ic33", 0x000000, 0x001000, CRC(a8025dc1) SHA1(c9bb7ea59bba3041c687b449ff1560d7d1ce2ec9) ) // FIXED BITS (xxxx0xxx)
- ROM_LOAD( "ch9072_6.ic35", 0x000000, 0x001000, CRC(5cc9c561) SHA1(10866fd0707498fe4d4415bf755c07b55af4ae18) )
- ROM_LOAD( "ch9072_8.ic59", 0x000000, 0x001000, CRC(6c99523b) SHA1(cc00b326b69a97b5bd2e2d741ab41692a14eae35) ) // FIXED BITS (0xxx0xxx)
-
- ROM_LOAD( "mr90015-35_w33.ic54", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) ) // not dumped yet (taken from the other games)
- ROM_LOAD( "mr90015-35_w33.ic67", 0x000000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) ) // ""
-
- ROM_REGION( 0x100000, "oki1", 0 ) /* Samples (8x20000) */
- ROM_LOAD( "mr92027-10_w27.ic19", 0x000000, 0x100000, CRC(04bd729e) SHA1(92bcedf16554f33cc3d0dbdd8807b0e2fafe5d7c) ) // 2 on the PCB
-
- ROM_REGION( 0x100000, "oki2", 0 ) /* Samples (8x20000) */
- ROM_LOAD( "mr92027-09_w26.ic18", 0x000000, 0x100000, CRC(3aaa332a) SHA1(6c19364069e0b077a07ac4f9c4b0cf0c0985a42a) ) // 1 on the PCB
-ROM_END
-
-void captflag_state::init_captflag()
-{
- m_oki1_bank->configure_entries(0, 0x100000 / 0x20000, memregion("oki1")->base(), 0x20000);
- m_oki2_bank->configure_entries(0, 0x100000 / 0x20000, memregion("oki2")->base(), 0x20000);
-}
-
-
-/***************************************************************************
-
-
- Game Drivers
-
-
-***************************************************************************/
-
-GAMEL( 1989, bigrun, 0, bigrun, bigrun, cischeat_state, init_bigrun, ROT0, "Jaleco", "Big Run (11th Rallye version)", MACHINE_NODEVICE_LAN, layout_cischeat ) // there's a 13th Rallye version (1991) (only on the SNES? Could just be updated title, 1989 -> 11th Paris-Dakar ...)
-GAMEL( 1990, cischeat, 0, cischeat, cischeat, cischeat_state, init_cischeat, ROT0, "Jaleco", "Cisco Heat", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN, layout_cischeat )
-GAMEL( 1992, f1gpstar, 0, f1gpstar, f1gpstar, cischeat_state, init_f1gpstar, ROT0, "Jaleco", "Grand Prix Star (ver 4.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN, layout_f1gpstar )
-GAMEL( 1991, f1gpstar3, f1gpstar, f1gpstar, f1gpstar, cischeat_state, init_f1gpstar, ROT0, "Jaleco", "Grand Prix Star (ver 3.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN, layout_f1gpstar )
-GAMEL( 1991, f1gpstar2, f1gpstar, f1gpstar, f1gpstar, cischeat_state, init_f1gpstar, ROT0, "Jaleco", "Grand Prix Star (ver 2.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN, layout_f1gpstar )
-GAME( 1992, armchmp2, 0, armchmp2, armchmp2, cischeat_state, empty_init, ROT270, "Jaleco", "Arm Champs II (ver 2.7)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, armchmp2o2,armchmp2, armchmp2, armchmp2, cischeat_state, empty_init, ROT270, "Jaleco", "Arm Champs II (ver 2.6)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, armchmp2o, armchmp2, armchmp2, armchmp2, cischeat_state, empty_init, ROT270, "Jaleco", "Arm Champs II (ver 1.7)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, wildplt, 0, wildplt, wildplt, wildplt_state, init_f1gpstar, ROT0, "Jaleco", "Wild Pilot", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // busted timings
-GAMEL( 1993, f1gpstr2, 0, f1gpstr2, f1gpstr2, cischeat_state, init_f1gpstar, ROT0, "Jaleco", "F-1 Grand Prix Star II", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN, layout_f1gpstar )
-GAME( 1993, captflag, 0, captflag, captflag, captflag_state, init_captflag, ROT270, "Jaleco", "Captain Flag (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1994, scudhamm, 0, scudhamm, scudhamm, cischeat_state, empty_init, ROT270, "Jaleco", "Scud Hammer", MACHINE_IMPERFECT_GRAPHICS )