trunk/src/mame/layout/de2a3.lay
| r0 | r23719 | |
| 1 | <!-- de2a3.lay --> |
| 2 | |
| 3 | <!-- Data East Alphanumeric Display Type 3 --> |
| 4 | <!-- 2013-06-15: Initial version. [Barry Rodewald] --> |
| 5 | |
| 6 | <mamelayout version="2"> |
| 7 | |
| 8 | <element name="digit" defstate="0"> |
| 9 | <led14segsc> |
| 10 | <color red="1.0" green="0.0" blue="0.0" /> |
| 11 | </led14segsc> |
| 12 | </element> |
| 13 | <element name="ldigit" defstate="0"> |
| 14 | <led7seg> |
| 15 | <color red="1.0" green="0.0" blue="0.0" /> |
| 16 | </led7seg> |
| 17 | </element> |
| 18 | <element name="diagled" defstate="0"> |
| 19 | <disk> |
| 20 | <color red="1.0" green="0.0" blue="0.0" /> |
| 21 | </disk> |
| 22 | </element> |
| 23 | <element name="background"> |
| 24 | <rect> |
| 25 | <bounds left="0" top="0" right="1" bottom="1" /> |
| 26 | <color red="0.0" green="0.0" blue="0.0" /> |
| 27 | </rect> |
| 28 | </element> |
| 29 | <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 30 | <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 31 | <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 32 | <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 33 | |
| 34 | <view name="Default Layout"> |
| 35 | |
| 36 | <!-- Background --> |
| 37 | <backdrop element="background"> |
| 38 | <bounds left="0" top="20" right="318" bottom="394" /> |
| 39 | </backdrop> |
| 40 | |
| 41 | <!-- LEDs --> |
| 42 | |
| 43 | <!-- Player 1 Score --> |
| 44 | |
| 45 | <bezel name="digit0" element="digit"> |
| 46 | <bounds left="10" top="45" right="30" bottom="84" /> |
| 47 | </bezel> |
| 48 | <bezel name="digit1" element="digit"> |
| 49 | <bounds left="34" top="45" right="54" bottom="84" /> |
| 50 | </bezel> |
| 51 | <bezel name="digit2" element="digit"> |
| 52 | <bounds left="58" top="45" right="78" bottom="84" /> |
| 53 | </bezel> |
| 54 | <bezel name="digit3" element="digit"> |
| 55 | <bounds left="82" top="45" right="102" bottom="84" /> |
| 56 | </bezel> |
| 57 | <bezel name="digit4" element="digit"> |
| 58 | <bounds left="106" top="45" right="126" bottom="84" /> |
| 59 | </bezel> |
| 60 | <bezel name="digit5" element="digit"> |
| 61 | <bounds left="130" top="45" right="150" bottom="84" /> |
| 62 | </bezel> |
| 63 | <bezel name="digit6" element="digit"> |
| 64 | <bounds left="154" top="45" right="174" bottom="84" /> |
| 65 | </bezel> |
| 66 | <bezel name="digit7" element="digit"> |
| 67 | <bounds left="178" top="45" right="198" bottom="84" /> |
| 68 | </bezel> |
| 69 | |
| 70 | <!-- Player 2 Score --> |
| 71 | <bezel name="digit8" element="digit"> |
| 72 | <bounds left="202" top="45" right="222" bottom="84" /> |
| 73 | </bezel> |
| 74 | <bezel name="digit9" element="digit"> |
| 75 | <bounds left="226" top="45" right="246" bottom="84" /> |
| 76 | </bezel> |
| 77 | <bezel name="digit10" element="digit"> |
| 78 | <bounds left="250" top="45" right="270" bottom="84" /> |
| 79 | </bezel> |
| 80 | <bezel name="digit11" element="digit"> |
| 81 | <bounds left="274" top="45" right="294" bottom="84" /> |
| 82 | </bezel> |
| 83 | <bezel name="digit12" element="digit"> |
| 84 | <bounds left="298" top="45" right="318" bottom="84" /> |
| 85 | </bezel> |
| 86 | <bezel name="digit13" element="digit"> |
| 87 | <bounds left="322" top="45" right="342" bottom="84" /> |
| 88 | </bezel> |
| 89 | <bezel name="digit14" element="digit"> |
| 90 | <bounds left="346" top="45" right="366" bottom="84" /> |
| 91 | </bezel> |
| 92 | <bezel name="digit15" element="digit"> |
| 93 | <bounds left="370" top="45" right="390" bottom="84" /> |
| 94 | </bezel> |
| 95 | |
| 96 | <!-- Player 3 Score --> |
| 97 | <bezel name="digit16" element="digit"> |
| 98 | <bounds left="10" top="100" right="30" bottom="139" /> |
| 99 | </bezel> |
| 100 | <bezel name="digit17" element="digit"> |
| 101 | <bounds left="34" top="100" right="54" bottom="139" /> |
| 102 | </bezel> |
| 103 | <bezel name="digit18" element="digit"> |
| 104 | <bounds left="58" top="100" right="78" bottom="139" /> |
| 105 | </bezel> |
| 106 | <bezel name="digit19" element="digit"> |
| 107 | <bounds left="82" top="100" right="102" bottom="139" /> |
| 108 | </bezel> |
| 109 | <bezel name="digit20" element="digit"> |
| 110 | <bounds left="106" top="100" right="126" bottom="139" /> |
| 111 | </bezel> |
| 112 | <bezel name="digit21" element="digit"> |
| 113 | <bounds left="130" top="100" right="150" bottom="139" /> |
| 114 | </bezel> |
| 115 | <bezel name="digit22" element="digit"> |
| 116 | <bounds left="154" top="100" right="174" bottom="139" /> |
| 117 | </bezel> |
| 118 | <bezel name="digit23" element="digit"> |
| 119 | <bounds left="178" top="100" right="198" bottom="139" /> |
| 120 | </bezel> |
| 121 | |
| 122 | <!-- Player 4 Score --> |
| 123 | <bezel name="digit24" element="digit"> |
| 124 | <bounds left="202" top="100" right="222" bottom="139" /> |
| 125 | </bezel> |
| 126 | <bezel name="digit25" element="digit"> |
| 127 | <bounds left="226" top="100" right="246" bottom="139" /> |
| 128 | </bezel> |
| 129 | <bezel name="digit26" element="digit"> |
| 130 | <bounds left="250" top="100" right="270" bottom="139" /> |
| 131 | </bezel> |
| 132 | <bezel name="digit27" element="digit"> |
| 133 | <bounds left="274" top="100" right="294" bottom="139" /> |
| 134 | </bezel> |
| 135 | <bezel name="digit28" element="digit"> |
| 136 | <bounds left="298" top="100" right="318" bottom="139" /> |
| 137 | </bezel> |
| 138 | <bezel name="digit29" element="digit"> |
| 139 | <bounds left="322" top="100" right="342" bottom="139" /> |
| 140 | </bezel> |
| 141 | <bezel name="digit30" element="digit"> |
| 142 | <bounds left="346" top="100" right="366" bottom="139" /> |
| 143 | </bezel> |
| 144 | <bezel name="digit31" element="digit"> |
| 145 | <bounds left="370" top="100" right="390" bottom="139" /> |
| 146 | </bezel> |
| 147 | |
| 148 | <bezel element="P3"><bounds left="10" right="174" top="30" bottom="42" /></bezel> |
| 149 | <bezel element="P4"><bounds left="190" right="354" top="30" bottom="42" /></bezel> |
| 150 | <bezel element="P5"><bounds left="10" right="174" top="88" bottom="100" /></bezel> |
| 151 | <bezel element="P6"><bounds left="190" right="354" top="88" bottom="100" /></bezel> |
| 152 | </view> |
| 153 | </mamelayout> |
trunk/src/mame/drivers/de_2.c
| r23718 | r23719 | |
| 1 | 1 | /* |
| 2 | | DataEast/Sega Version 2 |
| 2 | DataEast/Sega Version 1 and 2 |
| 3 | |
| 4 | Main CPU: 6808 @ 4MHz |
| 5 | Audio CPU: 68B09E @ 8MHz (internally divided by 4) |
| 6 | Audio: YM2151 @ 3.58MHz, MSM5205 @ 384kHz |
| 3 | 7 | */ |
| 4 | 8 | |
| 5 | 9 | |
| r23718 | r23719 | |
| 11 | 15 | #include "sound/2151intf.h" |
| 12 | 16 | #include "sound/msm5205.h" |
| 13 | 17 | #include "de2.lh" |
| 18 | #include "de2a3.lh" |
| 14 | 19 | |
| 15 | 20 | // To start Secret Service, hold I, O and Left ALT while pressing Start. |
| 21 | // To start Laser War, hold S, D, and F while pressing Start. |
| 16 | 22 | |
| 17 | 23 | // Data East CPU board is similar to Williams System 11, but without the generic audio board. |
| 18 | 24 | // For now, we'll presume the timings are the same. |
| r23718 | r23719 | |
| 63 | 69 | public: |
| 64 | 70 | DECLARE_DRIVER_INIT(de_2); |
| 65 | 71 | DECLARE_MACHINE_RESET(de_2); |
| 72 | DECLARE_MACHINE_RESET(de_2_alpha3); |
| 66 | 73 | DECLARE_WRITE8_MEMBER(sample_w); |
| 67 | 74 | DECLARE_WRITE8_MEMBER(pia34_pa_w); |
| 68 | 75 | DECLARE_READ8_MEMBER(switch_r); |
| r23718 | r23719 | |
| 94 | 101 | UINT8 m_sample_data; |
| 95 | 102 | bool m_more_data; |
| 96 | 103 | bool m_nmi_enable; |
| 104 | bool m_is_alpha3; |
| 97 | 105 | |
| 98 | 106 | private: |
| 99 | 107 | UINT32 m_segment1; |
| r23718 | r23719 | |
| 245 | 253 | { |
| 246 | 254 | membank("sample_bank")->set_entry(0); |
| 247 | 255 | m_more_data = false; |
| 256 | m_is_alpha3 = false; |
| 248 | 257 | } |
| 249 | 258 | |
| 259 | MACHINE_RESET_MEMBER(de_2_state, de_2_alpha3) |
| 260 | { |
| 261 | membank("sample_bank")->set_entry(0); |
| 262 | m_more_data = false; |
| 263 | m_is_alpha3 = true; |
| 264 | } |
| 265 | |
| 250 | 266 | DRIVER_INIT_MEMBER(de_2_state, de_2) |
| 251 | 267 | { |
| 252 | 268 | UINT8 *ROM = memregion("sound1")->base(); |
| r23718 | r23719 | |
| 385 | 401 | m_segment2 |= 0x30000; |
| 386 | 402 | if ((m_segment2 & 0x70000) == 0x30000) |
| 387 | 403 | { |
| 388 | | output_set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0)); |
| 404 | if(m_is_alpha3) // Alphanumeric type 2 uses 7 segment LEDs on the bottom row, type 3 uses 14 segment LEDs |
| 405 | output_set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0)); |
| 406 | else |
| 407 | output_set_digit_value(m_strobe+16, BITSWAP16(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0)); |
| 389 | 408 | m_segment2 |= 0x40000; |
| 390 | 409 | } |
| 391 | 410 | } |
| r23718 | r23719 | |
| 582 | 601 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50) |
| 583 | 602 | MACHINE_CONFIG_END |
| 584 | 603 | |
| 604 | static MACHINE_CONFIG_DERIVED( de_2_alpha3, de_2 ) |
| 605 | MCFG_MACHINE_RESET_OVERRIDE(de_2_state, de_2_alpha3) |
| 606 | MCFG_DEFAULT_LAYOUT(layout_de2a3) |
| 607 | MACHINE_CONFIG_END |
| 608 | |
| 609 | /*------------------------------------------------------------------- |
| 610 | / Laser War - CPU Rev 1 /Alpha Type 1 - 32K ROM - 32/64K Sound Roms |
| 611 | /-------------------------------------------------------------------*/ |
| 612 | ROM_START(lwar_a83) |
| 613 | ROM_REGION(0x10000, "maincpu", 0) |
| 614 | ROM_LOAD("lwar8-3.c5", 0x8000, 0x8000, CRC(eee158ee) SHA1(54db2342bdd15b16fee906dc65f183a957fd0012)) |
| 615 | ROM_REGION(0x10000, "audiocpu", 0) |
| 616 | ROM_LOAD("lwar_e9.snd", 0x8000, 0x8000, CRC(9a6c834d) SHA1(c6e2c4658db4bd8dfcbb0351793837cdff30ba28)) |
| 617 | ROM_REGION(0x40000, "sound1", 0) |
| 618 | ROM_LOAD("lwar_e6.snd", 0x00000, 0x10000, CRC(7307d795) SHA1(5d88b8d883a2f17ca9fa30c7e7ac29c9f236ac4d)) |
| 619 | ROM_LOAD("lwar_e7.snd", 0x10000, 0x10000, CRC(0285cff9) SHA1(2c5e3de649e419ec7944059f2a226aaf58fe2af5)) |
| 620 | ROM_END |
| 621 | |
| 622 | ROM_START(lwar_e90) |
| 623 | ROM_REGION(0x10000, "maincpu", 0) |
| 624 | ROM_LOAD("lwar9-0.e5", 0x8000, 0x8000, CRC(b596151f) SHA1(10dade79ded71625770ec7e21ea50b7aa64023d0)) |
| 625 | ROM_REGION(0x10000, "audiocpu", 0) |
| 626 | ROM_LOAD("lwar_e9.snd", 0x8000, 0x8000, CRC(9a6c834d) SHA1(c6e2c4658db4bd8dfcbb0351793837cdff30ba28)) |
| 627 | ROM_REGION(0x40000, "sound1", 0) |
| 628 | ROM_LOAD("lwar_e6.snd", 0x00000, 0x10000, CRC(7307d795) SHA1(5d88b8d883a2f17ca9fa30c7e7ac29c9f236ac4d)) |
| 629 | ROM_LOAD("lwar_e7.snd", 0x10000, 0x10000, CRC(0285cff9) SHA1(2c5e3de649e419ec7944059f2a226aaf58fe2af5)) |
| 630 | ROM_END |
| 631 | |
| 632 | |
| 585 | 633 | /*----------------------------------------------------------------------------------- |
| 586 | 634 | / Monday Night Football - CPU Rev 2 /Alpha Type 3 16/32K Roms - 32/64K Sound Roms |
| 587 | 635 | /----------------------------------------------------------------------------------*/ |
| r23718 | r23719 | |
| 702 | 750 | ROM_LOAD("torpef4.rom", 0x10000, 0x10000, CRC(83a4e7f3) SHA1(96deac9251fe68cc0319ac009becd424c4e444c5)) |
| 703 | 751 | ROM_END |
| 704 | 752 | |
| 705 | | GAME(1989, mnfb_c27, 0, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "Monday Night Football (2.7, 50cts)", GAME_IS_SKELETON_MECHANICAL) |
| 706 | | GAME(1990, poto_a32, 0, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "The Phantom of the Opera (3.2)", GAME_IS_SKELETON_MECHANICAL) |
| 753 | GAME(1987, lwar_a83, 0, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (8.3)", GAME_IS_SKELETON_MECHANICAL) |
| 754 | GAME(1987, lwar_e90, lwar_a83, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (9.0 Europe)", GAME_IS_SKELETON_MECHANICAL) |
| 755 | GAME(1989, mnfb_c27, 0, de_2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "Monday Night Football (2.7, 50cts)", GAME_IS_SKELETON_MECHANICAL) |
| 756 | GAME(1990, poto_a32, 0, de_2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "The Phantom of the Opera (3.2)", GAME_IS_SKELETON_MECHANICAL) |
| 707 | 757 | GAME(1989, play_a24, 0, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "Playboy 35th Anniversary (2.4)", GAME_IS_SKELETON_MECHANICAL) |
| 708 | | GAME(1989, robo_a34, 0, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "Robocop (3.4)", GAME_IS_SKELETON_MECHANICAL) |
| 758 | GAME(1989, robo_a34, 0, de_2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "Robocop (3.4)", GAME_IS_SKELETON_MECHANICAL) |
| 709 | 759 | GAME(1988, ssvc_a26, 0, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (2.6)", GAME_IS_SKELETON_MECHANICAL) |
| 710 | 760 | GAME(1988, ssvc_b26, ssvc_a26, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (2.6 alternate sound)", GAME_IS_SKELETON_MECHANICAL) |
| 711 | 761 | GAME(1988, tmac_a24, 0, de_2, de_2, de_2_state, de_2, ROT0, "Data East", "Time Machine (2.4)", GAME_IS_SKELETON_MECHANICAL) |