Previous 199869 Revisions Next

r20220 Saturday 12th January, 2013 at 18:48:28 UTC by Luca Elia
subsino.c: hopper emulation in stisub, smoto and clones [Luca Elia]

New clones added
----------------
Tesorone Dell'Isola (Italy, two sets) [any, The Dumping Union]
[src/mame]mame.lst
[src/mame/drivers]subsino.c

trunk/src/mame/drivers/subsino.c
r20219r20220
1717  SOUND:  M6295, YM2413 or YM3812
1818  OTHER:  Battery
1919
20To Do:
2021
22- Remove ROM patches from smoto, stisub and tesorone, emulate the protection instead.
23- Hopper emulation currently hooked up in stisub, tesorone and smoto. Add to others.
24
2125****************************************************************************
2226
2327  Game Notes:
r20219r20220
214218#include "cpu/z180/z180.h"
215219#include "machine/i8255.h"
216220#include "machine/subsino.h"
221#include "machine/ticket.h"
217222#include "sound/okim6295.h"
218223#include "sound/2413intf.h"
219224#include "sound/3812intf.h"
r20219r20220
227232#include "tisub.lh"
228233#include "stisub.lh"
229234
230
231235class subsino_state : public driver_device
232236{
233237public:
r20219r20220
240244      m_reel1_scroll(*this, "reel1_scroll"),
241245      m_reel1_ram(*this, "reel1_ram"),
242246      m_reel2_ram(*this, "reel2_ram"),
243      m_reel3_ram(*this, "reel3_ram"){ }
247      m_reel3_ram(*this, "reel3_ram"),
248      m_stisub_out_c(*this, "stisub_out_c")
249   {
250   }
244251
245252   required_shared_ptr<UINT8> m_colorram;
246253   required_shared_ptr<UINT8> m_videoram;
r20219r20220
250257   optional_shared_ptr<UINT8> m_reel1_ram;
251258   optional_shared_ptr<UINT8> m_reel2_ram;
252259   optional_shared_ptr<UINT8> m_reel3_ram;
260   optional_shared_ptr<UINT8> m_stisub_out_c;
253261
254262   tilemap_t *m_tmap;
255263   tilemap_t *m_reel1_tilemap;
r20219r20220
257265   tilemap_t *m_reel3_tilemap;
258266   int m_tiles_offset;
259267   UINT8 m_out_c;
260   UINT8* m_reel1_attr;
261   UINT8* m_reel2_attr;
262   UINT8* m_reel3_attr;
268   UINT8 *m_reel1_attr;
269   UINT8 *m_reel2_attr;
270   UINT8 *m_reel3_attr;
263271   UINT8 m_flash_val;
264272   UINT8 m_flash_packet;
265273   UINT8 m_flash_packet_start;
266274   int m_colordac_offs;
267   UINT8* m_stisub_colorram;
268   UINT8 m_stisub_outc;
275   UINT8 *m_stisub_colorram;
276
277   ticket_dispenser_device *m_hopper;
278
269279   DECLARE_WRITE8_MEMBER(subsino_tiles_offset_w);
270280   DECLARE_WRITE8_MEMBER(subsino_videoram_w);
271281   DECLARE_WRITE8_MEMBER(subsino_colorram_w);
r20219r20220
279289   DECLARE_READ8_MEMBER(hwcheck_r);
280290   DECLARE_WRITE8_MEMBER(subsino_out_c_w);
281291   DECLARE_WRITE8_MEMBER(colordac_w);
282   DECLARE_WRITE8_MEMBER(stisub_out_c_w);
283292   DECLARE_WRITE8_MEMBER(reel_scrollattr_w);
284293   DECLARE_READ8_MEMBER(reel_scrollattr_r);
285294   DECLARE_DRIVER_INIT(stisub);
295   DECLARE_DRIVER_INIT(tesorone);
286296   DECLARE_DRIVER_INIT(smoto20);
287297   DECLARE_DRIVER_INIT(sharkpy);
288298   DECLARE_DRIVER_INIT(smoto16);
r20219r20220
309319   UINT32 screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
310320   UINT32 screen_update_subsino_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
311321   UINT32 screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
322   virtual void machine_start();
312323};
313324
325void subsino_state::machine_start()
326{
327   m_hopper = machine().device<ticket_dispenser_device>("hopper");
328}
314329
315
316330/***************************************************************************
317331*                              Video Hardware                              *
318332***************************************************************************/
r20219r20220
663677   coin_counter_w( machine(), 2, data & 0x10 );    /* keyout */
664678   coin_counter_w( machine(), 3, data & 0x20 );    /* payout */
665679
680   m_hopper->write(space, 0, (data & 0x0020) ? 0x80 : 0);   // hopper motor
681
666682//  popmessage("Out A %02x",data);
667
668683}
669684
670685WRITE8_MEMBER(subsino_state::subsino_out_b_w)
r20219r20220
10831098}
10841099
10851100
1086WRITE8_MEMBER(subsino_state::stisub_out_c_w)
1087{
1088   m_stisub_outc = data;
1089
1090}
1091
10921101// this stuff is banked..
10931102// not 100% sure on the bank bits.. other bits are also set
10941103WRITE8_MEMBER(subsino_state::reel_scrollattr_w)
10951104{
1096   if (m_stisub_outc&0x20)
1105   if (*m_stisub_out_c & 0x20)
10971106   {
10981107      if (offset<0x200)
10991108      {
r20219r20220
11531162   AM_RANGE( 0x0d005, 0x0d005 ) AM_READ_PORT( "INB" )
11541163   AM_RANGE( 0x0d006, 0x0d006 ) AM_READ_PORT( "INA" )
11551164
1156   AM_RANGE( 0x0d008, 0x0d008 ) AM_WRITE(stisub_out_c_w )
1165   AM_RANGE( 0x0d008, 0x0d008 ) AM_RAM AM_SHARE("stisub_out_c")
11571166
11581167   AM_RANGE( 0x0d009, 0x0d009 ) AM_WRITE(subsino_out_b_w )
11591168   AM_RANGE( 0x0d00a, 0x0d00a ) AM_WRITE(subsino_out_a_w )
r20219r20220
16011610   PORT_DIPSETTING(    0x10, "1 Pulse / 25 Credits" )
16021611   PORT_DIPSETTING(    0x08, "1 Pulse / 50 Credits" )
16031612   PORT_DIPSETTING(    0x00, "1 Pulse / 100 Credits" )
1604   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:7")
1605   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1606   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1607   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:8")
1608   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1609   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1613   PORT_DIPNAME( 0x40, 0x40, "Pay-out" )               PORT_DIPLOCATION("SW1:7")
1614   PORT_DIPSETTING(    0x40, "Coin" )
1615   PORT_DIPSETTING(    0x00, "Key" )
1616   PORT_DIPNAME( 0x80, 0x80, "Hold Function" )         PORT_DIPLOCATION("SW1:8")
1617   PORT_DIPSETTING(    0x80, DEF_STR( Yes ) )
1618   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
16101619
16111620   PORT_START("SW2")
16121621   PORT_DIPNAME( 0x03, 0x03, "Minimum Bet" )           PORT_DIPLOCATION("SW2:1,2")
r20219r20220
16321641   PORT_DIPSETTING(    0x80, DEF_STR( Yes ) )
16331642
16341643   PORT_START( "SW3" )
1635   PORT_DIPNAME( 0x07, 0x07, "Win Rate" )      PORT_DIPLOCATION("SW3:1,2,3")
1644   PORT_DIPNAME( 0x07, 0x07, "Win Rate" )              PORT_DIPLOCATION("SW3:1,2,3")
16361645   PORT_DIPSETTING(    0x00, "84%" )
16371646   PORT_DIPSETTING(    0x01, "84%" )   // yes, again!
16381647   PORT_DIPSETTING(    0x02, "86%" )
r20219r20220
16411650   PORT_DIPSETTING(    0x07, "92%" )
16421651   PORT_DIPSETTING(    0x05, "94%" )
16431652   PORT_DIPSETTING(    0x06, "96%" )
1644   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:4")
1653   PORT_DIPNAME( 0x08, 0x08, "Control Panel" )         PORT_DIPLOCATION("SW3:4")
1654   PORT_DIPSETTING(    0x08, "Type A (No Hold)" )
1655   PORT_DIPSETTING(    0x00, "Type B" )
1656   PORT_DIPNAME( 0x30, 0x30, "Max Bonus" )             PORT_DIPLOCATION("SW3:5,6")
1657   PORT_DIPSETTING(    0x30, "1000" )
1658   PORT_DIPSETTING(    0x20, "2000" )
1659   PORT_DIPSETTING(    0x10, "3000" )
1660   PORT_DIPSETTING(    0x00, "5000" )
1661   PORT_DIPNAME( 0x40, 0x40, "Gather Rate of Bonus" )  PORT_DIPLOCATION("SW3:7")
1662   PORT_DIPSETTING(    0x40, "1.0%" )
1663   PORT_DIPSETTING(    0x00, "0.5%" )
1664   PORT_DIPNAME( 0x80, 0x80, "Reel Speed" )            PORT_DIPLOCATION("SW3:8")
1665   PORT_DIPSETTING(    0x80, "Slow" )
1666   PORT_DIPSETTING(    0x00, "Fast" )
1667
1668   PORT_START( "SW4" )
1669   PORT_DIPNAME( 0x07, 0x07, "Double-Up Level" )       PORT_DIPLOCATION("SW4:1,2,3")
1670   PORT_DIPSETTING(    0x07, "7 (Easy)" )
1671   PORT_DIPSETTING(    0x06, "6" )
1672   PORT_DIPSETTING(    0x05, "5" )
1673   PORT_DIPSETTING(    0x04, "4" )
1674   PORT_DIPSETTING(    0x03, "3" )
1675   PORT_DIPSETTING(    0x02, "2" )
1676   PORT_DIPSETTING(    0x01, "1" )
1677   PORT_DIPSETTING(    0x00, "0 (Hard)" )
1678   PORT_DIPNAME( 0x08, 0x08, "Double-Up Limit" )       PORT_DIPLOCATION("SW4:4")
1679   PORT_DIPSETTING(    0x08, "5000" )
1680   PORT_DIPSETTING(    0x00, "10000" )
1681   PORT_DIPNAME( 0x10, 0x10, "Double-Up Game" )        PORT_DIPLOCATION("SW4:5")
1682   PORT_DIPSETTING(    0x10, "Dancers / Panties Colors" )
1683   PORT_DIPSETTING(    0x00, "Cards / Seven-Bingo" )
1684   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW4:6")
1685   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1686   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1687   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW4:7")
1688   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1689   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1690   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW4:8")
1691   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1692   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1693
1694   PORT_START("INA")
1695   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1696   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1697   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1698   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START )          PORT_CODE(KEYCODE_N)    PORT_NAME("Start / Stop All")
1699   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_BET )      PORT_CODE(KEYCODE_C)    PORT_NAME("Bet / Stop 2")
1700   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP )    PORT_CODE(KEYCODE_Z)    PORT_NAME("Double / Info")
1701   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1702   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1703
1704   PORT_START( "INB" )
1705   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )          PORT_IMPULSE(3) // coin
1706   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN )   // key in
1707   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1708   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1709   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_9)    PORT_NAME("Stats / Test")   // Bookkeeping.
1710   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_0)    PORT_NAME("Settings")       // Current settings.
1711   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )  // payout
1712   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )  // key out
1713
1714   PORT_START("INC")
1715   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_LOW )     PORT_CODE(KEYCODE_V)    PORT_NAME("Small / Black / Stop 3")
1716   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
1717   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_R)    PORT_NAME("Reset")  // hard reset
1718   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH )    PORT_CODE(KEYCODE_B)    PORT_NAME("Big / Red")
1719   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1720   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1721   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE )    PORT_CODE(KEYCODE_X)    PORT_NAME("Take / Stop 1")
1722   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1723INPUT_PORTS_END
1724
1725
1726static INPUT_PORTS_START( tesorone )
1727   PORT_START("SW1")
1728   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) )      PORT_DIPLOCATION("SW1:1")
1729   PORT_DIPSETTING(    0x00, DEF_STR( 1C_5C ) )        // 5
1730   PORT_DIPSETTING(    0x01, "1 Coin / 10 Credits" )   // 16
1731   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:2")   // ?
1732   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1733   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1734   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:3")   // ?
1735   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1736   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1737   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:4")
16451738   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
16461739   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1647   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:5")
1740   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:5")
16481741   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
16491742   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1650   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:6")
1743   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:6")
16511744   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
16521745   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1653   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:7")
1746   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:7")   // ?
16541747   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
16551748   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1656   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:8")
1749   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW1:8")   // ?
16571750   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
16581751   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
16591752
1660   PORT_START( "SW4" )
1661   PORT_DIPNAME( 0x07, 0x07, "Double-Up Level" )       PORT_DIPLOCATION("SW4:1,2,3")
1662   PORT_DIPSETTING(    0x00, "0" )
1663   PORT_DIPSETTING(    0x01, "1" )
1664   PORT_DIPSETTING(    0x02, "2" )
1665   PORT_DIPSETTING(    0x03, "3" )
1666   PORT_DIPSETTING(    0x04, "4" )
1667   PORT_DIPSETTING(    0x05, "5" )
1668   PORT_DIPSETTING(    0x06, "6" )
1669   PORT_DIPSETTING(    0x07, "7" )
1670   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW4:4")
1753   PORT_START("SW2")
1754   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW2:1")   // ?
1755   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1756   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1757   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW2:2")   // ?
1758   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1759   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1760   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW2:3")   // ?
1761   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1762   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1763   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW2:4")
16711764   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
16721765   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1673   PORT_DIPNAME( 0x10, 0x10, "Double-Up Game" )        PORT_DIPLOCATION("SW4:5")
1674   PORT_DIPSETTING(    0x10, "Dancers / Panties Colors" )
1675   PORT_DIPSETTING(    0x00, "Cards / Seven-Bingo" )
1676   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW4:6")
1766   PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("SW2:5")
1767   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1768   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1769   PORT_DIPNAME( 0x60, 0x60, "Game Limit" )            PORT_DIPLOCATION("SW2:6,7")
1770   PORT_DIPSETTING(    0x40, "5000" )
1771   PORT_DIPSETTING(    0x60, "10000" )
1772   PORT_DIPSETTING(    0x20, "20000" )
1773   PORT_DIPSETTING(    0x00, "30000" )
1774   PORT_DIPNAME( 0x80, 0x80, "Double Up" )             PORT_DIPLOCATION("SW2:8")
1775   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1776   PORT_DIPSETTING(    0x80, DEF_STR( Yes ) )
1777
1778   PORT_START( "SW3" )
1779   PORT_DIPNAME( 0x07, 0x07, "Win Rate" )              PORT_DIPLOCATION("SW3:1,2,3")
1780   PORT_DIPSETTING(    0x00, "59%" )
1781   PORT_DIPSETTING(    0x01, "64%" )
1782   PORT_DIPSETTING(    0x02, "69%" )
1783   PORT_DIPSETTING(    0x03, "74%" )
1784   PORT_DIPSETTING(    0x04, "79%" )
1785   PORT_DIPSETTING(    0x07, "84%" )
1786   PORT_DIPSETTING(    0x05, "89%" )
1787   PORT_DIPSETTING(    0x06, "94%" )
1788   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:4")   // ?
1789   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1790   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1791   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:5")
1792   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1793   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1794   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:6")
16771795   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
16781796   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1679   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW4:7")
1797   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW3:7")
16801798   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
16811799   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1682   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW4:8")
1800   PORT_DIPNAME( 0x80, 0x80, "Reel Speed" )            PORT_DIPLOCATION("SW3:8")
1801   PORT_DIPSETTING(    0x80, "Slow" )
1802   PORT_DIPSETTING(    0x00, "Fast" )
1803
1804   PORT_START( "SW4" )
1805   PORT_DIPNAME( 0x07, 0x07, "Double-Up Level" )       PORT_DIPLOCATION("SW4:1,2,3")
1806   PORT_DIPSETTING(    0x07, "7 (Easy)" )
1807   PORT_DIPSETTING(    0x06, "6" )
1808   PORT_DIPSETTING(    0x05, "5" )
1809   PORT_DIPSETTING(    0x04, "4" )
1810   PORT_DIPSETTING(    0x03, "3" )
1811   PORT_DIPSETTING(    0x02, "2" )
1812   PORT_DIPSETTING(    0x01, "1" )
1813   PORT_DIPSETTING(    0x00, "0 (Hard)" )
1814   PORT_DIPNAME( 0x08, 0x08, "Double-Up Limit" )       PORT_DIPLOCATION("SW4:4")
1815   PORT_DIPSETTING(    0x08, "5000" )
1816   PORT_DIPSETTING(    0x00, "10000" )
1817   PORT_DIPNAME( 0x70, 0x70, "Remote Credits" )        PORT_DIPLOCATION("SW4:5,6,7")
1818//  PORT_DIPSETTING(    0x00, "50" )
1819//  PORT_DIPSETTING(    0x10, "50" )
1820//  PORT_DIPSETTING(    0x20, "50" )
1821   PORT_DIPSETTING(    0x30, "50" )
1822   PORT_DIPSETTING(    0x70, "100" )
1823   PORT_DIPSETTING(    0x60, "200" )
1824   PORT_DIPSETTING(    0x50, "400" )
1825   PORT_DIPSETTING(    0x40, "800" )
1826   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SW4:8")   // ?
16831827   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
16841828   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
16851829
r20219r20220
17051849
17061850   PORT_START("INC")
17071851   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_LOW )     PORT_CODE(KEYCODE_V)    PORT_NAME("Small / Black / Stop 3")
1708   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1852   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
17091853   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_R)    PORT_NAME("Reset")  // hard reset
17101854   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH )    PORT_CODE(KEYCODE_B)    PORT_NAME("Big / Red")
17111855   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
r20219r20220
20572201   PORT_DIPSETTING(    0x01, "1 Coin / 10 Credits" )
20582202   PORT_DIPSETTING(    0x00, DEF_STR( 1C_5C ) )
20592203   PORT_DIPUNKNOWN( 0x02, 0x02 )
2060   PORT_DIPUNKNOWN( 0x04, 0x04 )
2204   PORT_DIPNAME( 0x04, 0x04, "Hopper" )
2205   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
2206   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
20612207   PORT_DIPUNKNOWN( 0x08, 0x08 )
20622208   PORT_DIPUNKNOWN( 0x10, 0x10 )
20632209   PORT_DIPUNKNOWN( 0x20, 0x20 )
r20219r20220
21122258   PORT_DIPSETTING(    0x00, "Left-Right Marker" )
21132259   PORT_DIPUNKNOWN( 0x80, 0x80 )
21142260
2115   PORT_START( "INA" )
2261   PORT_START( "INA" ) // d005
21162262   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )    PORT_NAME("Hold 1 / Double (Select)")
21172263   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )    PORT_NAME("Hold 2 / Right")
21182264   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )    PORT_NAME("Hold 3 / Left")
r20219r20220
21222268   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_BET )      PORT_NAME("Bet / Speed")    PORT_IMPULSE(3)
21232269   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
21242270
2125   PORT_START( "INB" )
2271   PORT_START( "INB" ) // d006
21262272   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )          PORT_IMPULSE(3) // coin
21272273   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2128   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2274   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
21292275   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
21302276   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_9)    PORT_NAME("Stats / Test")   // Bookkeeping.
21312277   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_0)    PORT_NAME("Settings")   // Game Rate & others.
2132   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )  // payout?
2278   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )  // payout
21332279   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )  // key out?
21342280
2135   PORT_START( "INC" )
2281   PORT_START( "INC" ) // d00c
21362282   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2137   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2283   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
21382284   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_R)    PORT_NAME("Reset")  // hard reset
21392285   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
21402286   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
r20219r20220
21512297   PORT_DIPSETTING(    0x01, "1 Coin / 10 Credits" )
21522298   PORT_DIPSETTING(    0x00, DEF_STR( 1C_5C ) )
21532299   PORT_DIPUNKNOWN( 0x02, 0x02 )
2154   PORT_DIPUNKNOWN( 0x04, 0x04 )
2300   PORT_DIPNAME( 0x04, 0x04, "Hopper" )
2301   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
2302   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
21552303   PORT_DIPUNKNOWN( 0x08, 0x08 )
21562304   PORT_DIPUNKNOWN( 0x10, 0x10 )
21572305   PORT_DIPUNKNOWN( 0x20, 0x20 )
r20219r20220
22062354   PORT_DIPSETTING(    0x00, "Left-Right Marker" )
22072355   PORT_DIPUNKNOWN( 0x80, 0x80 )
22082356
2209   PORT_START( "INA" )
2357   PORT_START( "INA" ) // d005
22102358   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )    PORT_NAME("Hold 1 / Double (Select)")
22112359   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )    PORT_NAME("Hold 2 / Right")
22122360   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )    PORT_NAME("Hold 3 / Left")
r20219r20220
22162364   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_BET )      PORT_NAME("Bet / Speed")    PORT_IMPULSE(3)
22172365   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
22182366
2219   PORT_START( "INB" )
2367   PORT_START( "INB" ) // d006
22202368   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )          PORT_IMPULSE(3) // coin
22212369   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2222   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2370   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
22232371   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
22242372   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_9)    PORT_NAME("Stats / Test")   // Bookkeeping.
22252373   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_0)    PORT_NAME("Settings")   // Game Rate & others.
2226   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )  // payout?
2374   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )  // payout
22272375   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )  // key out?
22282376
2229   PORT_START( "INC" )
2377   PORT_START( "INC" ) // d00c
22302378   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2231   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2379   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
22322380   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE )        PORT_CODE(KEYCODE_R)    PORT_NAME("Reset")  // hard reset
22332381   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
22342382   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
r20219r20220
26512799   MCFG_CPU_PROGRAM_MAP(victor21_map)
26522800   MCFG_CPU_IO_MAP(subsino_iomap)
26532801
2802   MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
2803
26542804   /* video hardware */
26552805   MCFG_SCREEN_ADD("screen", RASTER)
26562806   MCFG_SCREEN_REFRESH_RATE(60)
r20219r20220
26912841   MCFG_CPU_PROGRAM_MAP(crsbingo_map)
26922842   MCFG_CPU_IO_MAP(subsino_iomap)
26932843
2844   MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
2845
26942846   /* video hardware */
26952847   MCFG_SCREEN_ADD("screen", RASTER)
26962848   MCFG_SCREEN_REFRESH_RATE(60)
r20219r20220
27202872   MCFG_CPU_PROGRAM_MAP(srider_map)
27212873   MCFG_CPU_IO_MAP(subsino_iomap)
27222874
2875   MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
2876
27232877   /* video hardware */
27242878   MCFG_SCREEN_ADD("screen", RASTER)
27252879   MCFG_SCREEN_REFRESH_RATE(60)
r20219r20220
27592913   MCFG_CPU_PROGRAM_MAP(tisub_map)
27602914   MCFG_CPU_IO_MAP(subsino_iomap)
27612915
2916   MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
2917
27622918   /* video hardware */
27632919   MCFG_SCREEN_ADD("screen", RASTER)
27642920   MCFG_SCREEN_REFRESH_RATE(60)
r20219r20220
27872943   MCFG_CPU_PROGRAM_MAP(stisub_map)
27882944   MCFG_CPU_IO_MAP(subsino_iomap)
27892945
2946   MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
2947
27902948   /* video hardware */
27912949   MCFG_SCREEN_ADD("screen", RASTER)
27922950   MCFG_SCREEN_REFRESH_RATE(60)
r20219r20220
31013259   ROM_LOAD( "shark_n.1.u18", 0x0a000, 0x6000, CRC(25aeac2f) SHA1(d94e3e5cfffd150ac48e1463493a8323f42e7a89) ) // is this mapped correctly? - used during gameplay?
31023260   ROM_CONTINUE(0x0000, 0xa000)
31033261
3104
31053262   ROM_REGION( 0x40000, "tilemap", 0 )
31063263   ROM_LOAD( "shark_n.3.u16", 0x00000, 0x08000, CRC(a7a715ce) SHA1(38b93e05377d9cb816688f5070e847480f195c6b) )
31073264   ROM_CONTINUE(              0x10000, 0x08000 )
r20219r20220
32013358   ROM_LOAD( "sharkpye.u18", 0x0a000, 0x6000, CRC(12473814) SHA1(9c24ed41781aefee0161add912e730ba0d4f4d3e) )
32023359   ROM_CONTINUE(0x0000, 0xa000)
32033360
3204
32053361   ROM_REGION( 0x40000, "tilemap", 0 )
32063362   ROM_LOAD( "sharkpye.u16", 0x00000, 0x08000, CRC(90862185) SHA1(9d632bfa707d3449a87d7f370eb2b5c36e61aadd) )
32073363   ROM_CONTINUE(             0x10000, 0x08000 )
r20219r20220
32643420   ROM_LOAD( "victor_6ii_alpha_1_ver2.3.u18", 0x0a000, 0x6000, CRC(2a3eaecd) SHA1(18bf2dfec8cd5690d6465f750093942afda66475) )
32653421   ROM_CONTINUE(0x0000, 0xa000)
32663422
3267
32683423   ROM_REGION( 0x40000, "tilemap", 0 )
32693424   ROM_LOAD( "victor_6ii-rom_3_ver1.0.u16", 0x00000, 0x08000, CRC(4e96c30a) SHA1(4989b10a52ba61459864aa44be9ebafe68b4d231) )
32703425   ROM_CONTINUE(             0x10000, 0x08000 )
r20219r20220
32893444   ROM_LOAD( "victor_6ii_rom_1_ver1.2.u18", 0x0a000, 0x6000, CRC(309876fc) SHA1(305c4cf347b512607e2c58a580075a34b48bedd5) )
32903445   ROM_CONTINUE(0x0000, 0xa000)
32913446
3292
32933447   ROM_REGION( 0x40000, "tilemap", 0 )
32943448   ROM_LOAD( "victor_6ii-rom_3_ver1.0.u16", 0x00000, 0x08000, CRC(4e96c30a) SHA1(4989b10a52ba61459864aa44be9ebafe68b4d231) )
32953449   ROM_CONTINUE(             0x10000, 0x08000 )
r20219r20220
34453599
34463600/***************************************************************************
34473601
3448   Super Treasure Island
3449 - is this better here or in bishjan.c?
3602   Treasure Bonus
3603   (C) American Alpha
34503604
3605   CPU module marked 'Super Treasure Island'
3606
34513607***************************************************************************/
34523608
34533609ROM_START( stisub )
3454   ROM_REGION( 0x18000, "maincpu", 0 )
3610   ROM_REGION( 0x10000, "maincpu", 0 )
34553611   ROM_LOAD( "trbon-rlu16.u12", 0x00000, 0x10000, CRC(07771290) SHA1(c485943045396d8580271504a1fec7c88579f4a2) )
34563612
34573613   ROM_REGION( 0x100000, "tilemap", 0 )
r20219r20220
34673623   ROM_LOAD( "sti-alpha_9-ver1.1.u22", 0x60000, 0x20000, CRC(9710a223) SHA1(76ef6bd77ae33d91a9b6a9a615d07caee3356dfb) )
34683624ROM_END
34693625
3626/***************************************************************************
34703627
3628Tesorone Dell'Isola (2 sets)
3629(C) Subsino
3630
3631Italian version of "Treasure Bonus"
3632
3633PCB: SN01256-3 CS186P006-1 (same as "Treasure Bonus")
3634
3635Chips:
3636
36371x pLSI 1032-60
36382x FILE KD89C55A (equivalent to 8255)
36391x K-664 (equivalent to YM3014)
36401x K-665 (equivalent to M6295)
36411x K-666 (equivalent to YM3812)
36421x custom DIP42 SUBSINO SS9101
36431x HMC HM86171-80 (RAMDAC)
3644
36452x oscillator 12.000MHz ?
36461x oscillator 4.43361MHz ?
3647
3648Other:
3649
36501x empty ROM socket for upgrades
36511x battery (unpopulated)
36521x 6x2 edge connector (con2)
36531x 36x2 edge connector
36541x pushbutton (sw5)
36554x 8 switches dips (sw1-4)
36561x trimmer (volume)
36571x BIG BLACK BOX
3658
3659***************************************************************************/
3660
3661ROM_START( tesorone )
3662   ROM_REGION( 0x10000, "maincpu", 0 )
3663   ROM_LOAD( "tesorone.d.isol.italy_1ver2.41.u12", 0x00000, 0x10000, CRC(b019b689) SHA1(ba7acd15842b29e6ac37795a4d6e0f93d99393a4) )
3664
3665   ROM_REGION( 0x100000, "tilemap", 0 )
3666   ROM_LOAD( "tesorone.d.isol.italy_2ver1.7.u30", 0x00000, 0x40000, CRC(295887c5) SHA1(b36914977b276ac5e5e31902dff28796f3a28ea1) )
3667   ROM_LOAD( "tesorone.d.isol.italy_3ver1.7.u29", 0x40000, 0x40000, CRC(89469522) SHA1(ba373900e0310aad3d04ff58909f6144d9b689a7) )
3668   ROM_LOAD( "tesorone.d.isol.italy_4ver1.7.u28", 0x80000, 0x40000, CRC(2092a368) SHA1(05e1af15761e0186ea7ddb8b82c177e35fcdd382) )
3669   ROM_LOAD( "tesorone.d.isol.italy_5ver1.7.u27", 0xc0000, 0x40000, CRC(57870bad) SHA1(7a3342c5cc3ed5f48d2dda224913eb357aeb401b) )
3670
3671   ROM_REGION( 0x80000, "reels", 0 )
3672   ROM_LOAD( "tesorone.d.isol.italy_6ver1.7.u25", 0x00000, 0x20000, CRC(e5578d00) SHA1(28882131d13f052bc31c3fc1b6dc5d9e45d30e82) )
3673   ROM_LOAD( "tesorone.d.isol.italy_7ver1.7.u24", 0x20000, 0x20000, CRC(c29a7841) SHA1(7bec4a4db0b545b9b9d9a4c14efa9442e7738d8a) )
3674   ROM_LOAD( "tesorone.d.isol.italy_8ver1.7.u23", 0x40000, 0x20000, CRC(2b4b195a) SHA1(cb165f6737231ae52dbf9775fff13b778835fcac) )
3675   ROM_LOAD( "tesorone.d.isol.italy_9ver1.7.u22", 0x60000, 0x20000, CRC(1c9f754e) SHA1(7b2feeeaaa4845d2fcfebb2c1bc4d6b69d937400) )
3676ROM_END
3677
3678ROM_START( tesorone240 )
3679   ROM_REGION( 0x10000, "maincpu", 0 )
3680   ROM_LOAD( "tesorone.d.isol.italy_1ver2.4.u12", 0x00000, 0x10000, CRC(6a7d5395) SHA1(448184b78b6a3e28f891731c83a4e2d1e283c205) )
3681
3682   ROM_REGION( 0x100000, "tilemap", 0 )
3683   ROM_LOAD( "tesorone.d.isol.italy_2ver1.7.u30", 0x00000, 0x40000, CRC(295887c5) SHA1(b36914977b276ac5e5e31902dff28796f3a28ea1) )
3684   ROM_LOAD( "tesorone.d.isol.italy_3ver1.7.u29", 0x40000, 0x40000, CRC(89469522) SHA1(ba373900e0310aad3d04ff58909f6144d9b689a7) )
3685   ROM_LOAD( "tesorone.d.isol.italy_4ver1.7.u28", 0x80000, 0x40000, CRC(2092a368) SHA1(05e1af15761e0186ea7ddb8b82c177e35fcdd382) )
3686   ROM_LOAD( "tesorone.d.isol.italy_5ver1.7.u27", 0xc0000, 0x40000, CRC(57870bad) SHA1(7a3342c5cc3ed5f48d2dda224913eb357aeb401b) )
3687
3688   ROM_REGION( 0x80000, "reels", 0 )
3689   ROM_LOAD( "tesorone.d.isol.italy_6ver1.7.u25", 0x00000, 0x20000, CRC(e5578d00) SHA1(28882131d13f052bc31c3fc1b6dc5d9e45d30e82) )
3690   ROM_LOAD( "tesorone.d.isol.italy_7ver1.7.u24", 0x20000, 0x20000, CRC(c29a7841) SHA1(7bec4a4db0b545b9b9d9a4c14efa9442e7738d8a) )
3691   ROM_LOAD( "tesorone.d.isol.italy_8ver1.7.u23", 0x40000, 0x20000, CRC(2b4b195a) SHA1(cb165f6737231ae52dbf9775fff13b778835fcac) )
3692   ROM_LOAD( "tesorone.d.isol.italy_9ver1.7.u22", 0x60000, 0x20000, CRC(1c9f754e) SHA1(7b2feeeaaa4845d2fcfebb2c1bc4d6b69d937400) )
3693ROM_END
3694
3695
34713696/***************************************************************************
34723697
34733698  This is allegedly Magic Train - Clear NVRAM ROM:
r20219r20220
35613786
35623787DRIVER_INIT_MEMBER(subsino_state,stisub)
35633788{
3789#if 1
35643790   UINT8 *rom = memregion( "maincpu" )->base();
35653791   rom[0x1005] = 0x1d; //patch protection check
35663792   rom[0x7ab] = 0x18; //patch "winning protection" check
35673793   rom[0x957] = 0x18; //patch "losing protection" check
3794#endif
3795
35683796   m_stisub_colorram = auto_alloc_array(machine(), UINT8, 256*3);
35693797
35703798   m_reel1_scroll.allocate(0x40);
r20219r20220
35753803   m_reel2_attr = auto_alloc_array(machine(), UINT8, 0x200);
35763804   m_reel3_attr = auto_alloc_array(machine(), UINT8, 0x200);
35773805}
3806DRIVER_INIT_MEMBER(subsino_state,tesorone)
3807{
3808#if 1
3809   UINT8 *rom = memregion( "maincpu" )->base();
3810   rom[0x10a4] = 0x18; //patch protection check ("ERROR 08073"):
3811   rom[0x10a5] = 0x11;
3812   rom[0x8b6] = 0x18; //patch "winning protection" check
3813   rom[0xa84] = 0x18; //patch "losing protection" check
3814#endif
35783815
3816   m_stisub_colorram = auto_alloc_array(machine(), UINT8, 256*3);
3817
3818   m_reel1_scroll.allocate(0x40);
3819   m_reel2_scroll.allocate(0x40);
3820   m_reel3_scroll.allocate(0x40);
3821
3822   m_reel1_attr = auto_alloc_array(machine(), UINT8, 0x200);
3823   m_reel2_attr = auto_alloc_array(machine(), UINT8, 0x200);
3824   m_reel3_attr = auto_alloc_array(machine(), UINT8, 0x200);
3825}
3826
35793827DRIVER_INIT_MEMBER(subsino_state,mtrainnv)
35803828{
35813829   m_stisub_colorram = auto_alloc_array(machine(), UINT8, 256*3);
r20219r20220
35893837   m_reel3_attr = auto_alloc_array(machine(), UINT8, 0x200);
35903838}
35913839
3592
35933840/***************************************************************************
35943841*                               Game Drivers                               *
35953842***************************************************************************/
35963843
3597//     YEAR  NAME      PARENT    MACHINE   INPUT     INIT      ROT    COMPANY            FULLNAME                                FLAGS            LAYOUT
3598GAMEL( 1990, victor21,  0,        victor21, victor21, subsino_state, victor21, ROT0, "Subsino / Buffy", "Victor 21",                            0,               layout_victor21 )
3599GAMEL( 1991, victor5,   0,        victor5,  victor5, subsino_state,  victor5,  ROT0, "Subsino",         "G.E.A.",                               0,               layout_victor5  )  // PCB black-box was marked 'victor 5' - in-game says G.E.A with no manufacturer info?
3600GAMEL( 1992, tisub,     0,        tisub,    tisub, subsino_state,    tisub,    ROT0, "Subsino",         "Treasure Island (Subsino, set 1)",     0,               layout_tisub    )
3601GAMEL( 1992, tisuba,    tisub,    tisub,    tisub, subsino_state,    tisuba,   ROT0, "Subsino",         "Treasure Island (Subsino, set 2)",     0,               layout_tisub    )
3602GAMEL( 1991, crsbingo,  0,        crsbingo, crsbingo, subsino_state, crsbingo, ROT0, "Subsino",         "Poker Carnival",                       0,               layout_crsbingo )
3603GAMEL( 1995, stisub,    0,        stisub,   stisub, subsino_state,   stisub,   ROT0, "American Alpha",  "Treasure Bonus (Subsino)",             0,               layout_stisub   )  // board CPU module marked 'Super Treasure Island' (alt title?)
3604GAMEL( 1996, sharkpy,   0,        sharkpy,  sharkpy, subsino_state,  sharkpy,  ROT0, "Subsino",         "Shark Party (Italy, v1.3)",            0,               layout_sharkpy  )  // missing POST messages?
3605GAMEL( 1996, sharkpya,  sharkpy,  sharkpy,  sharkpy, subsino_state,  sharkpy,  ROT0, "Subsino",         "Shark Party (Italy, v1.6)",            0,               layout_sharkpy  )  // missing POST messages?
3606GAMEL( 1995, sharkpye,  sharkpy,  sharkpy,  sharkpye, subsino_state, sharkpye, ROT0, "American Alpha",  "Shark Party (English, Alpha license)", 0,               layout_sharkpye )  // PCB black-box was marked 'victor 6'
3607GAMEL( 1995, victor6,   0,        sharkpy,  victor6, subsino_state,  sharkpye, ROT0, "American Alpha",  "Victor 6 (v2.3N)",                     0,               layout_sharkpye )  // ^^
3608GAMEL( 1995, victor6a,  victor6,  sharkpy,  victor6a, subsino_state, sharkpye, ROT0, "American Alpha",  "Victor 6 (v2.3)",                      0,               layout_sharkpye )  // ^^
3609GAMEL( 1995, victor6b,  victor6,  sharkpy,  victor6b, subsino_state, sharkpye, ROT0, "American Alpha",  "Victor 6 (v1.2)",                      0,               layout_sharkpye )  // ^^ Version # according to label, not displayed
3610GAMEL( 1996, smoto20,   0,        srider,   smoto20, subsino_state,  smoto20,  ROT0, "Subsino",         "Super Rider (Italy, v2.0)",            0,               layout_smoto    )
3611GAMEL( 1996, smoto16,   smoto20,  srider,   smoto16, subsino_state,  smoto16,  ROT0, "Subsino",         "Super Moto (Italy, v1.6)",             0,               layout_smoto    )
3612GAME ( 1996, mtrainnv,  mtrain,   mtrainnv, stisub, subsino_state,   mtrainnv, ROT0, "Subsino",         "Magic Train (Clear NVRAM ROM?)",       GAME_NOT_WORKING )
3844//     YEAR  NAME         PARENT    MACHINE   INPUT     INIT                     ROT   COMPANY            FULLNAME                                FLAGS            LAYOUT
3845GAMEL( 1990, victor21,    0,        victor21, victor21, subsino_state, victor21, ROT0, "Subsino / Buffy", "Victor 21",                            0,               layout_victor21 )
3846GAMEL( 1991, victor5,     0,        victor5,  victor5,  subsino_state, victor5,  ROT0, "Subsino",         "G.E.A.",                               0,               layout_victor5  ) // PCB black-box was marked 'victor 5' - in-game says G.E.A with no manufacturer info?
3847GAMEL( 1992, tisub,       0,        tisub,    tisub,    subsino_state, tisub,    ROT0, "Subsino",         "Treasure Island (Subsino, set 1)",     0,               layout_tisub    )
3848GAMEL( 1992, tisuba,      tisub,    tisub,    tisub,    subsino_state, tisuba,   ROT0, "Subsino",         "Treasure Island (Subsino, set 2)",     0,               layout_tisub    )
3849GAMEL( 1991, crsbingo,    0,        crsbingo, crsbingo, subsino_state, crsbingo, ROT0, "Subsino",         "Poker Carnival",                       0,               layout_crsbingo )
3850GAMEL( 1995, stisub,      0,        stisub,   stisub,   subsino_state, stisub,   ROT0, "American Alpha",  "Treasure Bonus (Subsino, v1.6)",       0,               layout_stisub   ) // board CPU module marked 'Super Treasure Island' (alt title?)
3851GAMEL( 1995, tesorone,    stisub,   stisub,   tesorone, subsino_state, tesorone, ROT0, "Subsino",         "Tesorone Dell'Isola (Italy, v2.41)",   0,               layout_stisub   )
3852GAMEL( 1995, tesorone240, stisub,   stisub,   tesorone, subsino_state, tesorone, ROT0, "Subsino",         "Tesorone Dell'Isola (Italy, v2.40)",   0,               layout_stisub   )
3853GAMEL( 1996, sharkpy,     0,        sharkpy,  sharkpy,  subsino_state, sharkpy,  ROT0, "Subsino",         "Shark Party (Italy, v1.3)",            0,               layout_sharkpy  ) // missing POST messages?
3854GAMEL( 1996, sharkpya,    sharkpy,  sharkpy,  sharkpy,  subsino_state, sharkpy,  ROT0, "Subsino",         "Shark Party (Italy, v1.6)",            0,               layout_sharkpy  ) // missing POST messages?
3855GAMEL( 1995, sharkpye,    sharkpy,  sharkpy,  sharkpye, subsino_state, sharkpye, ROT0, "American Alpha",  "Shark Party (English, Alpha license)", 0,               layout_sharkpye ) // PCB black-box was marked 'victor 6'
3856GAMEL( 1995, victor6,     0,        sharkpy,  victor6,  subsino_state, sharkpye, ROT0, "American Alpha",  "Victor 6 (v2.3N)",                     0,               layout_sharkpye ) // ^^
3857GAMEL( 1995, victor6a,    victor6,  sharkpy,  victor6a, subsino_state, sharkpye, ROT0, "American Alpha",  "Victor 6 (v2.3)",                      0,               layout_sharkpye ) // ^^
3858GAMEL( 1995, victor6b,    victor6,  sharkpy,  victor6b, subsino_state, sharkpye, ROT0, "American Alpha",  "Victor 6 (v1.2)",                      0,               layout_sharkpye ) // ^^ Version # according to label, not displayed
3859GAMEL( 1996, smoto20,     0,        srider,   smoto20,  subsino_state, smoto20,  ROT0, "Subsino",         "Super Rider (Italy, v2.0)",            0,               layout_smoto    )
3860GAMEL( 1996, smoto16,     smoto20,  srider,   smoto16,  subsino_state, smoto16,  ROT0, "Subsino",         "Super Moto (Italy, v1.6)",             0,               layout_smoto    )
3861GAME ( 1996, mtrainnv,    mtrain,   mtrainnv, stisub,   subsino_state, mtrainnv, ROT0, "Subsino",         "Magic Train (Clear NVRAM ROM?)",       GAME_NOT_WORKING )
trunk/src/mame/mame.lst
r20219r20220
1012110121tisub           // (c) 1992 Subsino
1012210122tisuba          // (c) 1992 Subsino
1012310123stisub          // (c) 1995 Subsino (Alpha license)
10124tesorone        // (c) 1995 Subsino
10125tesorone240     // (c) 1995 Subsino
1012410126victor6         // (c) 1995 Subsino (Alpha license)
1012510127victor6a        // (c) 1995 Subsino (Alpha license)
1012610128victor6b        // (c) 1995 Subsino (Alpha license)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team