summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author system11b <system11b@users.noreply.github.com>2015-07-28 18:38:17 +0100
committer system11b <system11b@users.noreply.github.com>2015-07-28 18:38:17 +0100
commit209f8c00cb0be9c1db3dd6857580df4b204b0524 (patch)
treef437a6b114b5c32fed9209619d690348f705a456 /src
parenta8c836e325e3c53e4b5e5168cdf4d5fcd232e27c (diff)
Added Puzzlove (Korea)
Corrected various clocks in driver and sound balance, switched to mono as per actual PCB layout.
Diffstat (limited to 'src')
-rw-r--r--src/mame/arcade.lst2
-rw-r--r--src/mame/drivers/silvmil.c85
2 files changed, 65 insertions, 22 deletions
diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst
index 758ae94c964..e6cfd4d146e 100644
--- a/src/mame/arcade.lst
+++ b/src/mame/arcade.lst
@@ -10614,7 +10614,7 @@ heuksun // (c) 1998 Oksan / F2 System
bestri // (c) F2 System
silvmil // (c) 1995 Para
puzzlove // (c) 1994 Para
-puzzlovek // (c) 1994 Para
+puzzlovek // (c) 1994 Para
funybubl // (c) 1999 In Chang Electronic Co
funybublc // (c) 1999 Comad Industries
dcheese // (c) 1993 HAR
diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c
index a25c35d04e8..16574ada096 100644
--- a/src/mame/drivers/silvmil.c
+++ b/src/mame/drivers/silvmil.c
@@ -9,11 +9,17 @@
also very close to gotcha.c, which was also a Para
board.
- todo: refresh rate & audio balance
+ todo: refresh rate
verify dipswitches - difficulty & unknown dips
- verify clocks for Z80 & OKI6295
-OSC on the PCB are 12MHz, 14.31818MHz & 4.096MHz
+OSC on Silver Millennium are 12MHz, 14.31818MHz & 4.096MHz
+The above has been verified on two boards.
+
+OSC on World Puzzlove are 12/14.31818/4
+OSC on Korean Puzzlove are 12/15/4
+Only one example of each of these is known to exist so far.
+
+Very likely to be 'whatever crystals we had to hand which were close enough for the batch' situations.
*/
@@ -321,6 +327,23 @@ static INPUT_PORTS_START( puzzlove )
PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) /* Verified */
INPUT_PORTS_END
+static INPUT_PORTS_START( puzzlovek )
+ PORT_INCLUDE(puzzlove)
+
+ PORT_MODIFY("DSW")
+ /* Korean rev has demo sound */
+ PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x0001, DEF_STR ( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR ( On ) )
+
+ /* Korean rev has slightly different difficulty settings */
+ PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
+ PORT_DIPSETTING( 0x0300, DEF_STR( Easy ) ) /* Initial start time 35 secs */
+ PORT_DIPSETTING( 0x0200, DEF_STR( Very_Easy ) ) /* Initial start time 40 secs - Other in game effects?? */
+ PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) /* Initial start time 30 secs - Other in game effects?? */
+ PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) /* Initial start time 30 secs - Other in game effects?? */
+INPUT_PORTS_END
+
static const gfx_layout tlayout =
@@ -377,7 +400,7 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state )
MCFG_CPU_PROGRAM_MAP(silvmil_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", silvmil_state, irq6_line_hold)
- MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) // 4.096MHz or 3.579545MHz - Need to verify
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz)
MCFG_CPU_PROGRAM_MAP(silvmil_sound_map)
@@ -402,23 +425,37 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state )
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO_SPRITE_PALETTE("palette")
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+ MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4)
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
- MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) // Need to verify
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.2)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2)
+ MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( puzzlove, silvmil )
+ MCFG_DEVICE_REMOVE("audiocpu")
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz)
+ MCFG_CPU_PROGRAM_MAP(silvmil_sound_map)
+
MCFG_DEVICE_MODIFY("spritegen")
MCFG_DECO_SPRITE_BOOTLEG_TYPE(1)
+
+ MCFG_DEVICE_REMOVE("oki")
+ MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( puzzlovek, puzzlove )
+ MCFG_DEVICE_REMOVE("ymsnd")
+ MCFG_YM2151_ADD("ymsnd", XTAL_15MHz/4)
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
+
ROM_START( silvmil )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
ROM_LOAD16_BYTE( "d-13_u3.bin", 0x00000, 0x40000, CRC(46106c59) SHA1(ab965c1ea9ce89a67875530d76ac2bde7fd13e13) )
@@ -501,24 +538,30 @@ ROM_END
ROM_START( puzzlovek )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
- ROM_LOAD16_BYTE( "3.U3", 0x00000, 0x40000, CRC(82ec8472) SHA1(e4f1a9fa0431de840d6fce466e09098a8d601660) )
- ROM_LOAD16_BYTE( "4.U2", 0x00001, 0x40000, CRC(64edc708) SHA1(e0b29f8cd5dd654be34452fd197a77abc872e63d) )
+ ROM_LOAD16_BYTE( "3.U3", 0x00000, 0x40000, CRC(28f403f0) SHA1(5f9fc18f705fe81f0dceaf2d62b6caffb0b0462e) )
+ ROM_LOAD16_BYTE( "4.U2", 0x00001, 0x40000, CRC(809371b9) SHA1(6b2dc899a4e2cf4fca777f0ec4a08e636099e0d2) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* z80 */
- ROM_LOAD( "1.U202", 0x00000, 0x20000, CRC(3077eef3) SHA1(e2bf6e4a2166e1851486a801e74a7ec0d4599c28) )
+ ROM_LOAD( "1.UZ02", 0x00000, 0x20000, CRC(3077e7f3) SHA1(e2bf634a2166e1851486a801e74a7ec0d4599c28) )
ROM_REGION( 0x40000, "oki", 0 ) /* samples */
- ROM_LOAD( "2.U211", 0x00000, 0x40000, CRC(4c06ee68) SHA1(3cfcaec98e73c65a45b65d43e012c5529572c057) )
+ ROM_LOAD( "2.UZ11", 0x00000, 0x40000, CRC(4c06ec68) SHA1(3cfca1c98e73c65a45b65d43e012c5529572c057) )
ROM_REGION( 0x100000, "gfx1", 0 )
- ROM_LOAD16_BYTE( "10.U41", 0x000000, 0x80000, CRC(7200e878) SHA1(2ec6389f802f6e0af0210e2b01788914c0eb1d04) )
- ROM_LOAD16_BYTE( "9.U42", 0x000001, 0x80000, CRC(21b1e297) SHA1(0fe89d1c62d0f79b1379e4444b119bdc4cc70cfb) )
+ ROM_LOAD16_BYTE( "10.U41", 0x000000, 0x20000, CRC(3f952c54) SHA1(1f18579ce98305d20ec0f4e216f8170a62b9c68b) )
+ ROM_CONTINUE ( 0x080000,0x20000 )
+ ROM_CONTINUE ( 0x040000,0x20000 )
+ ROM_CONTINUE ( 0x0c0000,0x20000 )
+ ROM_LOAD16_BYTE( "9.U42", 0x000001, 0x20000, CRC(4f71ee93) SHA1(db0d00fa0f6c9b7bc638dcb50f041fb32827c7c4) )
+ ROM_CONTINUE ( 0x080001,0x20000 )
+ ROM_CONTINUE ( 0x040001,0x20000 )
+ ROM_CONTINUE ( 0x0c0001,0x20000 )
ROM_REGION( 0x200000, "gfx2", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "5.U53", 0x000000, 0x80000, CRC(8707dea0) SHA1(05e80ac34982a4e4768b7f3fccd2e557ca4b2545) )
- ROM_LOAD16_BYTE( "6.U54", 0x000001, 0x80000, CRC(60a6de14) SHA1(06e3c08c51d6b3a05373c9999f01b0b8d23a1c89) )
- ROM_LOAD16_BYTE( "7.U55", 0x100000, 0x80000, CRC(0f2eaec4) SHA1(4ce46fc6272e3cc14dfdcd7831157433ee7cf247) )
- ROM_LOAD16_BYTE( "8.U56", 0x100001, 0x80000, CRC(037dce3d) SHA1(fcef604710518982e0b4acc81a56fa703d0c9407) )
+ ROM_LOAD16_BYTE( "5.U53", 0x000000, 0x80000, CRC(c5732995) SHA1(e7faecb19f4bdb103b782e38463d32b357ea63bc) )
+ ROM_LOAD16_BYTE( "6.U54", 0x000001, 0x80000, CRC(a3b98fd1) SHA1(2b2b7c9df19882a0565e38504b73f56ea27d71ab) )
+ ROM_LOAD16_BYTE( "7.U55", 0x100000, 0x80000, CRC(a4c73b48) SHA1(9f26af7b961c96cfd1c45f85f1d6dc4f364e3541) )
+ ROM_LOAD16_BYTE( "8.U56", 0x100001, 0x80000, CRC(95b5f049) SHA1(1104dac1fbf6a894b7d8294b3f44a0edbf363157) )
ROM_END
void silvmil_state::tumblepb_gfx1_rearrange()
@@ -549,4 +592,4 @@ DRIVER_INIT_MEMBER(silvmil_state,silvmil)
GAME( 1995, silvmil, 0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE )
GAME( 1994, puzzlove, 0, puzzlove,puzzlove,silvmil_state, silvmil, ROT0, "Para", "PuzzLove", GAME_SUPPORTS_SAVE )
-GAME( 1994, puzzlovek, puzzlovek, puzzlove,puzzlove,silvmil_state, silvmil, ROT0, "Para", "PuzzLove (Korea)", GAME_SUPPORTS_SAVE )
+GAME( 1994, puzzlovek, puzzlove, puzzlovek,puzzlovek,silvmil_state, silvmil, ROT0, "Para", "PuzzLove (Korea)", GAME_SUPPORTS_SAVE )