trunk/src/mame/drivers/silvmil.c
| r248524 | r248525 | |
| 9 | 9 | also very close to gotcha.c, which was also a Para |
| 10 | 10 | board. |
| 11 | 11 | |
| 12 | | todo: refresh rate & audio balance |
| 12 | todo: refresh rate |
| 13 | 13 | verify dipswitches - difficulty & unknown dips |
| 14 | | verify clocks for Z80 & OKI6295 |
| 15 | 14 | |
| 16 | | OSC on the PCB are 12MHz, 14.31818MHz & 4.096MHz |
| 15 | OSC on Silver Millennium are 12MHz, 14.31818MHz & 4.096MHz |
| 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 |
| 20 | Only one example of each of these is known to exist so far. |
| 21 | |
| 22 | Very likely to be 'whatever crystals we had to hand which were close enough for the batch' situations. |
| 23 | |
| 18 | 24 | */ |
| 19 | 25 | |
| 20 | 26 | #include "emu.h" |
| r248524 | r248525 | |
| 321 | 327 | PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) /* Verified */ |
| 322 | 328 | INPUT_PORTS_END |
| 323 | 329 | |
| 330 | static INPUT_PORTS_START( puzzlovek ) |
| 331 | PORT_INCLUDE(puzzlove) |
| 324 | 332 | |
| 333 | PORT_MODIFY("DSW") |
| 334 | /* 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 ) ) |
| 325 | 338 | |
| 339 | /* 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?? */ |
| 345 | INPUT_PORTS_END |
| 346 | |
| 347 | |
| 348 | |
| 326 | 349 | static const gfx_layout tlayout = |
| 327 | 350 | { |
| 328 | 351 | 16,16, |
| r248524 | r248525 | |
| 377 | 400 | MCFG_CPU_PROGRAM_MAP(silvmil_map) |
| 378 | 401 | MCFG_CPU_VBLANK_INT_DRIVER("screen", silvmil_state, irq6_line_hold) |
| 379 | 402 | |
| 380 | | MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) // 4.096MHz or 3.579545MHz - Need to verify |
| 403 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) |
| 381 | 404 | MCFG_CPU_PROGRAM_MAP(silvmil_sound_map) |
| 382 | 405 | |
| 383 | 406 | |
| r248524 | r248525 | |
| 402 | 425 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 403 | 426 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 404 | 427 | |
| 405 | | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 428 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 406 | 429 | |
| 407 | 430 | MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) |
| 408 | 431 | MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) |
| 409 | | MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) |
| 410 | | MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) |
| 432 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 411 | 433 | |
| 412 | | MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) // Need to verify |
| 413 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.2) |
| 414 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2) |
| 434 | MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) |
| 435 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 415 | 436 | MACHINE_CONFIG_END |
| 416 | 437 | |
| 417 | 438 | static MACHINE_CONFIG_DERIVED( puzzlove, silvmil ) |
| 439 | MCFG_DEVICE_REMOVE("audiocpu") |
| 440 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz) |
| 441 | MCFG_CPU_PROGRAM_MAP(silvmil_sound_map) |
| 442 | |
| 418 | 443 | MCFG_DEVICE_MODIFY("spritegen") |
| 419 | 444 | MCFG_DECO_SPRITE_BOOTLEG_TYPE(1) |
| 445 | |
| 446 | MCFG_DEVICE_REMOVE("oki") |
| 447 | MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) |
| 448 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 420 | 449 | MACHINE_CONFIG_END |
| 421 | 450 | |
| 451 | static MACHINE_CONFIG_DERIVED( puzzlovek, puzzlove ) |
| 452 | MCFG_DEVICE_REMOVE("ymsnd") |
| 453 | MCFG_YM2151_ADD("ymsnd", XTAL_15MHz/4) |
| 454 | MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) |
| 455 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 456 | MACHINE_CONFIG_END |
| 457 | |
| 458 | |
| 422 | 459 | ROM_START( silvmil ) |
| 423 | 460 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */ |
| 424 | 461 | ROM_LOAD16_BYTE( "d-13_u3.bin", 0x00000, 0x40000, CRC(46106c59) SHA1(ab965c1ea9ce89a67875530d76ac2bde7fd13e13) ) |
| r248524 | r248525 | |
| 501 | 538 | |
| 502 | 539 | ROM_START( puzzlovek ) |
| 503 | 540 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */ |
| 504 | | ROM_LOAD16_BYTE( "3.U3", 0x00000, 0x40000, CRC(82ec8472) SHA1(e4f1a9fa0431de840d6fce466e09098a8d601660) ) |
| 505 | | ROM_LOAD16_BYTE( "4.U2", 0x00001, 0x40000, CRC(64edc708) SHA1(e0b29f8cd5dd654be34452fd197a77abc872e63d) ) |
| 541 | ROM_LOAD16_BYTE( "3.U3", 0x00000, 0x40000, CRC(28f403f0) SHA1(5f9fc18f705fe81f0dceaf2d62b6caffb0b0462e) ) |
| 542 | ROM_LOAD16_BYTE( "4.U2", 0x00001, 0x40000, CRC(809371b9) SHA1(6b2dc899a4e2cf4fca777f0ec4a08e636099e0d2) ) |
| 506 | 543 | |
| 507 | 544 | ROM_REGION( 0x20000, "audiocpu", 0 ) /* z80 */ |
| 508 | | ROM_LOAD( "1.U202", 0x00000, 0x20000, CRC(3077eef3) SHA1(e2bf6e4a2166e1851486a801e74a7ec0d4599c28) ) |
| 545 | ROM_LOAD( "1.UZ02", 0x00000, 0x20000, CRC(3077e7f3) SHA1(e2bf634a2166e1851486a801e74a7ec0d4599c28) ) |
| 509 | 546 | |
| 510 | 547 | ROM_REGION( 0x40000, "oki", 0 ) /* samples */ |
| 511 | | ROM_LOAD( "2.U211", 0x00000, 0x40000, CRC(4c06ee68) SHA1(3cfcaec98e73c65a45b65d43e012c5529572c057) ) |
| 548 | ROM_LOAD( "2.UZ11", 0x00000, 0x40000, CRC(4c06ec68) SHA1(3cfca1c98e73c65a45b65d43e012c5529572c057) ) |
| 512 | 549 | |
| 513 | 550 | ROM_REGION( 0x100000, "gfx1", 0 ) |
| 514 | | ROM_LOAD16_BYTE( "10.U41", 0x000000, 0x80000, CRC(7200e878) SHA1(2ec6389f802f6e0af0210e2b01788914c0eb1d04) ) |
| 515 | | ROM_LOAD16_BYTE( "9.U42", 0x000001, 0x80000, CRC(21b1e297) SHA1(0fe89d1c62d0f79b1379e4444b119bdc4cc70cfb) ) |
| 551 | ROM_LOAD16_BYTE( "10.U41", 0x000000, 0x20000, CRC(3f952c54) SHA1(1f18579ce98305d20ec0f4e216f8170a62b9c68b) ) |
| 552 | ROM_CONTINUE ( 0x080000,0x20000 ) |
| 553 | ROM_CONTINUE ( 0x040000,0x20000 ) |
| 554 | ROM_CONTINUE ( 0x0c0000,0x20000 ) |
| 555 | ROM_LOAD16_BYTE( "9.U42", 0x000001, 0x20000, CRC(4f71ee93) SHA1(db0d00fa0f6c9b7bc638dcb50f041fb32827c7c4) ) |
| 556 | ROM_CONTINUE ( 0x080001,0x20000 ) |
| 557 | ROM_CONTINUE ( 0x040001,0x20000 ) |
| 558 | ROM_CONTINUE ( 0x0c0001,0x20000 ) |
| 516 | 559 | |
| 517 | 560 | ROM_REGION( 0x200000, "gfx2", 0 ) /* sprites */ |
| 518 | | ROM_LOAD16_BYTE( "5.U53", 0x000000, 0x80000, CRC(8707dea0) SHA1(05e80ac34982a4e4768b7f3fccd2e557ca4b2545) ) |
| 519 | | ROM_LOAD16_BYTE( "6.U54", 0x000001, 0x80000, CRC(60a6de14) SHA1(06e3c08c51d6b3a05373c9999f01b0b8d23a1c89) ) |
| 520 | | ROM_LOAD16_BYTE( "7.U55", 0x100000, 0x80000, CRC(0f2eaec4) SHA1(4ce46fc6272e3cc14dfdcd7831157433ee7cf247) ) |
| 521 | | ROM_LOAD16_BYTE( "8.U56", 0x100001, 0x80000, CRC(037dce3d) SHA1(fcef604710518982e0b4acc81a56fa703d0c9407) ) |
| 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) ) |
| 522 | 565 | ROM_END |
| 523 | 566 | |
| 524 | 567 | void silvmil_state::tumblepb_gfx1_rearrange() |
| r248524 | r248525 | |
| 549 | 592 | |
| 550 | 593 | GAME( 1995, silvmil, 0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE ) |
| 551 | 594 | GAME( 1994, puzzlove, 0, puzzlove,puzzlove,silvmil_state, silvmil, ROT0, "Para", "PuzzLove", GAME_SUPPORTS_SAVE ) |
| 552 | | GAME( 1994, puzzlovek, puzzlovek, puzzlove,puzzlove,silvmil_state, silvmil, ROT0, "Para", "PuzzLove (Korea)", GAME_SUPPORTS_SAVE ) |
| 595 | GAME( 1994, puzzlovek, puzzlove, puzzlovek,puzzlovek,silvmil_state, silvmil, ROT0, "Para", "PuzzLove (Korea)", GAME_SUPPORTS_SAVE ) |