trunk/src/mame/drivers/zodiack.c
| r22612 | r22613 | |
| 21 | 21 | All it does is scanning the whole 64k z80 space via all those pop opcodes ... |
| 22 | 22 | DE register values are always discarded ... bug in coding or ROM patch? |
| 23 | 23 | |
| 24 | | TODO: |
| 25 | | |
| 26 | | - Verify Z80 and AY8910 clock speeds |
| 27 | | |
| 28 | 24 | ============================================================================ |
| 29 | 25 | |
| 30 | 26 | Zodiack |
| r22612 | r22613 | |
| 85 | 81 | |
| 86 | 82 | ***************************************************************************/ |
| 87 | 83 | |
| 88 | | |
| 89 | 84 | #include "emu.h" |
| 90 | 85 | #include "cpu/z80/z80.h" |
| 91 | 86 | #include "sound/ay8910.h" |
| 92 | 87 | #include "includes/zodiack.h" |
| 93 | 88 | |
| 89 | #define PIXEL_CLOCK (XTAL_18_432MHz/3) |
| 94 | 90 | |
| 91 | #define HTOTAL (396) |
| 92 | #define HBEND (0) |
| 93 | #define HBSTART (256) |
| 94 | |
| 95 | #define VTOTAL (256) |
| 96 | #define VBEND (16) |
| 97 | #define VBSTART (240) |
| 98 | |
| 99 | |
| 95 | 100 | WRITE8_MEMBER( zodiack_state::nmi_mask_w ) |
| 96 | 101 | { |
| 97 | 102 | m_nmi_enable = (data & 1) ^ 1; |
| r22612 | r22613 | |
| 555 | 560 | static MACHINE_CONFIG_START( zodiack, zodiack_state ) |
| 556 | 561 | |
| 557 | 562 | /* basic machine hardware */ |
| 558 | | MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4.00 MHz??? */ |
| 563 | MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) |
| 559 | 564 | MCFG_CPU_PROGRAM_MAP(main_map) |
| 560 | 565 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", zodiack_state, zodiack_scanline, "screen", 0, 1) |
| 561 | 566 | |
| 562 | | MCFG_CPU_ADD("audiocpu", Z80, 14318000/8) /* 1.78975 MHz??? */ |
| 567 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_18_432MHz/6) |
| 563 | 568 | MCFG_CPU_PROGRAM_MAP(sound_map) |
| 564 | 569 | MCFG_CPU_IO_MAP(io_map) |
| 565 | 570 | MCFG_CPU_PERIODIC_INT_DRIVER(zodiack_state, zodiack_sound_nmi_gen, 8*60) /* IRQs are triggered by the main CPU */ |
| 566 | 571 | |
| 567 | 572 | /* video hardware */ |
| 568 | 573 | MCFG_SCREEN_ADD("screen", RASTER) |
| 569 | | MCFG_SCREEN_REFRESH_RATE(60) |
| 570 | | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration */) |
| 574 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
| 571 | 575 | MCFG_SCREEN_UPDATE_DRIVER(zodiack_state, screen_update) |
| 572 | | MCFG_SCREEN_SIZE(32*8, 32*8) |
| 573 | | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
| 574 | 576 | |
| 575 | 577 | MCFG_GFXDECODE(zodiack) |
| 576 | 578 | MCFG_PALETTE_LENGTH(4*8+2*8+2*1) |
| r22612 | r22613 | |
| 580 | 582 | /* sound hardware */ |
| 581 | 583 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 582 | 584 | |
| 583 | | MCFG_SOUND_ADD("aysnd", AY8910, 1789750) |
| 585 | MCFG_SOUND_ADD("aysnd", AY8910, XTAL_18_432MHz/12) |
| 584 | 586 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 585 | 587 | MACHINE_CONFIG_END |
| 586 | 588 | |
| r22612 | r22613 | |
| 694 | 696 | ROM_LOAD( "mb7051.2b", 0x0020, 0x0020, CRC(465e31d4) SHA1(d47a4aa0e8931dcd8f85017ef04c2f6ad79f5725) ) |
| 695 | 697 | ROM_END |
| 696 | 698 | |
| 697 | | GAME( 1983, zodiack, 0, zodiack, zodiack, driver_device, 0, ROT270, "Orca (Esco Trading Co)", "Zodiack", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) /* bullet color needs to be verified */ |
| 698 | | GAME( 1983, dogfight, 0, zodiack, dogfight, driver_device, 0, ROT270, "Orca / Thunderbolt", "Dog Fight (Thunderbolt)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) /* bullet color needs to be verified */ |
| 699 | | GAME( 1982, moguchan, 0, percuss, moguchan, driver_device, 0, ROT270, "Orca (Eastern Commerce Inc. license) (bootleg?)", "Moguchan", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) /* license copyright taken from ROM string at $0b5c */ |
| 700 | | GAME( 1981, percuss, 0, percuss, percuss, driver_device, 0, ROT270, "Orca (bootleg?)", "The Percussor", GAME_SUPPORTS_SAVE ) |
| 701 | | GAME( 1982, bounty, 0, percuss, bounty, driver_device, 0, ROT180, "Orca", "The Bounty", GAME_SUPPORTS_SAVE ) |
| 699 | |
| 700 | GAME( 1983, zodiack, 0, zodiack, zodiack, driver_device, 0, ROT270, "Orca (Esco Trading Co., Inc. license)", "Zodiack", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) /* bullet color needs to be verified */ |
| 701 | GAME( 1983, dogfight, 0, zodiack, dogfight, driver_device, 0, ROT270, "Orca / Thunderbolt", "Dog Fight (Thunderbolt)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) /* bullet color needs to be verified */ |
| 702 | GAME( 1982, moguchan, 0, percuss, moguchan, driver_device, 0, ROT270, "Orca (Eastern Commerce Inc. license)", "Mogu Chan (bootleg?)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) /* license copyright taken from ROM string at $0b5c */ |
| 703 | GAME( 1981, percuss, 0, percuss, percuss, driver_device, 0, ROT270, "Orca (bootleg?)", "The Percussor", GAME_SUPPORTS_SAVE ) |
| 704 | GAME( 1982, bounty, 0, percuss, bounty, driver_device, 0, ROT180, "Orca", "The Bounty", GAME_SUPPORTS_SAVE ) |