summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/atari/cyberbal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/atari/cyberbal.cpp')
-rw-r--r--src/mame/atari/cyberbal.cpp665
1 files changed, 520 insertions, 145 deletions
diff --git a/src/mame/atari/cyberbal.cpp b/src/mame/atari/cyberbal.cpp
index 4107c59da38..9e4450c4e99 100644
--- a/src/mame/atari/cyberbal.cpp
+++ b/src/mame/atari/cyberbal.cpp
@@ -1,5 +1,6 @@
// license:BSD-3-Clause
-// copyright-holders:Aaron Giles
+// copyright-holders: Aaron Giles
+
/***************************************************************************
Atari Cyberball hardware
@@ -22,28 +23,417 @@
#include "emu.h"
-#include "cyberbal.h"
+#include "atarijsa.h"
+#include "atarimo.h"
+#include "atarisac.h"
+#include "slapstic.h"
+
+#include "cpu/m68000/m68000.h"
#include "machine/eeprompar.h"
+#include "machine/timer.h"
#include "machine/watchdog.h"
+
+#include "emupal.h"
+#include "screen.h"
#include "speaker.h"
+#include "tilemap.h"
#include "layout/generic.h"
+namespace {
+
+class cyberbal_base_state : public driver_device
+{
+protected:
+ cyberbal_base_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_playfield(*this, "playfield"),
+ m_alpha(*this, "alpha"),
+ m_mob(*this, "mob")
+ { }
+
+protected:
+ virtual void video_start() override;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<tilemap_device> m_playfield;
+ required_device<tilemap_device> m_alpha;
+ required_device<atari_motion_objects_device> m_mob;
+
+ uint16_t m_current_slip[2]{};
+
+ static const atari_motion_objects_config s_mob_config;
+
+ TILE_GET_INFO_MEMBER(get_alpha_tile_info);
+ TILE_GET_INFO_MEMBER(get_playfield_tile_info);
+
+ void scanline_update_one(screen_device &screen, int scanline, int i, tilemap_t &curplayfield, tilemap_device &curalpha);
+ uint32_t update_one_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, atari_motion_objects_device &curmob, tilemap_t &curplayfield, tilemap_t &curalpha);
+
+private:
+ uint8_t m_playfield_palette_bank[2]{};
+ uint16_t m_playfield_xscroll[2]{};
+ uint16_t m_playfield_yscroll[2]{};
+};
+
+
+class cyberbal2p_state : public cyberbal_base_state
+{
+public:
+ cyberbal2p_state(const machine_config &mconfig, device_type type, const char *tag) :
+ cyberbal_base_state(mconfig, type, tag),
+ m_screen(*this, "screen"),
+ m_jsa(*this, "jsa")
+ { }
+
+ void cyberbal2p(machine_config &config);
+
+protected:
+ virtual void video_start() override;
+
+private:
+ required_device<screen_device> m_screen;
+ required_device<atari_jsa_ii_device> m_jsa;
+
+ void video_int_write_line(int state);
+ void video_int_ack_w(uint16_t data = 0);
+
+ TIMER_DEVICE_CALLBACK_MEMBER(scanline_update);
+
+ uint16_t sound_state_r();
+
+ uint32_t screen_update_cyberbal2p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ // memory maps
+ void cyberbal2p_map(address_map &map);
+};
+
+
+class cyberbal_state : public cyberbal_base_state
+{
+public:
+ cyberbal_state(const machine_config &mconfig, device_type type, const char *tag) :
+ cyberbal_base_state(mconfig, type, tag),
+ m_slapstic(*this, "slapstic"),
+ m_slapstic_bank(*this, "slapstic_bank"),
+ m_extracpu(*this, "extra"),
+ m_sac(*this, "sac"),
+ m_playfield2(*this, "playfield2"),
+ m_alpha2(*this, "alpha2"),
+ m_mob2(*this, "mob2"),
+ m_rpalette(*this, "rpalette"),
+ m_lscreen(*this, "lscreen"),
+ m_rscreen(*this, "rscreen")
+ { }
+
+ void init_cyberbalt();
+ void cyberbal(machine_config &config);
+ void cyberbalt(machine_config &config);
+
+protected:
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+
+private:
+ optional_device<atari_slapstic_device> m_slapstic;
+ optional_memory_bank m_slapstic_bank;
+ required_device<cpu_device> m_extracpu;
+ required_device<atari_sac_device> m_sac;
+ required_device<tilemap_device> m_playfield2;
+ required_device<tilemap_device> m_alpha2;
+ required_device<atari_motion_objects_device> m_mob2;
+ required_device<palette_device> m_rpalette;
+ required_device<screen_device> m_lscreen;
+ required_device<screen_device> m_rscreen;
+
+ void video_int_write_line(int state);
+ void video_int_ack_w(uint16_t data = 0);
+
+ TIMER_DEVICE_CALLBACK_MEMBER(scanline_update);
+
+ void p2_reset_w(uint16_t data);
+ TILE_GET_INFO_MEMBER(get_alpha2_tile_info);
+ TILE_GET_INFO_MEMBER(get_playfield2_tile_info);
+
+ uint32_t screen_update_cyberbal_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_cyberbal_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ // memory maps
+ void main_map(address_map &map);
+ void tournament_map(address_map &map);
+ void extra_map(address_map &map);
+};
+
+
+/*************************************
+ *
+ * Tilemap callbacks
+ *
+ *************************************/
+
+TILE_GET_INFO_MEMBER(cyberbal_base_state::get_alpha_tile_info)
+{
+ uint16_t const data = m_alpha->basemem_read(tile_index);
+ int const code = data & 0xfff;
+ int const color = (data >> 12) & 0x07;
+ tileinfo.set(2, code, color, (data >> 15) & 1);
+}
+
+
+TILE_GET_INFO_MEMBER(cyberbal_state::get_alpha2_tile_info)
+{
+ uint16_t const data = m_alpha2->basemem_read(tile_index);
+ int const code = data & 0xfff;
+ int const color = (data >> 12) & 0x07;
+ tileinfo.set(2, code, color, (data >> 15) & 1);
+}
+
+
+TILE_GET_INFO_MEMBER(cyberbal_base_state::get_playfield_tile_info)
+{
+ uint16_t const data = m_playfield->basemem_read(tile_index);
+ int const code = data & 0x1fff;
+ int const color = (data >> 11) & 0x0f;
+ tileinfo.set(0, code, color, (data >> 15) & 1);
+}
+
+
+TILE_GET_INFO_MEMBER(cyberbal_state::get_playfield2_tile_info)
+{
+ uint16_t const data = m_playfield2->basemem_read(tile_index);
+ int const code = data & 0x1fff;
+ int const color = (data >> 11) & 0x0f;
+ tileinfo.set(0, code, color, (data >> 15) & 1);
+}
+
+
+
+
+/*************************************
+ *
+ * Video system start
+ *
+ *************************************/
+
+const atari_motion_objects_config cyberbal_base_state::s_mob_config =
+{
+ 1, // index to which gfx system
+ 1, // number of motion object banks
+ 1, // are the entries linked?
+ 0, // are the entries split?
+ 0, // render in reverse order?
+ 0, // render in swapped X/Y order?
+ 1, // does the neighbor bit affect the next object?
+ 1024, // pixels per SLIP entry (0 for no-slip)
+ 0, // pixel offset for SLIPs
+ 0, // maximum number of links to visit/scanline (0=all)
+
+ 0x600, // base palette entry
+ 0x100, // maximum number of colors
+ 0, // transparent pen index
+
+ {{ 0,0,0x07f8,0 }}, // mask for the link
+ {{ 0x7fff,0,0,0 }}, // mask for the code index
+ {{ 0,0,0,0x000f }}, // mask for the color
+ {{ 0,0,0,0xffc0 }}, // mask for the X position
+ {{ 0,0xff80,0,0 }}, // mask for the Y position
+ {{ 0 }}, // mask for the width, in tiles
+ {{ 0,0x000f,0,0 }}, // mask for the height, in tiles
+ {{ 0x8000,0,0,0 }}, // mask for the horizontal flip
+ {{ 0 }}, // mask for the vertical flip
+ {{ 0 }}, // mask for the priority
+ {{ 0,0,0,0x0010 }}, // mask for the neighbor
+ {{ 0 }}, // mask for absolute coordinates
+
+ {{ 0 }}, // mask for the special value
+ 0, // resulting value to indicate "special"
+};
+
+void cyberbal_base_state::video_start()
+{
+ // initialize the motion objects
+ m_mob->set_slipram(&m_current_slip[0]);
+
+ // save states
+ save_item(NAME(m_current_slip));
+ save_item(NAME(m_playfield_palette_bank));
+ save_item(NAME(m_playfield_xscroll));
+ save_item(NAME(m_playfield_yscroll));
+}
+
+
+void cyberbal_state::video_start()
+{
+ m_playfield2->set_palette(*m_rpalette);
+ m_alpha2->set_palette(*m_rpalette);
+
+ cyberbal_base_state::video_start();
+
+ m_mob2->set_slipram(&m_current_slip[1]);
+
+ // adjust the sprite positions
+ m_mob->set_xscroll(4);
+ m_mob2->set_xscroll(4);
+}
+
+
+void cyberbal2p_state::video_start()
+{
+ cyberbal_base_state::video_start();
+
+ // adjust the sprite positions
+ m_mob->set_xscroll(5);
+}
+
+
+
+/*************************************
+ *
+ * Periodic scanline updater
+ *
+ *************************************/
+
+void cyberbal_base_state::scanline_update_one(screen_device &screen, int scanline, int i, tilemap_t &curplayfield, tilemap_device &curalpha)
+{
+ // keep in range
+ int offset = ((scanline - 8) / 8) * 64 + 47;
+ if (offset < 0)
+ offset += 0x800;
+ else if (offset >= 0x800)
+ return;
+
+ // update the current parameters
+ uint16_t word = curalpha.basemem_read(offset + 3);
+ if (!(word & 1))
+ {
+ if (((word >> 1) & 7) != m_playfield_palette_bank[i])
+ {
+ if (scanline > 0)
+ screen.update_partial(scanline - 1);
+ m_playfield_palette_bank[i] = (word >> 1) & 7;
+ curplayfield.set_palette_offset(m_playfield_palette_bank[i] << 8);
+ }
+ }
+ word = curalpha.basemem_read(offset + 4);
+ if (!(word & 1))
+ {
+ int const newscroll = 2 * (((word >> 7) + 4) & 0x1ff);
+ if (newscroll != m_playfield_xscroll[i])
+ {
+ if (scanline > 0)
+ screen.update_partial(scanline - 1);
+ curplayfield.set_scrollx(0, newscroll);
+ m_playfield_xscroll[i] = newscroll;
+ }
+ }
+ word = curalpha.basemem_read(offset + 5);
+ if (!(word & 1))
+ {
+ // a new vscroll latches the offset into a counter; we must adjust for this
+ int const newscroll = ((word >> 7) - (scanline)) & 0x1ff;
+ if (newscroll != m_playfield_yscroll[i])
+ {
+ if (scanline > 0)
+ screen.update_partial(scanline - 1);
+ curplayfield.set_scrolly(0, newscroll);
+ m_playfield_yscroll[i] = newscroll;
+ }
+ }
+ word = curalpha.basemem_read(offset + 7);
+ if (!(word & 1))
+ {
+ if (m_current_slip[i] != word)
+ {
+ if (scanline > 0)
+ screen.update_partial(scanline - 1);
+ m_current_slip[i] = word;
+ }
+ }
+ i++;
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(cyberbal_state::scanline_update)
+{
+ scanline_update_one(*m_lscreen, param, 0, *m_playfield, *m_alpha);
+ scanline_update_one(*m_rscreen, param, 1, *m_playfield2, *m_alpha2);
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(cyberbal2p_state::scanline_update)
+{
+ scanline_update_one(*m_screen, param, 0, *m_playfield, *m_alpha);
+}
+
+
+
+/*************************************
+ *
+ * Main refresh
+ *
+ *************************************/
+
+uint32_t cyberbal_base_state::update_one_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, atari_motion_objects_device &curmob, tilemap_t &curplayfield, tilemap_t &curalpha)
+{
+ // start drawing
+ curmob.draw_async(cliprect);
+
+ // draw the playfield
+ curplayfield.draw(screen, bitmap, cliprect, 0, 0);
+
+ // draw and merge the MO
+ bitmap_ind16 &mobitmap = curmob.bitmap();
+ for (const sparse_dirty_rect *rect = curmob.first_dirty_rect(cliprect); rect != nullptr; rect = rect->next())
+ for (int y = rect->top(); y <= rect->bottom(); y++)
+ {
+ uint16_t const *const mo = &mobitmap.pix(y);
+ uint16_t *const pf = &bitmap.pix(y);
+ for (int x = rect->left(); x <= rect->right(); x++)
+ if (mo[x] != 0xffff)
+ {
+ // not verified: logic is all controlled in a PAL
+ pf[x] = mo[x];
+ }
+ }
+
+ // add the alpha on top
+ curalpha.draw(screen, bitmap, cliprect, 0, 0);
+ return 0;
+}
+
+
+uint32_t cyberbal_state::screen_update_cyberbal_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ return update_one_screen(screen, bitmap, cliprect, *m_mob, *m_playfield, *m_alpha);
+}
+
+uint32_t cyberbal_state::screen_update_cyberbal_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ return update_one_screen(screen, bitmap, cliprect, *m_mob2, *m_playfield2, *m_alpha2);
+}
+
+uint32_t cyberbal2p_state::screen_update_cyberbal2p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ return update_one_screen(screen, bitmap, cliprect, *m_mob, *m_playfield, *m_alpha);
+}
+
+
/*************************************
*
* Initialization
*
*************************************/
-WRITE_LINE_MEMBER(cyberbal2p_state::video_int_write_line)
+void cyberbal2p_state::video_int_write_line(int state)
{
if (state)
m_maincpu->set_input_line(M68K_IRQ_1, ASSERT_LINE);
}
-WRITE_LINE_MEMBER(cyberbal_state::video_int_write_line)
+void cyberbal_state::video_int_write_line(int state)
{
if (state)
m_extracpu->set_input_line(M68K_IRQ_1, ASSERT_LINE);
@@ -61,12 +451,6 @@ void cyberbal_state::video_int_ack_w(uint16_t data)
}
-void cyberbal_state::machine_start()
-{
- cyberbal_base_state::machine_start();
-}
-
-
void cyberbal_state::machine_reset()
{
cyberbal_base_state::machine_reset();
@@ -76,12 +460,6 @@ void cyberbal_state::machine_reset()
}
-void cyberbal2p_state::machine_reset()
-{
- cyberbal_base_state::machine_reset();
-}
-
-
/*************************************
*
@@ -120,7 +498,7 @@ void cyberbal_state::p2_reset_w(uint16_t data)
void cyberbal_state::main_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
- map(0xfc0000, 0xfc0fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
+ map(0xfc0000, 0xfc03ff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
map(0xfc8000, 0xfcffff).r(m_sac, FUNC(atari_sac_device::main_response_r)).umask16(0xff00);
map(0xfd0000, 0xfd1fff).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write16));
map(0xfd2000, 0xfd3fff).w(m_sac, FUNC(atari_sac_device::sound_reset_w));
@@ -129,14 +507,14 @@ void cyberbal_state::main_map(address_map &map)
map(0xfd8000, 0xfd9fff).w(m_sac, FUNC(atari_sac_device::main_command_w)).umask16(0xff00);
map(0xfe0000, 0xfe0fff).portr("IN0");
map(0xfe1000, 0xfe1fff).portr("IN1");
- map(0xfe8000, 0xfe8fff).ram().w("rpalette", FUNC(palette_device::write16)).share("rpalette");
+ map(0xfe8000, 0xfe8fff).ram().w(m_rpalette, FUNC(palette_device::write16)).share("rpalette");
map(0xfec000, 0xfecfff).ram().w("lpalette", FUNC(palette_device::write16)).share("lpalette");
map(0xff0000, 0xff1fff).ram().w(m_playfield2, FUNC(tilemap_device::write16)).share("playfield2");
map(0xff2000, 0xff2fff).ram().w(m_alpha2, FUNC(tilemap_device::write16)).share("alpha2");
map(0xff3000, 0xff37ff).ram().share("mob2");
map(0xff3800, 0xff3fff).ram().share("ff3800");
- map(0xff4000, 0xff5fff).ram().w("playfield", FUNC(tilemap_device::write16)).share("playfield");
- map(0xff6000, 0xff6fff).ram().w("alpha", FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff4000, 0xff5fff).ram().w(m_playfield, FUNC(tilemap_device::write16)).share("playfield");
+ map(0xff6000, 0xff6fff).ram().w(m_alpha, FUNC(tilemap_device::write16)).share("alpha");
map(0xff7000, 0xff77ff).ram().share("mob");
map(0xff7800, 0xff9fff).ram().share("sharedram");
map(0xffa000, 0xffbfff).readonly().nopw().share("extraram");
@@ -147,6 +525,7 @@ void cyberbal_state::tournament_map(address_map &map)
{
main_map(map);
map(0x018000, 0x019fff).mirror(0x6000).bankr(m_slapstic_bank);
+ map(0xfc0000, 0xfc0fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
}
@@ -163,14 +542,14 @@ void cyberbal_state::extra_map(address_map &map)
map(0xfc0000, 0xfdffff).w(FUNC(cyberbal_state::video_int_ack_w));
map(0xfe0000, 0xfe0fff).portr("IN0");
map(0xfe1000, 0xfe1fff).portr("IN1");
- map(0xfe8000, 0xfe8fff).ram().w("rpalette", FUNC(palette_device::write16)).share("rpalette");
+ map(0xfe8000, 0xfe8fff).ram().w(m_rpalette, FUNC(palette_device::write16)).share("rpalette");
map(0xfec000, 0xfecfff).ram().w("lpalette", FUNC(palette_device::write16)).share("lpalette");
map(0xff0000, 0xff1fff).ram().w(m_playfield2, FUNC(tilemap_device::write16)).share("playfield2");
map(0xff2000, 0xff2fff).ram().w(m_alpha2, FUNC(tilemap_device::write16)).share("alpha2");
map(0xff3000, 0xff37ff).ram().share("mob2");
map(0xff3800, 0xff3fff).ram().share("ff3800");
- map(0xff4000, 0xff5fff).ram().w("playfield", FUNC(tilemap_device::write16)).share("playfield");
- map(0xff6000, 0xff6fff).ram().w("alpha", FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff4000, 0xff5fff).ram().w(m_playfield, FUNC(tilemap_device::write16)).share("playfield");
+ map(0xff6000, 0xff6fff).ram().w(m_alpha, FUNC(tilemap_device::write16)).share("alpha");
map(0xff7000, 0xff77ff).ram().share("mob");
map(0xff7800, 0xff9fff).ram().share("sharedram");
map(0xffa000, 0xffbfff).ram().share("extraram");
@@ -200,8 +579,8 @@ void cyberbal2p_state::cyberbal2p_map(address_map &map)
map(0xfd6000, 0xfd6003).w(FUNC(cyberbal2p_state::video_int_ack_w));
map(0xfd8000, 0xfd8003).w("jsa", FUNC(atari_jsa_ii_device::main_command_w)).umask16(0xff00);
map(0xfe0000, 0xfe0003).r(FUNC(cyberbal2p_state::sound_state_r));
- map(0xff0000, 0xff1fff).ram().w("playfield", FUNC(tilemap_device::write16)).share("playfield");
- map(0xff2000, 0xff2fff).ram().w("alpha", FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff0000, 0xff1fff).ram().w(m_playfield, FUNC(tilemap_device::write16)).share("playfield");
+ map(0xff2000, 0xff2fff).ram().w(m_alpha, FUNC(tilemap_device::write16)).share("alpha");
map(0xff3000, 0xff37ff).ram().share("mob");
map(0xff3800, 0xffffff).ram();
}
@@ -215,7 +594,7 @@ void cyberbal2p_state::cyberbal2p_map(address_map &map)
*************************************/
static INPUT_PORTS_START( cyberbal )
- PORT_START("IN0") /* fe0000 */
+ PORT_START("IN0") // fe0000
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4)
@@ -233,7 +612,7 @@ static INPUT_PORTS_START( cyberbal )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
- PORT_START("IN1") /* fe1000 */
+ PORT_START("IN1") // fe1000
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
@@ -250,13 +629,13 @@ static INPUT_PORTS_START( cyberbal )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("lscreen")
- PORT_START("IN2") /* fake port for screen switching */
+ PORT_START("IN2") // fake port for screen switching
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( cyberbal2p )
- PORT_START("IN0") /* fc0000 */
+ PORT_START("IN0") // fc0000
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
@@ -265,7 +644,7 @@ static INPUT_PORTS_START( cyberbal2p )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("IN1") /* fc2000 */
+ PORT_START("IN1") // fc2000
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
@@ -274,7 +653,7 @@ static INPUT_PORTS_START( cyberbal2p )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("IN2") /* fc4000 */
+ PORT_START("IN2") // fc4000
PORT_BIT( 0x1fff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_ATARI_JSA_MAIN_TO_SOUND_READY("jsa")
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
@@ -324,15 +703,15 @@ static const gfx_layout molayout =
};
static GFXDECODE_START( gfx_cyberbal )
- GFXDECODE_ENTRY( "gfx2", 0, pfanlayout, 0, 128 )
- GFXDECODE_ENTRY( "gfx1", 0, molayout, 0x600, 16 )
- GFXDECODE_ENTRY( "gfx3", 0, pfanlayout, 0x780, 8 )
+ GFXDECODE_ENTRY( "tiles", 0, pfanlayout, 0, 128 )
+ GFXDECODE_ENTRY( "sprites", 0, molayout, 0x600, 16 )
+ GFXDECODE_ENTRY( "chars", 0, pfanlayout, 0x780, 8 )
GFXDECODE_END
static GFXDECODE_START( gfx_interleaved )
- GFXDECODE_ENTRY( "gfx2", 0, pfanlayout_interleaved, 0, 128 )
- GFXDECODE_ENTRY( "gfx1", 0, molayout, 0x600, 16 )
- GFXDECODE_ENTRY( "gfx3", 0, pfanlayout_interleaved, 0x780, 8 )
+ GFXDECODE_ENTRY( "tiles", 0, pfanlayout_interleaved, 0, 128 )
+ GFXDECODE_ENTRY( "sprites", 0, molayout, 0x600, 16 )
+ GFXDECODE_ENTRY( "chars", 0, pfanlayout_interleaved, 0x780, 8 )
GFXDECODE_END
@@ -343,38 +722,40 @@ GFXDECODE_END
*
*************************************/
-void cyberbal_state::cyberbal_base(machine_config &config)
+void cyberbal_state::cyberbal(machine_config &config)
{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14.318181_MHz_XTAL/2);
+ // basic machine hardware
+ M68000(config, m_maincpu, 14.318181_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &cyberbal_state::main_map);
- M68000(config, m_extracpu, 14.318181_MHz_XTAL/2);
+ M68000(config, m_extracpu, 14.318181_MHz_XTAL / 2);
m_extracpu->set_addrmap(AS_PROGRAM, &cyberbal_state::extra_map);
config.set_maximum_quantum(attotime::from_hz(600));
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
+
TIMER(config, "scantimer").configure_scanline(FUNC(cyberbal_state::scanline_update), m_lscreen, 0, 8);
WATCHDOG_TIMER(config, "watchdog");
- /* video hardware */
+ // video hardware
GFXDECODE(config, m_gfxdecode, "lpalette", gfx_interleaved);
PALETTE(config, "lpalette").set_format(palette_device::IRGB_1555, 2048);
PALETTE(config, "rpalette").set_format(palette_device::IRGB_1555, 2048);
- TILEMAP(config, m_playfield, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,64)
+ TILEMAP(config, m_playfield, "gfxdecode", 2, 16, 8, TILEMAP_SCAN_ROWS, 64, 64)
.set_info_callback(FUNC(cyberbal_state::get_playfield_tile_info));
- TILEMAP(config, m_alpha, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,32, 0)
+ TILEMAP(config, m_alpha, "gfxdecode", 2, 16, 8, TILEMAP_SCAN_ROWS, 64, 32, 0)
.set_info_callback(FUNC(cyberbal_state::get_alpha_tile_info));
ATARI_MOTION_OBJECTS(config, m_mob, 0).set_screen("lscreen");
m_mob->set_config(cyberbal_state::s_mob_config);
m_mob->set_gfxdecode("gfxdecode");
- TILEMAP(config, m_playfield2, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,64)
+ TILEMAP(config, m_playfield2, "gfxdecode", 2, 16, 8, TILEMAP_SCAN_ROWS, 64, 64)
.set_info_callback(FUNC(cyberbal_state::get_playfield2_tile_info));
- TILEMAP(config, m_alpha2, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,32, 0)
+ TILEMAP(config, m_alpha2, "gfxdecode", 2, 16, 8, TILEMAP_SCAN_ROWS, 64, 32, 0)
.set_info_callback(FUNC(cyberbal_state::get_alpha2_tile_info));
ATARI_MOTION_OBJECTS(config, m_mob2, 0).set_screen("rscreen");
m_mob2->set_config(cyberbal_state::s_mob_config);
@@ -382,22 +763,22 @@ void cyberbal_state::cyberbal_base(machine_config &config)
SCREEN(config, m_lscreen, SCREEN_TYPE_RASTER);
m_lscreen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
- /* note: these parameters are from published specs, not derived */
- /* the board uses an SOS-2 chip to generate video signals */
+ // note: these parameters are from published specs, not derived
+ // the board uses an SOS-2 chip to generate video signals
m_lscreen->set_raw(14.318181_MHz_XTAL, 456*2, 0, 336*2, 262, 0, 240);
m_lscreen->set_screen_update(FUNC(cyberbal_state::screen_update_cyberbal_left));
m_lscreen->set_palette("lpalette");
- m_lscreen->screen_vblank().set(FUNC(cyberbal_state::video_int_write_line)); /* or is it "right?" har, har! */
+ m_lscreen->screen_vblank().set(FUNC(cyberbal_state::video_int_write_line)); // or is it "right?" har, har!
SCREEN(config, m_rscreen, SCREEN_TYPE_RASTER);
m_rscreen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
- /* note: these parameters are from published specs, not derived */
- /* the board uses an SOS-2 chip to generate video signals */
+ // note: these parameters are from published specs, not derived
+ // the board uses an SOS-2 chip to generate video signals
m_rscreen->set_raw(14.318181_MHz_XTAL, 456*2, 0, 336*2, 262, 0, 240);
m_rscreen->set_screen_update(FUNC(cyberbal_state::screen_update_cyberbal_right));
m_rscreen->set_palette("rpalette");
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
@@ -408,17 +789,10 @@ void cyberbal_state::cyberbal_base(machine_config &config)
m_sac->add_route(1, "rspeaker", 1.0);
}
-void cyberbal_state::cyberbal(machine_config &config)
-{
- cyberbal_base(config);
-
- EEPROM_2804(config, "eeprom").lock_after_write(true);
-}
-
void cyberbal_state::cyberbalt(machine_config &config)
{
- cyberbal_base(config);
- EEPROM_2816(config, "eeprom").lock_after_write(true);
+ cyberbal(config);
+ EEPROM_2816(config.replace(), "eeprom").lock_after_write(true);
SLAPSTIC(config, m_slapstic, 116);
m_slapstic->set_range(m_maincpu, AS_PROGRAM, 0x18000, 0x1ffff, 0);
@@ -428,8 +802,8 @@ void cyberbal_state::cyberbalt(machine_config &config)
void cyberbal2p_state::cyberbal2p(machine_config &config)
{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14.318181_MHz_XTAL/2);
+ // basic machine hardware
+ M68000(config, m_maincpu, 14.318181_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &cyberbal2p_state::cyberbal2p_map);
EEPROM_2816(config, "eeprom").lock_after_write(true);
@@ -438,13 +812,13 @@ void cyberbal2p_state::cyberbal2p(machine_config &config)
WATCHDOG_TIMER(config, "watchdog");
- /* video hardware */
+ // video hardware
GFXDECODE(config, "gfxdecode", "palette", gfx_cyberbal);
PALETTE(config, "palette").set_format(palette_device::IRGB_1555, 2048);
- TILEMAP(config, m_playfield, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,64)
+ TILEMAP(config, m_playfield, "gfxdecode", 2, 16, 8, TILEMAP_SCAN_ROWS, 64, 64)
.set_info_callback(FUNC(cyberbal2p_state::get_playfield_tile_info));
- TILEMAP(config, m_alpha, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,32, 0)
+ TILEMAP(config, m_alpha, "gfxdecode", 2, 16, 8, TILEMAP_SCAN_ROWS, 64, 32, 0)
.set_info_callback(FUNC(cyberbal2p_state::get_alpha_tile_info));
ATARI_MOTION_OBJECTS(config, m_mob, 0).set_screen("screen");
m_mob->set_config(cyberbal2p_state::s_mob_config);
@@ -452,14 +826,14 @@ void cyberbal2p_state::cyberbal2p(machine_config &config)
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
- /* note: these parameters are from published specs, not derived */
- /* the board uses an SOS-2 chip to generate video signals */
+ // note: these parameters are from published specs, not derived
+ // the board uses an SOS-2 chip to generate video signals
m_screen->set_raw(14.318181_MHz_XTAL, 456*2, 0, 336*2, 262, 0, 240);
m_screen->set_screen_update(FUNC(cyberbal2p_state::screen_update_cyberbal2p));
m_screen->set_palette("palette");
m_screen->screen_vblank().set(FUNC(cyberbal2p_state::video_int_write_line));
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
ATARI_JSA_II(config, m_jsa, 0);
@@ -477,26 +851,26 @@ void cyberbal2p_state::cyberbal2p(machine_config &config)
*************************************/
ROM_START( cyberbal )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136064-4123.1m", 0x000000, 0x010000, CRC(fb872740) SHA1(15e6721d466fe56d7c97c6801e214b32803a0a0d) )
ROM_LOAD16_BYTE( "136064-4124.1kl", 0x000001, 0x010000, CRC(87babad9) SHA1(acdc6b5976445e203de19eb03697e307fe6da77d) )
- ROM_REGION( 0x10000, "sac:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "sac:cpu", 0 ) // 6502 code
ROM_LOAD( "136064-2131.2f", 0x000000, 0x010000, CRC(bd7e3d84) SHA1(f87878042fc79fa3883136b31ac15ddc22c6023c) )
- ROM_REGION( 0x40000, "extra", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "extra", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136064-2127.3cd", 0x000000, 0x010000, CRC(3e5feb1f) SHA1(9f92f496adbdf74e394e0d710d6471b9666ba5e5) )
ROM_LOAD16_BYTE( "136064-2128.1b", 0x000001, 0x010000, CRC(4e642cc3) SHA1(f708b6dd4360380bb10059d66df66b07966210b4) )
ROM_LOAD16_BYTE( "136064-1129.1cd", 0x020000, 0x010000, CRC(db11d2f0) SHA1(da9f49af533cbc732b17699040c7930070a90644) )
ROM_LOAD16_BYTE( "136064-1130.3b", 0x020001, 0x010000, CRC(fd86b8aa) SHA1(46310efed762632ed176a08aaec41e48aad41cc1) )
- ROM_REGION16_BE( 0x40000, "sac:dac", 0 ) /* 256k for 68000 sound code */
+ ROM_REGION16_BE( 0x40000, "sac:dac", 0 )
ROM_LOAD16_BYTE( "136064-1132.3cd", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
ROM_LOAD16_BYTE( "136064-1133.1b", 0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
ROM_LOAD16_BYTE( "136064-1134.1cd", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
ROM_LOAD16_BYTE( "136064-1135.3b", 0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136064-1105.15a", 0x000000, 0x010000, CRC(e770eb3e) SHA1(e9f9e9e05774005c8be3bbdc19985b59a0081ef4) )
ROM_LOAD( "136064-1109.16a", 0x010000, 0x010000, CRC(40db00da) SHA1(d92d856b06f6ba11621ba7aab3d40653b3c70159) )
ROM_LOAD( "136064-2113.18a", 0x020000, 0x010000, CRC(52bb08fb) SHA1(08caa156923daf444e0caafb2cdff0704c90ef1f) )
@@ -514,13 +888,13 @@ ROM_START( cyberbal )
ROM_LOAD( "136064-2116.13c", 0x110000, 0x010000, CRC(6cf79a67) SHA1(7f3271b575cf0b5033b5b19f0e71fae251040fc6) )
ROM_LOAD( "136064-1120.14c", 0x120000, 0x010000, CRC(40bdf767) SHA1(c57aaea838abeaea1a0060c45c2f33c38a51edb3) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136064-1101.9lm", 0x000000, 0x010000, CRC(a64b4da8) SHA1(f68778adb56a1eb964acdbc7e9d690a8a83f170b) )
ROM_LOAD( "136064-1102.8lm", 0x010000, 0x010000, CRC(ca91ec1b) SHA1(970c64e19893503cae796daee63b2d7d08eaf551) )
ROM_LOAD( "136064-1103.11lm", 0x020000, 0x010000, CRC(ee29d1d1) SHA1(2a7fea25728c66ce482de76299413ef5da01beef) )
ROM_LOAD( "136064-1104.10lm", 0x030000, 0x010000, CRC(882649f8) SHA1(fbaea597b6e318234e41df245023643f448a4938) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136064-1121.15n", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
ROM_LOAD( "136064-1122.16n", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
@@ -537,26 +911,26 @@ ROM_END
ROM_START( cyberbal2 )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136064-2123.1m", 0x000000, 0x010000, CRC(502676e8) SHA1(c0f1f1ce50d3df21cb81244268faef6c303cdfab) )
ROM_LOAD16_BYTE( "136064-2124.1kl", 0x000001, 0x010000, CRC(30f55915) SHA1(ab93ec46f282ab9a0cd47c989537a7e036975e3f) )
- ROM_REGION( 0x10000, "sac:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "sac:cpu", 0 ) // 6502 code
ROM_LOAD( "136064-2131.2f", 0x000000, 0x010000, CRC(bd7e3d84) SHA1(f87878042fc79fa3883136b31ac15ddc22c6023c) )
- ROM_REGION( 0x40000, "extra", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "extra", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136064-2127.3cd", 0x000000, 0x010000, CRC(3e5feb1f) SHA1(9f92f496adbdf74e394e0d710d6471b9666ba5e5) )
ROM_LOAD16_BYTE( "136064-2128.1b", 0x000001, 0x010000, CRC(4e642cc3) SHA1(f708b6dd4360380bb10059d66df66b07966210b4) )
ROM_LOAD16_BYTE( "136064-1129.1cd", 0x020000, 0x010000, CRC(db11d2f0) SHA1(da9f49af533cbc732b17699040c7930070a90644) )
ROM_LOAD16_BYTE( "136064-1130.3b", 0x020001, 0x010000, CRC(fd86b8aa) SHA1(46310efed762632ed176a08aaec41e48aad41cc1) )
- ROM_REGION16_BE( 0x40000, "sac:dac", 0 ) /* 256k for 68000 sound code */
+ ROM_REGION16_BE( 0x40000, "sac:dac", 0 )
ROM_LOAD16_BYTE( "136064-1132.3cd", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
ROM_LOAD16_BYTE( "136064-1133.1b", 0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
ROM_LOAD16_BYTE( "136064-1134.1cd", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
ROM_LOAD16_BYTE( "136064-1135.3b", 0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136064-1105.15a", 0x000000, 0x010000, CRC(e770eb3e) SHA1(e9f9e9e05774005c8be3bbdc19985b59a0081ef4) )
ROM_LOAD( "136064-1109.16a", 0x010000, 0x010000, CRC(40db00da) SHA1(d92d856b06f6ba11621ba7aab3d40653b3c70159) )
ROM_LOAD( "136064-2113.18a", 0x020000, 0x010000, CRC(52bb08fb) SHA1(08caa156923daf444e0caafb2cdff0704c90ef1f) )
@@ -574,13 +948,13 @@ ROM_START( cyberbal2 )
ROM_LOAD( "136064-2116.13c", 0x110000, 0x010000, CRC(6cf79a67) SHA1(7f3271b575cf0b5033b5b19f0e71fae251040fc6) )
ROM_LOAD( "136064-1120.14c", 0x120000, 0x010000, CRC(40bdf767) SHA1(c57aaea838abeaea1a0060c45c2f33c38a51edb3) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136064-1101.9lm", 0x000000, 0x010000, CRC(a64b4da8) SHA1(f68778adb56a1eb964acdbc7e9d690a8a83f170b) )
ROM_LOAD( "136064-1102.8lm", 0x010000, 0x010000, CRC(ca91ec1b) SHA1(970c64e19893503cae796daee63b2d7d08eaf551) )
ROM_LOAD( "136064-1103.11lm", 0x020000, 0x010000, CRC(ee29d1d1) SHA1(2a7fea25728c66ce482de76299413ef5da01beef) )
ROM_LOAD( "136064-1104.10lm", 0x030000, 0x010000, CRC(882649f8) SHA1(fbaea597b6e318234e41df245023643f448a4938) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136064-1121.15n", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
ROM_LOAD( "136064-1122.16n", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
@@ -589,27 +963,27 @@ ROM_START( cyberbal2 )
ROM_END
-ROM_START( cyberbal1 ) /* loose chips from upgrade, cannot verify any rev 2 graphics chips as being correct for this set */
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 4*64k for 68000 code */
+ROM_START( cyberbal1 ) // loose chips from upgrade, cannot verify any rev 2 graphics chips as being correct for this set
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136064-1123.1m", 0x000000, 0x010000, CRC(ba01fcdc) SHA1(d0283d68450cb758942df20762e12442687eab78) )
ROM_LOAD16_BYTE( "136064-1124.1kl", 0x000001, 0x010000, CRC(d0617f65) SHA1(7c641a2c709ecf40f6977abd94f6320e13faf61b) )
- ROM_REGION( 0x10000, "sac:cpu", 0 ) /* 64k for 6502 code */
- ROM_LOAD( "136064-2131.2f", 0x000000, 0x010000, CRC(bd7e3d84) SHA1(f87878042fc79fa3883136b31ac15ddc22c6023c) ) /* this rev 2 chip was among the loose rev 1 chips */
+ ROM_REGION( 0x10000, "sac:cpu", 0 ) // 6502 code
+ ROM_LOAD( "136064-2131.2f", 0x000000, 0x010000, CRC(bd7e3d84) SHA1(f87878042fc79fa3883136b31ac15ddc22c6023c) ) // this rev 2 chip was among the loose rev 1 chips
- ROM_REGION( 0x40000, "extra", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "extra", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136064-1127.3cd", 0x000000, 0x010000, CRC(f8d60334) SHA1(e54dabe71a9b943fac408788b19e7add207c6740) )
ROM_LOAD16_BYTE( "136064-1128.1b", 0x000001, 0x010000, CRC(7adb1d68) SHA1(a8f4d7d7423791c0c0bd6dfbe8d23a1b01b91aac) )
ROM_LOAD16_BYTE( "136064-1129.1cd", 0x020000, 0x010000, CRC(db11d2f0) SHA1(da9f49af533cbc732b17699040c7930070a90644) )
ROM_LOAD16_BYTE( "136064-1130.3b", 0x020001, 0x010000, CRC(fd86b8aa) SHA1(46310efed762632ed176a08aaec41e48aad41cc1) )
- ROM_REGION16_BE( 0x40000, "sac:dac", 0 ) /* 256k for 68000 sound code */
+ ROM_REGION16_BE( 0x40000, "sac:dac", 0 )
ROM_LOAD16_BYTE( "136064-1132.3cd", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
ROM_LOAD16_BYTE( "136064-1133.1b", 0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
ROM_LOAD16_BYTE( "136064-1134.1cd", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
ROM_LOAD16_BYTE( "136064-1135.3b", 0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136064-1105.15a", 0x000000, 0x010000, CRC(e770eb3e) SHA1(e9f9e9e05774005c8be3bbdc19985b59a0081ef4) )
ROM_LOAD( "136064-1109.16a", 0x010000, 0x010000, CRC(40db00da) SHA1(d92d856b06f6ba11621ba7aab3d40653b3c70159) )
ROM_LOAD( "136064-2113.18a", 0x020000, 0x010000, CRC(52bb08fb) SHA1(08caa156923daf444e0caafb2cdff0704c90ef1f) )
@@ -627,13 +1001,13 @@ ROM_START( cyberbal1 ) /* loose chips from upgrade, cannot verify any rev 2 grap
ROM_LOAD( "136064-2116.13c", 0x110000, 0x010000, CRC(6cf79a67) SHA1(7f3271b575cf0b5033b5b19f0e71fae251040fc6) )
ROM_LOAD( "136064-1120.14c", 0x120000, 0x010000, CRC(40bdf767) SHA1(c57aaea838abeaea1a0060c45c2f33c38a51edb3) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136064-1101.9lm", 0x000000, 0x010000, CRC(a64b4da8) SHA1(f68778adb56a1eb964acdbc7e9d690a8a83f170b) )
ROM_LOAD( "136064-1102.8lm", 0x010000, 0x010000, CRC(ca91ec1b) SHA1(970c64e19893503cae796daee63b2d7d08eaf551) )
ROM_LOAD( "136064-1103.11lm", 0x020000, 0x010000, CRC(ee29d1d1) SHA1(2a7fea25728c66ce482de76299413ef5da01beef) )
ROM_LOAD( "136064-1104.10lm", 0x030000, 0x010000, CRC(882649f8) SHA1(fbaea597b6e318234e41df245023643f448a4938) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136064-1121.15n", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
ROM_LOAD( "136064-1122.16n", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
@@ -643,26 +1017,26 @@ ROM_END
ROM_START( cyberbalp )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136064-0123.1m", 0x000000, 0x010000, CRC(59bac810) SHA1(d4742b2b554c2ad62a2ea7152db3f06a06cddd67) )
ROM_LOAD16_BYTE( "136064-0124.1kl", 0x000001, 0x010000, CRC(e48e6dd3) SHA1(4d45bc66c0a3eb1174db7f19c5dee54dabad68f3) )
- ROM_REGION( 0x10000, "sac:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "sac:cpu", 0 ) // 6502 code
ROM_LOAD( "136064-0131.2f", 0x000000, 0x010000, CRC(c72b71ce) SHA1(6d3d8f437cf55ccaaa4490daa69f402902944686) )
- ROM_REGION( 0x40000, "extra", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "extra", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136064-0127.3cd", 0x000000, 0x010000, CRC(37ad3420) SHA1(e9c1ea59f5f9a133822a49027b4abf02af855ca2) )
ROM_LOAD16_BYTE( "136064-0128.1b", 0x000001, 0x010000, CRC(d89aa8af) SHA1(b9faca1a775c1d699335a5ac0e1d25e8370c02a7) )
ROM_LOAD16_BYTE( "136064-1129.1cd", 0x020000, 0x010000, CRC(db11d2f0) SHA1(da9f49af533cbc732b17699040c7930070a90644) )
ROM_LOAD16_BYTE( "136064-1130.3b", 0x020001, 0x010000, CRC(fd86b8aa) SHA1(46310efed762632ed176a08aaec41e48aad41cc1) )
- ROM_REGION16_BE( 0x40000, "sac:dac", 0 ) /* 256k for 68000 sound code */
+ ROM_REGION16_BE( 0x40000, "sac:dac", 0 )
ROM_LOAD16_BYTE( "136064-0132.3cd", 0x000000, 0x010000, CRC(392a442c) SHA1(e108456167f433808b452edb3351d283b5cf7a50) )
ROM_LOAD16_BYTE( "136064-0133.1b", 0x000001, 0x010000, CRC(a0a11cf9) SHA1(b28a379cb49d051b6ccff877255409e1231d3030) )
ROM_LOAD16_BYTE( "136064-1134.1cd", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
ROM_LOAD16_BYTE( "136064-1135.3b", 0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136064-1105.15a", 0x000000, 0x010000, CRC(e770eb3e) SHA1(e9f9e9e05774005c8be3bbdc19985b59a0081ef4) )
ROM_LOAD( "136064-1109.16a", 0x010000, 0x010000, CRC(40db00da) SHA1(d92d856b06f6ba11621ba7aab3d40653b3c70159) )
ROM_LOAD( "136064-2113.18a", 0x020000, 0x010000, CRC(52bb08fb) SHA1(08caa156923daf444e0caafb2cdff0704c90ef1f) )
@@ -680,13 +1054,13 @@ ROM_START( cyberbalp )
ROM_LOAD( "136064-2116.13c", 0x110000, 0x010000, CRC(6cf79a67) SHA1(7f3271b575cf0b5033b5b19f0e71fae251040fc6) )
ROM_LOAD( "136064-1120.14c", 0x120000, 0x010000, CRC(40bdf767) SHA1(c57aaea838abeaea1a0060c45c2f33c38a51edb3) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136064-1101.9lm", 0x000000, 0x010000, CRC(a64b4da8) SHA1(f68778adb56a1eb964acdbc7e9d690a8a83f170b) )
ROM_LOAD( "136064-1102.8lm", 0x010000, 0x010000, CRC(ca91ec1b) SHA1(970c64e19893503cae796daee63b2d7d08eaf551) )
ROM_LOAD( "136064-1103.11lm", 0x020000, 0x010000, CRC(ee29d1d1) SHA1(2a7fea25728c66ce482de76299413ef5da01beef) )
ROM_LOAD( "136064-1104.10lm", 0x030000, 0x010000, CRC(882649f8) SHA1(fbaea597b6e318234e41df245023643f448a4938) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136064-1121.15n", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
ROM_LOAD( "136064-1122.16n", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
@@ -696,7 +1070,7 @@ ROM_END
ROM_START( cyberbal2p )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 8*64k for 68000 code */
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136071-4019.10c", 0x000000, 0x010000, CRC(20c6b09c) SHA1(b12f9247621fe0242171140256b7b92c996dcb19) )
ROM_LOAD16_BYTE( "136071-4020.10d", 0x000001, 0x010000, CRC(eaa6c524) SHA1(0bc48dca1f10fbb3dec441d06f447637b6c70356) )
ROM_LOAD16_BYTE( "136071-4021.21c", 0x020000, 0x010000, CRC(89ffa885) SHA1(d276209fd72c753d23571464e51d701a54cc3e0e) )
@@ -706,10 +1080,10 @@ ROM_START( cyberbal2p )
ROM_LOAD16_BYTE( "136071-1025.27c", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
ROM_LOAD16_BYTE( "136071-1026.27d", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
- ROM_REGION( 0x10000, "jsa:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "jsa:cpu", 0 ) // 6502 code
ROM_LOAD( "136071-1042.1b", 0x00000, 0x10000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136071-1001.55l", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
ROM_LOAD( "136071-1005.43l", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
ROM_LOAD( "136071-1032.18a", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
@@ -723,17 +1097,17 @@ ROM_START( cyberbal2p )
ROM_LOAD( "136071-1008.78n", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
ROM_LOAD( "136071-1035.13c", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136071-1013.10k", 0x000000, 0x010000, CRC(cdf6e3d6) SHA1(476644065b82e2ea553dfb51844c0bbf3313c481) )
ROM_LOAD( "136071-1014.16f", 0x010000, 0x010000, CRC(ec2fef3e) SHA1(07ed472fa1723ebf82d608667df70511a50dca3e) )
ROM_LOAD( "136071-1015.16k", 0x020000, 0x010000, CRC(e866848f) SHA1(35b438dcc1947151a7aafe919b9adf33d7a8fb77) )
ROM_LOAD( "136071-1016.10f", 0x030000, 0x010000, CRC(9b9a393c) SHA1(db4ceb33756bab0ac7bea30e6c7345d06a0f4aa2) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136071-1017.32n", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
ROM_LOAD( "136071-1018.32l", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
- ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
+ ROM_REGION( 0x40000, "jsa:oki1", 0 )
ROM_LOAD( "136071-1043.7k", 0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
ROM_LOAD( "136071-1044.7j", 0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
@@ -745,7 +1119,7 @@ ROM_END
ROM_START( cyberbal2p3 )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 8*64k for 68000 code */
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136071-3019.10c", 0x000000, 0x010000, CRC(029f8cb6) SHA1(528ab6357592313b41964102c14b90862c05f248) )
ROM_LOAD16_BYTE( "136071-3020.10d", 0x000001, 0x010000, CRC(1871b344) SHA1(2b6f2f4760af0f0e1e0b6cb34017dcdca7635e60) )
ROM_LOAD16_BYTE( "136071-3021.21c", 0x020000, 0x010000, CRC(fd7ebead) SHA1(4118c865897c7a9f73de200ea9766fe190547606) )
@@ -755,10 +1129,10 @@ ROM_START( cyberbal2p3 )
ROM_LOAD16_BYTE( "136071-1025.27c", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
ROM_LOAD16_BYTE( "136071-1026.27d", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
- ROM_REGION( 0x10000, "jsa:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "jsa:cpu", 0 ) // 6502 code
ROM_LOAD( "136071-1042.1b", 0x00000, 0x10000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136071-1001.55l", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
ROM_LOAD( "136071-1005.43l", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
ROM_LOAD( "136071-1032.18a", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
@@ -772,17 +1146,17 @@ ROM_START( cyberbal2p3 )
ROM_LOAD( "136071-1008.78n", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
ROM_LOAD( "136071-1035.13c", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136071-1013.10k", 0x000000, 0x010000, CRC(cdf6e3d6) SHA1(476644065b82e2ea553dfb51844c0bbf3313c481) )
ROM_LOAD( "136071-1014.16f", 0x010000, 0x010000, CRC(ec2fef3e) SHA1(07ed472fa1723ebf82d608667df70511a50dca3e) )
ROM_LOAD( "136071-1015.16k", 0x020000, 0x010000, CRC(e866848f) SHA1(35b438dcc1947151a7aafe919b9adf33d7a8fb77) )
ROM_LOAD( "136071-1016.10f", 0x030000, 0x010000, CRC(9b9a393c) SHA1(db4ceb33756bab0ac7bea30e6c7345d06a0f4aa2) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136071-1017.32n", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
ROM_LOAD( "136071-1018.32l", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
- ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
+ ROM_REGION( 0x40000, "jsa:oki1", 0 )
ROM_LOAD( "136071-1043.7k", 0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
ROM_LOAD( "136071-1044.7j", 0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
@@ -794,7 +1168,7 @@ ROM_END
ROM_START( cyberbal2p2 )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 8*64k for 68000 code */
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136071-2019.10c", 0x000000, 0x010000, CRC(acb1e18b) SHA1(37a80f0c8d8b46ebb9660c7f038fc874d4817e93) )
ROM_LOAD16_BYTE( "136071-2020.10d", 0x000001, 0x010000, CRC(fd6ec2fd) SHA1(8b871e5e66acd26b8301ac35e3f42fba5b9fce2c) )
ROM_LOAD16_BYTE( "136071-1021.21c", 0x020000, 0x010000, CRC(9b6cecc3) SHA1(14291302ca6a35fc4c24d9f7d6a4ef7c88a95e5a) )
@@ -804,10 +1178,10 @@ ROM_START( cyberbal2p2 )
ROM_LOAD16_BYTE( "136071-1025.27c", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
ROM_LOAD16_BYTE( "136071-1026.27d", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
- ROM_REGION( 0x10000, "jsa:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "jsa:cpu", 0 ) // 6502 code
ROM_LOAD( "136071-1042.1b", 0x00000, 0x10000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136071-1001.55l", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
ROM_LOAD( "136071-1005.43l", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
ROM_LOAD( "136071-1032.18a", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
@@ -821,17 +1195,17 @@ ROM_START( cyberbal2p2 )
ROM_LOAD( "136071-1008.78n", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
ROM_LOAD( "136071-1035.13c", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136071-1013.10k", 0x000000, 0x010000, CRC(cdf6e3d6) SHA1(476644065b82e2ea553dfb51844c0bbf3313c481) )
ROM_LOAD( "136071-1014.16f", 0x010000, 0x010000, CRC(ec2fef3e) SHA1(07ed472fa1723ebf82d608667df70511a50dca3e) )
ROM_LOAD( "136071-1015.16k", 0x020000, 0x010000, CRC(e866848f) SHA1(35b438dcc1947151a7aafe919b9adf33d7a8fb77) )
ROM_LOAD( "136071-1016.10f", 0x030000, 0x010000, CRC(9b9a393c) SHA1(db4ceb33756bab0ac7bea30e6c7345d06a0f4aa2) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136071-1017.32n", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
ROM_LOAD( "136071-1018.32l", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
- ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
+ ROM_REGION( 0x40000, "jsa:oki1", 0 )
ROM_LOAD( "136071-1043.7k", 0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
ROM_LOAD( "136071-1044.7j", 0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
@@ -843,7 +1217,7 @@ ROM_END
ROM_START( cyberbal2p1 )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 8*64k for 68000 code */
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136071-1019.10c", 0x000000, 0x010000, CRC(37f5f8ba) SHA1(80552b41d7d1c3044ccd1cbfbac6051447915d41) )
ROM_LOAD16_BYTE( "136071-1020.10d", 0x000001, 0x010000, CRC(cae4faa2) SHA1(e3282416b1d0dccd52dd8763a02647470dd37114) )
ROM_LOAD16_BYTE( "136071-1021.21c", 0x020000, 0x010000, CRC(9b6cecc3) SHA1(14291302ca6a35fc4c24d9f7d6a4ef7c88a95e5a) )
@@ -853,10 +1227,10 @@ ROM_START( cyberbal2p1 )
ROM_LOAD16_BYTE( "136071-1025.27c", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
ROM_LOAD16_BYTE( "136071-1026.27d", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
- ROM_REGION( 0x10000, "jsa:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "jsa:cpu", 0 ) // 6502 code
ROM_LOAD( "136071-1042.1b", 0x00000, 0x10000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136071-1001.55l", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
ROM_LOAD( "136071-1005.43l", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
ROM_LOAD( "136071-1032.18a", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
@@ -870,17 +1244,17 @@ ROM_START( cyberbal2p1 )
ROM_LOAD( "136071-1008.78n", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
ROM_LOAD( "136071-1035.13c", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136071-1013.10k", 0x000000, 0x010000, CRC(cdf6e3d6) SHA1(476644065b82e2ea553dfb51844c0bbf3313c481) )
ROM_LOAD( "136071-1014.16f", 0x010000, 0x010000, CRC(ec2fef3e) SHA1(07ed472fa1723ebf82d608667df70511a50dca3e) )
ROM_LOAD( "136071-1015.16k", 0x020000, 0x010000, CRC(e866848f) SHA1(35b438dcc1947151a7aafe919b9adf33d7a8fb77) )
ROM_LOAD( "136071-1016.10f", 0x030000, 0x010000, CRC(9b9a393c) SHA1(db4ceb33756bab0ac7bea30e6c7345d06a0f4aa2) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136071-1017.32n", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
ROM_LOAD( "136071-1018.32l", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
- ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
+ ROM_REGION( 0x40000, "jsa:oki1", 0 )
ROM_LOAD( "136071-1043.7k", 0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
ROM_LOAD( "136071-1044.7j", 0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
@@ -892,13 +1266,13 @@ ROM_END
ROM_START( cyberbalt )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136073-2007.1m", 0x000000, 0x010000, CRC(adfa9e23) SHA1(5462030fa275ce7b261b7283e92df9f7f1383251) )
ROM_LOAD16_BYTE( "136073-2008.1kl", 0x000001, 0x010000, CRC(c9191452) SHA1(583c1f916fbd54dbc188be7a181ccd60c7320cc8) )
ROM_LOAD16_BYTE( "136073-2009.3m", 0x020000, 0x010000, CRC(88bfc6dd) SHA1(ac2a67c8b4dbae62497236d624d333992195c218) )
ROM_LOAD16_BYTE( "136073-2010.3kl", 0x020001, 0x010000, CRC(3a121f29) SHA1(ebd088187abb863f2a632812811479dca7e31802) )
- ROM_REGION( 0x10000, "sac:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "sac:cpu", 0 ) // 6502 code
ROM_LOAD( "136073-1029.2f", 0x000000, 0x010000, CRC(afee87e1) SHA1(da5e91167c68eecd2cb4436ac64cda14e5f6eae7) )
ROM_REGION( 0x40000, "extra", 0 )
@@ -907,13 +1281,13 @@ ROM_START( cyberbalt )
ROM_LOAD16_BYTE( "136073-1013.1cd", 0x020000, 0x010000, CRC(11d287c9) SHA1(a25095ab29a7103f2bf02d656414d9dab0b79215) )
ROM_LOAD16_BYTE( "136073-1014.3b", 0x020001, 0x010000, CRC(be15db42) SHA1(f3b1a676106e9956f62d3f36fbb1f849695ff771) )
- ROM_REGION16_BE( 0x40000, "sac:dac", 0 ) /* 256k for 68000 sound code */
+ ROM_REGION16_BE( 0x40000, "sac:dac", 0 )
ROM_LOAD16_BYTE( "136064-1132.3cd", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
ROM_LOAD16_BYTE( "136064-1133.1b", 0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
ROM_LOAD16_BYTE( "136064-1134.1cd", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
ROM_LOAD16_BYTE( "136064-1135.3b", 0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136071-1001.55l", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
ROM_LOAD( "136071-1005.43l", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
ROM_LOAD( "136071-1032.18a", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
@@ -927,13 +1301,13 @@ ROM_START( cyberbalt )
ROM_LOAD( "136071-1008.78n", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
ROM_LOAD( "136071-1035.13c", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136073-1001.9lm", 0x000000, 0x010000, CRC(dbbad153) SHA1(1004292e320037fc1d5e5e8e7b6a068b1305e872) )
ROM_LOAD( "136073-1002.8lm", 0x010000, 0x010000, CRC(76e0d008) SHA1(2af4e48a229d23d85272d3c3203d977d81143a7f) )
ROM_LOAD( "136073-1003.11lm", 0x020000, 0x010000, CRC(ddca9ca2) SHA1(19cb170fe6aeed6c67b68376b5bde07f7f115fb0) )
ROM_LOAD( "136073-1004.10lm", 0x030000, 0x010000, CRC(aa495b6f) SHA1(c7d8e16d3084143928f25f66ee4d037ff7c43bcb) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136073-1005.15n", 0x000000, 0x010000, CRC(833b4768) SHA1(754f00089d439fb0aa1f650c1fef73cf7e5f33a1) )
ROM_LOAD( "136073-1006.16n", 0x010000, 0x010000, CRC(4976cffd) SHA1(4cac8d9bd30743da6e6e4f013e6101ebc27060b6) )
@@ -943,13 +1317,13 @@ ROM_END
ROM_START( cyberbalt1 )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 4*64k for 68000 code */
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "136073-1007.1m", 0x000000, 0x010000, CRC(d434b2d7) SHA1(af6d51399ad4fca01ffbc7afa2bf73d7ee2f89b6) )
ROM_LOAD16_BYTE( "136073-1008.1kl", 0x000001, 0x010000, CRC(7d6c4163) SHA1(f1fe9d758f30bd0ebc990d8604ba32cc0d780683) )
ROM_LOAD16_BYTE( "136073-1009.3m", 0x020000, 0x010000, CRC(3933e089) SHA1(4bd453bddabeafd07d193a1bc8ac0792e7aa99c3) )
ROM_LOAD16_BYTE( "136073-1010.3kl", 0x020001, 0x010000, CRC(e7a7cae8) SHA1(91e0c6a1b0c138a0e6a599011518fe10df44e76e) )
- ROM_REGION( 0x10000, "sac:cpu", 0 ) /* 64k for 6502 code */
+ ROM_REGION( 0x10000, "sac:cpu", 0 ) // 6502 code
ROM_LOAD( "136073-1029.2f", 0x000000, 0x010000, CRC(afee87e1) SHA1(da5e91167c68eecd2cb4436ac64cda14e5f6eae7) )
ROM_REGION( 0x40000, "extra", 0 )
@@ -958,13 +1332,13 @@ ROM_START( cyberbalt1 )
ROM_LOAD16_BYTE( "136073-1013.1cd", 0x020000, 0x010000, CRC(11d287c9) SHA1(a25095ab29a7103f2bf02d656414d9dab0b79215) )
ROM_LOAD16_BYTE( "136073-1014.3b", 0x020001, 0x010000, CRC(be15db42) SHA1(f3b1a676106e9956f62d3f36fbb1f849695ff771) )
- ROM_REGION16_BE( 0x40000, "sac:dac", 0 ) /* 256k for 68000 sound code */
+ ROM_REGION16_BE( 0x40000, "sac:dac", 0 )
ROM_LOAD16_BYTE( "136064-1132.3cd", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
ROM_LOAD16_BYTE( "136064-1133.1b", 0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
ROM_LOAD16_BYTE( "136064-1134.1cd", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
ROM_LOAD16_BYTE( "136064-1135.3b", 0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
- ROM_REGION( 0x140000, "gfx1", 0 )
+ ROM_REGION( 0x140000, "sprites", 0 )
ROM_LOAD( "136071-1001.55l", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
ROM_LOAD( "136071-1005.43l", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
ROM_LOAD( "136071-1032.18a", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
@@ -978,13 +1352,13 @@ ROM_START( cyberbalt1 )
ROM_LOAD( "136071-1008.78n", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
ROM_LOAD( "136071-1035.13c", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
- ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_REGION( 0x040000, "tiles", 0 )
ROM_LOAD( "136073-1001.9lm", 0x000000, 0x010000, CRC(dbbad153) SHA1(1004292e320037fc1d5e5e8e7b6a068b1305e872) )
ROM_LOAD( "136073-1002.8lm", 0x010000, 0x010000, CRC(76e0d008) SHA1(2af4e48a229d23d85272d3c3203d977d81143a7f) )
ROM_LOAD( "136073-1003.11lm", 0x020000, 0x010000, CRC(ddca9ca2) SHA1(19cb170fe6aeed6c67b68376b5bde07f7f115fb0) )
ROM_LOAD( "136073-1004.10lm", 0x030000, 0x010000, CRC(aa495b6f) SHA1(c7d8e16d3084143928f25f66ee4d037ff7c43bcb) )
- ROM_REGION( 0x020000, "gfx3", 0 )
+ ROM_REGION( 0x020000, "chars", 0 )
ROM_LOAD( "136073-1005.15n", 0x000000, 0x010000, CRC(833b4768) SHA1(754f00089d439fb0aa1f650c1fef73cf7e5f33a1) )
ROM_LOAD( "136073-1006.16n", 0x010000, 0x010000, CRC(4976cffd) SHA1(4cac8d9bd30743da6e6e4f013e6101ebc27060b6) )
@@ -1005,6 +1379,7 @@ void cyberbal_state::init_cyberbalt()
m_slapstic_bank->configure_entries(0, 4, memregion("maincpu")->base() + 0x18000, 0x2000);
}
+} // anonymous namespace
/*************************************
@@ -1013,15 +1388,15 @@ void cyberbal_state::init_cyberbalt()
*
*************************************/
-GAMEL( 1988, cyberbal, 0, cyberbal, cyberbal, cyberbal_state, empty_init, ROT0, "Atari Games", "Cyberball (rev 4)", 0, layout_dualhsxs )
-GAMEL( 1988, cyberbal2, cyberbal, cyberbal, cyberbal, cyberbal_state, empty_init, ROT0, "Atari Games", "Cyberball (rev 2)", 0, layout_dualhsxs )
-GAMEL( 1988, cyberbal1, cyberbal, cyberbal, cyberbal, cyberbal_state, empty_init, ROT0, "Atari Games", "Cyberball (rev 1)", 0, layout_dualhsxs )
-GAMEL( 1988, cyberbalp, cyberbal, cyberbal, cyberbal, cyberbal_state, empty_init, ROT0, "Atari Games", "Cyberball (prototype)", 0, layout_dualhsxs )
+GAMEL( 1988, cyberbal, 0, cyberbal, cyberbal, cyberbal_state, empty_init, ROT0, "Atari Games", "Cyberball (rev 4)", MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 1988, cyberbal2, cyberbal, cyberbal, cyberbal, cyberbal_state, empty_init, ROT0, "Atari Games", "Cyberball (rev 2)", MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 1988, cyberbal1, cyberbal, cyberbal, cyberbal, cyberbal_state, empty_init, ROT0, "Atari Games", "Cyberball (rev 1)", MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 1988, cyberbalp, cyberbal, cyberbal, cyberbal, cyberbal_state, empty_init, ROT0, "Atari Games", "Cyberball (prototype)", MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
-GAME( 1989, cyberbal2p, cyberbal, cyberbal2p, cyberbal2p, cyberbal2p_state, empty_init, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 4)", 0 )
-GAME( 1989, cyberbal2p3, cyberbal, cyberbal2p, cyberbal2p, cyberbal2p_state, empty_init, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 3)", 0 )
-GAME( 1989, cyberbal2p2, cyberbal, cyberbal2p, cyberbal2p, cyberbal2p_state, empty_init, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 2)", 0 )
-GAME( 1989, cyberbal2p1, cyberbal, cyberbal2p, cyberbal2p, cyberbal2p_state, empty_init, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 1)", 0 )
+GAME( 1989, cyberbal2p, cyberbal, cyberbal2p, cyberbal2p, cyberbal2p_state, empty_init, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cyberbal2p3, cyberbal, cyberbal2p, cyberbal2p, cyberbal2p_state, empty_init, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cyberbal2p2, cyberbal, cyberbal2p, cyberbal2p, cyberbal2p_state, empty_init, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cyberbal2p1, cyberbal, cyberbal2p, cyberbal2p, cyberbal2p_state, empty_init, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 1)", MACHINE_SUPPORTS_SAVE )
-GAMEL( 1989, cyberbalt, cyberbal, cyberbalt, cyberbal, cyberbal_state, init_cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 2)", 0, layout_dualhsxs )
-GAMEL( 1989, cyberbalt1, cyberbal, cyberbalt, cyberbal, cyberbal_state, init_cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 1)", 0, layout_dualhsxs )
+GAMEL( 1989, cyberbalt, cyberbal, cyberbalt, cyberbal, cyberbal_state, init_cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 2)", MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 1989, cyberbalt1, cyberbal, cyberbalt, cyberbal, cyberbal_state, init_cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 1)", MACHINE_SUPPORTS_SAVE, layout_dualhsxs )