trunk/src/mame/drivers/silvmil.c
r248533 | r248534 | |
15 | 15 | OSC on Silver Millennium are 12MHz, 14.31818MHz & 4.096MHz |
16 | 16 | The above has been verified on two boards. |
17 | 17 | |
18 | | OSC on World Puzzlove are 12/14.31818/4 |
19 | | OSC on Korean Puzzlove are 12/15/4 |
| 18 | OSC on World Puzzlove are 12MHz, 14.31818Mhz & 4Mhz |
| 19 | OSC on Korean Puzzlove are 12MHz, 15MHz & 4Mhz |
20 | 20 | Only one example of each of these is known to exist so far. |
21 | 21 | |
22 | | Very likely to be 'whatever crystals we had to hand which were close enough for the batch' situations. |
| 22 | Very likely to be 'whatever crystals we had on hand which were close enough for the batch' situations. |
23 | 23 | |
24 | 24 | */ |
25 | 25 | |
r248533 | r248534 | |
173 | 173 | } |
174 | 174 | |
175 | 175 | |
176 | | |
177 | | |
178 | 176 | static ADDRESS_MAP_START( silvmil_map, AS_PROGRAM, 16, silvmil_state ) |
179 | 177 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
180 | 178 | |
r248533 | r248534 | |
328 | 326 | INPUT_PORTS_END |
329 | 327 | |
330 | 328 | static INPUT_PORTS_START( puzzlovek ) |
331 | | PORT_INCLUDE(puzzlove) |
| 329 | PORT_INCLUDE(puzzlove) |
332 | 330 | |
333 | | PORT_MODIFY("DSW") |
| 331 | PORT_MODIFY("DSW") |
334 | 332 | /* Korean rev has demo sound */ |
335 | | PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1") |
336 | | PORT_DIPSETTING( 0x0001, DEF_STR ( Off ) ) |
337 | | PORT_DIPSETTING( 0x0000, DEF_STR ( On ) ) |
| 333 | PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1") |
| 334 | PORT_DIPSETTING( 0x0001, DEF_STR ( Off ) ) |
| 335 | PORT_DIPSETTING( 0x0000, DEF_STR ( On ) ) |
338 | 336 | |
339 | 337 | /* Korean rev has slightly different difficulty settings */ |
340 | | PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") |
341 | | PORT_DIPSETTING( 0x0300, DEF_STR( Easy ) ) /* Initial start time 35 secs */ |
342 | | PORT_DIPSETTING( 0x0200, DEF_STR( Very_Easy ) ) /* Initial start time 40 secs - Other in game effects?? */ |
343 | | PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) /* Initial start time 30 secs - Other in game effects?? */ |
344 | | PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) /* Initial start time 30 secs - Other in game effects?? */ |
| 338 | PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") |
| 339 | PORT_DIPSETTING( 0x0300, DEF_STR( Easy ) ) /* Initial start time 35 secs */ |
| 340 | PORT_DIPSETTING( 0x0200, DEF_STR( Very_Easy ) ) /* Initial start time 40 secs - Other in game effects?? */ |
| 341 | PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) /* Initial start time 30 secs - Other in game effects?? */ |
| 342 | PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) /* Initial start time 30 secs - Other in game effects?? */ |
345 | 343 | INPUT_PORTS_END |
346 | 344 | |
347 | 345 | |
r248533 | r248534 | |
391 | 389 | AM_RANGE(0xc00f, 0xc00f) AM_WRITENOP // ?? |
392 | 390 | ADDRESS_MAP_END |
393 | 391 | |
394 | | /* CLOCKS UNKNOWN! */ |
395 | 392 | |
396 | 393 | static MACHINE_CONFIG_START( silvmil, silvmil_state ) |
397 | 394 | |
398 | 395 | /* basic machine hardware */ |
399 | | MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) |
| 396 | MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* Verified */ |
400 | 397 | MCFG_CPU_PROGRAM_MAP(silvmil_map) |
401 | 398 | MCFG_CPU_VBLANK_INT_DRIVER("screen", silvmil_state, irq6_line_hold) |
402 | 399 | |
403 | | MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) |
| 400 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) /* Verified */ |
404 | 401 | MCFG_CPU_PROGRAM_MAP(silvmil_sound_map) |
405 | 402 | |
406 | 403 | |
r248533 | r248534 | |
427 | 424 | |
428 | 425 | MCFG_SPEAKER_STANDARD_MONO("mono") |
429 | 426 | |
430 | | MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) |
| 427 | MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) /* Verified */ |
431 | 428 | MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) |
432 | 429 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
433 | 430 | |
434 | | MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) |
| 431 | MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) /* Verified */ |
435 | 432 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
436 | 433 | MACHINE_CONFIG_END |
437 | 434 | |
438 | 435 | static MACHINE_CONFIG_DERIVED( puzzlove, silvmil ) |
439 | 436 | MCFG_DEVICE_REMOVE("audiocpu") |
440 | | MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz) |
| 437 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz) /* Verified */ |
441 | 438 | MCFG_CPU_PROGRAM_MAP(silvmil_sound_map) |
442 | 439 | |
443 | 440 | MCFG_DEVICE_MODIFY("spritegen") |
444 | 441 | MCFG_DECO_SPRITE_BOOTLEG_TYPE(1) |
445 | 442 | |
446 | 443 | MCFG_DEVICE_REMOVE("oki") |
447 | | MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) |
| 444 | MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Verified */ |
448 | 445 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
449 | 446 | MACHINE_CONFIG_END |
450 | 447 | |
451 | 448 | static MACHINE_CONFIG_DERIVED( puzzlovek, puzzlove ) |
452 | 449 | MCFG_DEVICE_REMOVE("ymsnd") |
453 | | MCFG_YM2151_ADD("ymsnd", XTAL_15MHz/4) |
| 450 | MCFG_YM2151_ADD("ymsnd", XTAL_15MHz/4) /* Verified */ |
454 | 451 | MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) |
455 | 452 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
456 | 453 | MACHINE_CONFIG_END |
r248533 | r248534 | |
538 | 535 | |
539 | 536 | ROM_START( puzzlovek ) |
540 | 537 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */ |
541 | | ROM_LOAD16_BYTE( "3.U3", 0x00000, 0x40000, CRC(28f403f0) SHA1(5f9fc18f705fe81f0dceaf2d62b6caffb0b0462e) ) |
542 | | ROM_LOAD16_BYTE( "4.U2", 0x00001, 0x40000, CRC(809371b9) SHA1(6b2dc899a4e2cf4fca777f0ec4a08e636099e0d2) ) |
| 538 | ROM_LOAD16_BYTE( "3.u3", 0x00000, 0x40000, CRC(28f403f0) SHA1(5f9fc18f705fe81f0dceaf2d62b6caffb0b0462e) ) // sldh |
| 539 | ROM_LOAD16_BYTE( "4.u2", 0x00001, 0x40000, CRC(809371b9) SHA1(6b2dc899a4e2cf4fca777f0ec4a08e636099e0d2) ) // sldh |
543 | 540 | |
544 | 541 | ROM_REGION( 0x20000, "audiocpu", 0 ) /* z80 */ |
545 | | ROM_LOAD( "1.UZ02", 0x00000, 0x20000, CRC(3077e7f3) SHA1(e2bf634a2166e1851486a801e74a7ec0d4599c28) ) |
| 542 | ROM_LOAD( "1.uz02", 0x00000, 0x20000, CRC(3077e7f3) SHA1(e2bf634a2166e1851486a801e74a7ec0d4599c28) ) |
546 | 543 | |
547 | 544 | ROM_REGION( 0x40000, "oki", 0 ) /* samples */ |
548 | | ROM_LOAD( "2.UZ11", 0x00000, 0x40000, CRC(4c06ec68) SHA1(3cfca1c98e73c65a45b65d43e012c5529572c057) ) |
| 545 | ROM_LOAD( "2.uz11", 0x00000, 0x40000, CRC(4c06ec68) SHA1(3cfca1c98e73c65a45b65d43e012c5529572c057) ) |
549 | 546 | |
550 | 547 | ROM_REGION( 0x100000, "gfx1", 0 ) |
551 | | ROM_LOAD16_BYTE( "10.U41", 0x000000, 0x20000, CRC(3f952c54) SHA1(1f18579ce98305d20ec0f4e216f8170a62b9c68b) ) |
| 548 | ROM_LOAD16_BYTE( "10.u41", 0x000000, 0x20000, CRC(3f952c54) SHA1(1f18579ce98305d20ec0f4e216f8170a62b9c68b) ) // sldh |
552 | 549 | ROM_CONTINUE ( 0x080000,0x20000 ) |
553 | 550 | ROM_CONTINUE ( 0x040000,0x20000 ) |
554 | 551 | ROM_CONTINUE ( 0x0c0000,0x20000 ) |
555 | | ROM_LOAD16_BYTE( "9.U42", 0x000001, 0x20000, CRC(4f71ee93) SHA1(db0d00fa0f6c9b7bc638dcb50f041fb32827c7c4) ) |
| 552 | ROM_LOAD16_BYTE( "9.u42", 0x000001, 0x20000, CRC(4f71ee93) SHA1(db0d00fa0f6c9b7bc638dcb50f041fb32827c7c4) ) // sldh |
556 | 553 | ROM_CONTINUE ( 0x080001,0x20000 ) |
557 | 554 | ROM_CONTINUE ( 0x040001,0x20000 ) |
558 | 555 | ROM_CONTINUE ( 0x0c0001,0x20000 ) |
559 | 556 | |
560 | 557 | ROM_REGION( 0x200000, "gfx2", 0 ) /* sprites */ |
561 | | ROM_LOAD16_BYTE( "5.U53", 0x000000, 0x80000, CRC(c5732995) SHA1(e7faecb19f4bdb103b782e38463d32b357ea63bc) ) |
562 | | ROM_LOAD16_BYTE( "6.U54", 0x000001, 0x80000, CRC(a3b98fd1) SHA1(2b2b7c9df19882a0565e38504b73f56ea27d71ab) ) |
563 | | ROM_LOAD16_BYTE( "7.U55", 0x100000, 0x80000, CRC(a4c73b48) SHA1(9f26af7b961c96cfd1c45f85f1d6dc4f364e3541) ) |
564 | | ROM_LOAD16_BYTE( "8.U56", 0x100001, 0x80000, CRC(95b5f049) SHA1(1104dac1fbf6a894b7d8294b3f44a0edbf363157) ) |
| 558 | ROM_LOAD16_BYTE( "5.u53", 0x000000, 0x80000, CRC(c5732995) SHA1(e7faecb19f4bdb103b782e38463d32b357ea63bc) ) // sldh |
| 559 | ROM_LOAD16_BYTE( "6.u54", 0x000001, 0x80000, CRC(a3b98fd1) SHA1(2b2b7c9df19882a0565e38504b73f56ea27d71ab) ) // sldh |
| 560 | ROM_LOAD16_BYTE( "7.u55", 0x100000, 0x80000, CRC(a4c73b48) SHA1(9f26af7b961c96cfd1c45f85f1d6dc4f364e3541) ) // sldh |
| 561 | ROM_LOAD16_BYTE( "8.u56", 0x100001, 0x80000, CRC(95b5f049) SHA1(1104dac1fbf6a894b7d8294b3f44a0edbf363157) ) // sldh |
565 | 562 | ROM_END |
566 | 563 | |
567 | 564 | void silvmil_state::tumblepb_gfx1_rearrange() |
r248533 | r248534 | |
590 | 587 | tumblepb_gfx1_rearrange(); |
591 | 588 | } |
592 | 589 | |
593 | | GAME( 1995, silvmil, 0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE ) |
594 | | GAME( 1994, puzzlove, 0, puzzlove,puzzlove,silvmil_state, silvmil, ROT0, "Para", "PuzzLove", GAME_SUPPORTS_SAVE ) |
595 | | GAME( 1994, puzzlovek, puzzlove, puzzlovek,puzzlovek,silvmil_state, silvmil, ROT0, "Para", "PuzzLove (Korea)", GAME_SUPPORTS_SAVE ) |
| 590 | GAME( 1995, silvmil, 0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE ) |
| 591 | GAME( 1994, puzzlove, 0, puzzlove, puzzlove, silvmil_state, silvmil, ROT0, "Para", "PuzzLove", GAME_SUPPORTS_SAVE ) |
| 592 | GAME( 1994, puzzlovek, puzzlove, puzzlovek, puzzlovek, silvmil_state, silvmil, ROT0, "Para", "PuzzLove (Korea)", GAME_SUPPORTS_SAVE ) |