Improvements to subsino.cpp [Roberto Fresca, Team Europe]

Added dumps of the missing samples ROMs.
Added Victor 5 and Victor 21 speech sounds through OKI 6295.
Confirmed the bipolar PROM dump for Victor 5.
Reparent the Victor 5 sets.

New working machines
--------------------
Victor 5 [Roberto Fresca, Team Europe]
This commit is contained in:
Roberto Fresca 2019-07-31 05:51:53 +02:00
parent 814f885f8a
commit 84e96a6e54
2 changed files with 61 additions and 44 deletions

View File

@ -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));
}
@ -2933,6 +2915,37 @@ void subsino_state::mtrainnv(machine_config &config)
* ROMs Loading *
***************************************************************************/
/***************************************************************************
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
@ -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 )

View File

@ -36722,6 +36722,7 @@ tisub // (c) 1992 Subsino
tisuba // (c) 1992 Subsino
victor21 // (c) 1990 Subsino
victor5 // (c) 1990 Subsino
victor5a // (c) 1990 Subsino
victor6 // (c) 1995 Subsino (Alpha license)
victor6a // (c) 1995 Subsino (Alpha license)
victor6b // (c) 1995 Subsino (Alpha license)