summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <lordkale4@gmail.com>2019-08-01 16:47:23 +0200
committer Angelo Salese <lordkale4@gmail.com>2019-08-01 16:47:23 +0200
commit4914ff2a7c6fdf061dec39b7df379de719b623fd (patch)
tree1318e9151b16780da7b542d32812623738ba2b8c
parent01cbf5a1eb16fd6f60ff7bbd6bc96db90066a309 (diff)
new WORKING machine
=================== The Destroyer From Jail [system11, Angelo Salese, The Dumping Union]
-rw-r--r--src/mame/drivers/segas16b.cpp86
1 files changed, 79 insertions, 7 deletions
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index 6ede6dc73d1..e413e79519d 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -1737,12 +1737,15 @@ void segas16b_state::dfjail_map(address_map &map)
map(0xc40000, 0xc43fff).unmaprw();
+ map(0xc40000, 0xc40001).nopw(); // coin counter
map(0xc41000, 0xc41001).portr("P1");
map(0xc41002, 0xc41003).portr("P2");
map(0xc41004, 0xc41005).portr("SERVICE");
map(0xc42000, 0xc42001).portr("DSW1");
map(0xc42002, 0xc42003).portr("DSW2");
+ map(0xc43000, 0xc43001).nopw();
+
}
void segas16b_state::map_fpointbla(address_map &map)
@@ -1912,7 +1915,6 @@ void segas16b_state::lockonph_sound_iomap(address_map &map)
map(0xc0, 0xc0).r(m_soundlatch, FUNC(generic_latch_8_device::read));
}
-
//**************************************************************************
// I8751 MCU ADDRESS MAPS
//**************************************************************************
@@ -3789,6 +3791,66 @@ static INPUT_PORTS_START( dfjail )
PORT_MODIFY("P2")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
+
+ PORT_MODIFY("SERVICE")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
+ PORT_DIPSETTING( 0x01, DEF_STR( 8C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 7C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 6C_1C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 5C_1C ) )
+ PORT_DIPSETTING( 0x05, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x07, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) )
+ PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 1C_8C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+ PORT_DIPNAME( 0x70, 0x50, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:5,6,7")
+ PORT_DIPSETTING( 0x70, "1" )
+ PORT_DIPSETTING( 0x60, "2" )
+ PORT_DIPSETTING( 0x50, "3" )
+ PORT_DIPSETTING( 0x40, "4" )
+ PORT_DIPSETTING( 0x30, "5" )
+ PORT_DIPSETTING( 0x20, "6" )
+ PORT_DIPSETTING( 0x10, "7" )
+ PORT_DIPSETTING( 0x00, "8" )
+ PORT_SERVICE_DIPLOC( 0x80, 0x80, "SW1:8" )
+
+ PORT_MODIFY("DSW2")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3") // it's actually BGM in attract mode
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
//**************************************************************************
@@ -4080,6 +4142,18 @@ void segas16b_state::dfjail(machine_config &config)
M68000(config.replace(), m_maincpu, XTAL(16'000'000)/2); // ?
m_maincpu->set_addrmap(AS_PROGRAM, &segas16b_state::dfjail_map);
m_maincpu->set_vblank_int("screen", FUNC(segas16b_state::irq4_line_hold));
+
+ //Z80(config.replace(), m_soundcpu, XTAL(16'000'000)/4); // ?
+ //m_soundcpu->set_addrmap(AS_PROGRAM, &segas16b_state::dfjail_sound_map);
+ //m_soundcpu->set_addrmap(AS_IO, &segas16b_state::dfjail_sound_iomap);
+
+ //config.device_remove("ym2151");
+ //config.device_remove("upd");
+
+ //YM2151(config, m_ym2151, XTAL(16'000'000)/4); // ??
+ //m_ym2151->irq_handler().set_inputline(m_soundcpu, INPUT_LINE_NMI);
+ //m_ym2151->add_route(0, "mono", 0.5);
+ //m_ym2151->add_route(1, "mono", 0.5);
}
@@ -4923,12 +4997,10 @@ ROM_START( dfjail )
ROM_LOAD16_BYTE( "2.b16", 0x040001, 0x020000, CRC(49ff074d) SHA1(a44dfe46204976579265ba24fd99de75510f34ab) )
ROM_LOAD16_BYTE( "4.c16", 0x040000, 0x020000, CRC(cdcbf6b1) SHA1(a3491600e40de4ceb7e72d9ef4bf12fe5f15e30a) )
- ROM_REGION( 0x10000, "soundcpu", 0 ) // z80
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // z80
ROM_LOAD( "29.f3", 0x000000, 0x008000, CRC(7f3ebb6a) SHA1(f265c6215ef457202686b31c9b503a0a371a1139) )
-
- ROM_REGION( 0x40000, "oki", 0 ) // m6295
- ROM_LOAD( "27.g1", 0x000000, 0x020000, CRC(7a88e1c1) SHA1(b238b451522819a5a8c1a9e82058b86d33ac2272) )
- ROM_LOAD( "28.g3", 0x020000, 0x020000, CRC(ed96d6b9) SHA1(3ad096e466150d0ca36fec8dd649554e7fb9f654) )
+ ROM_LOAD( "28.g3", 0x010000, 0x020000, CRC(ed96d6b9) SHA1(3ad096e466150d0ca36fec8dd649554e7fb9f654) )
+ ROM_LOAD( "27.g1", 0x030000, 0x020000, CRC(7a88e1c1) SHA1(b238b451522819a5a8c1a9e82058b86d33ac2272) )
ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
ROM_LOAD( "9.f16", 0x000000, 0x020000, CRC(b2a49d12) SHA1(052b96109abc18c562c09042664738bac68f66b4) )
@@ -9501,7 +9573,7 @@ GAME( 1990, atomicp, 0, atomicp, atomicp, segas16b_stat
GAME( 1990, snapper, 0, atomicp, snapper, segas16b_state, init_snapper, ROT0, "Philko", "Snapper (Korea)", 0) // korean clone board..
// board marked 'System 4' and has Philko custom chip - various hw changes (4bpp tiles for example)
GAME( 1991, lockonph, 0, lockonph, lockonph, segas16b_state, init_lockonph, ROT0, "Philko", "Lock On (Philko)", MACHINE_IMPERFECT_SOUND ) // Copyright not shown in game, but has 'PHILKO' in the startup warning and tiles / PCB. 1991 is the name entry for the lowest high score. Clipping issues on left edge in attract look like original game bugs.
-GAME( 199?, dfjail, 0, dfjail, dfjail, segas16b_state, init_generic_korean, ROT0, "Philko", "The Destroyer From Jail (Korea)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // dips, check sound, not extensively tested
+GAME( 199?, dfjail, 0, dfjail, dfjail, segas16b_state, init_generic_korean, ROT0, "Philko", "The Destroyer From Jail (Korea)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL ) // dips, check sound, not extensively tested
// decrypted bootleg / 'suicide repair' sets