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 )