Viewing File: <root>/src/mame/drivers/dec0.c

    1  /***************************************************************************
    2  
    3    Data East 16 bit games - Bryan McPhail, mish@tendril.co.uk
    4  
    5    This file contains drivers for:
    6  
    7      * Heavy Barrel                            (USA set)
    8      * Heavy Barrel                            (World set)
    9      * Bad Dudes vs. Dragonninja               (USA set)
   10      * Dragonninja                             (Japanese version of above)
   11      * Birdie Try                              (Japanese set)
   12      * Robocop                                 (World bootleg rom set)
   13      * Robocop                                 (World rev 3)
   14      * Robocop                                 (USA rev 1)
   15      * Robocop                                 (USA rev 0)
   16      * Hippodrome                              (USA set)
   17      * Fighting Fantasy                        (Japanese version of above)
   18      * Sly Spy                                 (USA rev 3)
   19      * Sly Spy                                 (USA rev 2)
   20      * Secret Agent                            (World set)
   21      * Midnight Resistance                     (World set)
   22      * Midnight Resistance                     (USA set)
   23      * Midnight Resistance                     (Japanese set)
   24      * Boulderdash                             (World set)
   25  
   26      Heavy Barrel, Bad Dudes, Robocop, Birdie Try & Hippodrome use the 'MEC-M1'
   27  motherboard and varying game boards.  Sly Spy, Midnight Resistance and
   28  Boulderdash use the same graphics chips but are different pcbs.
   29  
   30      There are Secret Agent (bootleg) and Robocop (bootleg) sets to add.
   31  
   32      Thanks to Gouky & Richard Bush for information along the way, especially
   33      Gouky's patch for Bad Dudes & YM3812 information!
   34      Thanks to JC Alexander for fix to Robocop ending!
   35  
   36      All games' Dip Switches (except Boulder Dash) have been verified against
   37  Original Service Manuals and Service Mode (when available).
   38  
   39  
   40  ToDo:
   41  - Fix protection simulation in Birdie Try (that part needs a complete rewrite);
   42  - graphics are completely broken in Automat and Secret Agent (bootleg);
   43  - Fighting Fantasy (bootleg) doesn't boot at all;
   44  - Hook up the 68705 in Midnight Resistance (bootleg) (it might not be used, leftover from the Fighting Fantasy bootleg on the same PCB?)
   45  - Get rid of ROM patches in Sly Spy and Hippodrome;
   46  - Accurate pixel clock parameters;
   47  - background pen in Birdie Try is presumably wrong.
   48  - Finally, get a proper decap of the MCUs used by Bad Dudes and Birdie Try;
   49  
   50  
   51  PCB Layouts
   52  -----------
   53  
   54  Bad Dudes vs Dragonninja
   55  Data East, 1988
   56  
   57  Main Board:
   58  This board is used with Heavy Barrel, Bad Dudes, Robocop, Birdie Try & Hippodrome
   59  
   60  DE-0297-3 (earlier version DE-0295-1 uses PGA custom chips)
   61  MEC-M1
   62  |------------------------------------------------------------------|
   63  |               TMM2018                                    12MHz   |
   64  |               TMM2018                                            |
   65  |               TMM2018          MB7122                 TC5565     |
   66  |                                                       TC5565     |
   67  |                                                       TMM2018    |
   68  |                                                       TMM2018    |
   69  |          20MHz                                  MB7116           |
   70  |J  RCDM-I1                                                        |
   71  |A  RCDM-I1                                TMM2018     |---------| |
   72  |M  RCDM-I1                                            |L7B0072  | |
   73  |M  RCDM-I1                                TMM2018     |DATAEAST | |
   74  |A  RCDM-I1                                            |BAC 06   | |
   75  |   RCDM-I1                                TMM2018     |---------| |
   76  |    DSW2       68000P10                   TMM2018                 |
   77  |    DSW1                                 |---------|  |---------| |
   78  |                              RP65C02    |L7B0073  |  |L7B0072  | |
   79  |UPC3403      TC5565                      |DATAEAST |  |DATAEAST | |
   80  |CN4   YM3014 TC5565        TMM2018       |MXC 06   |  |BAC 06   | |
   81  |VOL   YM3014 YM3812                      |---------|  |---------| |
   82  |MB3730      YM2203             CN2                CN1             |
   83  |------------------------------------------------------------------|
   84  Notes:
   85        68000   - Clock input 10.000MHz [20/2]
   86        65C02   - Clock input 1.500MHz [12/8]
   87        YM2203  - Clock input 1.500MHz [12/8]
   88        YM3812  - Clock input 3.000MHz [12/4]
   89        TMM2018 - 2k x8 SRAM
   90        TC5565  - 8k x8 SRAM
   91        MB7122  - 1k x4 bipolar PROM
   92        MB7116  - 512b x4 bipolar PROM
   93        RCDM-I1 - Custom resistor array
   94        DSW1/2  - 8-position DIP switches
   95        L7B007x - DECO custom graphics chips (QFP160 or PGA type)
   96        CN1/2   - 96-pin connectors joining to ROM board
   97        CN4     - 6-pin cable joining to ROM board
   98  
   99        Measurements
  100        ------------
  101        VSync - 57.4162Hz
  102        HSync - 15.6172kHz
  103        OSC1  - 20.00006MHz
  104        XTAL1 - 11.9938MHz
  105  
  106  
  107  ROM Board:
  108  This board is used with Heavy Barrel, Bad Dudes & Birdie Try only.
  109  There is another type of ROM board used with Robocop & Hippodrome which
  110  is different (but not documented here)
  111  
  112  DE-0299-2 (earlier version DE-0293-2 uses PGA custom chips)
  113  MEC-M1
  114  |-------------------------------------------------------|
  115  |C4558  CN2          7.8A      CN1                      |
  116  |       1.3A 2.4A 3.6A  i8751 9.12A 10.14A 11.16A 12.17A|
  117  | M6295                 8MHz                            |
  118  |CN9                                                    |
  119  |                                                       |
  120  |       4.3C 5.4C 6.6C       13.12C 14.14C 15.16C 16.17C|
  121  |                                                       |
  122  |8.2C                                                   |
  123  |                 |---------|                           |
  124  |                 |L7B0072  | TMM2018                   |
  125  |CN5              |DATAEAST |17.12D 18.14D 19.16D 20.17D|
  126  |                 |BAC 06   | TMM2018                   |
  127  |                 |---------|                           |
  128  |CN6                                                    |
  129  |                            21.12F 22.14F 23.16F 24.17F|
  130  |                   27.7F 28.9F                         |
  131  |CN7                                                    |
  132  |                                                       |
  133  |                                                       |
  134  |CN8                29.7J 30.9J      25.15J 26.16J      |
  135  |-------------------------------------------------------|
  136  Notes:
  137        i8751     - intel 8751 microcontroller, clock input 8.000MHz
  138        M6295     - Clock 1.000MHz [20/2/10], pin 7 HIGH
  139        L7B0072   - DECO custom graphics chip (QFP160 or PGA type)
  140        TMM2018   - 2k x8 SRAM
  141        CN1/2     - 96-pin connectors joining to Main Board
  142        CN5/6/7/8 - Connectors for other inputs/buttons (these are not populated on
  143                    Bad Dudes but are used with Birdie Try/Heavy Barrel etc)
  144        CN9       - 6-pin cable joining to Main Board
  145  
  146        ROMs      - All ROM locations shown but not all are populated.
  147                    All DECO games use a ROM code on the label....
  148                     - Bad Dudes    = EI    \
  149                     - Birdie Try   = EK     |
  150                     - Dragon Ninja = EG     | These also change for different country/regions
  151                     - Heavy Barrel = EC    /
  152                    All ROMs are 27512/27256 EPROM/maskROM
  153                    All ROMs have a number location on the board next to the chip. The chips
  154                    can also be referenced via the numbers & letters on the side of the board.
  155                    For example, both of these are the same chip.... EI30.30 or EI30.9J
  156  
  157  ***************************************************************************/
  158  
  159  #include "emu.h"
  160  #include "cpu/m68000/m68000.h"
  161  #include "cpu/m6502/m6502.h"
  162  #include "cpu/h6280/h6280.h"
  163  #include "cpu/z80/z80.h"
  164  #include "cpu/mcs51/mcs51.h"
  165  #include "includes/dec0.h"
  166  #include "sound/2203intf.h"
  167  #include "sound/3812intf.h"
  168  #include "sound/okim6295.h"
  169  #include "sound/msm5205.h"
  170  
  171  
  172  /******************************************************************************/
  173  
  174  WRITE16_MEMBER(dec0_state::dec0_control_w)
  175  {
  176      switch (offset << 1)
  177      {
  178          case 0: /* Playfield & Sprite priority */
  179              dec0_priority_w(space, 0, data, mem_mask);
  180              break;
  181  
  182          case 2: /* DMA flag */
  183              dec0_update_sprites_w(space, 0, 0, mem_mask);
  184              break;
  185  
  186          case 4: /* 6502 sound cpu */
  187              if (ACCESSING_BITS_0_7)
  188              {
  189                  soundlatch_byte_w(space, 0, data & 0xff);
  190                  machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
  191              }
  192              break;
  193  
  194          case 6: /* Intel 8751 microcontroller - Bad Dudes, Heavy Barrel, Birdy Try only */
  195              dec0_i8751_write(data);
  196              break;
  197  
  198          case 8: /* Interrupt ack (VBL - IRQ 6) */
  199              machine().device("maincpu")->execute().set_input_line(6, CLEAR_LINE);
  200              break;
  201  
  202          case 0xa: /* Mix Psel(?). */
  203              logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",space.device().safe_pc(),data,0x30c010+(offset<<1));
  204              break;
  205  
  206          case 0xc: /* Cblk - coin blockout.  Seems to be unused by the games */
  207              break;
  208  
  209          case 0xe: /* Reset Intel 8751? - not sure, all the games write here at startup */
  210              dec0_i8751_reset();
  211              logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",space.device().safe_pc(),data,0x30c010+(offset<<1));
  212              break;
  213  
  214          default:
  215              logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",space.device().safe_pc(),data,0x30c010+(offset<<1));
  216              break;
  217      }
  218  }
  219  
  220  
  221  WRITE16_MEMBER(dec0_automat_state::automat_control_w)
  222  {
  223      switch (offset << 1)
  224      {
  225          case 0xe: /* z80 sound cpu */
  226              if (ACCESSING_BITS_0_7)
  227              {
  228                  soundlatch_byte_w(space, 0, data & 0xff);
  229                  machine().device("audiocpu")->execute().set_input_line(0, HOLD_LINE);
  230              }
  231              break;
  232  
  233          case 12: /* DMA flag */
  234              //dec0_update_sprites_w(space, 0, 0, mem_mask);
  235              break;
  236  #if 0
  237          case 8: /* Interrupt ack (VBL - IRQ 6) */
  238              break;
  239  
  240          case 0xa: /* Mix Psel(?). */
  241              logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",space.device().safe_pc(),data,0x30c010+(offset<<1));
  242              break;
  243  
  244          case 0xc: /* Cblk - coin blockout.  Seems to be unused by the games */
  245              break;
  246  #endif
  247  
  248          default:
  249              logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",space.device().safe_pc(),data,0x30c010+(offset<<1));
  250              break;
  251      }
  252  }
  253  
  254  WRITE16_MEMBER(dec0_state::slyspy_control_w)
  255  {
  256      switch (offset << 1)
  257      {
  258          case 0:
  259              if (ACCESSING_BITS_0_7)
  260              {
  261                  soundlatch_byte_w(space, 0, data & 0xff);
  262                  machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
  263              }
  264              break;
  265          case 2:
  266              dec0_priority_w(space, 0, data, mem_mask);
  267              break;
  268      }
  269  }
  270  
  271  WRITE16_MEMBER(dec0_state::midres_sound_w)
  272  {
  273      if (ACCESSING_BITS_0_7)
  274      {
  275          soundlatch_byte_w(space, 0, data & 0xff);
  276          machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
  277      }
  278  }
  279  
  280  /******************************************************************************/
  281  
  282  static ADDRESS_MAP_START( dec0_map, AS_PROGRAM, 16, dec0_state )
  283      AM_RANGE(0x000000, 0x05ffff) AM_ROM
  284      AM_RANGE(0x240000, 0x240007) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control_0_w)                          /* text layer */
  285      AM_RANGE(0x240010, 0x240017) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control_1_w)
  286      AM_RANGE(0x242000, 0x24207f) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  287      AM_RANGE(0x242400, 0x2427ff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  288      AM_RANGE(0x242800, 0x243fff) AM_RAM                                                     /* Robocop only */
  289      AM_RANGE(0x244000, 0x245fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  290  
  291      AM_RANGE(0x246000, 0x246007) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control_0_w)                                  /* first tile layer */
  292      AM_RANGE(0x246010, 0x246017) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control_1_w)
  293      AM_RANGE(0x248000, 0x24807f) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  294      AM_RANGE(0x248400, 0x2487ff) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  295      AM_RANGE(0x24a000, 0x24a7ff) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  296  
  297      AM_RANGE(0x24c000, 0x24c007) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control_0_w)                              /* second tile layer */
  298      AM_RANGE(0x24c010, 0x24c017) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control_1_w)
  299      AM_RANGE(0x24c800, 0x24c87f) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  300      AM_RANGE(0x24cc00, 0x24cfff) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  301      AM_RANGE(0x24d000, 0x24d7ff) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  302  
  303      AM_RANGE(0x300000, 0x30001f) AM_READ(dec0_rotary_r)
  304      AM_RANGE(0x30c000, 0x30c00b) AM_READ(dec0_controls_r)
  305      AM_RANGE(0x30c010, 0x30c01f) AM_WRITE(dec0_control_w)                                   /* Priority, sound, etc. */
  306      AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE(dec0_paletteram_rg_w) AM_SHARE("paletteram")
  307      AM_RANGE(0x314000, 0x3147ff) AM_RAM_WRITE(dec0_paletteram_b_w) AM_SHARE("paletteram2")
  308      AM_RANGE(0xff8000, 0xffbfff) AM_RAM AM_SHARE("ram")                                 /* Main ram */
  309      AM_RANGE(0xffc000, 0xffc7ff) AM_RAM AM_SHARE("spriteram")                               /* Sprites */
  310  ADDRESS_MAP_END
  311  
  312  static ADDRESS_MAP_START( robocop_sub_map, AS_PROGRAM, 8, dec0_state )
  313      AM_RANGE(0x000000, 0x00ffff) AM_ROM
  314      AM_RANGE(0x1f0000, 0x1f1fff) AM_RAM                                 /* Main ram */
  315      AM_RANGE(0x1f2000, 0x1f3fff) AM_RAM AM_SHARE("robocop_shared")  /* Shared ram */
  316      AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("sub", h6280_device, irq_status_w)
  317  ADDRESS_MAP_END
  318  
  319  static ADDRESS_MAP_START( hippodrm_sub_map, AS_PROGRAM, 8, dec0_state )
  320      AM_RANGE(0x000000, 0x00ffff) AM_ROM
  321      AM_RANGE(0x180000, 0x1800ff) AM_READWRITE(hippodrm_shared_r, hippodrm_shared_w)
  322      AM_RANGE(0x1a0000, 0x1a0007) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control0_8bit_packed_w)
  323      AM_RANGE(0x1a0010, 0x1a001f) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control1_8bit_swap_w)
  324      AM_RANGE(0x1a1000, 0x1a17ff) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_data_8bit_swap_r, deco_bac06_pf_data_8bit_swap_w)
  325      AM_RANGE(0x1d0000, 0x1d00ff) AM_READWRITE(hippodrm_prot_r, hippodrm_prot_w)
  326      AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8") /* Main ram */
  327      AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("sub", h6280_device, irq_status_w)
  328      AM_RANGE(0x1ff402, 0x1ff403) AM_READ_PORT("VBLANK")
  329  ADDRESS_MAP_END
  330  
  331  
  332  
  333  READ16_MEMBER(dec0_state::slyspy_controls_r)
  334  {
  335      switch (offset<<1)
  336      {
  337          case 0: /* Dip Switches */
  338              return ioport("DSW")->read();
  339  
  340          case 2: /* Player 1 & Player 2 joysticks & fire buttons */
  341              return ioport("INPUTS")->read();
  342  
  343          case 4: /* Credits */
  344              return ioport("SYSTEM")->read();
  345      }
  346  
  347      logerror("Unknown control read at 30c000 %d\n", offset);
  348      return ~0;
  349  }
  350  
  351  READ16_MEMBER(dec0_state::slyspy_protection_r)
  352  {
  353      /* These values are for Boulderdash, I have no idea what they do in Slyspy */
  354      switch (offset<<1) {
  355          case 0:     return 0;
  356          case 2:     return 0x13;
  357          case 4:     return 0;
  358          case 6:     return 0x2;
  359      }
  360  
  361      logerror("%04x, Unknown protection read at 30c000 %d\n", space.device().safe_pc(), offset);
  362      return 0;
  363  }
  364  
  365  
  366  /*
  367      The memory map in Sly Spy can change between 4 states according to the protection!
  368  
  369      Default state (called by Traps 1, 3, 4, 7, C)
  370  
  371      240000 - 24001f = control   (Playfield 2 area)
  372      242000 - 24207f = colscroll
  373      242400 - 2425ff = rowscroll
  374      246000 - 2467ff = data
  375  
  376      248000 - 24801f = control  (Playfield 1 area)
  377      24c000 - 24c07f = colscroll
  378      24c400 - 24c4ff = rowscroll
  379      24e000 - 24e7ff = data
  380  
  381      State 1 (Called by Trap 9) uses this memory map:
  382  
  383      248000 = pf1 data
  384      24c000 = pf2 data
  385  
  386      State 2 (Called by Trap A) uses this memory map:
  387  
  388      240000 = pf2 data
  389      242000 = pf1 data
  390      24e000 = pf1 data
  391  
  392      State 3 (Called by Trap B) uses this memory map:
  393  
  394      240000 = pf1 data
  395      248000 = pf2 data
  396  
  397  */
  398  
  399  WRITE16_MEMBER(dec0_state::unmapped_w)
  400  {
  401      // fall through for unmapped protection areas
  402      logerror("unmapped memory write to %04x = %04x in mode %d\n", 0x240000+offset*2, data, m_slyspy_state);
  403  }
  404  
  405  void slyspy_set_protection_map(running_machine& machine, int type);
  406  
  407  WRITE16_MEMBER(dec0_state::slyspy_state_w)
  408  {
  409      m_slyspy_state=0;
  410      slyspy_set_protection_map(m_slyspy_state);
  411  }
  412  
  413  READ16_MEMBER(dec0_state::slyspy_state_r)
  414  {
  415      m_slyspy_state++;
  416      m_slyspy_state=m_slyspy_state%4;
  417      slyspy_set_protection_map(m_slyspy_state);
  418  
  419      return 0; /* Value doesn't mater */
  420  }
  421  
  422  void dec0_state::slyspy_set_protection_map( int type)
  423  {
  424      address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
  425  
  426      deco_bac06_device *tilegen1 = (deco_bac06_device*)m_tilegen1;
  427      deco_bac06_device *tilegen2 = (deco_bac06_device*)m_tilegen2;
  428  
  429      space.install_write_handler( 0x240000, 0x24ffff, write16_delegate(FUNC(dec0_state::unmapped_w),this));
  430  
  431      space.install_write_handler( 0x24a000, 0x24a001, write16_delegate(FUNC(dec0_state::slyspy_state_w),this));
  432      space.install_read_handler( 0x244000, 0x244001, read16_delegate(FUNC(dec0_state::slyspy_state_r),this));
  433  
  434      switch (type)
  435      {
  436          case 0:
  437              space.install_legacy_write_handler( *tilegen2, 0x240000, 0x240007, FUNC(deco_bac06_pf_control_0_w));
  438              space.install_legacy_write_handler( *tilegen2, 0x240010, 0x240017, FUNC(deco_bac06_pf_control_1_w));
  439  
  440              space.install_legacy_write_handler( *tilegen2, 0x242000, 0x24207f, FUNC(deco_bac06_pf_colscroll_w));
  441              space.install_legacy_write_handler( *tilegen2, 0x242400, 0x2427ff, FUNC(deco_bac06_pf_rowscroll_w));
  442  
  443              space.install_legacy_write_handler( *tilegen2, 0x246000, 0x247fff, FUNC(deco_bac06_pf_data_w));
  444  
  445              space.install_legacy_write_handler( *tilegen1, 0x248000, 0x280007, FUNC(deco_bac06_pf_control_0_w));
  446              space.install_legacy_write_handler( *tilegen1, 0x248010, 0x280017, FUNC(deco_bac06_pf_control_1_w));
  447  
  448              space.install_legacy_write_handler( *tilegen1, 0x24c000, 0x24c07f, FUNC(deco_bac06_pf_colscroll_w));
  449              space.install_legacy_write_handler( *tilegen1, 0x24c400, 0x24c7ff, FUNC(deco_bac06_pf_rowscroll_w));
  450  
  451              space.install_legacy_write_handler( *tilegen1, 0x24e000, 0x24ffff, FUNC(deco_bac06_pf_data_w));
  452  
  453              break;
  454  
  455          case 1:
  456              // 0x240000 - 0x241fff not mapped
  457              // 0x242000 - 0x243fff not mapped
  458              // 0x246000 - 0x247fff not mapped
  459              space.install_legacy_write_handler( *tilegen1, 0x248000, 0x249fff, FUNC(deco_bac06_pf_data_w));
  460              space.install_legacy_write_handler( *tilegen2, 0x24c000, 0x24dfff, FUNC(deco_bac06_pf_data_w));
  461              // 0x24e000 - 0x24ffff not mapped
  462              break;
  463  
  464          case 2:
  465              space.install_legacy_write_handler( *tilegen2, 0x240000, 0x241fff, FUNC(deco_bac06_pf_data_w));
  466              space.install_legacy_write_handler( *tilegen1, 0x242000, 0x243fff, FUNC(deco_bac06_pf_data_w));
  467              // 0x242000 - 0x243fff not mapped
  468              // 0x246000 - 0x247fff not mapped
  469              // 0x248000 - 0x249fff not mapped
  470              // 0x24c000 - 0x24dfff not mapped
  471              space.install_legacy_write_handler( *tilegen1, 0x24e000, 0x24ffff, FUNC(deco_bac06_pf_data_w));
  472              break;
  473  
  474          case 3:
  475              space.install_legacy_write_handler( *tilegen1, 0x240000, 0x241fff, FUNC(deco_bac06_pf_data_w));
  476              // 0x242000 - 0x243fff not mapped
  477              // 0x246000 - 0x247fff not mapped
  478              space.install_legacy_write_handler( *tilegen2, 0x248000, 0x249fff, FUNC(deco_bac06_pf_data_w));
  479              // 0x24c000 - 0x24dfff not mapped
  480              // 0x24e000 - 0x24ffff not mapped
  481              break;
  482      }
  483  
  484  }
  485  
  486  
  487  
  488  
  489  
  490  
  491  
  492  static ADDRESS_MAP_START( slyspy_map, AS_PROGRAM, 16, dec0_state )
  493      AM_RANGE(0x000000, 0x05ffff) AM_ROM
  494  
  495      /* The location of p1 & pf2 can change in the 240000 - 24ffff region according to protection */
  496  
  497      /* Pf3 is unaffected by protection */
  498      AM_RANGE(0x300000, 0x300007) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control_0_w)
  499      AM_RANGE(0x300010, 0x300017) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control_1_w)
  500      AM_RANGE(0x300800, 0x30087f) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  501      AM_RANGE(0x300c00, 0x300fff) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  502      AM_RANGE(0x301000, 0x3017ff) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  503  
  504      AM_RANGE(0x304000, 0x307fff) AM_RAM AM_SHARE("ram") /* Sly spy main ram */
  505      AM_RANGE(0x308000, 0x3087ff) AM_RAM AM_SHARE("spriteram")   /* Sprites */
  506      AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
  507      AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w)
  508      AM_RANGE(0x314008, 0x31400f) AM_READ(slyspy_controls_r)
  509      AM_RANGE(0x31c000, 0x31c00f) AM_READ(slyspy_protection_r) AM_WRITENOP
  510  ADDRESS_MAP_END
  511  
  512  
  513  static ADDRESS_MAP_START( midres_map, AS_PROGRAM, 16, dec0_state )
  514      AM_RANGE(0x000000, 0x07ffff) AM_ROM
  515      AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("ram")
  516      AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
  517      AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
  518      AM_RANGE(0x160000, 0x160001) AM_WRITE(dec0_priority_w)
  519      AM_RANGE(0x180000, 0x18000f) AM_READ(midres_controls_r)
  520      AM_RANGE(0x180008, 0x18000f) AM_WRITENOP /* ?? watchdog ?? */
  521      AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(midres_sound_w)
  522  
  523      AM_RANGE(0x200000, 0x200007) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control_0_w)
  524      AM_RANGE(0x200010, 0x200017) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control_1_w)
  525      AM_RANGE(0x220000, 0x2207ff) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  526      AM_RANGE(0x220800, 0x220fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_data_r, deco_bac06_pf_data_w) /* mirror address used in end sequence */
  527      AM_RANGE(0x240000, 0x24007f) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  528      AM_RANGE(0x240400, 0x2407ff) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  529  
  530      AM_RANGE(0x280000, 0x280007) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control_0_w)
  531      AM_RANGE(0x280010, 0x280017) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control_1_w)
  532      AM_RANGE(0x2a0000, 0x2a07ff) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  533      AM_RANGE(0x2c0000, 0x2c007f) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  534      AM_RANGE(0x2c0400, 0x2c07ff) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  535  
  536      AM_RANGE(0x300000, 0x300007) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control_0_w)
  537      AM_RANGE(0x300010, 0x300017) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control_1_w)
  538      AM_RANGE(0x320000, 0x321fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  539      AM_RANGE(0x340000, 0x34007f) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  540      AM_RANGE(0x340400, 0x3407ff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  541  
  542      AM_RANGE(0x320000, 0x321fff) AM_RAM
  543  ADDRESS_MAP_END
  544  
  545  /******************************************************************************/
  546  
  547  static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, dec0_state )
  548      AM_RANGE(0x0000, 0x05ff) AM_RAM
  549      AM_RANGE(0x0800, 0x0801) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
  550      AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
  551      AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
  552      AM_RANGE(0x3800, 0x3800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
  553      AM_RANGE(0x8000, 0xffff) AM_ROM
  554  ADDRESS_MAP_END
  555  
  556  /* Physical memory map (21 bits) */
  557  static ADDRESS_MAP_START( slyspy_s_map, AS_PROGRAM, 8, dec0_state )
  558      AM_RANGE(0x000000, 0x00ffff) AM_ROM
  559      AM_RANGE(0x090000, 0x090001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
  560      AM_RANGE(0x0a0000, 0x0a0001) AM_READNOP /* Protection counter */
  561      AM_RANGE(0x0b0000, 0x0b0001) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
  562      AM_RANGE(0x0e0000, 0x0e0001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
  563      AM_RANGE(0x0f0000, 0x0f0001) AM_READ(soundlatch_byte_r)
  564      AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
  565      AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
  566  ADDRESS_MAP_END
  567  
  568  static ADDRESS_MAP_START( midres_s_map, AS_PROGRAM, 8, dec0_state )
  569      AM_RANGE(0x000000, 0x00ffff) AM_ROM
  570      AM_RANGE(0x108000, 0x108001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
  571      AM_RANGE(0x118000, 0x118001) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
  572      AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
  573      AM_RANGE(0x138000, 0x138001) AM_READ(soundlatch_byte_r)
  574      AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
  575      AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
  576  ADDRESS_MAP_END
  577  
  578  
  579  
  580  
  581  
  582  
  583  /* swizzle the palette writes around so we can use the same gfx plane ordering as the originals */
  584  READ16_MEMBER( dec0_automat_state::automat_palette_r )
  585  {
  586      offset ^=0xf;
  587      return m_generic_paletteram_16[offset];
  588  }
  589  
  590  WRITE16_MEMBER( dec0_automat_state::automat_palette_w )
  591  {
  592      offset ^=0xf;
  593      paletteram_xxxxBBBBGGGGRRRR_word_w(space, offset, data, mem_mask);
  594  }
  595  
  596  
  597  
  598  static ADDRESS_MAP_START( automat_map, AS_PROGRAM, 16, dec0_automat_state )
  599      AM_RANGE(0x000000, 0x05ffff) AM_ROM
  600  
  601      AM_RANGE(0x240000, 0x240007) AM_RAM         /* text layer */
  602      AM_RANGE(0x240010, 0x240017) AM_RAM
  603      AM_RANGE(0x242000, 0x24207f) AM_RAM
  604      AM_RANGE(0x242400, 0x2427ff) AM_RAM
  605      AM_RANGE(0x242800, 0x243fff) AM_RAM
  606      AM_RANGE(0x244000, 0x245fff) AM_RAM AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  607  
  608      AM_RANGE(0x246000, 0x246007) AM_RAM         /* first tile layer */
  609      AM_RANGE(0x246010, 0x246017) AM_RAM
  610      AM_RANGE(0x248000, 0x24807f) AM_RAM
  611      AM_RANGE(0x248400, 0x2487ff) AM_RAM
  612      AM_RANGE(0x24a000, 0x24a7ff) AM_RAM AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  613  
  614      AM_RANGE(0x24c000, 0x24c007) AM_RAM         /* second tile layer */
  615      AM_RANGE(0x24c010, 0x24c017) AM_RAM
  616      AM_RANGE(0x24c800, 0x24c87f) AM_RAM
  617      AM_RANGE(0x24cc00, 0x24cfff) AM_RAM
  618      AM_RANGE(0x24d000, 0x24d7ff) AM_RAM AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  619  
  620      AM_RANGE(0x300000, 0x30001f) AM_READ(dec0_rotary_r)
  621      AM_RANGE(0x30c000, 0x30c00b) AM_READ(dec0_controls_r)
  622      AM_RANGE(0x30c000, 0x30c01f) AM_WRITE(automat_control_w)            /* Priority, sound, etc. */
  623      AM_RANGE(0x310000, 0x3107ff) AM_READWRITE(automat_palette_r, automat_palette_w) AM_SHARE("paletteram")
  624      AM_RANGE(0x314000, 0x3147ff) AM_RAM
  625  
  626      // video regs are moved to here..
  627      AM_RANGE(0x400000, 0x400007) AM_WRITE(automat_scroll_w)
  628      AM_RANGE(0x400008, 0x400009) AM_WRITE(dec0_priority_w)
  629  
  630      AM_RANGE(0xff8000, 0xffbfff) AM_RAM AM_SHARE("ram")             /* Main ram */
  631      AM_RANGE(0xffc000, 0xffcfff) AM_RAM AM_SHARE("spriteram")           /* Sprites */
  632  ADDRESS_MAP_END
  633  
  634  static ADDRESS_MAP_START( secretab_map, AS_PROGRAM, 16, dec0_automat_state )
  635      AM_RANGE(0x000000, 0x05ffff) AM_ROM
  636  //  AM_RANGE(0x240000, 0x240007) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control_0_w)
  637  //  AM_RANGE(0x240010, 0x240017) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control_1_w)
  638      AM_RANGE(0x246000, 0x247fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  639  //  AM_RANGE(0x240000, 0x24007f) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  640  //  AM_RANGE(0x240400, 0x2407ff) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  641  
  642  //  AM_RANGE(0x200000, 0x300007) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control_0_w)
  643  //  AM_RANGE(0x300010, 0x300017) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control_1_w)
  644      AM_RANGE(0x24e000, 0x24ffff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  645  //  AM_RANGE(0x340000, 0x34007f) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_colscroll_r, deco_bac06_pf_colscroll_w)
  646  //  AM_RANGE(0x340400, 0x3407ff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
  647  
  648      AM_RANGE(0x314008, 0x31400f) AM_READ(slyspy_controls_r)
  649  //  AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w)
  650  
  651      AM_RANGE(0x300000, 0x300007) AM_RAM
  652      AM_RANGE(0x300010, 0x300017) AM_RAM
  653      AM_RANGE(0x300800, 0x30087f) AM_RAM
  654      AM_RANGE(0x300c00, 0x300fff) AM_RAM
  655      AM_RANGE(0x301000, 0x3017ff) AM_DEVREADWRITE_LEGACY("tilegen3", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
  656      AM_RANGE(0x301800, 0x307fff) AM_RAM AM_SHARE("ram") /* Sly spy main ram */
  657      AM_RANGE(0x310000, 0x3107ff) AM_READWRITE(automat_palette_r, automat_palette_w) AM_SHARE("paletteram")
  658      AM_RANGE(0xb08000, 0xb08fff) AM_RAM AM_SHARE("spriteram") /* Sprites */
  659  ADDRESS_MAP_END
  660  
  661  
  662  WRITE8_MEMBER(dec0_automat_state::automat_adpcm_w)
  663  {
  664      m_automat_adpcm_byte = data;
  665  }
  666  
  667  static ADDRESS_MAP_START( automat_s_map, AS_PROGRAM, 8, dec0_automat_state )
  668      AM_RANGE(0x0103, 0x0103) AM_WRITENOP
  669      AM_RANGE(0xc000, 0xc7ff) AM_RAM
  670      AM_RANGE(0xc800, 0xc801) AM_DEVWRITE_LEGACY("2203a", ym2203_w)
  671      AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_byte_r)
  672      AM_RANGE(0xd000, 0xd001) AM_DEVWRITE_LEGACY("2203b", ym2203_w)
  673      AM_RANGE(0xf000, 0xf000) AM_WRITE(automat_adpcm_w)
  674      AM_RANGE(0x0000, 0xffff) AM_ROM
  675  ADDRESS_MAP_END
  676  
  677  static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, dec0_state )
  678      ADDRESS_MAP_UNMAP_HIGH
  679      AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(dec0_mcu_port_r, dec0_mcu_port_w)
  680  ADDRESS_MAP_END
  681  
  682  /******************************************************************************/
  683  
  684  static INPUT_PORTS_START( dec0 )
  685      PORT_START("INPUTS")
  686      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
  687      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
  688      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
  689      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
  690      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
  691      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
  692      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* Button 3 - only in Service Mode */
  693      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* Button 4 - only in Service Mode */
  694      PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
  695      PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
  696      PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
  697      PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
  698      PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
  699      PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
  700      PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL /* Button 3 - only in Service Mode */
  701      PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL /* Button 4 - only in Service Mode */
  702  
  703      PORT_START("SYSTEM")
  704      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* Button 5 - only in Service Mode */
  705      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_COCKTAIL /* Button 5 - only in Service Mode */
  706      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
  707      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
  708      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN1 )
  709      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN2 )
  710      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 )
  711      PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
  712  INPUT_PORTS_END
  713  
  714  static INPUT_PORTS_START( dec1 )
  715      PORT_START("INPUTS")
  716      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
  717      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
  718      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
  719      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
  720      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
  721      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
  722      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* Button 3 - only in Service Mode */
  723      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
  724      PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
  725      PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
  726      PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
  727      PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
  728      PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
  729      PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
  730      PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL /* Button 3 - only in Service Mode */
  731      PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
  732  
  733      PORT_START("SYSTEM")
  734      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
  735      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
  736      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  737      PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
  738      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  739      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  740      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  741      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  742  INPUT_PORTS_END
  743  
  744  #define DEC0_COIN_SETTING \
  745      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2")\
  746      PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) ) \
  747      PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) ) \
  748      PORT_DIPSETTING(      0x0003, DEF_STR( 1C_1C ) ) \
  749      PORT_DIPSETTING(      0x0002, DEF_STR( 1C_2C ) ) \
  750      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4")\
  751      PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) ) \
  752      PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) ) \
  753      PORT_DIPSETTING(      0x000c, DEF_STR( 1C_1C ) ) \
  754      PORT_DIPSETTING(      0x0008, DEF_STR( 1C_2C ) )
  755  
  756  static INPUT_PORTS_START( hbarrel )
  757      PORT_INCLUDE( dec0 )
  758  
  759      PORT_START("DSW")
  760      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2")
  761      PORT_DIPSETTING(      0x0000, DEF_STR( 2C_1C ) )
  762      PORT_DIPSETTING(      0x0003, DEF_STR( 1C_1C ) )
  763      PORT_DIPSETTING(      0x0002, DEF_STR( 1C_2C ) )
  764      PORT_DIPSETTING(      0x0001, DEF_STR( 1C_3C ) )
  765      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4")
  766      PORT_DIPSETTING(      0x0000, DEF_STR( 2C_1C ) )
  767      PORT_DIPSETTING(      0x000c, DEF_STR( 1C_1C ) )
  768      PORT_DIPSETTING(      0x0008, DEF_STR( 1C_2C ) )
  769      PORT_DIPSETTING(      0x0004, DEF_STR( 1C_3C ) )
  770      PORT_SERVICE_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" )
  771      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
  772      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  773      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
  774      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
  775      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  776      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  777      PORT_DIPUNUSED_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
  778  
  779      PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
  780      PORT_DIPSETTING(      0x0100, "1" )
  781      PORT_DIPSETTING(      0x0300, "3" )
  782      PORT_DIPSETTING(      0x0200, "5" )
  783      PORT_DIPSETTING(      0x0000, "Infinite (Cheat)")
  784      PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
  785      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
  786      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
  787      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
  788      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
  789      PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:5,6")
  790      PORT_DIPSETTING(      0x3000, "30k 80k 160k" )
  791      PORT_DIPSETTING(      0x2000, "50k 120k 190k" )
  792      PORT_DIPSETTING(      0x1000, "100k 200k 300k" )
  793      PORT_DIPSETTING(      0x0000, "150k 300k 450k" )
  794      PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7")
  795      PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
  796      PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
  797      PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
  798  
  799      PORT_START("AN0")   /* player 1 12-way rotary control - converted in controls_r() */
  800      PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
  801  
  802      PORT_START("AN1")   /* player 2 12-way rotary control - converted in controls_r() */
  803      PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
  804  INPUT_PORTS_END
  805  
  806  static INPUT_PORTS_START( birdtry )
  807      PORT_INCLUDE( dec0 )
  808  
  809      PORT_START("DSW")
  810      DEC0_COIN_SETTING
  811      PORT_SERVICE_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" )
  812      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
  813      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  814      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
  815      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
  816      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  817      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  818      PORT_DIPUNUSED_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
  819  
  820      PORT_DIPNAME( 0x0300, 0x0300, "Difficulty (Extend)" ) PORT_DIPLOCATION("SW2:1,2")
  821      PORT_DIPSETTING(      0x0200, DEF_STR( Easy ) )
  822      PORT_DIPSETTING(      0x0300, DEF_STR( Normal ) )
  823      PORT_DIPSETTING(      0x0100, DEF_STR( Hard ) )
  824      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
  825      PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty (Course)" ) PORT_DIPLOCATION("SW2:3,4")
  826      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
  827      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
  828      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
  829      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
  830      PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5")
  831      PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  832      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  833      PORT_DIPNAME( 0x2000, 0x2000, "Timer" ) PORT_DIPLOCATION("SW2:6")
  834      PORT_DIPSETTING(      0x2000, DEF_STR( Normal ) )
  835      PORT_DIPSETTING(      0x0000, "Fast" )
  836      PORT_DIPNAME( 0xc000, 0x0000, "Control Panel Type" ) PORT_DIPLOCATION("SW2:7,8")
  837      PORT_DIPSETTING(      0xc000, "Type A - Cocktail" )
  838      PORT_DIPSETTING(      0x8000, "Type B - Cocktail 2" )
  839      PORT_DIPSETTING(      0x4000, DEF_STR( Unused ) )
  840      PORT_DIPSETTING(      0x0000, "Type C - Upright" )
  841  
  842      /* "Difficulty (Extend)"
  843                      Easy    Normal  Hard    Hardest
  844      (Start)         (5)     (3)     (3)     (3)
  845      Hole in one     +5      +5      +2      +1
  846      Albatross       +3      +3      +1       0
  847      Eagle           +2      +2      +1       0
  848      Birdie          +1      +1      +1       0
  849      Par              0       0       0       0
  850      Bogey           -1      -1      -1      -1
  851      Double bogey    -2      -2      -2      -1
  852      Triple bogey    -3      -3      -3      -1
  853      Quadruple bogey -4      -4      -4      -1
  854      Give up         -5      -5      -4      -2
  855      */
  856  
  857      PORT_START("AN0")   /* player 1 12-way rotary control - converted in controls_r() */
  858      PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
  859  
  860      PORT_START("AN1")   /* player 2 12-way rotary control - converted in controls_r() */
  861      PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
  862  INPUT_PORTS_END
  863  
  864  static INPUT_PORTS_START( baddudes )
  865      PORT_INCLUDE( dec0 )
  866  
  867      PORT_START("DSW")
  868      DEC0_COIN_SETTING
  869      PORT_SERVICE_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" )
  870      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
  871      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  872      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
  873      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
  874      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  875      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  876      PORT_DIPUNUSED_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
  877      /* "SW1:8"
  878      English "Bad Dudes" manual says "Dont Change"
  879      Japanese "Dragonninja" manual says "Control Panel / Off=Table / On=Upright", but maybe not work
  880      */
  881  
  882      PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
  883      PORT_DIPSETTING(      0x0100, "1" )
  884      PORT_DIPSETTING(      0x0300, "3" )
  885      PORT_DIPSETTING(      0x0200, "5" )
  886      PORT_DIPSETTING(      0x0000, "Infinite (Cheat)")
  887      PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
  888      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
  889      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
  890      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
  891      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
  892      PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5")
  893      PORT_DIPSETTING(      0x1000, DEF_STR( No ) )
  894      PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
  895      PORT_DIPUNUSED_DIPLOC( 0x2000, IP_ACTIVE_LOW, "SW2:6" ) // Always OFF
  896      PORT_DIPUNUSED_DIPLOC( 0x4000, IP_ACTIVE_LOW, "SW2:7" ) // Always OFF
  897      PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
  898  
  899      PORT_START("AN0")   /* player 1 12-way rotary control - converted in controls_r() */
  900      PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* unused */
  901  
  902      PORT_START("AN1")   /* player 2 12-way rotary control - converted in controls_r() */
  903      PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* unused */
  904  INPUT_PORTS_END
  905  
  906  static INPUT_PORTS_START( drgninja )
  907      PORT_INCLUDE( baddudes )
  908  
  909      PORT_MODIFY("DSW")
  910      PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
  911      PORT_DIPSETTING(      0x0100, "2" )
  912      PORT_DIPSETTING(      0x0300, "3" )
  913      PORT_DIPSETTING(      0x0200, "4" )
  914      PORT_DIPSETTING(      0x0000, "Infinite (Cheat)")
  915  
  916  INPUT_PORTS_END
  917  
  918  static INPUT_PORTS_START( robocop )
  919      PORT_INCLUDE( dec0 )
  920  
  921      PORT_START("DSW")
  922      DEC0_COIN_SETTING
  923      PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" ) // Always OFF
  924      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
  925      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  926      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
  927      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
  928      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  929      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  930      PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8")
  931      PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
  932      PORT_DIPSETTING(      0x0080, DEF_STR( Cocktail ) )
  933  
  934      PORT_DIPNAME( 0x0300, 0x0300, "Player Energy" ) PORT_DIPLOCATION("SW2:1,2")
  935      PORT_DIPSETTING(      0x0100, DEF_STR( Low ) )
  936      PORT_DIPSETTING(      0x0300, DEF_STR( Medium ) )
  937      PORT_DIPSETTING(      0x0200, DEF_STR( High ) )
  938      PORT_DIPSETTING(      0x0000, DEF_STR( Very_High ) )
  939      PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
  940      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
  941      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
  942      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
  943      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
  944      PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5")
  945      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
  946      PORT_DIPSETTING(      0x1000, DEF_STR( Yes ) )
  947      PORT_DIPNAME( 0x2000, 0x2000, "Bonus Stage Energy" ) PORT_DIPLOCATION("SW2:6")
  948      PORT_DIPSETTING(      0x0000, DEF_STR( Low ) )
  949      PORT_DIPSETTING(      0x2000, DEF_STR( High ) )
  950      PORT_DIPNAME( 0x4000, 0x4000, "Brink Time" ) PORT_DIPLOCATION("SW2:7")
  951      PORT_DIPSETTING(      0x4000, DEF_STR( Normal ) )
  952      PORT_DIPSETTING(      0x0000, "Less" )
  953      /* "SW2:7"
  954      English manual says "Always Off"
  955      Japanese manual says "Invulnerable Brink Time On Continue / Off=Long / On=Short"
  956      */
  957      PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
  958  INPUT_PORTS_END
  959  
  960  static INPUT_PORTS_START( hippodrm )
  961      PORT_INCLUDE( dec0 )
  962  
  963      PORT_START("DSW")
  964      DEC0_COIN_SETTING
  965      PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" ) // Always OFF
  966      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
  967      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  968      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
  969      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
  970      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  971      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  972      PORT_DIPUNUSED_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
  973  
  974      PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
  975      PORT_DIPSETTING(      0x0100, "1" )
  976      PORT_DIPSETTING(      0x0300, "2" )
  977      PORT_DIPSETTING(      0x0200, "3" )
  978      PORT_DIPSETTING(      0x0000, "5" )
  979      PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
  980      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
  981      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
  982      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
  983      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
  984      PORT_DIPNAME( 0x3000, 0x3000, "Player & Enemy Energy" ) PORT_DIPLOCATION("SW2:5,6")
  985      PORT_DIPSETTING(      0x1000, DEF_STR( Very_Low ) )
  986      PORT_DIPSETTING(      0x2000, DEF_STR( Low ) )
  987      PORT_DIPSETTING(      0x3000, DEF_STR( Medium ) )
  988      PORT_DIPSETTING(      0x0000, DEF_STR( High ) )
  989      PORT_DIPNAME( 0x4000, 0x4000, "Enemy Power Decrease on Continue" ) PORT_DIPLOCATION("SW2:7")
  990      PORT_DIPSETTING(      0x4000, "2 Dots" )    // 2 Dots less
  991      PORT_DIPSETTING(      0x0000, "3 Dots" )    // 3 Dots less
  992      PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
  993  
  994      PORT_START("VBLANK")
  995      PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
  996  INPUT_PORTS_END
  997  
  998  static INPUT_PORTS_START( ffantasy )
  999      PORT_INCLUDE( hippodrm )
 1000  
 1001      PORT_MODIFY("DSW")
 1002      PORT_DIPNAME( 0x4000, 0x4000, "Enemy Power Decrease on Continue" ) PORT_DIPLOCATION("SW2:7")
 1003      PORT_DIPSETTING(      0x4000, "2 Dots" )    // 2 Dots less
 1004      PORT_DIPSETTING(      0x0000, DEF_STR( None ) ) // 0 Dot less
 1005  INPUT_PORTS_END
 1006  
 1007  static INPUT_PORTS_START( ffantasybl )
 1008      PORT_INCLUDE( hippodrm )
 1009  
 1010      PORT_MODIFY("DSW")
 1011      PORT_DIPNAME( 0x4000, 0x4000, "Enemy Power Decrease on Continue" ) PORT_DIPLOCATION("SW2:7")
 1012      PORT_DIPSETTING(      0x4000, "2 Dots" )    // 2 Dots less
 1013      PORT_DIPSETTING(      0x0000, DEF_STR( None ) ) // 0 Dot less
 1014  
 1015      PORT_MODIFY("SYSTEM")
 1016      PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // Game does not want vblank here
 1017  INPUT_PORTS_END
 1018  
 1019  static INPUT_PORTS_START( slyspy )
 1020      PORT_INCLUDE( dec1 )
 1021      /* if you set VBLANK as ACTIVE_LOW, you obtain screwed up colors */
 1022  
 1023      PORT_START("DSW")
 1024      DEC0_COIN_SETTING
 1025      PORT_SERVICE_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" )
 1026      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
 1027      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1028      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
 1029      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
 1030      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1031      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1032      PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8")
 1033      PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
 1034      PORT_DIPSETTING(      0x0080, DEF_STR( Cocktail ) )
 1035  
 1036      PORT_DIPNAME( 0x0300, 0x0300, "Energy" ) PORT_DIPLOCATION("SW2:1,2")
 1037      PORT_DIPSETTING(      0x0200, "Low - 8 bars" )
 1038      PORT_DIPSETTING(      0x0300, "Medium - 10 bars" )
 1039      PORT_DIPSETTING(      0x0100, "High - 12 bars" )
 1040      PORT_DIPSETTING(      0x0000, "Very High - 14 bars" )
 1041      PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")   /* not mentioned in manual */
 1042      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
 1043      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
 1044      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
 1045      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1046      PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5")
 1047      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
 1048      PORT_DIPSETTING(      0x1000, DEF_STR( Yes ) )
 1049      PORT_DIPUNUSED_DIPLOC( 0x2000, IP_ACTIVE_LOW, "SW2:6" ) // Always OFF
 1050      PORT_DIPUNUSED_DIPLOC( 0x4000, IP_ACTIVE_LOW, "SW2:7" ) // Always OFF
 1051      PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
 1052  INPUT_PORTS_END
 1053  
 1054  static INPUT_PORTS_START( midres )
 1055      PORT_INCLUDE( dec1 )
 1056  
 1057      PORT_START("DSW")
 1058      DEC0_COIN_SETTING
 1059      PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" ) // Always OFF
 1060      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
 1061      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1062      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
 1063      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
 1064      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1065      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1066      PORT_DIPUNUSED_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
 1067  
 1068      PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
 1069      PORT_DIPSETTING(      0x0300, "3" )
 1070      PORT_DIPSETTING(      0x0200, "4" )
 1071      PORT_DIPSETTING(      0x0100, "5" )
 1072      PORT_DIPSETTING(      0x0000, "Infinite (Cheat)")
 1073      PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
 1074      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
 1075      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
 1076      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
 1077      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1078      PORT_DIPUNUSED_DIPLOC( 0x1000, IP_ACTIVE_LOW, "SW2:5" ) /* manual mentions Extra Lives - Default OFF */
 1079      PORT_DIPUNUSED_DIPLOC( 0x2000, IP_ACTIVE_LOW, "SW2:6" ) /* manual mentions Extra Lives - Default OFF */
 1080      /* "SW2:5,6"
 1081      English manual says "Extra Lives / OFF OFF" ( missing "ON OFF", "OFF ON" and "ON ON" ) , but maybe not work
 1082      Japanese manual says "Never Touch"
 1083      */
 1084      PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Allow_Continue ) )  PORT_DIPLOCATION("SW2:7")
 1085      PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
 1086      PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
 1087      PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
 1088  
 1089      PORT_START("AN0")   /* player 1 12-way rotary control - converted in controls_r() */
 1090      PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
 1091  
 1092      PORT_START("AN1")   /* player 2 12-way rotary control - converted in controls_r() */
 1093      PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
 1094  INPUT_PORTS_END
 1095  
 1096  static INPUT_PORTS_START( midresu )
 1097      PORT_INCLUDE( midres )
 1098  
 1099      PORT_MODIFY("DSW")
 1100      PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
 1101      PORT_DIPSETTING(      0x0100, "1" )
 1102      PORT_DIPSETTING(      0x0300, "3" )
 1103      PORT_DIPSETTING(      0x0200, "5" )
 1104      PORT_DIPSETTING(      0x0000, "Infinite (Cheat)")
 1105  
 1106  INPUT_PORTS_END
 1107  
 1108  static INPUT_PORTS_START( midresb )
 1109      PORT_INCLUDE( dec0 )
 1110  
 1111      PORT_START("DSW")
 1112      DEC0_COIN_SETTING
 1113      PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" ) // Always OFF
 1114      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
 1115      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1116      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
 1117      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
 1118      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1119      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1120      PORT_DIPUNUSED_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
 1121  
 1122      PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
 1123      PORT_DIPSETTING(      0x0100, "1" )
 1124      PORT_DIPSETTING(      0x0300, "3" )
 1125      PORT_DIPSETTING(      0x0200, "5" )
 1126      PORT_DIPSETTING(      0x0000, "Infinite (Cheat)")
 1127      PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
 1128      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
 1129      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
 1130      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
 1131      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1132      PORT_DIPUNUSED_DIPLOC( 0x1000, IP_ACTIVE_LOW, "SW2:5" ) /* manual mentions Extra Lives - Default OFF */
 1133      PORT_DIPUNUSED_DIPLOC( 0x2000, IP_ACTIVE_LOW, "SW2:6" ) /* manual mentions Extra Lives - Default OFF */
 1134      PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Allow_Continue ) )  PORT_DIPLOCATION("SW2:7")
 1135      PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
 1136      PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
 1137      PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
 1138  
 1139      PORT_START("AN0")   /* player 1 12-way rotary control - converted in controls_r() */
 1140      PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
 1141  
 1142      PORT_START("AN1")   /* player 2 12-way rotary control - converted in controls_r() */
 1143      PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
 1144  INPUT_PORTS_END
 1145  
 1146  static INPUT_PORTS_START( bouldash )
 1147      PORT_INCLUDE( dec1 )
 1148  
 1149      PORT_MODIFY("SYSTEM")
 1150      PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")        /* extremely slow palette fades with ACTIVE_HIGH */
 1151  
 1152      PORT_START("DSW")
 1153      /* Different Coinage. Just a few combinations from manual, the rest was figured out */
 1154      PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
 1155      PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
 1156      PORT_DIPSETTING(      0x0001, DEF_STR( 2C_1C ) )
 1157      PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
 1158      PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
 1159      PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
 1160      PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
 1161      PORT_DIPSETTING(      0x0003, DEF_STR( 1C_5C ) )
 1162      PORT_DIPSETTING(      0x0002, DEF_STR( 1C_6C ) )
 1163      PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
 1164      PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
 1165      PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
 1166      PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
 1167      PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
 1168      PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
 1169      PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
 1170      PORT_DIPSETTING(      0x0018, DEF_STR( 1C_5C ) )
 1171      PORT_DIPSETTING(      0x0010, DEF_STR( 1C_6C ) )
 1172      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
 1173      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1174      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1175      PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8")
 1176      PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
 1177      PORT_DIPSETTING(      0x0080, DEF_STR( Cocktail ) )
 1178  
 1179      PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
 1180      PORT_DIPSETTING(      0x0000, "2" )
 1181      PORT_DIPSETTING(      0x0300, "3" )
 1182      PORT_DIPSETTING(      0x0200, "4" )
 1183      PORT_DIPSETTING(      0x0100, "5" )
 1184      PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
 1185      PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
 1186      PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
 1187      PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
 1188      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1189      PORT_DIPUNUSED_DIPLOC( 0x1000, IP_ACTIVE_LOW, "SW2:5" ) // Always OFF
 1190      PORT_DIPNAME( 0x2000, 0x2000, "Game Change Mode" ) PORT_DIPLOCATION("SW2:6")
 1191      PORT_DIPSETTING(      0x2000, "Part 1" )
 1192      PORT_DIPSETTING(      0x0000, "Part 2" )
 1193      PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7")
 1194      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
 1195      PORT_DIPSETTING(      0x4000, DEF_STR( Yes ) )
 1196      PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("SW2:8")
 1197      PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
 1198      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1199  INPUT_PORTS_END
 1200  
 1201  /******************************************************************************/
 1202  
 1203  static const gfx_layout charlayout =
 1204  {
 1205      8,8,    /* 8*8 chars */
 1206      RGN_FRAC(1,4),
 1207      4,      /* 4 bits per pixel  */
 1208      { RGN_FRAC(0,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(3,4) },
 1209      { 0, 1, 2, 3, 4, 5, 6, 7 },
 1210      { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
 1211      8*8 /* every char takes 8 consecutive bytes */
 1212  };
 1213  
 1214  static const gfx_layout tilelayout =
 1215  {
 1216      16,16,
 1217      RGN_FRAC(1,4),
 1218      4,
 1219      { RGN_FRAC(1,4), RGN_FRAC(3,4), RGN_FRAC(0,4), RGN_FRAC(2,4) },
 1220      { 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7,
 1221              0, 1, 2, 3, 4, 5, 6, 7 },
 1222      { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
 1223              8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
 1224      16*16
 1225  };
 1226  
 1227  static const gfx_layout automat_spritelayout =
 1228  {
 1229      16,16,
 1230      RGN_FRAC(1,4),
 1231      4,
 1232      { RGN_FRAC(1,4), RGN_FRAC(3,4), RGN_FRAC(0,4), RGN_FRAC(2,4) },
 1233      { 16*8+7, 16*8+6,16*8+5,16*8+4,16*8+3,16*8+2,16*8+1,16*8+0,7,6,5,4,3,2,1,0},
 1234      { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
 1235              8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
 1236      16*16
 1237  };
 1238  
 1239  static const gfx_layout automat_tilelayout3 =
 1240  {
 1241      16,16,
 1242      0x800,
 1243      4,
 1244      { RGN_FRAC(0,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(3,4) },
 1245      { 0,1,2,3,4,5,6,7,0x8000*8+0, 0x8000*8+1, 0x8000*8+2, 0x8000*8+3, 0x8000*8+4, 0x8000*8+5, 0x8000*8+6, 0x8000*8+7 },
 1246      { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 0x4000*8+0*8, 0x4000*8+1*8, 0x4000*8+2*8, 0x4000*8+3*8, 0x4000*8+4*8, 0x4000*8+5*8, 0x4000*8+6*8, 0x4000*8+7*8 },
 1247      8*8
 1248  };
 1249  
 1250  
 1251  static const gfx_layout automat_tilelayout2 =
 1252  {
 1253      16,16,
 1254      0x400, // RGN_FRAC(1,16) causes divide by zero?!
 1255      4,
 1256      { RGN_FRAC(0,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(3,4) },
 1257      { 0,1,2,3,4,5,6,7, 0x4000*8+0, 0x4000*8+1, 0x4000*8+2, 0x4000*8+3, 0x4000*8+4, 0x4000*8+5, 0x4000*8+6, 0x4000*8+7 },
 1258      { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 0x2000*8+0*8, 0x2000*8+1*8, 0x2000*8+2*8, 0x2000*8+3*8, 0x2000*8+4*8, 0x2000*8+5*8, 0x2000*8+6*8, 0x2000*8+7*8 },
 1259      8*8
 1260  };
 1261  
 1262  
 1263  static GFXDECODE_START( dec0 )
 1264      GFXDECODE_ENTRY( "gfx1", 0, charlayout,   0, 16 )   /* Characters 8x8 */
 1265      GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 512, 16 )   /* Tiles 16x16 */
 1266      GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 768, 16 )   /* Tiles 16x16 */
 1267      GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 256, 16 )   /* Sprites 16x16 */
 1268  GFXDECODE_END
 1269  
 1270  static GFXDECODE_START( midres )
 1271      GFXDECODE_ENTRY( "gfx1", 0, charlayout, 256, 16 )   /* Characters 8x8 */
 1272      GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 512, 16 )   /* Tiles 16x16 */
 1273      GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 768, 16 )   /* Tiles 16x16 */
 1274      GFXDECODE_ENTRY( "gfx4", 0, tilelayout,   0, 16 )   /* Sprites 16x16 */
 1275  GFXDECODE_END
 1276  
 1277  
 1278  
 1279  
 1280  
 1281  static GFXDECODE_START( automat )
 1282      GFXDECODE_ENTRY( "gfx1", 0, charlayout,   0, 16 )   /* Characters 8x8 */
 1283      GFXDECODE_ENTRY( "gfx2", 0, automat_tilelayout3, 512, 16 )  /* Tiles 16x16 */
 1284      GFXDECODE_ENTRY( "gfx3", 0, automat_tilelayout2, 768, 16 )  /* Tiles 16x16 */
 1285      GFXDECODE_ENTRY( "gfx4", 0, automat_spritelayout, 256, 16 ) /* Sprites 16x16 */
 1286  GFXDECODE_END
 1287  
 1288  static GFXDECODE_START( secretab )
 1289      GFXDECODE_ENTRY( "gfx1", 0, charlayout,     0x000, 0x10 )
 1290      GFXDECODE_ENTRY( "gfx2", 0, automat_tilelayout2,     0x200, 0x10 )
 1291      GFXDECODE_ENTRY( "gfx3", 0, automat_tilelayout2,     0x300, 0x10 )
 1292      GFXDECODE_ENTRY( "gfx4", 0, automat_spritelayout,    0x100, 0x10 )
 1293  GFXDECODE_END
 1294  
 1295  /******************************************************************************/
 1296  
 1297  static void sound_irq(device_t *device, int linestate)
 1298  {
 1299      device->machine().device("audiocpu")->execute().set_input_line(0, linestate); /* IRQ */
 1300  }
 1301  
 1302  static void sound_irq2(device_t *device, int linestate)
 1303  {
 1304      device->machine().device("audiocpu")->execute().set_input_line(1, linestate); /* IRQ2 */
 1305  }
 1306  
 1307  static const ym3812_interface ym3812_config =
 1308  {
 1309      sound_irq
 1310  };
 1311  
 1312  static const ym3812_interface ym3812b_interface =
 1313  {
 1314      sound_irq2
 1315  };
 1316  
 1317  /******************************************************************************/
 1318  
 1319  
 1320  
 1321  
 1322  static MACHINE_CONFIG_START( dec0_base, dec0_state )
 1323      MCFG_GFXDECODE(dec0)
 1324      MCFG_PALETTE_LENGTH(1024)
 1325  
 1326      MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
 1327      deco_bac06_device::set_gfx_region_wide(*device, 0,0,0);
 1328      MCFG_DEVICE_ADD("tilegen2", DECO_BAC06, 0)
 1329      deco_bac06_device::set_gfx_region_wide(*device, 0,1,0);
 1330      MCFG_DEVICE_ADD("tilegen3", DECO_BAC06, 0)
 1331      deco_bac06_device::set_gfx_region_wide(*device, 0,2,0);
 1332  
 1333      MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
 1334      deco_mxc06_device::set_gfx_region(*device, 3);
 1335  
 1336      MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0)
 1337  MACHINE_CONFIG_END
 1338  
 1339  static MACHINE_CONFIG_DERIVED( dec0_base_sound, dec0_base )
 1340      /* sound hardware */
 1341      MCFG_SPEAKER_STANDARD_MONO("mono")
 1342  
 1343      MCFG_SOUND_ADD("ym1", YM2203, XTAL_12MHz / 8)
 1344      MCFG_SOUND_ROUTE(0, "mono", 0.90)
 1345      MCFG_SOUND_ROUTE(1, "mono", 0.90)
 1346      MCFG_SOUND_ROUTE(2, "mono", 0.90)
 1347      MCFG_SOUND_ROUTE(3, "mono", 0.35)
 1348  
 1349      MCFG_SOUND_ADD("ym2", YM3812, XTAL_12MHz / 4)
 1350      MCFG_SOUND_CONFIG(ym3812_config)
 1351      MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
 1352  
 1353      MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 2 / 10, OKIM6295_PIN7_HIGH)
 1354      MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
 1355  MACHINE_CONFIG_END
 1356  
 1357  static MACHINE_CONFIG_DERIVED( dec0_base_sound_alt, dec0_base )
 1358      /* sound hardware */
 1359      MCFG_SPEAKER_STANDARD_MONO("mono")
 1360  
 1361      MCFG_SOUND_ADD("ym1", YM2203, XTAL_12MHz/8) /* verified on pcb */
 1362      MCFG_SOUND_ROUTE(0, "mono", 0.90)
 1363      MCFG_SOUND_ROUTE(1, "mono", 0.90)
 1364      MCFG_SOUND_ROUTE(2, "mono", 0.90)
 1365      MCFG_SOUND_ROUTE(3, "mono", 0.35)
 1366  
 1367      MCFG_SOUND_ADD("ym2", YM3812, XTAL_12MHz/4) /* verified on pcb */
 1368      MCFG_SOUND_CONFIG(ym3812b_interface)
 1369      MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
 1370  
 1371      MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) /* verified on pcb */
 1372      MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
 1373  MACHINE_CONFIG_END
 1374  
 1375  //  MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK, DEC0_HTOTAL, DEC0_HBEND, DEC0_HBSTART, DEC0_VTOTAL, DEC0_VBEND, DEC0_VBSTART)
 1376  
 1377  /* TODO: These are raw guesses, only to get ~57,41 Hz */
 1378  #define DEC0_PIXEL_CLOCK XTAL_20MHz/4
 1379  #define DEC0_HTOTAL 256+74
 1380  #define DEC0_HBEND 0
 1381  #define DEC0_HBSTART 256
 1382  #define DEC0_VTOTAL 264
 1383  #define DEC0_VBEND 8
 1384  #define DEC0_VBSTART 256-8
 1385  
 1386  
 1387  static void automat_vclk_cb(device_t *device)
 1388  {
 1389      dec0_automat_state *state = device->machine().driver_data<dec0_automat_state>();
 1390      if (state->m_automat_msm5205_vclk_toggle == 0)
 1391      {
 1392          msm5205_data_w(device, state->m_automat_adpcm_byte & 0xf);
 1393      }
 1394      else
 1395      {
 1396          msm5205_data_w(device, state->m_automat_adpcm_byte >> 4);
 1397          //device->machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); // gives some scratch samples but breaks other sounds too
 1398      }
 1399  
 1400      state->m_automat_msm5205_vclk_toggle ^= 1;
 1401  }
 1402  
 1403  static const msm5205_interface msm5205_config =
 1404  {
 1405      automat_vclk_cb,
 1406      MSM5205_S48_4B
 1407  };
 1408  
 1409  
 1410  static MACHINE_CONFIG_START( automat, dec0_automat_state )
 1411  
 1412      /* basic machine hardware */
 1413      MCFG_CPU_ADD("maincpu", M68000, 10000000)
 1414      MCFG_CPU_PROGRAM_MAP(automat_map)
 1415      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_hold)/* VBL */
 1416  
 1417      MCFG_CPU_ADD("audiocpu", Z80, 3000000)// ?
 1418      MCFG_CPU_PROGRAM_MAP(automat_s_map)
 1419  
 1420      /* video hardware */
 1421      MCFG_SCREEN_ADD("screen", RASTER)
 1422  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1423  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1424      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1425      MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_automat)
 1426      MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
 1427  
 1428      MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
 1429      deco_bac06_device::set_gfx_region_wide(*device, 0,0,0);
 1430      MCFG_DEVICE_ADD("tilegen2", DECO_BAC06, 0)
 1431      deco_bac06_device::set_gfx_region_wide(*device, 0,1,0);
 1432      MCFG_DEVICE_ADD("tilegen3", DECO_BAC06, 0)
 1433      deco_bac06_device::set_gfx_region_wide(*device, 0,2,0);
 1434  
 1435      MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
 1436      deco_mxc06_device::set_gfx_region(*device, 3);
 1437  
 1438  
 1439      MCFG_PALETTE_LENGTH(1024)
 1440      MCFG_GFXDECODE(automat)
 1441  
 1442      /* sound hardware */
 1443      MCFG_SPEAKER_STANDARD_MONO("mono")
 1444  
 1445      MCFG_SOUND_ADD("2203a", YM2203, 1500000)
 1446      MCFG_SOUND_ROUTE(0, "mono", 0.90)
 1447      MCFG_SOUND_ROUTE(1, "mono", 0.90)
 1448      MCFG_SOUND_ROUTE(2, "mono", 0.90)
 1449      MCFG_SOUND_ROUTE(3, "mono", 0.35)
 1450  
 1451      MCFG_SOUND_ADD("2203b", YM2203, 1500000)
 1452      MCFG_SOUND_ROUTE(0, "mono", 0.90)
 1453      MCFG_SOUND_ROUTE(1, "mono", 0.90)
 1454      MCFG_SOUND_ROUTE(2, "mono", 0.90)
 1455      MCFG_SOUND_ROUTE(3, "mono", 0.35)
 1456  
 1457      MCFG_SOUND_ADD("msm", MSM5205, 384000/2)
 1458      MCFG_SOUND_CONFIG(msm5205_config)
 1459      MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
 1460  MACHINE_CONFIG_END
 1461  
 1462  // this seems very similar to the automat bootleg
 1463  static MACHINE_CONFIG_START( secretab, dec0_automat_state )
 1464  
 1465      /* basic machine hardware */
 1466      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */
 1467      MCFG_CPU_PROGRAM_MAP(secretab_map)
 1468      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_hold)/* VBL */
 1469  
 1470      MCFG_CPU_ADD("audiocpu", Z80, 3000000)// ?
 1471      MCFG_CPU_PROGRAM_MAP(automat_s_map)
 1472  
 1473      /* video hardware */
 1474      MCFG_SCREEN_ADD("screen", RASTER)
 1475  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1476  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1477      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1478      MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_secretab)
 1479      MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
 1480  
 1481      MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
 1482      deco_bac06_device::set_gfx_region_wide(*device, 0,0,0);
 1483      MCFG_DEVICE_ADD("tilegen2", DECO_BAC06, 0)
 1484      deco_bac06_device::set_gfx_region_wide(*device, 0,1,0);
 1485      MCFG_DEVICE_ADD("tilegen3", DECO_BAC06, 0)
 1486      deco_bac06_device::set_gfx_region_wide(*device, 0,2,0);
 1487  
 1488      MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0)
 1489      deco_mxc06_device::set_gfx_region(*device, 3);
 1490  
 1491  
 1492      MCFG_PALETTE_LENGTH(1024)
 1493      MCFG_GFXDECODE(secretab)
 1494  
 1495      /* sound hardware */
 1496      MCFG_SPEAKER_STANDARD_MONO("mono")
 1497  
 1498      MCFG_SOUND_ADD("2203a", YM2203, 1500000)
 1499      MCFG_SOUND_ROUTE(0, "mono", 0.90)
 1500      MCFG_SOUND_ROUTE(1, "mono", 0.90)
 1501      MCFG_SOUND_ROUTE(2, "mono", 0.90)
 1502      MCFG_SOUND_ROUTE(3, "mono", 0.35)
 1503  
 1504      MCFG_SOUND_ADD("2203b", YM2203, 1500000)
 1505      MCFG_SOUND_ROUTE(0, "mono", 0.90)
 1506      MCFG_SOUND_ROUTE(1, "mono", 0.90)
 1507      MCFG_SOUND_ROUTE(2, "mono", 0.90)
 1508      MCFG_SOUND_ROUTE(3, "mono", 0.35)
 1509  
 1510      MCFG_SOUND_ADD("msm", MSM5205, 384000/2)
 1511      MCFG_SOUND_CONFIG(msm5205_config)
 1512      MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
 1513  
 1514  MACHINE_CONFIG_END
 1515  
 1516  
 1517  static MACHINE_CONFIG_DERIVED( hbarrel, dec0_base_sound )
 1518  
 1519      /* basic machine hardware */
 1520      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
 1521      MCFG_CPU_PROGRAM_MAP(dec0_map)
 1522      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_assert)/* VBL, level 5 interrupts from i8751 */
 1523  
 1524      MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
 1525      MCFG_CPU_PROGRAM_MAP(dec0_s_map)
 1526  
 1527      MCFG_CPU_ADD("mcu", I8751, XTAL_8MHz)
 1528      MCFG_CPU_IO_MAP(mcu_io_map)
 1529  
 1530      /* video hardware */
 1531      MCFG_SCREEN_ADD("screen", RASTER)
 1532      //MCFG_SCREEN_REFRESH_RATE(57.41)
 1533      //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1534      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1535      //MCFG_SCREEN_SIZE(32*8, 32*8)
 1536      //MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1537      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hbarrel)
 1538  MACHINE_CONFIG_END
 1539  
 1540  static MACHINE_CONFIG_DERIVED( baddudes, dec0_base_sound )
 1541  
 1542      /* basic machine hardware */
 1543      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
 1544      MCFG_CPU_PROGRAM_MAP(dec0_map)
 1545      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_assert)/* VBL, level 5 interrupts from i8751 */
 1546  
 1547      MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
 1548      MCFG_CPU_PROGRAM_MAP(dec0_s_map)
 1549  
 1550      /* video hardware */
 1551      MCFG_SCREEN_ADD("screen", RASTER)
 1552  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1553  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1554      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1555  //  MCFG_SCREEN_SIZE(32*8, 32*8)
 1556  //  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1557      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_baddudes)
 1558  MACHINE_CONFIG_END
 1559  
 1560  static MACHINE_CONFIG_DERIVED( birdtry, dec0_base_sound )
 1561  
 1562      /* basic machine hardware */
 1563      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
 1564      MCFG_CPU_PROGRAM_MAP(dec0_map)
 1565      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_assert)/* VBL, level 5 interrupts from i8751 */
 1566  
 1567      MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
 1568      MCFG_CPU_PROGRAM_MAP(dec0_s_map)
 1569  
 1570      /* video hardware */
 1571      MCFG_SCREEN_ADD("screen", RASTER)
 1572  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1573  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1574      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1575  //  MCFG_SCREEN_SIZE(32*8, 32*8)
 1576  //  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1577      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_birdtry)
 1578  MACHINE_CONFIG_END
 1579  
 1580  static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound )
 1581  
 1582      /* basic machine hardware */
 1583      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
 1584      MCFG_CPU_PROGRAM_MAP(dec0_map)
 1585      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_assert)/* VBL */
 1586  
 1587      MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
 1588      MCFG_CPU_PROGRAM_MAP(dec0_s_map)
 1589  
 1590      MCFG_CPU_ADD("sub", H6280, XTAL_21_4772MHz / 16)
 1591      MCFG_CPU_PROGRAM_MAP(robocop_sub_map)
 1592  
 1593      MCFG_QUANTUM_TIME(attotime::from_hz(3000))  /* Interleave between HuC6280 & 68000 */
 1594  
 1595      /* video hardware */
 1596      MCFG_SCREEN_ADD("screen", RASTER)
 1597  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1598  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1599      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1600  //  MCFG_SCREEN_SIZE(32*8, 32*8)
 1601  //  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1602      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop)
 1603  MACHINE_CONFIG_END
 1604  
 1605  static MACHINE_CONFIG_DERIVED( robocopb, dec0_base_sound )
 1606  
 1607      /* basic machine hardware */
 1608      MCFG_CPU_ADD("maincpu", M68000, 10000000)
 1609      MCFG_CPU_PROGRAM_MAP(dec0_map)
 1610      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_assert)/* VBL */
 1611  
 1612      MCFG_CPU_ADD("audiocpu", M6502, 1500000)
 1613      MCFG_CPU_PROGRAM_MAP(dec0_s_map)
 1614  
 1615      /* video hardware */
 1616      MCFG_SCREEN_ADD("screen", RASTER)
 1617  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1618  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1619      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1620  //  MCFG_SCREEN_SIZE(32*8, 32*8)
 1621  //  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1622      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop)
 1623  MACHINE_CONFIG_END
 1624  
 1625  static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound )
 1626  
 1627      /* basic machine hardware */
 1628      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
 1629      MCFG_CPU_PROGRAM_MAP(dec0_map)
 1630      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_assert)/* VBL */
 1631  
 1632      MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
 1633      MCFG_CPU_PROGRAM_MAP(dec0_s_map)
 1634  
 1635      MCFG_CPU_ADD("sub", H6280, XTAL_21_4772MHz / 16)
 1636      MCFG_CPU_PROGRAM_MAP(hippodrm_sub_map)
 1637  
 1638      MCFG_QUANTUM_TIME(attotime::from_hz(300))   /* Interleave between H6280 & 68000 */
 1639  
 1640      /* video hardware */
 1641      MCFG_SCREEN_ADD("screen", RASTER)
 1642  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1643  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1644      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1645  //  MCFG_SCREEN_SIZE(32*8, 32*8)
 1646  //  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1647      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hippodrm)
 1648  MACHINE_CONFIG_END
 1649  
 1650  static MACHINE_CONFIG_DERIVED( ffantasybl, dec0_base_sound )
 1651  
 1652      /* basic machine hardware */
 1653      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
 1654      MCFG_CPU_PROGRAM_MAP(dec0_map)
 1655      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_assert)/* VBL */
 1656  
 1657      MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
 1658      MCFG_CPU_PROGRAM_MAP(dec0_s_map)
 1659  
 1660  //  MCFG_CPU_ADD("sub", H6280, XTAL_21_4772MHz / 16)
 1661  //  MCFG_CPU_PROGRAM_MAP(hippodrm_sub_map)
 1662  
 1663  //  MCFG_QUANTUM_TIME(attotime::from_hz(300))   /* Interleave between H6280 & 68000 */
 1664  
 1665      /* video hardware */
 1666      MCFG_SCREEN_ADD("screen", RASTER)
 1667  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1668  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1669      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1670  //  MCFG_SCREEN_SIZE(32*8, 32*8)
 1671  //  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1672      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hippodrm)
 1673  MACHINE_CONFIG_END
 1674  
 1675  MACHINE_RESET_MEMBER(dec0_state,slyspy)
 1676  {
 1677      // set initial memory map
 1678      slyspy_set_protection_map(0);
 1679  }
 1680  
 1681  static MACHINE_CONFIG_DERIVED( slyspy, dec0_base_sound_alt )
 1682  
 1683      /* basic machine hardware */
 1684      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */
 1685      MCFG_CPU_PROGRAM_MAP(slyspy_map)
 1686      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_hold) /* VBL, apparently it auto-acks */
 1687  
 1688      MCFG_CPU_ADD("audiocpu", H6280, XTAL_12MHz/2/3) /* verified on pcb (6Mhz is XIN on pin 10 of H6280, verified on pcb */
 1689      MCFG_CPU_PROGRAM_MAP(slyspy_s_map)
 1690  
 1691      /* video hardware */
 1692      MCFG_SCREEN_ADD("screen", RASTER)
 1693  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1694  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1695      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1696  //  MCFG_SCREEN_SIZE(32*8, 32*8)
 1697  //  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1698      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_slyspy)
 1699  
 1700      MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
 1701  
 1702      MCFG_MACHINE_RESET_OVERRIDE(dec0_state,slyspy)
 1703  MACHINE_CONFIG_END
 1704  
 1705  
 1706  
 1707  
 1708  static MACHINE_CONFIG_DERIVED( midres, dec0_base_sound_alt )
 1709  
 1710      /* basic machine hardware */
 1711      MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */
 1712      MCFG_CPU_PROGRAM_MAP(midres_map)
 1713      MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state,  irq6_line_hold)/* VBL */
 1714  
 1715      MCFG_CPU_ADD("audiocpu", H6280, XTAL_24MHz/4/3) /* verified on pcb (6Mhz is XIN on pin 10 of H6280, verified on pcb */
 1716      MCFG_CPU_PROGRAM_MAP(midres_s_map)
 1717  
 1718      /* video hardware */
 1719      MCFG_SCREEN_ADD("screen", RASTER)
 1720  //  MCFG_SCREEN_REFRESH_RATE(57.41)
 1721  //  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
 1722      MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
 1723  //  MCFG_SCREEN_SIZE(32*8, 32*8)
 1724  //  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
 1725      MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_midres)
 1726  
 1727      MCFG_GFXDECODE(midres)
 1728      MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
 1729  MACHINE_CONFIG_END
 1730  
 1731  static MACHINE_CONFIG_DERIVED( midresb, midres )
 1732  
 1733      MCFG_CPU_REPLACE("audiocpu", M6502, 1500000 )
 1734      MCFG_CPU_PROGRAM_MAP(dec0_s_map)
 1735  
 1736      MCFG_SOUND_MODIFY("ym2")
 1737      MCFG_SOUND_CONFIG(ym3812_config)
 1738      MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
 1739  MACHINE_CONFIG_END
 1740  
 1741  /******************************************************************************/
 1742  
 1743  ROM_START( hbarrel )
 1744      ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */
 1745      ROM_LOAD16_BYTE( "hb04.bin",     0x00000, 0x10000, CRC(4877b09e) SHA1(30c653b2f59fece881d088b675192ff2599adbe3) )
 1746      ROM_LOAD16_BYTE( "hb01.bin",     0x00001, 0x10000, CRC(8b41c219) SHA1(5155095f459c29bd1fa5b3e8e2555db20a3bcfbc) )
 1747      ROM_LOAD16_BYTE( "hb05.bin",     0x20000, 0x10000, CRC(2087d570) SHA1(625a33c2f4feed56f636d318531d0996cdee9194) )
 1748      ROM_LOAD16_BYTE( "hb02.bin",     0x20001, 0x10000, CRC(815536ae) SHA1(684f67dc92f2a3bd77effce68c50e4013e054d31) )
 1749      ROM_LOAD16_BYTE( "hb06.bin",     0x40000, 0x10000, CRC(da4e3fbc) SHA1(afc054eb5ee1d64d69fd8134d62e7c2d90f775c8) )
 1750      ROM_LOAD16_BYTE( "hb03.bin",     0x40001, 0x10000, CRC(7fed7c46) SHA1(697742a18a0b01acadb0bbddc54331ab7e097bd8) )
 1751  
 1752      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 1753      ROM_LOAD( "hb07.bin",     0x8000, 0x8000, CRC(a127f0f7) SHA1(2cf962410936ac336e384dda2bf434a297bc940f) )
 1754  
 1755      ROM_REGION( 0x1000, "mcu", 0 )  /* i8751 microcontroller */
 1756      ROM_LOAD( "hb31.9a",      0x0000, 0x1000, CRC(239d726f) SHA1(969f38ae981ffde6053ece93cc51614d492edbbb) )
 1757  
 1758      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 1759      ROM_LOAD( "hb25.bin",     0x00000, 0x10000, CRC(8649762c) SHA1(84d3d82d4d011c54271ef7a0dc5857a34b61cf8a) )
 1760      ROM_LOAD( "hb26.bin",     0x10000, 0x10000, CRC(f8189bbd) SHA1(b4445f50e8771af6ba4fcbc34018f6ecd379779a) )
 1761  
 1762      ROM_REGION( 0x80000, "gfx2", 0 ) /* tiles */
 1763      ROM_LOAD( "hb18.bin",     0x00000, 0x10000, CRC(ef664373) SHA1(d66a8c685c44cc8583527297d7ea7778f0d9c8db) )
 1764      ROM_LOAD( "hb17.bin",     0x10000, 0x10000, CRC(a4f186ac) SHA1(ee422f8479c1f21bb62d040567a9748b646e6f9f) )
 1765      ROM_LOAD( "hb20.bin",     0x20000, 0x10000, CRC(2fc13be0) SHA1(cce46b91104c0ac4038e98131fe957e0ed2f1a88) )
 1766      ROM_LOAD( "hb19.bin",     0x30000, 0x10000, CRC(d6b47869) SHA1(eaef6ed5505395b1b829d6a126363031ad4e851a) )
 1767      ROM_LOAD( "hb22.bin",     0x40000, 0x10000, CRC(50d6a1ad) SHA1(e7b464f34d6f3796823de6fdcbfd79416f71a119) )
 1768      ROM_LOAD( "hb21.bin",     0x50000, 0x10000, CRC(f01d75c5) SHA1(959f9e2461db5f08b7ab12cc3b43f33be69318c9) )
 1769      ROM_LOAD( "hb24.bin",     0x60000, 0x10000, CRC(ae377361) SHA1(a9aa520044f5b5037a495402ef128d3d8522b20f) )
 1770      ROM_LOAD( "hb23.bin",     0x70000, 0x10000, CRC(bbdaf771) SHA1(7b29d6d606319337562b0431b6290df15cde17e2) )
 1771  
 1772      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 1773      ROM_LOAD( "hb29.bin",     0x00000, 0x10000, CRC(5514b296) SHA1(d258134a95bb223db139780b8e7377cccbe01af0) )
 1774      ROM_LOAD( "hb30.bin",     0x10000, 0x10000, CRC(5855e8ef) SHA1(0f09143fed7c354231a4f343d0371424d8436877) )
 1775      ROM_LOAD( "hb27.bin",     0x20000, 0x10000, CRC(99db7b9c) SHA1(2faeb287d685c8ea72c21658777f62ff9e194a69) )
 1776      ROM_LOAD( "hb28.bin",     0x30000, 0x10000, CRC(33ce2b1a) SHA1(ef150dd5bc22368857ba27da18a17c161bb807a4) )
 1777  
 1778      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 1779      ROM_LOAD( "hb15.bin",     0x00000, 0x10000, CRC(21816707) SHA1(859a70dfc7d8c01124a035dcd5ea554af5f4e871) )
 1780      ROM_LOAD( "hb16.bin",     0x10000, 0x10000, CRC(a5684574) SHA1(2dfe429cd6e110645ab976dd3a2b27d54ad91e89) )
 1781      ROM_LOAD( "hb11.bin",     0x20000, 0x10000, CRC(5c768315) SHA1(00905e59dec90bf51f1d8e2482f54ede0895d142) )
 1782      ROM_LOAD( "hb12.bin",     0x30000, 0x10000, CRC(8b64d7a4) SHA1(4d880d97a8eabd9b0a50cba3357df4f70afdf909) )
 1783      ROM_LOAD( "hb13.bin",     0x40000, 0x10000, CRC(56e3ed65) SHA1(e7e4a53a7a18c81af8e395a33bcd82a41482c0da) )
 1784      ROM_LOAD( "hb14.bin",     0x50000, 0x10000, CRC(bedfe7f3) SHA1(9db9c632fbf5a98d2d21bb960cc7111f6f9410fc) )
 1785      ROM_LOAD( "hb09.bin",     0x60000, 0x10000, CRC(26240ea0) SHA1(25732986d787afd99a045ce4587f1079f84e675b) )
 1786      ROM_LOAD( "hb10.bin",     0x70000, 0x10000, CRC(47d95447) SHA1(d2ffe96a19cfcbddee0df07dad89bd83cba801fa) )
 1787  
 1788      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 1789      ROM_LOAD( "hb08.bin",     0x0000, 0x10000, CRC(645c5b68) SHA1(096ca5d7b5df752df6d2c856b3f94b29eea7c3de) )
 1790  ROM_END
 1791  
 1792  ROM_START( hbarrelw )
 1793      ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */
 1794      ROM_LOAD16_BYTE( "hb_ec04.rom",  0x00000, 0x10000, CRC(d01bc3db) SHA1(53c9b78ce12ab577111fd96ef793b0fc4131bec3) )
 1795      ROM_LOAD16_BYTE( "hb_ec01.rom",  0x00001, 0x10000, CRC(6756f8ae) SHA1(4edea085dedab46995b07d134b0974e365c32bfe) )
 1796      ROM_LOAD16_BYTE( "hb05.bin",     0x20000, 0x10000, CRC(2087d570) SHA1(625a33c2f4feed56f636d318531d0996cdee9194) )
 1797      ROM_LOAD16_BYTE( "hb02.bin",     0x20001, 0x10000, CRC(815536ae) SHA1(684f67dc92f2a3bd77effce68c50e4013e054d31) )
 1798      ROM_LOAD16_BYTE( "hb_ec06.rom",  0x40000, 0x10000, CRC(61ec20d8) SHA1(9cd87fb896e746dc7745c59396cf5b06a9c6fae1) )
 1799      ROM_LOAD16_BYTE( "hb_ec03.rom",  0x40001, 0x10000, CRC(720c6b13) SHA1(2af04de911f759b20ecec3aaf96238545c6cc987) )
 1800  
 1801      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 1802      ROM_LOAD( "hb_ec07.rom",  0x8000, 0x8000, CRC(16a5a1aa) SHA1(27eb8c09be6b1be502bda9ae9c9ff860d2560d46) )
 1803  
 1804      ROM_REGION( 0x1000, "mcu", 0 )  /* i8751 microcontroller */
 1805      ROM_LOAD( "ec31.9a",      0x0000, 0x1000, BAD_DUMP CRC(aa14a2ae) SHA1(d456a55a01478286fecea7c33029b7ab74d9ec00) )
 1806  
 1807      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 1808      ROM_LOAD( "hb_ec25.rom",  0x00000, 0x10000, CRC(2e5732a2) SHA1(b730ce11db1876b81d2b7cde0f129bd6fbfeb771) )
 1809      ROM_LOAD( "hb_ec26.rom",  0x10000, 0x10000, CRC(161a2c4d) SHA1(fbfa97ecc8b4d540d38f811ebb6272b348ed37e5) )
 1810  
 1811      ROM_REGION( 0x80000, "gfx2", 0 ) /* tiles */
 1812      ROM_LOAD( "hb18.bin",     0x00000, 0x10000, CRC(ef664373) SHA1(d66a8c685c44cc8583527297d7ea7778f0d9c8db) )
 1813      ROM_LOAD( "hb17.bin",     0x10000, 0x10000, CRC(a4f186ac) SHA1(ee422f8479c1f21bb62d040567a9748b646e6f9f) )
 1814      ROM_LOAD( "hb20.bin",     0x20000, 0x10000, CRC(2fc13be0) SHA1(cce46b91104c0ac4038e98131fe957e0ed2f1a88) )
 1815      ROM_LOAD( "hb19.bin",     0x30000, 0x10000, CRC(d6b47869) SHA1(eaef6ed5505395b1b829d6a126363031ad4e851a) )
 1816      ROM_LOAD( "hb22.bin",     0x40000, 0x10000, CRC(50d6a1ad) SHA1(e7b464f34d6f3796823de6fdcbfd79416f71a119) )
 1817      ROM_LOAD( "hb21.bin",     0x50000, 0x10000, CRC(f01d75c5) SHA1(959f9e2461db5f08b7ab12cc3b43f33be69318c9) )
 1818      ROM_LOAD( "hb24.bin",     0x60000, 0x10000, CRC(ae377361) SHA1(a9aa520044f5b5037a495402ef128d3d8522b20f) )
 1819      ROM_LOAD( "hb23.bin",     0x70000, 0x10000, CRC(bbdaf771) SHA1(7b29d6d606319337562b0431b6290df15cde17e2) )
 1820  
 1821      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 1822      ROM_LOAD( "hb29.bin",     0x00000, 0x10000, CRC(5514b296) SHA1(d258134a95bb223db139780b8e7377cccbe01af0) )
 1823      ROM_LOAD( "hb30.bin",     0x10000, 0x10000, CRC(5855e8ef) SHA1(0f09143fed7c354231a4f343d0371424d8436877) )
 1824      ROM_LOAD( "hb27.bin",     0x20000, 0x10000, CRC(99db7b9c) SHA1(2faeb287d685c8ea72c21658777f62ff9e194a69) )
 1825      ROM_LOAD( "hb28.bin",     0x30000, 0x10000, CRC(33ce2b1a) SHA1(ef150dd5bc22368857ba27da18a17c161bb807a4) )
 1826  
 1827      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 1828      ROM_LOAD( "hb15.bin",     0x00000, 0x10000, CRC(21816707) SHA1(859a70dfc7d8c01124a035dcd5ea554af5f4e871) )
 1829      ROM_LOAD( "hb16.bin",     0x10000, 0x10000, CRC(a5684574) SHA1(2dfe429cd6e110645ab976dd3a2b27d54ad91e89) )
 1830      ROM_LOAD( "hb11.bin",     0x20000, 0x10000, CRC(5c768315) SHA1(00905e59dec90bf51f1d8e2482f54ede0895d142) )
 1831      ROM_LOAD( "hb12.bin",     0x30000, 0x10000, CRC(8b64d7a4) SHA1(4d880d97a8eabd9b0a50cba3357df4f70afdf909) )
 1832      ROM_LOAD( "hb13.bin",     0x40000, 0x10000, CRC(56e3ed65) SHA1(e7e4a53a7a18c81af8e395a33bcd82a41482c0da) )
 1833      ROM_LOAD( "hb14.bin",     0x50000, 0x10000, CRC(bedfe7f3) SHA1(9db9c632fbf5a98d2d21bb960cc7111f6f9410fc) )
 1834      ROM_LOAD( "hb09.bin",     0x60000, 0x10000, CRC(26240ea0) SHA1(25732986d787afd99a045ce4587f1079f84e675b) )
 1835      ROM_LOAD( "hb10.bin",     0x70000, 0x10000, CRC(47d95447) SHA1(d2ffe96a19cfcbddee0df07dad89bd83cba801fa) )
 1836  
 1837      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 1838      ROM_LOAD( "hb_ec08.rom",  0x0000, 0x10000, CRC(2159a609) SHA1(cae503e446c7164a44b59886680f554a4cb1eef2) )
 1839  ROM_END
 1840  
 1841  ROM_START( baddudes )
 1842      ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code, middle 0x20000 unused */
 1843      ROM_LOAD16_BYTE( "ei04-1.3c", 0x00000, 0x10000, CRC(4bf158a7) SHA1(e034f64cec3e8596a2d86dd83462592178f19611) )
 1844      ROM_LOAD16_BYTE( "ei01-1.3a", 0x00001, 0x10000, CRC(74f5110c) SHA1(9b8ff24e69505846a1406f5ab82b855b84a5cdf2) )
 1845      ROM_LOAD16_BYTE( "ei06.6c",   0x40000, 0x10000, CRC(3ff8da57) SHA1(eea8125a3eac33d76d22e72b69633eaae138efe5) )
 1846      ROM_LOAD16_BYTE( "ei03.6a",   0x40001, 0x10000, CRC(f8f2bd94) SHA1(622c66fea00cabb2cce16bf621b07d38a660708d) )
 1847  
 1848      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 1849      ROM_LOAD( "ei07.8a",   0x8000, 0x8000, CRC(9fb1ef4b) SHA1(f4dd0773be93c2ad8b0faacd12939c531b5aa130) )
 1850  
 1851      ROM_REGION( 0x1000, "mcu", 0 )  /* i8751 microcontroller */
 1852      ROM_LOAD( "ei31.9a",   0x0000, 0x1000, NO_DUMP )
 1853  
 1854      ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
 1855      ROM_LOAD( "ei25.15j",  0x00000, 0x08000, CRC(bcf59a69) SHA1(486727e19c12ea55b47e2ef773d0d0471cf50083) )
 1856      ROM_LOAD( "ei26.16j",  0x08000, 0x08000, CRC(9aff67b8) SHA1(18c3972a9f17a48897463f48be0d723ea0cf5aba) )
 1857  
 1858      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 1859      ROM_LOAD( "ei18.14d",  0x00000, 0x10000, CRC(05cfc3e5) SHA1(a0163921c77dc9706463a402c3dd45ec4341cd21) )
 1860      ROM_LOAD( "ei20.17d",  0x10000, 0x10000, CRC(e11e988f) SHA1(0c59f0d8d1abe414c7e1ebd49d454179fed2cd00) )
 1861      ROM_LOAD( "ei22.14f",  0x20000, 0x10000, CRC(b893d880) SHA1(99e228174677f2e3e96154f77bfa9bf0f1c0a6a5) )
 1862      ROM_LOAD( "ei24.17f",  0x30000, 0x10000, CRC(6f226dda) SHA1(65ebb16a292c57d49c135fce7ed7537146226eb5) )
 1863  
 1864      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 1865      ROM_LOAD( "ei30.9j",   0x08000, 0x08000, CRC(982da0d1) SHA1(d819a587905624d793988f2ea726783da527d9f2) )
 1866      ROM_CONTINUE(          0x00000, 0x08000 )   /* the two halves are swapped */
 1867      ROM_LOAD( "ei28.9f",   0x18000, 0x08000, CRC(f01ebb3b) SHA1(1686690cb0c87d9e687b2abb4896cf285ab8378f) )
 1868      ROM_CONTINUE(          0x10000, 0x08000 )
 1869  
 1870      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 1871      ROM_LOAD( "ei15.16c",  0x00000, 0x10000, CRC(a38a7d30) SHA1(5cb1fb97605829fc733c79a7e169fa52adc6863b) )
 1872      ROM_LOAD( "ei16.17c",  0x10000, 0x08000, CRC(17e42633) SHA1(405f5296a741901677cca978a1b287d894eb1e54) )
 1873      ROM_LOAD( "ei11.16a",  0x20000, 0x10000, CRC(3a77326c) SHA1(4de81752329cde6210a9c250a9f8ebe3dad9fe92) )
 1874      ROM_LOAD( "ei12.17a",  0x30000, 0x08000, CRC(fea2a134) SHA1(525dd5f48993db1fe1e3c095442884178f75e8e0) )
 1875      ROM_LOAD( "ei13.13c",  0x40000, 0x10000, CRC(e5ae2751) SHA1(4e4a3c68b11e9b0c8da70121b23296128063d4e9) )
 1876      ROM_LOAD( "ei14.14c",  0x50000, 0x08000, CRC(e83c760a) SHA1(d08db381658b8b3288c5eaa9048a906126e0f712) )
 1877      ROM_LOAD( "ei09.13a",  0x60000, 0x10000, CRC(6901e628) SHA1(1162c8cee20450780774cad54a9af40ebf0f0826) )
 1878      ROM_LOAD( "ei10.14a",  0x70000, 0x08000, CRC(eeee8a1a) SHA1(2bf8378ff38f6a7c7cbd4cbd489de25cb1f0fe71) )
 1879  
 1880      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 1881      ROM_LOAD( "ei08.2c",   0x0000, 0x10000, CRC(3c87463e) SHA1(f17c98507b562e91e9b27599614b3249fe68ff7a) )
 1882  ROM_END
 1883  
 1884  ROM_START( drgninja )
 1885      ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code, middle 0x20000 unused */
 1886      ROM_LOAD16_BYTE( "eg04.3c",  0x00000, 0x10000, CRC(41b8b3f8) SHA1(0ab143b9f7a5f857cfd2053c24fa5213ce7641e4) )
 1887      ROM_LOAD16_BYTE( "eg01.3a",  0x00001, 0x10000, CRC(e08e6885) SHA1(641eaf4ef6c8bfbc39611f5f81765f7915ae9d9f) )
 1888      ROM_LOAD16_BYTE( "eg06.6c",  0x40000, 0x10000, CRC(2b81faf7) SHA1(6d10c29f5ee06856843d83e77ba24c2b6e00a9cb) )
 1889      ROM_LOAD16_BYTE( "eg03.6a",  0x40001, 0x10000, CRC(c52c2e9d) SHA1(399f2b7df9d558c8f33bf1a7c8048c62e0f54cec) )
 1890  
 1891      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 1892      ROM_LOAD( "eg07.8a",   0x8000, 0x8000, CRC(001d2f51) SHA1(f186671f0450ccf9201577a5caf0efc490c6645e) )
 1893  
 1894      ROM_REGION( 0x1000, "mcu", 0 )  /* i8751 microcontroller */
 1895      ROM_LOAD( "i8751",     0x0000, 0x1000, NO_DUMP )
 1896  
 1897      /* various graphic and sound roms also differ when compared to baddudes */
 1898  
 1899      ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
 1900      //ROM_LOAD( "drgninja.25",  0x00000, 0x08000, CRC(6791bc20) SHA1(7240b2688cda04ee9ea331472a84fbffc85b8e90) )
 1901      // the rom below was found on a genuine 'dragonninja' pcb, compared to the other ROM it has the 'bad dudes' (unused) logo
 1902      // partially erased, and a bad pixel on the left arrow character.  Is the other rom a cleaned up hack, or from a bootleg,
 1903      // or did Data East actually clean it up on a later PCB?
 1904      ROM_LOAD( "eg25.15j",  0x00000, 0x08000, CRC(dd557b19) SHA1(ce1e76aeb7e147f373bb48dbc1becc1601953499) ) // different to baddudes
 1905      ROM_LOAD( "eg26.16j",  0x08000, 0x08000, CRC(5d75fc8f) SHA1(92947dd78bfe8067fb5f645fa1ef212e48b69c70) ) // different to baddudes
 1906  
 1907      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 1908      ROM_LOAD( "eg18.14d",  0x00000, 0x10000, CRC(05cfc3e5) SHA1(a0163921c77dc9706463a402c3dd45ec4341cd21) )
 1909      ROM_LOAD( "eg20.17d",  0x10000, 0x10000, CRC(e11e988f) SHA1(0c59f0d8d1abe414c7e1ebd49d454179fed2cd00) )
 1910      ROM_LOAD( "eg22.14f",  0x20000, 0x10000, CRC(b893d880) SHA1(99e228174677f2e3e96154f77bfa9bf0f1c0a6a5) )
 1911      ROM_LOAD( "eg24.17f",  0x30000, 0x10000, CRC(6f226dda) SHA1(65ebb16a292c57d49c135fce7ed7537146226eb5) )
 1912  
 1913      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 1914      ROM_LOAD( "eg30.9j",   0x08000, 0x08000, CRC(2438e67e) SHA1(5f143aeb83606a2c64d0b31bfee38156d231dcc9) )
 1915      ROM_CONTINUE(          0x00000, 0x08000 )   /* the two halves are swapped */
 1916      ROM_LOAD( "eg28.9f",   0x18000, 0x08000, CRC(5c692ab3) SHA1(4c58ff50833f869575f1a15c776fbf1429944fab) )
 1917      ROM_CONTINUE(          0x10000, 0x08000 )
 1918  
 1919      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 1920      ROM_LOAD( "eg15.16c",  0x00000, 0x10000, CRC(5617d67f) SHA1(8f684de27ae79c4d35720706cdd2733af0e0a9cc) ) // different to baddudes
 1921      ROM_LOAD( "eg16.17c",  0x10000, 0x08000, CRC(17e42633) SHA1(405f5296a741901677cca978a1b287d894eb1e54) )
 1922      ROM_LOAD( "eg11.16a",  0x20000, 0x10000, CRC(ba83e8d8) SHA1(63092a5d0da0c9228a72a83b43a67a47b1388724) ) // different to baddudes
 1923      ROM_LOAD( "eg12.17a",  0x30000, 0x08000, CRC(fea2a134) SHA1(525dd5f48993db1fe1e3c095442884178f75e8e0) )
 1924      ROM_LOAD( "eg13.13c",  0x40000, 0x10000, CRC(fd91e08e) SHA1(8998f020791c8830e963096dc7b8fcb430d041d4) ) // different to baddudes
 1925      ROM_LOAD( "eg14.14c",  0x50000, 0x08000, CRC(e83c760a) SHA1(d08db381658b8b3288c5eaa9048a906126e0f712) )
 1926      ROM_LOAD( "eg09.13a",  0x60000, 0x10000, CRC(601b7b23) SHA1(c1c665614f1377bc47720382b25c965266a2593f)) // different to baddudes
 1927      ROM_LOAD( "eg10.14a",  0x70000, 0x08000, CRC(eeee8a1a) SHA1(2bf8378ff38f6a7c7cbd4cbd489de25cb1f0fe71) )
 1928  
 1929      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 1930      ROM_LOAD( "eg08.2c",   0x0000, 0x10000, CRC(92f2c916) SHA1(38b4ed81edcc2069b096591bdc5baab8b9edfa9a) ) // different to baddudes
 1931  ROM_END
 1932  
 1933  ROM_START( drgninjab )
 1934      ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code, middle 0x20000 unused */
 1935      ROM_LOAD16_BYTE( "n-12.d2",  0x00000, 0x10000, CRC(5a70eb52) SHA1(26fd48ea71cd5196e3907eebcf1234f44a3d7dba) )
 1936      ROM_LOAD16_BYTE( "n-11.a2",  0x00001, 0x10000, CRC(3887eb92) SHA1(a8650ce128927955497540d7c6fbd23516afdb24) )
 1937      ROM_LOAD16_BYTE( "eg06.6c",  0x40000, 0x10000, CRC(2b81faf7) SHA1(6d10c29f5ee06856843d83e77ba24c2b6e00a9cb) )
 1938      ROM_LOAD16_BYTE( "eg03.6a",  0x40001, 0x10000, CRC(c52c2e9d) SHA1(399f2b7df9d558c8f33bf1a7c8048c62e0f54cec) )
 1939  
 1940      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 1941      ROM_LOAD( "eg07.8a",   0x8000, 0x8000, CRC(001d2f51) SHA1(f186671f0450ccf9201577a5caf0efc490c6645e) )
 1942  
 1943      ROM_REGION( 0x1000, "mcu", 0 )  /* i8751 microcontroller */
 1944      ROM_LOAD( "i8751",     0x0000, 0x1000, NO_DUMP )
 1945  
 1946      /* various graphic and sound roms also differ when compared to baddudes */
 1947  
 1948      ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
 1949      //ROM_LOAD( "drgninja.25",  0x00000, 0x08000, CRC(6791bc20) SHA1(7240b2688cda04ee9ea331472a84fbffc85b8e90) )
 1950      // the rom below was found on a genuine 'dragonninja' pcb, compared to the other ROM it has the 'bad dudes' (unused) logo
 1951      // partially erased, and a bad pixel on the left arrow character.  Is the other rom a cleaned up hack, or from a bootleg,
 1952      // or did Data East actually clean it up on a later PCB?
 1953      ROM_LOAD( "eg25.15j",  0x00000, 0x08000, CRC(dd557b19) SHA1(ce1e76aeb7e147f373bb48dbc1becc1601953499) ) // different to baddudes
 1954      ROM_LOAD( "eg26.16j",  0x08000, 0x08000, CRC(5d75fc8f) SHA1(92947dd78bfe8067fb5f645fa1ef212e48b69c70) ) // different to baddudes
 1955  
 1956      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 1957      ROM_LOAD( "eg18.14d",  0x00000, 0x10000, CRC(05cfc3e5) SHA1(a0163921c77dc9706463a402c3dd45ec4341cd21) )
 1958      ROM_LOAD( "eg20.17d",  0x10000, 0x10000, CRC(e11e988f) SHA1(0c59f0d8d1abe414c7e1ebd49d454179fed2cd00) )
 1959      ROM_LOAD( "eg22.14f",  0x20000, 0x10000, CRC(b893d880) SHA1(99e228174677f2e3e96154f77bfa9bf0f1c0a6a5) )
 1960      ROM_LOAD( "eg24.17f",  0x30000, 0x10000, CRC(6f226dda) SHA1(65ebb16a292c57d49c135fce7ed7537146226eb5) )
 1961  
 1962      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 1963      ROM_LOAD( "eg30.9j",   0x08000, 0x08000, CRC(2438e67e) SHA1(5f143aeb83606a2c64d0b31bfee38156d231dcc9) )
 1964      ROM_CONTINUE(          0x00000, 0x08000 )   /* the two halves are swapped */
 1965      ROM_LOAD( "eg28.9f",   0x18000, 0x08000, CRC(5c692ab3) SHA1(4c58ff50833f869575f1a15c776fbf1429944fab) )
 1966      ROM_CONTINUE(          0x10000, 0x08000 )
 1967  
 1968      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 1969      ROM_LOAD( "eg15.16c",  0x00000, 0x10000, CRC(5617d67f) SHA1(8f684de27ae79c4d35720706cdd2733af0e0a9cc) ) // different to baddudes
 1970      ROM_LOAD( "eg16.17c",  0x10000, 0x08000, CRC(17e42633) SHA1(405f5296a741901677cca978a1b287d894eb1e54) )
 1971      ROM_LOAD( "eg11.16a",  0x20000, 0x10000, CRC(ba83e8d8) SHA1(63092a5d0da0c9228a72a83b43a67a47b1388724) ) // different to baddudes
 1972      ROM_LOAD( "eg12.17a",  0x30000, 0x08000, CRC(fea2a134) SHA1(525dd5f48993db1fe1e3c095442884178f75e8e0) )
 1973      ROM_LOAD( "eg13.13c",  0x40000, 0x10000, CRC(fd91e08e) SHA1(8998f020791c8830e963096dc7b8fcb430d041d4) ) // different to baddudes
 1974      ROM_LOAD( "eg14.14c",  0x50000, 0x08000, CRC(e83c760a) SHA1(d08db381658b8b3288c5eaa9048a906126e0f712) )
 1975      ROM_LOAD( "eg09.13a",  0x60000, 0x10000, CRC(601b7b23) SHA1(c1c665614f1377bc47720382b25c965266a2593f)) // different to baddudes
 1976      ROM_LOAD( "eg10.14a",  0x70000, 0x08000, CRC(eeee8a1a) SHA1(2bf8378ff38f6a7c7cbd4cbd489de25cb1f0fe71) )
 1977  
 1978      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 1979      ROM_LOAD( "eg08.2c",   0x0000, 0x10000, CRC(92f2c916) SHA1(38b4ed81edcc2069b096591bdc5baab8b9edfa9a) ) // different to baddudes
 1980  ROM_END
 1981  
 1982  ROM_START( birdtry )
 1983      ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */
 1984      ROM_LOAD16_BYTE( "ek-04.bin",     0x00000, 0x10000, CRC(5f0f4686) SHA1(5eea74f5626339ebd50e623029f21f1cd0f93135) )
 1985      ROM_LOAD16_BYTE( "ek-01.bin",     0x00001, 0x10000, CRC(47f470db) SHA1(8fcb043d02e1c04c8517781715da4dd4ee3bb8fb) )
 1986      ROM_LOAD16_BYTE( "ek-05.bin",     0x20000, 0x10000, CRC(b508cffd) SHA1(c1861a2420d99e19d889881f9164fe4ff667a1be) )
 1987      ROM_LOAD16_BYTE( "ek-02.bin",     0x20001, 0x10000, CRC(0195d989) SHA1(cff48d57b2085263e12413ae19757cdcc7028282) )
 1988      ROM_LOAD16_BYTE( "ek-06.bin",     0x40000, 0x10000, CRC(301d57d8) SHA1(64fd77aa2fbb235c86f0f84603e5272b4f4bba85) )
 1989      ROM_LOAD16_BYTE( "ek-03.bin",     0x40001, 0x10000, CRC(73b0acc5) SHA1(76b79c9f02de2e53093ded66a1639b40cd2640e8) )
 1990  
 1991      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 1992      ROM_LOAD( "ek-07.bin",     0x8000, 0x8000, CRC(236549bc) SHA1(1f664a277b3451b7905638abdf98c7e428b2e935) )
 1993  
 1994      ROM_REGION( 0x1000, "mcu", 0 )  /* i8751 microcontroller */
 1995      ROM_LOAD( "i8751",     0x0000, 0x1000, NO_DUMP )
 1996  
 1997      ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
 1998      ROM_LOAD( "ek-25.bin",     0x00000, 0x08000, CRC(4df134ad) SHA1(f2cfa7e3fc4a2ac40897c2600c901ff75237e081) )
 1999      ROM_LOAD( "ek-26.bin",     0x08000, 0x08000, CRC(a00d3e8e) SHA1(3ac8511d55a684a5b2bc05d8d520169447a66840) )
 2000  
 2001      ROM_REGION( 0x80000, "gfx2", 0 ) /* tiles */
 2002      ROM_LOAD( "ek-18.bin",     0x00000, 0x10000, CRC(9886fb70) SHA1(d36c41bfe217affab7f9deec64ff3f12e3efa28c) )
 2003      ROM_LOAD( "ek-17.bin",     0x10000, 0x10000, CRC(bed91bf7) SHA1(f0ffc557a4c216a5a2e180b4c2366e7b49630064) )
 2004      ROM_LOAD( "ek-20.bin",     0x20000, 0x10000, CRC(45d53965) SHA1(d54d33cc82e099bcb511de8ee26cdcc64a0b8f1d) )
 2005      ROM_LOAD( "ek-19.bin",     0x30000, 0x10000, CRC(c2949dd2) SHA1(d4317f8e0d9957feda54ee6d05aafb3f74f243d1) )
 2006      ROM_LOAD( "ek-22.bin",     0x40000, 0x10000, CRC(7f2cc80a) SHA1(f2539515fcf0b6dc90134d399baf779c50b19c0d) )
 2007      ROM_LOAD( "ek-21.bin",     0x50000, 0x10000, CRC(281bc793) SHA1(836fc2900b7197c886c23d9eeb1a80aed85c4d13) )
 2008      ROM_LOAD( "ek-24.bin",     0x60000, 0x10000, CRC(2244cc75) SHA1(67c9868927319abe80a932203e8ac6595ae455b3) )
 2009      ROM_LOAD( "ek-23.bin",     0x70000, 0x10000, CRC(d0ed0116) SHA1(a35e64ecac57585b83e830a1bf90a402c931f071) )
 2010  
 2011      ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASEFF ) /* tiles */
 2012      /* This game doesn't have the extra playfield chip, so no roms */
 2013  
 2014      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2015      ROM_LOAD( "ek-15.bin",     0x00000, 0x10000, CRC(a6a041a3) SHA1(3b8d18d5821e6d354ed97a4f547f1b2bee8674f5) )
 2016      ROM_LOAD( "ek-16.bin",     0x10000, 0x08000, CRC(784f62b0) SHA1(b68b234a5f469149d481645290a3251667bdab27) )
 2017      ROM_LOAD( "ek-11.bin",     0x20000, 0x10000, CRC(9224a6b9) SHA1(547c22db1728a85035a682eb54ce654a98a4ba3d) )
 2018      ROM_LOAD( "ek-12.bin",     0x30000, 0x08000, CRC(12deecfa) SHA1(22e33ccc6623957533028f720e9a746f36217ded) )
 2019      ROM_LOAD( "ek-13.bin",     0x40000, 0x10000, CRC(1f023459) SHA1(e502edb4078168df4677a6d3aa43770eb8e49caa) )
 2020      ROM_LOAD( "ek-14.bin",     0x50000, 0x08000, CRC(57d54943) SHA1(9639fad61919652c1564b24926845d228d016ca0) )
 2021      ROM_LOAD( "ek-09.bin",     0x60000, 0x10000, CRC(6d2d488a) SHA1(40b21a4bc8a4641a6f80d7579e32fe9d69eb42f1) )
 2022      ROM_LOAD( "ek-10.bin",     0x70000, 0x08000, CRC(580ba206) SHA1(8e57e4ef8c732b85e494bd6ec5da6566f27540e6) )
 2023  
 2024      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2025      ROM_LOAD( "ek-08.bin",     0x0000, 0x10000, CRC(be3db6cb) SHA1(4e8b8e0bef3a3f36d7e641e27b5f48c8fe9a8b7f) )
 2026  ROM_END
 2027  
 2028  ROM_START( robocop )
 2029      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2030      ROM_LOAD16_BYTE( "ep05-4.11c", 0x00000, 0x10000, CRC(29c35379) SHA1(a352c2d0dff843c1e0b5cade506a8b33c2d781f1) )
 2031      ROM_LOAD16_BYTE( "ep01-4.11b", 0x00001, 0x10000, CRC(77507c69) SHA1(843b678b4a297d6d99ea7d797dedde33e5003119) )
 2032      ROM_LOAD16_BYTE( "ep04-3", 0x20000, 0x10000, CRC(39181778) SHA1(f91b63e541ef547d34d144c80bc0344b6acf8de0) )
 2033      ROM_LOAD16_BYTE( "ep00-3", 0x20001, 0x10000, CRC(e128541f) SHA1(c123b6ba282b552890319d97348015361264fa3b) )
 2034  
 2035      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 2036      ROM_LOAD( "ep03-3", 0x08000, 0x08000, CRC(5b164b24) SHA1(b217a2ac8b26aebd208631a13030487ed27d232e) )
 2037  
 2038      ROM_REGION( 0x200000, "sub", 0 )    /* HuC6280 CPU */
 2039      ROM_LOAD( "en_24_mb7124e.a2", 0x01e00, 0x0200, CRC(b8e2ca98) SHA1(bd1e193c544dc17a665aa6c4d3b844775ed08b43) )
 2040  
 2041      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2042      ROM_LOAD( "ep23", 0x00000, 0x10000, CRC(a77e4ab1) SHA1(d06cc847192b6c7f642e4ff7128e298d0aa034b2) )
 2043      ROM_LOAD( "ep22", 0x10000, 0x10000, CRC(9fbd6903) SHA1(9ac6ac8a18c23e915e8ae3782867d10c0bd65778) )
 2044  
 2045      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 2046      ROM_LOAD( "ep20", 0x00000, 0x10000, CRC(1d8d38b8) SHA1(9add6349f8a578fb86b678cef921d6ec0cfccdad) )
 2047      ROM_LOAD( "ep21", 0x10000, 0x10000, CRC(187929b2) SHA1(deca1f0a52584769caee1d2302617aa957c56a71) )
 2048      ROM_LOAD( "ep18", 0x20000, 0x10000, CRC(b6580b5e) SHA1(ee216d8db89b8cb7a51a4e19bf6f17788547156b) )
 2049      ROM_LOAD( "ep19", 0x30000, 0x10000, CRC(9bad01c7) SHA1(947c7f9d0facaea13a924274adde0e996be7b999) )
 2050  
 2051      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2052      ROM_LOAD( "ep14", 0x00000, 0x08000, CRC(ca56ceda) SHA1(edbaa29fc166cddf071ff5e59cfcfb7eeb127d68) )
 2053      ROM_LOAD( "ep15", 0x08000, 0x08000, CRC(a945269c) SHA1(de0b387e8699298f7682d6d7ca803a209888f7a1) )
 2054      ROM_LOAD( "ep16", 0x10000, 0x08000, CRC(e7fa4d58) SHA1(32e3f649b4f112a4e6be00068473b82c627bc8d1) )
 2055      ROM_LOAD( "ep17", 0x18000, 0x08000, CRC(84aae89d) SHA1(037520bd0f291f862c2211a6f35b2a8a54f10b2a) )
 2056  
 2057      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2058      ROM_LOAD( "ep07", 0x00000, 0x10000, CRC(495d75cf) SHA1(0ffe677d53b7675073902e9bd40e4150f2cdfb1a) )
 2059      ROM_LOAD( "ep06", 0x10000, 0x08000, CRC(a2ae32e2) SHA1(4e8182205563da9d50a831c65951645e278b03e6) )
 2060      ROM_LOAD( "ep11", 0x20000, 0x10000, CRC(62fa425a) SHA1(be88c1a6436df8a456c405822e28c472e3e79a69) )
 2061      ROM_LOAD( "ep10", 0x30000, 0x08000, CRC(cce3bd95) SHA1(00bbb197824d970b0e404167ca4ae53e1955ad94) )
 2062      ROM_LOAD( "ep09", 0x40000, 0x10000, CRC(11bed656) SHA1(6a7d984a32982d9aef8ea7d8a720925036e7046e) )
 2063      ROM_LOAD( "ep08", 0x50000, 0x08000, CRC(c45c7b4c) SHA1(70e3e475fe767eefa4cc1d6ca052271a099ff7a8) )
 2064      ROM_LOAD( "ep13", 0x60000, 0x10000, CRC(8fca9f28) SHA1(cac85bf2b66e49e22c33c85bdb5712feef6aae7e) )
 2065      ROM_LOAD( "ep12", 0x70000, 0x08000, CRC(3cd1d0c3) SHA1(ca3546cf51ebb10dfa4e78954f0212e8fcdb3d57) )
 2066  
 2067      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2068      ROM_LOAD( "ep02", 0x00000, 0x10000, CRC(711ce46f) SHA1(939a8545e53776ff2180d2c7e63bc997689c088e) )
 2069  
 2070  /*
 2071  MB7116E at 12C on CPU board - Removing this causes all sprites to disappear
 2072  
 2073  MB7124E at 12A on ROM Board (although the board
 2074  is screened as MB7130) - Removing this causes the
 2075  display to disappear, although coining up makes
 2076  the correct text appear (and sound to play),
 2077  intro graphics appear on starting a game, then
 2078  nothing, it won't even play blind (although the
 2079  coin up sound still plays on coin insert)
 2080  */
 2081      ROM_REGION( 0xc00, "proms", 0 ) /* PROMs */
 2082      ROM_LOAD( "mb7116e.12c", 0x000, 0x400, CRC(c288a256) SHA1(cb6813507cfa6fa0b74f4692247fd1d4466c659b) )
 2083      ROM_LOAD( "mb7122e.17e", 0x400, 0x800, CRC(64764ecf) SHA1(9385a8a2fae8b8f6310194331a77d97eca7917bd) )
 2084  ROM_END
 2085  
 2086  ROM_START( robocopw )
 2087      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2088      ROM_LOAD16_BYTE( "ep05-3", 0x00000, 0x10000, CRC(ba69bf84) SHA1(a9d4d94d1b936d43a610cfe02cc03bdeddb81ac6) )
 2089      ROM_LOAD16_BYTE( "ep01-3", 0x00001, 0x10000, CRC(2a9f6e2c) SHA1(74aeb5be36619d90034d4a8139c3d043fe8d33c2) )
 2090      ROM_LOAD16_BYTE( "ep04-3", 0x20000, 0x10000, CRC(39181778) SHA1(f91b63e541ef547d34d144c80bc0344b6acf8de0) )
 2091      ROM_LOAD16_BYTE( "ep00-3", 0x20001, 0x10000, CRC(e128541f) SHA1(c123b6ba282b552890319d97348015361264fa3b) )
 2092  
 2093      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 2094      ROM_LOAD( "ep03-3", 0x08000, 0x08000, CRC(5b164b24) SHA1(b217a2ac8b26aebd208631a13030487ed27d232e) )
 2095  
 2096      ROM_REGION( 0x200000, "sub", 0 )    /* HuC6280 CPU */
 2097      ROM_LOAD( "en_24.a2", 0x01e00, 0x0200, CRC(b8e2ca98) SHA1(bd1e193c544dc17a665aa6c4d3b844775ed08b43) )
 2098  
 2099      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2100      ROM_LOAD( "ep23", 0x00000, 0x10000, CRC(a77e4ab1) SHA1(d06cc847192b6c7f642e4ff7128e298d0aa034b2) )
 2101      ROM_LOAD( "ep22", 0x10000, 0x10000, CRC(9fbd6903) SHA1(9ac6ac8a18c23e915e8ae3782867d10c0bd65778) )
 2102  
 2103      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 2104      ROM_LOAD( "ep20", 0x00000, 0x10000, CRC(1d8d38b8) SHA1(9add6349f8a578fb86b678cef921d6ec0cfccdad) )
 2105      ROM_LOAD( "ep21", 0x10000, 0x10000, CRC(187929b2) SHA1(deca1f0a52584769caee1d2302617aa957c56a71) )
 2106      ROM_LOAD( "ep18", 0x20000, 0x10000, CRC(b6580b5e) SHA1(ee216d8db89b8cb7a51a4e19bf6f17788547156b) )
 2107      ROM_LOAD( "ep19", 0x30000, 0x10000, CRC(9bad01c7) SHA1(947c7f9d0facaea13a924274adde0e996be7b999) )
 2108  
 2109      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2110      ROM_LOAD( "ep14", 0x00000, 0x08000, CRC(ca56ceda) SHA1(edbaa29fc166cddf071ff5e59cfcfb7eeb127d68) )
 2111      ROM_LOAD( "ep15", 0x08000, 0x08000, CRC(a945269c) SHA1(de0b387e8699298f7682d6d7ca803a209888f7a1) )
 2112      ROM_LOAD( "ep16", 0x10000, 0x08000, CRC(e7fa4d58) SHA1(32e3f649b4f112a4e6be00068473b82c627bc8d1) )
 2113      ROM_LOAD( "ep17", 0x18000, 0x08000, CRC(84aae89d) SHA1(037520bd0f291f862c2211a6f35b2a8a54f10b2a) )
 2114  
 2115      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2116      ROM_LOAD( "ep07", 0x00000, 0x10000, CRC(495d75cf) SHA1(0ffe677d53b7675073902e9bd40e4150f2cdfb1a) )
 2117      ROM_LOAD( "ep06", 0x10000, 0x08000, CRC(a2ae32e2) SHA1(4e8182205563da9d50a831c65951645e278b03e6) )
 2118      ROM_LOAD( "ep11", 0x20000, 0x10000, CRC(62fa425a) SHA1(be88c1a6436df8a456c405822e28c472e3e79a69) )
 2119      ROM_LOAD( "ep10", 0x30000, 0x08000, CRC(cce3bd95) SHA1(00bbb197824d970b0e404167ca4ae53e1955ad94) )
 2120      ROM_LOAD( "ep09", 0x40000, 0x10000, CRC(11bed656) SHA1(6a7d984a32982d9aef8ea7d8a720925036e7046e) )
 2121      ROM_LOAD( "ep08", 0x50000, 0x08000, CRC(c45c7b4c) SHA1(70e3e475fe767eefa4cc1d6ca052271a099ff7a8) )
 2122      ROM_LOAD( "ep13", 0x60000, 0x10000, CRC(8fca9f28) SHA1(cac85bf2b66e49e22c33c85bdb5712feef6aae7e) )
 2123      ROM_LOAD( "ep12", 0x70000, 0x08000, CRC(3cd1d0c3) SHA1(ca3546cf51ebb10dfa4e78954f0212e8fcdb3d57) )
 2124  
 2125      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2126      ROM_LOAD( "ep02", 0x00000, 0x10000, CRC(711ce46f) SHA1(939a8545e53776ff2180d2c7e63bc997689c088e) )
 2127  ROM_END
 2128  
 2129  ROM_START( robocopj )
 2130      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2131      ROM_LOAD16_BYTE( "em05-1.c11", 0x00000, 0x10000, CRC(954ea8f4) SHA1(2efc6c6bf856bcd86aca439bf85ec9a5c2f89612) )
 2132      ROM_LOAD16_BYTE( "em01-1.b12", 0x00001, 0x10000, CRC(1b87b622) SHA1(4b17e6377a77e8529b038529c12fdb2bd8a5af25) )
 2133      ROM_LOAD16_BYTE( "ep04-3", 0x20000, 0x10000, CRC(39181778) SHA1(f91b63e541ef547d34d144c80bc0344b6acf8de0) )
 2134      ROM_LOAD16_BYTE( "ep00-3", 0x20001, 0x10000, CRC(e128541f) SHA1(c123b6ba282b552890319d97348015361264fa3b) )
 2135  
 2136      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 2137      ROM_LOAD( "ep03-3", 0x08000, 0x08000, CRC(5b164b24) SHA1(b217a2ac8b26aebd208631a13030487ed27d232e) )
 2138  
 2139      ROM_REGION( 0x200000, "sub", 0 )    /* HuC6280 CPU */
 2140      ROM_LOAD( "en_24.a2", 0x01e00, 0x0200, CRC(b8e2ca98) SHA1(bd1e193c544dc17a665aa6c4d3b844775ed08b43) )
 2141  
 2142      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2143      ROM_LOAD( "ep23", 0x00000, 0x10000, CRC(a77e4ab1) SHA1(d06cc847192b6c7f642e4ff7128e298d0aa034b2) )
 2144      ROM_LOAD( "ep22", 0x10000, 0x10000, CRC(9fbd6903) SHA1(9ac6ac8a18c23e915e8ae3782867d10c0bd65778) )
 2145  
 2146      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 2147      ROM_LOAD( "ep20", 0x00000, 0x10000, CRC(1d8d38b8) SHA1(9add6349f8a578fb86b678cef921d6ec0cfccdad) )
 2148      ROM_LOAD( "ep21", 0x10000, 0x10000, CRC(187929b2) SHA1(deca1f0a52584769caee1d2302617aa957c56a71) )
 2149      ROM_LOAD( "ep18", 0x20000, 0x10000, CRC(b6580b5e) SHA1(ee216d8db89b8cb7a51a4e19bf6f17788547156b) )
 2150      ROM_LOAD( "ep19", 0x30000, 0x10000, CRC(9bad01c7) SHA1(947c7f9d0facaea13a924274adde0e996be7b999) )
 2151  
 2152      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2153      ROM_LOAD( "ep14", 0x00000, 0x08000, CRC(ca56ceda) SHA1(edbaa29fc166cddf071ff5e59cfcfb7eeb127d68) )
 2154      ROM_LOAD( "ep15", 0x08000, 0x08000, CRC(a945269c) SHA1(de0b387e8699298f7682d6d7ca803a209888f7a1) )
 2155      ROM_LOAD( "ep16", 0x10000, 0x08000, CRC(e7fa4d58) SHA1(32e3f649b4f112a4e6be00068473b82c627bc8d1) )
 2156      ROM_LOAD( "ep17", 0x18000, 0x08000, CRC(84aae89d) SHA1(037520bd0f291f862c2211a6f35b2a8a54f10b2a) )
 2157  
 2158      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2159      ROM_LOAD( "ep07", 0x00000, 0x10000, CRC(495d75cf) SHA1(0ffe677d53b7675073902e9bd40e4150f2cdfb1a) )
 2160      ROM_LOAD( "ep06", 0x10000, 0x08000, CRC(a2ae32e2) SHA1(4e8182205563da9d50a831c65951645e278b03e6) )
 2161      ROM_LOAD( "ep11", 0x20000, 0x10000, CRC(62fa425a) SHA1(be88c1a6436df8a456c405822e28c472e3e79a69) )
 2162      ROM_LOAD( "ep10", 0x30000, 0x08000, CRC(cce3bd95) SHA1(00bbb197824d970b0e404167ca4ae53e1955ad94) )
 2163      ROM_LOAD( "ep09", 0x40000, 0x10000, CRC(11bed656) SHA1(6a7d984a32982d9aef8ea7d8a720925036e7046e) )
 2164      ROM_LOAD( "ep08", 0x50000, 0x08000, CRC(c45c7b4c) SHA1(70e3e475fe767eefa4cc1d6ca052271a099ff7a8) )
 2165      ROM_LOAD( "ep13", 0x60000, 0x10000, CRC(8fca9f28) SHA1(cac85bf2b66e49e22c33c85bdb5712feef6aae7e) )
 2166      ROM_LOAD( "ep12", 0x70000, 0x08000, CRC(3cd1d0c3) SHA1(ca3546cf51ebb10dfa4e78954f0212e8fcdb3d57) )
 2167  
 2168      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2169      ROM_LOAD( "ep02", 0x00000, 0x10000, CRC(711ce46f) SHA1(939a8545e53776ff2180d2c7e63bc997689c088e) )
 2170  ROM_END
 2171  
 2172  ROM_START( robocopu )
 2173      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2174      ROM_LOAD16_BYTE( "ep05-1", 0x00000, 0x10000, CRC(8de5cb3d) SHA1(66eb87aa11697d0abdd0c265aaa2048ca3c80c18) )
 2175      ROM_LOAD16_BYTE( "ep01-1", 0x00001, 0x10000, CRC(b3c6bc02) SHA1(380dd241bebfdbdc93450b6cf562bccf8e3b8e27) )
 2176      ROM_LOAD16_BYTE( "ep04", 0x20000, 0x10000, CRC(c38b9d18) SHA1(683bc4ce8dac62ab9ce79679ad44dc9542b814c8) )
 2177      ROM_LOAD16_BYTE( "ep00", 0x20001, 0x10000, CRC(374c91aa) SHA1(d8bccc12278b754fe303eb75204b38126d401c3d) )
 2178  
 2179      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 2180      ROM_LOAD( "ep03", 0x08000, 0x08000, CRC(1089eab8) SHA1(088c570b12b681f6751d7ae48560726464bcb79e) )
 2181  
 2182      ROM_REGION( 0x200000, "sub", 0 )    /* HuC6280 CPU */
 2183      ROM_LOAD( "en_24.a2", 0x01e00, 0x0200, CRC(b8e2ca98) SHA1(bd1e193c544dc17a665aa6c4d3b844775ed08b43) )
 2184  
 2185      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2186      ROM_LOAD( "ep23", 0x00000, 0x10000, CRC(a77e4ab1) SHA1(d06cc847192b6c7f642e4ff7128e298d0aa034b2) )
 2187      ROM_LOAD( "ep22", 0x10000, 0x10000, CRC(9fbd6903) SHA1(9ac6ac8a18c23e915e8ae3782867d10c0bd65778) )
 2188  
 2189      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 2190      ROM_LOAD( "ep20", 0x00000, 0x10000, CRC(1d8d38b8) SHA1(9add6349f8a578fb86b678cef921d6ec0cfccdad) )
 2191      ROM_LOAD( "ep21", 0x10000, 0x10000, CRC(187929b2) SHA1(deca1f0a52584769caee1d2302617aa957c56a71) )
 2192      ROM_LOAD( "ep18", 0x20000, 0x10000, CRC(b6580b5e) SHA1(ee216d8db89b8cb7a51a4e19bf6f17788547156b) )
 2193      ROM_LOAD( "ep19", 0x30000, 0x10000, CRC(9bad01c7) SHA1(947c7f9d0facaea13a924274adde0e996be7b999) )
 2194  
 2195      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2196      ROM_LOAD( "ep14", 0x00000, 0x08000, CRC(ca56ceda) SHA1(edbaa29fc166cddf071ff5e59cfcfb7eeb127d68) )
 2197      ROM_LOAD( "ep15", 0x08000, 0x08000, CRC(a945269c) SHA1(de0b387e8699298f7682d6d7ca803a209888f7a1) )
 2198      ROM_LOAD( "ep16", 0x10000, 0x08000, CRC(e7fa4d58) SHA1(32e3f649b4f112a4e6be00068473b82c627bc8d1) )
 2199      ROM_LOAD( "ep17", 0x18000, 0x08000, CRC(84aae89d) SHA1(037520bd0f291f862c2211a6f35b2a8a54f10b2a) )
 2200  
 2201      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2202      ROM_LOAD( "ep07", 0x00000, 0x10000, CRC(495d75cf) SHA1(0ffe677d53b7675073902e9bd40e4150f2cdfb1a) )
 2203      ROM_LOAD( "ep06", 0x10000, 0x08000, CRC(a2ae32e2) SHA1(4e8182205563da9d50a831c65951645e278b03e6) )
 2204      ROM_LOAD( "ep11", 0x20000, 0x10000, CRC(62fa425a) SHA1(be88c1a6436df8a456c405822e28c472e3e79a69) )
 2205      ROM_LOAD( "ep10", 0x30000, 0x08000, CRC(cce3bd95) SHA1(00bbb197824d970b0e404167ca4ae53e1955ad94) )
 2206      ROM_LOAD( "ep09", 0x40000, 0x10000, CRC(11bed656) SHA1(6a7d984a32982d9aef8ea7d8a720925036e7046e) )
 2207      ROM_LOAD( "ep08", 0x50000, 0x08000, CRC(c45c7b4c) SHA1(70e3e475fe767eefa4cc1d6ca052271a099ff7a8) )
 2208      ROM_LOAD( "ep13", 0x60000, 0x10000, CRC(8fca9f28) SHA1(cac85bf2b66e49e22c33c85bdb5712feef6aae7e) )
 2209      ROM_LOAD( "ep12", 0x70000, 0x08000, CRC(3cd1d0c3) SHA1(ca3546cf51ebb10dfa4e78954f0212e8fcdb3d57) )
 2210  
 2211      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2212      ROM_LOAD( "ep02", 0x00000, 0x10000, CRC(711ce46f) SHA1(939a8545e53776ff2180d2c7e63bc997689c088e) )
 2213  ROM_END
 2214  
 2215  ROM_START( robocopu0 )
 2216      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2217      ROM_LOAD16_BYTE( "ep05", 0x00000, 0x10000, CRC(c465bdd8) SHA1(a1d5435ea2664ac38db84577b97ba74304e09473) )
 2218      ROM_LOAD16_BYTE( "ep01", 0x00001, 0x10000, CRC(1352d36e) SHA1(7bfdce66020b6c9465b768bac2ba7c9fe458242e) )
 2219      ROM_LOAD16_BYTE( "ep04", 0x20000, 0x10000, CRC(c38b9d18) SHA1(683bc4ce8dac62ab9ce79679ad44dc9542b814c8) )
 2220      ROM_LOAD16_BYTE( "ep00", 0x20001, 0x10000, CRC(374c91aa) SHA1(d8bccc12278b754fe303eb75204b38126d401c3d) )
 2221  
 2222      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 2223      ROM_LOAD( "ep03", 0x08000, 0x08000, CRC(1089eab8) SHA1(088c570b12b681f6751d7ae48560726464bcb79e) )
 2224  
 2225      ROM_REGION( 0x200000, "sub", 0 )    /* HuC6280 CPU */
 2226      ROM_LOAD( "en_24.a2", 0x01e00, 0x0200, CRC(b8e2ca98) SHA1(bd1e193c544dc17a665aa6c4d3b844775ed08b43) )
 2227  
 2228      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2229      ROM_LOAD( "ep23", 0x00000, 0x10000, CRC(a77e4ab1) SHA1(d06cc847192b6c7f642e4ff7128e298d0aa034b2) )
 2230      ROM_LOAD( "ep22", 0x10000, 0x10000, CRC(9fbd6903) SHA1(9ac6ac8a18c23e915e8ae3782867d10c0bd65778) )
 2231  
 2232      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 2233      ROM_LOAD( "ep20", 0x00000, 0x10000, CRC(1d8d38b8) SHA1(9add6349f8a578fb86b678cef921d6ec0cfccdad) )
 2234      ROM_LOAD( "ep21", 0x10000, 0x10000, CRC(187929b2) SHA1(deca1f0a52584769caee1d2302617aa957c56a71) )
 2235      ROM_LOAD( "ep18", 0x20000, 0x10000, CRC(b6580b5e) SHA1(ee216d8db89b8cb7a51a4e19bf6f17788547156b) )
 2236      ROM_LOAD( "ep19", 0x30000, 0x10000, CRC(9bad01c7) SHA1(947c7f9d0facaea13a924274adde0e996be7b999) )
 2237  
 2238      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2239      ROM_LOAD( "ep14", 0x00000, 0x08000, CRC(ca56ceda) SHA1(edbaa29fc166cddf071ff5e59cfcfb7eeb127d68) )
 2240      ROM_LOAD( "ep15", 0x08000, 0x08000, CRC(a945269c) SHA1(de0b387e8699298f7682d6d7ca803a209888f7a1) )
 2241      ROM_LOAD( "ep16", 0x10000, 0x08000, CRC(e7fa4d58) SHA1(32e3f649b4f112a4e6be00068473b82c627bc8d1) )
 2242      ROM_LOAD( "ep17", 0x18000, 0x08000, CRC(84aae89d) SHA1(037520bd0f291f862c2211a6f35b2a8a54f10b2a) )
 2243  
 2244      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2245      ROM_LOAD( "ep07", 0x00000, 0x10000, CRC(495d75cf) SHA1(0ffe677d53b7675073902e9bd40e4150f2cdfb1a) )
 2246      ROM_LOAD( "ep06", 0x10000, 0x08000, CRC(a2ae32e2) SHA1(4e8182205563da9d50a831c65951645e278b03e6) )
 2247      ROM_LOAD( "ep11", 0x20000, 0x10000, CRC(62fa425a) SHA1(be88c1a6436df8a456c405822e28c472e3e79a69) )
 2248      ROM_LOAD( "ep10", 0x30000, 0x08000, CRC(cce3bd95) SHA1(00bbb197824d970b0e404167ca4ae53e1955ad94) )
 2249      ROM_LOAD( "ep09", 0x40000, 0x10000, CRC(11bed656) SHA1(6a7d984a32982d9aef8ea7d8a720925036e7046e) )
 2250      ROM_LOAD( "ep08", 0x50000, 0x08000, CRC(c45c7b4c) SHA1(70e3e475fe767eefa4cc1d6ca052271a099ff7a8) )
 2251      ROM_LOAD( "ep13", 0x60000, 0x10000, CRC(8fca9f28) SHA1(cac85bf2b66e49e22c33c85bdb5712feef6aae7e) )
 2252      ROM_LOAD( "ep12", 0x70000, 0x08000, CRC(3cd1d0c3) SHA1(ca3546cf51ebb10dfa4e78954f0212e8fcdb3d57) )
 2253  
 2254      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2255      ROM_LOAD( "ep02", 0x00000, 0x10000, CRC(711ce46f) SHA1(939a8545e53776ff2180d2c7e63bc997689c088e) )
 2256  ROM_END
 2257  
 2258  ROM_START( robocopb )
 2259      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2260      ROM_LOAD16_BYTE( "robop_05.rom", 0x00000, 0x10000, CRC(bcef3e9b) SHA1(0ca099ea7428f877036e6e2a6daddfd9145ed9bb) )
 2261      ROM_LOAD16_BYTE( "robop_01.rom", 0x00001, 0x10000, CRC(c9803685) SHA1(13b3b0ebee24b4453685616e9a204b4ca6fb0053) )
 2262      ROM_LOAD16_BYTE( "robop_04.rom", 0x20000, 0x10000, CRC(9d7b79e0) SHA1(e0d901b9b3cd62f7c947da04f7447ebfa88bf44a) )
 2263      ROM_LOAD16_BYTE( "robop_00.rom", 0x20001, 0x10000, CRC(80ba64ab) SHA1(0688f1b483a265c7324f546d38a4a5ac5b1b9214) )
 2264  
 2265      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 Sound */
 2266      ROM_LOAD( "ep03-3", 0x08000, 0x08000, CRC(5b164b24) SHA1(b217a2ac8b26aebd208631a13030487ed27d232e) )
 2267  
 2268      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2269      ROM_LOAD( "ep23", 0x00000, 0x10000, CRC(a77e4ab1) SHA1(d06cc847192b6c7f642e4ff7128e298d0aa034b2) )
 2270      ROM_LOAD( "ep22", 0x10000, 0x10000, CRC(9fbd6903) SHA1(9ac6ac8a18c23e915e8ae3782867d10c0bd65778) )
 2271  
 2272      ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
 2273      ROM_LOAD( "ep20", 0x00000, 0x10000, CRC(1d8d38b8) SHA1(9add6349f8a578fb86b678cef921d6ec0cfccdad) )
 2274      ROM_LOAD( "ep21", 0x10000, 0x10000, CRC(187929b2) SHA1(deca1f0a52584769caee1d2302617aa957c56a71) )
 2275      ROM_LOAD( "ep18", 0x20000, 0x10000, CRC(b6580b5e) SHA1(ee216d8db89b8cb7a51a4e19bf6f17788547156b) )
 2276      ROM_LOAD( "ep19", 0x30000, 0x10000, CRC(9bad01c7) SHA1(947c7f9d0facaea13a924274adde0e996be7b999) )
 2277  
 2278      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2279      ROM_LOAD( "ep14", 0x00000, 0x08000, CRC(ca56ceda) SHA1(edbaa29fc166cddf071ff5e59cfcfb7eeb127d68) )
 2280      ROM_LOAD( "ep15", 0x08000, 0x08000, CRC(a945269c) SHA1(de0b387e8699298f7682d6d7ca803a209888f7a1) )
 2281      ROM_LOAD( "ep16", 0x10000, 0x08000, CRC(e7fa4d58) SHA1(32e3f649b4f112a4e6be00068473b82c627bc8d1) )
 2282      ROM_LOAD( "ep17", 0x18000, 0x08000, CRC(84aae89d) SHA1(037520bd0f291f862c2211a6f35b2a8a54f10b2a) )
 2283  
 2284      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2285      ROM_LOAD( "ep07", 0x00000, 0x10000, CRC(495d75cf) SHA1(0ffe677d53b7675073902e9bd40e4150f2cdfb1a) )
 2286      ROM_LOAD( "ep06", 0x10000, 0x08000, CRC(a2ae32e2) SHA1(4e8182205563da9d50a831c65951645e278b03e6) )
 2287      ROM_LOAD( "ep11", 0x20000, 0x10000, CRC(62fa425a) SHA1(be88c1a6436df8a456c405822e28c472e3e79a69) )
 2288      ROM_LOAD( "ep10", 0x30000, 0x08000, CRC(cce3bd95) SHA1(00bbb197824d970b0e404167ca4ae53e1955ad94) )
 2289      ROM_LOAD( "ep09", 0x40000, 0x10000, CRC(11bed656) SHA1(6a7d984a32982d9aef8ea7d8a720925036e7046e) )
 2290      ROM_LOAD( "ep08", 0x50000, 0x08000, CRC(c45c7b4c) SHA1(70e3e475fe767eefa4cc1d6ca052271a099ff7a8) )
 2291      ROM_LOAD( "ep13", 0x60000, 0x10000, CRC(8fca9f28) SHA1(cac85bf2b66e49e22c33c85bdb5712feef6aae7e) )
 2292      ROM_LOAD( "ep12", 0x70000, 0x08000, CRC(3cd1d0c3) SHA1(ca3546cf51ebb10dfa4e78954f0212e8fcdb3d57) )
 2293  
 2294      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2295      ROM_LOAD( "ep02", 0x00000, 0x10000, CRC(711ce46f) SHA1(939a8545e53776ff2180d2c7e63bc997689c088e) )
 2296  ROM_END
 2297  
 2298  /*
 2299  
 2300  AUTOMAT (bootleg ROBOCOP)
 2301  ^^^^^^^^^^^^^^^^^^^^^^^^^
 2302  
 2303  Dumped by Andrew Welburn on the evening of a day
 2304  of big snow! 02/02/09
 2305  
 2306  http://www.andys-arcade.com
 2307  
 2308  *************************************************
 2309  **Do not separate this text file from the roms.**
 2310  *************************************************
 2311  
 2312  Take a look at the photos in the archive, the roms
 2313  should be failry explanatory, and you should be
 2314  able to pick out the chips it uses.
 2315  
 2316  The most striking thing about this bootleg apart
 2317  from the obviously changed title screen is that
 2318  the music/melody is not right, they've copied the
 2319  digital sound effects, but appear to have ripepd
 2320  the music and circuit design from an earlier
 2321  capcom game, i can't work out whcih one, but
 2322  what an odd thing to do!
 2323  
 2324  you can see a youtube video of it runnign here:
 2325  http://uk.youtube.com/watch?v=Y-KvbKtqzaQ
 2326  
 2327  Rom 21 is full of 0's... i cleaned and re-dumped
 2328  it numerous times, but i just got 0's everytime.
 2329  It contains some of the the graphics for enemies
 2330  on the opening stage at the very least.
 2331  
 2332  enjoy..
 2333  
 2334  */
 2335  
 2336  ROM_START( automat )
 2337      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2338      ROM_LOAD16_BYTE( "5.bin", 0x00000, 0x10000, CRC(fb6faa74) SHA1(0af03c06193b5ba1422571b9504a7f655c608d94) )
 2339      ROM_LOAD16_BYTE( "2.bin", 0x00001, 0x10000, CRC(7ecf8309) SHA1(59dd50bcb528ece42a67154bcc4f432770420986) )
 2340      ROM_LOAD16_BYTE( "4.bin", 0x20000, 0x10000, CRC(9d7b79e0) SHA1(e0d901b9b3cd62f7c947da04f7447ebfa88bf44a) )
 2341      ROM_LOAD16_BYTE( "3.bin", 0x20001, 0x10000, CRC(e655f9c3) SHA1(d5e99d542303d009277ccfc245f877e4e28603c9) )
 2342  
 2343      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 Sound */
 2344      ROM_LOAD( "1.bin", 0x00000, 0x10000, CRC(72ea6024) SHA1(debd30219879ec01f43cc116a6cfa17209940ecc) )
 2345  
 2346      ROM_REGION( 0x40000, "gfxload1", 0 ) /* chars */
 2347      ROM_LOAD( "8.bin",  0x00000, 0x10000, CRC(dcfffc7a) SHA1(e250626473917d397381210ef536efbc93c46474) ) // y?
 2348      ROM_LOAD( "7.bin",  0x10000, 0x10000, CRC(40218082) SHA1(6a5c83d20fe110d642d5730c52e2796655fb66b4) ) // y
 2349      ROM_LOAD( "10.bin", 0x20000, 0x10000, CRC(957da6dd) SHA1(53490d80ef108e93f13440de13b58761b89a419a) ) // y
 2350      ROM_LOAD( "12.bin", 0x30000, 0x10000, CRC(00cd0990) SHA1(3fc498fcee2110001e376f5ee38d7dd361bd3ee3) ) // y
 2351  
 2352      /* copy out the chars */
 2353      ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) /* chars */
 2354      ROM_COPY( "gfxload1", 0x00000, 0x00000, 0x8000 )
 2355      ROM_COPY( "gfxload1", 0x10000, 0x08000, 0x8000 )
 2356      ROM_COPY( "gfxload1", 0x20000, 0x10000, 0x8000 )
 2357      ROM_COPY( "gfxload1", 0x30000, 0x18000, 0x8000 )
 2358  
 2359      ROM_REGION( 0x20000, "gfx3", ROMREGION_INVERT ) /* tiles */
 2360      ROM_COPY( "gfxload1", 0x08000, 0x00000, 0x8000 )
 2361      ROM_COPY( "gfxload1", 0x18000, 0x08000, 0x8000 )
 2362      ROM_COPY( "gfxload1", 0x28000, 0x10000, 0x8000 )
 2363      ROM_COPY( "gfxload1", 0x38000, 0x18000, 0x8000 )
 2364  
 2365      // we have to rearrange this with ROM_CONTINUE due to the way gfxdecode works */
 2366      ROM_REGION( 0x40000, "gfx2", ROMREGION_INVERT ) /* tiles */
 2367      ROM_LOAD( "9.bin",  0x00000, 0x2000, CRC(ccf91ce0) SHA1(c976eddcea48da6e7fbd28a4d5c48706d61cabfb) )
 2368      ROM_CONTINUE(       0x04000, 0x2000 )
 2369      ROM_CONTINUE(       0x08000, 0x2000 )
 2370      ROM_CONTINUE(       0x0c000, 0x2000 )
 2371      ROM_CONTINUE(       0x02000, 0x2000 )
 2372      ROM_CONTINUE(       0x06000, 0x2000 )
 2373      ROM_CONTINUE(       0x0a000, 0x2000 )
 2374      ROM_CONTINUE(       0x0e000, 0x2000 )
 2375      ROM_LOAD( "6.bin",  0x10000, 0x2000, CRC(5a557765) SHA1(f081323dad532fae6ec5d2875ffb1c394ac0bcf9) )
 2376      ROM_CONTINUE(       0x14000, 0x2000 )
 2377      ROM_CONTINUE(       0x18000, 0x2000 )
 2378      ROM_CONTINUE(       0x1c000, 0x2000 )
 2379      ROM_CONTINUE(       0x12000, 0x2000 )
 2380      ROM_CONTINUE(       0x16000, 0x2000 )
 2381      ROM_CONTINUE(       0x1a000, 0x2000 )
 2382      ROM_CONTINUE(       0x1e000, 0x2000 )
 2383      ROM_LOAD( "11.bin", 0x20000, 0x2000, CRC(8b196ab7) SHA1(030dc19f464db072c8dbbf043ae9334aa58510d0) )
 2384      ROM_CONTINUE(       0x24000, 0x2000 )
 2385      ROM_CONTINUE(       0x28000, 0x2000 )
 2386      ROM_CONTINUE(       0x2c000, 0x2000 )
 2387      ROM_CONTINUE(       0x22000, 0x2000 )
 2388      ROM_CONTINUE(       0x26000, 0x2000 )
 2389      ROM_CONTINUE(       0x2a000, 0x2000 )
 2390      ROM_CONTINUE(       0x2e000, 0x2000 )
 2391      ROM_LOAD( "13.bin", 0x30000, 0x2000, CRC(7f12ed0e) SHA1(9340611b85f9866d086970ed5e9c0c704616c330) )
 2392      ROM_CONTINUE(       0x34000, 0x2000 )
 2393      ROM_CONTINUE(       0x38000, 0x2000 )
 2394      ROM_CONTINUE(       0x3c000, 0x2000 )
 2395      ROM_CONTINUE(       0x32000, 0x2000 )
 2396      ROM_CONTINUE(       0x36000, 0x2000 )
 2397      ROM_CONTINUE(       0x3a000, 0x2000 )
 2398      ROM_CONTINUE(       0x3e000, 0x2000 )
 2399  
 2400      // the sprite data is the same as robocop, but with the bits in each byte reversed
 2401      // 21.bin was repaired with this knowledge as the chip was faulty
 2402      ROM_REGION( 0x80000, "gfx4", 0) /* sprites */
 2403      ROM_LOAD( "16.bin", 0x00000, 0x10000, CRC(e42e8675) SHA1(5b964477de8278ea330ffc2366e5fc7e10122ef8) )
 2404      ROM_LOAD( "17.bin", 0x10000, 0x08000, CRC(9a414c56) SHA1(017eb5a238e24cd6de50afd029c239993fc61a21) )
 2405      ROM_LOAD( "20.bin", 0x20000, 0x10000, CRC(7c62a2a1) SHA1(43a40355cdcbb17506f9634e8f12673287e79bd7) )
 2406      ROM_LOAD( "21.bin", 0x30000, 0x08000, CRC(ae59dccd) SHA1(e4ec6e9441bd7882a14768a7b7d8e79a7781f436) )
 2407      ROM_LOAD( "14.bin", 0x40000, 0x10000, CRC(674ad6dc) SHA1(63982b8106f771e9e79cd8dbad42cfd4aad6f16f) )
 2408      ROM_LOAD( "15.bin", 0x50000, 0x08000, CRC(5e7dd1aa) SHA1(822232a7389708dd5fee4a874a8832e22e7a0a26) )
 2409      ROM_LOAD( "18.bin", 0x60000, 0x10000, CRC(751e34aa) SHA1(066730a26606a74b9295fc483cb0063c32dc9a14) )
 2410      ROM_LOAD( "19.bin", 0x70000, 0x08000, CRC(118e7fc7) SHA1(fa6d8eef9da873579e19a9bf982643e061b8ca26) )
 2411  ROM_END
 2412  
 2413  
 2414  ROM_START( hippodrm )
 2415      ROM_REGION( 0x60000, "maincpu", 0 ) /* 4*64k for 68000 code */
 2416      ROM_LOAD16_BYTE( "ew02",         0x00000, 0x10000, CRC(df0d7dc6) SHA1(a60197ad6f19f730e05cf6a3be9181f28d425344) )
 2417      ROM_LOAD16_BYTE( "ew01",         0x00001, 0x10000, CRC(d5670aa7) SHA1(ea8bdff63176c2657746c2c438298685e1f44eae) )
 2418      ROM_LOAD16_BYTE( "ew05",         0x20000, 0x10000, CRC(c76d65ec) SHA1(620990acaf2fd7f3fbfe7135a17ac0195feb8330) )
 2419      ROM_LOAD16_BYTE( "ew00",         0x20001, 0x10000, CRC(e9b427a6) SHA1(b334992846771739d31756724138b82f897dfad5) )
 2420  
 2421      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 sound */
 2422      ROM_LOAD( "ew04",         0x8000, 0x8000, CRC(9871b98d) SHA1(2b6c46bc2b10a28946d6ad8251e1a156a0b99947) )
 2423  
 2424      ROM_REGION( 0x10000, "sub", 0 ) /* HuC6280 CPU */
 2425      ROM_LOAD( "ew08",         0x00000, 0x10000, CRC(53010534) SHA1(8b996e48414bacd009e05ff49848884ecf15d967) )
 2426  
 2427      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2428      ROM_LOAD( "ew14",         0x00000, 0x10000, CRC(71ca593d) SHA1(05ab9403c4010a21dcaa169f4c59d19c4169d9cd) )
 2429      ROM_LOAD( "ew13",         0x10000, 0x10000, CRC(86be5fa7) SHA1(71c31ca2e92fb39a5486e80150919e13d5617855) )
 2430  
 2431      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 2432      ROM_LOAD( "ew19",         0x00000, 0x08000, CRC(6b80d7a3) SHA1(323162e7e0ce16f6244d8d98fdb2396ffef87e82) )
 2433      ROM_LOAD( "ew18",         0x08000, 0x08000, CRC(78d3d764) SHA1(e8f77a23bd4f4d268bec7c0153fb957acd07cdee) )
 2434      ROM_LOAD( "ew20",         0x10000, 0x08000, CRC(ce9f5de3) SHA1(b8af33f52ca3579a45b41395751697a58931f9d6) )
 2435      ROM_LOAD( "ew21",         0x18000, 0x08000, CRC(487a7ba2) SHA1(7d52cc1517def8426355e8281440ec5e617d1121) )
 2436  
 2437      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2438      ROM_LOAD( "ew24",         0x00000, 0x08000, CRC(4e1bc2a4) SHA1(d7d4c42fd932722436f1847929088e46d03184bd) )
 2439      ROM_LOAD( "ew25",         0x08000, 0x08000, CRC(9eb47dfb) SHA1(bb1e8a3a47f447f3a983ea51943d3081d56ad9a4) )
 2440      ROM_LOAD( "ew23",         0x10000, 0x08000, CRC(9ecf479e) SHA1(a8d4c1490f12e1b15d53a2a97147920dcb638378) )
 2441      ROM_LOAD( "ew22",         0x18000, 0x08000, CRC(e55669aa) SHA1(2a9b0e85bb81ff87a108e08b28e19b7b469463e4) )
 2442  
 2443      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2444      ROM_LOAD( "ew15",         0x00000, 0x10000, CRC(95423914) SHA1(e9e7a6bdf5aa717dc04a751709632f31762886fb) )
 2445      ROM_LOAD( "ew16",         0x10000, 0x10000, CRC(96233177) SHA1(929a1b7fb65ab33277719b84517ff57da563f875) )
 2446      ROM_LOAD( "ew10",         0x20000, 0x10000, CRC(4c25dfe8) SHA1(e4334de96698cd0112a8926dea131e748b6a84fc) )
 2447      ROM_LOAD( "ew11",         0x30000, 0x10000, CRC(f2e007fc) SHA1(da30ad3725b9bc4a07dbb1afa05f145c3574c84c) )
 2448      ROM_LOAD( "ew06",         0x40000, 0x10000, CRC(e4bb8199) SHA1(49b5b45c7cd9c44f53d83ee2a156d9e9f8a53960) )
 2449      ROM_LOAD( "ew07",         0x50000, 0x10000, CRC(470b6989) SHA1(16b292d8a3a54048bf29f0b4f41bb6ca049b347c) )
 2450      ROM_LOAD( "ew17",         0x60000, 0x10000, CRC(8c97c757) SHA1(36fd807da9e144dfb29c8252e9450cc37ca2604f) )
 2451      ROM_LOAD( "ew12",         0x70000, 0x10000, CRC(a2d244bc) SHA1(ff2391efc480f36a302650691f8a7a620b86d99a) )
 2452  
 2453      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2454      ROM_LOAD( "ew03",         0x0000, 0x10000, CRC(b606924d) SHA1(b759fcec10b333465cf5cd1b30987bf2d62186b2) )
 2455  ROM_END
 2456  
 2457  ROM_START( ffantasy )
 2458      ROM_REGION( 0x60000, "maincpu", 0 ) /* 4*64k for 68000 code */
 2459      ROM_LOAD16_BYTE( "ff-02-2.bin",  0x00000, 0x10000, CRC(29fc22a7) SHA1(73cbd47c34bee22c16a69cfc6037a60dc30effe8) )
 2460      ROM_LOAD16_BYTE( "ff-01-2.bin",  0x00001, 0x10000, CRC(9f617cb4) SHA1(447ea4e57dd6b23aaf48e5e14c7893277730c7d9) )
 2461      ROM_LOAD16_BYTE( "ew05",         0x20000, 0x10000, CRC(c76d65ec) SHA1(620990acaf2fd7f3fbfe7135a17ac0195feb8330) )
 2462      ROM_LOAD16_BYTE( "ew00",         0x20001, 0x10000, CRC(e9b427a6) SHA1(b334992846771739d31756724138b82f897dfad5) )
 2463  
 2464      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 sound */
 2465      ROM_LOAD( "ew04",         0x8000, 0x8000, CRC(9871b98d) SHA1(2b6c46bc2b10a28946d6ad8251e1a156a0b99947) )
 2466  
 2467      ROM_REGION( 0x10000, "sub", 0 ) /* HuC6280 CPU */
 2468      ROM_LOAD( "ew08",         0x00000, 0x10000, CRC(53010534) SHA1(8b996e48414bacd009e05ff49848884ecf15d967) )
 2469  
 2470      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2471      ROM_LOAD( "ev14",         0x00000, 0x10000, CRC(686f72c1) SHA1(41d4fc1208d779f3428990a96586f6a555c28562) )
 2472      ROM_LOAD( "ev13",         0x10000, 0x10000, CRC(b787dcc9) SHA1(7fce9d2040bcb2483419ea1cafed538bb8aba4f9) )
 2473  
 2474      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 2475      ROM_LOAD( "ew19",         0x00000, 0x08000, CRC(6b80d7a3) SHA1(323162e7e0ce16f6244d8d98fdb2396ffef87e82) )
 2476      ROM_LOAD( "ew18",         0x08000, 0x08000, CRC(78d3d764) SHA1(e8f77a23bd4f4d268bec7c0153fb957acd07cdee) )
 2477      ROM_LOAD( "ew20",         0x10000, 0x08000, CRC(ce9f5de3) SHA1(b8af33f52ca3579a45b41395751697a58931f9d6) )
 2478      ROM_LOAD( "ew21",         0x18000, 0x08000, CRC(487a7ba2) SHA1(7d52cc1517def8426355e8281440ec5e617d1121) )
 2479  
 2480      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2481      ROM_LOAD( "ew24",         0x00000, 0x08000, CRC(4e1bc2a4) SHA1(d7d4c42fd932722436f1847929088e46d03184bd) )
 2482      ROM_LOAD( "ew25",         0x08000, 0x08000, CRC(9eb47dfb) SHA1(bb1e8a3a47f447f3a983ea51943d3081d56ad9a4) )
 2483      ROM_LOAD( "ew23",         0x10000, 0x08000, CRC(9ecf479e) SHA1(a8d4c1490f12e1b15d53a2a97147920dcb638378) )
 2484      ROM_LOAD( "ew22",         0x18000, 0x08000, CRC(e55669aa) SHA1(2a9b0e85bb81ff87a108e08b28e19b7b469463e4) )
 2485  
 2486      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2487      ROM_LOAD( "ev15",         0x00000, 0x10000, CRC(1d80f797) SHA1(1b6878155367350ff826593ea73bda5b893c1823) )
 2488      ROM_LOAD( "ew16",         0x10000, 0x10000, CRC(96233177) SHA1(929a1b7fb65ab33277719b84517ff57da563f875) )
 2489      ROM_LOAD( "ev10",         0x20000, 0x10000, CRC(c4e7116b) SHA1(1e665ba150e08ceb1c0d5f7b7e777f3d60997811) )
 2490      ROM_LOAD( "ew11",         0x30000, 0x10000, CRC(f2e007fc) SHA1(da30ad3725b9bc4a07dbb1afa05f145c3574c84c) )
 2491      ROM_LOAD( "ev06",         0x40000, 0x10000, CRC(6c794f1a) SHA1(ab7996917bea99850aef5a0890485dd27778cd99) )
 2492      ROM_LOAD( "ew07",         0x50000, 0x10000, CRC(470b6989) SHA1(16b292d8a3a54048bf29f0b4f41bb6ca049b347c) )
 2493      ROM_LOAD( "ev17",         0x60000, 0x10000, CRC(045509d4) SHA1(ebbd71de8e8492ff6321e3ede0d98d9ed462de01) )
 2494      ROM_LOAD( "ew12",         0x70000, 0x10000, CRC(a2d244bc) SHA1(ff2391efc480f36a302650691f8a7a620b86d99a) )
 2495  
 2496      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2497      ROM_LOAD( "ew03",         0x0000, 0x10000, CRC(b606924d) SHA1(b759fcec10b333465cf5cd1b30987bf2d62186b2) )
 2498  ROM_END
 2499  
 2500  ROM_START( ffantasya )
 2501      ROM_REGION( 0x60000, "maincpu", 0 ) /* 4*64k for 68000 code */
 2502      ROM_LOAD16_BYTE( "ev02",         0x00000, 0x10000, CRC(797a7860) SHA1(aaab24c99e96b393d2bda435f18b0dc4003cdf09) )
 2503      ROM_LOAD16_BYTE( "ev01",         0x00001, 0x10000, CRC(0f17184d) SHA1(c1bcd6347df9bee2d2d9ca29b22af9235493871c) )
 2504      ROM_LOAD16_BYTE( "ew05",         0x20000, 0x10000, CRC(c76d65ec) SHA1(620990acaf2fd7f3fbfe7135a17ac0195feb8330) )
 2505      ROM_LOAD16_BYTE( "ew00",         0x20001, 0x10000, CRC(e9b427a6) SHA1(b334992846771739d31756724138b82f897dfad5) )
 2506  
 2507      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 sound */
 2508      ROM_LOAD( "ew04",         0x8000, 0x8000, CRC(9871b98d) SHA1(2b6c46bc2b10a28946d6ad8251e1a156a0b99947) )
 2509  
 2510      ROM_REGION( 0x10000, "sub", 0 ) /* HuC6280 CPU */
 2511      ROM_LOAD( "ew08",         0x00000, 0x10000, CRC(53010534) SHA1(8b996e48414bacd009e05ff49848884ecf15d967) )
 2512  
 2513      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2514      ROM_LOAD( "ev14",         0x00000, 0x10000, CRC(686f72c1) SHA1(41d4fc1208d779f3428990a96586f6a555c28562) )
 2515      ROM_LOAD( "ev13",         0x10000, 0x10000, CRC(b787dcc9) SHA1(7fce9d2040bcb2483419ea1cafed538bb8aba4f9) )
 2516  
 2517      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 2518      ROM_LOAD( "ew19",         0x00000, 0x08000, CRC(6b80d7a3) SHA1(323162e7e0ce16f6244d8d98fdb2396ffef87e82) )
 2519      ROM_LOAD( "ew18",         0x08000, 0x08000, CRC(78d3d764) SHA1(e8f77a23bd4f4d268bec7c0153fb957acd07cdee) )
 2520      ROM_LOAD( "ew20",         0x10000, 0x08000, CRC(ce9f5de3) SHA1(b8af33f52ca3579a45b41395751697a58931f9d6) )
 2521      ROM_LOAD( "ew21",         0x18000, 0x08000, CRC(487a7ba2) SHA1(7d52cc1517def8426355e8281440ec5e617d1121) )
 2522  
 2523      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2524      ROM_LOAD( "ew24",         0x00000, 0x08000, CRC(4e1bc2a4) SHA1(d7d4c42fd932722436f1847929088e46d03184bd) )
 2525      ROM_LOAD( "ew25",         0x08000, 0x08000, CRC(9eb47dfb) SHA1(bb1e8a3a47f447f3a983ea51943d3081d56ad9a4) )
 2526      ROM_LOAD( "ew23",         0x10000, 0x08000, CRC(9ecf479e) SHA1(a8d4c1490f12e1b15d53a2a97147920dcb638378) )
 2527      ROM_LOAD( "ew22",         0x18000, 0x08000, CRC(e55669aa) SHA1(2a9b0e85bb81ff87a108e08b28e19b7b469463e4) )
 2528  
 2529      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2530      ROM_LOAD( "ev15",         0x00000, 0x10000, CRC(1d80f797) SHA1(1b6878155367350ff826593ea73bda5b893c1823) )
 2531      ROM_LOAD( "ew16",         0x10000, 0x10000, CRC(96233177) SHA1(929a1b7fb65ab33277719b84517ff57da563f875) )
 2532      ROM_LOAD( "ev10",         0x20000, 0x10000, CRC(c4e7116b) SHA1(1e665ba150e08ceb1c0d5f7b7e777f3d60997811) )
 2533      ROM_LOAD( "ew11",         0x30000, 0x10000, CRC(f2e007fc) SHA1(da30ad3725b9bc4a07dbb1afa05f145c3574c84c) )
 2534      ROM_LOAD( "ev06",         0x40000, 0x10000, CRC(6c794f1a) SHA1(ab7996917bea99850aef5a0890485dd27778cd99) )
 2535      ROM_LOAD( "ew07",         0x50000, 0x10000, CRC(470b6989) SHA1(16b292d8a3a54048bf29f0b4f41bb6ca049b347c) )
 2536      ROM_LOAD( "ev17",         0x60000, 0x10000, CRC(045509d4) SHA1(ebbd71de8e8492ff6321e3ede0d98d9ed462de01) )
 2537      ROM_LOAD( "ew12",         0x70000, 0x10000, CRC(a2d244bc) SHA1(ff2391efc480f36a302650691f8a7a620b86d99a) )
 2538  
 2539      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2540      ROM_LOAD( "ew03",         0x0000, 0x10000, CRC(b606924d) SHA1(b759fcec10b333465cf5cd1b30987bf2d62186b2) )
 2541  ROM_END
 2542  
 2543  /* this is probably a bootleg of an undumped original revision */
 2544  ROM_START( ffantasybl )
 2545      ROM_REGION( 0x80000, "maincpu", 0 ) /* 4*64k for 68000 code */
 2546      ROM_LOAD16_BYTE( "14.bin",  0x00000, 0x10000, CRC(bd42bc66) SHA1(d81a3d16ca282817f85372d1426470900a553b24) ) // 61.926270% ff-02-2.bin
 2547      ROM_LOAD16_BYTE( "11.bin",  0x00001, 0x10000, CRC(4df38e4b) SHA1(e176afb7b63e2e1ac482662d152da2866884594e) ) // 55.798340% ff-01-2.bin
 2548      ROM_LOAD16_BYTE( "13.bin",  0x20000, 0x10000, CRC(eecb6bed) SHA1(f5761bfc01ae207d3a321aa4ad510f6af8ad6094) ) // 86.532593% ew05
 2549      ROM_LOAD16_BYTE( "10.bin",  0x20001, 0x10000, CRC(7cdcf418) SHA1(9653b6620dce70bd510fb63ba5c324dda581a412) ) // 85.887146% ew00
 2550  
 2551      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 sound */
 2552      ROM_LOAD( "15.bin",         0x8000, 0x8000, CRC(9871b98d) SHA1(2b6c46bc2b10a28946d6ad8251e1a156a0b99947) )
 2553  
 2554      ROM_REGION( 0x10000, "cpu2", 0 )    /* 68705 MCU */ // (labeled on PCB as Z80, but it isn't!)
 2555      ROM_LOAD( "68705u3.bin",              0x00000, 0x1000, NO_DUMP ) // nor dumped, maybe it's the same as the midresb one?
 2556  
 2557      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2558      ROM_LOAD( "22.bin",         0x00000, 0x10000, CRC(686f72c1) SHA1(41d4fc1208d779f3428990a96586f6a555c28562) )
 2559      ROM_LOAD( "23.bin",         0x10000, 0x10000, CRC(28e69371) SHA1(32d57aabf948388825757ab0cfe87b6550a07a9d) ) // 94.793701% ev13
 2560  
 2561      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 2562      ROM_LOAD( "25.bin",         0x00000, 0x08000, CRC(6b80d7a3) SHA1(323162e7e0ce16f6244d8d98fdb2396ffef87e82) )
 2563      ROM_LOAD( "27.bin",         0x08000, 0x08000, CRC(78d3d764) SHA1(e8f77a23bd4f4d268bec7c0153fb957acd07cdee) )
 2564      ROM_LOAD( "24.bin",         0x10000, 0x08000, CRC(ce9f5de3) SHA1(b8af33f52ca3579a45b41395751697a58931f9d6) )
 2565      ROM_LOAD( "26.bin",         0x18000, 0x08000, CRC(487a7ba2) SHA1(7d52cc1517def8426355e8281440ec5e617d1121) )
 2566  
 2567      ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
 2568      ROM_LOAD( "29.bin",         0x00000, 0x08000, CRC(4e1bc2a4) SHA1(d7d4c42fd932722436f1847929088e46d03184bd) )
 2569      ROM_LOAD( "21.bin",         0x08000, 0x08000, CRC(28b37d27) SHA1(c70718f8ce23f75a728dc0a7556fd7d259048b88) )
 2570      ROM_IGNORE(0x8000) // same content, double size as original, ignore 2nd half
 2571      ROM_LOAD( "28.bin",         0x10000, 0x08000, CRC(9ecf479e) SHA1(a8d4c1490f12e1b15d53a2a97147920dcb638378) )
 2572      ROM_LOAD( "20.bin",         0x18000, 0x08000, CRC(b5ca8ed9) SHA1(3f44ebf7fec76154a843ee4398d4ac8690e70342) )
 2573      ROM_IGNORE(0x8000) // same content, double size as original, ignore 2nd half
 2574  
 2575      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2576      ROM_LOAD( "6.bin",         0x00000, 0x10000, CRC(95423914) SHA1(e9e7a6bdf5aa717dc04a751709632f31762886fb) )
 2577      ROM_LOAD( "3.bin",         0x10000, 0x10000, CRC(96233177) SHA1(929a1b7fb65ab33277719b84517ff57da563f875) )
 2578      ROM_LOAD( "8.bin",         0x20000, 0x10000, CRC(4c25dfe8) SHA1(e4334de96698cd0112a8926dea131e748b6a84fc) )
 2579      ROM_LOAD( "4.bin",         0x30000, 0x10000, CRC(f2e007fc) SHA1(da30ad3725b9bc4a07dbb1afa05f145c3574c84c) )
 2580      ROM_LOAD( "5.bin",         0x40000, 0x10000, CRC(bc6028c4) SHA1(6ca5bb328912df23ad3d61b596b4a35f2815ef31) ) // 99.996948% ew06 (bad dump?)
 2581      ROM_LOAD( "1.bin",         0x50000, 0x10000, CRC(470b6989) SHA1(16b292d8a3a54048bf29f0b4f41bb6ca049b347c) )
 2582      ROM_LOAD( "7.bin",         0x60000, 0x10000, CRC(8c97c757) SHA1(36fd807da9e144dfb29c8252e9450cc37ca2604f) )
 2583      ROM_LOAD( "2.bin",         0x70000, 0x10000, CRC(a2d244bc) SHA1(ff2391efc480f36a302650691f8a7a620b86d99a) )
 2584  
 2585      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2586      ROM_LOAD( "30.bin",         0x0000, 0x10000, CRC(b606924d) SHA1(b759fcec10b333465cf5cd1b30987bf2d62186b2) )
 2587  ROM_END
 2588  
 2589  
 2590  ROM_START( slyspy )
 2591      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2592      ROM_LOAD16_BYTE( "fa14-3.17l",   0x00000, 0x10000, CRC(54353a84) SHA1(899559f17705a8222fd56e9304e9b802eac8f6db) )
 2593      ROM_LOAD16_BYTE( "fa12-2.9l",    0x00001, 0x10000, CRC(1b534294) SHA1(cf7badea6604c47d9f3ff8a0ef326e09de1974a0) )
 2594      ROM_LOAD16_BYTE( "fa15.19l",     0x20000, 0x10000, CRC(04a79266) SHA1(69d256ffb1c89721f8b1e929c581f187e047b977) )
 2595      ROM_LOAD16_BYTE( "fa13.11l",     0x20001, 0x10000, CRC(641cc4b3) SHA1(ce0ccd14d201f411cfc02ec988b2ad4fcb0d8f5d) )
 2596  
 2597      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 2598      ROM_LOAD( "fa10.5h",      0x00000, 0x10000, CRC(dfd2ff25) SHA1(3dcd6d50b92b49daae4b51581abe9c95f764e848) )
 2599  
 2600      ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
 2601      ROM_LOAD( "fa05.11a",     0x04000, 0x04000, CRC(09802924) SHA1(d9bc5fe7f053afa15cd39400aae993866d1b0226) )
 2602      ROM_CONTINUE(             0x00000, 0x04000 )    /* the two halves are swapped */
 2603      ROM_LOAD( "fa04.9a",      0x0c000, 0x04000, CRC(ec25b895) SHA1(8c1d2b9a2487fd7114d37fe9dc271183c4cc1613) )
 2604      ROM_CONTINUE(             0x08000, 0x04000 )
 2605  
 2606      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 2607      ROM_LOAD( "fa07.17a",     0x00000, 0x10000, CRC(e932268b) SHA1(ee8ed29affa951e725cf19a5f56d3beac24420c9) )
 2608      ROM_LOAD( "fa06.15a",     0x10000, 0x10000, CRC(c4dd38c0) SHA1(267dbbdd5df6b13662cd307c5c95fdf643d64f45) )
 2609  
 2610      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 2611      ROM_LOAD( "fa09.22a",     0x00000, 0x20000, CRC(1395e9be) SHA1(60693ac6236ffe1e0933d81771cfad32e14514c3) )
 2612      ROM_LOAD( "fa08.21a",     0x20000, 0x20000, CRC(4d7464db) SHA1(82e2a3c3d78447985968220d52c7c1f1ff625d83) )
 2613  
 2614      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2615      ROM_LOAD( "fa01.4a",      0x00000, 0x20000, CRC(99b0cd92) SHA1(2729e874730391b5fa93e9a28142c02c00eb5068) )
 2616      ROM_LOAD( "fa03.7a",      0x20000, 0x20000, CRC(0e7ea74d) SHA1(22078a2856933af2d31750a4a506b993fe309e9a) )
 2617      ROM_LOAD( "fa00.2a",      0x40000, 0x20000, CRC(f7df3fd7) SHA1(ed9e4649e0b1fcca61cf4d159b3f8a35f06102ce) )
 2618      ROM_LOAD( "fa02.5a",      0x60000, 0x20000, CRC(84e8da9d) SHA1(41da6042f80ea3562aa350f4f466b16db29e2aca) )
 2619  
 2620      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2621      ROM_LOAD( "fa11.11k",     0x00000, 0x20000, CRC(4e547bad) SHA1(655eda4d00f8846957ed40dcbf750fba3ce19f4e) )
 2622  
 2623      ROM_REGION( 0x0100, "proms", 0 )
 2624      ROM_LOAD( "mb7114h.21k",  0x0000, 0x0100, CRC(ad26e8d4) SHA1(827337aeb8904429a1c050279240ae38aa6ce064) )    /* Priority (not used) */
 2625  
 2626      ROM_REGION( 0x0800, "plds", 0 )
 2627      ROM_LOAD( "pal16l8b-ta-1.bin", 0x0000, 0x0104, CRC(79a87527) SHA1(3c6ad20d5a7c41c020e671d462c0b1e4a5dda7f8) )
 2628      ROM_LOAD( "pal16r4a-ta-2.bin", 0x0200, 0x0104, CRC(eca31311) SHA1(a87b2721e13767f7448236d0bbb3355583fe88bb) )
 2629      ROM_LOAD( "pal16l8a-ta-3.bin", 0x0400, 0x0104, CRC(6c324919) SHA1(83bba4634d7ab7c4ad3083c063804fd1e7c9c10b) )
 2630      ROM_LOAD( "pal16l8a-ta-4.bin", 0x0600, 0x0104, CRC(116177fa) SHA1(f63802578b6f743e2d3a64e4805488d44361dcb2) )
 2631  ROM_END
 2632  
 2633  ROM_START( slyspy2 )
 2634      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2635      ROM_LOAD16_BYTE( "fa14-2.bin",   0x00000, 0x10000, CRC(0e431e39) SHA1(ab4774966ad113e4d7004d14bfd72330d4a93a43) )
 2636      ROM_LOAD16_BYTE( "fa12-2.9l",    0x00001, 0x10000, CRC(1b534294) SHA1(cf7badea6604c47d9f3ff8a0ef326e09de1974a0) )
 2637      ROM_LOAD16_BYTE( "fa15.19l",     0x20000, 0x10000, CRC(04a79266) SHA1(69d256ffb1c89721f8b1e929c581f187e047b977) )
 2638      ROM_LOAD16_BYTE( "fa13.11l",     0x20001, 0x10000, CRC(641cc4b3) SHA1(ce0ccd14d201f411cfc02ec988b2ad4fcb0d8f5d) )
 2639  
 2640      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 2641      ROM_LOAD( "fa10.5h",      0x00000, 0x10000, CRC(dfd2ff25) SHA1(3dcd6d50b92b49daae4b51581abe9c95f764e848) )
 2642  
 2643      ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
 2644      ROM_LOAD( "fa05.11a",     0x04000, 0x04000, CRC(09802924) SHA1(d9bc5fe7f053afa15cd39400aae993866d1b0226) )
 2645      ROM_CONTINUE(             0x00000, 0x04000 )    /* the two halves are swapped */
 2646      ROM_LOAD( "fa04.9a",      0x0c000, 0x04000, CRC(ec25b895) SHA1(8c1d2b9a2487fd7114d37fe9dc271183c4cc1613) )
 2647      ROM_CONTINUE(             0x08000, 0x04000 )
 2648  
 2649      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 2650      ROM_LOAD( "fa07.17a",     0x00000, 0x10000, CRC(e932268b) SHA1(ee8ed29affa951e725cf19a5f56d3beac24420c9) )
 2651      ROM_LOAD( "fa06.15a",     0x10000, 0x10000, CRC(c4dd38c0) SHA1(267dbbdd5df6b13662cd307c5c95fdf643d64f45) )
 2652  
 2653      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 2654      ROM_LOAD( "fa09.22a",     0x00000, 0x20000, CRC(1395e9be) SHA1(60693ac6236ffe1e0933d81771cfad32e14514c3) )
 2655      ROM_LOAD( "fa08.21a",     0x20000, 0x20000, CRC(4d7464db) SHA1(82e2a3c3d78447985968220d52c7c1f1ff625d83) )
 2656  
 2657      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2658      ROM_LOAD( "fa01.4a",      0x00000, 0x20000, CRC(99b0cd92) SHA1(2729e874730391b5fa93e9a28142c02c00eb5068) )
 2659      ROM_LOAD( "fa03.7a",      0x20000, 0x20000, CRC(0e7ea74d) SHA1(22078a2856933af2d31750a4a506b993fe309e9a) )
 2660      ROM_LOAD( "fa00.2a",      0x40000, 0x20000, CRC(f7df3fd7) SHA1(ed9e4649e0b1fcca61cf4d159b3f8a35f06102ce) )
 2661      ROM_LOAD( "fa02.5a",      0x60000, 0x20000, CRC(84e8da9d) SHA1(41da6042f80ea3562aa350f4f466b16db29e2aca) )
 2662  
 2663      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2664      ROM_LOAD( "fa11.11k",     0x00000, 0x20000, CRC(4e547bad) SHA1(655eda4d00f8846957ed40dcbf750fba3ce19f4e) )
 2665  
 2666      ROM_REGION( 0x0100, "proms", 0 )
 2667      ROM_LOAD( "mb7114h.21k",  0x0000, 0x0100, CRC(ad26e8d4) SHA1(827337aeb8904429a1c050279240ae38aa6ce064) )    /* Priority (not used) */
 2668  
 2669      ROM_REGION( 0x0800, "plds", 0 )
 2670      ROM_LOAD( "pal16l8b-ta-1.bin", 0x0000, 0x0104, CRC(79a87527) SHA1(3c6ad20d5a7c41c020e671d462c0b1e4a5dda7f8) )
 2671      ROM_LOAD( "pal16r4a-ta-2.bin", 0x0200, 0x0104, CRC(eca31311) SHA1(a87b2721e13767f7448236d0bbb3355583fe88bb) )
 2672      ROM_LOAD( "pal16l8a-ta-3.bin", 0x0400, 0x0104, CRC(6c324919) SHA1(83bba4634d7ab7c4ad3083c063804fd1e7c9c10b) )
 2673      ROM_LOAD( "pal16l8a-ta-4.bin", 0x0600, 0x0104, CRC(116177fa) SHA1(f63802578b6f743e2d3a64e4805488d44361dcb2) )
 2674  ROM_END
 2675  
 2676  ROM_START( secretag )
 2677      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2678      ROM_LOAD16_BYTE( "fb14-3.17l",   0x00000, 0x10000, CRC(9be6ac90) SHA1(1c78af9da63add7c77c8d2ce24924505481381b1) )
 2679      ROM_LOAD16_BYTE( "fb12-3.9l",   0x00001, 0x10000, CRC(28904b6b) SHA1(c3fd42c3ba5b19c3483df3ac9e44016570762de7) )
 2680      ROM_LOAD16_BYTE( "fb15.19l",   0x20000, 0x10000, CRC(106bb26c) SHA1(e5d05124b6dfc54e41dcf40916633caaa9a19823) )
 2681      ROM_LOAD16_BYTE( "fb13.11l",   0x20001, 0x10000, CRC(90523413) SHA1(7ea65525f2d7c577255aa01260acc5f43d136b3c) )
 2682  
 2683      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 2684      ROM_LOAD( "fa10.5h",      0x00000, 0x10000, CRC(dfd2ff25) SHA1(3dcd6d50b92b49daae4b51581abe9c95f764e848) )
 2685  
 2686      ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
 2687      ROM_LOAD( "fa05.11a",     0x04000, 0x04000, CRC(09802924) SHA1(d9bc5fe7f053afa15cd39400aae993866d1b0226) )
 2688      ROM_CONTINUE(             0x00000, 0x04000 )    /* the two halves are swapped */
 2689      ROM_LOAD( "fa04.9a",      0x0c000, 0x04000, CRC(ec25b895) SHA1(8c1d2b9a2487fd7114d37fe9dc271183c4cc1613) )
 2690      ROM_CONTINUE(             0x08000, 0x04000 )
 2691  
 2692      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 2693      ROM_LOAD( "fa07.17a",     0x00000, 0x10000, CRC(e932268b) SHA1(ee8ed29affa951e725cf19a5f56d3beac24420c9) )
 2694      ROM_LOAD( "fa06.15a",     0x10000, 0x10000, CRC(c4dd38c0) SHA1(267dbbdd5df6b13662cd307c5c95fdf643d64f45) )
 2695  
 2696      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 2697      ROM_LOAD( "fa09.22a",     0x00000, 0x20000, CRC(1395e9be) SHA1(60693ac6236ffe1e0933d81771cfad32e14514c3) )
 2698      ROM_LOAD( "fa08.21a",     0x20000, 0x20000, CRC(4d7464db) SHA1(82e2a3c3d78447985968220d52c7c1f1ff625d83) )
 2699  
 2700      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2701      ROM_LOAD( "fa01.4a",      0x00000, 0x20000, CRC(99b0cd92) SHA1(2729e874730391b5fa93e9a28142c02c00eb5068) )
 2702      ROM_LOAD( "fa03.7a",      0x20000, 0x20000, CRC(0e7ea74d) SHA1(22078a2856933af2d31750a4a506b993fe309e9a) )
 2703      ROM_LOAD( "fa00.2a",      0x40000, 0x20000, CRC(f7df3fd7) SHA1(ed9e4649e0b1fcca61cf4d159b3f8a35f06102ce) )
 2704      ROM_LOAD( "fa02.5a",      0x60000, 0x20000, CRC(84e8da9d) SHA1(41da6042f80ea3562aa350f4f466b16db29e2aca) )
 2705  
 2706      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2707      ROM_LOAD( "fa11.11k",     0x00000, 0x20000, CRC(4e547bad) SHA1(655eda4d00f8846957ed40dcbf750fba3ce19f4e) )
 2708  
 2709      ROM_REGION( 0x0100, "proms", 0 )
 2710      ROM_LOAD( "mb7114h.21k",  0x0000, 0x0100, CRC(ad26e8d4) SHA1(827337aeb8904429a1c050279240ae38aa6ce064) )    /* Priority (not used) */
 2711  ROM_END
 2712  
 2713  /*
 2714  
 2715  secret agent - deco (clone)
 2716  
 2717  (snd)
 2718  1 x z80
 2719  1 x ym2203c
 2720  1 x ym3812
 2721  sa_01 and sa_02
 2722  
 2723  (prg)
 2724  1 x 68000
 2725  from sa_03 to sa_06
 2726  
 2727  (gfx)
 2728  from sa_07 to sa_14
 2729  from sa_15 to sa_22
 2730  
 2731  [dump.it]
 2732  
 2733  */
 2734  
 2735  ROM_START( secretab )
 2736      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 2737      ROM_LOAD16_BYTE( "sa_05.bin",    0x00000, 0x10000, CRC(54869474) SHA1(88c1894d1b6d8dd3d37e97d566aafef9c9409d6e) )
 2738      ROM_LOAD16_BYTE( "sa_03.bin",    0x00001, 0x10000, CRC(36ab1874) SHA1(baa47c466ab13ac792761531f77ee8e639d19203) )
 2739      ROM_LOAD16_BYTE( "sa_06.bin",    0x20000, 0x10000, CRC(8e691f23) SHA1(eb08c9539b699af124fcf87be07a33d2d5a71ada) )
 2740      ROM_LOAD16_BYTE( "sa_04.bin",    0x20001, 0x10000, CRC(c838b205) SHA1(8c7a453ec7a00d4f5bbf9fadba6d551909647ed8) )
 2741  
 2742      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 2743      ROM_LOAD( "sa_01.bin",      0x00000, 0x10000, CRC(9fdc503b) SHA1(7b258e0734ca88a7d3f574d75116f0fe3b628898) )
 2744  
 2745      ROM_REGION( 0x40000, "charset", 0 )
 2746      ROM_LOAD( "sa_08.bin", 0x00000, 0x10000,CRC(4806b951) SHA1(a2fa5b8587132747067d7d64ccfd14129a34ef58) )
 2747      ROM_LOAD( "sa_12.bin", 0x10000, 0x10000,CRC(f9e2cd5f) SHA1(f2c3f6e763c6f80307e9daee533d316b05cd02c5) )
 2748      ROM_LOAD( "sa_10.bin", 0x20000, 0x10000,CRC(843c4679) SHA1(871f3e77aa7e628e924a40d06ddec700487e23fb) )
 2749      ROM_LOAD( "sa_14.bin", 0x30000, 0x10000,CRC(3dac9128) SHA1(f3a2068e90973c1f04f1bbaa209111e3f9669ee0) )
 2750  
 2751      ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) /* chars */
 2752      ROM_COPY( "charset", 0x00000, 0x00000, 0x8000 )
 2753      ROM_COPY( "charset", 0x10000, 0x08000, 0x8000 )
 2754      ROM_COPY( "charset", 0x20000, 0x10000, 0x8000 )
 2755      ROM_COPY( "charset", 0x30000, 0x18000, 0x8000 )
 2756  
 2757      ROM_REGION( 0x20000, "gfx2", ROMREGION_INVERT ) /* tiles */
 2758      ROM_COPY( "charset", 0x08000, 0x00000, 0x8000 )
 2759      ROM_COPY( "charset", 0x18000, 0x08000, 0x8000 )
 2760      ROM_COPY( "charset", 0x28000, 0x10000, 0x8000 )
 2761      ROM_COPY( "charset", 0x38000, 0x18000, 0x8000 )
 2762  
 2763      ROM_REGION( 0x40000, "gfx3", ROMREGION_INVERT ) /* tiles */
 2764      ROM_LOAD( "sa_09.bin",      0x00000, 0x10000,CRC(9e412267) SHA1(482cd6e772fa21f15db66c27acf85e8f97f7c5a5) )
 2765      ROM_LOAD( "sa_11.bin",      0x10000, 0x10000,CRC(e87650db) SHA1(381352428b12fd4a8cd13270009ff7602aa41a0b) )
 2766      ROM_LOAD( "sa_07.bin",      0x20000, 0x10000,CRC(6ad2e575) SHA1(b6b159cb36e222fe62fc10271602226f027440e4) )
 2767      ROM_LOAD( "sa_13.bin",      0x30000, 0x10000,CRC(e8601057) SHA1(fd73a36fb84049154248d250ffea68b1ee39a43f) )
 2768  
 2769      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2770      ROM_LOAD( "sa_20.bin",      0x00000, 0x10000,CRC(447e4f0b) SHA1(97db103e505a6e11eb9bdb3622e4aa3b796a9714) )
 2771      ROM_LOAD( "sa_19.bin",      0x10000, 0x10000,CRC(d29bc22e) SHA1(ce0935d09f7e94fa32247c86e14a74b73514b29e) )
 2772      ROM_LOAD( "sa_16.bin",      0x20000, 0x10000,CRC(ff72b838) SHA1(fdc48ecdd2225fc69472313f34973f6add8fb558) )
 2773      ROM_LOAD( "sa_15.bin",      0x30000, 0x10000,CRC(54fcbc39) SHA1(293a6799193b01424c3eac86cf90cc023aa771db) )
 2774      ROM_LOAD( "sa_22.bin",      0x40000, 0x10000,CRC(d234cae5) SHA1(0cd07bf087a4da19a5da29785385de9eee52d0fb) )
 2775      ROM_LOAD( "sa_21.bin",      0x50000, 0x10000,CRC(dc6a38df) SHA1(9043df911389d3f085299f2f2202cab356473a32) )
 2776      ROM_LOAD( "sa_18.bin",      0x60000, 0x10000,CRC(4f989f00) SHA1(ae7ae6e62e6a516ae3c8ebbeb5e39887c1961add) )
 2777      ROM_LOAD( "sa_17.bin",      0x70000, 0x10000,CRC(f61972c8) SHA1(fa9ddca3473091b4879171d8f3b302e8f2b45149) )
 2778  
 2779      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2780      ROM_LOAD( "sa_02.bin",      0x00000, 0x10000,CRC(439eb5a9) SHA1(8d6baad8a1e89279ef0a378941d3d9b49a606864) ) // both halves identical
 2781  ROM_END
 2782  
 2783  
 2784  
 2785  ROM_START( midres )
 2786      ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
 2787      ROM_LOAD16_BYTE( "fk_14.rom",    0x00000, 0x20000, CRC(de7522df) SHA1(b627a4bf2f2308ff16e55a9e49ba4eb9bd637d90) )
 2788      ROM_LOAD16_BYTE( "fk_12.rom",    0x00001, 0x20000, CRC(3494b8c9) SHA1(6cb3f1421fe71d329c65c0a9056bcfae7229a37b) )
 2789      ROM_LOAD16_BYTE( "fl15",         0x40000, 0x20000, CRC(1328354e) SHA1(2780a524718f351350e0fbc92a9a7ce9bdfc315e) )
 2790      ROM_LOAD16_BYTE( "fl13",         0x40001, 0x20000, CRC(e3b3955e) SHA1(10ff430b14c1dbcce81b13251bac124ef4f9f1d9) )
 2791  
 2792      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 2793      ROM_LOAD( "fl16",              0x00000, 0x10000, CRC(66360bdf) SHA1(76ecaeb396118bb2fe6c0151bb0705a3a878f7a5) )
 2794  
 2795      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2796      ROM_LOAD( "fk_05.rom",         0x08000, 0x08000, CRC(3cdb7453) SHA1(d4b7fbf4726a375b4478922db6d936274bfa963c) )
 2797      ROM_CONTINUE(                  0x00000, 0x08000 )   /* the two halves are swapped */
 2798      ROM_LOAD( "fk_04.rom",         0x18000, 0x08000, CRC(325ba20c) SHA1(fecd6254cf8c3b18496039fe18ded13c2ae47ff4) )
 2799      ROM_CONTINUE(                  0x10000, 0x08000 )
 2800  
 2801      ROM_REGION( 0x80000, "gfx2", 0 ) /* tiles */
 2802      ROM_LOAD( "fl09",              0x00000, 0x20000, CRC(907d5910) SHA1(6f4963724987bf44007988d117a1f7276cf270d8) )
 2803      ROM_LOAD( "fl08",              0x20000, 0x20000, CRC(a936c03c) SHA1(293e69874ce9b2dfb1d605c9f988fa736b12bbcf) )
 2804      ROM_LOAD( "fl07",              0x40000, 0x20000, CRC(2068c45c) SHA1(943ed767a462ee39a42cd15f02d06c8a2e4556b3) )
 2805      ROM_LOAD( "fl06",              0x60000, 0x20000, CRC(b7241ab9) SHA1(3e83f9285ff4c476f1287bf73b514eace482dccc) )
 2806  
 2807      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 2808      ROM_LOAD( "fl11",              0x00000, 0x20000, CRC(b86b73b4) SHA1(dd0e61d60574e537aa1b7f35ffdfd08434ec8208) )
 2809      ROM_LOAD( "fl10",              0x20000, 0x20000, CRC(92245b29) SHA1(3289842bbd4bd7858846b234f08ea5737c11536d) )
 2810  
 2811      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2812      ROM_LOAD( "fl01",              0x00000, 0x20000, CRC(2c8b35a7) SHA1(9ab1c2f014a24837ee99c4db000291f7e55aeb12) )
 2813      ROM_LOAD( "fl03",              0x20000, 0x20000, CRC(1eefed3c) SHA1(be0ce3db211587086ae3ee8df85b7c56f831c623) )
 2814      ROM_LOAD( "fl00",              0x40000, 0x20000, CRC(756fb801) SHA1(35510c4ddf9258d87fdee0d3a64a8de0ebd1967d) )
 2815      ROM_LOAD( "fl02",              0x60000, 0x20000, CRC(54d2c120) SHA1(84f93bcd41d5bda8cfb39c4947fff025f53b143d) )
 2816  
 2817      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2818      ROM_LOAD( "fl17",              0x00000, 0x20000, CRC(9029965d) SHA1(9b28dc38e86f24fa89d7971b141c9bdddc662c99) )
 2819  
 2820      ROM_REGION( 0x0100, "proms", 0 )
 2821      ROM_LOAD( "7114.prm",          0x0000, 0x0100, CRC(eb539ffb) SHA1(6a8c9112f289f63e8c88320c9df698b559632c3d) )   /* Priority (not used) */
 2822  
 2823      ROM_REGION( 0x0c00, "plds", 0 )
 2824      ROM_LOAD( "pal16r4a-1.bin", 0x0000, 0x0104, CRC(d28fb8e0) SHA1(73cd73a075bd3ba3b3e50f3b71a4aaecce37115f) )
 2825      ROM_LOAD( "pal16l8b-2.bin", 0x0200, 0x0104, CRC(bcb591e3) SHA1(d3ebc2a19108c9db355d3ba1512ab4cf0d9fad76) )
 2826      ROM_LOAD( "pal16l8a-3.bin", 0x0400, 0x0104, CRC(e12972ac) SHA1(6b178c936068d9017a1444f437aea7e2ab1c6ca9) )
 2827      ROM_LOAD( "pal16l8a-4.bin", 0x0600, 0x0104, CRC(c6437e49) SHA1(0d89855378ab5f45d55f6aa175a63458b3da52a3) )
 2828      ROM_LOAD( "pal16l8b-5.bin", 0x0800, 0x0104, CRC(e9ee3a67) SHA1(5299f44f1141fcd57b0559b91ec7adb51b36c5c4) )
 2829      ROM_LOAD( "pal16l8a-6.bin", 0x0a00, 0x0104, CRC(23b17abe) SHA1(ca6c47f4df63d84401ccb29d0a0e3633b09d708a) )
 2830  ROM_END
 2831  
 2832  ROM_START( midresu )
 2833      ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
 2834      ROM_LOAD16_BYTE( "fl14",         0x00000, 0x20000, CRC(2f9507a2) SHA1(bfa3449c2f8d706ec9eebb41c0f089229cd30537) )
 2835      ROM_LOAD16_BYTE( "fl12",         0x00001, 0x20000, CRC(3815ad9f) SHA1(04b05ca68a2526ef6b16a1bbbf91c36300070c6c) )
 2836      ROM_LOAD16_BYTE( "fl15",         0x40000, 0x20000, CRC(1328354e) SHA1(2780a524718f351350e0fbc92a9a7ce9bdfc315e) )
 2837      ROM_LOAD16_BYTE( "fl13",         0x40001, 0x20000, CRC(e3b3955e) SHA1(10ff430b14c1dbcce81b13251bac124ef4f9f1d9) )
 2838  
 2839      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 2840      ROM_LOAD( "fl16",              0x00000, 0x10000, CRC(66360bdf) SHA1(76ecaeb396118bb2fe6c0151bb0705a3a878f7a5) )
 2841  
 2842      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2843      ROM_LOAD( "fl05",              0x08000, 0x08000, CRC(d75aba06) SHA1(cb3b969db3dd8e0c5c3729482f7461cde3a961f3) )
 2844      ROM_CONTINUE(                  0x00000, 0x08000 )   /* the two halves are swapped */
 2845      ROM_LOAD( "fl04",              0x18000, 0x08000, CRC(8f5bbb79) SHA1(cb10f68787606111ba5e9967bf0b0cd21269a902) )
 2846      ROM_CONTINUE(                  0x10000, 0x08000 )
 2847  
 2848      ROM_REGION( 0x80000, "gfx2", 0 ) /* tiles */
 2849      ROM_LOAD( "fl09",              0x00000, 0x20000, CRC(907d5910) SHA1(6f4963724987bf44007988d117a1f7276cf270d8) )
 2850      ROM_LOAD( "fl08",              0x20000, 0x20000, CRC(a936c03c) SHA1(293e69874ce9b2dfb1d605c9f988fa736b12bbcf) )
 2851      ROM_LOAD( "fl07",              0x40000, 0x20000, CRC(2068c45c) SHA1(943ed767a462ee39a42cd15f02d06c8a2e4556b3) )
 2852      ROM_LOAD( "fl06",              0x60000, 0x20000, CRC(b7241ab9) SHA1(3e83f9285ff4c476f1287bf73b514eace482dccc) )
 2853  
 2854      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 2855      ROM_LOAD( "fl11",              0x00000, 0x20000, CRC(b86b73b4) SHA1(dd0e61d60574e537aa1b7f35ffdfd08434ec8208) )
 2856      ROM_LOAD( "fl10",              0x20000, 0x20000, CRC(92245b29) SHA1(3289842bbd4bd7858846b234f08ea5737c11536d) )
 2857  
 2858      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2859      ROM_LOAD( "fl01",              0x00000, 0x20000, CRC(2c8b35a7) SHA1(9ab1c2f014a24837ee99c4db000291f7e55aeb12) )
 2860      ROM_LOAD( "fl03",              0x20000, 0x20000, CRC(1eefed3c) SHA1(be0ce3db211587086ae3ee8df85b7c56f831c623) )
 2861      ROM_LOAD( "fl00",              0x40000, 0x20000, CRC(756fb801) SHA1(35510c4ddf9258d87fdee0d3a64a8de0ebd1967d) )
 2862      ROM_LOAD( "fl02",              0x60000, 0x20000, CRC(54d2c120) SHA1(84f93bcd41d5bda8cfb39c4947fff025f53b143d) )
 2863  
 2864      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2865      ROM_LOAD( "fl17",              0x00000, 0x20000, CRC(9029965d) SHA1(9b28dc38e86f24fa89d7971b141c9bdddc662c99) )
 2866  
 2867      ROM_REGION( 0x0100, "proms", 0 )
 2868      ROM_LOAD( "7114.prm",          0x0000, 0x0100, CRC(eb539ffb) SHA1(6a8c9112f289f63e8c88320c9df698b559632c3d) )   /* Priority (not used) */
 2869  
 2870      ROM_REGION( 0x0c00, "plds", 0 )
 2871      ROM_LOAD( "pal16r4a-1.bin", 0x0000, 0x0104, CRC(d28fb8e0) SHA1(73cd73a075bd3ba3b3e50f3b71a4aaecce37115f) )
 2872      ROM_LOAD( "pal16l8b-2.bin", 0x0200, 0x0104, CRC(bcb591e3) SHA1(d3ebc2a19108c9db355d3ba1512ab4cf0d9fad76) )
 2873      ROM_LOAD( "pal16l8a-3.bin", 0x0400, 0x0104, CRC(e12972ac) SHA1(6b178c936068d9017a1444f437aea7e2ab1c6ca9) )
 2874      ROM_LOAD( "pal16l8a-4.bin", 0x0600, 0x0104, CRC(c6437e49) SHA1(0d89855378ab5f45d55f6aa175a63458b3da52a3) )
 2875      ROM_LOAD( "pal16l8b-5.bin", 0x0800, 0x0104, CRC(e9ee3a67) SHA1(5299f44f1141fcd57b0559b91ec7adb51b36c5c4) )
 2876      ROM_LOAD( "pal16l8a-6.bin", 0x0a00, 0x0104, CRC(23b17abe) SHA1(ca6c47f4df63d84401ccb29d0a0e3633b09d708a) )
 2877  ROM_END
 2878  
 2879  ROM_START( midresj )
 2880      ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
 2881      ROM_LOAD16_BYTE( "fh14",         0x00000, 0x20000, CRC(6d632a51) SHA1(38f9e8fe01ec9105c1ec83d70a5f5b2c754865ca) )
 2882      ROM_LOAD16_BYTE( "fh12",         0x00001, 0x20000, CRC(45143384) SHA1(5733439d6598a02dc0ae74b41d34b6afadd39330) )
 2883      ROM_LOAD16_BYTE( "fl15",         0x40000, 0x20000, CRC(1328354e) SHA1(2780a524718f351350e0fbc92a9a7ce9bdfc315e) )
 2884      ROM_LOAD16_BYTE( "fl13",         0x40001, 0x20000, CRC(e3b3955e) SHA1(10ff430b14c1dbcce81b13251bac124ef4f9f1d9) )
 2885  
 2886      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 2887      ROM_LOAD( "fh16",              0x00000, 0x10000, CRC(00736f32) SHA1(292f98b5579314c866247dd0ea1346c6e160b304) )
 2888  
 2889      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2890      ROM_LOAD( "fk_05.rom",         0x08000, 0x08000, CRC(3cdb7453) SHA1(d4b7fbf4726a375b4478922db6d936274bfa963c) )
 2891      ROM_CONTINUE(                  0x00000, 0x08000 )   /* the two halves are swapped */
 2892      ROM_LOAD( "fk_04.rom",         0x18000, 0x08000, CRC(325ba20c) SHA1(fecd6254cf8c3b18496039fe18ded13c2ae47ff4) )
 2893      ROM_CONTINUE(                  0x10000, 0x08000 )
 2894  
 2895      ROM_REGION( 0x80000, "gfx2", 0 ) /* tiles */
 2896      ROM_LOAD( "fl09",              0x00000, 0x20000, CRC(907d5910) SHA1(6f4963724987bf44007988d117a1f7276cf270d8) )
 2897      ROM_LOAD( "fl08",              0x20000, 0x20000, CRC(a936c03c) SHA1(293e69874ce9b2dfb1d605c9f988fa736b12bbcf) )
 2898      ROM_LOAD( "fl07",              0x40000, 0x20000, CRC(2068c45c) SHA1(943ed767a462ee39a42cd15f02d06c8a2e4556b3) )
 2899      ROM_LOAD( "fl06",              0x60000, 0x20000, CRC(b7241ab9) SHA1(3e83f9285ff4c476f1287bf73b514eace482dccc) )
 2900  
 2901      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 2902      ROM_LOAD( "fl11",              0x00000, 0x20000, CRC(b86b73b4) SHA1(dd0e61d60574e537aa1b7f35ffdfd08434ec8208) )
 2903      ROM_LOAD( "fl10",              0x20000, 0x20000, CRC(92245b29) SHA1(3289842bbd4bd7858846b234f08ea5737c11536d) )
 2904  
 2905      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2906      ROM_LOAD( "fl01",              0x00000, 0x20000, CRC(2c8b35a7) SHA1(9ab1c2f014a24837ee99c4db000291f7e55aeb12) )
 2907      ROM_LOAD( "fl03",              0x20000, 0x20000, CRC(1eefed3c) SHA1(be0ce3db211587086ae3ee8df85b7c56f831c623) )
 2908      ROM_LOAD( "fl00",              0x40000, 0x20000, CRC(756fb801) SHA1(35510c4ddf9258d87fdee0d3a64a8de0ebd1967d) )
 2909      ROM_LOAD( "fl02",              0x60000, 0x20000, CRC(54d2c120) SHA1(84f93bcd41d5bda8cfb39c4947fff025f53b143d) )
 2910  
 2911      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2912      ROM_LOAD( "fh17",              0x00000, 0x20000, CRC(c7b0a24e) SHA1(8a068d7838bbdfb200c7104deb0cd5647336117a) )
 2913  
 2914      ROM_REGION( 0x0100, "proms", 0 )
 2915      ROM_LOAD( "7114.prm",          0x0000, 0x0100, CRC(eb539ffb) SHA1(6a8c9112f289f63e8c88320c9df698b559632c3d) )   /* Priority (not used) */
 2916  
 2917      ROM_REGION( 0x0c00, "plds", 0 )
 2918      ROM_LOAD( "pal16r4a-1.bin", 0x0000, 0x0104, CRC(d28fb8e0) SHA1(73cd73a075bd3ba3b3e50f3b71a4aaecce37115f) )
 2919      ROM_LOAD( "pal16l8b-2.bin", 0x0200, 0x0104, CRC(bcb591e3) SHA1(d3ebc2a19108c9db355d3ba1512ab4cf0d9fad76) )
 2920      ROM_LOAD( "pal16l8a-3.bin", 0x0400, 0x0104, CRC(e12972ac) SHA1(6b178c936068d9017a1444f437aea7e2ab1c6ca9) )
 2921      ROM_LOAD( "pal16l8a-4.bin", 0x0600, 0x0104, CRC(c6437e49) SHA1(0d89855378ab5f45d55f6aa175a63458b3da52a3) )
 2922      ROM_LOAD( "pal16l8b-5.bin", 0x0800, 0x0104, CRC(e9ee3a67) SHA1(5299f44f1141fcd57b0559b91ec7adb51b36c5c4) )
 2923      ROM_LOAD( "pal16l8a-6.bin", 0x0a00, 0x0104, CRC(23b17abe) SHA1(ca6c47f4df63d84401ccb29d0a0e3633b09d708a) )
 2924  ROM_END
 2925  
 2926  
 2927  /*
 2928  Midnight Resistance bootleg
 2929  
 2930  Really nasty piece of junk, 2 huge boards.
 2931  There's also Bad Dudes running on the same
 2932  h/w (have seen one a few years ago)
 2933  
 2934  basic components......
 2935  68000 @8MHz
 2936  6502
 2937  68705R3
 2938  YM2203
 2939  YM3812
 2940  M6295
 2941  XTALs 16MHz & 12MHz
 2942  2x 8 position DSWs
 2943  
 2944  rom10 is missing (another PCB was found and dumped)
 2945  */
 2946  
 2947  ROM_START( midresb )
 2948      ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
 2949      ROM_LOAD16_BYTE( "14.bin",         0x00000, 0x10000, CRC(d9c0f06f) SHA1(23cdc3e0613fed4e3e35094884b716d2507d59c8) )
 2950      ROM_LOAD16_BYTE( "13.bin",         0x20000, 0x10000, CRC(d1bb2cd6) SHA1(6d4afd8dd8c4c3e90de199358da27108286637e2) )
 2951      ROM_LOAD16_BYTE( "11.bin",         0x00001, 0x10000, CRC(1909081a) SHA1(a8cfa551b55830f3cc32e52c9a855ca525e1ab3f) )
 2952      ROM_LOAD16_BYTE( "10.bin",         0x20001, 0x10000, CRC(42ccdd0d) SHA1(ef17cc984a8d57e9c52877f4e9b78e9976f99033) )
 2953      ROM_LOAD16_BYTE( "12.bin",         0x40000, 0x10000, CRC(1e85a68d) SHA1(9ff778d023523302f408d80f1cbd3a7c49c044b0) )
 2954      ROM_LOAD16_BYTE( "9.bin",          0x40001, 0x10000, CRC(1587bc2a) SHA1(0ca2abccfc52b0071b0741e1498c34d765fe38da) )
 2955  
 2956      ROM_REGION( 0x10000, "audiocpu", 0 )    /* 6502 sound */ // same as hippodrome / fighting fantasy...
 2957      ROM_LOAD( "15.bin",         0x8000, 0x8000, CRC(9871b98d) SHA1(2b6c46bc2b10a28946d6ad8251e1a156a0b99947) )
 2958  
 2959      ROM_REGION( 0x10000, "cpu2", 0 )    /* 68705 MCU */
 2960      ROM_LOAD( "68705r3.bin",              0x00000, 0x1000, CRC(ad5b1c13) SHA1(3616dc5969323a54e3e171d169f76250ae4e711a) )
 2961  
 2962      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 2963      ROM_LOAD( "23.bin",             0x08000, 0x08000, CRC(d75aba06) SHA1(cb3b969db3dd8e0c5c3729482f7461cde3a961f3) )
 2964      ROM_CONTINUE(                   0x00000, 0x08000 )  /* the two halves are swapped */
 2965      ROM_LOAD( "24.bin",             0x18000, 0x08000, CRC(8f5bbb79) SHA1(cb10f68787606111ba5e9967bf0b0cd21269a902) )
 2966      ROM_CONTINUE(                   0x10000, 0x08000 )
 2967  
 2968      ROM_REGION( 0x80000, "gfx2", 0 ) /* tiles */
 2969      ROM_LOAD( "28.bin",             0x00000, 0x10000, CRC(4490ed48) SHA1(e825c6290c65b9e3fa38f961a2174836ec2324d9) )
 2970      ROM_LOAD( "19.bin",             0x10000, 0x10000, CRC(0f94f5c1) SHA1(235f1d8a09c0bfc51454a16c41489eb45ea29e0b) )
 2971      ROM_LOAD( "26.bin",             0x20000, 0x10000, CRC(d4994050) SHA1(1d78ad702325013c3fd0889622b969af76d749ee) )
 2972      ROM_LOAD( "18.bin",             0x30000, 0x10000, CRC(dc85368b) SHA1(4c5b04de63e1b58d5d8615eb561fbb90d1e16011) )
 2973      ROM_LOAD( "27.bin",             0x40000, 0x10000, CRC(06f7ac18) SHA1(402a2c05ef7bea5afaff417bc1a1e2ba24e52eaa) )
 2974      ROM_LOAD( "20.bin",             0x50000, 0x10000, CRC(d2679020) SHA1(5ca10cd55e8a4aa670645528f6eff33fabf0c4d7) )
 2975      ROM_LOAD( "25.bin",             0x60000, 0x10000, CRC(323cce90) SHA1(8f5c5d0cc2bc2ded75bb4d0683f2611585b5affc) )
 2976      ROM_LOAD( "17.bin",             0x70000, 0x10000, CRC(7c94e1b4) SHA1(5b2d036f13c9ec85b46d601d8d925cfa14d204c3) )
 2977  
 2978      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 2979      ROM_LOAD( "22.bin",             0x00000, 0x10000, CRC(68d50336) SHA1(89a1b2398796ec2392f003e1c77ba914ea90c8c2) )
 2980      ROM_LOAD( "30.bin",             0x10000, 0x10000, CRC(efe22953) SHA1(2f4b6090c2fcd45381746ccc14c8ad8948aa096b) )
 2981      ROM_LOAD( "21.bin",             0x20000, 0x10000, CRC(3311d7b0) SHA1(d9812cd9d8b5bd38a78c4c3a92aa2a90d78525a3) )
 2982      ROM_LOAD( "29.bin",             0x30000, 0x10000, CRC(9210b713) SHA1(1db2775359d946221b99047fb648114a908690a9) )
 2983  
 2984      ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
 2985      ROM_LOAD( "8.bin",             0x00000, 0x10000, CRC(3f499acb) SHA1(1a22cfeed0497ddc2d571114d9f246b3ae18ede9) )
 2986      ROM_LOAD( "4.bin",             0x10000, 0x10000, CRC(5e7a6800) SHA1(8dd5c9005b6804a30627644053f14e4477fe0074) )
 2987      ROM_LOAD( "6.bin",             0x20000, 0x10000, CRC(897ba6e4) SHA1(70fd9cba3922751cb317770d6effdc2fb94c1324) )
 2988      ROM_LOAD( "2.bin",             0x30000, 0x10000, CRC(9fefb810) SHA1(863a81540261e78de5c612dea807ba29b12054d4) )
 2989      ROM_LOAD( "7.bin",             0x40000, 0x10000, CRC(ebafe720) SHA1(b9f76d2f1b59f1d028e6156b831c5c8ada033641) )
 2990      ROM_LOAD( "3.bin",             0x50000, 0x10000, CRC(87aab3c2) SHA1(fc5e96505f392b95a397e412f193f9aee74d58f5) )
 2991      ROM_LOAD( "5.bin",             0x60000, 0x10000, CRC(fd0bd8d3) SHA1(d6b19869ddc2a8ed4f38ba9d613b71853f2d13c0) )
 2992      ROM_LOAD( "1.bin",             0x70000, 0x10000, CRC(fc46d5ed) SHA1(20ddf3f67f0dfb222ad8d3fd464b892ec9c9e4f5) )
 2993  
 2994      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 2995      ROM_LOAD( "16.bin",            0x00000, 0x10000, CRC(ccf24b52) SHA1(39b2663c548b30684197284cb8e7a6ca803330c9) )
 2996  ROM_END
 2997  
 2998  
 2999  ROM_START( bouldash )
 3000      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 3001      ROM_LOAD16_BYTE( "fw-15-2.17l",   0x00000, 0x10000, CRC(ca19a967) SHA1(b9dc2b1323f19b6239e550ed020943bf13de8db0) )
 3002      ROM_LOAD16_BYTE( "fw-12-2.9l",    0x00001, 0x10000, CRC(242bdc2a) SHA1(9f2d7a5af94fae4ce4e61a2f3881a7aa10cdef3f) )
 3003      ROM_LOAD16_BYTE( "fw-16-2.19l",   0x20000, 0x10000, CRC(b7217265) SHA1(7ffc71fffb82b1299c6d5d0d1e9e1550977d258a) )
 3004      ROM_LOAD16_BYTE( "fw-13-2.11l",   0x20001, 0x10000, CRC(19209ef4) SHA1(36d7eb242f9558ee760b6cc69e7cf8f32d01070f) )
 3005      ROM_LOAD16_BYTE( "fw-17-2.20l",   0x40000, 0x10000, CRC(78a632a1) SHA1(6b7b82bf59cca10ac5a71b910a218a09c5014ff6) )
 3006      ROM_LOAD16_BYTE( "fw-14-2.13l",   0x40001, 0x10000, CRC(69b6112d) SHA1(3a8e34ae858946fc72b9ed4f932b9af64b081051) )
 3007  
 3008      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 3009      ROM_LOAD( "fn-10",      0x00000, 0x10000, CRC(c74106e7) SHA1(72213454c0ec78aa7d6843bd81d14b388ef7a48f) )
 3010  
 3011      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 3012      ROM_LOAD( "fn-04",        0x08000, 0x08000, CRC(40f5a760) SHA1(0d08b816714c08d0848dd25882a09d0a57fcc71b) )
 3013      ROM_CONTINUE(             0x00000, 0x08000 )    /* the two halves are swapped */
 3014      ROM_LOAD( "fn-05",        0x18000, 0x08000, CRC(824f2168) SHA1(32272a35e5faeebe41ece91fb902251707c9114b) )
 3015      ROM_CONTINUE(             0x10000, 0x08000 )
 3016  
 3017      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 3018      ROM_LOAD( "fn-07",        0x00000, 0x10000, CRC(eac6a3b3) SHA1(359df7335d11134ae149675080169cb53cafc19c) )
 3019      ROM_LOAD( "fn-06",        0x10000, 0x10000, CRC(3feee292) SHA1(d0dc75afffff268e0b3b817fbc060d52418a2ca7) )
 3020  
 3021      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 3022      ROM_LOAD( "fn-09",        0x00000, 0x20000, CRC(c2b27bd2) SHA1(8452d4442af476a35d3dfc4bd4df0a7d84a3dd7c) )
 3023      ROM_LOAD( "fn-08",        0x20000, 0x20000, CRC(5ac97178) SHA1(7d246cb17986033ae2c219f7409e3b91be0dd259) )
 3024  
 3025      ROM_REGION( 0x40000, "gfx4", 0 ) /* sprites */
 3026      ROM_LOAD( "fn-01",        0x00000, 0x10000, CRC(9333121b) SHA1(826ed261b1af41dd5468b2244767593d48577618) )
 3027      ROM_LOAD( "fn-03",        0x10000, 0x10000, CRC(254ba60f) SHA1(71ab5cd48ee34da1d2dd951bb243a26d7a1171ae) )
 3028      ROM_LOAD( "fn-00",        0x20000, 0x10000, CRC(ec18d098) SHA1(3cd1a27de295a177e81c14b9e9bbfcf5793aade2) )
 3029      ROM_LOAD( "fn-02",        0x30000, 0x10000, CRC(4f060cba) SHA1(4063183e699bb8b6059d56f4e2fec5fa0b037c23) )
 3030  
 3031      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 3032      ROM_LOAD( "fn-11",      0x00000, 0x10000, CRC(990fd8d9) SHA1(a37bd96ecd75c610d98df3320f53ae4e2b7fdefd) )
 3033  
 3034      ROM_REGION( 0x0100, "proms", 0 )
 3035      ROM_LOAD( "ta-16.21k",          0x0000, 0x0100, CRC(ad26e8d4) SHA1(827337aeb8904429a1c050279240ae38aa6ce064) )  /* Priority (not used) */
 3036  ROM_END
 3037  
 3038  ROM_START( bouldashj )
 3039      ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
 3040      ROM_LOAD16_BYTE( "fn-15-1.17l",  0x00000, 0x10000, CRC(d3ef20f8) SHA1(87a32a3865bec086afee5d97c0691087a41f4870) )
 3041      ROM_LOAD16_BYTE( "fn-12-1.9l",   0x00001, 0x10000, CRC(f4a10b45) SHA1(12c42d8abc7b21fbdef4f02d588a800cef222754) )
 3042      ROM_LOAD16_BYTE( "fn-16-.19l",   0x20000, 0x10000, CRC(fd1806a5) SHA1(fdbc8e8048d0935ee69b2b8023b5afdfe6fd9095) )
 3043      ROM_LOAD16_BYTE( "fn-13-.11l",   0x20001, 0x10000, CRC(d24d3681) SHA1(3f822592f7db4ba10852a57ea03fbc84271d2f77) )
 3044      ROM_LOAD16_BYTE( "fn-17-.20l",   0x40000, 0x10000, CRC(28d48a37) SHA1(7c5ddc35e7b29e5f89073ba88cd4048699f57e55) )
 3045      ROM_LOAD16_BYTE( "fn-14-.13l",   0x40001, 0x10000, CRC(8c61c682) SHA1(4ff2b5fc61b7887775901c968c872a2853ea6dbc) )
 3046  
 3047      ROM_REGION( 0x10000, "audiocpu", 0 )    /* Sound CPU */
 3048      ROM_LOAD( "fn-10",      0x00000, 0x10000, CRC(c74106e7) SHA1(72213454c0ec78aa7d6843bd81d14b388ef7a48f) )
 3049  
 3050      ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
 3051      ROM_LOAD( "fn-04",        0x08000, 0x08000, CRC(40f5a760) SHA1(0d08b816714c08d0848dd25882a09d0a57fcc71b) )
 3052      ROM_CONTINUE(             0x00000, 0x08000 )    /* the two halves are swapped */
 3053      ROM_LOAD( "fn-05",        0x18000, 0x08000, CRC(824f2168) SHA1(32272a35e5faeebe41ece91fb902251707c9114b) )
 3054      ROM_CONTINUE(             0x10000, 0x08000 )
 3055  
 3056      ROM_REGION( 0x20000, "gfx2", 0 ) /* tiles */
 3057      ROM_LOAD( "fn-07",        0x00000, 0x10000, CRC(eac6a3b3) SHA1(359df7335d11134ae149675080169cb53cafc19c) )
 3058      ROM_LOAD( "fn-06",        0x10000, 0x10000, CRC(3feee292) SHA1(d0dc75afffff268e0b3b817fbc060d52418a2ca7) )
 3059  
 3060      ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
 3061      ROM_LOAD( "fn-09",        0x00000, 0x20000, CRC(c2b27bd2) SHA1(8452d4442af476a35d3dfc4bd4df0a7d84a3dd7c) )
 3062      ROM_LOAD( "fn-08",        0x20000, 0x20000, CRC(5ac97178) SHA1(7d246cb17986033ae2c219f7409e3b91be0dd259) )
 3063  
 3064      ROM_REGION( 0x40000, "gfx4", 0 ) /* sprites */
 3065      ROM_LOAD( "fn-01",        0x00000, 0x10000, CRC(9333121b) SHA1(826ed261b1af41dd5468b2244767593d48577618) )
 3066      ROM_LOAD( "fn-03",        0x10000, 0x10000, CRC(254ba60f) SHA1(71ab5cd48ee34da1d2dd951bb243a26d7a1171ae) )
 3067      ROM_LOAD( "fn-00",        0x20000, 0x10000, CRC(ec18d098) SHA1(3cd1a27de295a177e81c14b9e9bbfcf5793aade2) )
 3068      ROM_LOAD( "fn-02",        0x30000, 0x10000, CRC(4f060cba) SHA1(4063183e699bb8b6059d56f4e2fec5fa0b037c23) )
 3069  
 3070      ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
 3071      ROM_LOAD( "fn-11",      0x00000, 0x10000, CRC(990fd8d9) SHA1(a37bd96ecd75c610d98df3320f53ae4e2b7fdefd) )
 3072  
 3073      ROM_REGION( 0x0100, "proms", 0 )
 3074      ROM_LOAD( "ta-16.21k",          0x0000, 0x0100, CRC(ad26e8d4) SHA1(827337aeb8904429a1c050279240ae38aa6ce064) )  /* Priority (not used) */
 3075  ROM_END
 3076  
 3077  
 3078  DRIVER_INIT_MEMBER(dec0_state,midresb)
 3079  {
 3080      machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00180000, 0x0018000f, read16_delegate(FUNC(dec0_state::dec0_controls_r),this));
 3081      machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x001a0000, 0x001a000f, read16_delegate(FUNC(dec0_state::dec0_rotary_r),this));
 3082  
 3083      machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x00180014, 0x00180015, write16_delegate(FUNC(dec0_state::midres_sound_w),this));
 3084  }
 3085  
 3086  READ16_MEMBER(dec0_state::ffantasybl_242024_r)
 3087  {
 3088  /*
 3089      000152: 41F9 0024 2020             lea     $242020.l, A0
 3090      000158: 4A68 0004                  tst.w   ($4,A0)
 3091      00015C: 6700 00A0                  beq     $1fe
 3092  
 3093      This allows us to at insert a coin...
 3094  */
 3095  
 3096      return 0xffff;
 3097  }
 3098  
 3099  READ16_MEMBER(dec0_state::ffantasybl_vblank_r)
 3100  {
 3101      return ioport("VBLANK")->read();
 3102  }
 3103  
 3104  DRIVER_INIT_MEMBER(dec0_state,ffantasybl)
 3105  {
 3106      machine().device("maincpu")->memory().space(AS_PROGRAM).install_ram(0x24c880, 0x24cbff); // what is this? layer 3-related??
 3107  
 3108      machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00242024, 0x00242025, read16_delegate(FUNC(dec0_state::ffantasybl_242024_r),this));
 3109      machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00ff87ee, 0x00ff87ef, read16_delegate(FUNC(dec0_state::ffantasybl_vblank_r),this));
 3110  }
 3111  
 3112  /******************************************************************************/
 3113  
 3114  //    YEAR, NAME,       PARENT,   MACHINE,  INPUT,    INIT,     MONITOR,COMPANY,FULLNAME,FLAGS
 3115  GAME( 1987, hbarrel,    0,        hbarrel,  hbarrel, dec0_state,  hbarrel,  ROT270, "Data East USA",         "Heavy Barrel (US)", 0 )
 3116  GAME( 1987, hbarrelw,   hbarrel,  hbarrel,  hbarrel, dec0_state,  hbarrel,  ROT270, "Data East Corporation", "Heavy Barrel (World)", 0 )
 3117  GAME( 1988, baddudes,   0,        baddudes, baddudes, dec0_state, baddudes, ROT0,   "Data East USA",         "Bad Dudes vs. Dragonninja (US)", 0 )
 3118  GAME( 1988, drgninja,   baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0,   "Data East Corporation", "Dragonninja (Japan)", 0 )
 3119  GAME( 1988, birdtry,    0,        birdtry,  birdtry, dec0_state,  birdtry,  ROT270, "Data East Corporation", "Birdie Try (Japan)", GAME_UNEMULATED_PROTECTION )
 3120  GAME( 1988, robocop,    0,        robocop,  robocop, dec0_state,  robocop,  ROT0,   "Data East Corporation", "Robocop (World revision 4)", 0 )
 3121  GAME( 1988, robocopw,   robocop,  robocop,  robocop, dec0_state,  robocop,  ROT0,   "Data East Corporation", "Robocop (World revision 3)", 0 )
 3122  GAME( 1988, robocopj,   robocop,  robocop,  robocop, dec0_state,  robocop,  ROT0,   "Data East Corporation", "Robocop (Japan)", 0 )
 3123  GAME( 1988, robocopu,   robocop,  robocop,  robocop, dec0_state,  robocop,  ROT0,   "Data East USA",         "Robocop (US revision 1)", 0 )
 3124  GAME( 1988, robocopu0,  robocop,  robocop,  robocop, dec0_state,  robocop,  ROT0,   "Data East USA",         "Robocop (US revision 0)", 0 )
 3125  GAME( 1989, hippodrm,   0,        hippodrm, hippodrm, dec0_state, hippodrm, ROT0,   "Data East USA",         "Hippodrome (US)", 0 )
 3126  GAME( 1989, ffantasy,   hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0,   "Data East Corporation", "Fighting Fantasy (Japan revision 2)", 0 )
 3127  GAME( 1989, ffantasya,  hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0,   "Data East Corporation", "Fighting Fantasy (Japan)", 0 )
 3128  GAME( 1989, slyspy,     0,        slyspy,   slyspy, dec0_state,   slyspy,   ROT0,   "Data East USA",         "Sly Spy (US revision 3)", 0 )
 3129  GAME( 1989, slyspy2,    slyspy,   slyspy,   slyspy, dec0_state,   slyspy,   ROT0,   "Data East USA",         "Sly Spy (US revision 2)", 0 )
 3130  GAME( 1989, secretag,   slyspy,   slyspy,   slyspy, dec0_state,   slyspy,   ROT0,   "Data East Corporation", "Secret Agent (World)", 0 )
 3131  GAME( 1989, midres,     0,        midres,   midres, driver_device,   0,        ROT0,   "Data East Corporation", "Midnight Resistance (World)", 0 )
 3132  GAME( 1989, midresu,    midres,   midres,   midresu, driver_device,  0,        ROT0,   "Data East USA",         "Midnight Resistance (US)", 0 )
 3133  GAME( 1989, midresj,    midres,   midres,   midresu, driver_device,  0,        ROT0,   "Data East Corporation", "Midnight Resistance (Japan)", 0 )
 3134  GAME( 1990, bouldash,   0,        slyspy,   bouldash, dec0_state, slyspy,   ROT0,   "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (World)", 0 )
 3135  GAME( 1990, bouldashj,  bouldash, slyspy,   bouldash, dec0_state, slyspy,   ROT0,   "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (Japan)", 0 )
 3136  
 3137  // bootlegs
 3138  
 3139  // more or less just an unprotected versions of the game, everything intact
 3140  GAME( 1988, robocopb,   robocop,  robocopb, robocop, dec0_state,  robocop,  ROT0,   "bootleg", "Robocop (World bootleg)", 0)
 3141  GAME( 1988, drgninjab,  baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0,   "bootleg", "Dragonninja (bootleg)", 0 )
 3142  
 3143  // this is a common bootleg board
 3144  GAME( 1989, midresb,    midres,   midresb,  midresb, dec0_state,  midresb,  ROT0,   "bootleg", "Midnight Resistance (bootleg with 68705)", 0 ) // need to hook up 68705?
 3145  GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, ffantasybl,   ROT0,   "bootleg", "Fighting Fantasy (bootleg with 68705)", GAME_IMPERFECT_GRAPHICS ) // 68705 not dumped, might be the same as midresb
 3146  /* A Bad Dudes bootleg with 68705 like the midres and ffantasy ones exists, but is not dumped */
 3147  
 3148  // these are different to the above but quite similar to each other
 3149  GAME( 1988, automat,    robocop,  automat,  robocop, dec0_state,  robocop,  ROT0,   "bootleg", "Automat (bootleg of Robocop)", GAME_NOT_WORKING ) // sound rom / music from section z with mods for ADPCM?
 3150  GAME( 1989, secretab,   slyspy,   secretab, slyspy, dec0_state,   slyspy,   ROT0,   "bootleg", "Secret Agent (bootleg)", GAME_NOT_WORKING )