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

    1  /***************************************************************************
    2  
    3                      -= Seta, Sammy, Visco (SSV) System =-
    4  
    5                      driver by   Luca Elia (l.elia@tin.it)
    6  
    7  
    8  CPU          :      NEC V60
    9  
   10  Sound Chip   :      Ensoniq ES5506 (OTTOR2)
   11  
   12  Custom Chips :      ST-0004     (Video DAC)
   13                      ST-0005     (Parallel I/O)
   14                      ST-0006     (Video controller)
   15                      ST-0007     (System controller)
   16  
   17  Others       :      Battery + MB3790 + LH5168D-10L (NVRAM)
   18                      DX-102              (I/O)
   19                      M62X42B             (RTC)
   20                      ST010
   21                      TA8210              (Audio AMP)
   22                      uPD71051/7001C      (UART)
   23  
   24  -----------------------------------------------------------------------------------
   25  Main Board  ROM Board   Year + Game                                 By
   26  -----------------------------------------------------------------------------------
   27  STA-0001    STS-0001    93  Super Real Mahjong PIV                  Seta
   28  STA-0001    STS-0001    93  Dramatic Adventure Quiz Keith & Lucy    Visco
   29  STA-0001    SAM-5127    93  Survival Arts                           Sammy
   30  STA-0001    SAM-5127    93  Dyna Gears                              Sammy
   31  STA-0001B   VISCO-001B  94  Drift Out '94                           Visco
   32  STA-0001B   GOLF ROM    94  Eagle Shot Golf                         Sammy
   33  STA-0001B   STS0003     94  Twin Eagle II - The Rescue Mission (1)  Seta
   34  STA-0001B   VISCO       95  Mobil Suit Gundam Final Shooting (2)    Banpresto
   35  STA-0001B   P1-102A     95  Mahjong Hyper Reaction                  Sammy
   36  ?           ?           95  Ultra X Weapons / Ultra Keibitai        Banpresto / Tsuburaya Prod.
   37  STA-0001B   VISCO-JJ1   96  Lovely Pop Mahjong JangJang Shimasho    Visco
   38  STA-0001B   VISCO-001B  96  Storm Blade                             Visco
   39  STA-0001B   P1-105A     96? Meosis Magic                            Sammy
   40  STA-0001B   ?           97  Joryuu Syougi Kyoushitsu (3)            Visco
   41  STA-0001B   VISCO-JJ1   97  Koi Koi Shimasho 2                      Visco
   42  STA-0001B   P1-112A     97  Mahjong Hyper Reaction 2                Sammy
   43  STA-0001B   ?           97  Monster Slider                          Visco / Datt
   44  STA-0001    ?           97  Super Real Mahjong P7                   Seta
   45  STA-0001B   ?           98  Gourmet Battle Quiz Ryorioh CooKing     Visco
   46  STA-0001B   P1-112C     98  Pachinko Sexy Reaction                  Sammy
   47  STA-0001B   B1-001A     99  Pachinko Sexy Reaction 2                Sammy
   48  STA-0001B   P1-112C     99  Change Air Blade                        Visco
   49  STA-0001B   VISCO-JJ1   00  Lovely Pop Mahjong JangJang Shimasho 2  Visco
   50  STA-0001B   SSV_SUB     00  Vasara                                  Visco
   51  STA-0001B   SSV_SUB     01  Vasara 2                                Visco
   52  -----------------------------------------------------------------------------------
   53  
   54  (1) Uses ST010 MCU / Math chip
   55  (2) Uses ST-0009 & ST-0020 & Light Gun
   56  (3) Uses NEC V810 CPU as sub cpu for the AI (basically the same as the majinsen games on st0016)
   57  
   58  SSV Hardware Overview
   59  Sammy/Seta/Visco, 1993-2001
   60  
   61  SSV was a joint venture between "S"ammy, "S"eta and "V"isco to produce a high quality 32-bit
   62  RISC-based hardware platform.
   63  
   64  The SSV main board contains all of the CPUs, RAM, custom ICs and sound chips. The lower PCB plugs
   65  into 4x 64-pin connectors and contains the game software and any additional game-specific connectors
   66  for controllers etc. The SSV games can be swapped by simply exchanging the lower (game) PCB onto any
   67  SSV main board. There is an older main board STA-0001 which is not compatible with _some_ of the
   68  newer games. The actual PCB will plug in, but the games will not boot up, instead displaying some
   69  kind of debug screen full of numbers. This is known to occur on Vasara and Vasara 2 but may occur
   70  with other games also. AFAIK, the actual PCBs look identical!
   71  
   72  PCB Layouts
   73  -----------
   74  
   75  Main Board (common to all SSV-based games)
   76  
   77  STA-0001B SYSTEM SSV
   78  |---------------------------------------------------------|
   79  | 2066   VOL                                              |
   80  |TA8210                    |--------|      74ALS245 x6    |
   81  |      TL072 |--------|    |        |                     |
   82  |H           |ENSONIC |    | ST0007 |                 JP1 |
   83  |      TL072 |ES5506  |    |        |   |--------|JP2     |
   84  |            |OTTOR2  |    |--------|   |        |74ALS74 |
   85  |S           |--------|                 |  V60   |        |
   86  |      D6376                74ALS08     |        |74F32   |
   87  |   74LS07                              |--------|        |
   88  |          TC4050                                 JP3     |
   89  |J TD62064                                                |
   90  |A              74ALS245                                  |
   91  |M      LM358      74ALS245                               |
   92  |M        |------|     74ALS245                           |
   93  |A        |ST0004|                 681000  681000         |
   94  |         |      |                                        |
   95  ||------| |------| 43256  43256 43256       43256  43256  |
   96  ||ST0005|                         |--------|      JP4     |
   97  ||      |      48MHz              |        |       MB3771 |
   98  ||------|42.9545MHz   74AC245     | ST0006 | 74ALS273     |
   99  |                         74F245  |        |       74F04  |
  100  | DSW1(8)   DSW2(8)               |--------|              |
  101  |---------------------------------------------------------|
  102  (Note All IC's Shown)
  103  
  104  Notes:
  105        H       - 3 pin connector for additional sound output
  106        S       - 5 pin connector for additional sound output
  107        D6376   - NEC D6376 2-channel 16-bit D/A converter (SOIC16)
  108        V60     - NEC D70615GD-16 V60 CPU, clock 16.000MHz [48/3] (QFP120)
  109        ES5506  - Ensonic ES5506 sound IC, clock 16.000MHz [48/3] (PLCC68)
  110        LM358   - National Semiconductor LM358 Low Power Dual Operational Amplifier (DIP8)
  111        2066    - New Japan Radio NJM2066 Dual Operational Amplifier (DIP16)
  112        TL072   - Texas Instruments TL072 Low Noise JFET-Input Operational Amplifier (DIP8)
  113        TA8210  - Toshiba TA8210 20W 2-channel Audio Power Amplifier
  114        43256   - Sharp LH52B256-70LL 32K x8 SRAM (DIP28)
  115                  Note all sockets with 43256 can accept DIP32 128K x8 SRAM instead depending on
  116                  game requirements
  117        681000  - Samsung KM681000ALP-7L 128K x8 SRAM (DIP32)
  118        JP1     - 3 pin jumper, hardwired on PCB to 2-3
  119        JP2     - 3 pin jumper, hardwired on PCB to 2-3
  120        JP3     - 3 pin jumper, hardwired on PCB to 1-3
  121        JP4     - 3 pin jumper, hardwired on PCB to 1-3
  122  
  123        SETA custom IC's -
  124                           ST-0004 Video DAC (QFP64)
  125                           ST-0005 Parallel I/O (QFP100)
  126                           ST-0006 Video controller (QFP208, covered with large heaksink)
  127                           ST-0007 System controller (QFP160)
  128  
  129  To Do:
  130  
  131  - hypreac2  :   communication with other units
  132  
  133  - janjans2  :   Coin inputs don't register in the input test
  134  
  135  - jsk       :   Coin inputs don't register in the input test
  136  
  137  - mslider   :   Coin inputs don't register in the input test
  138  
  139  - srmp4     :   Coin inputs don't register in the input test
  140  
  141  - srmp7     :   Needs interrupts by the sound chip (not properly hooked up yet). Kludged to work.
  142  
  143  Notes:
  144  
  145  - gdfs      :   Hold 1P Start on startup to enter test mode
  146  
  147  - jsk       :   Push 1P Start and 2P Start to advance to sound test
  148  
  149  
  150      code @ $e75cdc
  151  
  152       W:
  153              0x482000 - 0x482007 - values taken from obj table
  154              0x482040 - 0x482043 - write latch ?
  155  
  156       R:
  157              0x482022 - 0x482023 - result = direction, probably : 00 = down, 40 = left, 80 = up, c0 = right
  158              0x482042 - 0x482043 - protection status bits ?
  159  
  160  ***************************************************************************/
  161  
  162  #include "emu.h"
  163  #include "cpu/v810/v810.h"
  164  #include "cpu/v60/v60.h"
  165  #include "machine/eeprom.h"
  166  #include "machine/nvram.h"
  167  #include "sound/es5506.h"
  168  #include "includes/ssv.h"
  169  
  170  /***************************************************************************
  171  
  172  
  173                                  Interrupts
  174  
  175  
  176  ***************************************************************************/
  177  
  178  /* Update the IRQ state based on all possible causes */
  179  void ssv_state::update_irq_state()
  180  {
  181      machine().device("maincpu")->execute().set_input_line(0, (m_requested_int & m_irq_enable)? ASSERT_LINE : CLEAR_LINE);
  182  }
  183  
  184  IRQ_CALLBACK_MEMBER(ssv_state::ssv_irq_callback)
  185  {
  186      int i;
  187      for ( i = 0; i <= 7; i++ )
  188      {
  189          if (m_requested_int & (1 << i))
  190          {
  191              UINT16 vector = m_irq_vectors[i * (16/2)] & 7;
  192              return vector;
  193          }
  194      }
  195      return 0;
  196  }
  197  
  198  WRITE16_MEMBER(ssv_state::ssv_irq_ack_w)
  199  {
  200      int level = ((offset * 2) & 0x70) >> 4;
  201  
  202      m_requested_int &= ~(1 << level);
  203  
  204      update_irq_state();
  205  }
  206  
  207  /*
  208      IRQ Enable Register:
  209  
  210      drifto94:   c at the start
  211      hypreact:   ff at the start
  212      hypreac2:   ff at the start
  213      janjans1:   0,6c,60
  214      keithlcy:   c at the start
  215      meosism:    ff at the start
  216      mslider:    c at the start
  217      ryorioh:    0,c at the start
  218      srmp4:      8 at the start
  219      srmp7:      8 at the start, 28, 40 (seems related to 21000e writes)
  220      survarts:   0,8 at the start
  221      sxyreact:   ff at the start
  222      ultrax:     40,00 at the start then 42,4a
  223      twineag2:   40,00 at the start then 42,4a
  224  */
  225  WRITE16_MEMBER(ssv_state::ssv_irq_enable_w)
  226  {
  227      COMBINE_DATA(&m_irq_enable);
  228  }
  229  
  230  TIMER_DEVICE_CALLBACK_MEMBER(ssv_state::ssv_interrupt)
  231  {
  232      int scanline = param;
  233  
  234      if (scanline == 0)
  235      {
  236          if (m_interrupt_ultrax)
  237          {
  238              m_requested_int |= 1 << 1;  // needed by ultrax to coin up, breaks cairblad
  239              update_irq_state();
  240          }
  241      }
  242      else if(scanline == 240)
  243      {
  244          m_requested_int |= 1 << 3;  // vblank
  245          update_irq_state();
  246      }
  247  }
  248  
  249  TIMER_DEVICE_CALLBACK_MEMBER(ssv_state::gdfs_interrupt)
  250  {
  251      int scanline = param;
  252  
  253      if ((scanline % 64) == 0)
  254      {
  255          m_requested_int |= 1 << 6;  // reads lightgun (4 times for 4 axis)
  256          update_irq_state();
  257      }
  258      else if(scanline == 240)
  259      {
  260          m_requested_int |= 1 << 3;  // vblank
  261          update_irq_state();
  262      }
  263  }
  264  
  265  /***************************************************************************
  266  
  267  
  268                              Coins Lockout / Counter
  269  
  270  
  271  ***************************************************************************/
  272  
  273  /*
  274      drifto94:   c3
  275      janjans1:   c3
  276      keithlcy:   c3
  277      mslider:    c3, 83 in test mode
  278      ryorioh:    c3
  279  
  280      hypreac2:   80
  281      hypreact:   80
  282      meosism:    83
  283      srmp4:      83, c0 in test mode (where only tilemap sprites are used)
  284      srmp7:      80
  285      survarts:   83
  286      sxyreact:   80
  287  */
  288  WRITE16_MEMBER(ssv_state::ssv_lockout_w)
  289  {
  290  //  popmessage("%02X",data & 0xff);
  291      if (ACCESSING_BITS_0_7)
  292      {
  293          coin_lockout_w(machine(), 1,~data & 0x01);
  294          coin_lockout_w(machine(), 0,~data & 0x02);
  295          coin_counter_w(machine(), 1, data & 0x04);
  296          coin_counter_w(machine(), 0, data & 0x08);
  297  //                        data & 0x40?
  298          ssv_enable_video( machine(), data & 0x80);
  299      }
  300  }
  301  
  302  /* Same as above but with inverted lockout lines */
  303  WRITE16_MEMBER(ssv_state::ssv_lockout_inv_w)
  304  {
  305  //  popmessage("%02X",data & 0xff);
  306      if (ACCESSING_BITS_0_7)
  307      {
  308          coin_lockout_w(machine(), 1, data & 0x01);
  309          coin_lockout_w(machine(), 0, data & 0x02);
  310          coin_counter_w(machine(), 1, data & 0x04);
  311          coin_counter_w(machine(), 0, data & 0x08);
  312  //                        data & 0x40?
  313          ssv_enable_video( machine(), data & 0x80);
  314      }
  315  }
  316  
  317  void ssv_state::machine_reset()
  318  {
  319      m_requested_int = 0;
  320      machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(ssv_state::ssv_irq_callback),this));
  321      membank("bank1")->set_base(memregion("user1")->base());
  322  }
  323  
  324  
  325  /***************************************************************************
  326  
  327  
  328                                  DSP
  329  
  330  
  331  ***************************************************************************/
  332  
  333  static ADDRESS_MAP_START( dsp_prg_map, AS_PROGRAM, 32, ssv_state )
  334      AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("dspprg", 0)
  335  ADDRESS_MAP_END
  336  
  337  static ADDRESS_MAP_START( dsp_data_map, AS_DATA, 16, ssv_state )
  338      AM_RANGE(0x0000, 0x07ff) AM_ROM AM_REGION("dspdata", 0)
  339  ADDRESS_MAP_END
  340  
  341  READ16_MEMBER(ssv_state::dsp_dr_r)
  342  {
  343      return m_dsp->snesdsp_read(true);
  344  }
  345  
  346  WRITE16_MEMBER(ssv_state::dsp_dr_w)
  347  {
  348      m_dsp->snesdsp_write(true, data);
  349  }
  350  
  351  READ16_MEMBER(ssv_state::dsp_r)
  352  {
  353      UINT16 temp = m_dsp->dataram_r(offset/2);
  354      UINT16 res;
  355  
  356      if (offset & 1)
  357      {
  358          res = temp>>8;
  359      }
  360      else
  361      {
  362          res = temp & 0xff;
  363      }
  364  
  365      return res;
  366  }
  367  
  368  WRITE16_MEMBER(ssv_state::dsp_w)
  369  {
  370      UINT16 temp = m_dsp->dataram_r(offset/2);
  371  
  372      if (offset & 1)
  373      {
  374          temp &= 0xff;
  375          temp |= data<<8;
  376      }
  377      else
  378      {
  379          temp &= 0xff00;
  380          temp |= data;
  381      }
  382  
  383      m_dsp->dataram_w(offset/2, temp);
  384  }
  385  
  386  /***************************************************************************
  387  
  388  
  389                                  Memory Maps
  390  
  391  
  392  ***************************************************************************/
  393  
  394  #ifdef UNUSED_FUNCTION
  395  READ16_MEMBER(ssv_state::fake_r){   return ssv_scroll[offset];  }
  396  #endif
  397  
  398  #define SSV_MAP( _ROM  )                                                                                            \
  399      AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("mainram")                                     /*  RAM     */  \
  400      AM_RANGE(0x100000, 0x13ffff) AM_RAM AM_SHARE("spriteram")                                       /*  Sprites */  \
  401      AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(paletteram16_xrgb_swap_word_w) AM_SHARE("paletteram") /*  Palette */  \
  402      AM_RANGE(0x160000, 0x17ffff) AM_RAM                                                             /*          */  \
  403      AM_RANGE(0x1c0000, 0x1c0001) AM_READ(ssv_vblank_r           )                                   /*  Vblank? */  \
  404  /**/AM_RANGE(0x1c0002, 0x1c007f) AM_READONLY                                    /*  Scroll  */  \
  405      AM_RANGE(0x1c0000, 0x1c007f) AM_WRITE(ssv_scroll_w) AM_SHARE("scroll")                  /*  Scroll  */  \
  406      AM_RANGE(0x210002, 0x210003) AM_READ_PORT("DSW1")                                                               \
  407      AM_RANGE(0x210004, 0x210005) AM_READ_PORT("DSW2")                                                               \
  408      AM_RANGE(0x210008, 0x210009) AM_READ_PORT("P1")                                                                 \
  409      AM_RANGE(0x21000a, 0x21000b) AM_READ_PORT("P2")                                                                 \
  410      AM_RANGE(0x21000c, 0x21000d) AM_READ_PORT("SYSTEM")                                                             \
  411      AM_RANGE(0x21000e, 0x21000f) AM_READNOP AM_WRITE(ssv_lockout_w)                             /*  Lockout */  \
  412      AM_RANGE(0x210010, 0x210011) AM_WRITENOP                                                                        \
  413      AM_RANGE(0x230000, 0x230071) AM_WRITEONLY AM_SHARE("irq_vectors")                       /*  IRQ Vec */  \
  414      AM_RANGE(0x240000, 0x240071) AM_WRITE(ssv_irq_ack_w )                                           /*  IRQ Ack */  \
  415      AM_RANGE(0x260000, 0x260001) AM_WRITE(ssv_irq_enable_w)                                         /*  IRQ En  */  \
  416      AM_RANGE(0x300000, 0x30007f) AM_DEVREADWRITE8_LEGACY("ensoniq", es5506_r, es5506_w, 0x00ff)         /*  Sound   */  \
  417      AM_RANGE(_ROM, 0xffffff) AM_ROMBANK("bank1")                                                        /*  ROM     */
  418  /***************************************************************************
  419                                  Drift Out '94
  420  ***************************************************************************/
  421  
  422  READ16_MEMBER(ssv_state::drifto94_rand_r)
  423  {
  424      return machine().rand() & 0xffff;
  425  }
  426  
  427  static ADDRESS_MAP_START( drifto94_map, AS_PROGRAM, 16, ssv_state )
  428  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                                      // ? 1 at the start
  429      AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY                                       // ?
  430      AM_RANGE(0x480000, 0x480001) AM_READWRITE(dsp_dr_r, dsp_dr_w)
  431      AM_RANGE(0x482000, 0x482fff) AM_READWRITE(dsp_r, dsp_w)
  432      AM_RANGE(0x483000, 0x485fff) AM_WRITENOP                                        // ?
  433      AM_RANGE(0x500000, 0x500001) AM_WRITENOP                                        // ??
  434      AM_RANGE(0x510000, 0x510001) AM_READ(drifto94_rand_r        )                       // ??
  435      AM_RANGE(0x520000, 0x520001) AM_READ(drifto94_rand_r        )                       // ??
  436      AM_RANGE(0x580000, 0x5807ff) AM_RAM AM_SHARE("nvram")   // NVRAM
  437      SSV_MAP( 0xc00000 )
  438  ADDRESS_MAP_END
  439  
  440  
  441  /***************************************************************************
  442                       Mobil Suit Gundam Final Shooting
  443  ***************************************************************************/
  444  
  445  READ16_MEMBER(ssv_state::gdfs_eeprom_r)
  446  {
  447      device_t *device = machine().device("eeprom");
  448      static const char *const gunnames[] = { "GUNX1", "GUNY1", "GUNX2", "GUNY2" };
  449  
  450      eeprom_device *eeprom = downcast<eeprom_device *>(device);
  451      return (((m_gdfs_lightgun_select & 1) ? 0 : 0xff) ^ machine().root_device().ioport(gunnames[m_gdfs_lightgun_select])->read()) | (eeprom->read_bit() << 8);
  452  }
  453  
  454  WRITE16_MEMBER(ssv_state::gdfs_eeprom_w)
  455  {
  456      device_t *device = machine().device("eeprom");
  457  
  458      if (data & ~0x7b00)
  459          logerror("%s - Unknown EEPROM bit written %04X\n",machine().describe_context(),data);
  460  
  461      if ( ACCESSING_BITS_8_15 )
  462      {
  463  //      data & 0x8000 ? (near palette writes)
  464  //      data & 0x0001 ?
  465  
  466          // latch the bit
  467          eeprom_device *eeprom = downcast<eeprom_device *>(device);
  468          eeprom->write_bit(data & 0x4000);
  469  
  470          // reset line asserted: reset.
  471          eeprom->set_cs_line((data & 0x1000) ? CLEAR_LINE : ASSERT_LINE );
  472  
  473          // clock line asserted: write latch or select next bit to read
  474          eeprom->set_clock_line((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE );
  475  
  476          if (!(m_gdfs_eeprom_old & 0x0800) && (data & 0x0800))   // rising clock
  477              m_gdfs_lightgun_select = (data & 0x0300) >> 8;
  478      }
  479  
  480      COMBINE_DATA(&m_gdfs_eeprom_old);
  481  }
  482  
  483  
  484  static ADDRESS_MAP_START( gdfs_map, AS_PROGRAM, 16, ssv_state )
  485      AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(gdfs_tmapram_w) AM_SHARE("gdfs_tmapram")
  486      AM_RANGE(0x420000, 0x43ffff) AM_RAM
  487      AM_RANGE(0x440000, 0x44003f) AM_RAM AM_SHARE("gdfs_tmapscroll")
  488      AM_RANGE(0x500000, 0x500001) AM_WRITE(gdfs_eeprom_w)
  489      AM_RANGE(0x540000, 0x540001) AM_READ(gdfs_eeprom_r)
  490      AM_RANGE(0x600000, 0x600fff) AM_RAM
  491      AM_RANGE(0x800000, 0x87ffff) AM_DEVREADWRITE( "st0020_spr", st0020_device, st0020_sprram_r, st0020_sprram_w );
  492      AM_RANGE(0x8c0000, 0x8c00ff) AM_DEVREADWRITE( "st0020_spr", st0020_device, st0020_blitram_r, st0020_blitram_w );
  493      AM_RANGE(0x900000, 0x9fffff) AM_DEVREADWRITE( "st0020_spr", st0020_device, st0020_gfxram_r, st0020_gfxram_w );
  494      SSV_MAP( 0xc00000 )
  495  ADDRESS_MAP_END
  496  
  497  
  498  /***************************************************************************
  499                                  Hyper Reaction
  500  ***************************************************************************/
  501  
  502  /*
  503      The game prints "backup ram ok" and there is code to test some ram
  504      at 0x580000-0x5bffff. The test is skipped and this ram isn't used
  505      though. I guess it's either a left-over or there are different
  506      version with some battery backed RAM (which would indeed be on the
  507      rom-board, AFAIK)
  508  */
  509  
  510  READ16_MEMBER(ssv_state::hypreact_input_r)
  511  {
  512      UINT16 input_sel = *m_input_sel;
  513  
  514      if (input_sel & 0x0001) return ioport("KEY0")->read();
  515      if (input_sel & 0x0002) return ioport("KEY1")->read();
  516      if (input_sel & 0x0004) return ioport("KEY2")->read();
  517      if (input_sel & 0x0008) return ioport("KEY3")->read();
  518      logerror("CPU #0 PC %06X: unknown input read: %04X\n",space.device().safe_pc(),input_sel);
  519      return 0xffff;
  520  }
  521  
  522  static ADDRESS_MAP_START( hypreact_map, AS_PROGRAM, 16, ssv_state )
  523      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r)            // Watchdog
  524  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                      // ? 5 at the start
  525      AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w)            // Inverted lockout lines
  526  //  AM_RANGE(0x280000, 0x280001) AM_READNOP                       // ? read at the start, value not used
  527      AM_RANGE(0xc00000, 0xc00001) AM_READ(hypreact_input_r)              // Inputs
  528      AM_RANGE(0xc00006, 0xc00007) AM_RAM AM_SHARE("input_sel")           //
  529      AM_RANGE(0xc00008, 0xc00009) AM_NOP                                 //
  530      SSV_MAP( 0xf00000 )
  531  ADDRESS_MAP_END
  532  
  533  
  534  /***************************************************************************
  535                                  Hyper Reaction 2
  536  ***************************************************************************/
  537  
  538  static ADDRESS_MAP_START( hypreac2_map, AS_PROGRAM, 16, ssv_state )
  539      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r)                // Watchdog
  540  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                          // ? 5 at the start
  541      AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w)                // Inverted lockout lines
  542  //  AM_RANGE(0x280000, 0x280001) AM_READNOP                           // ? read at the start, value not used
  543      AM_RANGE(0x500000, 0x500001) AM_READ(hypreact_input_r)                  // Inputs
  544      AM_RANGE(0x500002, 0x500003) AM_READ(hypreact_input_r)                  // (again?)
  545      AM_RANGE(0x520000, 0x520001) AM_WRITEONLY AM_SHARE("input_sel") // Inputs
  546  //  0x540000, 0x540003  communication with other units
  547      SSV_MAP( 0xe00000 )
  548  ADDRESS_MAP_END
  549  
  550  
  551  /***************************************************************************
  552                                  Jan Jan Simasyo
  553  ***************************************************************************/
  554  
  555  
  556  
  557  static ADDRESS_MAP_START( janjans1_map, AS_PROGRAM, 16, ssv_state )
  558      AM_RANGE(0x210000, 0x210001) AM_WRITENOP                            // koikois2 but not janjans1
  559  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                          // ? 1 at the start
  560      AM_RANGE(0x210006, 0x210007) AM_READNOP
  561      AM_RANGE(0x800000, 0x800001) AM_WRITEONLY AM_SHARE("input_sel") // Inputs
  562      AM_RANGE(0x800002, 0x800003) AM_READ(srmp4_input_r)                     // Inputs
  563      SSV_MAP( 0xc00000 )
  564  ADDRESS_MAP_END
  565  
  566  
  567  /***************************************************************************
  568                                  Keith & Lucy
  569  ***************************************************************************/
  570  
  571  static ADDRESS_MAP_START( keithlcy_map, AS_PROGRAM, 16, ssv_state )
  572  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP  // ? 1 at the start
  573      AM_RANGE(0x210010, 0x210011) AM_WRITENOP    //
  574      AM_RANGE(0x21000e, 0x21000f) AM_READNOP //
  575      AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY   // ?
  576      SSV_MAP( 0xe00000 )
  577  ADDRESS_MAP_END
  578  
  579  
  580  /***************************************************************************
  581                                  Meosis Magic
  582  ***************************************************************************/
  583  
  584  static ADDRESS_MAP_START( meosism_map, AS_PROGRAM, 16, ssv_state )
  585      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r )                           // Watchdog
  586  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                                      // ? 5 at the start
  587  //  AM_RANGE(0x280000, 0x280001) AM_READNOP                                       // ? read once, value not used
  588  //  AM_RANGE(0x500004, 0x500005) AM_WRITENOP                                      // ? 0,58,18
  589      AM_RANGE(0x580000, 0x58ffff) AM_RAM AM_SHARE("nvram")   // NVRAM
  590      SSV_MAP( 0xf00000 )
  591  ADDRESS_MAP_END
  592  
  593  /***************************************************************************
  594                                  Monster Slider
  595  ***************************************************************************/
  596  
  597  /* Monster Slider needs the RAM mirrored for the gameplay logic to work correctly */
  598  
  599  READ16_MEMBER(ssv_state::ssv_mainram_r)
  600  {
  601      return m_mainram[offset];
  602  }
  603  
  604  WRITE16_MEMBER(ssv_state::ssv_mainram_w)
  605  {
  606      COMBINE_DATA(&m_mainram[offset]);
  607  }
  608  
  609  static ADDRESS_MAP_START( mslider_map, AS_PROGRAM, 16, ssv_state )
  610      AM_RANGE(0x010000, 0x01ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror
  611  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                          // ? 1 at the start
  612      AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY                           // ?
  613  //  AM_RANGE(0x500000, 0x500001) AM_WRITENOP                          // ? ff at the start
  614      SSV_MAP( 0xf00000 )
  615  ADDRESS_MAP_END
  616  
  617  
  618  /***************************************************************************
  619                      Gourmet Battle Quiz Ryohrioh CooKing
  620  ***************************************************************************/
  621  
  622  static ADDRESS_MAP_START( ryorioh_map, AS_PROGRAM, 16, ssv_state )
  623      AM_RANGE(0x210000, 0x210001) AM_WRITE(watchdog_reset16_w)   // Watchdog
  624  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP              // ? 1 at the start
  625      SSV_MAP( 0xc00000 )
  626  ADDRESS_MAP_END
  627  
  628  
  629  /***************************************************************************
  630                              Super Real Mahjong PIV
  631  ***************************************************************************/
  632  
  633  READ16_MEMBER(ssv_state::srmp4_input_r)
  634  {
  635      UINT16 input_sel = *m_input_sel;
  636  
  637      if (input_sel & 0x0002) return ioport("KEY0")->read();
  638      if (input_sel & 0x0004) return ioport("KEY1")->read();
  639      if (input_sel & 0x0008) return ioport("KEY2")->read();
  640      if (input_sel & 0x0010) return ioport("KEY3")->read();
  641      logerror("CPU #0 PC %06X: unknown input read: %04X\n",space.device().safe_pc(),input_sel);
  642      return 0xffff;
  643  }
  644  
  645  static ADDRESS_MAP_START( srmp4_map, AS_PROGRAM, 16, ssv_state )
  646      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r)                // Watchdog
  647  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                          // ? 1,5 at the start
  648      AM_RANGE(0xc0000a, 0xc0000b) AM_READ(srmp4_input_r)                     // Inputs
  649      AM_RANGE(0xc0000e, 0xc0000f) AM_WRITEONLY AM_SHARE("input_sel") // Inputs
  650      AM_RANGE(0xc00010, 0xc00011) AM_WRITENOP                            //
  651      SSV_MAP( 0xf00000 )
  652  ADDRESS_MAP_END
  653  
  654  
  655  /***************************************************************************
  656                              Super Real Mahjong P7
  657  ***************************************************************************/
  658  
  659  /*
  660      Interrupts aren't supported by the chip emulator yet
  661      (lev 5 in this case, I guess)
  662  */
  663  READ16_MEMBER(ssv_state::srmp7_irqv_r)
  664  {
  665      return 0x0080;
  666  }
  667  
  668  WRITE16_MEMBER(ssv_state::srmp7_sound_bank_w)
  669  {
  670      if (ACCESSING_BITS_0_7)
  671      {
  672          device_t *device = machine().device("ensoniq");
  673          int bank = 0x400000/2 * (data & 1); // UINT16 address
  674          int voice;
  675          for (voice = 0; voice < 32; voice++)
  676              es5506_voice_bank_w(device, voice, bank);
  677      }
  678  //  popmessage("%04X",data);
  679  }
  680  
  681  READ16_MEMBER(ssv_state::srmp7_input_r)
  682  {
  683      UINT16 input_sel = *m_input_sel;
  684  
  685      if (input_sel & 0x0002) return ioport("KEY0")->read();
  686      if (input_sel & 0x0004) return ioport("KEY1")->read();
  687      if (input_sel & 0x0008) return ioport("KEY2")->read();
  688      if (input_sel & 0x0010) return ioport("KEY3")->read();
  689      logerror("CPU #0 PC %06X: unknown input read: %04X\n",space.device().safe_pc(),input_sel);
  690      return 0xffff;
  691  }
  692  
  693  static ADDRESS_MAP_START( srmp7_map, AS_PROGRAM, 16, ssv_state )
  694      AM_RANGE(0x010000, 0x050faf) AM_RAM                                     // More RAM
  695      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r)                // Watchdog
  696  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                          // ? 0,4 at the start
  697      AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w)                // Coin Counters / Lockouts
  698      AM_RANGE(0x300076, 0x300077) AM_READ(srmp7_irqv_r)                      // Sound
  699  //  0x540000, 0x540003, related to lev 5 irq?
  700      AM_RANGE(0x580000, 0x580001) AM_WRITE(srmp7_sound_bank_w)               // Sound Bank
  701      AM_RANGE(0x600000, 0x600001) AM_READ(srmp7_input_r)                     // Inputs
  702      AM_RANGE(0x680000, 0x680001) AM_WRITEONLY AM_SHARE("input_sel") // Inputs
  703      SSV_MAP( 0xc00000 )
  704  ADDRESS_MAP_END
  705  
  706  
  707  /***************************************************************************
  708                                  Survival Arts
  709  ***************************************************************************/
  710  
  711  static ADDRESS_MAP_START( survarts_map, AS_PROGRAM, 16, ssv_state )
  712      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r)    // Watchdog
  713  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP              // ? 0,4 at the start
  714  //  AM_RANGE(0x290000, 0x290001) AM_READNOP               // ?
  715  //  AM_RANGE(0x2a0000, 0x2a0001) AM_READNOP               // ?
  716  
  717      AM_RANGE(0x400000, 0x43ffff) AM_RAM                         // dyna
  718  
  719      AM_RANGE(0x500008, 0x500009) AM_READ_PORT("ADD_BUTTONS")    // Extra Buttons
  720      SSV_MAP( 0xf00000 )
  721  ADDRESS_MAP_END
  722  
  723  
  724  /***************************************************************************
  725                              Pachinko Sexy Reaction
  726  ***************************************************************************/
  727  
  728  
  729  READ16_MEMBER(ssv_state::sxyreact_ballswitch_r)
  730  {
  731      return ioport("SERVICE")->read_safe(0);
  732  }
  733  
  734  READ16_MEMBER(ssv_state::sxyreact_dial_r)
  735  {
  736      return ((m_sxyreact_serial >> 1) & 0x80);
  737  }
  738  
  739  
  740  WRITE16_MEMBER(ssv_state::sxyreact_dial_w)
  741  {
  742      if (ACCESSING_BITS_0_7)
  743      {
  744          if (data & 0x20)
  745              m_sxyreact_serial = ioport("PADDLE")->read_safe(0) & 0xff;
  746  
  747          if ( (m_sxyreact_dial & 0x40) && !(data & 0x40) )   // $40 -> $00
  748              m_sxyreact_serial <<= 1;                        // shift 1 bit
  749  
  750          m_sxyreact_dial = data;
  751      }
  752  }
  753  
  754  WRITE16_MEMBER(ssv_state::sxyreact_motor_w)
  755  {
  756  //  popmessage("%04X",data);   // 8 = motor on; 0 = motor off
  757  }
  758  
  759  static ADDRESS_MAP_START( sxyreact_map, AS_PROGRAM, 16, ssv_state )
  760  //  AM_RANGE(0x020000, 0x03ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w)             // sxyreac2 reads / writes here, why?
  761      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r)                            // Watchdog
  762  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                                      // ? 1 at the start
  763      AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w)                            // Inverted lockout lines
  764      AM_RANGE(0x500002, 0x500003) AM_READ(sxyreact_ballswitch_r)                         // ?
  765      AM_RANGE(0x500004, 0x500005) AM_READWRITE(sxyreact_dial_r, sxyreact_motor_w)        // Dial Value (serial)
  766      AM_RANGE(0x520000, 0x520001) AM_WRITE(sxyreact_dial_w)                              // Dial Value (advance 1 bit)
  767      AM_RANGE(0x580000, 0x58ffff) AM_RAM AM_SHARE("nvram")   // NVRAM
  768      SSV_MAP( 0xe00000 )
  769  ADDRESS_MAP_END
  770  
  771  
  772  /***************************************************************************
  773                                  Twin Eagle II
  774  ***************************************************************************/
  775  
  776  /* comes as either a standalone board or a standard SSV rom board (verified) */
  777  
  778  static ADDRESS_MAP_START( twineag2_map, AS_PROGRAM, 16, ssv_state )
  779      AM_RANGE(0x010000, 0x03ffff) AM_RAM                         // More RAM
  780      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r)    // Watchdog (also value is cmp.b with mem 8)
  781      AM_RANGE(0x480000, 0x480001) AM_READWRITE(dsp_dr_r, dsp_dr_w)
  782      AM_RANGE(0x482000, 0x482fff) AM_READWRITE(dsp_r, dsp_w)
  783      SSV_MAP( 0xe00000 )
  784  ADDRESS_MAP_END
  785  
  786  
  787  /***************************************************************************
  788                                      Ultra X
  789  ***************************************************************************/
  790  
  791  /* standalone board based on SSV hardware */
  792  
  793  static ADDRESS_MAP_START( ultrax_map, AS_PROGRAM, 16, ssv_state )
  794      AM_RANGE(0x010000, 0x03ffff) AM_RAM                         // More RAM
  795      AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r)    // Watchdog (also value is cmp.b with memory address 8)
  796  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP              // ? 2,6 at the start
  797      SSV_MAP( 0xe00000 )
  798  ADDRESS_MAP_END
  799  
  800  /***************************************************************************
  801              Joryuu Syougi Kyoushitsu
  802  ***************************************************************************/
  803  
  804  /* from st0016.c */
  805  
  806  READ32_MEMBER(ssv_state::latch32_r)
  807  {
  808      if(!offset)
  809          m_latches[2]&=~2;
  810      return m_latches[offset];
  811  }
  812  
  813  WRITE32_MEMBER(ssv_state::latch32_w)
  814  {
  815      if(!offset)
  816          m_latches[2]|=1;
  817      COMBINE_DATA(&m_latches[offset]);
  818      machine().scheduler().synchronize();
  819  }
  820  
  821  READ16_MEMBER(ssv_state::latch16_r)
  822  {
  823      if(!offset)
  824          m_latches[2]&=~1;
  825      return m_latches[offset];
  826  }
  827  
  828  WRITE16_MEMBER(ssv_state::latch16_w)
  829  {
  830      if(!offset)
  831          m_latches[2]|=2;
  832      m_latches[offset]=data;
  833      machine().scheduler().synchronize();
  834  }
  835  
  836  static ADDRESS_MAP_START( jsk_map, AS_PROGRAM, 16, ssv_state )
  837      AM_RANGE(0x050000, 0x05ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror?
  838      AM_RANGE(0x210000, 0x210001) AM_WRITE(watchdog_reset16_w)               // Watchdog
  839      AM_RANGE(0x400000, 0x47ffff) AM_RAM                                     // RAM?
  840      AM_RANGE(0x900000, 0x900007) AM_READWRITE(latch16_r, latch16_w)
  841      SSV_MAP( 0xf00000 )
  842  ADDRESS_MAP_END
  843  
  844  
  845  static ADDRESS_MAP_START( jsk_v810_mem, AS_PROGRAM, 32, ssv_state )
  846      AM_RANGE(0x00000000, 0x0001ffff) AM_RAM
  847      AM_RANGE(0x80000000, 0x8001ffff) AM_RAM
  848      AM_RANGE(0xc0000000, 0xc001ffff) AM_RAM
  849      AM_RANGE(0x40000000, 0x4000000f) AM_READWRITE(latch32_r, latch32_w)
  850      AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("sub", 0)
  851  ADDRESS_MAP_END
  852  
  853  
  854  /***************************************************************************
  855    Eagle Shot Golf
  856  ***************************************************************************/
  857  
  858  READ16_MEMBER(ssv_state::eaglshot_gfxrom_r)
  859  {
  860      UINT8 *rom  =   memregion("gfx1")->base();
  861      size_t size =   memregion("gfx1")->bytes();
  862  
  863      offset = offset * 2 + m_gfxrom_select * 0x200000;
  864  
  865      if (offset > size)
  866          return 0xffff;
  867  
  868      return rom[offset] + (rom[offset+1]<<8);
  869  }
  870  
  871  WRITE16_MEMBER(ssv_state::eaglshot_gfxrom_w)
  872  {
  873      if (ACCESSING_BITS_0_7)
  874      {
  875          m_gfxrom_select = data;
  876      }
  877  }
  878  
  879  READ16_MEMBER(ssv_state::eaglshot_trackball_r)
  880  {
  881      switch(m_trackball_select)
  882      {
  883          case 0x60:  return (ioport("TRACKX")->read() >> 8) & 0xff;
  884          case 0x40:  return (ioport("TRACKX")->read() >> 0) & 0xff;
  885  
  886          case 0x70:  return (ioport("TRACKY")->read() >> 8) & 0xff;
  887          case 0x50:  return (ioport("TRACKY")->read() >> 0) & 0xff;
  888      }
  889      return 0;
  890  }
  891  
  892  WRITE16_MEMBER(ssv_state::eaglshot_trackball_w)
  893  {
  894      if (ACCESSING_BITS_0_7)
  895      {
  896          m_trackball_select = data;
  897      }
  898  }
  899  
  900  
  901  
  902  READ16_MEMBER(ssv_state::eaglshot_gfxram_r)
  903  {
  904      return m_eaglshot_gfxram[offset + (m_scroll[0x76/2] & 0xf) * 0x40000/2];
  905  }
  906  
  907  WRITE16_MEMBER(ssv_state::eaglshot_gfxram_w)
  908  {
  909      offset += (m_scroll[0x76/2] & 0xf) * 0x40000/2;
  910      COMBINE_DATA(&m_eaglshot_gfxram[offset]);
  911      machine().gfx[0]->mark_dirty(offset / (16*8/2));
  912      machine().gfx[1]->mark_dirty(offset / (16*8/2));
  913  }
  914  
  915  
  916  static ADDRESS_MAP_START( eaglshot_map, AS_PROGRAM, 16, ssv_state )
  917      AM_RANGE(0x180000, 0x1bffff) AM_READWRITE(eaglshot_gfxram_r, eaglshot_gfxram_w)
  918      AM_RANGE(0x210000, 0x210001) AM_READNOP /*AM_READ(watchdog_reset16_r)*/                 // Watchdog
  919  //  AM_RANGE(0x210002, 0x210003) AM_WRITENOP                                      // ? 0,4 at the start
  920      AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w)                            // Inverted lockout lines
  921      AM_RANGE(0x800000, 0x800001) AM_WRITE(eaglshot_gfxrom_w)
  922      AM_RANGE(0x900000, 0x900001) AM_WRITE(eaglshot_trackball_w)
  923      AM_RANGE(0xa00000, 0xbfffff) AM_READ(eaglshot_gfxrom_r)
  924      AM_RANGE(0xc00000, 0xc007ff) AM_RAM AM_SHARE("nvram")   // NVRAM
  925      AM_RANGE(0xd00000, 0xd00001) AM_READ(eaglshot_trackball_r)
  926      SSV_MAP( 0xf00000 )
  927  ADDRESS_MAP_END
  928  
  929  
  930  
  931  /***************************************************************************
  932  
  933  
  934                                  Input Ports
  935  
  936  
  937  ***************************************************************************/
  938  
  939  
  940  /***************************************************************************
  941                          Basic Coinage Settings
  942  ***************************************************************************/
  943  
  944  #define SSV_COINAGE_BASIC( shift, default, name, diploc )                                           \
  945      PORT_DIPNAME( 0x0003 << (shift), (default) << (shift), (name) ) PORT_DIPLOCATION( (diploc) )    \
  946      PORT_DIPSETTING(                 0x0001 << (shift), DEF_STR( 2C_1C ) )                          \
  947      PORT_DIPSETTING(                 0x0003 << (shift), DEF_STR( 1C_1C ) )                          \
  948      PORT_DIPSETTING(                 0x0000 << (shift), DEF_STR( 2C_3C ) )                          \
  949      PORT_DIPSETTING(                 0x0002 << (shift), DEF_STR( 1C_2C ) )
  950  
  951  #define SSV_COINAGE_STANDARD( shift, default, name, diploc )                                        \
  952      PORT_DIPNAME( 0x0007 << (shift), (default) << (shift), (name) ) PORT_DIPLOCATION( (diploc) )    \
  953      PORT_DIPSETTING(                 0x0005 << (shift), DEF_STR( 3C_1C ) )                          \
  954      PORT_DIPSETTING(                 0x0006 << (shift), DEF_STR( 2C_1C ) )                          \
  955      PORT_DIPSETTING(                 0x0007 << (shift), DEF_STR( 1C_1C ) )                          \
  956      PORT_DIPSETTING(                 0x0004 << (shift), DEF_STR( 1C_2C ) )                          \
  957      PORT_DIPSETTING(                 0x0003 << (shift), DEF_STR( 1C_3C ) )                          \
  958      PORT_DIPSETTING(                 0x0002 << (shift), DEF_STR( 1C_4C ) )                          \
  959      PORT_DIPSETTING(                 0x0001 << (shift), DEF_STR( 1C_5C ) )                          \
  960      PORT_DIPSETTING(                 0x0000 << (shift), DEF_STR( 1C_6C ) )
  961  
  962  #define SSV_COINAGE_EXTENDED( shift, default, name, diploc )                                        \
  963      PORT_DIPNAME( 0x000f << (shift), (default) << (shift), (name) ) PORT_DIPLOCATION( (diploc) )    \
  964      PORT_DIPSETTING(                 0x0007 << (shift), DEF_STR( 4C_1C ) )                          \
  965      PORT_DIPSETTING(                 0x0008 << (shift), DEF_STR( 3C_1C ) )                          \
  966      PORT_DIPSETTING(                 0x0009 << (shift), DEF_STR( 2C_1C ) )                          \
  967      PORT_DIPSETTING(                 0x000f << (shift), DEF_STR( 1C_1C ) )                          \
  968      PORT_DIPSETTING(                 0x0006 << (shift), DEF_STR( 2C_3C ) )                          \
  969      PORT_DIPSETTING(                 0x000e << (shift), DEF_STR( 1C_2C ) )                          \
  970      PORT_DIPSETTING(                 0x000d << (shift), DEF_STR( 1C_3C ) )                          \
  971      PORT_DIPSETTING(                 0x000c << (shift), DEF_STR( 1C_4C ) )                          \
  972      PORT_DIPSETTING(                 0x000b << (shift), DEF_STR( 1C_5C ) )                          \
  973      PORT_DIPSETTING(                 0x000a << (shift), DEF_STR( 1C_6C ) )                          \
  974  /* "** ADDED MULTIPLE COIN FEATURE **" */                                                           \
  975      PORT_DIPSETTING(                 0x0005 << (shift), "Multiple Coin Feature A" )                 \
  976  /* 2c-1c, 4c-2c, 5c-3c & 6c-4c */                                                                   \
  977      PORT_DIPSETTING(                 0x0004 << (shift), "Multiple Coin Feature B" )                 \
  978  /* 2c-1c, 4c-3c */                                                                                  \
  979      PORT_DIPSETTING(                 0x0003 << (shift), "Multiple Coin Feature C" )                 \
  980  /* 1c-1c, 2c-2c, 3c-3c, 4c-4c, 5c-6c */                                                             \
  981      PORT_DIPSETTING(                 0x0002 << (shift), "Multiple Coin Feature D" )                 \
  982  /* 1c-1c, 2c-2c, 3c-3c & 4c-5c */                                                                   \
  983      PORT_DIPSETTING(                 0x0001 << (shift), "Multiple Coin Feature E" )                 \
  984  /* 1c-1c, 2c-3c */                                                                                  \
  985  /* Meaning of all "ON" varies between games so it's not included here */
  986  
  987  
  988  /***************************************************************************
  989                          Common Joystick Inputs
  990  ***************************************************************************/
  991  
  992  static INPUT_PORTS_START( ssv_joystick )
  993      PORT_START("DSW1")  // IN0 - $210002
  994      PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )      /* Modified below */
  995  
  996      PORT_START("DSW2")  // IN1 - $210004
  997      PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )      /* Modified below */
  998  
  999      PORT_START("P1")    // IN2 - $210008
 1000      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
 1001      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
 1002      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
 1003      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
 1004      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
 1005      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
 1006      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
 1007      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
 1008  
 1009      PORT_START("P2")    // IN3 - $21000a
 1010      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 )
 1011      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
 1012      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
 1013      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
 1014      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
 1015      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
 1016      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
 1017      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
 1018  
 1019      PORT_START("SYSTEM")    // IN4 - $21000c
 1020      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
 1021      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
 1022      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
 1023      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT     )
 1024      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1)
 1025      PORT_BIT( 0x00e0, IP_ACTIVE_LOW, IPT_UNKNOWN  )
 1026  INPUT_PORTS_END
 1027  
 1028  
 1029  /***************************************************************************
 1030                          Common Mahjong Inputs
 1031  ***************************************************************************/
 1032  
 1033  static INPUT_PORTS_START( ssv_mahjong )
 1034      PORT_INCLUDE(ssv_joystick)
 1035  
 1036      PORT_START("KEY0")  // IN5 - $800002(0)
 1037      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1038      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1039      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
 1040      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_L )
 1041      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_H )
 1042      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_D )
 1043      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1044      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1045  
 1046      PORT_START("KEY1")  // IN6 - $800002(1)
 1047      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1048      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
 1049      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
 1050      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_K )
 1051      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_G )
 1052      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_C )
 1053      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1054      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1055  
 1056      PORT_START("KEY2")  // IN7 - $800002(2)
 1057      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
 1058      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
 1059      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_N )
 1060      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_J )
 1061      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_F )
 1062      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_B )
 1063      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1064      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1065  
 1066      PORT_START("KEY3")  // IN8 - $800002(3)
 1067      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
 1068      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
 1069      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_M )
 1070      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_I )
 1071      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_E )
 1072      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_A )
 1073      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1074      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1075  INPUT_PORTS_END
 1076  
 1077  
 1078  /***************************************************************************
 1079                           Common Quiz Inputs
 1080  ***************************************************************************/
 1081  
 1082  static INPUT_PORTS_START( ssv_quiz )
 1083      PORT_START("DSW1")  // IN0 - $210002
 1084      PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "DSW1:1" ) /* Manual states this dip is "Unused" */
 1085      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:2" )
 1086      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 1087      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1088      PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
 1089      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:4" )
 1090      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1091      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 1092      SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coin_A ), "DSW1:5,6" )
 1093      PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* Modified below */
 1094  
 1095      PORT_START("DSW2")  // IN1 - $210004
 1096      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2" )
 1097      PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )     /* 15 sec */
 1098      PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )   /* 12 sec */
 1099      PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )     /* 10 sec */
 1100      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )  /* 8 sec */
 1101      PORT_BIT( 0x00fc, IP_ACTIVE_LOW, IPT_UNKNOWN )      /* Modified below */
 1102  
 1103      PORT_START("P1")    // IN2 - $210008
 1104      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1  )
 1105      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1106      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1107      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1108      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
 1109      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
 1110      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
 1111      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
 1112  
 1113      PORT_START("P2")    // IN3 - $21000a
 1114      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2  )
 1115      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1116      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1117      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1118      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
 1119      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
 1120      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
 1121      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
 1122  
 1123      PORT_START("SYSTEM")    // IN4 - $21000c
 1124      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
 1125      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
 1126      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
 1127      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT     )
 1128      PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN  )
 1129  INPUT_PORTS_END
 1130  
 1131  
 1132  /***************************************************************************
 1133                             Change Air Blade
 1134  ***************************************************************************/
 1135  
 1136  static INPUT_PORTS_START( cairblad )
 1137      PORT_INCLUDE(ssv_joystick)
 1138  
 1139      PORT_MODIFY("DSW1") // IN0
 1140      SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSW1:1,2,3" )
 1141      SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSW1:4,5,6" )
 1142      PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW1:7" ) /* Manual lists this dip as "Unused" */
 1143      PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW1:8" ) /* Manual lists this dip as "Unused" */
 1144  
 1145      PORT_MODIFY("DSW2") // IN1
 1146      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
 1147      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 1148      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1149      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
 1150      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1151      PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
 1152      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:3,4" )
 1153      PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
 1154      PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
 1155      PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
 1156      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1157      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play ) )    PORT_DIPLOCATION( "DSW2:5" )
 1158      PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
 1159      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1160      PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Bonus_Life ) )   PORT_DIPLOCATION( "DSW2:6,7" )
 1161      PORT_DIPSETTING(      0x0040, "Every 2 Mil" )
 1162      PORT_DIPSETTING(      0x0060, "2 Mil/6 Mil" )
 1163      PORT_DIPSETTING(      0x0020, "4 Million" )
 1164      PORT_DIPSETTING(      0x0000, DEF_STR( None ) )
 1165      PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
 1166  INPUT_PORTS_END
 1167  
 1168  
 1169  /***************************************************************************
 1170                                  Drift Out '94
 1171  ***************************************************************************/
 1172  
 1173  static INPUT_PORTS_START( drifto94 )
 1174      PORT_INCLUDE(ssv_joystick)
 1175  
 1176      PORT_MODIFY("DSW1") // IN0 - $210002
 1177      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:1" )
 1178      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 1179      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1180      PORT_SERVICE_DIPLOC( 0x0002, IP_ACTIVE_LOW, "DSW1:2" )
 1181      PORT_DIPNAME( 0x0004, 0x0004, "Sound Test" )            PORT_DIPLOCATION( "DSW1:3" )
 1182      PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
 1183      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1184      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:4" )
 1185      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1186      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 1187      SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coin_A ), "DSW1:5,6" )
 1188      SSV_COINAGE_BASIC( 6, 0x03, DEF_STR( Coin_B ), "DSW1:7,8" )
 1189  
 1190      PORT_MODIFY("DSW2") // IN1 - $210004
 1191      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2" )
 1192      PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
 1193      PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
 1194      PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
 1195      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1196      PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "DSW2:3" ) /* Manual lists these dips as "Unused" */
 1197      PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "DSW2:4" )
 1198      PORT_DIPNAME( 0x0010, 0x0010, "Music Volume" )          PORT_DIPLOCATION( "DSW2:5" )
 1199      PORT_DIPSETTING(      0x0000, "Quiet" )
 1200      PORT_DIPSETTING(      0x0010, "Loud" )
 1201      PORT_DIPNAME( 0x0020, 0x0020, "Sound Volume" )          PORT_DIPLOCATION( "DSW2:6" )
 1202      PORT_DIPSETTING(      0x0000, "Quiet" )
 1203      PORT_DIPSETTING(      0x0020, "Loud" )
 1204      PORT_DIPNAME( 0x0040, 0x0040, "Save Best Time" )        PORT_DIPLOCATION( "DSW2:7" )
 1205      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
 1206      PORT_DIPSETTING(      0x0040, DEF_STR( Yes ) )
 1207      PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" ) /* Manual lists this dip as "Unused" */
 1208  INPUT_PORTS_END
 1209  
 1210  
 1211  /***************************************************************************
 1212                  Dyna Gears
 1213  ***************************************************************************/
 1214  
 1215  static INPUT_PORTS_START( dynagear )
 1216      PORT_INCLUDE(ssv_joystick)
 1217  
 1218      PORT_MODIFY("DSW1") // IN0 - $210002
 1219      SSV_COINAGE_EXTENDED( 0, 0x0f, DEF_STR( Coin_A ), "DSW1:1,2,3,4" )
 1220      //PORT_DIPSETTING(      0x0000, "???" ) - No values listed for all "ON"
 1221      SSV_COINAGE_EXTENDED( 4, 0x0f, DEF_STR( Coin_B ), "DSW1:5,6,7,8" )
 1222      //PORT_DIPSETTING(      0x0000, "???" ) - No values listed for all "ON"
 1223  
 1224      PORT_MODIFY("DSW2") // IN0 - $210004
 1225      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
 1226      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 1227      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1228      PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
 1229      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 1230      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1231      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:3,4" )
 1232      PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
 1233      PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
 1234      PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
 1235      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1236      PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )        PORT_DIPLOCATION( "DSW2:5,6" )
 1237      PORT_DIPSETTING(      0x0010, "1" )
 1238      PORT_DIPSETTING(      0x0030, "2" )
 1239      PORT_DIPSETTING(      0x0020, "3" )
 1240      PORT_DIPSETTING(      0x0000, "4" )
 1241      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) )    PORT_DIPLOCATION( "DSW2:7" )
 1242      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1243      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1244      PORT_DIPNAME( 0x0080, 0x0080, "Health" )                PORT_DIPLOCATION( "DSW2:8" )
 1245      PORT_DIPSETTING(      0x0000, "3 Hearts" )
 1246      PORT_DIPSETTING(      0x0080, "4 Hearts" )
 1247  
 1248      PORT_START("ADD_BUTTONS")   // IN5 - $500008
 1249      PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1250  INPUT_PORTS_END
 1251  
 1252  
 1253  /***************************************************************************
 1254                                  Eagle Shot Golf
 1255  ***************************************************************************/
 1256  
 1257  static INPUT_PORTS_START( eaglshot )
 1258      PORT_INCLUDE(ssv_joystick)
 1259  
 1260      PORT_MODIFY("DSW1") // IN0 - $210002
 1261      SSV_COINAGE_EXTENDED( 0, 0x0f, DEF_STR( Coinage ), "DSW1:1,2,3,4" )
 1262      PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
 1263      PORT_DIPNAME( 0x0010, 0x0010, "Credits To Start" )          PORT_DIPLOCATION( "DSW1:5" )
 1264      PORT_DIPSETTING(      0x0010, "1" )
 1265      PORT_DIPSETTING(      0x0000, "2" )
 1266      PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Controls ) )         PORT_DIPLOCATION( "DSW1:6" )
 1267      PORT_DIPSETTING(      0x0020, DEF_STR( Trackball ) )    // trackball dosn't work yet
 1268      PORT_DIPSETTING(      0x0000, DEF_STR( Joystick ) )
 1269      PORT_DIPNAME( 0x0040, 0x0040, "Trackball Type" )            PORT_DIPLOCATION( "DSW1:7" )
 1270      PORT_DIPSETTING(      0x0040, "24 Counts (USA)" )
 1271      PORT_DIPSETTING(      0x0000, "12 Counts (Japan)" )
 1272      PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
 1273  
 1274      PORT_MODIFY("DSW2") // IN1 - $210004
 1275      PORT_DIPNAME( 0x0003, 0x0003, "Number Of Holes" )           PORT_DIPLOCATION( "DSW2:1,2" )
 1276      PORT_DIPSETTING(      0x0002, "2" )
 1277      PORT_DIPSETTING(      0x0003, "3" )
 1278      PORT_DIPSETTING(      0x0001, "4" )
 1279      PORT_DIPSETTING(      0x0000, "5" )
 1280      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:3,4" )
 1281      PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
 1282      PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
 1283      PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
 1284      /*PORT_DIPSETTING(      0x0000, "???" ) - No listed value for ON & ON */
 1285      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW2:5" )
 1286      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1287      PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
 1288      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION( "DSW2:6" )
 1289      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1290      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
 1291      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW2:7" )
 1292      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1293      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1294      PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
 1295  
 1296      PORT_START("TRACKX")    // IN5 - trackball x ($d00000)
 1297      PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_RESET PORT_PLAYER(1)
 1298  
 1299      PORT_START("TRACKY")    // IN6 - trackball y ($d00000)
 1300      PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_RESET PORT_PLAYER(1)
 1301  INPUT_PORTS_END
 1302  
 1303  
 1304  /***************************************************************************
 1305                       Mobil Suit Gundam Final Shooting
 1306  ***************************************************************************/
 1307  
 1308  static INPUT_PORTS_START( gdfs )
 1309      PORT_INCLUDE(ssv_joystick)
 1310  
 1311      PORT_MODIFY("DSW1") // IN0 - $210002
 1312      PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Controls ) ) PORT_DIPLOCATION( "DSW1:1" )
 1313      PORT_DIPSETTING(      0x0001, DEF_STR( Joystick ) )
 1314      PORT_DIPSETTING(      0x0000, DEF_STR( Light_Gun ) )
 1315      PORT_DIPNAME( 0x0002, 0x0002, "Light Gun Calibration" ) PORT_DIPLOCATION( "DSW1:2" )
 1316      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 1317      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1318      PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Level_Select ) ) PORT_DIPLOCATION( "DSW1:3" ) /* Manual lists this dip as "Unused" */
 1319      PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
 1320      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1321      PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Coinage ) )  PORT_DIPLOCATION( "DSW1:4,5" )
 1322  //  PORT_DIPSETTING(      0x0000, DEF_STR( 2C_1C ) ) /* 2 Coins to Start, 1 Coin to Continue??? */
 1323      PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
 1324      PORT_DIPSETTING(      0x0018, DEF_STR( 1C_1C ) )
 1325      PORT_DIPSETTING(      0x0008, DEF_STR( 1C_2C ) )
 1326      PORT_DIPNAME( 0x0020, 0x0020, "Save Scores" )       PORT_DIPLOCATION( "DSW1:6" )
 1327      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )       // Clear NVRAM on boot
 1328      PORT_DIPSETTING(      0x0020, DEF_STR( Yes ) )
 1329      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:7" )
 1330      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1331      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1332      PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW1:8" )   /* Manual lists this dip as "Unused" */
 1333  
 1334      PORT_MODIFY("DSW2") // IN1 - $210004
 1335      PORT_DIPNAME( 0x0001, 0x0001, "Invert X Axis" )     PORT_DIPLOCATION( "DSW2:1" )
 1336      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 1337      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1338      PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0002, "DSW2:2" )   /* Manual lists this dip as "Unused" */
 1339      PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "DSW2:3" )   /* Manual lists this dip as "Unused" */
 1340      PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Language ) ) PORT_DIPLOCATION( "DSW2:4" )
 1341      PORT_DIPSETTING(      0x0000, DEF_STR( English ) )
 1342      PORT_DIPSETTING(      0x0008, DEF_STR( Japanese ) )
 1343      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:5" )
 1344      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1345      PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
 1346      PORT_DIPNAME( 0x0020, 0x0020, "Damage From Machine Gun" )   PORT_DIPLOCATION( "DSW2:6" )    // F76E34
 1347      PORT_DIPSETTING(      0x0020, "Light" )
 1348      PORT_DIPSETTING(      0x0000, "Heavy" )
 1349      PORT_DIPNAME( 0x0040, 0x0040, "Damage From Beam Cannon" )   PORT_DIPLOCATION( "DSW2:7" )    // F77487
 1350      PORT_DIPSETTING(      0x0040, "Light" )
 1351      PORT_DIPSETTING(      0x0000, "Heavy" )
 1352      PORT_DIPNAME( 0x0080, 0x0080, "Damage From Missle" )    PORT_DIPLOCATION( "DSW2:8" )    // F77255
 1353      PORT_DIPSETTING(      0x0080, "Light" )
 1354      PORT_DIPSETTING(      0x0000, "Heavy" )
 1355  
 1356      PORT_START("GUNX1") // IN5 - $540000(0)
 1357      PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(10) PORT_PLAYER(1)
 1358  
 1359      PORT_START("GUNY1") // IN6 - $540000(1)
 1360      PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(10) PORT_PLAYER(1)
 1361  
 1362      PORT_START("GUNX2") // IN7 - $540000(2)
 1363      PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(10) PORT_PLAYER(2)
 1364  
 1365      PORT_START("GUNY2") // IN8 - $540000(3)
 1366      PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(10) PORT_PLAYER(2)
 1367  INPUT_PORTS_END
 1368  
 1369  
 1370  /***************************************************************************
 1371                                  Hyper Reaction
 1372  ***************************************************************************/
 1373  
 1374  static INPUT_PORTS_START( hypreact )
 1375      PORT_START("DSW1")  // IN0 - $210002
 1376      SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSWA:1,2,3" )
 1377      SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSWA:4,5,6" )
 1378      PORT_DIPNAME( 0x0040, 0x0040, "Half Coins To Continue" )    PORT_DIPLOCATION( "DSWA:7" )
 1379      PORT_DIPSETTING(      0x0040, DEF_STR( No ) )
 1380      PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
 1381      PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )        PORT_DIPLOCATION( "DSWA:8" )
 1382      PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
 1383      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1384  
 1385      PORT_START("DSW2")  // IN1 - $210004
 1386      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSWB:1" )
 1387      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 1388      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1389      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSWB:2" )
 1390      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1391      PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
 1392      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSWB:3,4" )
 1393      PORT_DIPSETTING(      0x0008, DEF_STR( Easy )    )
 1394      PORT_DIPSETTING(      0x000c, DEF_STR( Normal )  )
 1395      PORT_DIPSETTING(      0x0004, DEF_STR( Hard )    )
 1396      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1397      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Controls ) )         PORT_DIPLOCATION( "DSWB:5" )
 1398      PORT_DIPSETTING(      0x0010, "Keyboard" )
 1399      PORT_DIPSETTING(      0x0000, DEF_STR( Joystick ) )
 1400      PORT_DIPNAME( 0x0020, 0x0020, "Multiple coins" )            PORT_DIPLOCATION( "DSWB:6" )
 1401      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1402      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
 1403      PORT_DIPNAME( 0x0040, 0x0040, "Keep Status On Continue" )   PORT_DIPLOCATION( "DSWB:7" )
 1404      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
 1405      PORT_DIPSETTING(      0x0040, DEF_STR( Yes ) )
 1406      PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSWB:8" )
 1407  
 1408      PORT_START("P1")    // IN2 - $210008 (used in joystick mode)
 1409      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
 1410      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_NAME("P1 Mahjong Chi (Joy Mode)")
 1411      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_NAME("P1 Mahjong Pon (Joy Mode)")
 1412      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_NAME("P1 Mahjong Kan (Joy Mode)")
 1413      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN       )
 1414      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN       )
 1415      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
 1416      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP   )
 1417  
 1418      PORT_START("P2")    // IN3 - $21000a (used in joystick mode)
 1419      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 )
 1420      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_NAME("P1 Mahjong Reach (Joy Mode)")
 1421      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_NAME("P1 Mahjong Ron (Joy Mode)")
 1422      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_NAME("Tsumo")// Is this correct?
 1423      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
 1424      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  )
 1425      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN        )
 1426      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN        )
 1427  
 1428      PORT_START("SYSTEM")    // IN4 - $21000c
 1429      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
 1430      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
 1431      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service coin & bet
 1432      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT     )
 1433      PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN  )
 1434  
 1435      PORT_START("KEY0")  // IN5 - $c00000(0)
 1436      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A )
 1437      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_E )
 1438      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_I )
 1439      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_M )
 1440      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
 1441      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1  )
 1442      PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1443  
 1444      PORT_START("KEY1")  // IN6 - $c00000(1)
 1445      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_B )
 1446      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_F )
 1447      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_J )
 1448      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_N )
 1449      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
 1450      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
 1451      PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1452  
 1453      PORT_START("KEY2")  // IN7 - $c00000(2)
 1454      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_C )
 1455      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_G )
 1456      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_K )
 1457      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
 1458      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
 1459      PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1460  
 1461      PORT_START("KEY3")  // IN8 - $c00000(3)
 1462      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_D )
 1463      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_H )
 1464      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_L )
 1465      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
 1466      PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1467  INPUT_PORTS_END
 1468  
 1469  
 1470  /***************************************************************************
 1471                                  Hyper Reaction 2
 1472  ***************************************************************************/
 1473  
 1474  static INPUT_PORTS_START( hypreac2 )
 1475      PORT_INCLUDE(ssv_joystick)
 1476  
 1477      PORT_MODIFY("DSW1") // IN0 - $210002
 1478      SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSWA:1,2,3" )
 1479      SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSWA:4,5,6" )
 1480      PORT_DIPNAME( 0x0040, 0x0040, "Half Coins To Continue" )    PORT_DIPLOCATION( "DSWA:7" )
 1481      PORT_DIPSETTING(      0x0040, DEF_STR( No ) )
 1482      PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
 1483      PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )        PORT_DIPLOCATION( "DSWA:8" )
 1484      PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
 1485      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1486  
 1487      PORT_MODIFY("DSW2") // IN1 - $210004
 1488      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSWB:1" )
 1489      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 1490      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1491      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSWB:2" )
 1492      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1493      PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
 1494      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSWB:3,4" )
 1495      PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
 1496      PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
 1497      PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
 1498      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1499      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Controls ) )         PORT_DIPLOCATION( "DSWB:5" )
 1500      PORT_DIPSETTING(      0x0010, "Keyboard" )
 1501      PORT_DIPSETTING(      0x0000, DEF_STR( Joystick ) )
 1502      PORT_DIPNAME( 0x0020, 0x0020, "Communication 1" )           PORT_DIPLOCATION( "DSWB:6" )
 1503      PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
 1504      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1505      PORT_DIPNAME( 0x0040, 0x0040, "Communication 2" )           PORT_DIPLOCATION( "DSWB:7" )
 1506      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1507      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1508      PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSWB:8" )
 1509  
 1510      PORT_START("KEY0")  // IN5 - $500000(0)
 1511      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A )
 1512      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_E )
 1513      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_I )
 1514      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_M )
 1515      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
 1516      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1  )
 1517      PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1518  
 1519      PORT_START("KEY1")  // IN6 - $500000(1)
 1520      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_B )
 1521      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_F )
 1522      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_J )
 1523      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_N )
 1524      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
 1525      PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1526  
 1527      PORT_START("KEY2")  // IN7 - $500000(2)
 1528      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_C )
 1529      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_G )
 1530      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_K )
 1531      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
 1532      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
 1533      PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1534  
 1535      PORT_START("KEY3")  // IN8 - $500000(3)
 1536      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_D )
 1537      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_H )
 1538      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_L )
 1539      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
 1540      PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
 1541  INPUT_PORTS_END
 1542  
 1543  
 1544  /***************************************************************************
 1545                                  JangJang Shimasho
 1546  ***************************************************************************/
 1547  
 1548  static INPUT_PORTS_START( janjans1 )
 1549      PORT_INCLUDE(ssv_mahjong)
 1550  
 1551      PORT_MODIFY("DSW1") // IN0 - $210002
 1552      PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "DSW1:1" )
 1553      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:2" )
 1554      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 1555      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1556      PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
 1557      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:4" )
 1558      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1559      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 1560      SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coinage ), "DSW1:5,6" )
 1561      PORT_DIPNAME( 0x0040, 0x0040, "Voice" )                 PORT_DIPLOCATION( "DSW1:7" )
 1562      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1563      PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
 1564      PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
 1565  
 1566      PORT_MODIFY("DSW2") // IN1 - $210004
 1567      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2" )
 1568      PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
 1569      PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
 1570      PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
 1571      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1572      PORT_DIPNAME( 0x0004, 0x0004, "Nudity" )                PORT_DIPLOCATION( "DSW2:3" )
 1573      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1574      PORT_DIPSETTING(      0x0004, DEF_STR( On ) )
 1575      PORT_DIPNAME( 0x0008, 0x0008, "Mini Game" )             PORT_DIPLOCATION( "DSW2:4" )
 1576      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1577      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 1578      PORT_DIPNAME( 0x0030, 0x0030, "Initial Score" )         PORT_DIPLOCATION( "DSW2:5,6" )
 1579      PORT_DIPSETTING(      0x0020, "1000" )
 1580      PORT_DIPSETTING(      0x0030, "1500" )
 1581      PORT_DIPSETTING(      0x0010, "2000" )
 1582      PORT_DIPSETTING(      0x0000, "3000" )
 1583      PORT_DIPNAME( 0x00c0, 0x00c0, "Communication" )         PORT_DIPLOCATION( "DSW2:7,8" )
 1584  //  PORT_DIPSETTING(      0x0080, "unused" )
 1585      PORT_DIPSETTING(      0x00c0, DEF_STR( None ) )
 1586      PORT_DIPSETTING(      0x0040, "Board 1 (Main)" )
 1587      PORT_DIPSETTING(      0x0000, "Board 2 (Sub)" )
 1588  INPUT_PORTS_END
 1589  
 1590  
 1591  /***************************************************************************
 1592                                  JangJang Shimasho 2
 1593  ***************************************************************************/
 1594  
 1595  static INPUT_PORTS_START( janjans2 )
 1596      PORT_INCLUDE(ssv_mahjong)
 1597  
 1598      PORT_MODIFY("DSW1") // IN0 - $210002
 1599      PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "DSW1:1" )
 1600      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW1:2" )
 1601      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 1602      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1603      PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
 1604      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW1:4" )
 1605      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1606      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 1607      SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coinage ), "DSW1:5,6" )
 1608      PORT_DIPNAME( 0x0040, 0x0040, "Nudity" )                    PORT_DIPLOCATION( "DSW1:7" )
 1609      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1610      PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
 1611      PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
 1612  
 1613      PORT_MODIFY("DSW2") // IN1 - $210004
 1614      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:1,2" )
 1615      PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
 1616      PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
 1617      PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
 1618      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1619      PORT_DIPNAME( 0x000c, 0x000c, "Initial Score (vs player)")  PORT_DIPLOCATION( "DSW2:3,4" )
 1620      PORT_DIPSETTING(      0x0008, "10000" )
 1621      PORT_DIPSETTING(      0x0004, "15000" )
 1622      PORT_DIPSETTING(      0x000c, "20000" )
 1623      PORT_DIPSETTING(      0x0000, "25000" )
 1624      PORT_DIPNAME( 0x0030, 0x0030, "Initial Score (vs CPU)" )    PORT_DIPLOCATION( "DSW2:5,6" )
 1625      PORT_DIPSETTING(      0x0020, "1000" )
 1626      PORT_DIPSETTING(      0x0030, "1500" )
 1627      PORT_DIPSETTING(      0x0010, "2000" )
 1628      PORT_DIPSETTING(      0x0000, "3000" )
 1629      PORT_DIPNAME( 0x00c0, 0x00c0, "Communication" )             PORT_DIPLOCATION( "DSW2:7,8" )
 1630  //  PORT_DIPSETTING(      0x0080, "unused" )
 1631      PORT_DIPSETTING(      0x00c0, DEF_STR( None ) )
 1632      PORT_DIPSETTING(      0x0040, "Transmitter" )
 1633      PORT_DIPSETTING(      0x0000, "Receiver" )
 1634  INPUT_PORTS_END
 1635  
 1636  
 1637  /***************************************************************************
 1638                             Joryuu Syougi Kyoushitsu
 1639  ***************************************************************************/
 1640  
 1641  static INPUT_PORTS_START( jsk )
 1642      PORT_INCLUDE(ssv_joystick)
 1643  
 1644      PORT_MODIFY("DSW1") // IN0 - $210002
 1645      PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )      PORT_DIPLOCATION("DSW1:1,2,3")
 1646      PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
 1647      PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
 1648      PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
 1649      PORT_DIPSETTING(      0x0003, DEF_STR( 2C_1C ) )
 1650      PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
 1651      PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
 1652      PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
 1653      PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
 1654      PORT_SERVICE_DIPLOC( 0x0008, IP_ACTIVE_LOW, "DSW1:4" )
 1655      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION("DSW1:5")
 1656      PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
 1657      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1658      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("DSW1:6")
 1659      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1660      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
 1661      PORT_DIPNAME( 0x00c0, 0x00c0, "Minutes" )               PORT_DIPLOCATION("DSW1:7,8")
 1662      PORT_DIPSETTING(      0x0080, "3" )
 1663      PORT_DIPSETTING(      0x00c0, "4" )
 1664      PORT_DIPSETTING(      0x0040, "5" )
 1665      PORT_DIPSETTING(      0x0000, "6" )
 1666  
 1667      PORT_MODIFY("DSW2") // IN1 - $210004
 1668      PORT_DIPNAME( 0x0007, 0x0007, "Difficulty A" )          PORT_DIPLOCATION("DSW2:1,2,3")
 1669      PORT_DIPSETTING(      0x0000, "1 (Novice)" )        // 8 fixed levels
 1670      PORT_DIPSETTING(      0x0001, "2" )
 1671      PORT_DIPSETTING(      0x0002, "3" )
 1672      PORT_DIPSETTING(      0x0003, "4" )
 1673      PORT_DIPSETTING(      0x0007, "5 (Medium)" )
 1674      PORT_DIPSETTING(      0x0006, "6" )
 1675      PORT_DIPSETTING(      0x0005, "7" )
 1676      PORT_DIPSETTING(      0x0004, "8 (expert)"    )
 1677      PORT_DIPNAME( 0x0008, 0x0008, "Difficulty Switch" )     PORT_DIPLOCATION("DSW2:4")
 1678      PORT_DIPSETTING(      0x0008, "A (8 Levels)" )
 1679      PORT_DIPSETTING(      0x0000, "B (4 Levels)" )
 1680      PORT_DIPNAME( 0x0030, 0x0030, "Difficulty B" )          PORT_DIPLOCATION("DSW2:5,6")
 1681      PORT_DIPSETTING(      0x0020, DEF_STR( Easy )    )  // 4 levels, and player can select 3 levels during game
 1682      PORT_DIPSETTING(      0x0030, DEF_STR( Normal )  )
 1683      PORT_DIPSETTING(      0x0010, DEF_STR( Hard )    )
 1684      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1685      PORT_DIPNAME( 0x0040, 0x0040, "Campaign" )              PORT_DIPLOCATION("DSW2:7")
 1686      PORT_DIPSETTING(      0x0040, "Available" )
 1687      PORT_DIPSETTING(      0x0000, "Finished" )
 1688      PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )      PORT_DIPLOCATION("DSW2:8")
 1689      PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
 1690      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1691  INPUT_PORTS_END
 1692  
 1693  
 1694  /***************************************************************************
 1695                                  Keith & Lucy
 1696  ***************************************************************************/
 1697  
 1698  static INPUT_PORTS_START( keithlcy )
 1699      PORT_INCLUDE(ssv_quiz)
 1700  
 1701      PORT_MODIFY("DSW1") // IN0 - $210002
 1702      SSV_COINAGE_BASIC( 6, 0x03, DEF_STR( Coin_B ), "DSW1:7,8" )
 1703  
 1704      PORT_MODIFY("DSW2") // IN1 - $210004
 1705      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )        PORT_DIPLOCATION( "DSW2:3,4" )
 1706      PORT_DIPSETTING(      0x0008, "2" )
 1707      PORT_DIPSETTING(      0x000c, "3" )
 1708      PORT_DIPSETTING(      0x0004, "4" )
 1709      PORT_DIPSETTING(      0x0000, "5" )
 1710      PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Bonus_Life ) )   PORT_DIPLOCATION( "DSW2:5,6" )
 1711      PORT_DIPSETTING(      0x0030, "Every 100k" )        //100
 1712      PORT_DIPSETTING(      0x0020, "Every 150k" )        //150
 1713      PORT_DIPSETTING(      0x0010, "100k & Every 200K" ) //100
 1714      PORT_DIPSETTING(      0x0000, "Every 200k" )        //200
 1715      PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW2:7" ) /* Manual lists these dips as "Unused" */
 1716      PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" ) /* Manual lists these dips as "Unused" */
 1717  INPUT_PORTS_END
 1718  
 1719  
 1720  /***************************************************************************
 1721                              Koi Koi Simasho 2
 1722  ***************************************************************************/
 1723  
 1724  static INPUT_PORTS_START( koikois2 )
 1725      PORT_INCLUDE(ssv_mahjong)
 1726  
 1727      PORT_MODIFY("DSW1") // IN0 - $210002
 1728      PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "DSW1:1" )
 1729      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:2" )
 1730      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 1731      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1732      PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
 1733      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:4" )
 1734      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1735      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 1736      SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coinage ), "DSW1:5,6" )
 1737      PORT_DIPNAME( 0x0040, 0x0040, "Voice" )                 PORT_DIPLOCATION( "DSW1:7" )
 1738      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1739      PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
 1740      PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Controls ) )     PORT_DIPLOCATION( "DSW1:8" )
 1741      PORT_DIPSETTING(      0x0080, DEF_STR( Joystick ) )
 1742      PORT_DIPSETTING(      0x0000, "Keyboard" )
 1743  
 1744      PORT_MODIFY("DSW2") // IN1 - $210004
 1745      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2" )
 1746      PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
 1747      PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
 1748      PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
 1749      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1750      PORT_DIPNAME( 0x0004, 0x0004, "Nudity" )                PORT_DIPLOCATION( "DSW2:3" )
 1751      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
 1752      PORT_DIPSETTING(      0x0004, DEF_STR( Yes ) )
 1753      PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "DSW2:4" )
 1754      PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "DSW2:5" )
 1755      PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0020, "DSW2:6" )
 1756      PORT_DIPNAME( 0x00c0, 0x00c0, "Communication" )         PORT_DIPLOCATION( "DSW2:7,8" )
 1757  //  PORT_DIPSETTING(      0x0080, "unused" )
 1758      PORT_DIPSETTING(      0x00c0, DEF_STR( None ) )
 1759      PORT_DIPSETTING(      0x0040, "Board 1 (Main)" )
 1760      PORT_DIPSETTING(      0x0000, "Board 2 (Sub)" )
 1761  INPUT_PORTS_END
 1762  
 1763  
 1764  /***************************************************************************
 1765                                  Meosis Magic
 1766  ***************************************************************************/
 1767  
 1768  static INPUT_PORTS_START( meosism )
 1769      PORT_START("DSW1")  // IN0 - $210002
 1770      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) )      PORT_DIPLOCATION( "DSW1:1,2" )
 1771      PORT_DIPSETTING(      0x0003, "1 Medal/1 Credit" )
 1772      PORT_DIPSETTING(      0x0001, "1 Medal/5 Credits" )
 1773      PORT_DIPSETTING(      0x0002, "1 Medal/10 Credits" )
 1774      PORT_DIPSETTING(      0x0000, "1 Medal/20 Credits" )
 1775      PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:3" )
 1776      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1777      PORT_DIPSETTING(      0x0004, DEF_STR( On ) )
 1778      PORT_DIPNAME( 0x0008, 0x0008, "Attendant Pay" )         PORT_DIPLOCATION( "DSW1:4" )
 1779      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
 1780      PORT_DIPSETTING(      0x0008, DEF_STR( Yes ) )
 1781      PORT_DIPNAME( 0x0010, 0x0010, "Medals Payout" )         PORT_DIPLOCATION( "DSW1:5" )
 1782      PORT_DIPSETTING(      0x0010, "400" )
 1783      PORT_DIPSETTING(      0x0000, "800" )
 1784      PORT_DIPNAME( 0x0020, 0x0020, "Max Credits" )           PORT_DIPLOCATION( "DSW1:6" )
 1785      PORT_DIPSETTING(      0x0020, "5000" )
 1786      PORT_DIPSETTING(      0x0000, "9999" )
 1787      PORT_DIPNAME( 0x0040, 0x0040, "Hopper" )                PORT_DIPLOCATION( "DSW1:7" )
 1788      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
 1789      PORT_DIPSETTING(      0x0040, DEF_STR( Yes ) )
 1790      PORT_DIPNAME( 0x0080, 0x0080, "Reel Speed" )            PORT_DIPLOCATION( "DSW1:8" )
 1791      PORT_DIPSETTING(      0x0080, DEF_STR( Low ) )
 1792      PORT_DIPSETTING(      0x0000, DEF_STR( High ) )
 1793  
 1794      PORT_START("DSW2")  // IN1 - $210004
 1795      PORT_DIPNAME( 0x0003, 0x0003, "Game Rate" )             PORT_DIPLOCATION( "DSW2:1,2" )
 1796      PORT_DIPSETTING(      0x0000, "80%" )
 1797      PORT_DIPSETTING(      0x0002, "85%" )
 1798      PORT_DIPSETTING(      0x0003, "90%" )
 1799      PORT_DIPSETTING(      0x0001, "95%" )
 1800      PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "DSW2:3" )
 1801      PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "DSW2:4" )
 1802      PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "DSW2:5" )
 1803      PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Controls ) )     PORT_DIPLOCATION( "DSW2:6" )
 1804      PORT_DIPSETTING(      0x0020, "Simple" )
 1805      PORT_DIPSETTING(      0x0000, "Complex" )
 1806      PORT_DIPNAME( 0x0040, 0x0000, "Coin Sensor" )           PORT_DIPLOCATION( "DSW2:7" )
 1807      PORT_DIPSETTING(      0x0040, "Active High" )
 1808      PORT_DIPSETTING(      0x0000, "Active Low" )
 1809      PORT_DIPNAME( 0x0080, 0x0080, "Hopper Sensor" )         PORT_DIPLOCATION( "DSW2:8" )
 1810      PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
 1811      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1812  
 1813      PORT_START("P1")    // IN2 - $210008
 1814      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4        )   //bet
 1815      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3        )   //stop/r
 1816      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2        )   //stop/c
 1817      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1        )   //stop/l
 1818      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )   //no
 1819      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  )   //yes
 1820      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START1         )   //start
 1821      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN        )   //-
 1822  
 1823      PORT_START("P2")    // IN3 - $21000a
 1824      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
 1825      PORT_SERVICE_NO_TOGGLE( 0x0002, IP_ACTIVE_LOW )
 1826      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
 1827      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Payout") //payout
 1828      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
 1829      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT     ) //reset
 1830      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
 1831      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
 1832  
 1833      PORT_START("SYSTEM")    // IN4 - $21000c
 1834      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
 1835  //  PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)  // Should work but doesn't
 1836      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) //service coin
 1837      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Analyzer") //analyzer
 1838      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5  ) //max bet
 1839      PORT_BIT( 0x00e2, IP_ACTIVE_LOW, IPT_UNKNOWN  )
 1840  INPUT_PORTS_END
 1841  
 1842  
 1843  /***************************************************************************
 1844                                  Monster Slider
 1845  ***************************************************************************/
 1846  
 1847  static INPUT_PORTS_START( mslider )
 1848      PORT_INCLUDE(ssv_joystick)
 1849  
 1850      PORT_MODIFY("DSW1") // IN0 - $210002
 1851      SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSW1:1,2,3" )
 1852      SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSW1:4,5,6" )
 1853      PORT_SERVICE_DIPLOC( 0x0040, IP_ACTIVE_LOW, "DSW1:7" )
 1854      PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW1:8" ) /* Manual lists this dip as "Unused" */
 1855  
 1856      PORT_MODIFY("DSW2") // IN1 - $210004
 1857      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
 1858      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 1859      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1860      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
 1861      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1862      PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
 1863      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:3,4" )
 1864      PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
 1865      PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
 1866      PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
 1867      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1868      PORT_DIPNAME( 0x0030, 0x0030, "Rounds (Vs Mode)" )      PORT_DIPLOCATION( "DSW2:5,6" )
 1869      PORT_DIPSETTING(      0x0000, "1" )
 1870      PORT_DIPSETTING(      0x0030, "2" )
 1871      PORT_DIPSETTING(      0x0020, "3" )
 1872      PORT_DIPSETTING(      0x0010, "4" )
 1873      PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW2:7" ) /* Manual lists these dips as "Unused" */
 1874      PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" )
 1875  INPUT_PORTS_END
 1876  
 1877  
 1878  /***************************************************************************
 1879                      Gourmet Battle Quiz Ryohrioh CooKing
 1880  ***************************************************************************/
 1881  
 1882  static INPUT_PORTS_START( ryorioh )
 1883      PORT_INCLUDE(ssv_quiz)
 1884  
 1885      PORT_MODIFY("DSW1") // IN0 - $210002
 1886      PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW1:7" ) /* Manual states this dip is "Unused" */
 1887      PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
 1888  
 1889      PORT_MODIFY("DSW2") // IN1 - $210004
 1890      PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "DSW2:3" ) /* Manual states dips 3-8 are "Unused" */
 1891      PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "DSW2:4" )
 1892      PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "DSW2:5" )
 1893      PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "DSW2:6" )
 1894      PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW2:7" )
 1895      PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" )
 1896  INPUT_PORTS_END
 1897  
 1898  
 1899  /***************************************************************************
 1900                              Super Real Mahjong PIV
 1901  ***************************************************************************/
 1902  
 1903  static INPUT_PORTS_START( srmp4 )
 1904      PORT_INCLUDE(ssv_mahjong)
 1905  
 1906      PORT_MODIFY("DSW1") // IN0 - $210002
 1907      PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )           PORT_DIPLOCATION( "DSW1:1,2,3" )
 1908      PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
 1909      PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
 1910      PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
 1911      PORT_DIPSETTING(      0x0003, DEF_STR( 2C_1C ) )
 1912      PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
 1913      PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
 1914      PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
 1915      PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
 1916      PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )           PORT_DIPLOCATION( "DSW1:4,5,6" )
 1917      PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
 1918      PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
 1919      PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
 1920      PORT_DIPSETTING(      0x0018, DEF_STR( 2C_1C ) )
 1921      PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
 1922      PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
 1923      PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
 1924      PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
 1925      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) )        PORT_DIPLOCATION( "DSW1:7" )
 1926      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 1927      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1928      PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
 1929  
 1930      PORT_MODIFY("DSW2") // IN1 - $210004
 1931      PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:1,2,3" )
 1932      PORT_DIPSETTING(      0x0006, DEF_STR( Easiest ) )
 1933      PORT_DIPSETTING(      0x0005, DEF_STR( Easier ) )
 1934      PORT_DIPSETTING(      0x0004, DEF_STR( Easy ) )
 1935      PORT_DIPSETTING(      0x0007, DEF_STR( Normal ) )
 1936      PORT_DIPSETTING(      0x0003, DEF_STR( Medium ) )
 1937      PORT_DIPSETTING(      0x0002, DEF_STR( Hard ) )
 1938      PORT_DIPSETTING(      0x0001, DEF_STR( Harder ) )
 1939      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1940      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW2:4" )
 1941      PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
 1942      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 1943      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW2:5" )
 1944      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1945      PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
 1946      PORT_SERVICE_DIPLOC( 0x0020, IP_ACTIVE_LOW, "DSW2:6" )
 1947      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION( "DSW2:7" )
 1948      PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
 1949      PORT_DIPSETTING(      0x0040, DEF_STR( Yes ) )
 1950      PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW2:8" )
 1951  INPUT_PORTS_END
 1952  
 1953  
 1954  /***************************************************************************
 1955                              Super Real Mahjong P7
 1956  ***************************************************************************/
 1957  
 1958  static INPUT_PORTS_START( srmp7 )
 1959      PORT_START("DSW1")  // IN0 - $210002
 1960      PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )          PORT_DIPLOCATION( "DSW1:1,2,3" )
 1961      PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
 1962      PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
 1963      PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
 1964      PORT_DIPSETTING(      0x0003, DEF_STR( 2C_1C ) )
 1965      PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
 1966      PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
 1967      PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
 1968      PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
 1969      PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "DSW1:4" )
 1970      PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "DSW1:5" )
 1971      PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0020, "DSW1:6" )
 1972      PORT_DIPNAME( 0x0040, 0x0040, "Re-cloth" )                  PORT_DIPLOCATION( "DSW1:7" )
 1973      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1974      PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
 1975      PORT_DIPNAME( 0x0080, 0x0080, "Nudity" )                    PORT_DIPLOCATION( "DSW1:8" )
 1976      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1977      PORT_DIPSETTING(      0x0080, DEF_STR( On ) )
 1978  
 1979      PORT_START("DSW2")  // IN1 - $210004
 1980      PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:1,2,3" )
 1981      PORT_DIPSETTING(      0x0006, DEF_STR( Easiest ) )
 1982      PORT_DIPSETTING(      0x0005, DEF_STR( Easier ) )
 1983      PORT_DIPSETTING(      0x0004, DEF_STR( Easy ) )
 1984      PORT_DIPSETTING(      0x0007, DEF_STR( Normal ) )
 1985      PORT_DIPSETTING(      0x0003, DEF_STR( Medium ) )
 1986      PORT_DIPSETTING(      0x0002, DEF_STR( Hard ) )
 1987      PORT_DIPSETTING(      0x0001, DEF_STR( Harder ) )
 1988      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 1989      PORT_DIPNAME( 0x0008, 0x0008, "Kuitan" )                    PORT_DIPLOCATION( "DSW2:4" )
 1990      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1991      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 1992      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION( "DSW2:5" )
 1993      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1994      PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
 1995      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW2:6" )
 1996      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 1997      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
 1998      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW2:7" )
 1999      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 2000      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2001      PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
 2002  
 2003      PORT_START("P1")    // IN2 - $210008
 2004      PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2005  
 2006      PORT_START("P2")    // IN3 - $21000a
 2007      PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2008  
 2009      PORT_START("SYSTEM")    // IN4 - $21000c
 2010      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
 2011      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
 2012      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
 2013      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT     )
 2014      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  ) // tested
 2015      PORT_BIT( 0x00e0, IP_ACTIVE_LOW, IPT_UNKNOWN  )
 2016  
 2017      PORT_START("KEY0")  // IN6 - $600000(0)
 2018      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2019      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
 2020      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
 2021      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_K )
 2022      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_G )
 2023      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_C )
 2024      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2025      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2026  
 2027      PORT_START("KEY1")  // IN7 - $600000(1)
 2028      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2029      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
 2030      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_N )
 2031      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_J )
 2032      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_F )
 2033      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_B )
 2034      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2035      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2036  
 2037      PORT_START("KEY2")  // IN8 - $600000(2)
 2038      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
 2039      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
 2040      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_M )
 2041      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_I )
 2042      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_E )
 2043      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_A )
 2044      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2045      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2046  
 2047      PORT_START("KEY3")  // IN5 - $600000(3)
 2048      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2049      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2050      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
 2051      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_L )
 2052      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_H )
 2053      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_D )
 2054      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2055      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2056  INPUT_PORTS_END
 2057  
 2058  
 2059  /***************************************************************************
 2060                                  Storm Blade
 2061  ***************************************************************************/
 2062  
 2063  static INPUT_PORTS_START( stmblade )
 2064      PORT_INCLUDE(ssv_joystick)
 2065  
 2066      PORT_MODIFY("DSW1") // IN0 - $210002
 2067      SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSW1:1,2,3" )
 2068      SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSW1:4,5,6" )
 2069      PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW1:7" )
 2070      PORT_DIPNAME( 0x0080, 0x0080, "Rapid Fire" )            PORT_DIPLOCATION( "DSW1:8" )
 2071      PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
 2072      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2073  
 2074      PORT_MODIFY("DSW2") // IN1 - $210004
 2075      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
 2076      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 2077      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2078      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
 2079      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2080      PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
 2081      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:3,4" )
 2082      PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
 2083      PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
 2084      PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
 2085      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 2086      PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )        PORT_DIPLOCATION( "DSW2:5,6" )
 2087      PORT_DIPSETTING(      0x0020, "1" )
 2088      PORT_DIPSETTING(      0x0010, "2" )
 2089      PORT_DIPSETTING(      0x0030, "3" )
 2090      PORT_DIPSETTING(      0x0000, "4" )
 2091      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Bonus_Life ) )   PORT_DIPLOCATION( "DSW2:7" )
 2092      PORT_DIPSETTING(      0x0040, "600000" )
 2093      PORT_DIPSETTING(      0x0000, "800000" )
 2094      PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
 2095  INPUT_PORTS_END
 2096  
 2097  
 2098  /***************************************************************************
 2099                                  Survival Arts
 2100  ***************************************************************************/
 2101  
 2102  static INPUT_PORTS_START( survarts )
 2103      PORT_INCLUDE(ssv_joystick)
 2104  
 2105      PORT_MODIFY("DSW1") // IN0 - $210002
 2106      SSV_COINAGE_EXTENDED( 0, 0x09, DEF_STR( Coin_A ), "DSW1:1,2,3,4" )
 2107      PORT_DIPSETTING(      0x0000, "2 Credits Start, 1 to continue" )
 2108      SSV_COINAGE_EXTENDED( 4, 0x09, DEF_STR( Coin_B ), "DSW1:5,6,7,8" )
 2109      PORT_DIPSETTING(      0x0000, "2 Credits Start, 1 to continue" )
 2110  
 2111      PORT_MODIFY("DSW2") // IN1 - $210004
 2112      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
 2113      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 2114      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2115      PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
 2116      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 2117      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2118      PORT_DIPNAME( 0x0004, 0x0004, "Timer Speed" )           PORT_DIPLOCATION( "DSW2:3" )
 2119      PORT_DIPSETTING(      0x0004, DEF_STR( Normal ) )
 2120      PORT_DIPSETTING(      0x0000, "Fast" )
 2121      PORT_DIPNAME( 0x0008, 0x0008, "Damage Level" )          PORT_DIPLOCATION( "DSW2:4" )
 2122      PORT_DIPSETTING(      0x0008, DEF_STR( Normal ) )
 2123      PORT_DIPSETTING(      0x0000, DEF_STR( High ) )
 2124      PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:5,6" )
 2125      PORT_DIPSETTING(      0x0010, DEF_STR( Easy ) )
 2126      PORT_DIPSETTING(      0x0030, DEF_STR( Normal ) )
 2127      PORT_DIPSETTING(      0x0020, DEF_STR( Hard ) )
 2128      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 2129      PORT_DIPNAME( 0x00c0, 0x00c0, "Fatal Damage" )          PORT_DIPLOCATION( "DSW2:7,8" )
 2130      PORT_DIPSETTING(      0x0040, "Light" )
 2131      PORT_DIPSETTING(      0x00c0, DEF_STR( Normal ) )
 2132      PORT_DIPSETTING(      0x0080, "Heavy" )
 2133      PORT_DIPSETTING(      0x0000, "Heaviest" )
 2134  
 2135      PORT_START("ADD_BUTTONS")   // IN5 - $500008
 2136      PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
 2137      PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
 2138      PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
 2139      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2140      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
 2141      PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
 2142      PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
 2143      PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2144  INPUT_PORTS_END
 2145  
 2146  
 2147  /***************************************************************************
 2148                              Pachinko Sexy Reaction
 2149  ***************************************************************************/
 2150  
 2151  static INPUT_PORTS_START( sxyreact )
 2152      PORT_INCLUDE(ssv_joystick)
 2153  
 2154      PORT_MODIFY("DSW1") // IN0 - $210002
 2155      SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSW1:1,2,3" )
 2156      PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "DSW1:4" )
 2157      PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "DSW1:5" )
 2158      PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "DSW1:6" )
 2159      //SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSW1:4,5,6" )
 2160      PORT_DIPNAME( 0x0040, 0x0040, "Credits To Play" )           PORT_DIPLOCATION( "DSW1:7" )
 2161      PORT_DIPSETTING(      0x0040, "1" )
 2162      PORT_DIPSETTING(      0x0000, "2" )
 2163      PORT_DIPNAME( 0x0080, 0x0080, "Buy Balls With Credits" )    PORT_DIPLOCATION( "DSW1:8" )    // press start
 2164      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2165      PORT_DIPSETTING(      0x0080, DEF_STR( On ) )
 2166  
 2167      PORT_MODIFY("DSW2") // IN1 - $210004
 2168      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW2:1" )
 2169      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 2170      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2171      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW2:2" )
 2172      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2173      PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
 2174      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:3,4" )
 2175      PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
 2176      PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
 2177      PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
 2178      PORT_DIPSETTING(      0x0000, DEF_STR( Very_Hard ) )
 2179      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Controls ) )         PORT_DIPLOCATION( "DSW2:5" )
 2180      PORT_DIPSETTING(      0x0010, "Dial" )
 2181      PORT_DIPSETTING(      0x0000, DEF_STR( Joystick ) )
 2182      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Free_Play ) )        PORT_DIPLOCATION( "DSW2:6" )
 2183      PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
 2184      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2185      PORT_SERVICE_DIPLOC( 0x0040, IP_ACTIVE_LOW, "DSW2:7" )
 2186      PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" )
 2187  
 2188      PORT_START("SERVICE")   // IN5 - $500002
 2189      PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SERVICE2 )    // ball switch on -> handle motor off
 2190  
 2191      PORT_START("PADDLE")    // IN6 - $500004
 2192      PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_MINMAX(0,0xcf) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M)
 2193  INPUT_PORTS_END
 2194  
 2195  
 2196  /***************************************************************************
 2197                                  Twin Eagle II
 2198  ***************************************************************************/
 2199  
 2200  static INPUT_PORTS_START( twineag2 )
 2201      PORT_INCLUDE(ssv_joystick)
 2202  
 2203      PORT_MODIFY("DSW1") // IN0 - $210002
 2204      SSV_COINAGE_EXTENDED( 0, 0x0f, DEF_STR( Coin_A ), "DSW1:1,2,3,4" )
 2205      //PORT_DIPSETTING(      0x0000, "???" ) - No values listed for all "ON"
 2206      SSV_COINAGE_EXTENDED( 4, 0x0f, DEF_STR( Coin_B ), "DSW1:5,6,7,8" )
 2207      //PORT_DIPSETTING(      0x0000, "???" ) - No values listed for all "ON"
 2208  
 2209      PORT_MODIFY("DSW2") // IN1 - $210004
 2210      PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2,3" )
 2211      PORT_DIPSETTING(      0x0006, DEF_STR( Easiest ) )
 2212      PORT_DIPSETTING(      0x0005, DEF_STR( Easier ) )
 2213      PORT_DIPSETTING(      0x0004, DEF_STR( Easy ) )
 2214      PORT_DIPSETTING(      0x0007, DEF_STR( Normal ) )
 2215      PORT_DIPSETTING(      0x0003, DEF_STR( Medium ) )
 2216      PORT_DIPSETTING(      0x0002, DEF_STR( Hard ) )
 2217      PORT_DIPSETTING(      0x0001, DEF_STR( Harder ) )
 2218      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 2219      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Free_Play ) )    PORT_DIPLOCATION( "DSW2:4" )
 2220      PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
 2221      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2222      PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Lives ) )        PORT_DIPLOCATION( "DSW2:5" )
 2223      PORT_DIPSETTING(      0x0000, "2" )
 2224      PORT_DIPSETTING(      0x0010, "3" )
 2225      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Pause ) )        PORT_DIPLOCATION( "DSW2:6" )
 2226      PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
 2227      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2228      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:7" )
 2229      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 2230      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2231      PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
 2232  
 2233  // Not shown in service mode I/O or show any function in game.  Valid?
 2234  //  PORT_MODIFY("SYSTEM")   // IN4 - $21000c
 2235  //  PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 )
 2236  //  PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE4 )
 2237  //  PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START3 )
 2238  //  PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 )
 2239  
 2240  INPUT_PORTS_END
 2241  
 2242  
 2243  /***************************************************************************
 2244                                  Ultra X
 2245  ***************************************************************************/
 2246  
 2247  static INPUT_PORTS_START( ultrax )
 2248      PORT_INCLUDE(ssv_joystick)
 2249  
 2250      PORT_MODIFY("DSW1") // IN0 - $210002
 2251      PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )       PORT_DIPLOCATION("DSW1:1,2,3,4")
 2252      PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
 2253      PORT_DIPSETTING(      0x0009, DEF_STR( 2C_1C ) )
 2254      PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
 2255      PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
 2256      PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
 2257      PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
 2258      PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
 2259      PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
 2260      PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )       PORT_DIPLOCATION("DSW1:5,6,7,8")
 2261      PORT_DIPSETTING(      0x0080, DEF_STR( 3C_1C ) )
 2262      PORT_DIPSETTING(      0x0090, DEF_STR( 2C_1C ) )
 2263      PORT_DIPSETTING(      0x00f0, DEF_STR( 1C_1C ) )
 2264      PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_2C ) )
 2265      PORT_DIPSETTING(      0x00d0, DEF_STR( 1C_3C ) )
 2266      PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
 2267      PORT_DIPSETTING(      0x00b0, DEF_STR( 1C_5C ) )
 2268      PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_6C ) )
 2269  
 2270      PORT_MODIFY("DSW2") // IN1 - $210004
 2271      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("DSW2:1,2")
 2272      PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )     //$140
 2273      PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )   //$190
 2274      PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )     //$200
 2275      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )  //$300
 2276      PORT_DIPNAME( 0x0014, 0x0004, DEF_STR( Region ) )               PORT_DIPLOCATION("DSW2:3,5")
 2277      PORT_DIPSETTING(      0x0000, DEF_STR( China ) )
 2278      PORT_DIPSETTING(      0x0014, DEF_STR( Japan ) )
 2279  //PORT_DIPSETTING(      0x0010, DEF_STR( Japan ) )
 2280      PORT_DIPSETTING(      0x0004, DEF_STR( World ) )
 2281      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Free_Play ) )    PORT_DIPLOCATION("DSW2:4")
 2282      PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
 2283      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2284      // country            0x0010
 2285      PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("DSW2:6")
 2286      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2287      PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
 2288      PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION("DSW2:7")
 2289      PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
 2290      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2291      PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
 2292  INPUT_PORTS_END
 2293  
 2294  
 2295  /***************************************************************************
 2296                                 Vasara
 2297  ***************************************************************************/
 2298  
 2299  static INPUT_PORTS_START( vasara )
 2300      PORT_INCLUDE(ssv_joystick)
 2301  
 2302      PORT_MODIFY("SYSTEM")   // IN4 - $21000c
 2303      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2304      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2305  
 2306      PORT_MODIFY("DSW1") // IN0 - $210002
 2307      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Free_Play )  )   PORT_DIPLOCATION("DSW1:1")
 2308      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 2309      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2310      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION("DSW1:2")
 2311      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 2312      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2313      PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
 2314      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("DSW1:4")
 2315      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2316      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 2317      SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coin_A ), "DSW1:5,6" )
 2318      SSV_COINAGE_BASIC( 6, 0x03, DEF_STR( Coin_B ), "DSW1:7,8" )
 2319  
 2320      PORT_MODIFY("DSW2") // IN1
 2321      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("DSW2:1,2")
 2322      PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
 2323      PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
 2324      PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
 2325      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 2326      PORT_DIPNAME( 0x000c, 0x000c, "Bomber Stock" )          PORT_DIPLOCATION("DSW2:3,4")
 2327      PORT_DIPSETTING(      0x0000, "0" )
 2328      PORT_DIPSETTING(      0x0004, "1" )
 2329      PORT_DIPSETTING(      0x000c, "2" )
 2330      PORT_DIPSETTING(      0x0008, "3" )
 2331      PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ))         PORT_DIPLOCATION("DSW2:5,6")
 2332      PORT_DIPSETTING(      0x0000, "1" )
 2333      PORT_DIPSETTING(      0x0010, "2" )
 2334      PORT_DIPSETTING(      0x0030, "3" )
 2335      PORT_DIPSETTING(      0x0020, "5" )
 2336      PORT_DIPNAME( 0x0040, 0x0040, "Game Voice" )            PORT_DIPLOCATION("DSW2:7")
 2337      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2338      PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
 2339      PORT_DIPNAME( 0x0080, 0x0000, "English Subtitles" )     PORT_DIPLOCATION("DSW2:8")
 2340      PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
 2341      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2342  INPUT_PORTS_END
 2343  
 2344  /***************************************************************************
 2345                                 Vasara 2
 2346  ***************************************************************************/
 2347  
 2348  static INPUT_PORTS_START( vasara2 )
 2349      PORT_INCLUDE(ssv_joystick)
 2350  
 2351      PORT_MODIFY("SYSTEM")   // IN4 - $21000c
 2352      PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2353      PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
 2354  
 2355      PORT_MODIFY("DSW1") // IN0 - $210002
 2356      PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Free_Play )  )   PORT_DIPLOCATION("DSW1:1")
 2357      PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
 2358      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2359      PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION("DSW1:2")
 2360      PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
 2361      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2362      PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
 2363      PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("DSW1:4")
 2364      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2365      PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
 2366      SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coin_A ), "DSW1:5,6" )
 2367      SSV_COINAGE_BASIC( 6, 0x03, DEF_STR( Coin_B ), "DSW1:7,8" )
 2368  
 2369      PORT_MODIFY("DSW2") // IN1
 2370      PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("DSW2:1,2")
 2371      PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
 2372      PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
 2373      PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
 2374      PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
 2375      PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )        PORT_DIPLOCATION("DSW2:3,4")
 2376      PORT_DIPSETTING(      0x0000, "1" )
 2377      PORT_DIPSETTING(      0x0004, "2" )
 2378      PORT_DIPSETTING(      0x000c, "3" )
 2379      PORT_DIPSETTING(      0x0008, "5" )
 2380      PORT_DIPNAME( 0x0010, 0x0010, "Game Voice" )            PORT_DIPLOCATION("DSW2:5")
 2381      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2382      PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
 2383      PORT_DIPNAME( 0x0020, 0x0020, "Vasara Stock" )          PORT_DIPLOCATION("DSW2:6")
 2384      PORT_DIPSETTING(      0x0020, "2" )
 2385      PORT_DIPSETTING(      0x0000, "3" )
 2386      PORT_DIPNAME( 0x0040, 0x0040, "English Subtitles" )     PORT_DIPLOCATION("DSW2:7")
 2387      PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
 2388      PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
 2389      PORT_DIPNAME( 0x0080, 0x0080, "Secret Character" )      PORT_DIPLOCATION("DSW2:8")
 2390      PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
 2391      PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
 2392  INPUT_PORTS_END
 2393  
 2394  
 2395  
 2396  /***************************************************************************
 2397  
 2398  
 2399                              Graphics Layouts
 2400  
 2401  
 2402  ***************************************************************************/
 2403  
 2404  /*  16 x 8 tiles. Depth is 8 bits, but can be decreased to 6 (and maybe
 2405      less) at runtime.   */
 2406  
 2407  static const gfx_layout layout_16x8x8 =
 2408  {
 2409      16,8,
 2410      RGN_FRAC(1,4),
 2411      8,
 2412      {   RGN_FRAC(3,4)+8, RGN_FRAC(3,4)+0,
 2413          RGN_FRAC(2,4)+8, RGN_FRAC(2,4)+0,
 2414          RGN_FRAC(1,4)+8, RGN_FRAC(1,4)+0,
 2415          RGN_FRAC(0,4)+8, RGN_FRAC(0,4)+0    },
 2416      {   STEP8(0,1), STEP8(16,1) },
 2417      {   STEP8(0,16*2)   },
 2418      16*8*2
 2419  };
 2420  
 2421  static const gfx_layout layout_16x8x6 =
 2422  {
 2423      16,8,
 2424      RGN_FRAC(1,4),
 2425      6,
 2426      {
 2427          RGN_FRAC(2,4)+8, RGN_FRAC(2,4)+0,
 2428          RGN_FRAC(1,4)+8, RGN_FRAC(1,4)+0,
 2429          RGN_FRAC(0,4)+8, RGN_FRAC(0,4)+0    },
 2430      {   STEP8(0,1), STEP8(16,1) },
 2431      {   STEP8(0,16*2)   },
 2432      16*8*2
 2433  };
 2434  
 2435  static GFXDECODE_START( ssv )
 2436      GFXDECODE_ENTRY( "gfx1", 0, layout_16x8x8, 0, 0x8000/64 ) // [0] Sprites (256 colors)
 2437      GFXDECODE_ENTRY( "gfx1", 0, layout_16x8x6, 0, 0x8000/64 ) // [1] Sprites (64 colors)
 2438  GFXDECODE_END
 2439  
 2440  static const gfx_layout layout_16x8x8_2 =
 2441  {
 2442      16,8,
 2443      RGN_FRAC(1,1),
 2444      8,
 2445      {   STEP8(0,1)      },
 2446      {   STEP16(0,8)     },
 2447      {   STEP8(0,16*8)   },
 2448      16*8*8
 2449  };
 2450  
 2451  static const gfx_layout layout_16x8x6_2 =
 2452  {
 2453      16,8,
 2454      RGN_FRAC(1,1),
 2455      6,
 2456      {   2,3,4,5,6,7     },
 2457      {   STEP16(0,8)     },
 2458      {   STEP8(0,16*8)   },
 2459      16*8*8
 2460  };
 2461  
 2462  static GFXDECODE_START( eaglshot )
 2463      GFXDECODE_ENTRY( "gfx1", 0, layout_16x8x8_2, 0, 0x8000/64 ) // [0] Sprites (256 colors, decoded from ram)
 2464      GFXDECODE_ENTRY( "gfx1", 0, layout_16x8x6_2, 0, 0x8000/64 ) // [1] Sprites (64 colors, decoded from ram)
 2465  GFXDECODE_END
 2466  
 2467  static const gfx_layout layout_16x16x8 =
 2468  {
 2469      16,16,
 2470      RGN_FRAC(1,1),
 2471      8,
 2472      {   STEP8(0,1)      },
 2473      {   STEP16(0,8)     },
 2474      {   STEP16(0,16*8)  },
 2475      16*16*8
 2476  };
 2477  
 2478  static GFXDECODE_START( gdfs )
 2479      GFXDECODE_ENTRY( "gfx1", 0, layout_16x8x8,   0, 0x8000/64  ) // [0] Sprites (256 colors)
 2480      GFXDECODE_ENTRY( "gfx1", 0, layout_16x8x6,   0, 0x8000/64  ) // [1] Sprites (64 colors)
 2481      GFXDECODE_ENTRY( "gfx3", 0, layout_16x16x8,  0, 0x8000/256 ) // [3] Tilemap
 2482  GFXDECODE_END
 2483  
 2484  /***************************************************************************
 2485  
 2486  
 2487                                  Machine Drivers
 2488  
 2489  
 2490  ***************************************************************************/
 2491  
 2492  static const es5506_interface es5506_config =
 2493  {
 2494      "ensoniq.0",
 2495      "ensoniq.1",
 2496      "ensoniq.2",
 2497      "ensoniq.3"
 2498  };
 2499  
 2500  /***************************************************************************
 2501  
 2502      Some games (e.g. hypreac2) oddly map the high bits of the tile code
 2503      to the gfx roms: arranging the roms accordingly would waste tens of
 2504      megabytes. So we use a look-up table.
 2505  
 2506      We also need to set up game specific offsets for sprites and layers
 2507      (at least until the CRT controlled will be emulated).
 2508  
 2509  ***************************************************************************/
 2510  
 2511  static void init_ssv(running_machine &machine, int interrupt_ultrax)
 2512  {
 2513      ssv_state *state = machine.driver_data<ssv_state>();
 2514      int i;
 2515      for (i = 0; i < 16; i++)
 2516          state->m_tile_code[i]   =   ( (i & 8) ? (1 << 16) : 0 ) +
 2517                                  ( (i & 4) ? (2 << 16) : 0 ) +
 2518                                  ( (i & 2) ? (4 << 16) : 0 ) +
 2519                                  ( (i & 1) ? (8 << 16) : 0 ) ;
 2520      ssv_enable_video(machine, 1);
 2521      state->m_interrupt_ultrax = interrupt_ultrax;
 2522  }
 2523  
 2524  static void init_hypreac2_common(running_machine &machine)
 2525  {
 2526      ssv_state *state = machine.driver_data<ssv_state>();
 2527      int i;
 2528  
 2529      for (i = 0; i < 16; i++)
 2530          state->m_tile_code[i]   =   (i << 16);
 2531  }
 2532  
 2533  // massages the data from the BPMicro-compatible dump to runnable form
 2534  static void init_st010(running_machine &machine)
 2535  {
 2536      UINT8 *dspsrc = (UINT8 *)machine.root_device().memregion("st010")->base();
 2537      UINT32 *dspprg = (UINT32 *)machine.root_device().memregion("dspprg")->base();
 2538      UINT16 *dspdata = (UINT16 *)machine.root_device().memregion("dspdata")->base();
 2539  
 2540      // copy DSP program
 2541      for (int i = 0; i < 0x10000; i+= 4)
 2542      {
 2543          *dspprg = dspsrc[0+i]<<24 | dspsrc[1+i]<<16 | dspsrc[2+i]<<8;
 2544          dspprg++;
 2545      }
 2546  
 2547      // copy DSP data
 2548      for (int i = 0; i < 0x1000; i+= 2)
 2549      {
 2550          *dspdata++ = dspsrc[0x10000+i]<<8 | dspsrc[0x10001+i];
 2551      }
 2552  }
 2553  
 2554  DRIVER_INIT_MEMBER(ssv_state,drifto94)     {    init_ssv(machine(), 0); init_st010(machine());  }
 2555  DRIVER_INIT_MEMBER(ssv_state,eaglshot)     {    init_ssv(machine(), 0); init_hypreac2_common(machine());    }
 2556  DRIVER_INIT_MEMBER(ssv_state,gdfs)         {    init_ssv(machine(), 0); }
 2557  DRIVER_INIT_MEMBER(ssv_state,hypreact)     {    init_ssv(machine(), 0); }
 2558  DRIVER_INIT_MEMBER(ssv_state,hypreac2)     {    init_ssv(machine(), 0); init_hypreac2_common(machine());    }
 2559  DRIVER_INIT_MEMBER(ssv_state,janjans1)     {    init_ssv(machine(), 0); }
 2560  DRIVER_INIT_MEMBER(ssv_state,keithlcy)     {    init_ssv(machine(), 0); }
 2561  DRIVER_INIT_MEMBER(ssv_state,meosism)       {   init_ssv(machine(), 0); }
 2562  DRIVER_INIT_MEMBER(ssv_state,mslider)       {   init_ssv(machine(), 0); }
 2563  DRIVER_INIT_MEMBER(ssv_state,ryorioh)       {   init_ssv(machine(), 0); }
 2564  DRIVER_INIT_MEMBER(ssv_state,srmp4)        {    init_ssv(machine(), 0);
 2565  //  ((UINT16 *)machine().root_device().memregion("user1")->base())[0x2b38/2] = 0x037a;   /* patch to see gal test mode */
 2566  }
 2567  DRIVER_INIT_MEMBER(ssv_state,srmp7)        {    init_ssv(machine(), 0); }
 2568  DRIVER_INIT_MEMBER(ssv_state,stmblade)     {    init_ssv(machine(), 0); init_st010(machine()); }
 2569  DRIVER_INIT_MEMBER(ssv_state,survarts)     {    init_ssv(machine(), 0); }
 2570  DRIVER_INIT_MEMBER(ssv_state,dynagear)     {    init_ssv(machine(), 0); }
 2571  DRIVER_INIT_MEMBER(ssv_state,sxyreact)     {    init_ssv(machine(), 0); init_hypreac2_common(machine());    }
 2572  DRIVER_INIT_MEMBER(ssv_state,cairblad)     {    init_ssv(machine(), 0); init_hypreac2_common(machine());    }
 2573  DRIVER_INIT_MEMBER(ssv_state,sxyreac2)     {    init_ssv(machine(), 0); init_hypreac2_common(machine());    }
 2574  DRIVER_INIT_MEMBER(ssv_state,twineag2)     {    init_ssv(machine(), 1); init_st010(machine());  }
 2575  DRIVER_INIT_MEMBER(ssv_state,ultrax)        {   init_ssv(machine(), 1); }
 2576  DRIVER_INIT_MEMBER(ssv_state,vasara)        {   init_ssv(machine(), 0); }
 2577  DRIVER_INIT_MEMBER(ssv_state,jsk)          {    init_ssv(machine(), 0); }
 2578  
 2579  
 2580  static MACHINE_CONFIG_START( ssv, ssv_state )
 2581  
 2582      /* basic machine hardware */
 2583      MCFG_CPU_ADD("maincpu", V60, 16000000) /* Based on STA-0001 & STA-0001B System boards */
 2584      MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ssv_state, ssv_interrupt, "screen", 0, 1)
 2585  
 2586  
 2587      /* video hardware */
 2588      MCFG_SCREEN_ADD("screen", RASTER)
 2589      MCFG_SCREEN_REFRESH_RATE(60)
 2590      MCFG_SCREEN_SIZE(0x1c6, 0x106)
 2591      MCFG_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1)
 2592      MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_ssv)
 2593  
 2594      MCFG_GFXDECODE(ssv)
 2595      MCFG_PALETTE_LENGTH(0x8000)
 2596  
 2597      /* sound hardware */
 2598      MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
 2599  
 2600      MCFG_SOUND_ADD("ensoniq", ES5506, 16000000)
 2601      MCFG_SOUND_CONFIG(es5506_config)
 2602      MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
 2603      MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
 2604  MACHINE_CONFIG_END
 2605  
 2606  
 2607  static MACHINE_CONFIG_DERIVED( drifto94, ssv )
 2608  
 2609      /* basic machine hardware */
 2610      MCFG_CPU_MODIFY("maincpu")
 2611      MCFG_CPU_PROGRAM_MAP(drifto94_map)
 2612  
 2613      MCFG_CPU_ADD("dsp", UPD96050, 10000000)
 2614      MCFG_CPU_PROGRAM_MAP(dsp_prg_map)
 2615      MCFG_CPU_DATA_MAP(dsp_data_map)
 2616  
 2617      MCFG_QUANTUM_PERFECT_CPU("maincpu")
 2618  
 2619      MCFG_NVRAM_ADD_0FILL("nvram")
 2620  
 2621      /* video hardware */
 2622      MCFG_SCREEN_MODIFY("screen")
 2623      MCFG_SCREEN_VISIBLE_AREA(0, (0xcd-0x25)*2-1, 0, (0x101-0x13)-1)
 2624  MACHINE_CONFIG_END
 2625  
 2626  
 2627  static MACHINE_CONFIG_DERIVED( gdfs, ssv )
 2628  
 2629      /* basic machine hardware */
 2630      MCFG_CPU_MODIFY("maincpu")
 2631      MCFG_CPU_PROGRAM_MAP(gdfs_map)
 2632      MCFG_TIMER_MODIFY("scantimer")
 2633      MCFG_TIMER_DRIVER_CALLBACK(ssv_state, gdfs_interrupt)
 2634  
 2635      MCFG_EEPROM_93C46_ADD("eeprom")
 2636  
 2637      /* video hardware */
 2638      MCFG_SCREEN_MODIFY("screen")
 2639      MCFG_SCREEN_VISIBLE_AREA(0, (0xd5-0x2c)*2-1, 0, (0x102-0x12)-1)
 2640      MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_gdfs)
 2641  
 2642      MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
 2643  
 2644      MCFG_GFXDECODE(gdfs)
 2645      MCFG_VIDEO_START_OVERRIDE(ssv_state,gdfs)
 2646  MACHINE_CONFIG_END
 2647  
 2648  
 2649  static MACHINE_CONFIG_DERIVED( hypreact, ssv )
 2650  
 2651      /* basic machine hardware */
 2652      MCFG_CPU_MODIFY("maincpu")
 2653      MCFG_CPU_PROGRAM_MAP(hypreact_map)
 2654  
 2655      /* video hardware */
 2656      MCFG_SCREEN_MODIFY("screen")
 2657      MCFG_SCREEN_VISIBLE_AREA(0, (0xcb-0x22)*2-1, 0, (0xfe - 0x0e)-1)
 2658  MACHINE_CONFIG_END
 2659  
 2660  
 2661  static MACHINE_CONFIG_DERIVED( hypreac2, ssv )
 2662  
 2663      /* basic machine hardware */
 2664      MCFG_CPU_MODIFY("maincpu")
 2665      MCFG_CPU_PROGRAM_MAP(hypreac2_map)
 2666  
 2667      /* video hardware */
 2668      MCFG_SCREEN_MODIFY("screen")
 2669      MCFG_SCREEN_VISIBLE_AREA(0, (0xcb-0x22)*2-1, 0, (0xfe - 0x0e)-1)
 2670  MACHINE_CONFIG_END
 2671  
 2672  
 2673  static MACHINE_CONFIG_DERIVED( janjans1, ssv )
 2674  
 2675      /* basic machine hardware */
 2676      MCFG_CPU_MODIFY("maincpu")
 2677      MCFG_CPU_PROGRAM_MAP(janjans1_map)
 2678  
 2679      /* video hardware */
 2680      MCFG_SCREEN_MODIFY("screen")
 2681      MCFG_SCREEN_VISIBLE_AREA(0, (0xcb-0x23)*2-1, 0, (0xfe - 0x0f)-1)
 2682  MACHINE_CONFIG_END
 2683  
 2684  
 2685  static MACHINE_CONFIG_DERIVED( keithlcy, ssv )
 2686  
 2687      /* basic machine hardware */
 2688      MCFG_CPU_MODIFY("maincpu")
 2689      MCFG_CPU_PROGRAM_MAP(keithlcy_map)
 2690  
 2691      /* video hardware */
 2692      MCFG_SCREEN_MODIFY("screen")
 2693      MCFG_SCREEN_VISIBLE_AREA(0, (0xcd-0x25)*2-1, 0, (0x101 - 0x13)-1)
 2694  MACHINE_CONFIG_END
 2695  
 2696  
 2697  static MACHINE_CONFIG_DERIVED( meosism, ssv )
 2698  
 2699      /* basic machine hardware */
 2700      MCFG_CPU_MODIFY("maincpu")
 2701      MCFG_CPU_PROGRAM_MAP(meosism_map)
 2702  
 2703      MCFG_NVRAM_ADD_0FILL("nvram")
 2704  
 2705      /* video hardware */
 2706      MCFG_SCREEN_MODIFY("screen")
 2707      MCFG_SCREEN_VISIBLE_AREA(0, (0xd5-0x2c)*2-1, 0, (0xfe - 0x12)-1)
 2708  MACHINE_CONFIG_END
 2709  
 2710  
 2711  static MACHINE_CONFIG_DERIVED( mslider, ssv )
 2712  
 2713      /* basic machine hardware */
 2714      MCFG_CPU_MODIFY("maincpu")
 2715      MCFG_CPU_PROGRAM_MAP(mslider_map)
 2716  
 2717      /* video hardware */
 2718      MCFG_SCREEN_MODIFY("screen")
 2719      MCFG_SCREEN_VISIBLE_AREA(0, (0xd6-0x26)*2-1, 0, (0xfe - 0x0e)-1)
 2720  MACHINE_CONFIG_END
 2721  
 2722  
 2723  static MACHINE_CONFIG_DERIVED( ryorioh, ssv )
 2724  
 2725      /* basic machine hardware */
 2726      MCFG_CPU_MODIFY("maincpu")
 2727      MCFG_CPU_PROGRAM_MAP(ryorioh_map)
 2728  
 2729      /* video hardware */
 2730      MCFG_SCREEN_MODIFY("screen")
 2731      MCFG_SCREEN_VISIBLE_AREA(0, (0xcb-0x23)*2-1, 0, (0xfe - 0x0f)-1)
 2732  MACHINE_CONFIG_END
 2733  
 2734  static MACHINE_CONFIG_DERIVED( vasara, ssv )
 2735  
 2736      /* basic machine hardware */
 2737      MCFG_CPU_MODIFY("maincpu")
 2738      MCFG_CPU_PROGRAM_MAP(ryorioh_map)
 2739  
 2740      /* video hardware */
 2741      MCFG_SCREEN_MODIFY("screen")
 2742      MCFG_SCREEN_VISIBLE_AREA(0, (0xcc-0x24)*2-1, 0,(0xfe - 0x0e)-1)
 2743  MACHINE_CONFIG_END
 2744  
 2745  static MACHINE_CONFIG_DERIVED( srmp4, ssv )
 2746  
 2747      /* basic machine hardware */
 2748      MCFG_CPU_MODIFY("maincpu")
 2749      MCFG_CPU_PROGRAM_MAP(srmp4_map)
 2750  
 2751      /* video hardware */
 2752      MCFG_SCREEN_MODIFY("screen")
 2753      MCFG_SCREEN_VISIBLE_AREA(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1)
 2754  MACHINE_CONFIG_END
 2755  
 2756  
 2757  static MACHINE_CONFIG_DERIVED( srmp7, ssv )
 2758  
 2759      /* basic machine hardware */
 2760      MCFG_CPU_MODIFY("maincpu")
 2761      MCFG_CPU_PROGRAM_MAP(srmp7_map)
 2762  
 2763      /* video hardware */
 2764      MCFG_SCREEN_MODIFY("screen")
 2765      MCFG_SCREEN_VISIBLE_AREA(0, (0xd4-0x2c)*2-1, 0, (0xfd - 0x0e)-1)
 2766  MACHINE_CONFIG_END
 2767  
 2768  
 2769  static MACHINE_CONFIG_DERIVED( stmblade, ssv )
 2770  
 2771      /* basic machine hardware */
 2772      MCFG_CPU_MODIFY("maincpu")
 2773      MCFG_CPU_PROGRAM_MAP(drifto94_map)
 2774  
 2775      MCFG_CPU_ADD("dsp", UPD96050, 10000000)
 2776      MCFG_CPU_PROGRAM_MAP(dsp_prg_map)
 2777      MCFG_CPU_DATA_MAP(dsp_data_map)
 2778  
 2779      MCFG_QUANTUM_PERFECT_CPU("maincpu")
 2780  
 2781      MCFG_NVRAM_ADD_0FILL("nvram")
 2782      /* video hardware */
 2783      MCFG_SCREEN_MODIFY("screen")
 2784      MCFG_SCREEN_VISIBLE_AREA(0, (0xd6-0x26)*2-1, 0, (0xfe - 0x0e)-1)
 2785  MACHINE_CONFIG_END
 2786  
 2787  
 2788  static MACHINE_CONFIG_DERIVED( survarts, ssv )
 2789  
 2790      /* basic machine hardware */
 2791      MCFG_CPU_MODIFY("maincpu")
 2792      MCFG_CPU_PROGRAM_MAP(survarts_map)
 2793  
 2794      /* video hardware */
 2795      MCFG_SCREEN_MODIFY("screen")
 2796      MCFG_SCREEN_VISIBLE_AREA(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1)
 2797  MACHINE_CONFIG_END
 2798  
 2799  
 2800  static MACHINE_CONFIG_DERIVED( dynagear, survarts )
 2801  
 2802      /* basic machine hardware */
 2803      /* video hardware */
 2804      MCFG_SCREEN_MODIFY("screen")
 2805      MCFG_SCREEN_VISIBLE_AREA(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1)
 2806  MACHINE_CONFIG_END
 2807  
 2808  
 2809  static MACHINE_CONFIG_DERIVED( eaglshot, ssv )
 2810  
 2811      /* basic machine hardware */
 2812      MCFG_CPU_MODIFY("maincpu")
 2813      MCFG_CPU_PROGRAM_MAP(eaglshot_map)
 2814  
 2815      MCFG_NVRAM_ADD_0FILL("nvram")
 2816  
 2817      /* video hardware */
 2818      MCFG_SCREEN_MODIFY("screen")
 2819      MCFG_SCREEN_VISIBLE_AREA(0, (0xca - 0x2a)*2-1, 0, (0xf6 - 0x16)-1)
 2820      MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_eaglshot)
 2821  
 2822      MCFG_GFXDECODE(eaglshot)
 2823      MCFG_VIDEO_START_OVERRIDE(ssv_state,eaglshot)
 2824  MACHINE_CONFIG_END
 2825  
 2826  
 2827  static MACHINE_CONFIG_DERIVED( sxyreact, ssv )
 2828  
 2829      /* basic machine hardware */
 2830      MCFG_CPU_MODIFY("maincpu")
 2831      MCFG_CPU_PROGRAM_MAP(sxyreact_map)
 2832  
 2833      MCFG_NVRAM_ADD_0FILL("nvram")
 2834  
 2835      /* video hardware */
 2836      MCFG_SCREEN_MODIFY("screen")
 2837      MCFG_SCREEN_VISIBLE_AREA(0, (0xcb - 0x22)*2-1, 0, (0xfe - 0x0e)-1)
 2838  MACHINE_CONFIG_END
 2839  
 2840  static MACHINE_CONFIG_DERIVED( sxyreac2, ssv )
 2841  
 2842      /* basic machine hardware */
 2843      MCFG_CPU_MODIFY("maincpu")
 2844      MCFG_CPU_PROGRAM_MAP(sxyreact_map)
 2845  
 2846      MCFG_NVRAM_ADD_0FILL("nvram")
 2847  
 2848      /* video hardware */
 2849      MCFG_SCREEN_MODIFY("screen")
 2850      MCFG_SCREEN_VISIBLE_AREA(0, (0xcb - 0x23)*2-1, 0, (0xfe - 0x0e)-1)
 2851  MACHINE_CONFIG_END
 2852  
 2853  static MACHINE_CONFIG_DERIVED( cairblad, ssv )
 2854  
 2855      /* basic machine hardware */
 2856      MCFG_CPU_MODIFY("maincpu")
 2857      MCFG_CPU_PROGRAM_MAP(sxyreact_map)
 2858  
 2859      MCFG_NVRAM_ADD_0FILL("nvram")
 2860  
 2861      /* video hardware */
 2862      MCFG_SCREEN_MODIFY("screen")
 2863      MCFG_SCREEN_VISIBLE_AREA(0, (0xcb - 0x22)*2-1, 0, (0xfe - 0x0e)-1)
 2864  MACHINE_CONFIG_END
 2865  
 2866  static MACHINE_CONFIG_DERIVED( twineag2, ssv )
 2867  
 2868      /* basic machine hardware */
 2869      MCFG_CPU_MODIFY("maincpu")
 2870      MCFG_CPU_PROGRAM_MAP(twineag2_map)
 2871  
 2872      MCFG_CPU_ADD("dsp", UPD96050, 10000000)
 2873      MCFG_CPU_PROGRAM_MAP(dsp_prg_map)
 2874      MCFG_CPU_DATA_MAP(dsp_data_map)
 2875  
 2876      MCFG_QUANTUM_PERFECT_CPU("maincpu")
 2877  
 2878      /* video hardware */
 2879      MCFG_SCREEN_MODIFY("screen")
 2880      MCFG_SCREEN_VISIBLE_AREA(0, (0xd4 - 0x2c)*2-1, 0, (0x102 - 0x12)-1)
 2881  MACHINE_CONFIG_END
 2882  
 2883  
 2884  static MACHINE_CONFIG_DERIVED( ultrax, ssv )
 2885  
 2886      /* basic machine hardware */
 2887      MCFG_CPU_MODIFY("maincpu")
 2888      MCFG_CPU_PROGRAM_MAP(ultrax_map)
 2889  
 2890      /* video hardware */
 2891      MCFG_SCREEN_MODIFY("screen")
 2892      MCFG_SCREEN_VISIBLE_AREA(0, (0xd4 - 0x2c)*2-1, 0, (0x102 - 0x12)-1)
 2893  MACHINE_CONFIG_END
 2894  
 2895  static MACHINE_CONFIG_DERIVED( jsk, ssv )
 2896  
 2897      /* basic machine hardware */
 2898      MCFG_CPU_MODIFY("maincpu")
 2899      MCFG_CPU_PROGRAM_MAP(jsk_map)
 2900  
 2901      MCFG_CPU_ADD("sub", V810,25000000)
 2902      MCFG_CPU_PROGRAM_MAP(jsk_v810_mem)
 2903  
 2904      /* video hardware */
 2905      MCFG_SCREEN_MODIFY("screen")
 2906      MCFG_SCREEN_VISIBLE_AREA(0, (0xca - 0x22)*2-1, 0, (0xfe - 0x0e)-1)
 2907  MACHINE_CONFIG_END
 2908  
 2909  
 2910  /***************************************************************************
 2911  
 2912  
 2913                                  ROMs Loading
 2914  
 2915  
 2916  ***************************************************************************/
 2917  
 2918  
 2919  /***************************************************************************
 2920  
 2921                          Change Air Blade (Japan)
 2922  
 2923  Change Air Blade
 2924  Sammy, 1999
 2925  
 2926  ROM board for use with System SSV Main Board
 2927  PCB No: P1-112C
 2928  
 2929  Fairly sparsely populated board containing not much except....
 2930  
 2931  RAM   : 6262 (x1)
 2932  OTHER : 3.6V Ni-Cd Battery
 2933  PALs  : (x1, labelled AC412G00)
 2934  
 2935  ROMs  : (Filename  = ROM Label)
 2936          (Extension = PCB Location)
 2937  ------------------------------
 2938  AC1801M01.U6    32M Mask
 2939  AC1802M01.U9    32M Mask
 2940  
 2941  AC1805M01.U8    32M Mask
 2942  AC1806M01.U11   32M Mask
 2943  
 2944  AC1803M01.U7    32M Mask
 2945  AC1804M01.U10   32M Mask
 2946  
 2947  AC1807M01.U41   32M Mask
 2948  AC1810E01.U32   27C160
 2949  
 2950  
 2951  ***************************************************************************/
 2952  
 2953  ROM_START( cairblad )
 2954      ROM_REGION16_LE( 0x200000, "user1", 0 )     /* V60 Code */
 2955      ROM_LOAD16_WORD( "ac1810e0.u32",  0x000000, 0x200000, CRC(13a0b4c2) SHA1(3498303e9b186ab329ee761cee9d4cb8ed552455) ) // AC1810E01.U32    27C160
 2956  
 2957      ROM_REGION( 0x2000000, "gfx1", 0 )  /* Sprites */
 2958      ROM_LOAD( "ac1801m0.u6",  0x0000000, 0x400000, CRC(1b2b6943) SHA1(95c5dc0ed1d533b2285452c8546346d96a90d097) ) // AC1801M01.U6    32M Mask
 2959      ROM_LOAD( "ac1802m0.u9",  0x0400000, 0x400000, CRC(e053b087) SHA1(9569e79c6363e8f97c27aacaa29d25cf32c4b4c1) ) // AC1802M01.U9    32M Mask
 2960  
 2961      ROM_LOAD( "ac1803m0.u7",  0x0800000, 0x400000, CRC(45484866) SHA1(5e2f06743906be298202eafc233b76762d60d8aa) ) // AC1803M01.U7    32M Mask
 2962      ROM_LOAD( "ac1804m0.u10", 0x0c00000, 0x400000, CRC(5e0b2285) SHA1(b3b8f249c1b1b2e9438ebc3a669f3ebfb5aa5feb) ) // AC1804M01.U10   32M Mask
 2963  
 2964      ROM_LOAD( "ac1805m0.u8",  0x1000000, 0x400000, CRC(19771f43) SHA1(d6a05392c58d3f60d666e08b3a82f06fa2c8e3a3) ) // AC1805M01.U8    32M Mask
 2965      ROM_LOAD( "ac1806m0.u11", 0x1400000, 0x400000, CRC(816b97dc) SHA1(3737cb37a4db720901661fa9b4e30c44181efb94) ) // AC1806M01.U11   32M Mask
 2966  
 2967      ROM_FILL(                 0x1800000, 0x800000, 0          )
 2968  
 2969      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 2970      ROM_LOAD16_WORD_SWAP( "ac1410m0.u41", 0x000000, 0x400000, CRC(ecf1f255) SHA1(984b1529b8f0c7d94ea713c85d71df00f54eba79) ) // AC1807M01.U41   32M Mask
 2971  ROM_END
 2972  
 2973  
 2974  /***************************************************************************
 2975  
 2976                          Drift Out '94 - The hard order
 2977  
 2978  ----------------------
 2979  System SSV (STA-0001B)
 2980  ----------------------
 2981  CPU  : NEC D70615GD-16-S (V60)
 2982  Sound: Ensoniq ES5506 (OTTOR2)
 2983  OSC  : 42.9545MHz(X2) 48.0000MHz(X3)
 2984  
 2985  Custom chips:
 2986  ST-0004 (Video DAC?)
 2987  ST-0005 (Parallel I/O?)
 2988  ST-0006 (Video controller)
 2989  ST-0007 (System controller)
 2990  
 2991  Program Work RAM  : 256Kbitx2 (expandable to 1Mx2)
 2992  Object Work RAM   : 1Mbitx2
 2993  Color Palette RAM : 256Kbitx3 (expandable to 1Mx3)
 2994  
 2995  -------------------------
 2996  SSV Subboard (VISCO-001B)
 2997  -------------------------
 2998  ROMs:
 2999  visco-33.bin - Main programs (27c4000)
 3000  visco-37.bin /
 3001  
 3002  vg003-19.u26 - Data? (mask, read as 27c160)
 3003  
 3004  vg003-17.u22 - Samples (mask, read as 27c160)
 3005  vg003-18.u15 /
 3006  
 3007  vg003-01.a0 - Graphics (mask, read as 27c160)
 3008  vg003-05.a1 |
 3009  vg003-09.a2 |
 3010  vg009-13.a3 |
 3011  vg009-02.b0 |
 3012  vg003-06.b1 |
 3013  vg003-10.b2 |
 3014  vg003-14.b3 |
 3015  vg003-03.c0 |
 3016  vg003-07.c1 |
 3017  vg003-11.c2 |
 3018  vg003-15.c3 |
 3019  vg003-04.d0 |
 3020  vg003-08.d1 |
 3021  vg003-12.d2 |
 3022  vg003-16.d3 /
 3023  
 3024  GAL:
 3025  vg003-22.u29 (16V8)
 3026  
 3027  Custom chip:
 3028  ST010 (maybe D78C10?)
 3029  
 3030  Others:
 3031  Lithium battery + MB3790 + LH5168D-10L
 3032  
 3033  ***************************************************************************/
 3034  
 3035  ROM_START( drifto94 )
 3036      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 3037      ROM_LOAD16_WORD( "vg003-19.u26", 0x000000, 0x200000, CRC(238e5e2b) SHA1(fe58f571857804263642d7d089df962327a007b6) ) // "SoundDriverV1.1a"
 3038      ROM_LOAD16_BYTE( "visco-37.bin", 0x200000, 0x080000, CRC(78fa3ccb) SHA1(0c79ff1aa31e7ca1eeb14fbef7774278fa83ba44) )
 3039      ROM_RELOAD(                      0x300000, 0x080000             )
 3040      ROM_LOAD16_BYTE( "visco-33.bin", 0x200001, 0x080000, CRC(88351146) SHA1(1decce44b5d244b57676177f417e4937d7088124) )
 3041      ROM_RELOAD(                      0x300001, 0x080000             )
 3042  
 3043      ROM_REGION( 0x2000000, "gfx1", 0 )  /* Sprites */
 3044      ROM_LOAD( "vg003-01.a0", 0x0000000, 0x200000, CRC(2812aa1a) SHA1(5046fe51a4ea50051a19cfeeb091c87f0f217fb8) )
 3045      ROM_LOAD( "vg003-05.a1", 0x0200000, 0x200000, CRC(1a1dd910) SHA1(f2252e4cd1b6269036ed02cec9d5a224736c1bce) )
 3046      ROM_LOAD( "vg003-09.a2", 0x0400000, 0x200000, CRC(198f1c06) SHA1(7df5d51aa62f0b609cd1d296a3cfeeb38fbcd9d0) )
 3047      ROM_LOAD( "vg003-13.a3", 0x0600000, 0x200000, CRC(b45b2267) SHA1(66828efcca2050bc1cdca6bbf2e8cf015ff937a8) )
 3048  
 3049      ROM_LOAD( "vg003-02.b0", 0x0800000, 0x200000, CRC(d7402027) SHA1(32af6d611ea277a860ee10e98f4eee5c4458ef7a) )
 3050      ROM_LOAD( "vg003-06.b1", 0x0a00000, 0x200000, CRC(518c509f) SHA1(e4bcbe1d8644490a58670add40d2908c7acdf989) )
 3051      ROM_LOAD( "vg003-10.b2", 0x0c00000, 0x200000, CRC(c1ee9d8b) SHA1(7425cf92225cd1c8d764aa47db6219a6d8b090a5) )
 3052      ROM_LOAD( "vg003-14.b3", 0x0e00000, 0x200000, CRC(645b672b) SHA1(26dfde289679cd780bc65f4f6783a6a0f8b87818) )
 3053  
 3054      ROM_LOAD( "vg003-03.c0", 0x1000000, 0x200000, CRC(1ca7163d) SHA1(d8c5fd0054a1bc1fbad5866216f6d83c42436ecd) )
 3055      ROM_LOAD( "vg003-07.c1", 0x1200000, 0x200000, CRC(2ff113bb) SHA1(a482ddd3c86633a79d18a03193d70fc8f0f157d8) )
 3056      ROM_LOAD( "vg003-11.c2", 0x1400000, 0x200000, CRC(f924b105) SHA1(079ad0fc3b34c31a67dd88a442088237a2c03fdd) )
 3057      ROM_LOAD( "vg003-15.c3", 0x1600000, 0x200000, CRC(83623b01) SHA1(026654303fb58958bc7f7be86aeb4fdd08e8be7b) )
 3058  
 3059      ROM_LOAD( "vg003-04.d0", 0x1800000, 0x200000, CRC(6be9bc62) SHA1(c0b49a558786b50f04c1cd87a11e111ad31b85d9) )
 3060      ROM_LOAD( "vg003-08.d1", 0x1a00000, 0x200000, CRC(a7113cdb) SHA1(74d8bfee7e816d53e60d4e54a2584643562a1ee5) )
 3061      ROM_LOAD( "vg003-12.d2", 0x1c00000, 0x200000, CRC(ac0fd855) SHA1(992ae0d02bcefaa2fad7462b211a49fbd1338b62) )
 3062      ROM_LOAD( "vg003-16.d3", 0x1e00000, 0x200000, CRC(1a5fd312) SHA1(1e67ffa51408de107be75c9c63df6fd1bb6ce6b1) )
 3063  
 3064      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 3065      ROM_LOAD16_BYTE( "vg003-17.u22", 0x000000, 0x200000, CRC(6f9294ce) SHA1(b097defd95eb1d8f00e107d7669f9d33148e75c1) )
 3066  
 3067      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 )   /* Samples */
 3068      ROM_LOAD16_BYTE( "vg003-18.u15", 0x000000, 0x200000, CRC(511b3e93) SHA1(09eda175c8f1b21c18645519cc6e89c6ca1fc5de) )
 3069  
 3070      ROM_REGION( 0x11000, "st010", 0)
 3071      ROM_LOAD( "st010.bin",    0x000000, 0x011000, CRC(aa11ee2d) SHA1(cc1984e989cb94e3dcbb5f99e085b5414e18a017) )
 3072      ROM_REGION( 0x10000, "dspprg", ROMREGION_ERASEFF)
 3073      ROM_REGION( 0x1000, "dspdata", ROMREGION_ERASEFF)
 3074  ROM_END
 3075  
 3076  
 3077  /***************************************************************************
 3078  
 3079  Eagle Shot Golf
 3080  Sammy, 1994
 3081  
 3082  GOLF ROM
 3083  |----------------------------------------|
 3084  | 514400                    GAL SI3-11   |
 3085  |                           GAL SI3-12   |
 3086  | 514400                                 |
 3087  |          SI003-06.u31    SI003-09.u18  |
 3088  | 514400                                 |
 3089  |                                        |
 3090  | 514400   SI003-05.u30    SI003-10.u20  |
 3091  |                                        |
 3092  | 514400                                 |
 3093  |          SI003-04.u10                  |
 3094  | 514400                                 |
 3095  |                                        |
 3096  | 514400   SI003-03.u11                  |
 3097  |                                        |
 3098  | 514400                                 |
 3099  |          SI003-02.u12                  |
 3100  |                                        |
 3101  |                                        |
 3102  |          SI003-01.u13    SI003-07.U23  |
 3103  |                                        |
 3104  |                                        |
 3105  |                          SI003-08.U24  |
 3106  |                                        |
 3107  |                             uPD4701    |
 3108  |                                        |
 3109  |                             mc14584b   |
 3110  |                                        |
 3111  |                                 P1     |
 3112  |-------------------------------||||||---|
 3113  
 3114   mc14584b - Motorola HEX Schmitt Trigger
 3115    uPD4701 - Mouse/Trackball interface by NEC
 3116     514400 - Hatachi HM514400BS7 1M x 4 DRAM (4 Megs of RAM)
 3117        GAL - GAL16V8B
 3118         P1 - 6 Pin trackball connector (same pinout as Golden Tee 9x series)
 3119  
 3120  Lower PCB
 3121  PCB Number: GOLF ROM PCB
 3122  RAM       : HM514400 (x8)
 3123  PALs      : GAL16V8 (x2) labelled SI3-11 & SI3-12
 3124  OTHER     : NEC D4701AC
 3125              Controls probably trackball, has 6 pin connector hooked up to a
 3126              mc14584b Logic IC. Joystick appears to be used also for selecting
 3127              stance, club and direction.
 3128  
 3129  ROMs      : U18 & U20 are used for main program.
 3130              All rest are 16M Mask
 3131              U23 & U24 are sound related, all others for GFX.
 3132  
 3133  Loc  ROMs           Use & eprom type
 3134  -----------------------------------------
 3135  U18  si003-09.prl - V60 Program (27C4001)
 3136  U20  si003-10.prh /
 3137  
 3138  U23  si003-07.s0 - Samples (16M-Mask)
 3139  U24  si003-08.s1 /
 3140  
 3141  U13  si003-01.d0 - Graphics (16M-Mask)
 3142  U12  si003-02.d1 |
 3143  U11  si003-03.d2 |
 3144  U10  si003-04.d3 |
 3145  U30  si003-05.d4 |
 3146  U31  si003-06.d5 /
 3147  
 3148  NOTE: The "s" and "d" designations above are silk-screened on the rom PCB.
 3149  
 3150  Chips of note:  mc14584b - Motorola HEX Schmitt Trigger
 3151  
 3152  This chip is used for the trackball trigger / reading / converting values
 3153  
 3154  ***************************************************************************/
 3155  
 3156  ROM_START( eaglshot )
 3157      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3158      ROM_LOAD16_BYTE( "si003-09.u18",  0x000000, 0x080000, CRC(219c71ce) SHA1(4f8996b4c5b267a90073d67857358147732f8c0d) )
 3159      ROM_LOAD16_BYTE( "si003-10.u20",  0x000001, 0x080000, CRC(c8872e48) SHA1(c8e1e712d5fa380f8fc1447502f21d2ae592811a) )
 3160  
 3161      ROM_REGION( 0x0c00000, "gfx1", /*0*/0 ) /* Sprites - Read by the CPU */
 3162      ROM_LOAD( "si003-01.u13", 0x0000000, 0x200000, CRC(d7df0d52) SHA1(d7b79a186f4272334c2297666c52f32c05787c29) )
 3163      ROM_LOAD( "si003-02.u12", 0x0200000, 0x200000, CRC(92b4d50d) SHA1(9dc2f2961b088824d8370ac83dff796345fe4158) )
 3164      ROM_LOAD( "si003-03.u11", 0x0400000, 0x200000, CRC(6ede4012) SHA1(6663990c6ee8e500cb8c51ad2102761ee0b3351d) )
 3165      ROM_LOAD( "si003-04.u10", 0x0600000, 0x200000, CRC(4c65d1a1) SHA1(165f16d08813d2c989ddce4bb23b3a3652003bd5) )
 3166      ROM_LOAD( "si003-05.u30", 0x0800000, 0x200000, CRC(daf52d56) SHA1(108419ef7d3716a3890b0d8bcbfddc1585daaae8) )
 3167      ROM_LOAD( "si003-06.u31", 0x0a00000, 0x200000, CRC(449f9ae5) SHA1(b3e664eb88d14d1e25a0cfc8dcccc8270ca778c9) )
 3168  
 3169      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 3170      ROM_LOAD16_WORD_SWAP( "si003-07.u23", 0x000000, 0x200000, CRC(81679fd6) SHA1(ca3b07a87781278b5c7c85951728bbe5dfcbe042) )
 3171      ROM_LOAD16_WORD_SWAP( "si003-08.u24", 0x200000, 0x200000, CRC(d0122ba2) SHA1(96230fb690cf144cd873f7d51c0304736a698316) )
 3172  
 3173      ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
 3174      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 3175  
 3176      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3177      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 3178  
 3179      ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
 3180      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 3181  ROM_END
 3182  
 3183  
 3184  /***************************************************************************
 3185  
 3186                      (Mahjong) Hyper Reaction (Japan)
 3187  
 3188  (c)1995 Sammy, SSV system
 3189  
 3190  P1-102A (ROM board)
 3191  
 3192  ***************************************************************************/
 3193  
 3194  ROM_START( hypreact )
 3195      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3196      ROM_LOAD16_BYTE( "s14-1-02.u2", 0x000000, 0x080000, CRC(d90a383c) SHA1(9945f60ce6e1f50c24c2ae3c2c5d0df9ec3b8926) )
 3197      ROM_LOAD16_BYTE( "s14-1-01.u1", 0x000001, 0x080000, CRC(80481401) SHA1(4b1b7050893b6659762297d0f6496c7193ea6c4e) )
 3198  
 3199      ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
 3200      ROM_LOAD( "s14-1-07.u7",  0x0000000, 0x200000, CRC(6c429fd0) SHA1(de1bbcd4a20410328d88a3b246afa8e1a6a6f232) )
 3201      ROM_LOAD( "s14-1-05.u13", 0x0200000, 0x200000, CRC(2ff72f98) SHA1(92bd5042e19e1dae1252305413684f9cff4bd0ac) )
 3202      ROM_LOAD( "s14-1-06.u10", 0x0400000, 0x200000, CRC(f470ec42) SHA1(f31e9c3f3daa212226b9eea14aa1d01367fa348f) )
 3203  
 3204      ROM_LOAD( "s14-1-10.u6",  0x0600000, 0x200000, CRC(fdd706ba) SHA1(893ead529c1ef62002dcff97092ff9fa51ced938) )
 3205      ROM_LOAD( "s14-1-08.u12", 0x0800000, 0x200000, CRC(5bb9bb0d) SHA1(1874375cbe79663ff1b5181a1c16fa597a6b55f7) )
 3206      ROM_LOAD( "s14-1-09.u9",  0x0a00000, 0x200000, CRC(d1dda65f) SHA1(b4bbd5c9da08b4d4fedb48cfe2dea4f27895c2fd) )
 3207  
 3208      ROM_LOAD( "s14-1-13.u8",  0x0c00000, 0x200000, CRC(971caf11) SHA1(7cfc8bed4431467da53e19056402aa2409be5d88) )
 3209      ROM_LOAD( "s14-1-11.u14", 0x0e00000, 0x200000, CRC(6d8e7bae) SHA1(93258663ceb6174917560bb66d72a42ba0f96c0e) )
 3210      ROM_LOAD( "s14-1-12.u11", 0x1000000, 0x200000, CRC(233a8e23) SHA1(0c813ec80ac63aa342c8ea57d9e38cada74456d9) )
 3211  
 3212      ROM_FILL(                 0x1200000, 0x600000, 0          )
 3213  
 3214  //  The chip seems to use REGION1 too, but produces no sound from there.
 3215  
 3216      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3217      ROM_LOAD16_WORD_SWAP( "s14-1-04.u4", 0x000000, 0x200000, CRC(a5955336) SHA1(1ac0f5d27224e93acfe449d8ca5c3ab3b7f5dd8c) )
 3218      ROM_LOAD16_WORD_SWAP( "s14-1-03.u5", 0x200000, 0x200000, CRC(283a6ec2) SHA1(766c685384ea8d801c53a2ae36b4980318aff06b) )
 3219  ROM_END
 3220  
 3221  
 3222  /***************************************************************************
 3223  
 3224                      (Mahjong) Hyper Reaction 2 (Japan)
 3225  
 3226  (c)1997 Sammy,SSV system
 3227  
 3228  P1-112A (ROM board)
 3229  
 3230  ***************************************************************************/
 3231  
 3232  ROM_START( hypreac2 )
 3233      ROM_REGION16_LE( 0x200000, "user1", 0 )     /* V60 Code */
 3234      ROM_LOAD16_BYTE( "u2.bin",  0x000000, 0x080000, CRC(05c93266) SHA1(0833e80f67ccb4ac17e771fa04dc6f433554a34f) )
 3235      ROM_LOAD16_BYTE( "u1.bin",  0x000001, 0x080000, CRC(80cf9e59) SHA1(7025321539891e1a3354ca233255f5395d716933) )
 3236      ROM_LOAD16_BYTE( "u47.bin", 0x100000, 0x080000, CRC(a3e9bfee) SHA1(1e897646bafd07ab48eda2883926506c6bedab87) )
 3237      ROM_LOAD16_BYTE( "u46.bin", 0x100001, 0x080000, CRC(68c41235) SHA1(6ec32aa6ab6074a8db63a76a3d1a0ec2dc8f8aae) )
 3238  
 3239      ROM_REGION( 0x2800000, "gfx1", 0 )  /* Sprites */
 3240      ROM_LOAD( "s16-1-16.u6",  0x0000000, 0x400000, CRC(b308ac34) SHA1(409652bc5a537650cab1f3709a2c2be206f72a78) )
 3241      ROM_LOAD( "s16-1-15.u9",  0x0400000, 0x400000, CRC(2c8e381e) SHA1(a8681620809d3d9dc62b443232b6e4c4c4209248) )
 3242      ROM_LOAD( "s16-1-14.u12", 0x0800000, 0x200000, CRC(afe9d187) SHA1(802df8b1bbb94e4451a6b97c852fa555a6cf5837) )
 3243  
 3244      ROM_LOAD( "s16-1-10.u7",  0x0a00000, 0x400000, CRC(86a10cbd) SHA1(7c15da7c3ffebff058e78439c64f6c0386e4d55b) )
 3245      ROM_LOAD( "s16-1-09.u10", 0x0e00000, 0x400000, CRC(6b8e4d92) SHA1(a58c02d3fe595ab654b267cebcb1c6e8ec0b20c4) )
 3246      ROM_LOAD( "s16-1-08.u13", 0x1200000, 0x200000, CRC(b355f45d) SHA1(7e0fe81825745555b9627716bfdf1132f20e88f0) )
 3247  
 3248      ROM_LOAD( "s16-1-13.u8",  0x1400000, 0x400000, CRC(89869af2) SHA1(46a8eec18327b515a33c6e01d35fb9b947fcab1f) )
 3249      ROM_LOAD( "s16-1-12.u11", 0x1800000, 0x400000, CRC(87d9c748) SHA1(1332db901e50e2fd25d3323920f99e0ef0b0533d) )
 3250      ROM_LOAD( "s16-1-11.u14", 0x1c00000, 0x200000, CRC(70b3c0a0) SHA1(009e2f2f292ed6f10a9d54557861294156664e72) )
 3251  
 3252      ROM_FILL(                 0x1e00000,0x0a00000, 0          )
 3253  
 3254      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 3255      ROM_LOAD16_WORD_SWAP( "s16-1-06.u41", 0x000000, 0x400000, CRC(626e8a81) SHA1(45ef5b630aed575acd160ede1413e0370f4f9761) )
 3256  
 3257      ROM_REGION16_BE( 0x600000, "ensoniq.1", 0 ) /* Samples */
 3258      ROM_LOAD16_WORD_SWAP( "s16-1-07.u42", 0x200000, 0x400000, CRC(42bcb41b) SHA1(060312b19bd52770410cec1f77e5d8d6478d80eb) )
 3259  
 3260      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3261      ROM_LOAD16_WORD_SWAP( "s16-1-07.u42", 0x000000, 0x400000, CRC(42bcb41b) SHA1(060312b19bd52770410cec1f77e5d8d6478d80eb) )
 3262  ROM_END
 3263  
 3264  
 3265  /***************************************************************************
 3266  
 3267               Lovely Pop Mahjong Jangjang Shimasho (Japan)
 3268  
 3269  (c)1996 Visco, SSV System
 3270  
 3271  ***************************************************************************/
 3272  
 3273  ROM_START( janjans1 )
 3274      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 3275      ROM_LOAD16_WORD( "jj1-data.bin", 0x000000, 0x200000, CRC(6734537e) SHA1(a40f84479141a6f33ce465e66ba9313b54915002) )
 3276      ROM_LOAD16_BYTE( "jj1-prol.bin", 0x200000, 0x080000, CRC(4231d928) SHA1(820d1233cd1a8d0c4ece15b94bd9be976b383fe2) )
 3277      ROM_RELOAD(                      0x300000, 0x080000             )
 3278      ROM_LOAD16_BYTE( "jj1-proh.bin", 0x200001, 0x080000, CRC(651383c6) SHA1(8291f86b230eee3a2ebcc926a8370777ee21ec47) )
 3279      ROM_RELOAD(                      0x300001, 0x080000             )
 3280  
 3281      ROM_REGION( 0x2800000, "gfx1", 0 )  /* Sprites */
 3282      ROM_LOAD( "jj1-a0.bin", 0x0000000, 0x400000, CRC(39bbbc46) SHA1(77c6b5e9d4315671ea79ec838baa7ae043bcd8c4) )
 3283      ROM_LOAD( "jj1-a1.bin", 0x0400000, 0x400000, CRC(26020133) SHA1(32c834655d885431d466f25a729aee2d589ade1b) )
 3284      ROM_LOAD( "jj1-a2.bin", 0x0800000, 0x200000, CRC(e993251e) SHA1(6cea12bbfc170ad4ecdc09c1728f88ec7534270a) )
 3285  
 3286      ROM_LOAD( "jj1-b0.bin", 0x0a00000, 0x400000, CRC(8ee66b0a) SHA1(f5a641d54a3040b67d9b6e9533c4e1ed3dbc9e12) )
 3287      ROM_LOAD( "jj1-b1.bin", 0x0e00000, 0x400000, CRC(048719b3) SHA1(b81198d58afbc7ef2f7dc71cfef11d269bc1608f) )
 3288      ROM_LOAD( "jj1-b2.bin", 0x1200000, 0x200000, CRC(6e95af3f) SHA1(c4336a3f169143d5ab828ea527c08dcac27654c3) )
 3289  
 3290      ROM_LOAD( "jj1-c0.bin", 0x1400000, 0x400000, CRC(9df28afc) SHA1(98ee75b028257614c3354d5ec7b3d4b27be75595) )
 3291      ROM_LOAD( "jj1-c1.bin", 0x1800000, 0x400000, CRC(eb470ed3) SHA1(ac0601eb57283c3ebb2daf20d07a2c350804b8e6) )
 3292      ROM_LOAD( "jj1-c2.bin", 0x1c00000, 0x200000, CRC(aaf72c2d) SHA1(774e713bbc4c2ed7ff7c9fb49a06246d97c33bad) )
 3293  
 3294      ROM_LOAD( "jj1-d0.bin", 0x1e00000, 0x400000, CRC(2b3bd591) SHA1(0619b2779bd4bc19a5259040ccce0fdbefecf1d0) )
 3295      ROM_LOAD( "jj1-d1.bin", 0x2200000, 0x400000, CRC(f24c0d36) SHA1(212969b456bfd7cc00081f65c03c1e167186891a) )
 3296      ROM_LOAD( "jj1-d2.bin", 0x2600000, 0x200000, CRC(481b3be8) SHA1(cd1bcaca8c236cebba72d315e759b2e9d243aca8) )
 3297  
 3298      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 3299      ROM_LOAD16_BYTE( "jj1-snd0.bin", 0x000000, 0x200000, CRC(4f7d620a) SHA1(edded130ce7bb0f37e1f59b2771ae6a10a061f9e) )
 3300  
 3301      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 )   /* Samples */
 3302      ROM_LOAD16_BYTE( "jj1-snd1.bin", 0x000000, 0x200000, CRC(9b3a7ae5) SHA1(193743fcce779c4a8a73a44c54b5391d08116331) )
 3303  ROM_END
 3304  
 3305  /***************************************************************************
 3306  
 3307              Lovely Pop Mahjong JangJang Shimasho 2 (Japan)
 3308  
 3309  (c)1996-2000 Visco
 3310  
 3311  This game runs on SSV hardware. The game PCB is VISCO-JJ1
 3312  The game PCB contains mostly just ROMs and logic, plus....
 3313  NEC D71051 (DIP28)
 3314  8MHz OSC TI 75175 (DIP8)
 3315  2x PALs (near program ROMs)
 3316  2x 8-pin connectors for extra controls
 3317  
 3318  ***************************************************************************/
 3319  
 3320  ROM_START( janjans2 )
 3321      ROM_REGION16_LE( 0x400000, "user1", 0 )        /* V60 Code */
 3322      ROM_LOAD16_WORD( "jan2-dat.u28",  0x000000, 0x200000, CRC(0c9c62bf) SHA1(17c6eea7cec05860c238cc22706fec1a8e3d9263) )
 3323      ROM_LOAD16_BYTE( "jan2-prol.u26", 0x200000, 0x080000, CRC(758a7249) SHA1(1126e8527bad000bdfbd59da46d72ed256cb0fa9) )
 3324      ROM_RELOAD(                       0x300000, 0x080000             )
 3325      ROM_LOAD16_BYTE( "jan2-proh.u27", 0x200001, 0x080000, CRC(fcd5da62) SHA1(e0243e41e4ec25e82b0316f1189ed069c369e7b1) )
 3326      ROM_RELOAD(                       0x300001, 0x080000             )
 3327  
 3328      ROM_REGION( 0x2000000, "gfx1", 0 )    /* Sprites */
 3329      ROM_LOAD( "jan2-a0.u13", 0x0000000, 0x400000, CRC(37869bea) SHA1(6259e8584775ca702ef4e9e460c6d874980ffecb) )
 3330      ROM_LOAD( "jan2-a1.u14", 0x0400000, 0x400000, CRC(8189e74f) SHA1(ea083a7ef0858dac59e14a77f10a9900b20447f3) )
 3331  
 3332      ROM_LOAD( "jan2-b0.u16", 0x0800000, 0x400000, CRC(19877c5c) SHA1(5faaf3b862ca544589b46cf52d5fdb73287ceb6f) )
 3333      ROM_LOAD( "jan2-b1.u17", 0x0c00000, 0x400000, CRC(8d0f7190) SHA1(d06b53d627f7629bda4de7e130eae2be14c18a5a) )
 3334  
 3335      ROM_LOAD( "jan2-c0.u21", 0x1000000, 0x400000, CRC(8bdff3d5) SHA1(be3d2f72abae620f8855d5443dae62880f58f7c6) )
 3336      ROM_LOAD( "jan2-c1.u22", 0x1400000, 0x400000, CRC(f7ea5934) SHA1(1767a0206fc35dc2800c9b5b061f704828571452) )
 3337  
 3338      ROM_LOAD( "jan2-d0.u34", 0x1800000, 0x400000, CRC(479fdb54) SHA1(667d89518877a3b501a87c9c765b85b9a0b23517) )
 3339      ROM_LOAD( "jan2-d1.u35", 0x1c00000, 0x400000, CRC(c0148895) SHA1(f89482a6ef475ca44d570332d05201b34887afbb) )
 3340  
 3341      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )    /* Samples */
 3342      ROM_LOAD16_BYTE( "jan2-snd0.u29", 0x000000, 0x200000, CRC(22cc054e) SHA1(4926dd9f8f85880d6c1d14f93d68f330898b473a) )
 3343  
 3344      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 )    /* Samples */
 3345      ROM_LOAD16_BYTE( "jan2-snd1.u33", 0x000000, 0x200000, CRC(cbcac4a6) SHA1(f0c57fa6784e910bdb94f046d09e58e26921773b) )
 3346  ROM_END
 3347  
 3348  
 3349  /***************************************************************************
 3350  
 3351  Joryuu Syougi Kyoushitsu
 3352  (c)1997 Visco, System SSV ROM board
 3353  
 3354  CPU : NEC JAPAN D70732GD-25 (C)NEC1991 V810 9651MK007
 3355  OSC : 48.0000MHz
 3356  
 3357  ROMs:
 3358  JSK-U4 .BIN [ec22fb41] - (27c1001)
 3359  JSK-U24.BIN [1fa6e156]  |
 3360  JSK-U38.BIN [8e5c0de3]  |
 3361  JSK-U52.BIN [b11aef0c] /
 3362  
 3363  JSK-U71.BIN [f6774fba] - (27c040)
 3364  JSK-U72.BIN [db6b2554] /
 3365  
 3366  JSK-S0.U65  [8d1a9aeb] - (16M mask)
 3367  
 3368  JSK-A0.BIN  [4bac3196] - (16M mask)
 3369  JSK-B0.BIN  [40664e5a]  |
 3370  JSK-C0.BIN  [2a230e64]  |
 3371  JSK-D0.BIN  [911e53a6] /
 3372  
 3373  GAL (not dumped):
 3374  U53.BIN     [--------] - GAL16V8B
 3375  U70.BIN     [--------] /
 3376  
 3377  dumped by sayu
 3378  
 3379  Note, in the old bad dump u52 had a few different bytes:
 3380  
 3381  ROM_LOAD32_BYTE( "jsk-u52.bin", 0x00000, 0x20000, CRC(19cc585f) SHA1(b53138e93d40c0cf03aee838d7653f5665d9cf35) )
 3382  
 3383  addr   old  this
 3384  1FF8F: FF   00
 3385  1FF97: FF   00
 3386  1FFB7: FF   00
 3387  1FFCF: FF   00
 3388  1FFD7: FF   00
 3389  1FFF7: FF   00
 3390  
 3391  ***************************************************************************/
 3392  
 3393  ROM_START( jsk )
 3394      ROM_REGION16_LE( 0x100000, "user1", 0 )
 3395      ROM_LOAD16_BYTE( "jsk-u72.bin", 0x00000, 0x80000, CRC(db6b2554) SHA1(c4c6617461e1d3f8660a2b97fd2c38ef245f0d4a) )
 3396      ROM_LOAD16_BYTE( "jsk-u71.bin", 0x00001, 0x80000, CRC(f6774fba) SHA1(3a74e5091d9d72e4f92c7c637cfe5c0dcc60bbe1) )
 3397  
 3398      ROM_REGION( 0x20000*4, "sub", 0 )
 3399      ROM_LOAD32_BYTE( "jsk-u52.bin", 0x00000, 0x20000, CRC(b11aef0c) SHA1(37c0fedd6454a05b647513600f1b0998c572c7a5) )
 3400      ROM_LOAD32_BYTE( "jsk-u38.bin", 0x00001, 0x20000, CRC(8e5c0de3) SHA1(54c5dfd858086b0eb7ffa82c19fb1dfd7752d50e) )
 3401      ROM_LOAD32_BYTE( "jsk-u24.bin", 0x00002, 0x20000, CRC(1fa6e156) SHA1(4daedf660d89c185c945d4a526312f6528fe7b17) )
 3402      ROM_LOAD32_BYTE( "jsk-u4.bin",  0x00003, 0x20000, CRC(ec22fb41) SHA1(c0d6b0a92075214a91da78be52d273771cb9f646) )
 3403  
 3404      ROM_REGION( 0x1000000, "gfx1", 0 )  /* Sprites */
 3405      ROM_LOAD( "jsk-a0.bin", 0x0000000, 0x400000, CRC(18981a19) SHA1(b4bf93f38099963350b9e5e64890ce7adc1bc983) )
 3406      ROM_LOAD( "jsk-b0.bin", 0x0400000, 0x400000, CRC(f6df0ff9) SHA1(d7736e4ae6e099aef320a59668d7f17590c346b9) )
 3407      ROM_LOAD( "jsk-c0.bin", 0x0800000, 0x400000, CRC(b8282939) SHA1(d041fb013e5011bf6b9d9bc2c816b2f3969723b7) )
 3408      ROM_LOAD( "jsk-d0.bin", 0x0c00000, 0x400000, CRC(fc733e0c) SHA1(951060f6600b8b677ad2f41f59071c375ea9d4cf) )
 3409  
 3410      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE )   /* Samples */
 3411      ROM_LOAD16_BYTE( "jsk-s0.u65", 0x000000, 0x200000, CRC(8d1a9aeb) SHA1(37316bd3e8cbe2a84239e1a11a56d4fe4723ae1a) )
 3412  
 3413      ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
 3414      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 3415  
 3416      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3417      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 3418  
 3419      ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
 3420      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 3421  ROM_END
 3422  
 3423  
 3424  /***************************************************************************
 3425  
 3426                  Dramatic Adventure Quiz Keith & Lucy (Japan)
 3427  
 3428  (c)1993 Visco, SSV system
 3429  
 3430  STS-0001 (ROM board)
 3431  
 3432  ***************************************************************************/
 3433  
 3434  ROM_START( keithlcy )
 3435      ROM_REGION16_LE( 0x200000, "user1", 0 )     /* V60 Code */
 3436      ROM_LOAD16_WORD( "vg002-07.u28", 0x000000, 0x100000, CRC(57f80ff5) SHA1(9dcc35a79d3799407190d113e0f1b57864d6c56a) ) // "SETA SoundDriver"
 3437      ROM_LOAD16_BYTE( "kl-p0l.u26",   0x100000, 0x080000, CRC(d7b177fb) SHA1(2a3533b952a7b2404720916662743c144e870c0b) )
 3438      ROM_LOAD16_BYTE( "kl-p0h.u27",   0x100001, 0x080000, CRC(9de7add4) SHA1(16f4405b12734cb6a83cff8be21d03bb3c2e2266) )
 3439  
 3440      ROM_REGION( 0x800000, "gfx1", 0 )   /* Sprites */
 3441      ROM_LOAD( "vg002-01.u13", 0x000000, 0x200000, CRC(b44d85b2) SHA1(cf78d46f9f2594a23af08a898afbf5dd609abcec) )
 3442      ROM_LOAD( "vg002-02.u16", 0x200000, 0x200000, CRC(aa05fd14) SHA1(9144e9668788fcd45bd6c8464f9b4f865397f783) )
 3443      ROM_LOAD( "vg002-03.u21", 0x400000, 0x200000, CRC(299a8a7d) SHA1(b24d8ffba01d345f48f47f92e58e9b2a9ec62526) )
 3444      ROM_LOAD( "vg002-04.u34", 0x600000, 0x200000, CRC(d3633f9b) SHA1(250a25b75a4810a676a02c390bb597b6f1cd7494) )
 3445  
 3446      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 3447      ROM_LOAD16_WORD_SWAP( "vg002-05.u29", 0x000000, 0x200000, CRC(66aecd79) SHA1(7735034b8fb35ad5e7916acd0c2e224a7c62e195) )
 3448      ROM_LOAD16_WORD_SWAP( "vg002-06.u33", 0x200000, 0x200000, CRC(75d8c8ea) SHA1(545768ac6d8953cd3044680953476276337a94b9) )
 3449  ROM_END
 3450  
 3451  
 3452  /***************************************************************************
 3453  
 3454                              Koi Koi Shimasho 2 (Japan)
 3455  
 3456  (c)1997 Visco, SSV System
 3457  
 3458  VISCO-JJ1 (same board as janjans1)
 3459  
 3460  OSC  :8.00000MHz
 3461  
 3462  KK2_A0.BIN   [0c89a9ae] GFX (32M mask)
 3463  KK2_A1.BIN   [3f85ff19]  |
 3464  KK2_B0.BIN   [4d028972]  |
 3465  KK2_B1.BIN   [16e085f7]  |
 3466  KK2_C0.BIN   [34b699d9]  |
 3467  KK2_C1.BIN   [896fbb6f]  |
 3468  KK2_D0.BIN   [0e3005a4]  |
 3469  KK2_D1.BIN   [0116a5fb] /
 3470  
 3471  U26.BIN      [4be937a1] Programs (27c4001) (PROL)
 3472  U27.BIN      [25f39d93] /                  (PROH)
 3473  
 3474  KK2_SND0.BIN [b27eaa94] Sound (16M mask)
 3475  KK2_SND1.BIN [e5a963e1] /
 3476  
 3477  (socket for DATA ROM is empty)
 3478  
 3479  ***************************************************************************/
 3480  
 3481  ROM_START( koikois2 )
 3482      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 3483  //  socket for DATA ROM is empty
 3484      ROM_LOAD16_BYTE( "u26.bin", 0x200000, 0x080000, CRC(4be937a1) SHA1(b2c22ec12fc110984bd1914f8e3e16a8cb866816) )
 3485      ROM_RELOAD(                 0x300000, 0x080000             )
 3486      ROM_LOAD16_BYTE( "u27.bin", 0x200001, 0x080000, CRC(25f39d93) SHA1(a36bc2fe5657f6ceada724fd42843e19408b39b8) )
 3487      ROM_RELOAD(                 0x300001, 0x080000             )
 3488  
 3489      ROM_REGION( 0x2000000, "gfx1", 0 ) /* Sprites */
 3490      ROM_LOAD( "kk2-a0.bin", 0x0000000, 0x400000, CRC(b94b76c2) SHA1(07ce3e3946669c1bd2f022da9861164625be9c1b) )
 3491      ROM_LOAD( "kk2-a1.bin", 0x0400000, 0x200000, CRC(a7c99f56) SHA1(de341e99f76446fab4d7f09c2d8a6f18554b5d2f) )
 3492  
 3493      ROM_LOAD( "kk2-b0.bin", 0x0800000, 0x400000, CRC(4d028972) SHA1(732c874d3511c7bce006436d557ec24e54df0166) )
 3494      ROM_LOAD( "kk2-b1.bin", 0x0c00000, 0x200000, CRC(778ec9fb) SHA1(5983f0292e274e3da098b461355e2c001f4881b3) )
 3495  
 3496      ROM_LOAD( "kk2-c0.bin", 0x1000000, 0x400000, CRC(34b699d9) SHA1(b5208d5f70f21725e54c9dc59de73f1a5646a72c) )
 3497      ROM_LOAD( "kk2-c1.bin", 0x1400000, 0x200000, CRC(ab451e88) SHA1(0c4d6c0c758f2ab4210c201605dd573661b6c553) )
 3498  
 3499      ROM_LOAD( "kk2-d0.bin", 0x1800000, 0x400000, CRC(0e3005a4) SHA1(fa8da58308d58bb6b2e8beb8ee8f7ea08b18f4d9) )
 3500      ROM_LOAD( "kk2-d1.bin", 0x1c00000, 0x200000, CRC(17a02252) SHA1(c7aa61e27f197b3c497a65a9369e3a6a20c9f82a) )
 3501  
 3502      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 3503      ROM_LOAD16_BYTE( "kk2_snd0.bin", 0x000000, 0x200000, CRC(b27eaa94) SHA1(05baaef683a1fcd9eb8a7cfd5b280c05108e832f) )
 3504  
 3505      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 )   /* Samples */
 3506      ROM_LOAD16_BYTE( "kk2_snd1.bin", 0x000000, 0x200000, CRC(e5a963e1) SHA1(464ffd53ac2e6db62225b18d12bfea93160771ec) )
 3507  
 3508      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3509      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 3510  
 3511      ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
 3512      ROM_COPY( "ensoniq.1", 0x000000, 0x000000, 0x400000 )
 3513  ROM_END
 3514  
 3515  
 3516  /***************************************************************************
 3517  
 3518                          Meosis Magic (Japan, BET?)
 3519  
 3520  (c)1996 Sammy, SSV System
 3521  
 3522  P1-105A
 3523  
 3524  Custom:     DX-102 (I/O)
 3525  Others:     M62X42B (RTC?)
 3526              64k SRAM (Back up)
 3527              Ni-Cd Battery
 3528  
 3529  ***************************************************************************/
 3530  
 3531  ROM_START( meosism )
 3532      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3533      ROM_LOAD16_BYTE( "s15-2-2.u47", 0x000000, 0x080000, CRC(2ab0373f) SHA1(826aec3b9698ec5db5d7a72c3a24b1ef779fb227) )
 3534      ROM_LOAD16_BYTE( "s15-2-1.u46", 0x000001, 0x080000, CRC(a4bce148) SHA1(17ec4d91e215bd38258329b1a71e7f135c5733ad) )
 3535  
 3536      ROM_REGION( 0x800000, "gfx1", 0 )   /* Sprites */
 3537      ROM_LOAD( "s15-1-7.u7", 0x000000, 0x200000, CRC(ec5023cb) SHA1(3406f5143a40c8dcd2d45b44ea91c737810ab05b) )
 3538      ROM_LOAD( "s15-1-8.u6", 0x200000, 0x200000, CRC(f04b0836) SHA1(83678427cd0ed0d68ff770baa2693226b391f6c8) )
 3539      ROM_LOAD( "s15-1-5.u9", 0x400000, 0x200000, CRC(c0414b97) SHA1(3ca8423e04f606981d158065e38431f2509e1daa) )
 3540      ROM_LOAD( "s15-1-6.u8", 0x600000, 0x200000, CRC(d721aeb6) SHA1(3bef7e027a0e14fbf589aee32a6d9cab779da7d4) )
 3541  
 3542  //  The chip seems to use REGION1 too, but produces no sound from there.
 3543  
 3544      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3545      ROM_LOAD16_WORD_SWAP( "s15-1-4.u45", 0x000000, 0x200000, CRC(0c6738a7) SHA1(acf9056bb052db7a11cf903d77ab16425d813835) )
 3546      ROM_LOAD16_WORD_SWAP( "s15-1-3.u43", 0x200000, 0x200000, CRC(d7e83178) SHA1(74e5c09f6d3b2c8e1c1cc2b0eab0490b5bbc9099) )
 3547  ROM_END
 3548  
 3549  
 3550  /***************************************************************************
 3551  
 3552                              Monster Slider (Japan)
 3553  
 3554  (c)1997 Visco/PATT, System SSV
 3555  
 3556  ms-pl.bin - V60 main program (27c4000, low)
 3557  ms-ph.bin - V60 main program (27c4000, high)
 3558  
 3559  ms-snd0.bin \
 3560              |- sound data (read as 27c160)
 3561  ms-snd1.bin /
 3562  
 3563  ms-a0.bin \
 3564  ms-b0.bin |- Graphics (read as 27c160)
 3565  ms-c0.bin /
 3566  
 3567  ms-a1.bin \
 3568  ms-b1.bin |- Graphics (27c4100)
 3569  ms-c1.bin /
 3570  
 3571  vg001-14 \
 3572           |- (GAL16V8. not dumped)
 3573  vg001-15 /
 3574  
 3575  Other parts:    uPD71051
 3576                  OSC 8.0000MHz
 3577  
 3578  ***************************************************************************/
 3579  
 3580  ROM_START( mslider )
 3581      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3582      ROM_LOAD16_BYTE( "ms-pl.bin", 0x000000, 0x080000, CRC(70b2a05d) SHA1(387cf67e3e505c4cc1b5cd0b6c9fb3bc27d07e24) )
 3583      ROM_LOAD16_BYTE( "ms-ph.bin", 0x000001, 0x080000, CRC(34a64e9f) SHA1(acf3d8490f3ec99b6171e71328a991fcc9c5a8b1) )
 3584  
 3585      ROM_REGION( 0xa00000, "gfx1", 0 )   /* Sprites */
 3586      ROM_LOAD( "ms-a0.bin", 0x000000, 0x200000, CRC(7ed38ccc) SHA1(9c584a5f6b3aad8646d155a56e4070cfed4af540) )
 3587      ROM_LOAD( "ms-a1.bin", 0x200000, 0x080000, CRC(83f5995f) SHA1(33ae99a96702d4aba422eaf454b86c96aaf88426) )
 3588  
 3589      ROM_LOAD( "ms-b0.bin", 0x280000, 0x200000, CRC(faa076e1) SHA1(cca583c617e5d4ab995605dd16280931893991c7) )
 3590      ROM_LOAD( "ms-b1.bin", 0x480000, 0x080000, CRC(ef9748db) SHA1(34ab4524ec81b81ae2540f7d69e0f8254fd1b8f4) )
 3591  
 3592      ROM_LOAD( "ms-c0.bin", 0x500000, 0x200000, CRC(f9d3e052) SHA1(4cdde756b24ee980f3c79a35a1fe071861fdeef9) )
 3593      ROM_LOAD( "ms-c1.bin", 0x700000, 0x080000, CRC(7f910c5a) SHA1(23ea13b6c07d3d31a25c21704d6a3e506578b199) )
 3594  
 3595      ROM_FILL(              0x780000, 0x280000, 0          )
 3596  
 3597      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 3598      ROM_LOAD16_WORD_SWAP( "ms-snd0.bin", 0x000000, 0x200000, CRC(cda6e3a5) SHA1(28ad8f34bc4f907654582f3522b377b97234eba8) )
 3599      ROM_LOAD16_WORD_SWAP( "ms-snd1.bin", 0x200000, 0x200000, CRC(8f484b35) SHA1(cbf3ee7ec6337915f9d90a5b43d2de1eaa5537d0) )
 3600  ROM_END
 3601  
 3602  
 3603  /***************************************************************************
 3604  
 3605                      Gourmet Battle Quiz Ryohrioh CooKing (Japan)
 3606  
 3607  (c)1998 Visco, SSV System
 3608  
 3609  ***************************************************************************/
 3610  
 3611  ROM_START( ryorioh )
 3612      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 3613      ROM_LOAD( "ryorioh.dat",      0x000000, 0x200000, CRC(d1335a6a) SHA1(a5670ab3c399736232baaabc59573bdb3bf762da) )
 3614      ROM_LOAD16_BYTE( "ryorioh.l", 0x200000, 0x080000, CRC(9ad60e7d) SHA1(572b84bab08eb8293d93e03182d9871d8973b7dd) )
 3615      ROM_RELOAD(                   0x300000, 0x080000             )
 3616      ROM_LOAD16_BYTE( "ryorioh.h", 0x200001, 0x080000, CRC(0655fcff) SHA1(2c088e42323f87e01b65f9f523e258f881d4e773) )
 3617      ROM_RELOAD(                   0x300001, 0x080000             )
 3618  
 3619      ROM_REGION( 0x2000000, "gfx1", 0 )  /* Sprites */
 3620      ROM_LOAD( "ryorioh.a0", 0x0000000, 0x400000, CRC(f76ee003) SHA1(04022238dcfd5cf0e4f97c3c3b24df574ec6b609) )
 3621      ROM_LOAD( "ryorioh.a1", 0x0400000, 0x400000, CRC(ca44d66d) SHA1(d5ed2bbc9831182b212533bd67bb3831f655110a) )
 3622  
 3623      ROM_LOAD( "ryorioh.b0", 0x0800000, 0x400000, CRC(daa134f4) SHA1(c3dce66b2c67061ae980374f7559b2bb8ef2502d) )
 3624      ROM_LOAD( "ryorioh.b1", 0x0c00000, 0x400000, CRC(7611697c) SHA1(febb0bc5f3bc8766be4377092c8443a489379bca) )
 3625  
 3626      ROM_LOAD( "ryorioh.c0", 0x1000000, 0x400000, CRC(20eb49cf) SHA1(13c201e28be17cdfc7e6266a6d1fb41cfbe04b53) )
 3627      ROM_LOAD( "ryorioh.c1", 0x1400000, 0x400000, CRC(1370c75e) SHA1(30dfe37f3fab0e3e94df4a6d45f1291ad41e0147) )
 3628  
 3629      ROM_LOAD( "ryorioh.d0", 0x1800000, 0x400000, CRC(ffa14ef1) SHA1(22a6992f6217d8ef2140e72063290fa34cb45683) )
 3630      ROM_LOAD( "ryorioh.d1", 0x1c00000, 0x400000, CRC(ae6055e8) SHA1(ee20a7b3c4f899404ca259991509728d3a0f96b9) )
 3631  
 3632      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 3633      ROM_LOAD16_BYTE( "ryorioh.snd", 0x000000, 0x200000, CRC(7bd38b76) SHA1(d8490b4af839ef0802b8b2a47277fcd4091e4d37) )
 3634  ROM_END
 3635  
 3636  
 3637  /***************************************************************************
 3638  
 3639                              Super Real Mahjong PIV
 3640  
 3641  (c)SETA 1993, System SSV
 3642  
 3643  CPU        : V60 (12MHz)
 3644  Sound      : Ensoniq OTTO
 3645  Work RAM   : 256Kbit (expandable to 1Mbitx2. SRMP7 requires this)
 3646  Object RAM : 1Mbitx2
 3647  Palette RAM: 256Kbitx3 (expandable to 1Mbitx3)
 3648  
 3649  sx001-01.a0 \
 3650  sx001-02.b0 |
 3651  sx001-03.c0 |
 3652  sx001-04.a1 |
 3653  sx001-05.b1 |- Graphics (16M Mask)
 3654  sx001-06.c1 |
 3655  sx001-07.a2 |
 3656  sx001-08.b2 |
 3657  sx001-09.c2 /
 3658  
 3659  sx001-10.sd0 - Sound - 16M Mask
 3660  
 3661  sx001-11.prl - Main program (low)  - 27c040
 3662  sx001-12.prh - Main program (high) - 27c040
 3663  
 3664  Custom chips
 3665  ST-0004 (Video DAC)
 3666  ST-0005 (Parallel I/O)
 3667  ST-0006 (Video controller - 32768 palettes from 24bit color)
 3668  ST-0007 (System controller)
 3669  
 3670  ***************************************************************************/
 3671  
 3672  ROM_START( srmp4 )
 3673      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3674      ROM_LOAD16_BYTE( "sx001-14.prl", 0x000000, 0x080000, CRC(19aaf46e) SHA1(0c0f5acc1880971c56e7e2c2e3ad7c2932b82d4b) )
 3675      ROM_LOAD16_BYTE( "sx001-15.prh", 0x000001, 0x080000, CRC(dbd31399) SHA1(a77dc85f481454b10223d7f4e0395e07d2f8d4f3) )
 3676  
 3677      ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
 3678      ROM_LOAD( "sx001-01.a0", 0x0000000, 0x200000, CRC(94ee9203) SHA1(a0e944a375f94e9dd668b06f15580384902d0fe1) )
 3679      ROM_LOAD( "sx001-04.a1", 0x0200000, 0x200000, CRC(38c9c49a) SHA1(c392d1cf5d16a348bdaa7222f2420a61a831a50a) )
 3680      ROM_LOAD( "sx001-07.a2", 0x0400000, 0x200000, CRC(ee66021e) SHA1(f4df2bdf8100a3bd39bb61f9bb4807ca9e13537a) )
 3681  
 3682      ROM_LOAD( "sx001-02.b0", 0x0600000, 0x200000, CRC(adffb598) SHA1(fab372aebfbb12feaf7a7716a780cf2e5cc60731) )
 3683      ROM_LOAD( "sx001-05.b1", 0x0800000, 0x200000, CRC(4c400a38) SHA1(42623d6134fb6d8ce9059f7774c6bf4d2ea5d2d9) )
 3684      ROM_LOAD( "sx001-08.b2", 0x0a00000, 0x200000, CRC(36efd52c) SHA1(f51c6d9ceff02b9ee3f8e4ffa17f6c00ee9de905) )
 3685  
 3686      ROM_LOAD( "sx001-03.c0", 0x0c00000, 0x200000, CRC(4336b037) SHA1(f42c5622e141e384efb52955f7f6a58a8ba8fc2c) )
 3687      ROM_LOAD( "sx001-06.c1", 0x0e00000, 0x200000, CRC(6fe7229e) SHA1(e1432aa500460f79b5b78ee4b249d8fc9f566ce1) )
 3688      ROM_LOAD( "sx001-09.c2", 0x1000000, 0x200000, CRC(91dd8218) SHA1(a500dca9eefbf93187b1dfde7ddff1d22b886d44) )
 3689  
 3690      ROM_FILL(                0x1200000, 0x600000, 0          )
 3691  
 3692      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 3693      ROM_LOAD16_WORD_SWAP( "sx001-10.sd0", 0x000000, 0x200000, CRC(45409ef1) SHA1(327d0a63deac6f0f8b9a408a321c03dd4e965569) )
 3694      ROM_RELOAD(                           0x200000, 0x200000             )
 3695  ROM_END
 3696  
 3697  ROM_START( srmp4o )
 3698      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3699      ROM_LOAD16_BYTE( "sx001-11.prl", 0x000000, 0x080000, CRC(dede3e64) SHA1(6fe998babfd2ad8f268c59bd365115a2d7cfc8f9) )
 3700      ROM_LOAD16_BYTE( "sx001-12.prh", 0x000001, 0x080000, CRC(739c53c3) SHA1(68f12cf42177df208ff6499ccc7ccc1423e3ad5f) )
 3701  
 3702      ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
 3703      ROM_LOAD( "sx001-01.a0", 0x0000000, 0x200000, CRC(94ee9203) SHA1(a0e944a375f94e9dd668b06f15580384902d0fe1) )
 3704      ROM_LOAD( "sx001-04.a1", 0x0200000, 0x200000, CRC(38c9c49a) SHA1(c392d1cf5d16a348bdaa7222f2420a61a831a50a) )
 3705      ROM_LOAD( "sx001-07.a2", 0x0400000, 0x200000, CRC(ee66021e) SHA1(f4df2bdf8100a3bd39bb61f9bb4807ca9e13537a) )
 3706  
 3707      ROM_LOAD( "sx001-02.b0", 0x0600000, 0x200000, CRC(adffb598) SHA1(fab372aebfbb12feaf7a7716a780cf2e5cc60731) )
 3708      ROM_LOAD( "sx001-05.b1", 0x0800000, 0x200000, CRC(4c400a38) SHA1(42623d6134fb6d8ce9059f7774c6bf4d2ea5d2d9) )
 3709      ROM_LOAD( "sx001-08.b2", 0x0a00000, 0x200000, CRC(36efd52c) SHA1(f51c6d9ceff02b9ee3f8e4ffa17f6c00ee9de905) )
 3710  
 3711      ROM_LOAD( "sx001-03.c0", 0x0c00000, 0x200000, CRC(4336b037) SHA1(f42c5622e141e384efb52955f7f6a58a8ba8fc2c) )
 3712      ROM_LOAD( "sx001-06.c1", 0x0e00000, 0x200000, CRC(6fe7229e) SHA1(e1432aa500460f79b5b78ee4b249d8fc9f566ce1) )
 3713      ROM_LOAD( "sx001-09.c2", 0x1000000, 0x200000, CRC(91dd8218) SHA1(a500dca9eefbf93187b1dfde7ddff1d22b886d44) )
 3714  
 3715      ROM_FILL(                0x1200000, 0x600000, 0          )
 3716  
 3717      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 3718      ROM_LOAD16_WORD_SWAP( "sx001-10.sd0", 0x000000, 0x200000, CRC(45409ef1) SHA1(327d0a63deac6f0f8b9a408a321c03dd4e965569) )
 3719      ROM_RELOAD(                           0x200000, 0x200000             )
 3720  ROM_END
 3721  
 3722  
 3723  /***************************************************************************
 3724  
 3725                              Super Real Mahjong P7 (Japan)
 3726  
 3727  (c)1997 Seta, SSV system
 3728  
 3729  ***************************************************************************/
 3730  
 3731  ROM_START( srmp7 )
 3732      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 3733      ROM_LOAD16_WORD( "sx015-10.dat", 0x000000, 0x200000, CRC(fad3ac6a) SHA1(9a4695c06bc74ca4de0c1a83bdf38f6651c0e2a1) )
 3734      ROM_LOAD16_BYTE( "sx015-07.pr0", 0x200000, 0x080000, CRC(08d7f841) SHA1(67567acff0ce278576290a896005de0397605eef) )
 3735      ROM_RELOAD(                      0x300000, 0x080000             )
 3736      ROM_LOAD16_BYTE( "sx015-08.pr1", 0x200001, 0x080000, CRC(90307825) SHA1(13b3f82c8854808684bd41deb0bbd442efe7b685) )
 3737      ROM_RELOAD(                      0x300001, 0x080000             )
 3738  
 3739      ROM_REGION( 0x4000000, "gfx1", 0 )  /* Sprites */
 3740      ROM_LOAD( "sx015-26.a0", 0x0000000, 0x400000, CRC(a997be9d) SHA1(37470af24531557113f953f727f6b8cab602a7d3) )
 3741      ROM_LOAD( "sx015-25.a1", 0x0400000, 0x400000, CRC(29ac4211) SHA1(32edf3982b0e27077cc17cd38b67a27d36dc3ad8) )
 3742      ROM_LOAD( "sx015-24.a2", 0x0800000, 0x400000, CRC(b8fea3da) SHA1(9c3a53348f72f39d84d078068c62b10920854cd0) )
 3743      ROM_LOAD( "sx015-23.a3", 0x0c00000, 0x400000, CRC(9ec0b81e) SHA1(fe9550592852db8a0fc38f8af444c4c137b803eb) )
 3744  
 3745      ROM_LOAD( "sx015-22.b0", 0x1000000, 0x400000, CRC(62c3df07) SHA1(2c2b7ccc53d0ccc78f599d0789d38296935c0316) )
 3746      ROM_LOAD( "sx015-21.b1", 0x1400000, 0x400000, CRC(55b8a431) SHA1(ccdc70b27c7fc9efe2c20df23f01b96f3b542d72) )
 3747      ROM_LOAD( "sx015-20.b2", 0x1800000, 0x400000, CRC(e84a64d7) SHA1(af7a04cebb1ccbbd76812f7b6f7bb79023aff291) )
 3748      ROM_LOAD( "sx015-19.b3", 0x1c00000, 0x400000, CRC(994b5063) SHA1(0c44e94773160e75ef03f7ceb95ab1b123ae3ecf) )
 3749  
 3750      ROM_LOAD( "sx015-18.c0", 0x2000000, 0x400000, CRC(72d43fd4) SHA1(96582adae0bf1cc8359dd1ecc0d00a42d306c565) )
 3751      ROM_LOAD( "sx015-17.c1", 0x2400000, 0x400000, CRC(fdfd82f1) SHA1(005b60fd7bf9f61ecd16daa6e6bb213ed6a9875b) )
 3752      ROM_LOAD( "sx015-16.c2", 0x2800000, 0x400000, CRC(86aa314b) SHA1(5cd238785f683d3a33f36c5a326d350805ef21ff) )
 3753      ROM_LOAD( "sx015-15.c3", 0x2c00000, 0x400000, CRC(11f50e16) SHA1(4e26aa84bea8b7e73056b0cc70661332fa7d9473) )
 3754  
 3755      ROM_LOAD( "sx015-14.d0", 0x3000000, 0x400000, CRC(186f83fa) SHA1(6f03056b766c223fef639627706c2476f9af378d) )
 3756      ROM_LOAD( "sx015-13.d1", 0x3400000, 0x400000, CRC(ea6e5329) SHA1(614dd8d36d94a4c8b2b0c30ec96c6d183065561e) )
 3757      ROM_LOAD( "sx015-12.d2", 0x3800000, 0x400000, CRC(80336523) SHA1(ec66e21fe1401fdb438e03657542a7b6b0cbc5ce) )
 3758      ROM_LOAD( "sx015-11.d3", 0x3c00000, 0x400000, CRC(134c8e28) SHA1(669118b58f27d5e2e08052debe904f95d9ab32a3) )
 3759  
 3760      ROM_REGION16_BE( 0x800000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 3761      ROM_LOAD16_BYTE( "sx015-06.s0", 0x000000, 0x200000, CRC(0d5a206c) SHA1(2fdaf2a56b6608f20a788eb79a8426102ff33e14) )
 3762      ROM_RELOAD(                     0x400000, 0x200000             )
 3763  
 3764      ROM_REGION16_BE( 0x800000, "ensoniq.1", ROMREGION_ERASE | 0 )   /* Samples */
 3765      ROM_LOAD16_BYTE( "sx015-05.s1", 0x000000, 0x200000, CRC(bb8cebe2) SHA1(3691e5fb4e963f69c1fe01cb5d968433029c4833) )
 3766      ROM_RELOAD(                     0x400000, 0x200000             )
 3767  
 3768      ROM_REGION16_BE( 0x800000, "ensoniq.2", ROMREGION_ERASE | 0 )   /* Samples */
 3769      ROM_LOAD16_BYTE( "sx015-04.s2", 0x000000, 0x200000, CRC(f6e933df) SHA1(7cb69515a0ffc62fbac2be3a5fb322538560bd38) )
 3770      ROM_LOAD16_BYTE( "sx015-02.s4", 0x400000, 0x200000, CRC(6567bc3e) SHA1(e902f22f1499edc6a0e2c8b6cc26460d66a3bdbe) )
 3771  
 3772      ROM_REGION16_BE( 0x800000, "ensoniq.3", ROMREGION_ERASE | 0 )   /* Samples */
 3773      ROM_LOAD16_BYTE( "sx015-03.s3", 0x000000, 0x200000, CRC(5b51ab21) SHA1(cf3e86e41f7984208984d6486b04cec117dadc18) )
 3774      ROM_LOAD16_BYTE( "sx015-01.s5", 0x400000, 0x200000, CRC(481b00ed) SHA1(2c3d158dd5be9af0ee57fd5dd94d2ec75e28b182) )
 3775  ROM_END
 3776  
 3777  
 3778  /***************************************************************************
 3779  
 3780           Survival Arts
 3781  
 3782  Sammy USA, 1994
 3783  
 3784  This game runs on SSV hardware.
 3785  
 3786  Game PCB Layout
 3787  ---------------
 3788  
 3789  SAM-5127
 3790  |----------------------------------------|
 3791  | SI001-13.U6               4P     3P    |
 3792  |                                        |
 3793  | SI001-12.U7                            |
 3794  |                                        |
 3795  | SI001-11.U8                            |
 3796  |                                        |
 3797  | SI001-10.U9                            |
 3798  |                                        |
 3799  |                                        |
 3800  |                                        |
 3801  |                                        |
 3802  |                                        |
 3803  |                                        |
 3804  |                           SI001-08.U21 |
 3805  |                                        |
 3806  |                           SI001-05.U22 |
 3807  |                                        |
 3808  |                           SI001-02.U23 |
 3809  |                                        |
 3810  |                                        |
 3811  |USA-PR-H.U3                             |
 3812  |                                        |
 3813  |USA-PR-L.U4  SI001-09.U15  SI001-07.U25 |
 3814  |                                        |
 3815  |             SI001-06.U16  SI001-04.U26 |
 3816  |PAL                                     |
 3817  |(SI001-14)   SI001-03.U17  SI001-01.U27 |
 3818  |                                        |
 3819  |----------------------------------------|
 3820  
 3821   Manufacturer: Sammy USA
 3822   System Type: System SSV
 3823  
 3824   ----------------------
 3825   System SSV (STA-0001)
 3826   ----------------------
 3827   CPU  : NEC D70615GD-16 (V60)
 3828   Sound: Ensoniq ES5506 (OTTOR2)
 3829   OSC  : 42.9545MHz(X2) 48.0000MHz(X3)
 3830  
 3831   Custom chips:
 3832   ST-0004 (Video DAC)
 3833   ST-0005 (Parallel I/O)
 3834   ST-0006 (Video controller)
 3835   ST-0007 (System controller)
 3836  
 3837   Program Work RAM  : 256Kbitx2 (expandable to 1Mx2)
 3838   Object Work RAM   : 1Mbitx2
 3839   Color Palette RAM : 256Kbitx3 (expandable to 1Mx3)
 3840  
 3841   -------------------------
 3842   SSV Subboard (SAM-5127)
 3843   -------------------------
 3844   ROMs:
 3845   USA-PR-H.u3 - V60 Program (27C4001)
 3846   USA-PR-L.u4 /
 3847  
 3848   si001-10.s0 - Samples (16M-Mask)
 3849   si001-12.s2 /
 3850  
 3851   si001-11.s1 - Samples (8M-Mask)
 3852   si001-13.s3 /
 3853  
 3854   si001-01.a0 - Graphics (16M-Mask)
 3855   si001-04.a1 |
 3856   si001-05.a2 |
 3857   si001-02.b0 |
 3858   si001-05.b1 |
 3859   si001-07.b2 |
 3860   si001-03.c0 |
 3861   si001-06.c1 |
 3862   si001-09.c2 /
 3863  
 3864   Empty Sockets:
 3865   DATA --- 16M-Mask
 3866   A3     |
 3867   B3     |
 3868   C3     |
 3869   D0-D3 /
 3870  
 3871   GAL:
 3872   si003-14.u5 (16V8B)
 3873  
 3874   MISC:
 3875   P3 10 Pin Header for Buttons 4-6 (Kick) for each player
 3876   P4 10 Pin Header (unused)
 3877  
 3878  ***************************************************************************/
 3879  
 3880  ROM_START( survarts )
 3881      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3882      ROM_LOAD16_BYTE( "prl-r6.u4", 0x000000, 0x080000, CRC(ef5f6e17) SHA1(1857beb15d2214c7ecb60b59e696ba24b2791734) )
 3883      ROM_LOAD16_BYTE( "prh-r5.u3", 0x000001, 0x080000, CRC(d446f010) SHA1(fb6c349edb2e6d1fcf8ed360dbe82be6d74f91d2) )
 3884  
 3885      ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
 3886      ROM_LOAD( "si001-01.u27", 0x0000000, 0x200000, CRC(8b38fbab) SHA1(c4a67b24b33d4eef7b0f885bd69cae6c67bd3981) ) /* A0 */
 3887      ROM_LOAD( "si001-04.u26", 0x0200000, 0x200000, CRC(34248b54) SHA1(077198f8de1622b71c580e34d5ad1b6bf3229fe9) ) /* A1 */
 3888      ROM_LOAD( "si001-07.u25", 0x0400000, 0x200000, CRC(497d6151) SHA1(a9860c75943c0fd2991660ce2a9505edc6c2fa46) ) /* A2 */
 3889  
 3890      ROM_LOAD( "si001-02.u23", 0x0600000, 0x200000, CRC(cb4a2dbd) SHA1(26cdd1b54a3fa1dc3c3a8945d1a3562e9c62ace6) ) /* B0 */
 3891      ROM_LOAD( "si001-05.u22", 0x0800000, 0x200000, CRC(8f092381) SHA1(6c49f1f5b3c31bd7c6a93ba0450d9f64fd512633) ) /* B1 */
 3892      ROM_LOAD( "si001-08.u21", 0x0a00000, 0x200000, CRC(182b88c4) SHA1(a5b6a3e1fd67f036b1255385e81b6a3eb69f9f3f) ) /* B2 */
 3893  
 3894      ROM_LOAD( "si001-03.u17", 0x0c00000, 0x200000, CRC(92fdf652) SHA1(cf7aeb3a1e8ffe34cf24cb919a0ab3cc90202fa9) ) /* C0 */
 3895      ROM_LOAD( "si001-06.u16", 0x0e00000, 0x200000, CRC(9a62f532) SHA1(7e7ba1224e52b33a9bd14058230efc871178c4f8) ) /* C1 */
 3896      ROM_LOAD( "si001-09.u15", 0x1000000, 0x200000, CRC(0955e393) SHA1(0be9134190706eaee49177034b0536b05c4bc7ac) ) /* C2 */
 3897  
 3898      ROM_FILL(                0x1200000, 0x600000, 0          )
 3899  
 3900  //  The chip seems to use REGION1 too, but produces no sound from there.
 3901  
 3902      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3903      ROM_LOAD16_WORD_SWAP( "si001-10.u9", 0x000000, 0x100000, CRC(5642b333) SHA1(84936af8b3882e116b279e422075f35aabdd232f) ) /* S0 */
 3904      ROM_LOAD16_WORD_SWAP( "si001-11.u8", 0x100000, 0x100000, CRC(a81e6ea6) SHA1(499f070500895ed7b6785b42fb6bbf973fc6dc04) ) /* S1 */
 3905      ROM_LOAD16_WORD_SWAP( "si001-12.u7", 0x200000, 0x100000, CRC(e9b2b45b) SHA1(17fd27cdb8a0b9932cb1e71e0547c0d9d6fc7d06) ) /* S2 */
 3906      ROM_LOAD16_WORD_SWAP( "si001-13.u6", 0x300000, 0x100000, CRC(d66a7e26) SHA1(57b659daef00421b6742963f792bd5e020f625c9) ) /* S3 */
 3907  
 3908      ROM_REGION( 0x0200, "plds", 0 )
 3909      ROM_LOAD( "gal16v8b.u5",   0x0000, 0x0117, CRC(378ce368) SHA1(cc068c9b63e6f91165f9caec581645ad45b2d3d0) )
 3910  ROM_END
 3911  
 3912  ROM_START( survartsu )
 3913      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3914      ROM_LOAD16_BYTE( "usa-pr-l.u4", 0x000000, 0x080000, CRC(fa328673) SHA1(f7217eaa2a8d3fb7f706fa1aecaaa5b1b8d5e32c) )
 3915      ROM_LOAD16_BYTE( "usa-pr-h.u3", 0x000001, 0x080000, CRC(6bee2635) SHA1(a2d0517bf599331ef47beb8a902589039e4502e0) )
 3916  
 3917      ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
 3918      ROM_LOAD( "si001-01.u27", 0x0000000, 0x200000, CRC(8b38fbab) SHA1(c4a67b24b33d4eef7b0f885bd69cae6c67bd3981) ) /* A0 */
 3919      ROM_LOAD( "si001-04.u26", 0x0200000, 0x200000, CRC(34248b54) SHA1(077198f8de1622b71c580e34d5ad1b6bf3229fe9) ) /* A1 */
 3920      ROM_LOAD( "si001-07.u25", 0x0400000, 0x200000, CRC(497d6151) SHA1(a9860c75943c0fd2991660ce2a9505edc6c2fa46) ) /* A2 */
 3921  
 3922      ROM_LOAD( "si001-02.u23", 0x0600000, 0x200000, CRC(cb4a2dbd) SHA1(26cdd1b54a3fa1dc3c3a8945d1a3562e9c62ace6) ) /* B0 */
 3923      ROM_LOAD( "si001-05.u22", 0x0800000, 0x200000, CRC(8f092381) SHA1(6c49f1f5b3c31bd7c6a93ba0450d9f64fd512633) ) /* B1 */
 3924      ROM_LOAD( "si001-08.u21", 0x0a00000, 0x200000, CRC(182b88c4) SHA1(a5b6a3e1fd67f036b1255385e81b6a3eb69f9f3f) ) /* B2 */
 3925  
 3926      ROM_LOAD( "si001-03.u17", 0x0c00000, 0x200000, CRC(92fdf652) SHA1(cf7aeb3a1e8ffe34cf24cb919a0ab3cc90202fa9) ) /* C0 */
 3927      ROM_LOAD( "si001-06.u16", 0x0e00000, 0x200000, CRC(9a62f532) SHA1(7e7ba1224e52b33a9bd14058230efc871178c4f8) ) /* C1 */
 3928      ROM_LOAD( "si001-09.u15", 0x1000000, 0x200000, CRC(0955e393) SHA1(0be9134190706eaee49177034b0536b05c4bc7ac) ) /* C2 */
 3929  
 3930      ROM_FILL(                0x1200000, 0x600000, 0          )
 3931  
 3932  //  The chip seems to use REGION1 too, but produces no sound from there.
 3933  
 3934      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3935      ROM_LOAD16_WORD_SWAP( "si001-10.u9", 0x000000, 0x100000, CRC(5642b333) SHA1(84936af8b3882e116b279e422075f35aabdd232f) ) /* S0 */
 3936      ROM_LOAD16_WORD_SWAP( "si001-11.u8", 0x100000, 0x100000, CRC(a81e6ea6) SHA1(499f070500895ed7b6785b42fb6bbf973fc6dc04) ) /* S1 */
 3937      ROM_LOAD16_WORD_SWAP( "si001-12.u7", 0x200000, 0x100000, CRC(e9b2b45b) SHA1(17fd27cdb8a0b9932cb1e71e0547c0d9d6fc7d06) ) /* S2 */
 3938      ROM_LOAD16_WORD_SWAP( "si001-13.u6", 0x300000, 0x100000, CRC(d66a7e26) SHA1(57b659daef00421b6742963f792bd5e020f625c9) ) /* S3 */
 3939  ROM_END
 3940  
 3941  ROM_START( survartsj )
 3942      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 3943      ROM_LOAD16_BYTE( "jpn-pr-l.u4", 0x000000, 0x080000, CRC(e5a52e8c) SHA1(0a51c16d23d99c3e6a12f8a96c62fe8c72179a22) )
 3944      ROM_LOAD16_BYTE( "jan-pr-h.u3", 0x000001, 0x080000, CRC(051c9bca) SHA1(b8a7c5e4cb12cb0f05b5ba15394bd1fcf0476bf0) )  // jan typo on sticker
 3945  
 3946      ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
 3947      ROM_LOAD( "si001-01.u27", 0x0000000, 0x200000, CRC(8b38fbab) SHA1(c4a67b24b33d4eef7b0f885bd69cae6c67bd3981) ) /* A0 */
 3948      ROM_LOAD( "si001-04.u26", 0x0200000, 0x200000, CRC(34248b54) SHA1(077198f8de1622b71c580e34d5ad1b6bf3229fe9) ) /* A1 */
 3949      ROM_LOAD( "si001-07.u25", 0x0400000, 0x200000, CRC(497d6151) SHA1(a9860c75943c0fd2991660ce2a9505edc6c2fa46) ) /* A2 */
 3950  
 3951      ROM_LOAD( "si001-02.u23", 0x0600000, 0x200000, CRC(cb4a2dbd) SHA1(26cdd1b54a3fa1dc3c3a8945d1a3562e9c62ace6) ) /* B0 */
 3952      ROM_LOAD( "si001-05.u22", 0x0800000, 0x200000, CRC(8f092381) SHA1(6c49f1f5b3c31bd7c6a93ba0450d9f64fd512633) ) /* B1 */
 3953      ROM_LOAD( "si001-08.u21", 0x0a00000, 0x200000, CRC(182b88c4) SHA1(a5b6a3e1fd67f036b1255385e81b6a3eb69f9f3f) ) /* B2 */
 3954  
 3955      ROM_LOAD( "si001-03.u17", 0x0c00000, 0x200000, CRC(92fdf652) SHA1(cf7aeb3a1e8ffe34cf24cb919a0ab3cc90202fa9) ) /* C0 */
 3956      ROM_LOAD( "si001-06.u16", 0x0e00000, 0x200000, CRC(9a62f532) SHA1(7e7ba1224e52b33a9bd14058230efc871178c4f8) ) /* C1 */
 3957      ROM_LOAD( "si001-09.u15", 0x1000000, 0x200000, CRC(0955e393) SHA1(0be9134190706eaee49177034b0536b05c4bc7ac) ) /* C2 */
 3958  
 3959      ROM_FILL(                0x1200000, 0x600000, 0          )
 3960  
 3961  //  The chip seems to use REGION1 too, but produces no sound from there.
 3962  
 3963      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 3964      ROM_LOAD16_WORD_SWAP( "si001-10.u9", 0x000000, 0x100000, CRC(5642b333) SHA1(84936af8b3882e116b279e422075f35aabdd232f) ) /* S0 */
 3965      ROM_LOAD16_WORD_SWAP( "si001-11.u8", 0x100000, 0x100000, CRC(a81e6ea6) SHA1(499f070500895ed7b6785b42fb6bbf973fc6dc04) ) /* S1 */
 3966      ROM_LOAD16_WORD_SWAP( "si001-12.u7", 0x200000, 0x100000, CRC(e9b2b45b) SHA1(17fd27cdb8a0b9932cb1e71e0547c0d9d6fc7d06) ) /* S2 */
 3967      ROM_LOAD16_WORD_SWAP( "si001-13.u6", 0x300000, 0x100000, CRC(d66a7e26) SHA1(57b659daef00421b6742963f792bd5e020f625c9) ) /* S3 */
 3968  ROM_END
 3969  
 3970  /***************************************************************************
 3971  
 3972                          Dynagears
 3973  Sammy, 1993
 3974  
 3975  This game runs on SSV hardware.
 3976  
 3977  Game PCB Layout
 3978  ---------------
 3979  
 3980  SAM-5127
 3981  |----------------------------------------|
 3982  | SI002-10.U6                            |
 3983  |                                        |
 3984  | SI002-09.U7                            |
 3985  |                                        |
 3986  | SI002-08.U8                            |
 3987  |                                        |
 3988  | SI002-07.U9                            |
 3989  |                                        |
 3990  |                                        |
 3991  |                                        |
 3992  |                                        |
 3993  |                                        |
 3994  |                                        |
 3995  |                                        |
 3996  |                                        |
 3997  |                           SI002-05.U22 |
 3998  |                                        |
 3999  |                           SI002-02.U23 |
 4000  |                                        |
 4001  |                                        |
 4002  |SI002-PRH.U3                            |
 4003  |                                        |
 4004  |SI002-PRL.U4                            |
 4005  |                                        |
 4006  |             SI002-06.U16  SI002-04.U26 |
 4007  |PAL                                     |
 4008  |(SI002-14)   SI002-03.U17  SI002-01.U27 |
 4009  |                                        |
 4010  |----------------------------------------|
 4011  
 4012  ***************************************************************************/
 4013  
 4014  ROM_START( dynagear )
 4015      ROM_REGION16_LE( 0x100000, "user1", 0 )     /* V60 Code */
 4016      ROM_LOAD16_BYTE( "si002-prl.u4", 0x000000, 0x080000, CRC(71ba29c6) SHA1(ef43ab665daa4fc9ee01996d03f2f0b4c74c8435) )
 4017      ROM_LOAD16_BYTE( "si002-prh.u3", 0x000001, 0x080000, CRC(d0947a12) SHA1(95b54ed9dc51c952ad123103b8633a821cde05e9) )
 4018  
 4019      ROM_REGION( 0x1000000, "gfx1", 0 )  /* Sprites */
 4020      ROM_LOAD( "si002-01.u27", 0x0000000, 0x200000, CRC(0060a521) SHA1(10cdb967e6cb4fc7c23c1ac40b24e35262060f5c) )
 4021      ROM_LOAD( "si002-04.u26", 0x0200000, 0x200000, CRC(6140f47d) SHA1(49dcebe724990acdac76746886efe88b68ce956f) )
 4022  
 4023      ROM_LOAD( "si002-02.u23", 0x0400000, 0x200000, CRC(c22f2a41) SHA1(969affc8bac9a6024e7e5103384a40a6a2acf653) )
 4024      ROM_LOAD( "si002-05.u22", 0x0600000, 0x200000, CRC(482412fd) SHA1(dfb896631b6999ce8ac6aeef84ff44150d67739a) )
 4025  
 4026      ROM_LOAD( "si002-03.u17", 0x0800000, 0x200000, CRC(4261a6b8) SHA1(df163faa84a86f126d5d405aef316ff9dd3c05eb) )
 4027      ROM_LOAD( "si002-06.u16", 0x0a00000, 0x200000, CRC(0e1f23f6) SHA1(ea35c75776b75131ef9133a16a36d95132dc6776) )
 4028  
 4029      ROM_FILL(                0xc00000, 0x400000, 0          )
 4030  
 4031  //  The chip seems to use REGION1 too, but produces no sound from there.
 4032  
 4033      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 4034      ROM_LOAD16_WORD_SWAP( "si002-07.u9", 0x000000, 0x100000, CRC(30d2bf11) SHA1(263e9a4e6a77aa451daf6d1225071cc1147a6541) )
 4035      ROM_LOAD16_WORD_SWAP( "si002-08.u8", 0x100000, 0x100000, CRC(253704ee) SHA1(887ebca2af497fc59b274838cdf284223cc92c97) )
 4036      ROM_LOAD16_WORD_SWAP( "si002-09.u7", 0x200000, 0x100000, CRC(1ea86db7) SHA1(e887ea5be99f753e73355a45e37dfddb2a1d6cf6) )
 4037      ROM_LOAD16_WORD_SWAP( "si002-10.u6", 0x300000, 0x100000, CRC(e369c177) SHA1(646aad00a8f9eda847e9a51fb0a511bf49eb9fe2) )
 4038  ROM_END
 4039  
 4040  
 4041  /***************************************************************************
 4042  
 4043                          Pachinko Sexy Reaction (Japan)
 4044  
 4045  (c)1998 Sammy, SSV system
 4046  
 4047  P1-112C (ROM board)
 4048  
 4049  Chips:  DX-102 x2
 4050          uPD7001C (ADC?)
 4051          64k NVRAM
 4052  
 4053  ***************************************************************************/
 4054  
 4055  ROM_START( sxyreact )
 4056      ROM_REGION16_LE( 0x200000, "user1", 0 )     /* V60 Code */
 4057      ROM_LOAD16_BYTE( "ac414e00.u2",  0x000000, 0x080000, CRC(d5dd7593) SHA1(ad1c7c2f27e0423ab346172a5c91316c9c0b3620) )
 4058      ROM_LOAD16_BYTE( "ac413e00.u1",  0x000001, 0x080000, CRC(f46aee4a) SHA1(8336304797987321903977373dec027cfca2e211) )
 4059      ROM_LOAD16_BYTE( "ac416e00.u47", 0x100000, 0x080000, CRC(e0f7bba9) SHA1(5eafd72c9fa4588f18fa02113a93abdcaf8d8693) )
 4060      ROM_LOAD16_BYTE( "ac415e00.u46", 0x100001, 0x080000, CRC(92de1b5f) SHA1(69e30ffc0c59e7dafe3f9c76bfee782028dab042) )
 4061  
 4062      ROM_REGION( 0x2800000, "gfx1", 0 )  /* Sprites */
 4063      ROM_LOAD( "ac1401m0.u6",  0x0000000, 0x400000, CRC(0b7b693c) SHA1(1e65c3f55cf3aa63d4229d30b5894c89b83cdf3e) )
 4064      ROM_LOAD( "ac1402m0.u9",  0x0400000, 0x400000, CRC(9d593303) SHA1(c02037fabe8a74f01a25357ffdd3ce01b930008b) )
 4065      ROM_LOAD( "ac1403m0.u12", 0x0800000, 0x200000, CRC(af433eca) SHA1(dfd83eba390171d93bc6888cc1d24a9a38d900bd) )
 4066  
 4067      ROM_LOAD( "ac1404m0.u7",  0x0a00000, 0x400000, CRC(cdda2ccb) SHA1(c22ff59e1cf621e0288537be567e0b42bf8e9bcf) )
 4068      ROM_LOAD( "ac1405m0.u10", 0x0e00000, 0x400000, CRC(e5e7a5df) SHA1(9ab32f2a1ef055825b6cd3f643af1bd62c53f46a) )
 4069      ROM_LOAD( "ac1406m0.u13", 0x1200000, 0x200000, CRC(c7053409) SHA1(468527a24ea592dbd884431ca57d43790cbc2456) )
 4070  
 4071      ROM_LOAD( "ac1407m0.u8",  0x1400000, 0x400000, CRC(28c83d5e) SHA1(abf4f0c1e2caa5cfa5a18fc95c025d73d6a8bc95) )
 4072      ROM_LOAD( "ac1408m0.u11", 0x1800000, 0x400000, CRC(c45bab47) SHA1(d00802005e091088eabeb672a6428417db43cb66) )
 4073      ROM_LOAD( "ac1409m0.u14", 0x1c00000, 0x200000, CRC(be1c66c2) SHA1(6d7b60d3b4286a768eac122c3d163e6e5287adc3) )
 4074  
 4075      ROM_FILL(                 0x1e00000, 0xa00000, 0          )
 4076  
 4077      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 4078      ROM_LOAD16_WORD_SWAP( "ac1410m0.u41", 0x000000, 0x400000, CRC(2a880afc) SHA1(193235bccde28a7d693a1a1f0159260a3a63a7d5) )
 4079  
 4080      ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
 4081      ROM_LOAD16_WORD_SWAP( "ac1411m0.u42", 0x200000, 0x200000, CRC(2ba4ca43) SHA1(9cddf57094e68d3840a37f44fbdf2f43f539ba11) )
 4082      ROM_CONTINUE( 0x000000, 0x200000 )  // this will go in region 3
 4083  
 4084      // a few sparse samples are played from here
 4085      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 4086      ROM_COPY( "ensoniq.1", 0x000000,    0x200000, 0x200000 )
 4087  ROM_END
 4088  
 4089  /***************************************************************************
 4090  
 4091                          Pachinko Sexy Reaction 2 (Japan)
 4092  
 4093  Pachinko Sexy Reaction 2
 4094  Sammy, 1999
 4095  
 4096  SAMMY B1-001A
 4097  |---------------------------------------------------------|
 4098  |                                                         |
 4099  |                                                         |
 4100  |                                                         |
 4101  |                                                         |
 4102  |               U12   AC1702T00.U9                        |
 4103  |                         AC1701T00.U6                    |
 4104  |                                                         |
 4105  |                                                         |
 4106  |                                                         |
 4107  |CN8                  AC1704T00.U10       AC1706T00.U11   |
 4108  |               U13      AC1703T00.U7   U14   AC1705T00.U8|
 4109  |                                                         |
 4110  |                                                         |
 4111  |                                                         |
 4112  |                                                         |
 4113  |         AC1708T00.U42                                   |
 4114  |CN3             AC1707T00.U41                            |
 4115  |                                                  BATT   |
 4116  |                      AC1714E00.U32            U55       |
 4117  |        CN5                   U47  U46  U2 U1  U35       |
 4118  |     D7001C                                8464  GAL16V8 |
 4119  |                                                         |
 4120  |---------------------------------------------------------|
 4121  Notes:
 4122        6264     - Fujitsu MB8464A-10LL-SK 8K x8 SRAM (DIP28)
 4123        D7001C   - NEC D7001C UART (DIP16)
 4124        BATT     - 3.6V NICD Battery
 4125        CN5      - 3 pin connector
 4126        CN3      - 10 pin connector
 4127        CN8      - 9 pin connector
 4128        U12,U13, \
 4129        U14      / Locations for SOP44 surface mounted ROMs, unpopulated
 4130        U47,U46, \
 4131        U2,U1    / Locations for DIP32 ROMs, unpopulated
 4132        U35      - Location for NEC D71051GU, unpopulated
 4133        U55      - Location for MSM62X42B Real Time Clock, unpopulated
 4134        GAL16V8  - Lattice GAL16V8D stamped 'AC1709G00' (DIP20)
 4135        U41,U42, \
 4136        U7,U8,   \
 4137        U10,U11  / OKI M27C3252CZ 32MBit SOP44 surface mounted maskROMs
 4138  
 4139        U32      - ST Microelectronics M27C160 16MBit EPROM (DIP42)
 4140  
 4141  ***************************************************************************/
 4142  
 4143  ROM_START( sxyreac2 )
 4144      ROM_REGION16_LE( 0x200000, "user1", 0 )     /* V60 Code */
 4145      ROM_LOAD16_WORD( "ac1714e00.u32",  0x000000, 0x200000, CRC(78075d70) SHA1(05c84bb32c6f97fceb5436d192c14cac79d9ab07) )
 4146  
 4147      ROM_REGION( 0x2000000, "gfx1", 0 )  /* Sprites */
 4148      ROM_LOAD( "ac1701t00.u6",  0x0000000, 0x400000, CRC(e14611c2) SHA1(0eaf28b27b879b6ce99bea03b286717a2d6f60f4) )
 4149      ROM_LOAD( "ac1702t00.u9",  0x0400000, 0x400000, CRC(2c8b07f8) SHA1(e4128075c207d03206085f58b5aa8ebd28d3c2a9) )
 4150  
 4151      ROM_LOAD( "ac1703t00.u7",  0x0800000, 0x400000, CRC(d6c7e861) SHA1(b4c17829222f5b9430e96183f77fa49ec040061e) )
 4152      ROM_LOAD( "ac1704t00.u10", 0x0c00000, 0x400000, CRC(5fa7ccf0) SHA1(9972e3e689024505739eeaefcc12670918e2cbd8) )
 4153  
 4154      ROM_LOAD( "ac1705t00.u8",  0x1000000, 0x400000, CRC(2dff0652) SHA1(3c68ec3b233f248208ea80e4799a9504318b4e7c) )
 4155      ROM_LOAD( "ac1706t00.u11", 0x1400000, 0x400000, CRC(e7a168e0) SHA1(b4e19cc3a1fd0f18db7476ebe7cbb397c60e01b3) )
 4156  
 4157      ROM_FILL(                 0x1800000, 0x800000, 0         )
 4158  
 4159      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 4160      ROM_LOAD16_WORD_SWAP( "ac1707t00.u41", 0x000000, 0x400000, CRC(28999bc4) SHA1(4cddaa4a155cc03d456e6edb20dd207f7ff3d9c4) )
 4161  
 4162      ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
 4163      ROM_LOAD16_WORD_SWAP( "ac1708t00.u42", 0x200000, 0x200000, CRC(7001eec0) SHA1(cc568ef90ec7201a73e9dc217d72cfbc3860e6b8) )
 4164      ROM_CONTINUE( 0x000000, 0x200000 )
 4165  
 4166      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 4167      ROM_COPY( "ensoniq.1", 0x000000,    0x200000, 0x200000 )
 4168  ROM_END
 4169  
 4170  
 4171  /***************************************************************************
 4172  
 4173                                  Storm Blade
 4174  CPU  : NEC D70615GD-16-S (V60)
 4175  Sound: Ensoniq ES5506 (OTTOR2)
 4176  
 4177  
 4178  Rom board  001B
 4179  SSV mother board
 4180  
 4181  U37, U33 = 27c040
 4182  U22, U41, U35, U25, U21, U11, U7  = 16 MEG MASK ROMS
 4183  U32, U18, U4 = 4 MEG MASK ROMS
 4184  U26 = 8 MEG MASK ROM
 4185  
 4186  There is a battery on the rom board @ BT1 (battery # CR2032 - 3 volts)
 4187  
 4188  ***************************************************************************/
 4189  
 4190  ROM_START( stmblade )
 4191      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 4192      ROM_LOAD16_WORD( "sb-pd0.u26",  0x000000, 0x100000, CRC(91c4fbf7) SHA1(68e57ea2a9756a95a81c6688905352d631e9f2de) )
 4193      ROM_LOAD16_BYTE( "s-blade.u37", 0x200000, 0x080000, CRC(a6a42cc7) SHA1(4bff79ff03b81a7ed96d3ad285242580146976be) )
 4194      ROM_RELOAD(                     0x300000, 0x080000             )
 4195      ROM_LOAD16_BYTE( "s-blade.u33", 0x200001, 0x080000, CRC(16104ca6) SHA1(63835051c358dce33d92974d1de911b98835a3d9) )
 4196      ROM_RELOAD(                     0x300001, 0x080000             )
 4197  
 4198      ROM_REGION( 0x1800000, "gfx1", 0 ) /* Sprites */
 4199      ROM_LOAD( "sb-a0.u41", 0x0000000, 0x200000, CRC(2a327b51) SHA1(fb1e92b7f740a80cb0c977e106d0c4bfee092dad) )
 4200      ROM_LOAD( "sb-a1.u35", 0x0200000, 0x200000, CRC(246f6f28) SHA1(09171f04452fbcf9e3333c135288fd6e5b8244f7) )
 4201      ROM_LOAD( "sb-a2.u32", 0x0400000, 0x080000, CRC(2049acf3) SHA1(3982b4650921da0563336060887767627f8679ab) )
 4202      ROM_LOAD( "sb-b0.u25", 0x0600000, 0x200000, CRC(b3aa3e68) SHA1(990be5925b6c8c0d0e83ca9064425d93853fe206) )
 4203      ROM_LOAD( "sb-b1.u21", 0x0800000, 0x200000, CRC(e95b38e7) SHA1(9256f027e4c496e3bf96ecb65c0f3e69791e2755) )
 4204      ROM_LOAD( "sb-b2.u18", 0x0a00000, 0x080000, CRC(d080e620) SHA1(a262b42214c09fccb8f4878d8566e2acd87dbd23) )
 4205      ROM_LOAD( "sb-c0.u11", 0x0c00000, 0x200000, CRC(825dd8f1) SHA1(39d32f54c97e21f92598442f05fd91ae2403a0d2) )
 4206      ROM_LOAD( "sb-c1.u7",  0x0e00000, 0x200000, CRC(744afcd7) SHA1(db716a1a2ad5864ebdb4865430cb637fb94ed34f) )
 4207      ROM_LOAD( "sb-c2.u4",  0x1000000, 0x080000, CRC(fd1d2a92) SHA1(957a8a52b79e252c7f1a4b6383107ae609dce5ef) )
 4208      ROM_FILL(              0x1200000, 0x600000, 0          )
 4209  
 4210      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 4211      ROM_LOAD16_BYTE( "sb-snd0.u22", 0x000000, 0x200000, CRC(4efd605b) SHA1(9c97be105c923c7db847d9b9aea37025edb685a0) )
 4212  
 4213      ROM_REGION( 0x11000, "st010", 0)
 4214      ROM_LOAD( "st010.bin",    0x000000, 0x011000, CRC(aa11ee2d) SHA1(cc1984e989cb94e3dcbb5f99e085b5414e18a017) )
 4215      ROM_REGION( 0x10000, "dspprg", ROMREGION_ERASEFF)
 4216      ROM_REGION( 0x1000, "dspdata", ROMREGION_ERASEFF)
 4217  ROM_END
 4218  
 4219  
 4220  /***************************************************************************
 4221  
 4222                                  Twin Eagle II
 4223  SETA, 1994
 4224  
 4225  STS0003 TWIN EAGLE
 4226  |-------------------------------------|
 4227  |                                     |
 4228  |                                     |
 4229  |                 SX002-09.u2         |
 4230  |                                     |
 4231  |                 SX002-08.u3         |
 4232  |                                     |
 4233  | SX002-11.u7     SX002-07.u6         |
 4234  |                                     |
 4235  |                                     |
 4236  | SX002-10.u14    SX002-06.u13        |
 4237  |                                     |
 4238  |                 SX002-05.u16        |
 4239  |                                     |
 4240  | SX002-12.u22    SX002-04.u19        |
 4241  |                                     |
 4242  | SX002-13                            |
 4243  |                 SX002-03.u22        |
 4244  |                                     |
 4245  |                 SX002-02.u28        |
 4246  |                                     |
 4247  |                 SX002-01.u32        |
 4248  | SETA ST010                          |
 4249  |-------------------------------------|
 4250  
 4251    SX002-13: GAL16V8B (undumped)
 4252  SETA ST010: Custom programmed uPD96050 MCU used for math caculations
 4253  All roms are 16M Mask roms
 4254  
 4255  ***************************************************************************/
 4256  
 4257  ROM_START( twineag2 )
 4258      ROM_REGION16_LE( 0x200000, "user1", 0 )     /* V60 Code */
 4259      ROM_LOAD16_WORD( "sx002-12.u22", 0x000000, 0x200000, CRC(846044dc) SHA1(c1c85de1c466fb7c3580824baa1571cd0fed6ec6) )
 4260  
 4261      ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
 4262      ROM_LOAD( "sx002-01.u32", 0x0000000, 0x200000, CRC(6d6896b5) SHA1(e8efd29b9f951bff6664e47cb5fd67f1d8f40608) ) /* A0 */
 4263      ROM_LOAD( "sx002-02.u28", 0x0200000, 0x200000, CRC(3f47e97a) SHA1(5b0fdc762cf704c8bd92c4a4a42dba4a127b3d49) ) /* A1 */
 4264      ROM_LOAD( "sx002-03.u25", 0x0400000, 0x200000, CRC(544f18bf) SHA1(539e6df1ded4e9ac8974c697215cc1e5c5a40cda) ) /* A2, A3 is unpopulated */
 4265  
 4266      ROM_LOAD( "sx002-04.u19", 0x0600000, 0x200000, CRC(58c270e2) SHA1(7629ba978b18252f375bdc16ed62388d64a35ca1) ) /* B0 */
 4267      ROM_LOAD( "sx002-05.u16", 0x0800000, 0x200000, CRC(3c310229) SHA1(9a8b81d5f17ce3078627a697aaf07f1b3ba6e08c) ) /* B1 */
 4268      ROM_LOAD( "sx002-06.u13", 0x0a00000, 0x200000, CRC(46d5b1f3) SHA1(3ec03eddb159eb391ccdce5a0a867a54b3350150) ) /* B2, B3 is unpopulated */
 4269  
 4270      ROM_LOAD( "sx002-07.u6",  0x0c00000, 0x200000, CRC(c30fa397) SHA1(d4575868c1b63f9e94bf24539a3fd8a85df93d0b) ) /* C0 */
 4271      ROM_LOAD( "sx002-08.u3",  0x0e00000, 0x200000, CRC(64edcefa) SHA1(55a71afe87da93e35c5ba291e970bdcd91b52a7a) ) /* C1 */
 4272      ROM_LOAD( "sx002-09.u2",  0x1000000, 0x200000, CRC(51527c56) SHA1(378155a585e5b847bd8ae1f17cb651138d844e33) ) /* C2, C3 is unpopulated */
 4273  
 4274      ROM_FILL(             0x1200000, 0x600000, 0          )
 4275  
 4276      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */
 4277      ROM_LOAD16_BYTE( "sx002-10.u14", 0x000000, 0x200000, CRC(b0669dfa) SHA1(ff805f59864ac4ccee3e249c06804d844d3df59c) )
 4278  
 4279      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */
 4280      ROM_LOAD16_BYTE( "sx002-11.u7",  0x000000, 0x200000, CRC(b8dd621a) SHA1(f9b43e018f2bb121e4f4e9554419cd32b870556b) )
 4281  
 4282      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 4283      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 4284  
 4285      ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
 4286      ROM_COPY( "ensoniq.1", 0x000000, 0x000000, 0x400000 )
 4287  
 4288      ROM_REGION( 0x11000, "st010", 0)
 4289      ROM_LOAD( "st010.bin",    0x000000, 0x011000, CRC(aa11ee2d) SHA1(cc1984e989cb94e3dcbb5f99e085b5414e18a017) )
 4290      ROM_REGION( 0x10000, "dspprg", ROMREGION_ERASEFF)
 4291      ROM_REGION( 0x1000, "dspdata", ROMREGION_ERASEFF)
 4292  ROM_END
 4293  
 4294  
 4295  /***************************************************************************
 4296  
 4297                  Ultra Keibitai / Ultra X Weapon
 4298  
 4299  (c)1995 Banpresto (developed by Seta)
 4300  Hardware is almost identical to SSV system
 4301  
 4302  ****************************************************************************/
 4303  
 4304  ROM_START( ultrax )
 4305      ROM_REGION16_LE( 0x200000, "user1", 0 )  /* V60 Code */
 4306      ROM_LOAD16_BYTE( "71047-11.u64", 0x000000, 0x080000, CRC(593b2678) SHA1(3b24b59a21386a4688502c5f0a2dd4eb0ec92544) )
 4307      ROM_LOAD16_BYTE( "71047-09.u65", 0x000001, 0x080000, CRC(08ea8d91) SHA1(5d2672f6c96fbbe9d80bd6539c1400b62745892a) )
 4308      ROM_LOAD16_BYTE( "71047-12.u62", 0x100000, 0x080000, CRC(76a77ab2) SHA1(0cf2f293defc23c807556ff92ea99f963fafed40) )
 4309      ROM_LOAD16_BYTE( "71047-10.u63", 0x100001, 0x080000, CRC(7c79faf9) SHA1(40c1420eeae355efa628bbcfd69e0dd18d343fd9) )
 4310  
 4311      ROM_REGION( 0xc00000, "gfx1", 0 ) /* Sprites */
 4312      ROM_LOAD( "71047-01.u73", 0x0000000, 0x200000, CRC(66662b08) SHA1(0cb683e5f85ffe21bd3367af4d3e48a484dbd4c3) )
 4313      ROM_LOAD( "71047-02.u74", 0x0200000, 0x100000, CRC(6b00dc0c) SHA1(6af8ceed72d13f9979175c0d907a4a8c127ca1ad) )
 4314      ROM_LOAD( "71047-03.u76", 0x0300000, 0x200000, CRC(00fcd6c2) SHA1(61d13cbafbc0fd6ff62cd08aa88591ed0fd0b182) )
 4315      ROM_LOAD( "71047-04.u77", 0x0500000, 0x100000, CRC(d9e710d1) SHA1(063459a247f9ff81cb558802e9943b3ea8a2ea3a) )
 4316      ROM_LOAD( "71047-05.u75", 0x0600000, 0x200000, CRC(10848193) SHA1(40b7ebb6011dc703bbf620cd22cd678c10ec67a4) )
 4317      ROM_LOAD( "71047-06.u88", 0x0800000, 0x100000, CRC(b8ac2942) SHA1(3e85e8f5669d469dd3114455248546d32a642315) )
 4318      ROM_FILL(                 0x0900000, 0x300000, 0 )
 4319  
 4320      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */
 4321      ROM_LOAD16_BYTE( "71047-07.u59", 0x000000, 0x200000, CRC(d9828b62) SHA1(f66a388d7a00b3a45d386671c061f5b840453451) )
 4322  
 4323      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */
 4324      ROM_LOAD16_BYTE( "71047-08.u60", 0x000000, 0x200000, CRC(30ebff6d) SHA1(53824c1fc37e22b545fd68b59722f7968f0ca1e2) )
 4325  
 4326      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 4327      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 4328  
 4329      ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
 4330      ROM_COPY( "ensoniq.1", 0x000000, 0x000000, 0x400000 )
 4331  ROM_END
 4332  
 4333  
 4334  /***************************************************************************
 4335  
 4336                              Vasara / Vasara 2
 4337  
 4338  Visco Games, 2000 / 2001
 4339  (info from the vasara 2 board but vasara should be the same)
 4340  
 4341  This is a sub board that fits any standard SSV main board.
 4342  
 4343  There's very little on the ROM board. Just 2x 27C040 EPROMs,
 4344  4x 64Mbit SOP44 MASK ROMs, 3x 16Mbit SOP44 MASK ROMs,
 4345  some logic and 2 PALs near the PROG & DATA ROMs.
 4346  
 4347  The actual ROM PCB has the capability to accept SOP44 and
 4348  TSOP48 type 1 SMT ROMs though many of the positions are unpopulated.
 4349  It's likely this same ROM board could be used for other Visco games.
 4350  
 4351  ROM PCB (PCB Number: SSV_SUB)
 4352  
 4353  SSV-SUB
 4354  |-------------------------------------------|
 4355  |                                           |
 4356  |            logic chips (x14)              |
 4357  |                                           |
 4358  |                                           |
 4359  |                                           |
 4360  |  U4   U8   U3   U7   U2   U6   U1   U5    |
 4361  |                                           |
 4362  |                                           |
 4363  |                                           |
 4364  |                                           |
 4365  |   U12    U11   logic (x3)   U10     U9    |
 4366  |                                           |
 4367  |                                           |
 4368  |                                           |
 4369  |                                           |
 4370  |                                           |
 4371  |                                           |
 4372  |             U38             U34           |
 4373  | U37  U36         U30  U31        PAL PAL  |
 4374  |             U39             U35           |
 4375  |                                           |
 4376  |                                           |
 4377  |-------------------------------------------|
 4378  Notes:
 4379  LOC      Vasara                  Vasara 2           Device
 4380  ----------------------------------------------------------------------
 4381  U4       VASARA-1-D0             VASARA-2-D0        64M SOP44 MaskROM
 4382  U3       VASARA-1-C0             VASARA-2-C0        64M SOP44 MaskROM
 4383  U2       VASARA-1-B0             VASARA-2-B0        64M SOP44 MaskROM
 4384  U1       VASARA-1-A0             VASARA-2-A0        64M SOP44 MaskROM
 4385  U37      VASARA-1 SND1           VASARA-1 SND1      Macronix MX29F1610 SOP44 MaskROM
 4386  U36      VASARA-1 SND0           VASARA-1 SND0      Macronix MX29F1610 SOP44 MaskROM
 4387  U30      PRG-L U30               PRG-L U30          TMS 27C040 EPROM
 4388  U31      PRG-H U31               PRG-H U31          TMS 27C040 EPROM
 4389  U34      VASARA-1 DAT            VASARA-1 DAT       Macronix MX29F1610 MaskROM
 4390  
 4391  Locations U5, U6, U7 &U8 wired for Macronix MX29F1610 SOP44 but not populated.
 4392  Locations U9, U10, U11, U12, U35, U38 & U39 wired for Macronix MX29F1610 TSOP48 but not populated.
 4393  
 4394  
 4395  File Name     Labeled as        Loc. Printed*      ROM Type
 4396  -----------------------------------------------------------------------
 4397  prg-h.u31     PRG-H U31         U31  PRG H       | 27C040
 4398  prg-l.u30     PRG-L U20         U30  PRG L      /
 4399  s1.u37        C DAT VASARA-1    U37  S1         \
 4400  s0.u36        B DAT VASARA-1    U36  S0          | Surface Mounted 16Mbit SOP44 MASK ROMs
 4401  data.u34      A SND 1 VASARA-1  U34  DATA ROM   /
 4402  d0.u4         VASARA-2-D0       U4   D0.D1      \
 4403  c0.u3         VASARA-2-C0       U3   C0.C1       | Surface Mounted 64Mbit SOP44 MASK ROMs
 4404  b0.u2         VASARA-2-B0       U2   B0.B1       |
 4405  a0.u1         VASARA-2-A0       U1   A0.A1      /
 4406  
 4407  2x GAL16V8D
 4408  
 4409  Printed = Info silk-screened/printed on the actual PCB
 4410  
 4411  Vasara 2 has a secret character code like the Raizing games:
 4412  
 4413      Insert Coin, UP UP UP DOWN DOWN DOWN UP UP UP UP UP UP UP  (Up x3, Down x3, Up x7)
 4414  
 4415      Using this code will add a fifth selectable character called Saiga Magoichi
 4416      To enable this character full time, set dip 8 of switch 2
 4417  
 4418  ****************************************************************************/
 4419  
 4420  ROM_START( vasara )
 4421      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 4422      ROM_LOAD16_WORD( "data.u34",  0x000000, 0x200000, CRC(7704cc7e) SHA1(62bb018b7f0c7ee67fee37de17bb22a73bb9e420) )
 4423      ROM_LOAD16_BYTE( "prg-l.u30", 0x200000, 0x080000, CRC(f0547886) SHA1(6a3717f8b89575d3cb4c7d56dd9df5052faa3c7f) )
 4424      ROM_RELOAD(                   0x300000, 0x080000             )
 4425      ROM_LOAD16_BYTE( "prg-h.u31", 0x200001, 0x080000, CRC(6a39bba9) SHA1(05ede167150307d7bf59037f264b1d140f6646da) )
 4426      ROM_RELOAD(                   0x300001, 0x080000             )
 4427  
 4428      ROM_REGION( 0x2000000, "gfx1", 0 ) /* Sprites */
 4429      ROM_LOAD( "a0.u1", 0x0000000, 0x800000, CRC(673230a6) SHA1(a9d1a108c0737b709854bae199499577f5ae359e) )
 4430      ROM_LOAD( "b0.u2", 0x0800000, 0x800000, CRC(31a2da7f) SHA1(5efec60affb2ed2b73a6694ac794d41375220609) )
 4431      ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(d110dacf) SHA1(6f33bf6ce8c06f0b823b5478a56dc95095385181) )
 4432      ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(82d0ca55) SHA1(5ac07df713504329fbc8e8b5374c04e53745230e) )
 4433  
 4434      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 4435      ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(754fca02) SHA1(5b2810a36183e0d4f42f0fb4a09be033ad0db40d) )
 4436  
 4437      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 )   /* Samples */
 4438      ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(5f303698) SHA1(bd6495f912aa9d761d245ef0a1566d9d7bdbb2ad) )
 4439  ROM_END
 4440  
 4441  ROM_START( vasara2 )
 4442      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 4443      ROM_LOAD16_WORD( "data.u34",  0x000000, 0x200000, CRC(493d0103) SHA1(fda68fb089328cabb3bbd52f8703b445a9509bf1) )
 4444      ROM_LOAD16_BYTE( "prg-l.u30", 0x200000, 0x080000, CRC(40e6f5f6) SHA1(05fee4535ffe8403e86ba92a58e5f2d040489c8e) )
 4445      ROM_RELOAD(                   0x300000, 0x080000             )
 4446      ROM_LOAD16_BYTE( "prg-h.u31", 0x200001, 0x080000, CRC(c958e146) SHA1(568878526cef76ac0ce4feeaa46e7039291e5f77) )
 4447      ROM_RELOAD(                   0x300001, 0x080000             )
 4448  
 4449      ROM_REGION( 0x2000000, "gfx1", 0 ) /* Sprites */
 4450      ROM_LOAD( "a0.u1", 0x0000000, 0x800000, CRC(a6306c75) SHA1(bad715e53426a295d3571c025e0539d5f81ce5ab) )
 4451      ROM_LOAD( "b0.u2", 0x0800000, 0x800000, CRC(227cbd9f) SHA1(a02787943b659508ce1589cdc7a372cc02826a10) )
 4452      ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(54ede017) SHA1(4a7ff7ff8ec5843837016f35a588983b5ace06ff) )
 4453      ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(4be8479d) SHA1(cbb5943dfae86f4d571459263199a63399dedc20) )
 4454  
 4455      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 4456      ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(2b381b33) SHA1(b9dd13651e4b8d0b9e3bc4c592022f31ea634d19) )
 4457  
 4458      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 )   /* Samples */
 4459      ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(11cd7098) SHA1(f75288b5c89df039dfb41d66bd275cda8605e75a) )
 4460  ROM_END
 4461  
 4462  ROM_START( vasara2a )
 4463      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 4464      ROM_LOAD16_WORD( "data.u34",     0x000000, 0x200000, CRC(493d0103) SHA1(fda68fb089328cabb3bbd52f8703b445a9509bf1) )
 4465      ROM_LOAD16_BYTE( "basara-l.u30", 0x200000, 0x080000, CRC(fd88b068) SHA1(a86e3ffc870e6f6f7f18273428b24d938d6b9c3d) )
 4466      ROM_RELOAD(                      0x300000, 0x080000             )
 4467      ROM_LOAD16_BYTE( "basara-h.u31", 0x200001, 0x080000, CRC(91d641e6) SHA1(4987d1771a90c9f1ce45c2dd2de5b2922d5d19c5) )
 4468      ROM_RELOAD(                      0x300001, 0x080000             )
 4469  
 4470      ROM_REGION( 0x2000000, "gfx1", 0 ) /* Sprites */
 4471      ROM_LOAD( "a0.u1", 0x0000000, 0x800000, CRC(a6306c75) SHA1(bad715e53426a295d3571c025e0539d5f81ce5ab) )
 4472      ROM_LOAD( "b0.u2", 0x0800000, 0x800000, CRC(227cbd9f) SHA1(a02787943b659508ce1589cdc7a372cc02826a10) )
 4473      ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(54ede017) SHA1(4a7ff7ff8ec5843837016f35a588983b5ace06ff) )
 4474      ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(4be8479d) SHA1(cbb5943dfae86f4d571459263199a63399dedc20) )
 4475  
 4476      ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 )   /* Samples */
 4477      ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(2b381b33) SHA1(b9dd13651e4b8d0b9e3bc4c592022f31ea634d19) )
 4478  
 4479      ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 )   /* Samples */
 4480      ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(11cd7098) SHA1(f75288b5c89df039dfb41d66bd275cda8605e75a) )
 4481  ROM_END
 4482  
 4483  /***************************************************************************
 4484  
 4485  Mobile Suit Gundam Final Shooting
 4486  Banpresto, 1995
 4487  
 4488  Uses main board STA-0001B SYSTEM SSV
 4489  
 4490  Game Board Layout
 4491  -----------------
 4492  
 4493  VISCO (no other PCB numbers)
 4494  |---------------------------------------------------------|
 4495  |                 GAL16V8(2)                              |
 4496  |   VG004-01.U33            VG004-07.U39                  |
 4497  |      VG004-02.U34           VG004-08.U40                |
 4498  |        VG004-03.U35           VG004-10.U45      TC514400|
 4499  |          VG004-04.U36           VG004-09.U43            |
 4500  |            VG004-05.U37           VG004-11.U48  TC514400|
 4501  |D1            VG004-06.U38                               |
 4502  |                                       100MHz    TC514400|
 4503  |                                                         |
 4504  |                                |--------------| TC514400|
 4505  |      TC551001                  |              |         |
 4506  |P           |-------| GAL20V8   |              | TC514400|
 4507  | S2914      | SETA  | GAL20V8   |     SETA     |         |
 4508  |            |ST-0009| GAL20V8   |              | TC514400|
 4509  |            |       |           |   ST-0020    |         |
 4510  |            |-------|           |              | TC514400|
 4511  |      TC551001                  |              |         |
 4512  |           SSVV7.U16            |--------------| TC514400|
 4513  |               VG004-12.U4                               |
 4514  |C1                 VG004-13.U5  TC514260      VG004-14.U3|
 4515  | ADC0809             TC55257    GAL16V8(1) SSV2SET0.U1   |
 4516  |                     TC55257           SSVSET1.U2        |
 4517  |---------------------------------------------------------|
 4518  Notes:
 4519        D1         - 4 pin connector for power
 4520        P          - 10 pin connector
 4521        C1         - 10 pin connector for analog controls
 4522        ADC0809    - National Semiconductor ADC0809 8-Bit Microprocessor Compatible A/D Converter with 8-Channel Multiplexer (DIP28)
 4523        S2914      - Seiko S2914 EEPROM (DIP8)
 4524        TC551001   - Toshiba TC551001BFL-70L 128K x8 SRAM (SOP32)
 4525        TC55257    - Toshiba TC55257N-70L 32K x8 SRAM (SOP28)
 4526        TC514260   - Toshiba TC514260BJ-70 256K x16 DRAM (SOJ40)
 4527        GAL16V8(1) - Lattice GAL16V8B stamped 'VG004-18' (DIP20)
 4528        GAL16V8(2) - Lattice GAL16V8B stamped 'VG004-19' (DIP20)
 4529        GAL20V8    - Lattice GAL20V8B all 3 stamped 'VG004-20' and have identical contents (DIP24)
 4530        U16,U2,U1  - 4M MaskROM (DIP32)
 4531        All other ROMs are 8M/16M MaskROM (DIP42)
 4532        Custom Seta ICs -
 4533                         ST-0009 (QFP176)
 4534                         ST-0020 (QFP304, heatsinked)
 4535  
 4536  ****************************************************************************/
 4537  
 4538  ROM_START( gdfs )
 4539      ROM_REGION16_LE( 0x400000, "user1", 0 )     /* V60 Code */
 4540      ROM_LOAD16_WORD( "vg004-14.u3",   0x000000, 0x100000, CRC(d88254df) SHA1(ccdfd42e4ce3941018f83e300da8bf7a5950f65c) )
 4541      ROM_RELOAD(0x100000,0x100000)
 4542      ROM_LOAD16_BYTE( "ssv2set0.u1",   0x200000, 0x080000, CRC(c23b9e2c) SHA1(9026e065252981fb403255ddc5782359c0088e8a) )
 4543      ROM_RELOAD(0x300000,0x80000)
 4544      ROM_LOAD16_BYTE( "ssv2set1.u2",   0x200001, 0x080000, CRC(d7d52570) SHA1(12e7531519a0a4331e409991265908fb518286ef) )
 4545      ROM_RELOAD(0x300001,0x80000)
 4546  
 4547      ROM_REGION( 0x800000, "gfx1", 0 )
 4548      ROM_LOAD( "vg004-09.u43", 0x000000, 0x200000, CRC(b7382cfa) SHA1(df735470181c16f8aac0e3be76e1ed53a32dbb9c) )
 4549      ROM_LOAD( "vg004-10.u45", 0x200000, 0x200000, CRC(b3c6b1cb) SHA1(c601213e35d8dfd1244921da5c093f82145706d2) )
 4550      ROM_LOAD( "vg004-11.u48", 0x400000, 0x200000, CRC(1491def1) SHA1(344043302c81b4118cac4f692375b8af7ea68570) )
 4551  
 4552      ROM_REGION( 0x1000000, "st0020", /*0*/0 )   // Zooming Sprites, read by a blitter
 4553      ROM_LOAD( "vg004-01.u33", 0x0000000, 0x200000, CRC(aa9a81c2) SHA1(a7d005f9be199e317aa4c6aed8a2ab322fe82119) )
 4554      ROM_LOAD( "vg004-02.u34", 0x0200000, 0x200000, CRC(fa40ecb4) SHA1(0513f3b6879dc7d207646d949d6ddb7251f77bcc) )
 4555      ROM_LOAD( "vg004-03.u35", 0x0400000, 0x200000, CRC(90004023) SHA1(041edb77b34e6677ac5b85ce542d87a9bb1baf31) )
 4556      ROM_LOAD( "vg004-04.u36", 0x0600000, 0x200000, CRC(fdafd289) SHA1(3ff1969a176d13bfa68a48c9ed582f5789b1047f) )
 4557      ROM_LOAD( "vg004-06.u38", 0x0a00000, 0x200000, CRC(3402325f) SHA1(7ea169c1f8b01a37bd7dbb4d486d38bdac62be5b) )
 4558      ROM_LOAD( "vg004-05.u37", 0x0800000, 0x200000, CRC(9ae488b0) SHA1(7823cc689c588f3dbcafe9bdc94c094d6e9cd605) )
 4559      ROM_LOAD( "vg004-07.u39", 0x0c00000, 0x200000, CRC(5e89fcf9) SHA1(db727ec8117e84c98037c756715e28fd5e39972a) )
 4560      ROM_LOAD( "vg004-08.u40", 0x0e00000, 0x200000, CRC(6b1746dc) SHA1(35e5ee02975474985a4a611dcc439fc3050b7f94) )
 4561  
 4562      ROM_REGION( 0x80000, "gfx3", 0 )    // Tilemap
 4563      ROM_LOAD( "ssvv7.u16",    0x0000000, 0x080000, CRC(f1c3ab6f) SHA1(b7f54f7ae60650fee7570aa4dd4266c629149673) )
 4564  
 4565      ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
 4566      ROM_LOAD16_BYTE( "vg004-12.u4", 0x000000, 0x200000, CRC(eb41a4ef) SHA1(f4d0844a3c00cf90faa59ae982744b7f0bcbe218) )
 4567      ROM_LOAD16_BYTE( "vg004-13.u5", 0x000001, 0x200000, CRC(a4ed3977) SHA1(5843d56f69789e70ce0201a693ffae322b628459) )
 4568  
 4569      ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
 4570      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 4571  
 4572      ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
 4573      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 4574  
 4575      ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
 4576      ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
 4577  ROM_END
 4578  
 4579  /***************************************************************************
 4580  
 4581  
 4582                                  Game Drivers
 4583  
 4584  
 4585  ***************************************************************************/
 4586  
 4587  //     year   rom       clone     machine   inputs    init      monitor manufacturer          title                                               flags
 4588  
 4589  GAME( 1993,  dynagear, 0,        dynagear, dynagear, ssv_state, dynagear, ROT0,   "Sammy",              "Dyna Gear",                                        GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
 4590  GAME( 1993,  keithlcy, 0,        keithlcy, keithlcy, ssv_state, keithlcy, ROT0,   "Visco",              "Dramatic Adventure Quiz Keith & Lucy (Japan)",     GAME_NO_COCKTAIL )
 4591  GAME( 1993,  srmp4,    0,        srmp4,    srmp4, ssv_state,    srmp4,    ROT0,   "Seta",               "Super Real Mahjong PIV (Japan)",                   GAME_NO_COCKTAIL )
 4592  GAME( 1993,  srmp4o,   srmp4,    srmp4,    srmp4, ssv_state,    srmp4,    ROT0,   "Seta",               "Super Real Mahjong PIV (Japan, older set)",        GAME_NO_COCKTAIL ) // by the numbering of the program roms this should be older
 4593  GAME( 1993,  survarts, 0,        survarts, survarts, ssv_state, survarts, ROT0,   "Sammy",              "Survival Arts (World)",                            GAME_NO_COCKTAIL )
 4594  GAME( 1993,  survartsu,survarts, survarts, survarts, ssv_state, survarts, ROT0,   "American Sammy",     "Survival Arts (USA)",                              GAME_NO_COCKTAIL )
 4595  GAME( 1993,  survartsj,survarts, survarts, survarts, ssv_state, survarts, ROT0,   "Sammy",              "Survival Arts (Japan)",                            GAME_NO_COCKTAIL )
 4596  GAME( 1994,  drifto94, 0,        drifto94, drifto94, ssv_state, drifto94, ROT0,   "Visco",              "Drift Out '94 - The Hard Order (Japan)",           GAME_NO_COCKTAIL )
 4597  GAME( 1994,  eaglshot, 0,        eaglshot, eaglshot, ssv_state, eaglshot, ROT0,   "Sammy",              "Eagle Shot Golf",                                  GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
 4598  GAME( 1995,  hypreact, 0,        hypreact, hypreact, ssv_state, hypreact, ROT0,   "Sammy",              "Mahjong Hyper Reaction (Japan)",                   GAME_NO_COCKTAIL )
 4599  GAME( 1994,  twineag2, 0,        twineag2, twineag2, ssv_state, twineag2, ROT270, "Seta",               "Twin Eagle II - The Rescue Mission",               GAME_NO_COCKTAIL )
 4600  GAME( 1995,  gdfs,     0,        gdfs,     gdfs, ssv_state,     gdfs,     ROT0,   "Banpresto",          "Mobil Suit Gundam Final Shooting (Japan)",         GAME_NO_COCKTAIL )
 4601  GAME( 1995,  ultrax,   0,        ultrax,   ultrax, ssv_state,   ultrax,   ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai",  GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
 4602  GAME( 1996,  janjans1, 0,        janjans1, janjans1, ssv_state, janjans1, ROT0,   "Visco",              "Lovely Pop Mahjong JangJang Shimasho (Japan)",     GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
 4603  GAME( 1996?, meosism,  0,        meosism,  meosism, ssv_state,  meosism,  ROT0,   "Sammy",              "Meosis Magic (Japan)",                             GAME_NO_COCKTAIL )
 4604  GAME( 1996,  stmblade, 0,        stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco",              "Storm Blade (US)",                                 GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
 4605  GAME( 1997,  hypreac2, 0,        hypreac2, hypreac2, ssv_state, hypreac2, ROT0,   "Sammy",              "Mahjong Hyper Reaction 2 (Japan)",                 GAME_NO_COCKTAIL )
 4606  GAME( 1997,  jsk,      0,        jsk,      jsk, ssv_state,      jsk,      ROT0,   "Visco",              "Joryuu Syougi Kyoushitsu (Japan)",                 GAME_NO_COCKTAIL )
 4607  GAME( 1997,  koikois2, 0,        janjans1, koikois2, ssv_state, janjans1, ROT0,   "Visco",              "Koi Koi Shimasho 2 - Super Real Hanafuda (Japan)", GAME_NO_COCKTAIL )
 4608  GAME( 1997,  mslider,  0,        mslider,  mslider, ssv_state,  mslider,  ROT0,   "Visco / Datt Japan", "Monster Slider (Japan)",                           GAME_NO_COCKTAIL )
 4609  GAME( 1997,  srmp7,    0,        srmp7,    srmp7, ssv_state,    srmp7,    ROT0,   "Seta",               "Super Real Mahjong P7 (Japan)",                    GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
 4610  GAME( 1998,  ryorioh,  0,        ryorioh,  ryorioh, ssv_state,  ryorioh,  ROT0,   "Visco",              "Gourmet Battle Quiz Ryohrioh CooKing (Japan)",     GAME_NO_COCKTAIL )
 4611  GAME( 1998,  sxyreact, 0,        sxyreact, sxyreact, ssv_state, sxyreact, ROT0,   "Sammy",              "Pachinko Sexy Reaction (Japan)",                   GAME_NO_COCKTAIL )
 4612  GAME( 1999,  sxyreac2, 0,        sxyreac2, sxyreact, ssv_state, sxyreac2, ROT0,   "Sammy",              "Pachinko Sexy Reaction 2 (Japan)",                 GAME_NO_COCKTAIL )
 4613  GAME( 1999,  cairblad, 0,        cairblad, cairblad, ssv_state, cairblad, ROT270, "Sammy",              "Change Air Blade (Japan)",                         GAME_NO_COCKTAIL )
 4614  GAME( 2000,  janjans2, 0,        janjans1, janjans2, ssv_state, janjans1, ROT0,   "Visco",              "Lovely Pop Mahjong JangJang Shimasho 2 (Japan)",   GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
 4615  GAME( 2000,  vasara,   0,        vasara,   vasara, ssv_state,   vasara,   ROT270, "Visco",              "Vasara",                                           GAME_NO_COCKTAIL )
 4616  GAME( 2001,  vasara2,  0,        vasara,   vasara2, ssv_state,  vasara,   ROT270, "Visco",              "Vasara 2 (set 1)",                                 GAME_NO_COCKTAIL )
 4617  GAME( 2001,  vasara2a, vasara2,  vasara,   vasara2, ssv_state,  vasara,   ROT270, "Visco",              "Vasara 2 (set 2)",                                 GAME_NO_COCKTAIL )