summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/laserbat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/laserbat.cpp')
-rw-r--r--src/mame/drivers/laserbat.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/mame/drivers/laserbat.cpp b/src/mame/drivers/laserbat.cpp
index 2bd84687d19..833ff5806b0 100644
--- a/src/mame/drivers/laserbat.cpp
+++ b/src/mame/drivers/laserbat.cpp
@@ -65,6 +65,11 @@
* The sprite ROM is twice the size as Laser Battle with the bank
selected using bit 9 of the 16-bit sound interface (there's a wire
making this connection visible on the component side of the PCB)
+ * At least some boards have IC13I pins 8, 9, 10 and 11 bent out of
+ the socket, tied together, and pulled high via a 4k7 resistor,
+ which quantises the shell/area effect 2 to four-pixel boundaries
+ (implemented as m_eff2_mask) - would be good to see whether this
+ mod is present on all boards
* If demo sounds are enabled (using DIP switches), background music
is played every sixth time through the attract loop
* Sound board emulation is based on tracing the program and guessing
@@ -412,9 +417,14 @@ INTERRUPT_GEN_MEMBER(laserbat_state_base::laserbat_interrupt)
m_maincpu->set_input_line(0, ASSERT_LINE);
}
-void laserbat_state_base::init_laserbat()
+void laserbat_state_base::machine_start()
{
+ // start rendering scanlines
+ m_screen->register_screen_bitmap(m_bitmap);
m_scanline_timer = timer_alloc(TIMER_SCANLINE);
+ m_scanline_timer->adjust(m_screen->time_until_pos(1, 0));
+
+ save_item(NAME(m_gfx2_base));
save_item(NAME(m_input_mux));
save_item(NAME(m_mpx_p_1_2));
@@ -436,10 +446,10 @@ void laserbat_state_base::init_laserbat()
save_item(NAME(m_neg1));
save_item(NAME(m_neg2));
- save_item(NAME(m_csound1));
- save_item(NAME(m_csound2));
save_item(NAME(m_rhsc));
save_item(NAME(m_whsc));
+ save_item(NAME(m_csound1));
+ save_item(NAME(m_csound2));
}
void laserbat_state::machine_start()
@@ -732,7 +742,7 @@ ROM_START( catnmousa )
ROM_END
-GAME( 1981, laserbat, 0, laserbat, laserbat, laserbat_state, init_laserbat, ROT0, "Zaccaria", "Laser Battle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, lazarian, laserbat, laserbat, lazarian, laserbat_state, init_laserbat, ROT0, "Zaccaria (Bally Midway license)", "Lazarian", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, catnmous, 0, catnmous, catnmous, catnmous_state, init_laserbat, ROT90, "Zaccaria", "Cat and Mouse (type 02 program)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, catnmousa, catnmous, catnmous, catnmous, catnmous_state, init_laserbat, ROT90, "Zaccaria", "Cat and Mouse (type 01 program)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, laserbat, 0, laserbat, laserbat, laserbat_state, empty_init, ROT0, "Zaccaria", "Laser Battle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, lazarian, laserbat, laserbat, lazarian, laserbat_state, empty_init, ROT0, "Zaccaria (Bally Midway license)", "Lazarian", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, catnmous, 0, catnmous, catnmous, catnmous_state, empty_init, ROT90, "Zaccaria", "Cat and Mouse (type 02 program)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, catnmousa, catnmous, catnmous, catnmous, catnmous_state, empty_init, ROT90, "Zaccaria", "Cat and Mouse (type 01 program)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )