summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/eolithsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/eolithsp.c')
-rw-r--r--src/mame/drivers/eolithsp.c50
1 files changed, 25 insertions, 25 deletions
diff --git a/src/mame/drivers/eolithsp.c b/src/mame/drivers/eolithsp.c
index 6a2be221534..f570d36395b 100644
--- a/src/mame/drivers/eolithsp.c
+++ b/src/mame/drivers/eolithsp.c
@@ -9,28 +9,22 @@
*/
#include "emu.h"
-#include "includes/eolithsp.h"
#include "includes/eolith.h"
-static int eolith_speedup_address;
-static int eolith_speedup_address2;
-static int eolith_speedup_resume_scanline;
-static int eolith_vblank = 0;
-static int eolith_scanline = 0;
-void eolith_speedup_read(address_space &space)
+void eolith_state::speedup_read()
{
/* for debug */
- //if ((space.device().safe_pc()!=eolith_speedup_address) && (eolith_vblank!=1) )
- // printf("%s:eolith speedup_read data %02x\n",space.machine().describe_context(), eolith_vblank);
+ //if ((space.device().safe_pc()!=m_speedup_address) && (m_speedup_vblank!=1) )
+ // printf("%s:eolith speedup_read data %02x\n",space.machine().describe_context(), m_speedup_vblank);
- if (eolith_vblank==0 && eolith_scanline < eolith_speedup_resume_scanline)
+ if (m_speedup_vblank==0 && m_speedup_scanline < m_speedup_resume_scanline)
{
- int pc = space.device().safe_pc();
+ int pc = m_maincpu->pc();
- if ((pc==eolith_speedup_address) || (pc==eolith_speedup_address2))
+ if ((pc==m_speedup_address) || (pc==m_speedup_address2))
{
- space.device().execute().spin_until_trigger(1000);
+ m_maincpu->spin_until_trigger(1000);
}
}
}
@@ -71,22 +65,28 @@ static const struct
};
-void init_eolith_speedup(running_machine &machine)
+void eolith_state::init_speedup()
{
int n_game = 0;
- eolith_speedup_address = 0;
- eolith_speedup_resume_scanline = 0;
+ m_speedup_address = 0;
+ m_speedup_address2 = 0;
+ m_speedup_resume_scanline = 0;
+ m_speedup_vblank = 0;
+ m_speedup_scanline = 0;
while( eolith_speedup_table[ n_game ].s_name != NULL )
{
- if( strcmp( machine.system().name, eolith_speedup_table[ n_game ].s_name ) == 0 )
+ if( strcmp( machine().system().name, eolith_speedup_table[ n_game ].s_name ) == 0 )
{
- eolith_speedup_address = eolith_speedup_table[ n_game ].speedup_address;
- eolith_speedup_address2 = eolith_speedup_table[ n_game ].speedup_address2;
- eolith_speedup_resume_scanline = eolith_speedup_table[ n_game ].speedup_resume_scanline;
+ m_speedup_address = eolith_speedup_table[ n_game ].speedup_address;
+ m_speedup_address2 = eolith_speedup_table[ n_game ].speedup_address2;
+ m_speedup_resume_scanline = eolith_speedup_table[ n_game ].speedup_resume_scanline;
}
n_game++;
}
+
+ save_item(NAME(m_speedup_vblank));
+ save_item(NAME(m_speedup_scanline));
}
/* todo, use timers instead! */
@@ -94,23 +94,23 @@ TIMER_DEVICE_CALLBACK_MEMBER(eolith_state::eolith_speedup)
{
if (param==0)
{
- eolith_vblank = 0;
+ m_speedup_vblank = 0;
}
- if (param==eolith_speedup_resume_scanline)
+ if (param==m_speedup_resume_scanline)
{
machine().scheduler().trigger(1000);
}
if (param==240)
{
- eolith_vblank = 1;
+ m_speedup_vblank = 1;
}
}
CUSTOM_INPUT_MEMBER(eolith_state::eolith_speedup_getvblank)
{
-// printf("%s:eolith speedup_read data %02x\n",machine().describe_context(), eolith_vblank);
+// printf("%s:eolith speedup_read data %02x\n",machine().describe_context(), m_speedup_vblank);
return (m_screen->vpos() >= 240);
@@ -122,7 +122,7 @@ CUSTOM_INPUT_MEMBER(eolith_state::stealsee_speedup_getvblank)
int pc = m_maincpu->pc();
if (pc==0x400081ec)
- if(!eolith_vblank)
+ if(!m_speedup_vblank)
m_maincpu->eat_cycles(500);
return (m_screen->vpos() >= 240);