Previous 199869 Revisions Next

r34390 Wednesday 14th January, 2015 at 17:32:38 UTC by Osso
eolith.c, eolith16.c, vegaseo.c: added save state support (nw)
delete depend_mame.mak if you have it or it won't compile
[src/mame/drivers]eolith.c eolith16.c eolithsp.c vegaeo.c
[src/mame/includes]eolith.h eolithsp.h
[src/mame/video]eolith.c

trunk/src/mame/drivers/eolith.c
r242901r242902
103103
104104#include "machine/eepromser.h"
105105#include "includes/eolith.h"
106#include "includes/eolithsp.h"
107106
108107
109
110
111
112108/*************************************
113109 *
114110 *  Control
r242901r242902
125121       bit 8 = ???
126122       bit 9 = ???
127123   */
128   eolith_speedup_read(space);
124   speedup_read();
129125
130126   return (m_in0->read() & ~0x300) | (machine().rand() & 0x300);
131127}
r242901r242902
165161   m_sound_data = data;
166162   m_soundcpu->set_input_line(MCS51_INT0_LINE, ASSERT_LINE);
167163
168   space.machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250));
164   machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250));
169165}
170166
171167
r242901r242902
14911487
14921488DRIVER_INIT_MEMBER(eolith_state,eolith)
14931489{
1494   init_eolith_speedup(machine());
1490   init_speedup();
14951491
14961492   // Sound CPU -> QS1000 CPU serial link
14971493   m_soundcpu->i8051_set_serial_tx_callback(write8_delegate(FUNC(eolith_state::soundcpu_to_qs1000),this));
14981494
14991495   // Configure the sound ROM banking
15001496   membank("sound_bank")->configure_entries(0, 16, memregion("sounddata")->base(), 0x8000);
1497   
1498   save_item(NAME(m_sound_data));
15011499}
15021500
15031501DRIVER_INIT_MEMBER(eolith_state,landbrk)
r242901r242902
15691567 *
15701568 *************************************/
15711569
1572GAME( 1998, linkypip,  0,        eolith45, linkypip,  eolith_state, eolith,   ROT0, "Eolith", "Linky Pipe", GAME_IMPERFECT_SOUND )
1573GAME( 1998, ironfort,  0,        ironfort, ironfort,  eolith_state, eolith,   ROT0, "Eolith", "Iron Fortress", GAME_IMPERFECT_SOUND )
1574GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith_state, eolith,   ROT0, "Eolith", "Iron Fortress (Japan)", GAME_IMPERFECT_SOUND )
1575GAME( 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
1576GAME( 1998, raccoon,   0,        eolith45, raccoon,   eolith_state, eolith,   ROT0, "Eolith", "Raccoon World", GAME_IMPERFECT_SOUND )
1577GAME( 1998, puzzlekg,  0,        eolith45, puzzlekg,  eolith_state, eolith,   ROT0, "Eolith", "Puzzle King (Dance & Puzzle)",  GAME_IMPERFECT_SOUND )
1578GAME( 1999, candy,     0,        eolith50, candy,     eolith_state, eolith,   ROT0, "Eolith", "Candy Candy",  GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
1579GAME( 1999, hidctch2,  0,        eolith50, hidctch2,  eolith_state, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", GAME_IMPERFECT_SOUND )
1580GAME( 1999, hidctch2a, hidctch2, eolith50, hidctch2,  eolith_state, eolith,   ROT0, "Eolith", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", GAME_IMPERFECT_SOUND )
1581GAME( 1999, hidnc2k,   0,        eolith50, hidctch2,  eolith_state, hidnc2k,  ROT0, "Eolith", "Hidden Catch 2000 (AT89c52 protected)", GAME_IMPERFECT_SOUND )
1582GAME( 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
1583GAME( 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
1584GAME( 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
1585GAME( 1999, penfan,    0,        eolith45, penfan,    eolith_state, eolith,   ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 1)",  GAME_IMPERFECT_SOUND ) // alt title of Ribbon
1586GAME( 1999, penfana,   penfan,   eolith45, penfan,    eolith_state, eolith,   ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)",  GAME_IMPERFECT_SOUND )
1587GAME( 2000, stealsee,  0,        eolith45, stealsee,  eolith_state, eolith,   ROT0, "Moov Generation / Eolith", "Steal See",  GAME_IMPERFECT_SOUND )
1588GAME( 2000, hidctch3,  0,        eolith50, hidctch3,  eolith_state, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND )
1589GAME( 2001, fort2b,    0,        eolith50, common,    eolith_state, eolith,   ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)",  GAME_IMPERFECT_SOUND )
1590GAME( 2001, fort2ba,   fort2b,   eolith50, common,    eolith_state, eolith,   ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)",  GAME_IMPERFECT_SOUND )
1570GAME( 1998, linkypip,  0,        eolith45, linkypip,  eolith_state, eolith,   ROT0, "Eolith", "Linky Pipe", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1571GAME( 1998, ironfort,  0,        ironfort, ironfort,  eolith_state, eolith,   ROT0, "Eolith", "Iron Fortress", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1572GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith_state, eolith,   ROT0, "Eolith", "Iron Fortress (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1573GAME( 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
1574GAME( 1998, raccoon,   0,        eolith45, raccoon,   eolith_state, eolith,   ROT0, "Eolith", "Raccoon World", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1575GAME( 1998, puzzlekg,  0,        eolith45, puzzlekg,  eolith_state, eolith,   ROT0, "Eolith", "Puzzle King (Dance & Puzzle)",  GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1576GAME( 1999, candy,     0,        eolith50, candy,     eolith_state, eolith,   ROT0, "Eolith", "Candy Candy",  GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1577GAME( 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 )
1578GAME( 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 )
1579GAME( 1999, hidnc2k,   0,        eolith50, hidctch2,  eolith_state, hidnc2k,  ROT0, "Eolith", "Hidden Catch 2000 (AT89c52 protected)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1580GAME( 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
1581GAME( 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
1582GAME( 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
1583GAME( 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
1584GAME( 1999, penfana,   penfan,   eolith45, penfan,    eolith_state, eolith,   ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)",  GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1585GAME( 2000, stealsee,  0,        eolith45, stealsee,  eolith_state, eolith,   ROT0, "Moov Generation / Eolith", "Steal See",  GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1586GAME( 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 )
1587GAME( 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 )
1588GAME( 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/eolith16.c
r242901r242902
1515
1616#include "sound/okim6295.h"
1717#include "includes/eolith.h"
18#include "includes/eolithsp.h"
1918
2019
2120class eolith16_state : public eolith_state
r242901r242902
2625
2726   UINT16 *m_vram;
2827   int m_vbuffer;
28   
2929   DECLARE_WRITE16_MEMBER(eeprom_w);
3030   DECLARE_READ16_MEMBER(eolith16_custom_r);
3131   DECLARE_WRITE16_MEMBER(vram_w);
3232   DECLARE_READ16_MEMBER(vram_r);
33   
3334   DECLARE_DRIVER_INIT(eolith16);
3435   DECLARE_VIDEO_START(eolith16);
3536   DECLARE_PALETTE_INIT(eolith16);
37   
3638   UINT32 screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3739};
3840
r242901r242902
4345   m_vbuffer = (data & 0x80) >> 7;
4446   coin_counter_w(machine(), 0, data & 1);
4547
46   ioport("EEPROMOUT")->write(data, 0xff);
48   m_eepromoutport->write(data, 0xff);
4749
4850   //data & 0x100 and data & 0x004 always set
4951}
5052
5153READ16_MEMBER(eolith16_state::eolith16_custom_r)
5254{
53   eolith_speedup_read(space);
55   speedup_read();
5456   return ioport("SPECIAL")->read();
5557}
5658
r242901r242902
113115VIDEO_START_MEMBER(eolith16_state,eolith16)
114116{
115117   m_vram = auto_alloc_array(machine(), UINT16, 0x10000);
118   save_pointer(NAME(m_vram), 0x10000);
119   save_item(NAME(m_vbuffer));
116120}
117121
118122UINT32 eolith16_state::screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
r242901r242902
253257
254258DRIVER_INIT_MEMBER(eolith16_state,eolith16)
255259{
256   init_eolith_speedup(machine());
260   init_speedup();
257261}
258262
259GAME( 1999, klondkp, 0, eolith16, eolith16, eolith16_state, eolith16, ROT0, "Eolith", "KlonDike+", 0 )
263GAME( 1999, klondkp, 0, eolith16, eolith16, eolith16_state, eolith16, ROT0, "Eolith", "KlonDike+", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/eolithsp.c
r242901r242902
99*/
1010
1111#include "emu.h"
12#include "includes/eolithsp.h"
1312#include "includes/eolith.h"
1413
15static int eolith_speedup_address;
16static int eolith_speedup_address2;
17static int eolith_speedup_resume_scanline;
18static int eolith_vblank = 0;
19static int eolith_scanline = 0;
2014
21void eolith_speedup_read(address_space &space)
15void eolith_state::speedup_read()
2216{
2317   /* 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);
2620
27   if (eolith_vblank==0 && eolith_scanline < eolith_speedup_resume_scanline)
21   if (m_speedup_vblank==0 && m_speedup_scanline < m_speedup_resume_scanline)
2822   {
29      int pc = space.device().safe_pc();
23      int pc = m_maincpu->pc();
3024
31      if ((pc==eolith_speedup_address) || (pc==eolith_speedup_address2))
25      if ((pc==m_speedup_address) || (pc==m_speedup_address2))
3226      {
33         space.device().execute().spin_until_trigger(1000);
27         m_maincpu->spin_until_trigger(1000);
3428      }
3529   }
3630}
r242901r242902
7165};
7266
7367
74void init_eolith_speedup(running_machine &machine)
68void eolith_state::init_speedup()
7569{
7670   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;
7976
8077   while( eolith_speedup_table[ n_game ].s_name != NULL )
8178   {
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 )
8380      {
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;
8784      }
8885      n_game++;
8986   }
87   
88   save_item(NAME(m_speedup_vblank));
89   save_item(NAME(m_speedup_scanline));
9090}
9191
9292/* todo, use timers instead! */
r242901r242902
9494{
9595   if (param==0)
9696   {
97      eolith_vblank = 0;
97      m_speedup_vblank = 0;
9898   }
9999
100   if (param==eolith_speedup_resume_scanline)
100   if (param==m_speedup_resume_scanline)
101101   {
102102      machine().scheduler().trigger(1000);
103103   }
104104
105105   if (param==240)
106106   {
107      eolith_vblank = 1;
107      m_speedup_vblank = 1;
108108   }
109109}
110110
111111CUSTOM_INPUT_MEMBER(eolith_state::eolith_speedup_getvblank)
112112{
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);
114114
115115
116116   return (m_screen->vpos() >= 240);
r242901r242902
122122   int pc = m_maincpu->pc();
123123
124124   if (pc==0x400081ec)
125      if(!eolith_vblank)
125      if(!m_speedup_vblank)
126126         m_maincpu->eat_cycles(500);
127127
128128   return (m_screen->vpos() >= 240);
trunk/src/mame/drivers/vegaeo.c
r242901r242902
1616#include "machine/at28c16.h"
1717#include "sound/qs1000.h"
1818#include "includes/eolith.h"
19#include "includes/eolithsp.h"
2019
2120
2221class vegaeo_state : public eolith_state
r242901r242902
2726
2827   UINT32 *m_vega_vram;
2928   UINT8 m_vega_vbuffer;
29   
3030   DECLARE_WRITE32_MEMBER(vega_vram_w);
3131   DECLARE_READ32_MEMBER(vega_vram_r);
3232   DECLARE_WRITE32_MEMBER(vega_misc_w);
3333   DECLARE_READ32_MEMBER(vegaeo_custom_read);
3434   DECLARE_WRITE32_MEMBER(soundlatch_w);
35
3635   DECLARE_READ8_MEMBER(qs1000_p1_r);
37
3836   DECLARE_WRITE8_MEMBER(qs1000_p1_w);
3937   DECLARE_WRITE8_MEMBER(qs1000_p2_w);
4038   DECLARE_WRITE8_MEMBER(qs1000_p3_w);
39
4140   DECLARE_DRIVER_INIT(vegaeo);
4241   DECLARE_VIDEO_START(vega);
42
4343   UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4444};
4545
r242901r242902
6262   // ...x .... - ?
6363   // ..x. .... - /IRQ clear
6464
65   qs1000_device *qs1000 = machine().device<qs1000_device>("qs1000");
66
6765   membank("qs1000:bank")->set_entry(data & 0x07);
6866
6967   if (!BIT(data, 5))
70      qs1000->set_irq(CLEAR_LINE);
68      m_qs1000->set_irq(CLEAR_LINE);
7169}
7270
7371WRITE32_MEMBER(vegaeo_state::vega_vram_w)
r242901r242902
115113
116114READ32_MEMBER(vegaeo_state::vegaeo_custom_read)
117115{
118   eolith_speedup_read(space);
116   speedup_read();
119117   return ioport("SYSTEM")->read();
120118}
121119
122120WRITE32_MEMBER(vegaeo_state::soundlatch_w)
123121{
124   qs1000_device *qs1000 = space.machine().device<qs1000_device>("qs1000");
125
126122   soundlatch_byte_w(space, 0, data);
127   qs1000->set_irq(ASSERT_LINE);
123   m_qs1000->set_irq(ASSERT_LINE);
128124
129125   machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
130126}
r242901r242902
180176VIDEO_START_MEMBER(vegaeo_state,vega)
181177{
182178   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));
183181}
184182
185183UINT32 vegaeo_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
r242901r242902
328326   machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "bank");
329327   membank("qs1000:bank")->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000);
330328
331   init_eolith_speedup(machine());
329   init_speedup();
332330}
333331
334GAME( 2002, crazywar, 0, vega, crazywar, vegaeo_state, vegaeo, ROT0, "Eolith", "Crazy War", GAME_IMPERFECT_SOUND )
332GAME( 2002, crazywar, 0, vega, crazywar, vegaeo_state, vegaeo, ROT0, "Eolith", "Crazy War", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/eolith.h
r242901r242902
1010         m_maincpu(*this, "maincpu"),
1111         m_soundcpu(*this, "soundcpu"),
1212         m_qs1000(*this, "qs1000"),
13         m_screen(*this, "screen"),
14         m_palette(*this, "palette"),
1315         m_in0(*this, "IN0"),
1416         m_eepromoutport(*this, "EEPROMOUT"),
1517         m_penx1port(*this, "PEN_X_P1"),
1618         m_peny1port(*this, "PEN_Y_P1"),
1719         m_penx2port(*this, "PEN_X_P2"),
1820         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")
2222      { }
2323
24   int m_coin_counter_bit;
25   int m_buffer;
26   UINT32 *m_vram;
2724
28   UINT8 m_sound_data;
29   UINT8 m_data_to_qs1000;
30
3125   required_device<cpu_device> m_maincpu;
3226   optional_device<i8032_device> m_soundcpu;
3327   optional_device<qs1000_device> m_qs1000;
28   required_device<screen_device> m_screen;
29   required_device<palette_device> m_palette;
30   
3431   optional_ioport m_in0; // klondkp doesn't have it
3532   optional_ioport m_eepromoutport;
3633   optional_ioport m_penx1port;
3734   optional_ioport m_peny1port;
3835   optional_ioport m_penx2port;
3936   optional_ioport m_peny2port;
37   
4038   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;
4343
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
4457   DECLARE_READ32_MEMBER(eolith_custom_r);
4558   DECLARE_WRITE32_MEMBER(systemcontrol_w);
4659   DECLARE_WRITE32_MEMBER(sound_w);
r242901r242902
4861   DECLARE_READ32_MEMBER(hidctch3_pen2_r);
4962   DECLARE_WRITE32_MEMBER(eolith_vram_w);
5063   DECLARE_READ32_MEMBER(eolith_vram_r);
51   DECLARE_CUSTOM_INPUT_MEMBER(eolith_speedup_getvblank);
52   DECLARE_CUSTOM_INPUT_MEMBER(stealsee_speedup_getvblank);
53
5464   DECLARE_READ8_MEMBER(sound_cmd_r);
5565   DECLARE_WRITE8_MEMBER(sound_p1_w);
56
5766   DECLARE_READ8_MEMBER(qs1000_p1_r);
5867   DECLARE_WRITE8_MEMBER(qs1000_p1_w);
68   DECLARE_WRITE8_MEMBER(soundcpu_to_qs1000);
69   
5970   DECLARE_DRIVER_INIT(eolith);
6071   DECLARE_DRIVER_INIT(landbrk);
6172   DECLARE_DRIVER_INIT(hidctch3);
6273   DECLARE_DRIVER_INIT(hidctch2);
6374   DECLARE_DRIVER_INIT(hidnc2k);
6475   DECLARE_DRIVER_INIT(landbrka);
76   
6577   DECLARE_MACHINE_RESET(eolith);
6678   DECLARE_VIDEO_START(eolith);
79   
6780   UINT32 screen_update_eolith(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
81   
6882   TIMER_DEVICE_CALLBACK_MEMBER(eolith_speedup);
69   DECLARE_WRITE8_MEMBER(soundcpu_to_qs1000);
7083};
trunk/src/mame/includes/eolithsp.h
r242901r242902
1/*----------- defined in drivers/eolithsp.c -----------*/
2
3void eolith_speedup_read(address_space &space);
4void init_eolith_speedup(running_machine &machine);
trunk/src/mame/video/eolith.c
r242901r242902
3333VIDEO_START_MEMBER(eolith_state,eolith)
3434{
3535   m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4);
36   save_pointer(NAME(m_vram), 0x40000*2/4);
37   save_item(NAME(m_buffer));
3638}
3739
3840UINT32 eolith_state::screen_update_eolith(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3941{
40   int y;
41
42   for (y = 0; y < 240; y++)
42   for (int y = 0; y < 240; y++)
4343   {
44      int x;
4544      UINT32 *src = &m_vram[(m_buffer ? 0 : 0x10000) | (y * (336 / 2))];
4645      UINT16 *dest = &bitmap.pix16(y);
4746
48      for (x = 0; x < 320; x += 2)
47      for (int x = 0; x < 320; x += 2)
4948      {
5049         dest[0] = (*src >> 16) & 0x7fff;
5150         dest[1] = (*src >>  0) & 0x7fff;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team