summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/subsino.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/subsino.cpp')
-rw-r--r--src/mame/drivers/subsino.cpp104
1 files changed, 60 insertions, 44 deletions
diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp
index c9272645251..e63f6f45d42 100644
--- a/src/mame/drivers/subsino.cpp
+++ b/src/mame/drivers/subsino.cpp
@@ -213,6 +213,12 @@ To Do:
- Created proper inputs for all sets.
+ 2019-07-31
+ ----------
+
+ - Added Victor 5 (otiginal set, now parent).
+ - Dumped the samples ROMs of Victor 5 and Victor 21, and hooked the OKI6295.
+
***************************************************************************/
@@ -516,7 +522,7 @@ uint32_t subsino_state::screen_update_stbsub_reels(screen_device &screen, bitmap
}
}
- if (m_out_c&0x08)
+ if (m_out_c & 0x08)
{
// areas based on d-up game in attract mode
const rectangle visible1(0, 511, 0, 87);
@@ -533,7 +539,6 @@ uint32_t subsino_state::screen_update_stbsub_reels(screen_device &screen, bitmap
}
-
void subsino_state::_2proms_palette(palette_device &palette) const
{
uint8_t const *const color_prom = memregion("proms")->base();
@@ -775,47 +780,31 @@ WRITE8_MEMBER(subsino_state::out_b_w)
void subsino_state::srider_map(address_map &map)
{
map(0x00000, 0x0bfff).rom();
-
map(0x0c000, 0x0cfff).ram();
-
map(0x0d000, 0x0d002).r("ppi1", FUNC(i8255_device::read));
map(0x0d004, 0x0d006).r("ppi2", FUNC(i8255_device::read));
-
map(0x0d009, 0x0d009).w(FUNC(subsino_state::out_b_w));
map(0x0d00a, 0x0d00a).w(FUNC(subsino_state::out_a_w));
-
map(0x0d00c, 0x0d00c).portr("INC");
-
map(0x0d016, 0x0d017).w("ymsnd", FUNC(ym3812_device::write));
-
map(0x0d018, 0x0d018).w("oki", FUNC(okim6295_device::write));
-
map(0x0d01b, 0x0d01b).w(FUNC(subsino_state::tiles_offset_w));
-
map(0x0e000, 0x0e7ff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
map(0x0e800, 0x0efff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
}
-
void subsino_state::sharkpy_map(address_map &map)
{
map(0x00000, 0x13fff).rom(); //overlap unmapped regions
map(0x09800, 0x09fff).ram();
-
map(0x09000, 0x09002).r("ppi1", FUNC(i8255_device::read));
map(0x09004, 0x09006).r("ppi2", FUNC(i8255_device::read));
-
map(0x09009, 0x09009).w(FUNC(subsino_state::out_b_w));
map(0x0900a, 0x0900a).w(FUNC(subsino_state::out_a_w));
-
map(0x0900c, 0x0900c).portr("INC");
-
map(0x09016, 0x09017).w("ymsnd", FUNC(ym3812_device::write));
-
map(0x09018, 0x09018).w("oki", FUNC(okim6295_device::write));
-
map(0x0901b, 0x0901b).w(FUNC(subsino_state::tiles_offset_w));
-
map(0x07800, 0x07fff).ram();
map(0x08000, 0x087ff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
map(0x08800, 0x08fff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
@@ -830,28 +819,20 @@ this event makes the game to reset without any money in the bank.
void subsino_state::victor21_map(address_map &map)
{
map(0x00000, 0x08fff).rom(); //overlap unmapped regions
-
map(0x09800, 0x09fff).ram();
-
map(0x09000, 0x09003).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x09004, 0x09004).portr("INA");
map(0x09005, 0x09005).portr("INB");
map(0x09006, 0x09006).portr("SW1");
map(0x09007, 0x09007).portr("SW2");
map(0x09008, 0x09008).portr("SW3");
-
map(0x0900b, 0x0900b).ram(); //protection
-
-// AM_RANGE( 0x0900c, 0x0900c ) AM_DEVWRITE("oki", okim6295_device, write)
-
+ map(0x0900c, 0x0900c).w("oki", FUNC(okim6295_device::write));
map(0x0900e, 0x0900f).w("ymsnd", FUNC(ym2413_device::write));
-
map(0x0900d, 0x0900d).w(FUNC(subsino_state::tiles_offset_w));
-
map(0x07800, 0x07fff).ram();
map(0x08000, 0x087ff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
map(0x08800, 0x08fff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
-
map(0x10000, 0x13fff).rom();
}
@@ -912,6 +893,7 @@ void subsino_state::victor5_map(address_map &map)
victor21_map(map);
map(0x0900a, 0x0900a).rw(FUNC(subsino_state::flash_r), FUNC(subsino_state::flash_w));
map(0x0900b, 0x0900b).nopr(); //"flash" status, bit 0
+ map(0x0900c, 0x0900c).w("oki", FUNC(okim6295_device::write));
}
@@ -2935,6 +2917,37 @@ void subsino_state::mtrainnv(machine_config &config)
/***************************************************************************
+ Victor 5
+ (C)1991 Subsino / Buffy
+
+ Original Subsino PCB
+ with CPU brick.
+
+ Dumped by Team Europe.
+
+***************************************************************************/
+
+ROM_START( victor5 )
+ ROM_REGION( 0x14000, "maincpu", 0 )
+ ROM_LOAD( "1.u1", 0x10000, 0x4000, CRC(bc4d6ed6) SHA1(6b2087360ea0ae9e48a623934cb2fb973a80f1ec) )
+ ROM_CONTINUE(0x0000,0xc000)
+
+ ROM_REGION( 0x18000, "tilemap", 0 )
+ ROM_LOAD( "2.u24", 0x10000, 0x8000, CRC(f7026c74) SHA1(75a72839ad6b349563110ed10ad235958d5c0170) )
+ ROM_LOAD( "3.u25", 0x08000, 0x8000, CRC(24ebe112) SHA1(61c32bb76c7600837880f468829dba176f8330f3) )
+ ROM_LOAD( "4.u26", 0x00000, 0x8000, CRC(889baf02) SHA1(a2d01f3c09a69bd5b38531b41c53c550a03de229) )
+
+ ROM_REGION( 0x20000, "oki", ROMREGION_ERASE )
+ ROM_LOAD( "6.u49", 0x00000, 0x10000, CRC(73fb4f7b) SHA1(23db0ff42503847c6c7ebb364985430a48de4d8a) )
+ ROM_LOAD( "5.u48", 0x10000, 0x10000, CRC(403d5632) SHA1(844e1a4bdf7cc9c1196f79e75a83f03a964feb16) )
+
+ ROM_REGION( 0x200, "proms", 0 )
+ ROM_LOAD( "82s129.u35", 0x000, 0x100, CRC(40094bed) SHA1(b25d96126b3f7bd06bf76dc9958f8669f83abdb7) )
+ ROM_LOAD( "82s129.u36", 0x100, 0x100, CRC(9ca021c5) SHA1(6a1d8d4f958d36e4a676dc4f4aee83d637933bc3) )
+ROM_END
+
+/***************************************************************************
+
Victor 5
(C)1991 Subsino
@@ -2968,7 +2981,7 @@ Info by f205v (26/03/2008)
***************************************************************************/
-ROM_START( victor5 )
+ROM_START( victor5a )
ROM_REGION( 0x14000, "maincpu", 0 )
ROM_LOAD( "1.u1", 0x10000, 0x4000, CRC(e3ada2fc) SHA1(eddb460dcb80a29fbbe3ed6c4733c75b892baf52) )
ROM_CONTINUE(0x0000,0xc000)
@@ -2978,14 +2991,16 @@ ROM_START( victor5 )
ROM_LOAD( "3.u23", 0x08000, 0x8000, CRC(2d89bbf1) SHA1(d7fda0174a835e88b330dfd09bdb604bfe4c2e44) )
ROM_LOAD( "4.u22", 0x00000, 0x8000, CRC(ecf840a1) SHA1(9ecf522afb23e3557d37effc3c8568e8a14dad1a) )
- ROM_REGION( 0x40000, "oki", ROMREGION_ERASE )
- // rom socket is empty
+ ROM_REGION( 0x20000, "oki", ROMREGION_ERASE )
+ ROM_LOAD( "6.u49", 0x00000, 0x10000, CRC(73fb4f7b) SHA1(23db0ff42503847c6c7ebb364985430a48de4d8a) )
+ ROM_LOAD( "5.u48", 0x10000, 0x10000, CRC(403d5632) SHA1(844e1a4bdf7cc9c1196f79e75a83f03a964feb16) )
- ROM_REGION( 0x200, "proms", 0 ) //missing proms in this set, we'll use the same as Victor 21 for now.
- ROM_LOAD( "74s287.u35", 0x000, 0x100, BAD_DUMP CRC(40094bed) SHA1(b25d96126b3f7bd06bf76dc9958f8669f83abdb7) )
- ROM_LOAD( "74s287.u36", 0x100, 0x100, BAD_DUMP CRC(9ca021c5) SHA1(6a1d8d4f958d36e4a676dc4f4aee83d637933bc3) )
+ ROM_REGION( 0x200, "proms", 0 )
+ ROM_LOAD( "82s129.u35", 0x000, 0x100, CRC(40094bed) SHA1(b25d96126b3f7bd06bf76dc9958f8669f83abdb7) )
+ ROM_LOAD( "82s129.u36", 0x100, 0x100, CRC(9ca021c5) SHA1(6a1d8d4f958d36e4a676dc4f4aee83d637933bc3) )
ROM_END
+
/***************************************************************************
Victor 21
@@ -3025,21 +3040,23 @@ Info by f205v, Corrado Tomaselli (20/04/2008)
ROM_START( victor21 )
ROM_REGION( 0x14000, "maincpu", 0 )
ROM_LOAD( "1.u1", 0x10000, 0x4000, CRC(43999b2d) SHA1(7ce26fd332ffe35fd826a1a6166b228d4bc370b8) )
- ROM_CONTINUE(0x0000,0xc000)
+ ROM_CONTINUE( 0x00000, 0xc000)
ROM_REGION( 0x18000, "tilemap", 0 )
ROM_LOAD( "2.u24", 0x10000, 0x8000, CRC(f1181b93) SHA1(53cd4d2ce13973495b51d911a4745a69a9784983) )
ROM_LOAD( "3.u25", 0x08000, 0x8000, CRC(437abb27) SHA1(bd3790807d60a41d58e07f60fb990553076d6e96) )
ROM_LOAD( "4.u26", 0x00000, 0x8000, CRC(e2f66eee) SHA1(ece924fe626f21fd7d31faabf19225d80e2bcfd3) )
- ROM_REGION( 0x40000, "oki", ROMREGION_ERASE )
- // rom socket is empty
+ ROM_REGION( 0x20000, "oki", ROMREGION_ERASE )
+ ROM_LOAD( "6.u49", 0x00000, 0x10000, CRC(4153711c) SHA1(11b4f5f8ec3c93194d1d5b78ae35ca79d8f66a16) )
+ ROM_LOAD( "5.u48", 0x10000, 0x10000, CRC(3d451de6) SHA1(cbb22679fc9ce27e2ca90aa8035bf1b1c353c69e) )
ROM_REGION( 0x200, "proms", 0 )
- ROM_LOAD( "74s287.u35", 0x000, 0x100, CRC(40094bed) SHA1(b25d96126b3f7bd06bf76dc9958f8669f83abdb7) )
- ROM_LOAD( "74s287.u36", 0x100, 0x100, CRC(9ca021c5) SHA1(6a1d8d4f958d36e4a676dc4f4aee83d637933bc3) )
+ ROM_LOAD( "82s129.u35", 0x000, 0x100, CRC(40094bed) SHA1(b25d96126b3f7bd06bf76dc9958f8669f83abdb7) )
+ ROM_LOAD( "82s129.u36", 0x100, 0x100, CRC(9ca021c5) SHA1(6a1d8d4f958d36e4a676dc4f4aee83d637933bc3) )
ROM_END
+
/***************************************************************************
Treasure Island
@@ -3111,6 +3128,7 @@ ROM_START( tisuba )
ROM_LOAD( "n82s129n.u41", 0x200, 0x100, CRC(db99f6da) SHA1(d281a2fa06f1890ef0b1c4d099e6828827db14fd) )
ROM_END
+
/***************************************************************************
Cross Bingo
@@ -3168,6 +3186,7 @@ ROM_START( crsbingo )
ROM_LOAD( "18cv8.u29", 0x155, 0x155, NO_DUMP )
ROM_END
+
/***************************************************************************
Shark Party
@@ -3296,7 +3315,6 @@ ROM_START( sharkpya )
ROM_LOAD( "sn82s129an.u13", 0x200, 0x100, CRC(0ef5f218) SHA1(a02cf266661385aa078563bd83240d36549c1cf0) )
ROM_END
-
/***************************************************************************
Shark Party (English, Alpha license)
@@ -3418,7 +3436,6 @@ ROM_START( victor6b )
ROM_END
-
/***************************************************************************
Super Rider (Italy Ver 1.6)
@@ -3551,6 +3568,7 @@ ROM_START( smoto20 )
ROM_LOAD( "82s129.u13", 0x200, 0x100, CRC(9cb4a5c0) SHA1(0e0a368329c6d1cb685ed655d699a4894988fdb1) )
ROM_END
+
/***************************************************************************
Treasure Bonus
@@ -3577,8 +3595,6 @@ ROM_START( stbsub )
ROM_LOAD( "sti-alpha_9-ver1.1.u22", 0x60000, 0x20000, CRC(9710a223) SHA1(76ef6bd77ae33d91a9b6a9a615d07caee3356dfb) )
ROM_END
-
-
ROM_START( stisub )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "b1", 0x00000, 0x10000, CRC(3f7adf66) SHA1(6ff37d070c7866133853c7cb3e2fbcb5610d87e8) )
@@ -3597,7 +3613,6 @@ ROM_START( stisub )
ROM_END
-
/***************************************************************************
Tesorone Dell'Isola (2 sets)
@@ -3881,7 +3896,8 @@ void subsino_state::init_mtrainnv()
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
GAMEL( 1990, victor21, 0, victor21, victor21, subsino_state, init_victor21, ROT0, "Subsino / Buffy", "Victor 21", 0, layout_victor21 )
-GAMEL( 1991, victor5, 0, victor5, victor5, subsino_state, init_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?
+GAMEL( 1991, victor5, 0, victor5, victor5, subsino_state, init_victor5, ROT0, "Subsino / Buffy", "Victor 5", 0, layout_victor5 ) // Original PCB and game from Subsino.
+GAMEL( 1991, victor5a, 0, victor5, victor5, subsino_state, init_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?
GAMEL( 1992, tisub, 0, tisub, tisub, subsino_state, init_tisub, ROT0, "Subsino", "Treasure Island (Subsino, set 1)", 0, layout_tisub )
GAMEL( 1992, tisuba, tisub, tisub, tisub, subsino_state, init_tisuba, ROT0, "Subsino", "Treasure Island (Subsino, set 2)", 0, layout_tisub )