trunk/src/mame/drivers/eolith.c
| r242901 | r242902 | |
| 103 | 103 | |
| 104 | 104 | #include "machine/eepromser.h" |
| 105 | 105 | #include "includes/eolith.h" |
| 106 | | #include "includes/eolithsp.h" |
| 107 | 106 | |
| 108 | 107 | |
| 109 | | |
| 110 | | |
| 111 | | |
| 112 | 108 | /************************************* |
| 113 | 109 | * |
| 114 | 110 | * Control |
| r242901 | r242902 | |
| 125 | 121 | bit 8 = ??? |
| 126 | 122 | bit 9 = ??? |
| 127 | 123 | */ |
| 128 | | eolith_speedup_read(space); |
| 124 | speedup_read(); |
| 129 | 125 | |
| 130 | 126 | return (m_in0->read() & ~0x300) | (machine().rand() & 0x300); |
| 131 | 127 | } |
| r242901 | r242902 | |
| 165 | 161 | m_sound_data = data; |
| 166 | 162 | m_soundcpu->set_input_line(MCS51_INT0_LINE, ASSERT_LINE); |
| 167 | 163 | |
| 168 | | space.machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); |
| 164 | machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); |
| 169 | 165 | } |
| 170 | 166 | |
| 171 | 167 | |
| r242901 | r242902 | |
| 1491 | 1487 | |
| 1492 | 1488 | DRIVER_INIT_MEMBER(eolith_state,eolith) |
| 1493 | 1489 | { |
| 1494 | | init_eolith_speedup(machine()); |
| 1490 | init_speedup(); |
| 1495 | 1491 | |
| 1496 | 1492 | // Sound CPU -> QS1000 CPU serial link |
| 1497 | 1493 | m_soundcpu->i8051_set_serial_tx_callback(write8_delegate(FUNC(eolith_state::soundcpu_to_qs1000),this)); |
| 1498 | 1494 | |
| 1499 | 1495 | // Configure the sound ROM banking |
| 1500 | 1496 | membank("sound_bank")->configure_entries(0, 16, memregion("sounddata")->base(), 0x8000); |
| 1497 | |
| 1498 | save_item(NAME(m_sound_data)); |
| 1501 | 1499 | } |
| 1502 | 1500 | |
| 1503 | 1501 | DRIVER_INIT_MEMBER(eolith_state,landbrk) |
| r242901 | r242902 | |
| 1569 | 1567 | * |
| 1570 | 1568 | *************************************/ |
| 1571 | 1569 | |
| 1572 | | GAME( 1998, linkypip, 0, eolith45, linkypip, eolith_state, eolith, ROT0, "Eolith", "Linky Pipe", GAME_IMPERFECT_SOUND ) |
| 1573 | | GAME( 1998, ironfort, 0, ironfort, ironfort, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress", GAME_IMPERFECT_SOUND ) |
| 1574 | | GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress (Japan)", GAME_IMPERFECT_SOUND ) |
| 1575 | | GAME( 1998, hidnctch, 0, eolith45, hidnctch, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", GAME_IMPERFECT_SOUND ) // or Teurrin Geurim Chajgi '98 |
| 1576 | | GAME( 1998, raccoon, 0, eolith45, raccoon, eolith_state, eolith, ROT0, "Eolith", "Raccoon World", GAME_IMPERFECT_SOUND ) |
| 1577 | | GAME( 1998, puzzlekg, 0, eolith45, puzzlekg, eolith_state, eolith, ROT0, "Eolith", "Puzzle King (Dance & Puzzle)", GAME_IMPERFECT_SOUND ) |
| 1578 | | GAME( 1999, candy, 0, eolith50, candy, eolith_state, eolith, ROT0, "Eolith", "Candy Candy", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 1579 | | GAME( 1999, hidctch2, 0, eolith50, hidctch2, eolith_state, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", GAME_IMPERFECT_SOUND ) |
| 1580 | | GAME( 1999, hidctch2a, hidctch2, eolith50, hidctch2, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", GAME_IMPERFECT_SOUND ) |
| 1581 | | GAME( 1999, hidnc2k, 0, eolith50, hidctch2, eolith_state, hidnc2k, ROT0, "Eolith", "Hidden Catch 2000 (AT89c52 protected)", GAME_IMPERFECT_SOUND ) |
| 1582 | | GAME( 1999, landbrk, 0, eolith45, landbrk, eolith_state, landbrk, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", GAME_IMPERFECT_SOUND ) // or Miss Ttang Jjareugi |
| 1583 | | GAME( 1999, landbrka, landbrk, eolith45, landbrk, eolith_state, landbrka, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected)", GAME_IMPERFECT_SOUND ) // or Miss Ttang Jjareugi |
| 1584 | | GAME( 1999, nhidctch, 0, eolith45, hidctch2, eolith_state, eolith, ROT0, "Eolith", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", GAME_IMPERFECT_SOUND ) // or New Teurrin Geurim Chajgi '98 |
| 1585 | | GAME( 1999, penfan, 0, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 1)", GAME_IMPERFECT_SOUND ) // alt title of Ribbon |
| 1586 | | GAME( 1999, penfana, penfan, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)", GAME_IMPERFECT_SOUND ) |
| 1587 | | GAME( 2000, stealsee, 0, eolith45, stealsee, eolith_state, eolith, ROT0, "Moov Generation / Eolith", "Steal See", GAME_IMPERFECT_SOUND ) |
| 1588 | | GAME( 2000, hidctch3, 0, eolith50, hidctch3, eolith_state, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND ) |
| 1589 | | GAME( 2001, fort2b, 0, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", GAME_IMPERFECT_SOUND ) |
| 1590 | | GAME( 2001, fort2ba, fort2b, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND ) |
| 1570 | GAME( 1998, linkypip, 0, eolith45, linkypip, eolith_state, eolith, ROT0, "Eolith", "Linky Pipe", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1571 | GAME( 1998, ironfort, 0, ironfort, ironfort, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1572 | GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1573 | GAME( 1998, hidnctch, 0, eolith45, hidnctch, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // or Teurrin Geurim Chajgi '98 |
| 1574 | GAME( 1998, raccoon, 0, eolith45, raccoon, eolith_state, eolith, ROT0, "Eolith", "Raccoon World", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1575 | GAME( 1998, puzzlekg, 0, eolith45, puzzlekg, eolith_state, eolith, ROT0, "Eolith", "Puzzle King (Dance & Puzzle)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1576 | GAME( 1999, candy, 0, eolith50, candy, eolith_state, eolith, ROT0, "Eolith", "Candy Candy", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1577 | GAME( 1999, hidctch2, 0, eolith50, hidctch2, eolith_state, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1578 | GAME( 1999, hidctch2a, hidctch2, eolith50, hidctch2, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1579 | GAME( 1999, hidnc2k, 0, eolith50, hidctch2, eolith_state, hidnc2k, ROT0, "Eolith", "Hidden Catch 2000 (AT89c52 protected)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1580 | GAME( 1999, landbrk, 0, eolith45, landbrk, eolith_state, landbrk, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // or Miss Ttang Jjareugi |
| 1581 | GAME( 1999, landbrka, landbrk, eolith45, landbrk, eolith_state, landbrka, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // or Miss Ttang Jjareugi |
| 1582 | GAME( 1999, nhidctch, 0, eolith45, hidctch2, eolith_state, eolith, ROT0, "Eolith", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // or New Teurrin Geurim Chajgi '98 |
| 1583 | GAME( 1999, penfan, 0, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // alt title of Ribbon |
| 1584 | GAME( 1999, penfana, penfan, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1585 | GAME( 2000, stealsee, 0, eolith45, stealsee, eolith_state, eolith, ROT0, "Moov Generation / Eolith", "Steal See", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1586 | GAME( 2000, hidctch3, 0, eolith50, hidctch3, eolith_state, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1587 | GAME( 2001, fort2b, 0, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1588 | GAME( 2001, fort2ba, fort2b, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
trunk/src/mame/drivers/eolithsp.c
| r242901 | r242902 | |
| 9 | 9 | */ |
| 10 | 10 | |
| 11 | 11 | #include "emu.h" |
| 12 | | #include "includes/eolithsp.h" |
| 13 | 12 | #include "includes/eolith.h" |
| 14 | 13 | |
| 15 | | static int eolith_speedup_address; |
| 16 | | static int eolith_speedup_address2; |
| 17 | | static int eolith_speedup_resume_scanline; |
| 18 | | static int eolith_vblank = 0; |
| 19 | | static int eolith_scanline = 0; |
| 20 | 14 | |
| 21 | | void eolith_speedup_read(address_space &space) |
| 15 | void eolith_state::speedup_read() |
| 22 | 16 | { |
| 23 | 17 | /* for debug */ |
| 24 | | //if ((space.device().safe_pc()!=eolith_speedup_address) && (eolith_vblank!=1) ) |
| 25 | | // printf("%s:eolith speedup_read data %02x\n",space.machine().describe_context(), eolith_vblank); |
| 18 | //if ((space.device().safe_pc()!=m_speedup_address) && (m_speedup_vblank!=1) ) |
| 19 | // printf("%s:eolith speedup_read data %02x\n",space.machine().describe_context(), m_speedup_vblank); |
| 26 | 20 | |
| 27 | | if (eolith_vblank==0 && eolith_scanline < eolith_speedup_resume_scanline) |
| 21 | if (m_speedup_vblank==0 && m_speedup_scanline < m_speedup_resume_scanline) |
| 28 | 22 | { |
| 29 | | int pc = space.device().safe_pc(); |
| 23 | int pc = m_maincpu->pc(); |
| 30 | 24 | |
| 31 | | if ((pc==eolith_speedup_address) || (pc==eolith_speedup_address2)) |
| 25 | if ((pc==m_speedup_address) || (pc==m_speedup_address2)) |
| 32 | 26 | { |
| 33 | | space.device().execute().spin_until_trigger(1000); |
| 27 | m_maincpu->spin_until_trigger(1000); |
| 34 | 28 | } |
| 35 | 29 | } |
| 36 | 30 | } |
| r242901 | r242902 | |
| 71 | 65 | }; |
| 72 | 66 | |
| 73 | 67 | |
| 74 | | void init_eolith_speedup(running_machine &machine) |
| 68 | void eolith_state::init_speedup() |
| 75 | 69 | { |
| 76 | 70 | int n_game = 0; |
| 77 | | eolith_speedup_address = 0; |
| 78 | | eolith_speedup_resume_scanline = 0; |
| 71 | m_speedup_address = 0; |
| 72 | m_speedup_address2 = 0; |
| 73 | m_speedup_resume_scanline = 0; |
| 74 | m_speedup_vblank = 0; |
| 75 | m_speedup_scanline = 0; |
| 79 | 76 | |
| 80 | 77 | while( eolith_speedup_table[ n_game ].s_name != NULL ) |
| 81 | 78 | { |
| 82 | | if( strcmp( machine.system().name, eolith_speedup_table[ n_game ].s_name ) == 0 ) |
| 79 | if( strcmp( machine().system().name, eolith_speedup_table[ n_game ].s_name ) == 0 ) |
| 83 | 80 | { |
| 84 | | eolith_speedup_address = eolith_speedup_table[ n_game ].speedup_address; |
| 85 | | eolith_speedup_address2 = eolith_speedup_table[ n_game ].speedup_address2; |
| 86 | | eolith_speedup_resume_scanline = eolith_speedup_table[ n_game ].speedup_resume_scanline; |
| 81 | m_speedup_address = eolith_speedup_table[ n_game ].speedup_address; |
| 82 | m_speedup_address2 = eolith_speedup_table[ n_game ].speedup_address2; |
| 83 | m_speedup_resume_scanline = eolith_speedup_table[ n_game ].speedup_resume_scanline; |
| 87 | 84 | } |
| 88 | 85 | n_game++; |
| 89 | 86 | } |
| 87 | |
| 88 | save_item(NAME(m_speedup_vblank)); |
| 89 | save_item(NAME(m_speedup_scanline)); |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | 92 | /* todo, use timers instead! */ |
| r242901 | r242902 | |
| 94 | 94 | { |
| 95 | 95 | if (param==0) |
| 96 | 96 | { |
| 97 | | eolith_vblank = 0; |
| 97 | m_speedup_vblank = 0; |
| 98 | 98 | } |
| 99 | 99 | |
| 100 | | if (param==eolith_speedup_resume_scanline) |
| 100 | if (param==m_speedup_resume_scanline) |
| 101 | 101 | { |
| 102 | 102 | machine().scheduler().trigger(1000); |
| 103 | 103 | } |
| 104 | 104 | |
| 105 | 105 | if (param==240) |
| 106 | 106 | { |
| 107 | | eolith_vblank = 1; |
| 107 | m_speedup_vblank = 1; |
| 108 | 108 | } |
| 109 | 109 | } |
| 110 | 110 | |
| 111 | 111 | CUSTOM_INPUT_MEMBER(eolith_state::eolith_speedup_getvblank) |
| 112 | 112 | { |
| 113 | | // printf("%s:eolith speedup_read data %02x\n",machine().describe_context(), eolith_vblank); |
| 113 | // printf("%s:eolith speedup_read data %02x\n",machine().describe_context(), m_speedup_vblank); |
| 114 | 114 | |
| 115 | 115 | |
| 116 | 116 | return (m_screen->vpos() >= 240); |
| r242901 | r242902 | |
| 122 | 122 | int pc = m_maincpu->pc(); |
| 123 | 123 | |
| 124 | 124 | if (pc==0x400081ec) |
| 125 | | if(!eolith_vblank) |
| 125 | if(!m_speedup_vblank) |
| 126 | 126 | m_maincpu->eat_cycles(500); |
| 127 | 127 | |
| 128 | 128 | return (m_screen->vpos() >= 240); |
trunk/src/mame/drivers/vegaeo.c
| r242901 | r242902 | |
| 16 | 16 | #include "machine/at28c16.h" |
| 17 | 17 | #include "sound/qs1000.h" |
| 18 | 18 | #include "includes/eolith.h" |
| 19 | | #include "includes/eolithsp.h" |
| 20 | 19 | |
| 21 | 20 | |
| 22 | 21 | class vegaeo_state : public eolith_state |
| r242901 | r242902 | |
| 27 | 26 | |
| 28 | 27 | UINT32 *m_vega_vram; |
| 29 | 28 | UINT8 m_vega_vbuffer; |
| 29 | |
| 30 | 30 | DECLARE_WRITE32_MEMBER(vega_vram_w); |
| 31 | 31 | DECLARE_READ32_MEMBER(vega_vram_r); |
| 32 | 32 | DECLARE_WRITE32_MEMBER(vega_misc_w); |
| 33 | 33 | DECLARE_READ32_MEMBER(vegaeo_custom_read); |
| 34 | 34 | DECLARE_WRITE32_MEMBER(soundlatch_w); |
| 35 | | |
| 36 | 35 | DECLARE_READ8_MEMBER(qs1000_p1_r); |
| 37 | | |
| 38 | 36 | DECLARE_WRITE8_MEMBER(qs1000_p1_w); |
| 39 | 37 | DECLARE_WRITE8_MEMBER(qs1000_p2_w); |
| 40 | 38 | DECLARE_WRITE8_MEMBER(qs1000_p3_w); |
| 39 | |
| 41 | 40 | DECLARE_DRIVER_INIT(vegaeo); |
| 42 | 41 | DECLARE_VIDEO_START(vega); |
| 42 | |
| 43 | 43 | UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 44 | 44 | }; |
| 45 | 45 | |
| r242901 | r242902 | |
| 62 | 62 | // ...x .... - ? |
| 63 | 63 | // ..x. .... - /IRQ clear |
| 64 | 64 | |
| 65 | | qs1000_device *qs1000 = machine().device<qs1000_device>("qs1000"); |
| 66 | | |
| 67 | 65 | membank("qs1000:bank")->set_entry(data & 0x07); |
| 68 | 66 | |
| 69 | 67 | if (!BIT(data, 5)) |
| 70 | | qs1000->set_irq(CLEAR_LINE); |
| 68 | m_qs1000->set_irq(CLEAR_LINE); |
| 71 | 69 | } |
| 72 | 70 | |
| 73 | 71 | WRITE32_MEMBER(vegaeo_state::vega_vram_w) |
| r242901 | r242902 | |
| 115 | 113 | |
| 116 | 114 | READ32_MEMBER(vegaeo_state::vegaeo_custom_read) |
| 117 | 115 | { |
| 118 | | eolith_speedup_read(space); |
| 116 | speedup_read(); |
| 119 | 117 | return ioport("SYSTEM")->read(); |
| 120 | 118 | } |
| 121 | 119 | |
| 122 | 120 | WRITE32_MEMBER(vegaeo_state::soundlatch_w) |
| 123 | 121 | { |
| 124 | | qs1000_device *qs1000 = space.machine().device<qs1000_device>("qs1000"); |
| 125 | | |
| 126 | 122 | soundlatch_byte_w(space, 0, data); |
| 127 | | qs1000->set_irq(ASSERT_LINE); |
| 123 | m_qs1000->set_irq(ASSERT_LINE); |
| 128 | 124 | |
| 129 | 125 | machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); |
| 130 | 126 | } |
| r242901 | r242902 | |
| 180 | 176 | VIDEO_START_MEMBER(vegaeo_state,vega) |
| 181 | 177 | { |
| 182 | 178 | m_vega_vram = auto_alloc_array(machine(), UINT32, 0x14000*2/4); |
| 179 | save_pointer(NAME(m_vega_vram), 0x14000*2/4); |
| 180 | save_item(NAME(m_vega_vbuffer)); |
| 183 | 181 | } |
| 184 | 182 | |
| 185 | 183 | UINT32 vegaeo_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r242901 | r242902 | |
| 328 | 326 | machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "bank"); |
| 329 | 327 | membank("qs1000:bank")->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000); |
| 330 | 328 | |
| 331 | | init_eolith_speedup(machine()); |
| 329 | init_speedup(); |
| 332 | 330 | } |
| 333 | 331 | |
| 334 | | GAME( 2002, crazywar, 0, vega, crazywar, vegaeo_state, vegaeo, ROT0, "Eolith", "Crazy War", GAME_IMPERFECT_SOUND ) |
| 332 | GAME( 2002, crazywar, 0, vega, crazywar, vegaeo_state, vegaeo, ROT0, "Eolith", "Crazy War", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
trunk/src/mame/includes/eolith.h
| r242901 | r242902 | |
| 10 | 10 | m_maincpu(*this, "maincpu"), |
| 11 | 11 | m_soundcpu(*this, "soundcpu"), |
| 12 | 12 | m_qs1000(*this, "qs1000"), |
| 13 | m_screen(*this, "screen"), |
| 14 | m_palette(*this, "palette"), |
| 13 | 15 | m_in0(*this, "IN0"), |
| 14 | 16 | m_eepromoutport(*this, "EEPROMOUT"), |
| 15 | 17 | m_penx1port(*this, "PEN_X_P1"), |
| 16 | 18 | m_peny1port(*this, "PEN_Y_P1"), |
| 17 | 19 | m_penx2port(*this, "PEN_X_P2"), |
| 18 | 20 | m_peny2port(*this, "PEN_Y_P2"), |
| 19 | | m_sndbank(*this, "sound_bank"), |
| 20 | | m_screen(*this, "screen"), |
| 21 | | m_palette(*this, "palette") |
| 21 | m_sndbank(*this, "sound_bank") |
| 22 | 22 | { } |
| 23 | 23 | |
| 24 | | int m_coin_counter_bit; |
| 25 | | int m_buffer; |
| 26 | | UINT32 *m_vram; |
| 27 | 24 | |
| 28 | | UINT8 m_sound_data; |
| 29 | | UINT8 m_data_to_qs1000; |
| 30 | | |
| 31 | 25 | required_device<cpu_device> m_maincpu; |
| 32 | 26 | optional_device<i8032_device> m_soundcpu; |
| 33 | 27 | optional_device<qs1000_device> m_qs1000; |
| 28 | required_device<screen_device> m_screen; |
| 29 | required_device<palette_device> m_palette; |
| 30 | |
| 34 | 31 | optional_ioport m_in0; // klondkp doesn't have it |
| 35 | 32 | optional_ioport m_eepromoutport; |
| 36 | 33 | optional_ioport m_penx1port; |
| 37 | 34 | optional_ioport m_peny1port; |
| 38 | 35 | optional_ioport m_penx2port; |
| 39 | 36 | optional_ioport m_peny2port; |
| 37 | |
| 40 | 38 | optional_memory_bank m_sndbank; |
| 41 | | required_device<screen_device> m_screen; |
| 42 | | required_device<palette_device> m_palette; |
| 39 | |
| 40 | int m_coin_counter_bit; |
| 41 | int m_buffer; |
| 42 | UINT32 *m_vram; |
| 43 | 43 | |
| 44 | UINT8 m_sound_data; |
| 45 | |
| 46 | // speedups - see machine/eolithsp.c |
| 47 | int m_speedup_address; |
| 48 | int m_speedup_address2; |
| 49 | int m_speedup_resume_scanline; |
| 50 | int m_speedup_vblank; |
| 51 | int m_speedup_scanline; |
| 52 | void speedup_read(); |
| 53 | void init_speedup(); |
| 54 | DECLARE_CUSTOM_INPUT_MEMBER(eolith_speedup_getvblank); |
| 55 | DECLARE_CUSTOM_INPUT_MEMBER(stealsee_speedup_getvblank); |
| 56 | |
| 44 | 57 | DECLARE_READ32_MEMBER(eolith_custom_r); |
| 45 | 58 | DECLARE_WRITE32_MEMBER(systemcontrol_w); |
| 46 | 59 | DECLARE_WRITE32_MEMBER(sound_w); |
| r242901 | r242902 | |
| 48 | 61 | DECLARE_READ32_MEMBER(hidctch3_pen2_r); |
| 49 | 62 | DECLARE_WRITE32_MEMBER(eolith_vram_w); |
| 50 | 63 | DECLARE_READ32_MEMBER(eolith_vram_r); |
| 51 | | DECLARE_CUSTOM_INPUT_MEMBER(eolith_speedup_getvblank); |
| 52 | | DECLARE_CUSTOM_INPUT_MEMBER(stealsee_speedup_getvblank); |
| 53 | | |
| 54 | 64 | DECLARE_READ8_MEMBER(sound_cmd_r); |
| 55 | 65 | DECLARE_WRITE8_MEMBER(sound_p1_w); |
| 56 | | |
| 57 | 66 | DECLARE_READ8_MEMBER(qs1000_p1_r); |
| 58 | 67 | DECLARE_WRITE8_MEMBER(qs1000_p1_w); |
| 68 | DECLARE_WRITE8_MEMBER(soundcpu_to_qs1000); |
| 69 | |
| 59 | 70 | DECLARE_DRIVER_INIT(eolith); |
| 60 | 71 | DECLARE_DRIVER_INIT(landbrk); |
| 61 | 72 | DECLARE_DRIVER_INIT(hidctch3); |
| 62 | 73 | DECLARE_DRIVER_INIT(hidctch2); |
| 63 | 74 | DECLARE_DRIVER_INIT(hidnc2k); |
| 64 | 75 | DECLARE_DRIVER_INIT(landbrka); |
| 76 | |
| 65 | 77 | DECLARE_MACHINE_RESET(eolith); |
| 66 | 78 | DECLARE_VIDEO_START(eolith); |
| 79 | |
| 67 | 80 | UINT32 screen_update_eolith(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 81 | |
| 68 | 82 | TIMER_DEVICE_CALLBACK_MEMBER(eolith_speedup); |
| 69 | | DECLARE_WRITE8_MEMBER(soundcpu_to_qs1000); |
| 70 | 83 | }; |