summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2022-10-27 18:06:20 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2022-10-27 18:06:20 +0200
commit96d879e9f6ab41b49cc806ec8b438b02bedf3570 (patch)
treed1ff165ff66fec7a5aeba543855efa5d48376bc6
parent8c959fb8112e0108fd95ca4f4487e80cafc7d6dd (diff)
- midway/balsente.cpp: fixed ROM names and documents label format for various sets [Brian Troha]
- edevices/mugsmash.cpp, edevices/stlforce.cpp, kiwako/mrjong.cpp: consolidated drivers in single files, minor cleanups
-rw-r--r--src/mame/edevices/mugsmash.cpp381
-rw-r--r--src/mame/edevices/mugsmash.h54
-rw-r--r--src/mame/edevices/mugsmash_v.cpp148
-rw-r--r--src/mame/edevices/stlforce.cpp227
-rw-r--r--src/mame/edevices/stlforce.h46
-rw-r--r--src/mame/kiwako/mrjong.cpp259
-rw-r--r--src/mame/kiwako/mrjong.h56
-rw-r--r--src/mame/kiwako/mrjong_v.cpp146
-rw-r--r--src/mame/midway/balsente.cpp874
9 files changed, 1218 insertions, 973 deletions
diff --git a/src/mame/edevices/mugsmash.cpp b/src/mame/edevices/mugsmash.cpp
index 4ad4053c25f..647023304b8 100644
--- a/src/mame/edevices/mugsmash.cpp
+++ b/src/mame/edevices/mugsmash.cpp
@@ -1,14 +1,15 @@
// license:BSD-3-Clause
-// copyright-holders:David Haywood
+// copyright-holders: David Haywood
+
/* Mug Smashers (c)199? Electronic Devices (Italy) / 3D Games (England)
driver by David Haywood - Dip Switches and Inputs by stephh
a side scrolling beat-em-up, borrows ideas from Combatribes, including
the music (apparently) and sound hardware!
- there is also a Spanish company logo in the graphic roms
+ there is also a Spanish company logo in the graphic ROMs
- a 1990 copyright can be found in the sound program so its 1990 at the
+ a 1990 copyright can be found in the sound program so it's 1990 at the
earliest
*/
@@ -35,27 +36,207 @@ dsw note:
the DSW ports are a bit odd, from reading the test mode it appears the
board has 2 physical dipswitches, however these are mapped over multiple
-real addresses, obviously this gives us two ways of dealing with them,
-USE_FAKE_INPUT_PORTS is used at compile time to give an option of which
-behavior we use .
-
+real addresses.
*/
#include "emu.h"
-#include "mugsmash.h"
-#include "cpu/z80/z80.h"
#include "cpu/m68000/m68000.h"
+#include "cpu/z80/z80.h"
+#include "machine/gen_latch.h"
#include "sound/okim6295.h"
#include "sound/ymopm.h"
+
+#include "emupal.h"
#include "screen.h"
#include "speaker.h"
+#include "tilemap.h"
+
+
+// configurable logging
+#define LOG_REGS1 (1U << 1)
+#define LOG_REGS2 (1U << 2)
+
+//#define VERBOSE (LOG_GENERAL | LOG_REGS1 | LOG_REGS2)
+
+#include "logmacro.h"
+
+#define LOGREGS1(...) LOGMASKED(LOG_REGS1, __VA_ARGS__)
+#define LOGREGS2(...) LOGMASKED(LOG_REGS2, __VA_ARGS__)
+
+
+namespace {
+
+class mugsmash_state : public driver_device
+{
+public:
+ mugsmash_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_videoram(*this, "videoram%u", 1U),
+ m_regs(*this, "regs%u", 1U),
+ m_spriteram(*this, "spriteram"),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
+ m_soundlatch(*this, "soundlatch") { }
+
+ void mugsmash(machine_config &config);
+
+protected:
+ virtual void video_start() override;
+
+private:
+ required_shared_ptr_array<uint16_t, 2> m_videoram;
+ required_shared_ptr_array<uint16_t, 2> m_regs;
+ required_shared_ptr<uint16_t> m_spriteram;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+ required_device<generic_latch_8_device> m_soundlatch;
+
+ tilemap_t *m_tilemap[2]{};
+
+ void reg_w(offs_t offset, uint16_t data);
+ void reg2_w(offs_t offset, uint16_t data);
+ template <uint8_t Which> void videoram_w(offs_t offset, uint16_t data);
+ template <uint8_t Which> TILE_GET_INFO_MEMBER(get_tile_info);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ void main_map(address_map &map);
+ void sound_map(address_map &map);
+};
+
+
+// video
+
+void mugsmash_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ // Each Sprite takes 16 bytes, 5 used?
+ // ---- ---- xxxx xxxx ---- ---- aaaa aaaa ---- ---- NNNN NNNN ---- ---- nnnn nnnn ---- ---- yyyy yyyy (rest unused?)
-void mugsmash_state::mugsmash_reg2_w(offs_t offset, uint16_t data)
+ /* x = xpos LSB
+ y = ypos LSB
+ N = tile number MSB
+ n = tile number LSB
+ a = attribute / extra
+ f?XY cccc
+
+ f = x-flip
+ ? = unknown, probably y-flip
+ X = xpos MSB
+ y = ypos MSB
+ c = colour
+
+ */
+
+ const uint16_t *source = m_spriteram;
+ const uint16_t *finish = source + 0x2000;
+ gfx_element *gfx = m_gfxdecode->gfx(0);
+
+ while (source < finish)
+ {
+ int xpos = source[0] & 0x00ff;
+ int ypos = source[4] & 0x00ff;
+ int const num = (source[3] & 0x00ff) | ((source[2] & 0x00ff) << 8);
+ int const attr = source[1];
+ int const flipx = (attr & 0x0080) >> 7;
+ int const colour = (attr & 0x000f);
+
+ xpos += ((attr & 0x0020) >> 5) * 0x100;
+ ypos += ((attr & 0x0010) >> 4) * 0x100;
+
+ xpos -= 28;
+ ypos -= 16;
+
+
+ gfx->transpen(
+ bitmap,
+ cliprect,
+ num,
+ colour,
+ flipx, 0,
+ xpos, ypos, 0
+ );
+
+ source += 0x8;
+ }
+}
+
+template <uint8_t Which>
+TILE_GET_INFO_MEMBER(mugsmash_state::get_tile_info)
{
- m_regs2[offset] = data;
- //popmessage ("Regs2 %04x, %04x, %04x, %04x", m_regs2[0], m_regs2[1], m_regs2[2], m_regs2[3]);
+ // fF-- cccc nnnn nnnn
+
+ /* c = colour?
+ n = number?
+ F = flip-X
+ f = flip-Y
+ */
+
+ int const tileno = m_videoram[Which][tile_index * 2 + 1];
+ int const colour = m_videoram[Which][tile_index * 2] & 0x000f;
+ int const fx = (m_videoram[Which][tile_index * 2] & 0xc0) >> 6;
+
+ tileinfo.set(1, tileno, 16 * Which + colour, TILE_FLIPYX(fx));
+}
+
+template <uint8_t Which>
+void mugsmash_state::videoram_w(offs_t offset, uint16_t data)
+{
+ m_videoram[Which][offset] = data;
+ m_tilemap[Which]->mark_tile_dirty(offset / 2);
+}
+
+void mugsmash_state::reg_w(offs_t offset, uint16_t data)
+{
+ m_regs[0][offset] = data;
+ LOGREGS1("Regs %04x, %04x, %04x, %04x", m_regs[0][0], m_regs[0][1], m_regs[0][2], m_regs[0][3]);
+
+ switch (offset)
+ {
+ case 0:
+ m_tilemap[1]->set_scrollx(0, m_regs[0][2] + 7);
+ break;
+ case 1:
+ m_tilemap[1]->set_scrolly(0, m_regs[0][3] + 4);
+ break;
+ case 2:
+ m_tilemap[0]->set_scrollx(0, m_regs[0][0] + 3);
+ break;
+ case 3:
+ m_tilemap[0]->set_scrolly(0, m_regs[0][1] + 4);
+ break;
+ }
+}
+
+void mugsmash_state::video_start()
+{
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mugsmash_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0]->set_transparent_pen(0);
+
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mugsmash_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+}
+
+uint32_t mugsmash_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0);
+ m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
+ draw_sprites(bitmap, cliprect);
+ return 0;
+}
+
+
+// machine
+
+void mugsmash_state::reg2_w(offs_t offset, uint16_t data)
+{
+ m_regs[1][offset] = data;
+ LOGREGS2("Regs2 %04x, %04x, %04x, %04x", m_regs[1][0], m_regs[1][1], m_regs[1][2], m_regs[1][3]);
switch (offset)
{
@@ -148,55 +329,24 @@ void mugsmash_state::mugsmash_reg2_w(offs_t offset, uint16_t data)
*/
-#define USE_FAKE_INPUT_PORTS 0
-
-#if USE_FAKE_INPUT_PORTS
-uint16_t mugsmash_state::mugsmash_input_ports_r(offs_t offset)
-{
- uint16_t data = 0xffff;
-
- switch (offset)
- {
- case 0 :
- data = (ioport("P1")->read() & 0xff) | ((ioport("DSW1")->read() & 0xc0) << 6) | ((ioport("IN0")->read() & 0x03) << 8);
- break;
- case 1 :
- data = (ioport("P2")->read() & 0xff) | ((ioport("DSW1")->read() & 0x3f) << 8);
- break;
- case 2 :
- data = ((ioport("DSW2")->read() & 0x3f) << 8);
- break;
- case 3 :
- data = ((ioport("DSW2")->read() & 0xc0) << 2);
- break;
- }
-
- return (data);
-}
-#endif
-
-void mugsmash_state::mugsmash_map(address_map &map)
+void mugsmash_state::main_map(address_map &map)
{
map(0x000000, 0x07ffff).rom();
- map(0x080000, 0x080fff).ram().w(FUNC(mugsmash_state::mugsmash_videoram1_w)).share("videoram1");
- map(0x082000, 0x082fff).ram().w(FUNC(mugsmash_state::mugsmash_videoram2_w)).share("videoram2");
- map(0x0c0000, 0x0c0007).w(FUNC(mugsmash_state::mugsmash_reg_w)).share("regs1"); /* video registers*/
+ map(0x080000, 0x080fff).ram().w(FUNC(mugsmash_state::videoram_w<0>)).share(m_videoram[0]);
+ map(0x082000, 0x082fff).ram().w(FUNC(mugsmash_state::videoram_w<1>)).share(m_videoram[1]);
+ map(0x0c0000, 0x0c0007).w(FUNC(mugsmash_state::reg_w)).share(m_regs[0]); // video registers
map(0x100000, 0x1005ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x140000, 0x140007).w(FUNC(mugsmash_state::mugsmash_reg2_w)).share("regs2"); /* sound + ? */
- map(0x1c0000, 0x1c3fff).ram(); /* main ram? */
+ map(0x140000, 0x140007).w(FUNC(mugsmash_state::reg2_w)).share(m_regs[1]); // sound + ?
+ map(0x1c0000, 0x1c3fff).ram(); // main RAM?
map(0x1c4000, 0x1cffff).ram();
- map(0x200000, 0x203fff).ram().share("spriteram"); /* sprite ram */
-#if USE_FAKE_INPUT_PORTS
- map(0x180000, 0x180007).r(FUNC(mugsmash_state::mugsmash_input_ports_r));
-#else
+ map(0x200000, 0x203fff).ram().share(m_spriteram);
map(0x180000, 0x180001).portr("IN0");
map(0x180002, 0x180003).portr("IN1");
map(0x180004, 0x180005).portr("IN2");
map(0x180006, 0x180007).portr("IN3");
-#endif
}
-void mugsmash_state::mugsmash_sound_map(address_map &map)
+void mugsmash_state::sound_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0x87ff).ram();
@@ -206,80 +356,16 @@ void mugsmash_state::mugsmash_sound_map(address_map &map)
}
-#define MUGSMASH_PLAYER_INPUT( player, start ) \
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) PORT_8WAY \
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) PORT_8WAY \
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) PORT_8WAY \
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) PORT_8WAY \
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) \
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(player) \
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, start )
-
-
-#if USE_FAKE_INPUT_PORTS
-static INPUT_PORTS_START( mugsmash )
- PORT_START("P1") /* Fake IN0 (player 1 inputs) */
- MUGSMASH_PLAYER_INPUT( 1, IPT_START1 )
-
- PORT_START("P2") /* Fake IN1 (player 2 inputs) */
- MUGSMASH_PLAYER_INPUT( 2, IPT_START2 )
-
- PORT_START("IN0") /* Fake IN2 (system inputs) */
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("DSW1") /* Fake IN3 (SW1) */
- PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) PORT_DIPLOCATION("DSW1:1") // SW1-1
- PORT_DIPNAME( 0x0e, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:2,3,4") // SW1-2 to SW1-4
- PORT_DIPSETTING( 0x0c, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0e, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("DSW1:5") // SW1-5
- PORT_DIPSETTING( 0x10, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x20, 0x20, "Sound Test" ) PORT_DIPLOCATION("DSW1:6") // SW1-6 (in "test mode" only)
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Color Test" ) PORT_DIPLOCATION("DSW1:7") // SW1-7 (in "test mode" only)
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Draw SF." ) PORT_DIPLOCATION("DSW1:8") // SW1-8 (in "test mode" only)
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2") /* Fake IN4 (SW2) */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSW2:1") // SW2-1
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x06, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW2:2,3") // SW2-2 and SW2-3
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x04, "3" )
- PORT_DIPSETTING( 0x06, "4" )
- PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "DSW2:4" )
- PORT_DIPNAME( 0x30, 0x10, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:5,6") // SW2-5 and SW2-6
- PORT_DIPSETTING( 0x00, DEF_STR( Very_Easy) )
- PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x30, DEF_STR( Very_Hard ) )
- PORT_DIPNAME( 0x40, 0x40, "Draw Objects" ) PORT_DIPLOCATION("DSW2:7") // SW2-7 (in "test mode" only)
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("DSW2:8") // SW2-8 (= "Screen Pause" in "test mode")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-#else
static INPUT_PORTS_START( mugsmash )
PORT_START("IN0") /* IN0 - $180000.w */
- MUGSMASH_PLAYER_INPUT( 1, IPT_START1 )
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
@@ -294,7 +380,14 @@ static INPUT_PORTS_START( mugsmash )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN1") /* IN1 - $180002.w */
- MUGSMASH_PLAYER_INPUT( 2, IPT_START2 )
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
PORT_SERVICE( 0x0100, IP_ACTIVE_LOW ) // SW1-1
PORT_DIPNAME( 0x0e00, 0x0000, DEF_STR( Coinage ) ) // SW1-2 to SW1-4
PORT_DIPSETTING( 0x0c00, DEF_STR( 4C_1C ) )
@@ -364,7 +457,6 @@ static INPUT_PORTS_START( mugsmash )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
-#endif
static const gfx_layout mugsmash_layout =
{
@@ -390,22 +482,18 @@ static const gfx_layout mugsmash2_layout =
};
static GFXDECODE_START( gfx_mugsmash )
- GFXDECODE_ENTRY( "gfx1", 0, mugsmash_layout, 0x00, 16 ) /* sprites */
- GFXDECODE_ENTRY( "gfx2", 0, mugsmash2_layout, 0x100, 256 ) /* bg tiles */
+ GFXDECODE_ENTRY( "sprites", 0, mugsmash_layout, 0x00, 16 )
+ GFXDECODE_ENTRY( "bgtiles", 0, mugsmash2_layout, 0x100, 256 )
GFXDECODE_END
-void mugsmash_state::machine_start()
-{
-}
-
void mugsmash_state::mugsmash(machine_config &config)
{
- M68000(config, m_maincpu, 12000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &mugsmash_state::mugsmash_map);
+ M68000(config, m_maincpu, 12'000'000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mugsmash_state::main_map);
m_maincpu->set_vblank_int("screen", FUNC(mugsmash_state::irq6_line_hold));
- Z80(config, m_audiocpu, 4000000); /* Guess */
- m_audiocpu->set_addrmap(AS_PROGRAM, &mugsmash_state::mugsmash_sound_map);
+ Z80(config, m_audiocpu, 4'000'000); // guess
+ m_audiocpu->set_addrmap(AS_PROGRAM, &mugsmash_state::sound_map);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -413,7 +501,7 @@ void mugsmash_state::mugsmash(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(40*8, 32*8);
screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(mugsmash_state::screen_update_mugsmash));
+ screen.set_screen_update(FUNC(mugsmash_state::screen_update));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_mugsmash);
@@ -426,29 +514,29 @@ void mugsmash_state::mugsmash(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
- ym2151_device &ymsnd(YM2151(config, "ymsnd", 3579545));
+ ym2151_device &ymsnd(YM2151(config, "ymsnd", 3'579'545));
ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
- ymsnd.add_route(0, "lspeaker", 1.00); /* music */
+ ymsnd.add_route(0, "lspeaker", 1.00); // music
ymsnd.add_route(1, "rspeaker", 1.00);
- okim6295_device &oki(OKIM6295(config, "oki", 1122000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
- oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50); /* sound fx */
+ okim6295_device &oki(OKIM6295(config, "oki", 1'122'000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
+ oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50); // sound fx
oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
}
ROM_START( mugsmash )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "mugs_04.bin", 0x00000, 0x40000, CRC(2498fd27) SHA1(7b746efe8aaf346e4489118ac2a3fc9929a55b83) )
ROM_LOAD16_BYTE( "mugs_05.bin", 0x00001, 0x40000, CRC(95efb40b) SHA1(878c0a3754aa728f58044c6a7f243724b718fe1b) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Z80 code
ROM_LOAD( "mugs_03.bin", 0x00000, 0x10000 , CRC(0101df2d) SHA1(35e1efa4a11c0f9d9db5ee057926e5de29c3a4c1) )
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
+ ROM_REGION( 0x040000, "oki", 0 ) // samples
ROM_LOAD( "mugs_02.bin", 0x00000, 0x20000, CRC(f92a7f4a) SHA1(3717ef64876be9ada378b449749918ce9072073a) )
ROM_LOAD( "mugs_01.bin", 0x20000, 0x20000, CRC(1a3a0b39) SHA1(8847530027cf4be03ffbc6d78dee97b459d03a04) )
- ROM_REGION( 0x300000, "gfx1", 0 ) /* Sprites */
+ ROM_REGION( 0x300000, "sprites", 0 )
ROM_LOAD16_BYTE( "mugs_11.bin", 0x000000, 0x080000, CRC(1c9f5acf) SHA1(dd8329ed05a3467844c26d3f89ffb6213aba2034) )
ROM_LOAD16_BYTE( "mugs_10.bin", 0x000001, 0x080000, CRC(6b3c22d9) SHA1(7ba6d754c08ed5b2be282ffd6a674c3a4aa0e9b2) )
ROM_LOAD16_BYTE( "mugs_09.bin", 0x100000, 0x080000, CRC(4e9490f3) SHA1(e5f195c9bee3b92c559d1100c1019473a30ba28e) )
@@ -456,11 +544,14 @@ ROM_START( mugsmash )
ROM_LOAD16_BYTE( "mugs_07.bin", 0x200000, 0x080000, CRC(9e3167fd) SHA1(8c73c26e8e50e8f2ee3307f5aef23caba90c22eb) )
ROM_LOAD16_BYTE( "mugs_06.bin", 0x200001, 0x080000, CRC(8df75d29) SHA1(d0add24ac974da4636d2631f5590516de0f8df4a) )
- ROM_REGION( 0x200000, "gfx2", 0 ) /* BG Tiles */
+ ROM_REGION( 0x200000, "bgtiles", 0 )
ROM_LOAD( "mugs_12.bin", 0x000000, 0x080000, CRC(c0a6ed98) SHA1(13850c6bcca65bdc782040c470c4966aee19551d) )
ROM_LOAD( "mugs_13.bin", 0x080000, 0x080000, CRC(e2be8595) SHA1(077b1a262c54acf74e6ec37702bcfed41bc31000) )
ROM_LOAD( "mugs_14.bin", 0x100000, 0x080000, CRC(24e81068) SHA1(1e33aa7d2b873dd13d5823880c46d3d3e867d6b6) )
ROM_LOAD( "mugs_15.bin", 0x180000, 0x080000, CRC(82e8187c) SHA1(c7a0e1b3d90dbbe2588886a27a07a9c336447ae3) )
ROM_END
+} // anonymous namespace
+
+
GAME( 1990?, mugsmash, 0, mugsmash, mugsmash, mugsmash_state, empty_init, ROT0, "Electronic Devices Italy / 3D Games England", "Mug Smashers", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/edevices/mugsmash.h b/src/mame/edevices/mugsmash.h
deleted file mode 100644
index a0bfed0be04..00000000000
--- a/src/mame/edevices/mugsmash.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-
-#include "machine/gen_latch.h"
-#include "emupal.h"
-#include "tilemap.h"
-
-class mugsmash_state : public driver_device
-{
-public:
- mugsmash_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_videoram1(*this, "videoram1"),
- m_videoram2(*this, "videoram2"),
- m_regs1(*this, "regs1"),
- m_regs2(*this, "regs2"),
- m_spriteram(*this, "spriteram"),
- m_maincpu(*this, "maincpu"),
- m_audiocpu(*this, "audiocpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_soundlatch(*this, "soundlatch") { }
-
- void mugsmash(machine_config &config);
-
-private:
- required_shared_ptr<uint16_t> m_videoram1;
- required_shared_ptr<uint16_t> m_videoram2;
- required_shared_ptr<uint16_t> m_regs1;
- required_shared_ptr<uint16_t> m_regs2;
- required_shared_ptr<uint16_t> m_spriteram;
-
- tilemap_t *m_tilemap1 = nullptr;
- tilemap_t *m_tilemap2 = nullptr;
-
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_audiocpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
- required_device<generic_latch_8_device> m_soundlatch;
-
- void mugsmash_reg2_w(offs_t offset, uint16_t data);
- void mugsmash_videoram1_w(offs_t offset, uint16_t data);
- void mugsmash_videoram2_w(offs_t offset, uint16_t data);
- void mugsmash_reg_w(offs_t offset, uint16_t data);
- TILE_GET_INFO_MEMBER(get_mugsmash_tile_info1);
- TILE_GET_INFO_MEMBER(get_mugsmash_tile_info2);
- virtual void machine_start() override;
- virtual void video_start() override;
- uint32_t screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
- void mugsmash_map(address_map &map);
- void mugsmash_sound_map(address_map &map);
-};
diff --git a/src/mame/edevices/mugsmash_v.cpp b/src/mame/edevices/mugsmash_v.cpp
deleted file mode 100644
index 266cd4b1d18..00000000000
--- a/src/mame/edevices/mugsmash_v.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-/* video/mugsmash.c - see drivers/mugsmash.c for more info */
-
-#include "emu.h"
-#include "mugsmash.h"
-
-void mugsmash_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
-{
- /* Each Sprite takes 16 bytes, 5 used? */
-
- /* ---- ---- xxxx xxxx ---- ---- aaaa aaaa ---- ---- NNNN NNNN ---- ---- nnnn nnnn ---- ---- yyyy yyyy (rest unused?) */
-
- /* x = xpos LSB
- y = ypos LSB
- N = tile number MSB
- n = tile number LSB
- a = attribute / extra
- f?XY cccc
-
- f = x-flip
- ? = unknown, probably y-flip
- X = xpos MSB
- y = ypos MSB
- c = colour
-
- */
-
- const uint16_t *source = m_spriteram;
- const uint16_t *finish = source + 0x2000;
- gfx_element *gfx = m_gfxdecode->gfx(0);
-
- while (source < finish)
- {
- int xpos = source[0] & 0x00ff;
- int ypos = source[4] & 0x00ff;
- int num = (source[3] & 0x00ff) | ((source[2] & 0x00ff) << 8);
- int attr = source[1];
- int flipx = (attr & 0x0080) >> 7;
- int colour = (attr & 0x000f);
-
- xpos += ((attr & 0x0020) >> 5) * 0x100;
- ypos += ((attr & 0x0010) >> 4) * 0x100;
-
- xpos -= 28;
- ypos -= 16;
-
-
- gfx->transpen(
- bitmap,
- cliprect,
- num,
- colour,
- flipx,0,
- xpos,ypos,0
- );
-
- source += 0x8;
- }
-}
-
-TILE_GET_INFO_MEMBER(mugsmash_state::get_mugsmash_tile_info1)
-{
- /* fF-- cccc nnnn nnnn */
-
- /* c = colour?
- n = number?
- F = flip-X
- f = flip-Y
- */
-
- int tileno, colour, fx;
-
- tileno = m_videoram1[tile_index * 2 + 1];
- colour = m_videoram1[tile_index * 2] & 0x000f;
- fx = (m_videoram1[tile_index * 2] & 0xc0) >> 6;
-
- tileinfo.set(1, tileno, colour, TILE_FLIPYX(fx));
-}
-
-void mugsmash_state::mugsmash_videoram1_w(offs_t offset, uint16_t data)
-{
- m_videoram1[offset] = data;
- m_tilemap1->mark_tile_dirty(offset / 2);
-}
-
-TILE_GET_INFO_MEMBER(mugsmash_state::get_mugsmash_tile_info2)
-{
- /* fF-- cccc nnnn nnnn */
-
- /* c = colour?
- n = number?
- F = flip-X
- f = flip-Y
- */
-
- int tileno, colour, fx;
-
- tileno = m_videoram2[tile_index * 2 + 1];
- colour = m_videoram2[tile_index * 2] & 0x000f;
- fx = (m_videoram2[tile_index * 2] & 0xc0) >> 6;
-
- tileinfo.set(1, tileno, 16 + colour, TILE_FLIPYX(fx));
-}
-
-void mugsmash_state::mugsmash_videoram2_w(offs_t offset, uint16_t data)
-{
- m_videoram2[offset] = data;
- m_tilemap2->mark_tile_dirty(offset / 2);
-}
-
-void mugsmash_state::mugsmash_reg_w(offs_t offset, uint16_t data)
-{
- m_regs1[offset] = data;
-// popmessage ("Regs %04x, %04x, %04x, %04x", mugsmash_regs1[0], mugsmash_regs1[1],mugsmash_regs1[2], mugsmash_regs1[3]);
-
- switch (offset)
- {
- case 0:
- m_tilemap2->set_scrollx(0, m_regs1[2] + 7);
- break;
- case 1:
- m_tilemap2->set_scrolly(0, m_regs1[3] + 4);
- break;
- case 2:
- m_tilemap1->set_scrollx(0, m_regs1[0] + 3);
- break;
- case 3:
- m_tilemap1->set_scrolly(0, m_regs1[1] + 4);
- break;
- }
-}
-
-void mugsmash_state::video_start()
-{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mugsmash_state::get_mugsmash_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap1->set_transparent_pen(0);
-
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mugsmash_state::get_mugsmash_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
-}
-
-uint32_t mugsmash_state::screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- m_tilemap2->draw(screen, bitmap, cliprect, 0, 0);
- m_tilemap1->draw(screen, bitmap, cliprect, 0, 0);
- draw_sprites(bitmap, cliprect);
- return 0;
-}
diff --git a/src/mame/edevices/stlforce.cpp b/src/mame/edevices/stlforce.cpp
index 008bc2d5bbc..5859aa7cd6c 100644
--- a/src/mame/edevices/stlforce.cpp
+++ b/src/mame/edevices/stlforce.cpp
@@ -49,8 +49,7 @@ lev 7 : 0x7c : 0000 0100 - just rte
2002.02.03 : There doesn't seem to be Dip Switches
(you make the changes in the "test mode")
Bits 8 to 15 of IN1 seem to be unused
- The 2nd part of the "test mode" ("sound and video") is in Spanish/Italian
- (I can't tell for the moment)
+ The 2nd part of the "test mode" ("sound and video") is in Spanish
Release date and manufacturers according to the title screen
2004.xx.10 - Pierpaolo Prazzoli
@@ -70,8 +69,75 @@ TO DO :
*/
#include "emu.h"
-#include "stlforce.h"
+#include "edevices.h"
+
+#include "cpu/m68000/m68000.h"
+#include "machine/eepromser.h"
+#include "sound/okim6295.h"
+
+#include "emupal.h"
+#include "screen.h"
+#include "speaker.h"
+
+
+namespace {
+
+class stlforce_state : public driver_device
+{
+public:
+ stlforce_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_eeprom(*this, "eeprom"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette")
+ { }
+
+ void stlforce(machine_config &config);
+
+ void program_map(address_map &map);
+
+ required_device<cpu_device> m_maincpu;
+
+private:
+ required_device<eeprom_serial_93cxx_device> m_eeprom;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+
+ void eeprom_w(uint8_t data);
+};
+
+class twinbrat_state : public stlforce_state
+{
+public:
+ twinbrat_state(const machine_config &mconfig, device_type type, const char *tag) :
+ stlforce_state(mconfig, type, tag),
+ m_okibank(*this, "okibank")
+ { }
+
+ void twinbrat(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+
+private:
+ required_memory_bank m_okibank;
+
+ void oki_bank_w(uint8_t data);
+
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ void program_map(address_map &map);
+ void oki_map(address_map &map);
+};
+
+
+void twinbrat_state::machine_start()
+{
+ m_okibank->configure_entries(0, 4, memregion("oki")->base(), 0x20000);
+ m_okibank->set_entry(0);
+}
void stlforce_state::eeprom_w(uint8_t data)
{
@@ -80,43 +146,46 @@ void stlforce_state::eeprom_w(uint8_t data)
m_eeprom->clk_write((data & 0x04) ? ASSERT_LINE : CLEAR_LINE );
}
-void stlforce_state::oki_bank_w(uint8_t data)
+void twinbrat_state::oki_bank_w(uint8_t data)
{
- if (m_okibank.found())
- {
- m_okibank->set_entry(data & 3);
- }
+ m_okibank->set_entry(data & 3);
}
-void stlforce_state::stlforce_map(address_map &map)
+void stlforce_state::program_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
- map(0x100000, 0x1007ff).ram().w(m_video, FUNC(edevices_device::bg_videoram_w)).share("bg_videoram");
- map(0x100800, 0x100fff).ram().w(m_video, FUNC(edevices_device::mlow_videoram_w)).share("mlow_videoram");
- map(0x101000, 0x1017ff).ram().w(m_video, FUNC(edevices_device::mhigh_videoram_w)).share("mhigh_videoram");
- map(0x101800, 0x1027ff).ram().w(m_video, FUNC(edevices_device::tx_videoram_w)).share("tx_videoram");
- map(0x102800, 0x102fff).ram(); /* unknown / ram */
+ map(0x100000, 0x1007ff).ram().w("video", FUNC(edevices_device::bg_videoram_w)).share("bg_videoram");
+ map(0x100800, 0x100fff).ram().w("video", FUNC(edevices_device::mlow_videoram_w)).share("mlow_videoram");
+ map(0x101000, 0x1017ff).ram().w("video", FUNC(edevices_device::mhigh_videoram_w)).share("mhigh_videoram");
+ map(0x101800, 0x1027ff).ram().w("video", FUNC(edevices_device::tx_videoram_w)).share("tx_videoram");
+ map(0x102800, 0x102fff).ram(); // unknown / RAM
map(0x103000, 0x1033ff).ram().share("bg_scrollram");
map(0x103400, 0x1037ff).ram().share("mlow_scrollram");
map(0x103800, 0x103bff).ram().share("mhigh_scrollram");
map(0x103c00, 0x103fff).ram().share("vidattrram");
map(0x104000, 0x104fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x105000, 0x107fff).ram(); /* unknown / ram */
+ map(0x105000, 0x107fff).ram(); // unknown / RAM
map(0x108000, 0x1087ff).ram().share("spriteram");
map(0x108800, 0x108fff).ram();
map(0x109000, 0x11ffff).ram();
map(0x400000, 0x400001).portr("INPUT");
map(0x400002, 0x400003).portr("SYSTEM");
map(0x400011, 0x400011).w(FUNC(stlforce_state::eeprom_w));
- map(0x400012, 0x400012).w(FUNC(stlforce_state::oki_bank_w));
- map(0x40001e, 0x40001f).w(m_video, FUNC(edevices_device::sprites_commands_w));
+ map(0x40001e, 0x40001f).w("video", FUNC(edevices_device::sprites_commands_w));
map(0x410001, 0x410001).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
}
-void stlforce_state::twinbrat_oki_map(address_map &map)
+void twinbrat_state::program_map(address_map &map)
+{
+ stlforce_state::program_map(map);
+
+ map(0x400012, 0x400012).w(FUNC(twinbrat_state::oki_bank_w));
+}
+
+void twinbrat_state::oki_map(address_map &map)
{
map(0x00000, 0x1ffff).rom();
- map(0x20000, 0x3ffff).bankr("okibank");
+ map(0x20000, 0x3ffff).bankr(m_okibank);
}
static INPUT_PORTS_START( stlforce )
@@ -145,7 +214,7 @@ static INPUT_PORTS_START( stlforce )
PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) /* eeprom */
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
@@ -184,93 +253,89 @@ static const gfx_layout stlforce_splayout =
};
static GFXDECODE_START( gfx_stlforce )
- GFXDECODE_ENTRY( "gfx2", 0, stlforce_splayout, 1024, 16 )
- GFXDECODE_ENTRY( "gfx1", 0x180000, stlforce_txlayout, 384, 8 )
- GFXDECODE_ENTRY( "gfx1", 0x100000, stlforce_bglayout, 256, 8 )
- GFXDECODE_ENTRY( "gfx1", 0x080000, stlforce_bglayout, 128, 8 )
- GFXDECODE_ENTRY( "gfx1", 0x000000, stlforce_bglayout, 0, 8 )
+ GFXDECODE_ENTRY( "sprites", 0, stlforce_splayout, 1024, 16 )
+ GFXDECODE_ENTRY( "tiles", 0x180000, stlforce_txlayout, 384, 8 )
+ GFXDECODE_ENTRY( "tiles", 0x100000, stlforce_bglayout, 256, 8 )
+ GFXDECODE_ENTRY( "tiles", 0x080000, stlforce_bglayout, 128, 8 )
+ GFXDECODE_ENTRY( "tiles", 0x000000, stlforce_bglayout, 0, 8 )
GFXDECODE_END
-uint32_t stlforce_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- return m_video->draw(screen, bitmap, cliprect);
-}
void stlforce_state::stlforce(machine_config &config)
{
- /* basic machine hardware */
- M68000(config, m_maincpu, 15000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &stlforce_state::stlforce_map);
+ // basic machine hardware
+ M68000(config, m_maincpu, XTAL(15'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &stlforce_state::program_map);
m_maincpu->set_vblank_int("screen", FUNC(stlforce_state::irq4_line_hold));
EEPROM_93C46_16BIT(config, "eeprom");
- /* video hardware */
+ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(58);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
screen.set_size(64*8, 32*8);
screen.set_visarea(8, 48*8-1-8-2, 0, 30*8-1);
- screen.set_screen_update(FUNC(stlforce_state::screen_update));
+ screen.set_screen_update("video", FUNC(edevices_sforce_device::draw));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_stlforce);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x800);
- EDEVICES_SFORCE_VID(config, m_video, 0);
- m_video->set_bg_videoram_tag("bg_videoram");
- m_video->set_mlow_videoram_tag("mlow_videoram");
- m_video->set_mhigh_videoram_tag("mhigh_videoram");
- m_video->set_tx_videoram_tag("tx_videoram");
- m_video->set_bg_scrollram_tag("bg_scrollram");
- m_video->set_mlow_scrollram_tag("mlow_scrollram");
- m_video->set_mhigh_scrollram_tag("mhigh_scrollram");
- m_video->set_vidattrram_tag("vidattrram");
- m_video->set_spriteram_tag("spriteram");
- m_video->set_gfxdecode_tag("gfxdecode");
- m_video->set_palette_tag("palette");
-
- /* sound hardware */
+ edevices_sforce_device &video(EDEVICES_SFORCE_VID(config, "video", 0));
+ video.set_bg_videoram_tag("bg_videoram");
+ video.set_mlow_videoram_tag("mlow_videoram");
+ video.set_mhigh_videoram_tag("mhigh_videoram");
+ video.set_tx_videoram_tag("tx_videoram");
+ video.set_bg_scrollram_tag("bg_scrollram");
+ video.set_mlow_scrollram_tag("mlow_scrollram");
+ video.set_mhigh_scrollram_tag("mhigh_scrollram");
+ video.set_vidattrram_tag("vidattrram");
+ video.set_spriteram_tag("spriteram");
+ video.set_gfxdecode_tag("gfxdecode");
+ video.set_palette_tag("palette");
+
+ // sound hardware
SPEAKER(config, "mono").front_center();
- OKIM6295(config, "oki", XTAL(32'000'000)/32, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
+ OKIM6295(config, "oki", XTAL(32'000'000) / 32, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
}
-void stlforce_state::twinbrat(machine_config &config)
+void twinbrat_state::twinbrat(machine_config &config)
{
stlforce(config);
- /* basic machine hardware */
+ // basic machine hardware
+ m_maincpu->set_addrmap(AS_PROGRAM, &twinbrat_state::program_map);
m_maincpu->set_clock(XTAL(14'745'600));
subdevice<screen_device>("screen")->set_visarea(3*8, 44*8-1, 0*8, 30*8-1);
- /* modify m_video */
- m_video->set_spritexoffset(10);
+ subdevice<edevices_sforce_device>("video")->set_spritexoffset(10);
subdevice<okim6295_device>("oki")->set_clock(XTAL(30'000'000) / 32); // verified on 2 PCBs
- subdevice<okim6295_device>("oki")->set_addrmap(0, &stlforce_state::twinbrat_oki_map);
+ subdevice<okim6295_device>("oki")->set_addrmap(0, &twinbrat_state::oki_map);
}
ROM_START( stlforce )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "stlforce.105", 0x00000, 0x20000, CRC(3ec804ca) SHA1(4efcf3321b7111644ac3ee0a83ad95d0571a4021) )
ROM_LOAD16_BYTE( "stlforce.104", 0x00001, 0x20000, CRC(69b5f429) SHA1(5bd20fad91a22f4d62f85a5190d72dd824ee26a5) )
- ROM_REGION( 0x200000, "gfx1", 0 ) /* 16x16 bg tiles & 8x8 tx tiles merged */
+ ROM_REGION( 0x200000, "tiles", 0 ) // 16x16 bg tiles & 8x8 tx tiles merged
ROM_LOAD16_BYTE( "stlforce.u27", 0x000001, 0x080000, CRC(c42ef365) SHA1(40e9ee29ea14b3bc2fbfa4e6acb7d680cf72f01a) )
ROM_LOAD16_BYTE( "stlforce.u28", 0x000000, 0x080000, CRC(6a4b7c98) SHA1(004d7f3c703c6abc79286fa58a4c6793d66fca39) )
ROM_LOAD16_BYTE( "stlforce.u29", 0x100001, 0x080000, CRC(30488f44) SHA1(af0d92d8952ce3cd893ab9569afdda12e17795e7) )
ROM_LOAD16_BYTE( "stlforce.u30", 0x100000, 0x080000, CRC(cf19d43a) SHA1(dc04930548ac5b7e2b74c6041325eac06e773ed5) )
- ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16 sprites */
+ ROM_REGION( 0x100000, "sprites", 0 ) // 16x16
ROM_LOAD( "stlforce.u36", 0x00000, 0x40000, CRC(037dfa9f) SHA1(224f5cd1a95d55b065aef5c0bd03b50cabcb619b) )
ROM_LOAD( "stlforce.u31", 0x40000, 0x40000, CRC(305a8eb5) SHA1(3a8d26f8bc4ec2e8246d1c59115e21cad876630d) )
ROM_LOAD( "stlforce.u32", 0x80000, 0x40000, CRC(760e8601) SHA1(a61f1d8566e09ce811382c6e23f3881e6c438f15) )
ROM_LOAD( "stlforce.u33", 0xc0000, 0x40000, CRC(19415cf3) SHA1(31490a1f3321558f82667b63f3963b2ec3fa0c59) )
- /* only one bank */
- ROM_REGION( 0x80000, "oki", 0 ) /* samples, second half 0xff filled */
+ // only one bank
+ ROM_REGION( 0x80000, "oki", 0 ) // samples, second half 0xff filled
ROM_LOAD( "stlforce.u1", 0x00000, 0x80000, CRC(0a55edf1) SHA1(091f12e8110c62df22b370a2e710c930ba06e8ca) )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
@@ -318,23 +383,23 @@ Notes:
ROM_START( twinbrat )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "12.u105", 0x00000, 0x20000, CRC(552529b1) SHA1(bf23680335e1c5b05b80ab139609bee9f239b910) ) /* higher numbers are newer?? */
- ROM_LOAD16_BYTE( "13.u104", 0x00001, 0x20000, CRC(9805ba90) SHA1(cdc188fa38220d18c60c9f438520ee574e6ce0f7) ) /* higher numbers are newer?? */
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "12.u105", 0x00000, 0x20000, CRC(552529b1) SHA1(bf23680335e1c5b05b80ab139609bee9f239b910) ) // higher numbers are newer??
+ ROM_LOAD16_BYTE( "13.u104", 0x00001, 0x20000, CRC(9805ba90) SHA1(cdc188fa38220d18c60c9f438520ee574e6ce0f7) ) // higher numbers are newer??
- ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_REGION( 0x200000, "tiles", 0 )
ROM_LOAD16_BYTE( "6.bin", 0x000000, 0x80000, CRC(af10ddfd) SHA1(e5e83044f20d6cbbc1b4ef1812ac57b6dc958a8a) )
ROM_LOAD16_BYTE( "7.bin", 0x000001, 0x80000, CRC(3696345a) SHA1(ea38be3586757527b2a1aad2e22b83937f8602da) )
ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(1ae8a751) SHA1(5f30306580c6ab4af0ddbdc4519eb4e0ab9bd23a) )
ROM_LOAD16_BYTE( "5.bin", 0x100001, 0x80000, CRC(cf235eeb) SHA1(d067e2dd4f28a8986dd76ec0eba90e1adbf5787c) )
- ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_REGION( 0x100000, "sprites", 0 )
ROM_LOAD( "11.bin", 0x000000, 0x40000, CRC(00eecb03) SHA1(5913da4d2ad97c1ce5e8e601a22b499cd93af744) )
ROM_LOAD( "10.bin", 0x040000, 0x40000, CRC(7556bee9) SHA1(3fe99c7e9378791b79c43b04f5d0a36404448beb) )
ROM_LOAD( "9.bin", 0x080000, 0x40000, CRC(13194d89) SHA1(95c35b6012f98a64630abb40fd55b24ff8a5e031) )
ROM_LOAD( "8.bin", 0x0c0000, 0x40000, CRC(79f14528) SHA1(9c07d9a9e59f69a525bbaec05d74eb8d21bb9563) )
- ROM_REGION( 0x080000, "oki", 0 ) /* Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked */
+ ROM_REGION( 0x080000, "oki", 0 ) // Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked
ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(76296578) SHA1(04eca78abe60b283269464c0d12815579126ac08) )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
@@ -342,23 +407,23 @@ ROM_START( twinbrat )
ROM_END
ROM_START( twinbrata )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "2.u105", 0x00000, 0x20000, CRC(33a9bb82) SHA1(0f54239397c93e264b9b211f67bf626acf1246a9) )
ROM_LOAD16_BYTE( "3.u104", 0x00001, 0x20000, CRC(b1186a67) SHA1(502074063101885874db76ae707db1082313efcf) )
- ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_REGION( 0x200000, "tiles", 0 )
ROM_LOAD16_BYTE( "6.bin", 0x000000, 0x80000, CRC(af10ddfd) SHA1(e5e83044f20d6cbbc1b4ef1812ac57b6dc958a8a) )
ROM_LOAD16_BYTE( "7.bin", 0x000001, 0x80000, CRC(3696345a) SHA1(ea38be3586757527b2a1aad2e22b83937f8602da) )
ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(1ae8a751) SHA1(5f30306580c6ab4af0ddbdc4519eb4e0ab9bd23a) )
ROM_LOAD16_BYTE( "5.bin", 0x100001, 0x80000, CRC(cf235eeb) SHA1(d067e2dd4f28a8986dd76ec0eba90e1adbf5787c) )
- ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_REGION( 0x100000, "sprites", 0 )
ROM_LOAD( "11.bin", 0x000000, 0x40000, CRC(00eecb03) SHA1(5913da4d2ad97c1ce5e8e601a22b499cd93af744) )
ROM_LOAD( "10.bin", 0x040000, 0x40000, CRC(7556bee9) SHA1(3fe99c7e9378791b79c43b04f5d0a36404448beb) )
ROM_LOAD( "9.bin", 0x080000, 0x40000, CRC(13194d89) SHA1(95c35b6012f98a64630abb40fd55b24ff8a5e031) )
ROM_LOAD( "8.bin", 0x0c0000, 0x40000, CRC(79f14528) SHA1(9c07d9a9e59f69a525bbaec05d74eb8d21bb9563) )
- ROM_REGION( 0x080000, "oki", 0 ) /* Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked */
+ ROM_REGION( 0x080000, "oki", 0 ) // Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked
ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(76296578) SHA1(04eca78abe60b283269464c0d12815579126ac08) )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
@@ -366,38 +431,34 @@ ROM_START( twinbrata )
ROM_END
ROM_START( twinbratb )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "2.bin", 0x00000, 0x20000, CRC(5e75f568) SHA1(f42d2a73d737e6b01dd049eea2a10fc8c8096d8f) )
ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x20000, CRC(0e3fa9b0) SHA1(0148cc616eac84dc16415e1557ec6040d14392d4) )
- ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_REGION( 0x200000, "tiles", 0 )
ROM_LOAD16_BYTE( "6.bin", 0x000000, 0x80000, CRC(af10ddfd) SHA1(e5e83044f20d6cbbc1b4ef1812ac57b6dc958a8a) )
ROM_LOAD16_BYTE( "7.bin", 0x000001, 0x80000, CRC(3696345a) SHA1(ea38be3586757527b2a1aad2e22b83937f8602da) )
ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(1ae8a751) SHA1(5f30306580c6ab4af0ddbdc4519eb4e0ab9bd23a) )
ROM_LOAD16_BYTE( "5.bin", 0x100001, 0x80000, CRC(cf235eeb) SHA1(d067e2dd4f28a8986dd76ec0eba90e1adbf5787c) )
- ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_REGION( 0x100000, "sprites", 0 )
ROM_LOAD( "11.bin", 0x000000, 0x40000, CRC(00eecb03) SHA1(5913da4d2ad97c1ce5e8e601a22b499cd93af744) )
ROM_LOAD( "10.bin", 0x040000, 0x40000, CRC(7556bee9) SHA1(3fe99c7e9378791b79c43b04f5d0a36404448beb) )
ROM_LOAD( "9.bin", 0x080000, 0x40000, CRC(13194d89) SHA1(95c35b6012f98a64630abb40fd55b24ff8a5e031) )
ROM_LOAD( "8.bin", 0x0c0000, 0x40000, CRC(79f14528) SHA1(9c07d9a9e59f69a525bbaec05d74eb8d21bb9563) )
- ROM_REGION( 0x080000, "oki", 0 ) /* Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked */
+ ROM_REGION( 0x080000, "oki", 0 ) // Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked
ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(76296578) SHA1(04eca78abe60b283269464c0d12815579126ac08) )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
ROM_LOAD( "eeprom-twinbrat.bin", 0x0000, 0x0080, CRC(9366263d) SHA1(ff5155498ed0b349ecc1ce98a39566b642201cf2) )
ROM_END
-void stlforce_state::init_twinbrat()
-{
- m_okibank->configure_entries(0, 4, memregion("oki")->base(), 0x20000);
- m_okibank->set_entry(0);
-}
+} // anonymous namespace
-GAME( 1994, stlforce, 0, stlforce, stlforce, stlforce_state, empty_init, ROT0, "Electronic Devices Italy / Ecogames S.L. Spain", "Steel Force", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, stlforce, 0, stlforce, stlforce, stlforce_state, empty_init, ROT0, "Electronic Devices Italy / Ecogames S.L. Spain", "Steel Force", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, twinbrat, 0, twinbrat, stlforce, stlforce_state, init_twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, twinbrata, twinbrat, twinbrat, stlforce, stlforce_state, init_twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, twinbratb, twinbrat, twinbrat, stlforce, stlforce_state, init_twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, twinbrat, 0, twinbrat, stlforce, twinbrat_state, empty_init, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, twinbrata, twinbrat, twinbrat, stlforce, twinbrat_state, empty_init, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, twinbratb, twinbrat, twinbrat, stlforce, twinbrat_state, empty_init, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 3)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/edevices/stlforce.h b/src/mame/edevices/stlforce.h
deleted file mode 100644
index df0abb95fff..00000000000
--- a/src/mame/edevices/stlforce.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-
-#include "edevices.h"
-#include "machine/eepromser.h"
-#include "emupal.h"
-#include "cpu/m68000/m68000.h"
-#include "sound/okim6295.h"
-#include "screen.h"
-#include "speaker.h"
-
-class stlforce_state : public driver_device
-{
-public:
- stlforce_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_eeprom(*this, "eeprom"),
- m_video(*this, "edevices_vid"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_okibank(*this, "okibank")
- { }
-
- void stlforce(machine_config &config);
- void twinbrat(machine_config &config);
-
- void init_twinbrat();
-
-private:
- required_device<cpu_device> m_maincpu;
- required_device<eeprom_serial_93cxx_device> m_eeprom;
- required_device<edevices_device> m_video;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
-
- optional_memory_bank m_okibank;
-
- void eeprom_w(uint8_t data);
- void oki_bank_w(uint8_t data);
-
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- void stlforce_map(address_map &map);
- void twinbrat_oki_map(address_map &map);
-};
diff --git a/src/mame/kiwako/mrjong.cpp b/src/mame/kiwako/mrjong.cpp
index dbb1c9a4206..4a6ae2be3a9 100644
--- a/src/mame/kiwako/mrjong.cpp
+++ b/src/mame/kiwako/mrjong.cpp
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:Takahiro Nogi
+// copyright-holders: Takahiro Nogi
/***************************************************************************
Mr. Jong
@@ -46,13 +46,189 @@ ROMs 6A, 7A, 8A, 9A: 2764
***************************************************************************/
#include "emu.h"
-#include "mrjong.h"
#include "cpu/z80/z80.h"
#include "sound/sn76496.h"
+
+#include "emupal.h"
#include "screen.h"
#include "speaker.h"
+#include "tilemap.h"
+
+
+namespace {
+
+class mrjong_state : public driver_device
+{
+public:
+ mrjong_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_videoram(*this, "videoram"),
+ m_colorram(*this, "colorram"),
+ m_maincpu(*this, "maincpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette")
+ { }
+
+ void mrjong(machine_config &config);
+
+protected:
+ virtual void video_start() override;
+
+private:
+ required_shared_ptr<uint8_t> m_videoram;
+ required_shared_ptr<uint8_t> m_colorram;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+
+ tilemap_t *m_bg_tilemap = nullptr;
+
+ uint8_t io_0x03_r();
+ void videoram_w(offs_t offset, uint8_t data);
+ void colorram_w(offs_t offset, uint8_t data);
+ void flipscreen_w(uint8_t data);
+ TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ void palette(palette_device &palette) const;
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ void io_map(address_map &map);
+ void program_map(address_map &map);
+};
+
+
+// video
+
+/***************************************************************************
+
+ Convert the color PROMs.
+
+***************************************************************************/
+
+void mrjong_state::palette(palette_device &palette) const
+{
+ uint8_t const *color_prom = memregion("color_proms")->base();
+
+ // create a lookup table for the palette
+ for (int i = 0; i < 0x10; i++)
+ {
+ int bit0, bit1, bit2;
+
+ // red component
+ bit0 = BIT(color_prom[i], 0);
+ bit1 = BIT(color_prom[i], 1);
+ bit2 = BIT(color_prom[i], 2);
+ int const r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
+
+ // green component
+ bit0 = BIT(color_prom[i], 3);
+ bit1 = BIT(color_prom[i], 4);
+ bit2 = BIT(color_prom[i], 5);
+ int const g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
+
+ // blue component
+ bit0 = 0;
+ bit1 = BIT(color_prom[i], 6);
+ bit2 = BIT(color_prom[i], 7);
+ int const b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
+
+ palette.set_indirect_color(i, rgb_t(r, g, b));
+ }
+
+ // color_prom now points to the beginning of the lookup table
+ color_prom += 0x20;
+
+ // characters/sprites
+ for (int i = 0; i < 0x80; i++)
+ {
+ uint8_t const ctabentry = color_prom[i] & 0x0f;
+ palette.set_pen_indirect(i, ctabentry);
+ }
+}
+
+
+/***************************************************************************
+
+ Display control parameter.
+
+***************************************************************************/
+void mrjong_state::videoram_w(offs_t offset, uint8_t data)
+{
+ m_videoram[offset] = data;
+ m_bg_tilemap->mark_tile_dirty(offset);
+}
+
+void mrjong_state::colorram_w(offs_t offset, uint8_t data)
+{
+ m_colorram[offset] = data;
+ m_bg_tilemap->mark_tile_dirty(offset);
+}
+
+void mrjong_state::flipscreen_w(uint8_t data)
+{
+ if (flip_screen() != BIT(data, 2))
+ {
+ flip_screen_set(BIT(data, 2));
+ machine().tilemap().mark_all_dirty();
+ }
+}
+
+TILE_GET_INFO_MEMBER(mrjong_state::get_bg_tile_info)
+{
+ int const code = m_videoram[tile_index] | ((m_colorram[tile_index] & 0x20) << 3);
+ int const color = m_colorram[tile_index] & 0x1f;
+ int const flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0);
+
+ tileinfo.set(0, code, color, flags);
+}
+
+void mrjong_state::video_start()
+{
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mrjong_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
+}
+
+/*
+Note: First 0x40 entries in the videoram are actually spriteram
+*/
+void mrjong_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ for (int offs = (0x40 - 4); offs >= 0; offs -= 4)
+ {
+ int const sprt = (((m_videoram[offs + 1] >> 2) & 0x3f) | ((m_videoram[offs + 3] & 0x20) << 1));
+ int flipx = (m_videoram[offs + 1] & 0x01) >> 0;
+ int flipy = (m_videoram[offs + 1] & 0x02) >> 1;
+ int const color = (m_videoram[offs + 3] & 0x1f);
+
+ int sx = 224 - m_videoram[offs + 2];
+ int sy = m_videoram[offs + 0];
+ if (flip_screen())
+ {
+ sx = 208 - sx;
+ sy = 240 - sy;
+ flipx = !flipx;
+ flipy = !flipy;
+ }
+
+ m_gfxdecode->gfx(1)->transpen(bitmap, cliprect,
+ sprt,
+ color,
+ flipx, flipy,
+ sx, sy, 0);
+ }
+}
+
+uint32_t mrjong_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
+ draw_sprites(bitmap, cliprect);
+ return 0;
+}
+
+
+// machine
/*************************************
*
@@ -72,19 +248,19 @@ uint8_t mrjong_state::io_0x03_r()
*
*************************************/
-void mrjong_state::mrjong_map(address_map &map)
+void mrjong_state::program_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0x87ff).ram();
map(0xa000, 0xa7ff).ram();
- map(0xe000, 0xe3ff).ram().w(FUNC(mrjong_state::mrjong_videoram_w)).share("videoram");
- map(0xe400, 0xe7ff).ram().w(FUNC(mrjong_state::mrjong_colorram_w)).share("colorram");
+ map(0xe000, 0xe3ff).ram().w(FUNC(mrjong_state::videoram_w)).share(m_videoram);
+ map(0xe400, 0xe7ff).ram().w(FUNC(mrjong_state::colorram_w)).share(m_colorram);
}
-void mrjong_state::mrjong_io_map(address_map &map)
+void mrjong_state::io_map(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x00).portr("P2").w(FUNC(mrjong_state::mrjong_flipscreen_w));
+ map(0x00, 0x00).portr("P2").w(FUNC(mrjong_state::flipscreen_w));
map(0x01, 0x01).portr("P1").w("sn1", FUNC(sn76489_device::write));
map(0x02, 0x02).portr("DSW").w("sn2", FUNC(sn76489_device::write));
map(0x03, 0x03).r(FUNC(mrjong_state::io_0x03_r)); // Unknown
@@ -151,31 +327,31 @@ INPUT_PORTS_END
static const gfx_layout tilelayout =
{
- 8, 8, /* 8*8 characters */
- 512, /* 512 characters */
- 2, /* 2 bits per pixel */
- { 0, 512*8*8 }, /* the two bitplanes are separated */
- { 0, 1, 2, 3, 4, 5, 6, 7 }, /* pretty straightforward layout */
+ 8, 8, // 8*8 characters
+ 512, // 512 characters
+ 2, // 2 bits per pixel
+ { 0, 512*8*8 }, // the two bitplanes are separated
+ { 0, 1, 2, 3, 4, 5, 6, 7 }, // pretty straightforward layout
{ 7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 },
- 8*8 /* every char takes 8 consecutive bytes */
+ 8*8 // every char takes 8 consecutive bytes
};
static const gfx_layout spritelayout =
{
- 16, 16, /* 16*16 sprites */
- 128, /* 128 sprites */
- 2, /* 2 bits per pixel */
- { 0, 128*16*16 }, /* the bitplanes are separated */
- { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7, /* pretty straightforward layout */
+ 16, 16, // 16*16 sprites
+ 128, // 128 sprites
+ 2, // 2 bits per pixel
+ { 0, 128*16*16 }, // the bitplanes are separated
+ { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7, // pretty straightforward layout
0, 1, 2, 3, 4, 5, 6, 7 },
{ 23*8, 22*8, 21*8, 20*8, 19*8, 18*8, 17*8, 16*8,
7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 },
- 32*8 /* every sprite takes 32 consecutive bytes */
+ 32*8 // every sprite takes 32 consecutive bytes
};
static GFXDECODE_START( gfx_mrjong )
- GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 32 )
- GFXDECODE_ENTRY( "gfx1", 0x0000, spritelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx", 0x0000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx", 0x0000, spritelayout, 0, 32 )
GFXDECODE_END
@@ -187,28 +363,28 @@ GFXDECODE_END
void mrjong_state::mrjong(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu,15468000/6); /* 2.578 MHz?? */
- m_maincpu->set_addrmap(AS_PROGRAM, &mrjong_state::mrjong_map);
- m_maincpu->set_addrmap(AS_IO, &mrjong_state::mrjong_io_map);
+ // basic machine hardware
+ Z80(config, m_maincpu, 15'468'000 / 6); // 2.578 MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &mrjong_state::program_map);
+ m_maincpu->set_addrmap(AS_IO, &mrjong_state::io_map);
- /* video hardware */
+ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(32*8, 32*8);
screen.set_visarea(0*8, 30*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(mrjong_state::screen_update_mrjong));
+ screen.set_screen_update(FUNC(mrjong_state::screen_update));
screen.set_palette(m_palette);
screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_mrjong);
- PALETTE(config, m_palette, FUNC(mrjong_state::mrjong_palette), 4 * 32, 16);
+ PALETTE(config, m_palette, FUNC(mrjong_state::palette), 4 * 32, 16);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
- SN76489(config, "sn1", 15468000 / 6).add_route(ALL_OUTPUTS, "mono", 1.0);
- SN76489(config, "sn2", 15468000 / 6).add_route(ALL_OUTPUTS, "mono", 1.0);
+ SN76489(config, "sn1", 15'468'000 / 6).add_route(ALL_OUTPUTS, "mono", 1.0);
+ SN76489(config, "sn2", 15'468'000 / 6).add_route(ALL_OUTPUTS, "mono", 1.0);
}
@@ -219,53 +395,56 @@ void mrjong_state::mrjong(machine_config &config)
*************************************/
ROM_START( mrjong )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* code */
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "mj00", 0x0000, 0x2000, CRC(d211aed3) SHA1(01f252ca1d2399146fa3ed44cb2daa1d5925cae5) )
ROM_LOAD( "mj01", 0x2000, 0x2000, CRC(49a9ca7e) SHA1(fc5279ba782da2c8288042bd17282366fcd788cc) )
ROM_LOAD( "mj02", 0x4000, 0x2000, CRC(4b50ae6a) SHA1(6fa6bae926c5e4cc154f5f1a6dc7bb7ef5bb484a) )
ROM_LOAD( "mj03", 0x6000, 0x2000, CRC(2c375a17) SHA1(9719485cdca535771b498a37d57734463858f2cd) )
- ROM_REGION( 0x2000, "gfx1", 0 ) /* gfx */
+ ROM_REGION( 0x2000, "gfx", 0 )
ROM_LOAD( "mj21", 0x0000, 0x1000, CRC(1ea99dab) SHA1(21a296d394e5cac0c7cb2ea8efaeeeee976ac4b5) )
ROM_LOAD( "mj20", 0x1000, 0x1000, CRC(7eb1d381) SHA1(fa13700f132c03d2d2cee65abf24024db656aff7) )
- ROM_REGION( 0x0120, "proms", 0 ) /* color */
+ ROM_REGION( 0x0120, "color_proms", 0 )
ROM_LOAD( "mj61", 0x0000, 0x0020, CRC(a85e9b27) SHA1(55df208b771a98fcf6c2c19ffdf973891ebcabd1) )
ROM_LOAD( "mj60", 0x0020, 0x0100, CRC(dd2b304f) SHA1(d7320521e83ddf269a9fc0c91f0e0e61428b187c) )
ROM_END
ROM_START( crazyblk )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* code */
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "c1.a6", 0x0000, 0x2000, CRC(e2a211a2) SHA1(5bcf5a0cb25ce5adfb6519c8a3a4ee6e55e1e7de) )
ROM_LOAD( "c2.a7", 0x2000, 0x2000, CRC(75070978) SHA1(7f59460c094e596a521014f956d76e5c714022a2) )
ROM_LOAD( "c3.a7", 0x4000, 0x2000, CRC(696ca502) SHA1(8ce7e31e9a7161633fee7f28b215e4358d906c4b) )
ROM_LOAD( "c4.a8", 0x6000, 0x2000, CRC(c7f5a247) SHA1(de79341f9c6c7032f76cead46d614e13d4af50f9) )
- ROM_REGION( 0x2000, "gfx1", 0 ) /* gfx */
+ ROM_REGION( 0x2000, "gfx", 0 )
ROM_LOAD( "c6.h5", 0x0000, 0x1000, CRC(2b2af794) SHA1(d13bc8e8ea6c9bc2066ed692108151523d1f936b) )
ROM_LOAD( "c5.h4", 0x1000, 0x1000, CRC(98d13915) SHA1(b51104f9f80128ff7a52ac2efa9519bf9d7b78bc) )
- ROM_REGION( 0x0120, "proms", 0 ) /* color */
+ ROM_REGION( 0x0120, "color_proms", 0 )
ROM_LOAD( "clr.j7", 0x0000, 0x0020, CRC(ee1cf1d5) SHA1(4f4cfde1a896da92d8265889584dd0c5678de033) )
ROM_LOAD( "clr.g5", 0x0020, 0x0100, CRC(bcb1e2e3) SHA1(c09731836a9d4e50316a84b86f61b599a1ef944d) )
ROM_END
ROM_START( blkbustr )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* code */
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "6a.bin", 0x0000, 0x2000, CRC(9e4b426c) SHA1(831360c473ab2452f4d0da12609c96c601e21c17) )
ROM_LOAD( "c2.a7", 0x2000, 0x2000, CRC(75070978) SHA1(7f59460c094e596a521014f956d76e5c714022a2) )
ROM_LOAD( "8a.bin", 0x4000, 0x2000, CRC(0e803777) SHA1(bccc182ccbd7312fc6545ffcef4d54637416dae7) )
ROM_LOAD( "c4.a8", 0x6000, 0x2000, CRC(c7f5a247) SHA1(de79341f9c6c7032f76cead46d614e13d4af50f9) )
- ROM_REGION( 0x2000, "gfx1", 0 ) /* gfx */
+ ROM_REGION( 0x2000, "gfx", 0 )
ROM_LOAD( "4h.bin", 0x0000, 0x1000, CRC(67dd6c19) SHA1(d3dc0cb9b108c2584c4844fc0eb4c9ee170986fe) )
ROM_LOAD( "5h.bin", 0x1000, 0x1000, CRC(50fba1d4) SHA1(40ba480713284ae484c6687490f91bf62a7167e1) )
- ROM_REGION( 0x0120, "proms", 0 ) /* color */
+ ROM_REGION( 0x0120, "color_proms", 0 )
ROM_LOAD( "clr.j7", 0x0000, 0x0020, CRC(ee1cf1d5) SHA1(4f4cfde1a896da92d8265889584dd0c5678de033) )
ROM_LOAD( "clr.g5", 0x0020, 0x0100, CRC(bcb1e2e3) SHA1(c09731836a9d4e50316a84b86f61b599a1ef944d) )
ROM_END
+} // anonymous namespace
+
+
/*************************************
*
* Game driver(s)
diff --git a/src/mame/kiwako/mrjong.h b/src/mame/kiwako/mrjong.h
deleted file mode 100644
index 6d8ffbb8c37..00000000000
--- a/src/mame/kiwako/mrjong.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Takahiro Nogi
-/*************************************************************************
-
- Mr. Jong
-
-*************************************************************************/
-#ifndef MAME_INCLUDES_MRJONG_H
-#define MAME_INCLUDES_MRJONG_H
-
-#pragma once
-
-#include "emupal.h"
-#include "tilemap.h"
-
-class mrjong_state : public driver_device
-{
-public:
- mrjong_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_videoram(*this, "videoram"),
- m_colorram(*this, "colorram"),
- m_maincpu(*this, "maincpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette")
- { }
-
- void mrjong(machine_config &config);
-
-private:
- uint8_t io_0x03_r();
- void mrjong_videoram_w(offs_t offset, uint8_t data);
- void mrjong_colorram_w(offs_t offset, uint8_t data);
- void mrjong_flipscreen_w(uint8_t data);
- TILE_GET_INFO_MEMBER(get_bg_tile_info);
- virtual void video_start() override;
- void mrjong_palette(palette_device &palette) const;
- uint32_t screen_update_mrjong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
-
- void mrjong_io_map(address_map &map);
- void mrjong_map(address_map &map);
-
- /* memory pointers */
- required_shared_ptr<uint8_t> m_videoram;
- required_shared_ptr<uint8_t> m_colorram;
-
- /* video-related */
- tilemap_t *m_bg_tilemap = nullptr;
-
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
-};
-
-#endif // MAME_INCLUDES_MRJONG_H
diff --git a/src/mame/kiwako/mrjong_v.cpp b/src/mame/kiwako/mrjong_v.cpp
deleted file mode 100644
index d4122b3c5b3..00000000000
--- a/src/mame/kiwako/mrjong_v.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Takahiro Nogi
-/***************************************************************************
-
- video.c
-
- Functions to emulate the video hardware of the machine.
-
-***************************************************************************/
-
-#include "emu.h"
-#include "mrjong.h"
-
-
-/***************************************************************************
-
- Convert the color PROMs. (from video/pengo.c)
-
-***************************************************************************/
-
-void mrjong_state::mrjong_palette(palette_device &palette) const
-{
- uint8_t const *color_prom = memregion("proms")->base();
-
- // create a lookup table for the palette
- for (int i = 0; i < 0x10; i++)
- {
- int bit0, bit1, bit2;
-
- // red component
- bit0 = BIT(color_prom[i], 0);
- bit1 = BIT(color_prom[i], 1);
- bit2 = BIT(color_prom[i], 2);
- int const r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- // green component
- bit0 = BIT(color_prom[i], 3);
- bit1 = BIT(color_prom[i], 4);
- bit2 = BIT(color_prom[i], 5);
- int const g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- // blue component
- bit0 = 0;
- bit1 = BIT(color_prom[i], 6);
- bit2 = BIT(color_prom[i], 7);
- int const b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- palette.set_indirect_color(i, rgb_t(r, g, b));
- }
-
- // color_prom now points to the beginning of the lookup table
- color_prom += 0x20;
-
- // characters/sprites
- for (int i = 0; i < 0x80; i++)
- {
- uint8_t const ctabentry = color_prom[i] & 0x0f;
- palette.set_pen_indirect(i, ctabentry);
- }
-}
-
-
-/***************************************************************************
-
- Display control parameter.
-
-***************************************************************************/
-
-void mrjong_state::mrjong_videoram_w(offs_t offset, uint8_t data)
-{
- m_videoram[offset] = data;
- m_bg_tilemap->mark_tile_dirty(offset);
-}
-
-void mrjong_state::mrjong_colorram_w(offs_t offset, uint8_t data)
-{
- m_colorram[offset] = data;
- m_bg_tilemap->mark_tile_dirty(offset);
-}
-
-void mrjong_state::mrjong_flipscreen_w(uint8_t data)
-{
- if (flip_screen() != BIT(data, 2))
- {
- flip_screen_set(BIT(data, 2));
- machine().tilemap().mark_all_dirty();
- }
-}
-
-TILE_GET_INFO_MEMBER(mrjong_state::get_bg_tile_info)
-{
- int code = m_videoram[tile_index] | ((m_colorram[tile_index] & 0x20) << 3);
- int color = m_colorram[tile_index] & 0x1f;
- int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0);
-
- tileinfo.set(0, code, color, flags);
-}
-
-void mrjong_state::video_start()
-{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mrjong_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
-}
-
-/*
-Note: First 0x40 entries in the videoram are actually spriteram
-*/
-void mrjong_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
-{
- int offs;
-
- for (offs = (0x40 - 4); offs >= 0; offs -= 4)
- {
- int sprt;
- int color;
- int sx, sy;
- int flipx, flipy;
-
- sprt = (((m_videoram[offs + 1] >> 2) & 0x3f) | ((m_videoram[offs + 3] & 0x20) << 1));
- flipx = (m_videoram[offs + 1] & 0x01) >> 0;
- flipy = (m_videoram[offs + 1] & 0x02) >> 1;
- color = (m_videoram[offs + 3] & 0x1f);
-
- sx = 224 - m_videoram[offs + 2];
- sy = m_videoram[offs + 0];
- if (flip_screen())
- {
- sx = 208 - sx;
- sy = 240 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
- sprt,
- color,
- flipx, flipy,
- sx, sy, 0);
- }
-}
-
-uint32_t mrjong_state::screen_update_mrjong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
- draw_sprites(bitmap, cliprect);
- return 0;
-}
diff --git a/src/mame/midway/balsente.cpp b/src/mame/midway/balsente.cpp
index e67e127f7a6..cd64200dc40 100644
--- a/src/mame/midway/balsente.cpp
+++ b/src/mame/midway/balsente.cpp
@@ -7,20 +7,19 @@
driver by Aaron Giles
Games supported:
- * Chicken Shift
- * Gimme a Break
- * Goalie Ghost
+ * Chicken Shift (11/23/84)
* Gimme A Break (7/7/85)
+ * Goalie Ghost
* Grudge Match (v00.90, Italy, location test?)
* Grudge Match (v00.80, prototype)
- * Hat Trick
+ * Hat Trick (11/12/84)
+ * Mini Golf (set 1)
* Mini Golf (11/25/85)
- * Mini Golf (10/8/85)
* Name That Tune (set 1)
* Name That Tune (3/23/86)
* Night Stocker (10/6/86)
* Night Stocker (8/27/86)
- * Off the Wall
+ * Off the Wall (10/16/84)
* Rescue Raider (5/11/87) (non-cartridge)
* Rescue Raider (stand-alone)
* Sente Diagnostic Cartridge
@@ -28,20 +27,20 @@
* Snacks'n Jaxson
* Snake Pit
* Snake Pit (9/14/84)
- * Spiker
- * Spiker (5/5/86)
* Spiker (6/9/86)
+ * Spiker (5/5/86)
+ * Spiker (earlist)
* Stocker (3/19/85)
* Stompin' (4/4/86)
* Street Football (11/12/86)
- * Team Hat Trick
+ * Team Hat Trick (11/16/84)
* Toggle (prototype)
- * Trivial Pursuit (Think Tank - Genus Edition) (set 1)
+ * Trivial Pursuit (Think Tank - Genus Edition) (2/12/85)
* Trivial Pursuit (Think Tank - Genus Edition) (12/14/84)
- * Trivial Pursuit (Genus II Edition)
- * Trivial Pursuit (All Star Sports Edition)
- * Trivial Pursuit (Young Players Edition)
* Trivial Pursuit (Baby Boomer Edition) (3/20/85)
+ * Trivial Pursuit (Genus II Edition) (3/22/85)
+ * Trivial Pursuit (Young Players Edition) (3/29/85)
+ * Trivial Pursuit (All Star Sports Edition)
* Trivial Pursuit (Volumen III, Spanish, Maibesa license)
* Trivial Pursuit (Volumen II, Spanish, Maibesa license)
* Trivial Pursuit (Volumen IV, Spanish, Maibesa hardware)
@@ -1499,23 +1498,38 @@ ROM_START( sentetst )
ROM_END
-ROM_START( cshift )
+/*
+
+Chicken Shift (11/23/84)
+
+Cartridge Type:
+ 006-8003-01-0B REV B
+Label:
++-----------------+
+| CHICKEN |
+| SHIFT |
+| EF |
+| 11/23/84 |
++-----------------+
+
+*/
+ROM_START( cshift ) /* Cart: 006-8003-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "cs-ab0.bin", 0x00000, 0x2000, CRC(d2069e75) SHA1(17d5719e6e1976cebb332932cf3e900a88136928) ) /* Labeled as CHICKEN SHIFT, then name (like AB0) & dated 11/23/84 */
- ROM_LOAD( "cs-ab1.bin", 0x02000, 0x2000, CRC(198f25a8) SHA1(5ca25fe57e94d8362896c903196e0080efd35ef5) )
- ROM_LOAD( "cs-ab2.bin", 0x04000, 0x2000, CRC(2e2b2b82) SHA1(a540f3ff2a0a10b19aafe1528b7dcaeae9b7393d) )
- ROM_LOAD( "cs-ab3.bin", 0x06000, 0x2000, CRC(b97fc520) SHA1(f45c5ec93eab1bfd1f9533df7ac624c2e99f6573) )
- ROM_LOAD( "cs-ab4.bin", 0x08000, 0x2000, CRC(b4f0d673) SHA1(cb97dc8836c497fa03a862227340f8c351986a39) )
- ROM_LOAD( "cs-ab5.bin", 0x0a000, 0x2000, CRC(b1f8e589) SHA1(d837beff063ed987571c5af6130f2c7d637d7c39) )
- ROM_LOAD( "cs-cd.bin", 0x1c000, 0x2000, CRC(f555a0b2) SHA1(49668f8363fdcec4686ec80bf2e99003cd11e2c1) )
- ROM_LOAD( "cs-ef.bin", 0x1e000, 0x2000, CRC(368b1ce3) SHA1(8003ef99adcb26feb42e1b0945b1185e438582b2) )
+ ROM_LOAD( "chicken_shift_ab_0_11-23-84.u9a", 0x00000, 0x2000, CRC(d2069e75) SHA1(17d5719e6e1976cebb332932cf3e900a88136928) )
+ ROM_LOAD( "chicken_shift_ab_1_11-23-84.u8a", 0x02000, 0x2000, CRC(198f25a8) SHA1(5ca25fe57e94d8362896c903196e0080efd35ef5) )
+ ROM_LOAD( "chicken_shift_ab_2_11-23-84.u7a", 0x04000, 0x2000, CRC(2e2b2b82) SHA1(a540f3ff2a0a10b19aafe1528b7dcaeae9b7393d) )
+ ROM_LOAD( "chicken_shift_ab_3_11-23-84.u6a", 0x06000, 0x2000, CRC(b97fc520) SHA1(f45c5ec93eab1bfd1f9533df7ac624c2e99f6573) )
+ ROM_LOAD( "chicken_shift_ab_4_11-23-84.u5a", 0x08000, 0x2000, CRC(b4f0d673) SHA1(cb97dc8836c497fa03a862227340f8c351986a39) )
+ ROM_LOAD( "chicken_shift_ab_5_11-23-84.u4a", 0x0a000, 0x2000, CRC(b1f8e589) SHA1(d837beff063ed987571c5af6130f2c7d637d7c39) )
+ ROM_LOAD( "chicken_shift_cd_11-23-84.u3a", 0x1c000, 0x2000, CRC(f555a0b2) SHA1(49668f8363fdcec4686ec80bf2e99003cd11e2c1) )
+ ROM_LOAD( "chicken_shift_ef_11-23-84.u2a", 0x1e000, 0x2000, CRC(368b1ce3) SHA1(8003ef99adcb26feb42e1b0945b1185e438582b2) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "cs-gr0.bin", 0x00000, 0x2000, CRC(67f9d3b3) SHA1(4f3f80e4272b20611206636b6ccb627087efd0c3) )
- ROM_LOAD( "cs-gr1.bin", 0x02000, 0x2000, CRC(78973d50) SHA1(de7891ef47c277d733d9b4810d68621718644655) )
- ROM_LOAD( "cs-gr2.bin", 0x04000, 0x2000, CRC(1784f939) SHA1(ff7f43451580e3b314c24b00a66765c0b395ddf6) )
- ROM_LOAD( "cs-gr3.bin", 0x06000, 0x2000, CRC(b43916a2) SHA1(8d42fb6ae7cf8b2d94eb0c14e00bb115f8ef01b4) )
- ROM_LOAD( "cs-gr4.bin", 0x08000, 0x2000, CRC(a94cd35b) SHA1(0ca0497a1b055ff1ae6b7bc36ae45749dff50caa) )
+ ROM_LOAD( "chicken_shift_gr-0_11-23-84.u9b", 0x00000, 0x2000, CRC(67f9d3b3) SHA1(4f3f80e4272b20611206636b6ccb627087efd0c3) )
+ ROM_LOAD( "chicken_shift_gr-1_11-23-84.u8b", 0x02000, 0x2000, CRC(78973d50) SHA1(de7891ef47c277d733d9b4810d68621718644655) )
+ ROM_LOAD( "chicken_shift_gr-2_11-23-84.u7b", 0x04000, 0x2000, CRC(1784f939) SHA1(ff7f43451580e3b314c24b00a66765c0b395ddf6) )
+ ROM_LOAD( "chicken_shift_gr-3_11-23-84.u6b", 0x06000, 0x2000, CRC(b43916a2) SHA1(8d42fb6ae7cf8b2d94eb0c14e00bb115f8ef01b4) )
+ ROM_LOAD( "chicken_shift_gr-4_11-23-84.u5b", 0x08000, 0x2000, CRC(a94cd35b) SHA1(0ca0497a1b055ff1ae6b7bc36ae45749dff50caa) )
MOTHERBOARD_PALS
ROM_END
@@ -1544,53 +1558,111 @@ ROM_START( gghost )
ROM_END
-ROM_START( hattrick )
+/*
+
+Hat Trick (11/12/84)
+
+Cartridge Type:
+ 006-8003-01-0D REV D (also commonly found on REV B PCBs)
+Label:
++-----------------+ +-----------------+
+| HAT TRK | | HAT |
+| CD | or | TRICK |
+| 11/12/84 | | CD |
++-----------------+ | 11/12/84 |
+ +-----------------+
+Cartridge Type:
+ 007-8003-01 REV A (Yes, it's actually 007 and NOT 006)
+Label:
++-----------------+
+| H.T. |
+| CD |
+| 11/12/84 |
++-----------------+
+
+*/
+ROM_START( hattrick ) /* Cart: 006-8003-01-0D REV D */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "rom-ab0.u9a", 0x00000, 0x2000, CRC(f25c1b99) SHA1(43b2334be7cfb8091eea963e10547295362372d3) ) /* Labeled as HAT TRK, then name (like AB0) & dated 11/12/84 */
- ROM_LOAD( "rom-ab1.u8a", 0x02000, 0x2000, CRC(c1df3d1f) SHA1(754f537d12efe8891638fd11a2ee8a5b234fb079) ) /* The Hat Trick cartridge does not have any PAL's */
- ROM_LOAD( "rom-ab2.u7a", 0x04000, 0x2000, CRC(f6c41257) SHA1(05f5e71d08241c559da3bfc286c76cbb22710586) )
- ROM_LOAD( "rom-cd.u3a", 0x1c000, 0x2000, CRC(fc44f36c) SHA1(227d0c93c579d743b615b1fa6da56128e8202e51) )
- ROM_LOAD( "rom-ef.u2a", 0x1e000, 0x2000, CRC(d8f910fb) SHA1(b74a305dd848c7bf574e4b0aa32147b8d5c89e9e) )
+ ROM_LOAD( "hat_trk_ab0_11-12-84.u9a", 0x00000, 0x2000, CRC(f25c1b99) SHA1(43b2334be7cfb8091eea963e10547295362372d3) )
+ ROM_LOAD( "hat_trk_ab1_11-12-84.u8a", 0x02000, 0x2000, CRC(c1df3d1f) SHA1(754f537d12efe8891638fd11a2ee8a5b234fb079) )
+ ROM_LOAD( "hat_trk_ab2_11-12-84.u7a", 0x04000, 0x2000, CRC(f6c41257) SHA1(05f5e71d08241c559da3bfc286c76cbb22710586) )
+ ROM_LOAD( "hat_trk_cd_11-12-84.u3a", 0x1c000, 0x2000, CRC(fc44f36c) SHA1(227d0c93c579d743b615b1fa6da56128e8202e51) )
+ ROM_LOAD( "hat_trk_ef_11-12-84.u2a", 0x1e000, 0x2000, CRC(d8f910fb) SHA1(b74a305dd848c7bf574e4b0aa32147b8d5c89e9e) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "rom-gr0.u9b", 0x00000, 0x2000, CRC(9f41baba) SHA1(fa817a8e4d2f7b86a2294132e3991f7b6d8cb11a) )
- ROM_LOAD( "rom-gr1.u8b", 0x02000, 0x2000, CRC(951f08c9) SHA1(059a575dd35cd8e822e12ac2606b47b6272bbb41) )
+ ROM_LOAD( "hat_trk_gr0_11-12-84.u9b", 0x00000, 0x2000, CRC(9f41baba) SHA1(fa817a8e4d2f7b86a2294132e3991f7b6d8cb11a) )
+ ROM_LOAD( "hat_trk_gr1_11-12-84.u8b", 0x02000, 0x2000, CRC(951f08c9) SHA1(059a575dd35cd8e822e12ac2606b47b6272bbb41) )
MOTHERBOARD_PALS
ROM_END
-ROM_START( teamht )
+/*
+
+Team Hat Trick (11/16/84)
+
+Cartridge Type:
+ 006-8025-01-0B REV B
+Label:
++-----------------+
+| HAT TRK |
+| CD |
+| 11/16/84 |
++-----------------+
+
+NOTE: ROMs CD, AB-1 & GR-0 were dated 12/16/84, while AB-0 was dated 11/12/84
+ Cartridge also contains an unlabeled PAL at U1C
+
+*/
+ROM_START( teamht ) /* Cart: 006-8025-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "hattrk.u8a", 0x00000, 0x4000, CRC(cb746de8) SHA1(b0e5003370b65f2aed4dc9ccb2a2d3eb29050245) )
- ROM_LOAD( "hattrk.u7a", 0x04000, 0x4000, CRC(5f2a0b24) SHA1(da1950a7e11014e47438a7c5831433390c1b1fd3) )
- ROM_LOAD( "hattrk.u1a", 0x1c000, 0x4000, CRC(6c6cf2be) SHA1(80e82ae4bd129000e74c4a5fd06d2109d5417e39) )
+ ROM_LOAD( "hat_trk_ab-0_11-12-84.u8a", 0x00000, 0x4000, CRC(cb746de8) SHA1(b0e5003370b65f2aed4dc9ccb2a2d3eb29050245) ) /* ONLY this one was dated 11/12/84 */
+ ROM_LOAD( "hat_trk_ab-1_11-16-84.u7a", 0x04000, 0x4000, CRC(5f2a0b24) SHA1(da1950a7e11014e47438a7c5831433390c1b1fd3) )
+ ROM_LOAD( "hat_trk_cd_11-16-84.u1a", 0x1c000, 0x4000, CRC(6c6cf2be) SHA1(80e82ae4bd129000e74c4a5fd06d2109d5417e39) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "hattrk.u6b", 0x00000, 0x4000, CRC(6e299728) SHA1(f10fc020fdf8f61d059ac57306b0353ac7dbfb24) )
+ ROM_LOAD( "hat_trk_gr-0_11-16-84.u6b", 0x00000, 0x4000, CRC(6e299728) SHA1(f10fc020fdf8f61d059ac57306b0353ac7dbfb24) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
MOTHERBOARD_PALS
ROM_END
-ROM_START( otwalls )
+/*
+
+Off The Wall (10/16/84)
+
+Cartridge Type:
+ 006-8003-01-0D REV D
+Label:
++-----------------+
+| OFF THE |
+| WALL |
+| EF |
+| 10/16/84 |
++-----------------+
+
+*/
+ROM_START( otwalls ) /* Cart: 006-8003-01-0D REV D */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "otw-ab0.bin", 0x00000, 0x2000, CRC(474441c7) SHA1(16fb5be9f94e072d4f3003abcc9dcf6d7af2359a) )
- ROM_LOAD( "otw-ab1.bin", 0x02000, 0x2000, CRC(2e9e9411) SHA1(7dfd8dafa34e4d22fa0c5e472e3e98a1c0969f43) )
- ROM_LOAD( "otw-ab2.bin", 0x04000, 0x2000, CRC(ba092128) SHA1(a38305c3ea9c8bf3596c18829655049f9468166e) )
- ROM_LOAD( "otw-ab3.bin", 0x06000, 0x2000, CRC(74bc479d) SHA1(905dab90aa11f3f4359185bb67d8c2bdc957516d) )
- ROM_LOAD( "otw-ab4.bin", 0x08000, 0x2000, CRC(f5f67619) SHA1(e3eb1434dff987d27056ae0749046f32f280160b) )
- ROM_LOAD( "otw-ab5.bin", 0x0a000, 0x2000, CRC(f5f67619) SHA1(e3eb1434dff987d27056ae0749046f32f280160b) )
- ROM_LOAD( "otw-cd.bin", 0x1c000, 0x2000, CRC(8e2d15ab) SHA1(8043fdf637de7752e8d42554ebad2e155a6f5939) )
- ROM_LOAD( "otw-ef.bin", 0x1e000, 0x2000, CRC(57eab299) SHA1(475d800c03d6b2786bd23861d61dc113b837a585) )
+ ROM_LOAD( "off_the_wall_ab0_10-16-84.u9a", 0x00000, 0x2000, CRC(474441c7) SHA1(16fb5be9f94e072d4f3003abcc9dcf6d7af2359a) )
+ ROM_LOAD( "off_the_wall_ab1_10-16-84.u8a", 0x02000, 0x2000, CRC(2e9e9411) SHA1(7dfd8dafa34e4d22fa0c5e472e3e98a1c0969f43) )
+ ROM_LOAD( "off_the_wall_ab2_10-16-84.u7a", 0x04000, 0x2000, CRC(ba092128) SHA1(a38305c3ea9c8bf3596c18829655049f9468166e) )
+ ROM_LOAD( "off_the_wall_ab3_10-16-84.u6a", 0x06000, 0x2000, CRC(74bc479d) SHA1(905dab90aa11f3f4359185bb67d8c2bdc957516d) )
+ ROM_LOAD( "off_the_wall_ab4_10-16-84.u5a", 0x08000, 0x2000, CRC(f5f67619) SHA1(e3eb1434dff987d27056ae0749046f32f280160b) )
+ ROM_LOAD( "off_the_wall_ab5_10-16-84.u4a", 0x0a000, 0x2000, CRC(f5f67619) SHA1(e3eb1434dff987d27056ae0749046f32f280160b) )
+ ROM_LOAD( "off_the_wall_cd_10-16-84.u3a", 0x1c000, 0x2000, CRC(8e2d15ab) SHA1(8043fdf637de7752e8d42554ebad2e155a6f5939) )
+ ROM_LOAD( "off_the_wall_ef_10-16-84.u2a", 0x1e000, 0x2000, CRC(57eab299) SHA1(475d800c03d6b2786bd23861d61dc113b837a585) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "otw-gr0.bin", 0x00000, 0x2000, CRC(210bad3c) SHA1(703769c6a569b17f2ad18441da7de0237be4721e) )
- ROM_LOAD( "otw-gr1.bin", 0x02000, 0x2000, CRC(13e6aaa5) SHA1(ac8b9d16d2159d4a578d8fa988b59c058c5efc88) )
- ROM_LOAD( "otw-gr2.bin", 0x04000, 0x2000, CRC(5cfefee5) SHA1(9aa74f0e1116098f43a4f8b4957db8923ddaf780) )
- ROM_LOAD( "otw-gr3.bin", 0x06000, 0x2000, CRC(6b17e4a9) SHA1(f9c57da863d613a456ee056569a87a9552ad3874) )
- ROM_LOAD( "otw-gr4.bin", 0x08000, 0x2000, CRC(15985c8c) SHA1(94f21c348bfbe4db6d0cfa5b5e35d2df4b8f936d) )
- ROM_LOAD( "otw-gr5.bin", 0x0a000, 0x2000, CRC(448f7e3c) SHA1(505724e90f17b05ccf0137dbed0d33e39db1d5ab) )
+ ROM_LOAD( "off_the_wall_gr0_10-16-84.u9b", 0x00000, 0x2000, CRC(210bad3c) SHA1(703769c6a569b17f2ad18441da7de0237be4721e) )
+ ROM_LOAD( "off_the_wall_gr1_10-16-84.u8b", 0x02000, 0x2000, CRC(13e6aaa5) SHA1(ac8b9d16d2159d4a578d8fa988b59c058c5efc88) )
+ ROM_LOAD( "off_the_wall_gr2_10-16-84.u7b", 0x04000, 0x2000, CRC(5cfefee5) SHA1(9aa74f0e1116098f43a4f8b4957db8923ddaf780) )
+ ROM_LOAD( "off_the_wall_gr3_10-16-84.u6b", 0x06000, 0x2000, CRC(6b17e4a9) SHA1(f9c57da863d613a456ee056569a87a9552ad3874) )
+ ROM_LOAD( "off_the_wall_gr4_10-16-84.u5b", 0x08000, 0x2000, CRC(15985c8c) SHA1(94f21c348bfbe4db6d0cfa5b5e35d2df4b8f936d) )
+ ROM_LOAD( "off_the_wall_gr5_10-16-84.u4b", 0x0a000, 0x2000, CRC(448f7e3c) SHA1(505724e90f17b05ccf0137dbed0d33e39db1d5ab) )
MOTHERBOARD_PALS
ROM_END
@@ -1665,23 +1737,39 @@ ROM_START( snakjack )
ROM_END
-ROM_START( stocker )
+/*
+
+Stocker
+
+Cartridge Type:
+ 006-8025-01-0B REV B
+Label:
++-----------------+
+| STOCKER |
+| EF |
+| 3/19/85 |
++-----------------+
+
+NOTE: Cartridge contains an unlabeled PAL at U1C
+
+*/
+ROM_START( stocker ) /* Cart: 006-8025-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(6a914d99) SHA1(0df23fcdcb3743d84ce0363424b7c5dd249c6dcf) )
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(48e432c2) SHA1(af87009089a3e83fab5c935696edbbf2a15215f9) )
- ROM_LOAD( "cd6ef.u1a",0x1c000, 0x4000, CRC(83e6e5c9) SHA1(f0e38a95cb2ea385a587f330c48fc787db0cc65e) )
+ ROM_LOAD( "stocker_ab_01_3-19-85.u8a", 0x00000, 0x4000, CRC(6a914d99) SHA1(0df23fcdcb3743d84ce0363424b7c5dd249c6dcf) )
+ ROM_LOAD( "stocker_ab_23_3-19-85.u7a", 0x04000, 0x4000, CRC(48e432c2) SHA1(af87009089a3e83fab5c935696edbbf2a15215f9) )
+ ROM_LOAD( "stocker_ef_3-19-85.u1a", 0x1c000, 0x4000, CRC(83e6e5c9) SHA1(f0e38a95cb2ea385a587f330c48fc787db0cc65e) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(2e66ac35) SHA1(c65b4991a88f8359c85f904f66a7fe73330aface) )
- ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(6fa43631) SHA1(7000907b914bf851b09811e3736af8c02e1aeda9) )
+ ROM_LOAD( "stocker_gr_01_3-19-85.u6b", 0x00000, 0x4000, CRC(2e66ac35) SHA1(c65b4991a88f8359c85f904f66a7fe73330aface) )
+ ROM_LOAD( "stocker_gr_23_3-19-85.u5b", 0x04000, 0x4000, CRC(6fa43631) SHA1(7000907b914bf851b09811e3736af8c02e1aeda9) )
ROM_REGION( 0x00100, "cart_pals", 0) /* PAL's located on the cartridge */
- ROM_LOAD( "pal10l8.u1c.bin", 0x0000, 0x002c, CRC(b4f6b0b7) SHA1(5a439bfb02b4b2cbcbd9b009ccfce1d300a2435e) ) /* PAL10L8CN */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x002c, CRC(b4f6b0b7) SHA1(5a439bfb02b4b2cbcbd9b009ccfce1d300a2435e) ) /* PAL10L8CN */
MOTHERBOARD_PALS
ROM_END
-// the old dump for reference, it had a different cart layout.
+// This is Stocker on a different cartridge type, it needs to be redumped and re-added
#if 0
ROM_START( stocker )
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
@@ -1705,127 +1793,215 @@ ROM_START( stocker )
ROM_END
#endif
-ROM_START( triviag1 )
+/*
+
+Trivial Pursuit (Think Tank - Genus Edition) (2/12/85)
+
+Cartridge Type:
+ 006-8003-01-0D REV D
+Label:
++-----------------+
+| T.PRST |
+| U2A |
+| 2/12/85 |
++-----------------+
+
+*/
+ROM_START( triviag1 ) /* Cart: 006-8003-01-0D REV D */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "tpg1-ab0.bin", 0x00000, 0x2000, CRC(79fd3ac3) SHA1(52db0ba445f9a953f6ceb43c3d173b73c71af192) )
- ROM_LOAD( "tpg1-ab1.bin", 0x02000, 0x2000, CRC(0ff677e9) SHA1(14fdc1ee87893ea91eea40949aeac5381c569bdd) )
- ROM_LOAD( "tpg1-ab2.bin", 0x04000, 0x2000, CRC(3b4d03e7) SHA1(b5bb541daf59b2a62b17a10afa37bfae50563393) )
- ROM_LOAD( "tpg1-ab3.bin", 0x06000, 0x2000, CRC(2c6c0651) SHA1(9ff5dcc4a54df653ae43d503e153f4e48ea4735b) )
- ROM_LOAD( "tpg1-ab4.bin", 0x08000, 0x2000, CRC(397529e7) SHA1(af1898dc35545981513ec251eed162b329709692) )
- ROM_LOAD( "tpg1-ab5.bin", 0x0a000, 0x2000, CRC(499773a4) SHA1(c0c0ad2a63a9dbb7585cab7e21162bbc58fec0d8) )
- ROM_LOAD( "tpg1-cd.bin", 0x1c000, 0x2000, CRC(35c9b9c2) SHA1(aac57022098656dac99bf9ceeaa2bf9a3d139986) )
- ROM_LOAD( "tpg1-ef.bin", 0x1e000, 0x2000, CRC(64878342) SHA1(dd93d64b3fe351a9d2bd4c473ecefde58f0b0041) )
+ ROM_LOAD( "t.prst_u9a_2-12-85.u9a", 0x00000, 0x2000, CRC(79fd3ac3) SHA1(52db0ba445f9a953f6ceb43c3d173b73c71af192) )
+ ROM_LOAD( "t.prst_u8a_2-12-85.u8a", 0x02000, 0x2000, CRC(0ff677e9) SHA1(14fdc1ee87893ea91eea40949aeac5381c569bdd) )
+ ROM_LOAD( "t.prst_u7a_2-12-85.u7a", 0x04000, 0x2000, CRC(3b4d03e7) SHA1(b5bb541daf59b2a62b17a10afa37bfae50563393) )
+ ROM_LOAD( "t.prst_u6a_2-12-85.u6a", 0x06000, 0x2000, CRC(2c6c0651) SHA1(9ff5dcc4a54df653ae43d503e153f4e48ea4735b) )
+ ROM_LOAD( "t.prst_u5a_2-12-85.u5a", 0x08000, 0x2000, CRC(397529e7) SHA1(af1898dc35545981513ec251eed162b329709692) )
+ ROM_LOAD( "t.prst_u4a_2-12-85.u4a", 0x0a000, 0x2000, CRC(499773a4) SHA1(c0c0ad2a63a9dbb7585cab7e21162bbc58fec0d8) )
+ ROM_LOAD( "t.prst_u3a_2-12-85.u3a", 0x1c000, 0x2000, CRC(35c9b9c2) SHA1(aac57022098656dac99bf9ceeaa2bf9a3d139986) )
+ ROM_LOAD( "t.prst_u2a_2-12-85.u2a", 0x1e000, 0x2000, CRC(64878342) SHA1(dd93d64b3fe351a9d2bd4c473ecefde58f0b0041) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "tpg1-gr0.bin", 0x00000, 0x2000, CRC(20c9217a) SHA1(79ef058633149da8d2835405954ac31c661bf660) )
- ROM_LOAD( "tpg1-gr1.bin", 0x02000, 0x2000, CRC(d7f44504) SHA1(804dbc4c006b20bdb01bdf02754e0d98f6fbacbe) )
- ROM_LOAD( "tpg1-gr2.bin", 0x04000, 0x2000, CRC(4e59a15d) SHA1(c584bae32e2e5d8b5a48c44a31272b4f9dadfcd1) )
- ROM_LOAD( "tpg1-gr3.bin", 0x06000, 0x2000, CRC(323a8640) SHA1(7ec6f8f9bcfa5de442dce4f6e81e697da34dbab8) )
- ROM_LOAD( "tpg1-gr4.bin", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) )
- ROM_LOAD( "tpg1-gr5.bin", 0x0a000, 0x2000, CRC(067bfd66) SHA1(32f5973f2f0aed67c8f9b5886f52b9dc516a611e) )
+ ROM_LOAD( "t.prst_u9b_2-12-85.u9b", 0x00000, 0x2000, CRC(20c9217a) SHA1(79ef058633149da8d2835405954ac31c661bf660) )
+ ROM_LOAD( "t.prst_u8b_2-12-85.u8b", 0x02000, 0x2000, CRC(d7f44504) SHA1(804dbc4c006b20bdb01bdf02754e0d98f6fbacbe) )
+ ROM_LOAD( "t.prst_u7b_2-12-85.u7b", 0x04000, 0x2000, CRC(4e59a15d) SHA1(c584bae32e2e5d8b5a48c44a31272b4f9dadfcd1) )
+ ROM_LOAD( "t.prst_u6b_2-12-85.u6b", 0x06000, 0x2000, CRC(323a8640) SHA1(7ec6f8f9bcfa5de442dce4f6e81e697da34dbab8) )
+ ROM_LOAD( "t.prst_u5b_2-12-85.u5b", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) )
+ ROM_LOAD( "t.prst_u4b_2-12-85.u4b", 0x0a000, 0x2000, CRC(067bfd66) SHA1(32f5973f2f0aed67c8f9b5886f52b9dc516a611e) )
MOTHERBOARD_PALS
ROM_END
-ROM_START( trivia12 )
+
+/*
+
+Trivial Pursuit (Think Tank - Genus Edition) (12/14/84)
+
+Cartridge Type:
+ 006-8003-01-0D REV D
+Label:
++-----------------+
+| TRIVIAL |
+| PERSUIT |
+| EF |
+| 12/14/84 |
++-----------------+
+
+*/
+ROM_START( trivia12 ) /* Cart: 006-8003-01-0D REV D */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab0.u9a", 0x00000, 0x2000, CRC(41ca9a81) SHA1(127beee924d4213de874f7def9875fd3a26c6b5f) )
- ROM_LOAD( "ab1.u8a", 0x02000, 0x2000, CRC(b3b48a3d) SHA1(e9554887430014116ff8e5e3d0ef5678d13f224c) )
- ROM_LOAD( "ab2.u7a", 0x04000, 0x2000, CRC(ab652ce9) SHA1(06f47c274b94f046a59a1dc432c55ee8f450a246) )
- ROM_LOAD( "ab3.u6a", 0x06000, 0x2000, CRC(4b382c77) SHA1(4a14166c90542ecec3677d9098a26723be6a26e2) )
- ROM_LOAD( "ab4.u5a", 0x08000, 0x2000, CRC(9b4a8c4e) SHA1(c0354862b428ad8a5b1d229cadfcfc7e688b06c1) )
- ROM_LOAD( "ab5.u4a", 0x0a000, 0x2000, CRC(499773a4) SHA1(c0c0ad2a63a9dbb7585cab7e21162bbc58fec0d8) )
- ROM_LOAD( "cd.u3a", 0x1c000, 0x2000, CRC(12d870ba) SHA1(b86a8cbf8037df78437056f5ff57e7b8b5e4c94e) )
- ROM_LOAD( "ef.u2a", 0x1e000, 0x2000, CRC(d902ee28) SHA1(18e3c96e1ac50f847d1b9f4f868f19e074d147ff) )
+ ROM_LOAD( "trivial_pursuit_ab0_12-14-84.u9a", 0x00000, 0x2000, CRC(41ca9a81) SHA1(127beee924d4213de874f7def9875fd3a26c6b5f) )
+ ROM_LOAD( "trivial_pursuit_ab1_12-14-84.u8a", 0x02000, 0x2000, CRC(b3b48a3d) SHA1(e9554887430014116ff8e5e3d0ef5678d13f224c) )
+ ROM_LOAD( "trivial_pursuit_ab2_12-14-84.u7a", 0x04000, 0x2000, CRC(ab652ce9) SHA1(06f47c274b94f046a59a1dc432c55ee8f450a246) )
+ ROM_LOAD( "trivial_pursuit_ab3_12-14-84.u6a", 0x06000, 0x2000, CRC(4b382c77) SHA1(4a14166c90542ecec3677d9098a26723be6a26e2) )
+ ROM_LOAD( "trivial_pursuit_ab4_12-14-84.u5a", 0x08000, 0x2000, CRC(9b4a8c4e) SHA1(c0354862b428ad8a5b1d229cadfcfc7e688b06c1) )
+ ROM_LOAD( "trivial_pursuit_ab5_12-14-84.u4a", 0x0a000, 0x2000, CRC(499773a4) SHA1(c0c0ad2a63a9dbb7585cab7e21162bbc58fec0d8) )
+ ROM_LOAD( "trivial_pursuit_cd_12-14-84.u3a", 0x1c000, 0x2000, CRC(12d870ba) SHA1(b86a8cbf8037df78437056f5ff57e7b8b5e4c94e) )
+ ROM_LOAD( "trivial_pursuit_ef_12-14-84.u2a", 0x1e000, 0x2000, CRC(d902ee28) SHA1(18e3c96e1ac50f847d1b9f4f868f19e074d147ff) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr0.u9b", 0x00000, 0x2000, CRC(20c9217a) SHA1(79ef058633149da8d2835405954ac31c661bf660) )
- ROM_LOAD( "gr1.u8b", 0x02000, 0x2000, CRC(d7f44504) SHA1(804dbc4c006b20bdb01bdf02754e0d98f6fbacbe) )
- ROM_LOAD( "gr2.u7b", 0x04000, 0x2000, CRC(4e59a15d) SHA1(c584bae32e2e5d8b5a48c44a31272b4f9dadfcd1) )
- ROM_LOAD( "gr3.u6b", 0x06000, 0x2000, CRC(323a8640) SHA1(7ec6f8f9bcfa5de442dce4f6e81e697da34dbab8) )
- ROM_LOAD( "gr4.u5b", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) )
- ROM_LOAD( "gr5.u4b", 0x0a000, 0x2000, CRC(d17d5431) SHA1(b92741f6eda01f2e360e73a9f4df728fc44d7e1b) )
+ ROM_LOAD( "trivial_pursuit_gr0_12-14-84.u9b", 0x00000, 0x2000, CRC(20c9217a) SHA1(79ef058633149da8d2835405954ac31c661bf660) )
+ ROM_LOAD( "trivial_pursuit_gr1_12-14-84.u8b", 0x02000, 0x2000, CRC(d7f44504) SHA1(804dbc4c006b20bdb01bdf02754e0d98f6fbacbe) )
+ ROM_LOAD( "trivial_pursuit_gr2_12-14-84.u7b", 0x04000, 0x2000, CRC(4e59a15d) SHA1(c584bae32e2e5d8b5a48c44a31272b4f9dadfcd1) )
+ ROM_LOAD( "trivial_pursuit_gr3_12-14-84.u6b", 0x06000, 0x2000, CRC(323a8640) SHA1(7ec6f8f9bcfa5de442dce4f6e81e697da34dbab8) )
+ ROM_LOAD( "trivial_pursuit_gr4_12-14-84.u5b", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) )
+ ROM_LOAD( "trivial_pursuit_gr5_12-14-84.u4b", 0x0a000, 0x2000, CRC(d17d5431) SHA1(b92741f6eda01f2e360e73a9f4df728fc44d7e1b) )
MOTHERBOARD_PALS
ROM_END
-ROM_START( triviag2 )
+/*
+
+Trivial Pursuit (Baby Boomer Edition) (3/20/85)
+
+Cartridge Type:
+ 006-8025-01-0B REV B
+Label:
++-----------------+ +-----------------+
+| B.BOOMER | | T.P.BABYBOOM |
+| ROM CD6EFR | or | CD6EFR |
+| 3/20/85 | | 3/20/85 |
++-----------------+ +-----------------+
+
+NOTE: Cartridge contains an unlabeled PAL at U1C
+
+*/
+ROM_START( triviabb ) /* Cart: 006-8025-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.bin", 0x00000, 0x4000, CRC(4fca20c5) SHA1(595b32ff035036cafbf49d75aa170f39e9f52b38) ) /* Labeled as GENUS II, then name (like ROM AB01R) & dated 3/22/85 */
- ROM_LOAD( "ab23.bin", 0x04000, 0x4000, CRC(6cf2ddeb) SHA1(0d6667babd9ab70820cf165900d90003f0893be7) )
- ROM_LOAD( "ab45.bin", 0x08000, 0x4000, CRC(a7ff789c) SHA1(a3421ae46dadd6f514cfc514ff07dfcca2cb1478) )
- ROM_LOAD( "ab67.bin", 0x0c000, 0x4000, CRC(cc5c68ef) SHA1(38713796e07f84c9a1b21d8c66f76e620132d77e) )
- ROM_LOAD( "cd45.bin", 0x18000, 0x4000, CRC(fc9c752a) SHA1(239507fb5d75e86aca295978aab1dd4514d8d761) )
- ROM_RELOAD( 0x10000, 0x4000 )
- ROM_RELOAD( 0x14000, 0x4000 )
- ROM_LOAD( "cd6ef.bin", 0x1c000, 0x4000, CRC(23b56fb8) SHA1(9ac726de69e4b374886a3542829745f7477d7556) )
+ ROM_LOAD( "b.boomer_rom_ab01r_3-20-85.u8a", 0x00000, 0x4000, CRC(1b7c439d) SHA1(8b3020dcb375b2f2e5e975a8067df6504aa8691e) )
+ ROM_LOAD( "b.boomer_rom_ab23r_3-20-85.u7a", 0x04000, 0x4000, CRC(e4f1e704) SHA1(e5135134b54e1e2e95c5bfe6e5f0e2dd280db69d) )
+ ROM_LOAD( "b.boomer_rom_ab45r_3-20-85.u6a", 0x08000, 0x4000, CRC(daa2d8bc) SHA1(feae215877ba42ab33182dfd74083f1d48443d8c) )
+ ROM_LOAD( "b.boomer_rom_ab67r_3-20-85.u5a", 0x0c000, 0x4000, CRC(3622c4f1) SHA1(d180bb1c4a73d95c369cc507697421fb38a92d2c) )
+ ROM_LOAD( "b.boomer_rom_cd45r_3-20-85.u2a", 0x18000, 0x4000, CRC(07fd88ff) SHA1(c3168ecf6562e09790c4f18cdd91c7a347223323) )
+ ROM_LOAD( "b.boomer_rom_cd6efr_3-20-85.u1a", 0x1c000, 0x4000, CRC(2d03f241) SHA1(986ca6ea20c306e83ae88acc2d6837c7ed5fe351) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
- ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
- ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(1e870293) SHA1(32149c9c8047854f2b2ad8844c4bd00a8ded588e) )
+ ROM_LOAD( "b.boomer_gr01r_3-20-85.u6b", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) ) /* these 3 didn't have "ROM" on the label */
+ ROM_LOAD( "b.boomer_gr23r_3-20-85.u5b", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
+ ROM_LOAD( "b.boomer_gr45r_3-20-85.u4b", 0x08000, 0x4000, CRC(92fb6fb1) SHA1(1a322bd3cfacdf82d4fcc4b4d47f78a701411919) )
+
+ ROM_REGION( 0x00100, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x002c, CRC(175a5168) SHA1(4f5e090a8ae1e35f9cb1b649ef1e1805f6f32284) ) /* PAL10L8CN */
MOTHERBOARD_PALS
ROM_END
-ROM_START( triviasp )
+/*
+
+Trivial Pursuit: Genus II (3/22/85)
+
+Cartridge Type:
+ 006-8025-01-0B REV B
+Label:
++-----------------+
+| GENUS II |
+| ROM D6EFR |
+| 3/22/85 |
++-----------------+
+
+NOTE: Cartridge contains an unlabeled PAL at U1C
+
+*/
+ROM_START( triviag2 ) /* Cart: 006-8025-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "allsport.8a", 0x00000, 0x4000, CRC(54b7ff31) SHA1(1bdf9c9eb1a0fb4c1013680372d289882abf4b47) )
- ROM_LOAD( "allsport.7a", 0x04000, 0x4000, CRC(59fae9d2) SHA1(a555f0679c59bf7c9dad0ecb9656a2f8faf39902) )
- ROM_LOAD( "allsport.6a", 0x08000, 0x4000, CRC(237b6b95) SHA1(9d2937c1ecea9d92775f380d40f465f68c44fe06) )
- ROM_LOAD( "allsport.5a", 0x0c000, 0x4000, CRC(b64d7f61) SHA1(25a7034b18a1623209dc0d06bdb4490243d43261) )
- ROM_LOAD( "allsport.3a", 0x18000, 0x4000, CRC(e45d09d6) SHA1(8bde18d25f8bd1056e42672d428473be23eab260) )
- ROM_LOAD( "allsport.1a", 0x1c000, 0x4000, CRC(8bb3e831) SHA1(ecc8fb0f2143e3ea03bb52773cc0a81d4dcc742d) )
+ ROM_LOAD( "genus_ii_ab01_r_3-22-85.u8a", 0x00000, 0x4000, CRC(4fca20c5) SHA1(595b32ff035036cafbf49d75aa170f39e9f52b38) )
+ ROM_LOAD( "genus_ii_ab23_r_3-22-85.u7a", 0x04000, 0x4000, CRC(6cf2ddeb) SHA1(0d6667babd9ab70820cf165900d90003f0893be7) )
+ ROM_LOAD( "genus_ii_ab45_r_3-22-85.u6a", 0x08000, 0x4000, CRC(a7ff789c) SHA1(a3421ae46dadd6f514cfc514ff07dfcca2cb1478) )
+ ROM_LOAD( "genus_ii_ab67_r_3-22-85.u5a", 0x0c000, 0x4000, CRC(cc5c68ef) SHA1(38713796e07f84c9a1b21d8c66f76e620132d77e) )
+ ROM_LOAD( "genus_ii_rom_cd45r_3-22-85.u2a", 0x18000, 0x4000, CRC(fc9c752a) SHA1(239507fb5d75e86aca295978aab1dd4514d8d761) )
+ ROM_RELOAD( 0x10000, 0x4000 )
+ ROM_RELOAD( 0x14000, 0x4000 )
+ ROM_LOAD( "genus_ii_rom_d6efr_3-22-85.u1a", 0x1c000, 0x4000, CRC(23b56fb8) SHA1(9ac726de69e4b374886a3542829745f7477d7556) ) /* yes, it's actually D6EFR and not CD6EFR */
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
- ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
- ROM_LOAD( "allsport.3b", 0x08000, 0x4000, CRC(7415a7fc) SHA1(93d832434f359ce7b02aef276c89456b16438979) )
+ ROM_LOAD( "genus_ii_gr0_r_3-22-85.u6b", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) ) /* Cart silscreened: U6B GR01 */
+ ROM_LOAD( "genus_ii_gr1_r_3-22-85.u5b", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) /* Cart silscreened: U5B GR23 */
+ ROM_LOAD( "genus_ii_grz_r_3-22-85.u4b", 0x08000, 0x4000, CRC(1e870293) SHA1(32149c9c8047854f2b2ad8844c4bd00a8ded588e) ) /* Cart silscreened: U4B GR45 - yes, it's GRZ and not GR2 */
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
MOTHERBOARD_PALS
ROM_END
-ROM_START( triviayp )
+/*
+
+Trivial Pursuit (Young Players Edition) (3/29/85)
+
+Cartridge Type:
+ 006-8025-01-0B REV B
+Label:
++-----------------+
+| YOUNG |
+| ROM CD6EF R |
+| 3/29/85 |
++-----------------+
+
+NOTE: Cartridge contains an unlabeled PAL at U1C
+
+*/
+ROM_START( triviayp ) /* Cart: 006-8025-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.bin", 0x00000, 0x4000, CRC(97d35a85) SHA1(3ee8400fc3a2bf8a2f6374ffc34a4d295ee13bab) )
- ROM_LOAD( "ab23.bin", 0x04000, 0x4000, CRC(2ff67c70) SHA1(c45b5fde4ec979322c9e251e66183632552d35bd) )
- ROM_LOAD( "ab45.bin", 0x08000, 0x4000, CRC(511a0fab) SHA1(a2fefe2b86028c7e8c15d6a737509b7dc30430cd) )
- ROM_LOAD( "ab67.bin", 0x0c000, 0x4000, CRC(df99d00c) SHA1(7eba6b85e2d9a06635e97d12123fd2a17368e6bc) )
- ROM_LOAD( "cd45.bin", 0x18000, 0x4000, CRC(ac45809e) SHA1(1151c4e55f21a7e2eb8e163ac782b4449af84cdc) )
- ROM_LOAD( "cd6ef.bin", 0x1c000, 0x4000, CRC(a008059f) SHA1(45e4cfc259e801a189ec19fdc58135dbbbe130ea) )
+ ROM_LOAD( "young_rom_ab01_r_3-29-85.u8a", 0x00000, 0x4000, CRC(97d35a85) SHA1(3ee8400fc3a2bf8a2f6374ffc34a4d295ee13bab) )
+ ROM_LOAD( "young_rom_ab23_r_3-29-85.u7a", 0x04000, 0x4000, CRC(2ff67c70) SHA1(c45b5fde4ec979322c9e251e66183632552d35bd) )
+ ROM_LOAD( "young_rom_ab45_r_3-29-85.u6a", 0x08000, 0x4000, CRC(511a0fab) SHA1(a2fefe2b86028c7e8c15d6a737509b7dc30430cd) )
+ ROM_LOAD( "young_rom_ab67_r_3-29-85.u5a", 0x0c000, 0x4000, CRC(df99d00c) SHA1(7eba6b85e2d9a06635e97d12123fd2a17368e6bc) )
+ ROM_LOAD( "young_rom_cd45_r_3-29-85.u2a", 0x18000, 0x4000, CRC(ac45809e) SHA1(1151c4e55f21a7e2eb8e163ac782b4449af84cdc) )
+ ROM_LOAD( "young_rom_cd6ef_r_3-29-85.u1a", 0x1c000, 0x4000, CRC(a008059f) SHA1(45e4cfc259e801a189ec19fdc58135dbbbe130ea) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
- ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
- ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(1242033e) SHA1(1a3fe186bb261e2c7d9fbbb2a3103b39bf029b35) )
+ ROM_LOAD( "young_gr01_r_3-29-85.u6b", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) ) /* these 3 didn't have "ROM" on the label */
+ ROM_LOAD( "young_gr23_r_3-29-85.u5b", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
+ ROM_LOAD( "young_gr45_r_3-29-85.u4b", 0x08000, 0x4000, CRC(1242033e) SHA1(1a3fe186bb261e2c7d9fbbb2a3103b39bf029b35) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
MOTHERBOARD_PALS
ROM_END
-ROM_START( triviabb )
+ROM_START( triviasp ) /* Cart: 006-8025-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(1b7c439d) SHA1(8b3020dcb375b2f2e5e975a8067df6504aa8691e) )
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(e4f1e704) SHA1(e5135134b54e1e2e95c5bfe6e5f0e2dd280db69d) )
- ROM_LOAD( "ab45.u6a", 0x08000, 0x4000, CRC(daa2d8bc) SHA1(feae215877ba42ab33182dfd74083f1d48443d8c) )
- ROM_LOAD( "ab67.u5a", 0x0c000, 0x4000, CRC(3622c4f1) SHA1(d180bb1c4a73d95c369cc507697421fb38a92d2c) )
- ROM_LOAD( "cd45.u2a", 0x18000, 0x4000, CRC(07fd88ff) SHA1(c3168ecf6562e09790c4f18cdd91c7a347223323) )
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(2d03f241) SHA1(986ca6ea20c306e83ae88acc2d6837c7ed5fe351) )
+ ROM_LOAD( "allsport.u8a", 0x00000, 0x4000, CRC(54b7ff31) SHA1(1bdf9c9eb1a0fb4c1013680372d289882abf4b47) )
+ ROM_LOAD( "allsport.u7a", 0x04000, 0x4000, CRC(59fae9d2) SHA1(a555f0679c59bf7c9dad0ecb9656a2f8faf39902) )
+ ROM_LOAD( "allsport.u6a", 0x08000, 0x4000, CRC(237b6b95) SHA1(9d2937c1ecea9d92775f380d40f465f68c44fe06) )
+ ROM_LOAD( "allsport.u5a", 0x0c000, 0x4000, CRC(b64d7f61) SHA1(25a7034b18a1623209dc0d06bdb4490243d43261) )
+ ROM_LOAD( "allsport.u2a", 0x18000, 0x4000, CRC(e45d09d6) SHA1(8bde18d25f8bd1056e42672d428473be23eab260) )
+ ROM_LOAD( "allsport.u1a", 0x1c000, 0x4000, CRC(8bb3e831) SHA1(ecc8fb0f2143e3ea03bb52773cc0a81d4dcc742d) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
- ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
- ROM_LOAD( "gr45.u4b", 0x08000, 0x4000, CRC(92fb6fb1) SHA1(1a322bd3cfacdf82d4fcc4b4d47f78a701411919) )
+ ROM_LOAD( "allsport.u6b", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
+ ROM_LOAD( "allsport.u5b", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
+ ROM_LOAD( "allsport.u4b", 0x08000, 0x4000, CRC(7415a7fc) SHA1(93d832434f359ce7b02aef276c89456b16438979) )
- ROM_REGION( 0x00100, "cart_pals", 0) /* PAL's located on the cartridge */
- ROM_LOAD( "pal10l8.u1d.bin", 0x0000, 0x002c, CRC(175a5168) SHA1(4f5e090a8ae1e35f9cb1b649ef1e1805f6f32284) ) /* PAL10L8CN */
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
MOTHERBOARD_PALS
ROM_END
+
ROM_START( triviaes )
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
ROM_LOAD( "tp_a2.bin", 0x00000, 0x04000, CRC(b4d69463) SHA1(8d6b2024600ab0a5d76d2b8ec53cf4c6c6618901) )
@@ -1866,19 +2042,36 @@ ROM_START( triviaes2 )
MOTHERBOARD_PALS
ROM_END
-ROM_START( gimeabrk )
+
+/*
+
+Gimme A Break (7/7/85)
+
+Cartridge Type:
+ 006-8025-01-0B REV B
+Label:
++-----------------+
+| GimmeABreak |
+| CD 6 EF |
+| 7/7/85 |
++-----------------+
+
+NOTE: Cartridge contains an unlabeled PAL at U1C
+
+*/
+ROM_START( gimeabrk ) /* Cart: 006-8025-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(18cc53db) SHA1(3bb47c349b3ab7b81e3557e3b4877617fb549c9e) ) /* Labeled as GimmeABreak, then name (like AB01) & dated 7/7/85 */
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(6bd4190a) SHA1(b6562b3575dc8265c01719cfbcb554b69bc1b37f) )
- ROM_LOAD( "ab45.u6a", 0x08000, 0x4000, CRC(5dca4f33) SHA1(aa45d5a960491c85f332f22cffe61999fe3db826) )
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(5e2b3510) SHA1(e3501b9bd73bc724aee0436700625bd2af94f72d) )
+ ROM_LOAD( "gimmeabreak_ab01_7-7-85.u8a", 0x00000, 0x4000, CRC(18cc53db) SHA1(3bb47c349b3ab7b81e3557e3b4877617fb549c9e) )
+ ROM_LOAD( "gimmeabreak_ab23_7-7-85.u7a", 0x04000, 0x4000, CRC(6bd4190a) SHA1(b6562b3575dc8265c01719cfbcb554b69bc1b37f) )
+ ROM_LOAD( "gimmeabreak_ab45_7-7-85.u6a", 0x08000, 0x4000, CRC(5dca4f33) SHA1(aa45d5a960491c85f332f22cffe61999fe3db826) )
+ ROM_LOAD( "gimmeabreak_cd_6_ef_7-7-85.u1a", 0x1c000, 0x4000, CRC(5e2b3510) SHA1(e3501b9bd73bc724aee0436700625bd2af94f72d) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(e3cdc476) SHA1(2f17c3f84767850d45192dfb507dd2716ecadc20) )
- ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(0555d9c0) SHA1(da0d1f207ad056b2d82a5ad6382372066883d161) )
+ ROM_LOAD( "gimmeabreak_gr01_7-7-85.u6b", 0x00000, 0x4000, CRC(e3cdc476) SHA1(2f17c3f84767850d45192dfb507dd2716ecadc20) )
+ ROM_LOAD( "gimmeabreak_gr23_7-7-85.u5b", 0x04000, 0x4000, CRC(0555d9c0) SHA1(da0d1f207ad056b2d82a5ad6382372066883d161) )
ROM_REGION( 0x00100, "cart_pals", 0) /* PAL's located on the cartridge */
- ROM_LOAD( "pal10l8.u1c.bin", 0x0000, 0x002c, CRC(b4f6b0b7) SHA1(5a439bfb02b4b2cbcbd9b009ccfce1d300a2435e) ) /* PAL10L8CN */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x002c, CRC(b4f6b0b7) SHA1(5a439bfb02b4b2cbcbd9b009ccfce1d300a2435e) ) /* PAL10L8CN */
MOTHERBOARD_PALS
ROM_END
@@ -1925,12 +2118,18 @@ ROM_START( grudgep )
MOTHERBOARD_PALS
ROM_END
+
+/*
+
+Mini Golf - Unknown version
+
+*/
ROM_START( minigolf )
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) )
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) )
- ROM_LOAD( "ab45.u6a", 0x08000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) )
- ROM_LOAD( "ab67.u5a", 0x0c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) )
+ ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) )
+ ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) )
+ ROM_LOAD( "ab45.u6a", 0x08000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) )
+ ROM_LOAD( "ab67.u5a", 0x0c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) )
ROM_LOAD( "1a-ver2", 0x10000, 0x10000, CRC(60b6cd58) SHA1(f79bf2d1f6c4e63f666073c5ecb22604c1ab57d8) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
@@ -1945,19 +2144,40 @@ ROM_START( minigolf )
ROM_END
-ROM_START( minigolf2 )
+/*
+
+Mini Golf (11/25/85)
+
+Cartridge Type:
+ 006-8025-01-0B REV B
+Label:
++-----------------+
+| MINI GOLF UR |
+| CD6EF |
+| 11/25/85 |
++-----------------+
+
+NOTE: Cartridge contains an unlabeled PAL at U1C
+
+NOTE: There is an undumped version dated 10/8/85 with the same layout as below
+ IE: A set where U2A is unpopulated and ROMs dated 10/8/85, however there
+ have multiple cartridges observed with labels randomly dated as 10/18/85
+
+*/
+ROM_START( minigolf2 ) /* Cart: 006-8025-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) ) /* Labeled as MINI GOLF UR, then name (like AB01) & dated 11/25/85 */
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) )
- ROM_LOAD( "ab45.u6a", 0x08000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) )
- ROM_LOAD( "ab67.u5a", 0x0c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) )
- ROM_LOAD( "cd23.u3a", 0x14000, 0x4000, CRC(52279801) SHA1(d8de92c296d5c91db3bea7a0093260158961036e) )
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(34c64f4c) SHA1(ce55f5f6ebddcacf20cb78fb738b5f569b531b61) )
+ ROM_LOAD( "mini_golf_ur_ab01_11-25-85.u8a", 0x00000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) )
+ ROM_LOAD( "mini_golf_ur_ab23_11-25-85.u7a", 0x04000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) )
+ ROM_LOAD( "mini_golf_ur_ab45_11-25-85.u6a", 0x08000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) )
+ ROM_LOAD( "mini_golf_ur_ab67_11-25-85.u5a", 0x0c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) )
+ ROM_LOAD( "mini_golf_ur_cd23_11-25-85.u3a", 0x14000, 0x4000, CRC(52279801) SHA1(d8de92c296d5c91db3bea7a0093260158961036e) )
+ /* U2A is unpopulated */
+ ROM_LOAD( "mini_golf_ur_cd6ef_10-8-85.u1a", 0x1c000, 0x4000, CRC(34c64f4c) SHA1(ce55f5f6ebddcacf20cb78fb738b5f569b531b61) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(8e24d594) SHA1(d35329fb78f90ec478418917aa1ef06d0967e6f8) )
- ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(3bf355ef) SHA1(691df25b35b00e21ad09d17a21fe98a353aa3dda) )
- ROM_LOAD( "gr45.u4b", 0x08000, 0x4000, CRC(8eb14921) SHA1(fda8b8f8e801360310f7cb1aa4c6aea1fa0a4b25) )
+ ROM_LOAD( "mini_golf_ur_gr01_11-25-85.u6b", 0x00000, 0x4000, CRC(8e24d594) SHA1(d35329fb78f90ec478418917aa1ef06d0967e6f8) )
+ ROM_LOAD( "mini_golf_ur_gr23_11-25-85.u5b", 0x04000, 0x4000, CRC(3bf355ef) SHA1(691df25b35b00e21ad09d17a21fe98a353aa3dda) )
+ ROM_LOAD( "mini_golf_ur_gr45_11-25-85.u4b", 0x08000, 0x4000, CRC(8eb14921) SHA1(fda8b8f8e801360310f7cb1aa4c6aea1fa0a4b25) )
ROM_REGION( 0x00100, "cart_pals", 0) /* PAL's located on the cartridge */
ROM_LOAD( "pal10l8.u1c", 0x0000, 0x002c, CRC(5cc09374) SHA1(07798579aeb1e2514034acea6555c0f81c48a41c) ) /* PAL10L8CN */
@@ -1985,7 +2205,35 @@ ROM_START( toggle )
ROM_END
-ROM_START( nametune )
+/*
+
+Name That Tune - Unverified date
+
+Cartridge Type:
+ 006-8030-01-0A REV A
+
+Currently there are at least 2 unverified sets:
+
+Label:
++-----------------+
+| NAMETHATTUNE UR |
+| CD 6 EF |
+| 4/22/86 |
++-----------------+
+
+and
+
++-----------------+
+| NAMETHATTUNE UR |
+| CD 6 EF |
+| 3/31/86 |
++-----------------+
+
+NOTE: Cartridge contains Sente ST1002 40pin DIP chip at U6B
+ Cartridge contains an unlabeled PAL at U7C
+
+*/
+ROM_START( nametune ) /* Cart: 006-8030-01-0A REV A */
ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
ROM_LOAD( "nttab01.bin", 0x00000, 0x4000, CRC(f99054f1) SHA1(aaa3aae71f67be2df34b9682b1b4092a208fbf26) )
ROM_CONTINUE( 0x20000, 0x4000 )
@@ -2007,30 +2255,51 @@ ROM_START( nametune )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
ROM_LOAD( "nttgr0.bin", 0x00000, 0x8000, CRC(6b75bb4b) SHA1(e7131d112fb0b36985c5b6383700f55728a1c4fd) )
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal16r8.u7c", 0x00000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
+
MOTHERBOARD_PALS
ROM_END
-ROM_START( nametune2 )
+
+/*
+
+Name That Tune (Bally, 3/23/86)
+
+Cartridge Type:
+ 006-8030-01-0A REV A
+Label:
++-----------------+
+| NMETNEUR |
+| CD 6 EF |
+| 3/23/86 |
++-----------------+
+
+NOTE: Cartridge contains Sente ST1002 40pin DIP chip at U6B
+ Cartridge contains an unlabeled PAL at U7C
+
+*/
+ROM_START( nametune2 ) /* Cart: 006-8030-01-0A REV A */
ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab 01.u8a", 0x00000, 0x4000, CRC(4044891d) SHA1(4e1e7cb9846939e03b035b95ba04f62a78719bb2) ) /* Labeled as NMETNEUR, then name (like AB 01) & dated 3/23/86 */
- ROM_CONTINUE( 0x20000, 0x4000 )
- ROM_LOAD( "ab 23.u7a", 0x04000, 0x4000, CRC(df3454bc) SHA1(82faf87ca8974629e546b6854718908721b64ad0) )
- ROM_CONTINUE( 0x24000, 0x4000 )
- ROM_LOAD( "ab 45.u6a", 0x08000, 0x4000, CRC(fb4050b0) SHA1(a4d185e02aa08e886b90454f681f49de3de76f86) )
- ROM_CONTINUE( 0x28000, 0x4000 )
- ROM_LOAD( "ab 67.u5a", 0x0c000, 0x4000, CRC(276a28f4) SHA1(cceeb9c05ff72cfe86ab55555055cf8195d3ea16) )
- ROM_CONTINUE( 0x2c000, 0x4000 )
- ROM_LOAD( "cd 01.u4a", 0x10000, 0x4000, CRC(88bed028) SHA1(69c83ba07f34dd1d45f432e2ed6a50e2d13c4acb) )
- ROM_CONTINUE( 0x30000, 0x4000 )
- ROM_LOAD( "cd 23.u3a", 0x14000, 0x4000, CRC(38c63308) SHA1(1a26642cbe91ebc96444eb05fa1454c9175d370c) )
- ROM_CONTINUE( 0x34000, 0x4000 )
- ROM_LOAD( "cd 45.u2a", 0x18000, 0x4000, CRC(d19a3671) SHA1(b68010ad235175c73258f64f9a64b37b2a06efdc) )
- ROM_CONTINUE( 0x38000, 0x4000 )
- ROM_LOAD( "cd 6 ef.u1a", 0x1c000, 0x4000, CRC(e73c7cda) SHA1(c6f751923d0c7930db2e173f680674759f94c8bb) )
- ROM_CONTINUE( 0x3c000, 0x4000 )
+ ROM_LOAD( "nmetneur_ab_01_3-23-86.u8a", 0x00000, 0x4000, CRC(4044891d) SHA1(4e1e7cb9846939e03b035b95ba04f62a78719bb2) )
+ ROM_CONTINUE( 0x20000, 0x4000 )
+ ROM_LOAD( "nmetneur_ab_23_3-23-86.u7a", 0x04000, 0x4000, CRC(df3454bc) SHA1(82faf87ca8974629e546b6854718908721b64ad0) )
+ ROM_CONTINUE( 0x24000, 0x4000 )
+ ROM_LOAD( "nmetneur_ab_45_3-23-86.u6a", 0x08000, 0x4000, CRC(fb4050b0) SHA1(a4d185e02aa08e886b90454f681f49de3de76f86) )
+ ROM_CONTINUE( 0x28000, 0x4000 )
+ ROM_LOAD( "nmetneur_ab_67_3-23-86.u5a", 0x0c000, 0x4000, CRC(276a28f4) SHA1(cceeb9c05ff72cfe86ab55555055cf8195d3ea16) )
+ ROM_CONTINUE( 0x2c000, 0x4000 )
+ ROM_LOAD( "nmetneur_cd_01_3-23-86.u4a", 0x10000, 0x4000, CRC(88bed028) SHA1(69c83ba07f34dd1d45f432e2ed6a50e2d13c4acb) )
+ ROM_CONTINUE( 0x30000, 0x4000 )
+ ROM_LOAD( "nmetneur_cd_23_3-23-86.u3a", 0x14000, 0x4000, CRC(38c63308) SHA1(1a26642cbe91ebc96444eb05fa1454c9175d370c) )
+ ROM_CONTINUE( 0x34000, 0x4000 )
+ ROM_LOAD( "nmetneur_cd_45_3-23-86.u2a", 0x18000, 0x4000, CRC(d19a3671) SHA1(b68010ad235175c73258f64f9a64b37b2a06efdc) )
+ ROM_CONTINUE( 0x38000, 0x4000 )
+ ROM_LOAD( "nmetneur_cd_6_ef_3-23-86.u1a", 0x1c000, 0x4000, CRC(e73c7cda) SHA1(c6f751923d0c7930db2e173f680674759f94c8bb) )
+ ROM_CONTINUE( 0x3c000, 0x4000 )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr 0.u3c", 0x00000, 0x8000, CRC(a0121b80) SHA1(ba38e9b738baac85fa33ae3751d02cb223fa3e65) )
+ ROM_LOAD( "nmetneur_gr_0_3-23-86.u3c", 0x00000, 0x8000, CRC(a0121b80) SHA1(ba38e9b738baac85fa33ae3751d02cb223fa3e65) )
ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
ROM_LOAD( "pal16r8.u7c", 0x00000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
@@ -2043,27 +2312,44 @@ ROM_END
This game utilizes the standard motherboard and sound board, but in addition it
also uses a Gun Interface Board (Board: 006-8032-01-0B) and video interface? board.
-*/
-ROM_START( nstocker )
+
+Night Stocker (10/6/86)
+
+Cartridge Type:
+ 006-8027-01-0B REV B
+Label:
++-----------------+
+| NIGHT STOCKER |
+| CD 6 EF |
+| 10/06/86 |
++-----------------+
+
+NOTE: Cartridge contains Sente ST1002 40pin DIP chip at U6B
+ Cartridge contains a PAL at U7C labeled NITESTKR10/6/86
+ All ROMs dated 10/06/86 and match the 8/27/86 set except for the
+ CD 6 EF ROM which was updated. It's unknown if PAL data is different.
+
+*/
+ROM_START( nstocker ) /* Cart: 006-8027-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(a635f973) SHA1(edb12469818a3114fb97d21e11c63eb37678a07b) ) /* Labeled as NIGHT STOCKER, then name (like AB 01) & dated 10/06/86 */
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(223acbb2) SHA1(195ebd349722cce323616c81cc4e86f0a9c6fa13) )
- ROM_LOAD( "ab45.u6a", 0x08000, 0x4000, CRC(27a728b5) SHA1(c72634112a04d58a695fb43bf30f44e3f7ba7de2) )
- ROM_LOAD( "ab67.u5a", 0x0c000, 0x4000, CRC(2999cdf2) SHA1(a64ae04f264ad286a87069cfb176e7511df08e78) )
- ROM_LOAD( "cd01.u4a", 0x10000, 0x4000, CRC(75e9b51a) SHA1(dbe575d37836245746ea85ffe85e8e6665ec37ea) )
- ROM_LOAD( "cd23.u3a", 0x14000, 0x4000, CRC(0a32e0a5) SHA1(dedbe08aed483bae27e1a607334e24cdfcb2f851) )
- ROM_LOAD( "cd45.u2a", 0x18000, 0x4000, CRC(9bb292fe) SHA1(6fc7abcc110c2cf7399d11a478cfdadb3439b6ab) )
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(e77c1aea) SHA1(9e2e595530cb15c634a6052c773ff5d998c0c828) )
+ ROM_LOAD( "night_stocker_ab_01_10-06-86.u8a", 0x00000, 0x4000, CRC(a635f973) SHA1(edb12469818a3114fb97d21e11c63eb37678a07b) )
+ ROM_LOAD( "night_stocker_ab_23_10-06-86.u7a", 0x04000, 0x4000, CRC(223acbb2) SHA1(195ebd349722cce323616c81cc4e86f0a9c6fa13) )
+ ROM_LOAD( "night_stocker_ab_45_10-06-86.u6a", 0x08000, 0x4000, CRC(27a728b5) SHA1(c72634112a04d58a695fb43bf30f44e3f7ba7de2) )
+ ROM_LOAD( "night_stocker_ab_67_10-06-86.u5a", 0x0c000, 0x4000, CRC(2999cdf2) SHA1(a64ae04f264ad286a87069cfb176e7511df08e78) )
+ ROM_LOAD( "night_stocker_cd_01_10-06-86.u4a", 0x10000, 0x4000, CRC(75e9b51a) SHA1(dbe575d37836245746ea85ffe85e8e6665ec37ea) )
+ ROM_LOAD( "night_stocker_cd_23_10-06-86.u3a", 0x14000, 0x4000, CRC(0a32e0a5) SHA1(dedbe08aed483bae27e1a607334e24cdfcb2f851) )
+ ROM_LOAD( "night_stocker_cd_45_10-06-86.u2a", 0x18000, 0x4000, CRC(9bb292fe) SHA1(6fc7abcc110c2cf7399d11a478cfdadb3439b6ab) )
+ ROM_LOAD( "night_stocker_cd_6_ef_10-06-86.u1a", 0x1c000, 0x4000, CRC(e77c1aea) SHA1(9e2e595530cb15c634a6052c773ff5d998c0c828) ) /* Only ROM that differs from the 8/27/86 set */
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(fd0c38be) SHA1(b9e12e76f44f2b2b3ca6a57c58f0cbb019b1971f) )
- ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(35d4433e) SHA1(399d04c2a29d993f77d0d5c2d62915081d4a85dd) )
- ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) )
- ROM_LOAD( "gr67.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) )
+ ROM_LOAD( "night_stocker_gr_01_10-06-86.u4c", 0x00000, 0x4000, CRC(fd0c38be) SHA1(b9e12e76f44f2b2b3ca6a57c58f0cbb019b1971f) )
+ ROM_LOAD( "night_stocker_gr_23_10-06-86.u3c", 0x04000, 0x4000, CRC(35d4433e) SHA1(399d04c2a29d993f77d0d5c2d62915081d4a85dd) )
+ ROM_LOAD( "night_stocker_gr_45_10-06-86.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) )
+ ROM_LOAD( "night_stocker_gr_67_10-06-86.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) )
ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
- ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+ ROM_LOAD( "nitestke10-6-86.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
ROM_REGION( 0x00004, "gun_io_bd_pals", 0) /* Gun I/O Board PALs */
ROM_LOAD( "pal16r8acn.u6", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
@@ -2074,25 +2360,43 @@ ROM_START( nstocker )
MOTHERBOARD_PALS
ROM_END
-ROM_START( nstocker2 )
+
+/*
+
+Night Stocker (8/27/86)
+
+Cartridge Type:
+ 006-8027-01-0B REV B
+Label:
++-----------------+
+| NIGHT STOCKER |
+| CD 6 EF |
+| 8/27/86 |
++-----------------+
+
+NOTE: Cartridge contains Sente ST1002 40pin DIP chip at U6B
+ Cartridge contains a PAL at U7C labeled NITESTKR8/27/86
+
+*/
+ROM_START( nstocker2 ) /* Cart: 006-8027-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(a635f973) SHA1(edb12469818a3114fb97d21e11c63eb37678a07b) ) /* Labeled as NIGHT STOCKER, then name (like AB 01) & dated 8/27/86 */
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(223acbb2) SHA1(195ebd349722cce323616c81cc4e86f0a9c6fa13) )
- ROM_LOAD( "ab45.u6a", 0x08000, 0x4000, CRC(27a728b5) SHA1(c72634112a04d58a695fb43bf30f44e3f7ba7de2) )
- ROM_LOAD( "ab67.u5a", 0x0c000, 0x4000, CRC(2999cdf2) SHA1(a64ae04f264ad286a87069cfb176e7511df08e78) )
- ROM_LOAD( "cd01.u4a", 0x10000, 0x4000, CRC(75e9b51a) SHA1(dbe575d37836245746ea85ffe85e8e6665ec37ea) )
- ROM_LOAD( "cd23.u3a", 0x14000, 0x4000, CRC(0a32e0a5) SHA1(dedbe08aed483bae27e1a607334e24cdfcb2f851) )
- ROM_LOAD( "cd45.u2a", 0x18000, 0x4000, CRC(9bb292fe) SHA1(6fc7abcc110c2cf7399d11a478cfdadb3439b6ab) )
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(c77d2302) SHA1(2b0956a7d6bdff5e4f77084149a9528fb07154dc) ) // sldh
+ ROM_LOAD( "night_stocker_ab_01_8-27-86.u8a", 0x00000, 0x4000, CRC(a635f973) SHA1(edb12469818a3114fb97d21e11c63eb37678a07b) )
+ ROM_LOAD( "night_stocker_ab_23_8-27-86.u7a", 0x04000, 0x4000, CRC(223acbb2) SHA1(195ebd349722cce323616c81cc4e86f0a9c6fa13) )
+ ROM_LOAD( "night_stocker_ab_45_8-27-86.u6a", 0x08000, 0x4000, CRC(27a728b5) SHA1(c72634112a04d58a695fb43bf30f44e3f7ba7de2) )
+ ROM_LOAD( "night_stocker_ab_67_8-27-86.u5a", 0x0c000, 0x4000, CRC(2999cdf2) SHA1(a64ae04f264ad286a87069cfb176e7511df08e78) )
+ ROM_LOAD( "night_stocker_cd_01_8-27-86.u4a", 0x10000, 0x4000, CRC(75e9b51a) SHA1(dbe575d37836245746ea85ffe85e8e6665ec37ea) )
+ ROM_LOAD( "night_stocker_cd_23_8-27-86.u3a", 0x14000, 0x4000, CRC(0a32e0a5) SHA1(dedbe08aed483bae27e1a607334e24cdfcb2f851) )
+ ROM_LOAD( "night_stocker_cd_45_8-27-86.u2a", 0x18000, 0x4000, CRC(9bb292fe) SHA1(6fc7abcc110c2cf7399d11a478cfdadb3439b6ab) )
+ ROM_LOAD( "night_stocker_cd_6_ef_8-27-86.u1a", 0x1c000, 0x4000, CRC(c77d2302) SHA1(2b0956a7d6bdff5e4f77084149a9528fb07154dc) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(fd0c38be) SHA1(b9e12e76f44f2b2b3ca6a57c58f0cbb019b1971f) )
- ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(35d4433e) SHA1(399d04c2a29d993f77d0d5c2d62915081d4a85dd) )
- ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) )
- ROM_LOAD( "gr67.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) )
+ ROM_LOAD( "night_stocker_gr_01_8-27-86.u4c", 0x00000, 0x4000, CRC(fd0c38be) SHA1(b9e12e76f44f2b2b3ca6a57c58f0cbb019b1971f) )
+ ROM_LOAD( "night_stocker_gr_23_8-27-86.u3c", 0x04000, 0x4000, CRC(35d4433e) SHA1(399d04c2a29d993f77d0d5c2d62915081d4a85dd) )
+ ROM_LOAD( "night_stocker_gr_45_8-27-86.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) )
+ ROM_LOAD( "night_stocker_gr_67_8-27-86.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) )
ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
- ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+ ROM_LOAD( "nitestke8-27-86.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
ROM_REGION( 0x00004, "gun_io_bd_pals", 0) /* Gun I/O Board PALs */
ROM_LOAD( "pal16r8acn.u6", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
@@ -2104,54 +2408,106 @@ ROM_START( nstocker2 )
ROM_END
-ROM_START( sfootbal )
+/*
+
+Street Football (11/12/86)
+
+Cartridge Type:
+ 006-8027-01-0B REV B
+Label:
++-----------------+
+| STREET FOOTBALL |
+| CD 6 EF |
+| 11/12/86 |
++-----------------+
+
+NOTE: Cartridge contains Sente ST1002 40pin DIP chip at U6B
+ Cartridge contains a PAL at U7C labeled STR.FTBALL10/31/86
+
+* There might be an undumped version dated 10/31/86 like the PAL
+
+*/
+ROM_START( sfootbal ) /* Cart: 006-8027-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(2a69803f) SHA1(ca86c9d079fbebae4c93c889d98a8573facc05da) ) /* Labeled as STREET FOOTBALL, then name (like AB 01) & dated 11/12/86 */
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(89f157c2) SHA1(59701b7770dce7ec01d0feb01d67450943e6cfbb) )
- ROM_LOAD( "ab45.u6a", 0x08000, 0x4000, CRC(91ad42c5) SHA1(0b6fc3ed3a633c825809668d49f209c130f3e978) )
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(bf80bb1a) SHA1(2b70b36d946c36e3f354c7edfd3e34784ffce406) )
+ ROM_LOAD( "street_football_ab_01_11-12-86.u8a", 0x00000, 0x4000, CRC(2a69803f) SHA1(ca86c9d079fbebae4c93c889d98a8573facc05da) )
+ ROM_LOAD( "street_football_ab_23_11-12-86.u7a", 0x04000, 0x4000, CRC(89f157c2) SHA1(59701b7770dce7ec01d0feb01d67450943e6cfbb) )
+ ROM_LOAD( "street_football_ab_45_11-12-86.u6a", 0x08000, 0x4000, CRC(91ad42c5) SHA1(0b6fc3ed3a633c825809668d49f209c130f3e978) )
+ ROM_LOAD( "street_football_cd_6_ef_11-12-86.u1a", 0x1c000, 0x4000, CRC(bf80bb1a) SHA1(2b70b36d946c36e3f354c7edfd3e34784ffce406) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(e3108d35) SHA1(05b7f1a1a18d7f72a3d3f6102cb8ab42421b7366) )
- ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(5c5af726) SHA1(04cdd476e6689d17273659fb1fe0ca642edbe5a8) )
- ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(e767251e) SHA1(3c05295317a673fb1de5924f27de276d2846d805) )
- ROM_LOAD( "gr67.u1c", 0x0c000, 0x4000, CRC(42452a7a) SHA1(37479d6e9071ac775215a6815dbaf280b3c6a57f) )
+ ROM_LOAD( "street_football_gr_01_11-12-86.u4c", 0x00000, 0x4000, CRC(e3108d35) SHA1(05b7f1a1a18d7f72a3d3f6102cb8ab42421b7366) )
+ ROM_LOAD( "street_football_gr_23_11-12-86.u3c", 0x04000, 0x4000, CRC(5c5af726) SHA1(04cdd476e6689d17273659fb1fe0ca642edbe5a8) )
+ ROM_LOAD( "street_football_gr_45_11-12-86.u2c", 0x08000, 0x4000, CRC(e767251e) SHA1(3c05295317a673fb1de5924f27de276d2846d805) )
+ ROM_LOAD( "street_football_gr_67_11-12-86.u1c", 0x0c000, 0x4000, CRC(42452a7a) SHA1(37479d6e9071ac775215a6815dbaf280b3c6a57f) )
ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
- ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
+ ROM_LOAD( "str.ftball10-31-86.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
MOTHERBOARD_PALS
ROM_END
-ROM_START( spiker )
+/*
+
+Spiker (6/9/86)
+
+Cartridge Type:
+ 006-8027-01-0B REV B
+Label:
++-----------------+
+| SPIKER U R |
+| CD 6 EF |
+| 6/09/86 |
++-----------------+
+
+NOTE: Only the CD6EF ROM was dated 6/09/86
+ Cartridge contains an unlabeled PAL at U7C
+
+*/
+ROM_START( spiker ) /* Cart: 006-8027-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(2d53d023) SHA1(01c1d2cd7d8be60c40527e9c1571b84388a39bd8) )
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(3be87edf) SHA1(0d4f1ff501d5d865abc3906f6b232ec04586d3dc) )
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(f2c73ece) SHA1(4fc108823102fd17c5b7d9be1a0c76667788ba1a) )
+ ROM_LOAD( "spiker_u_r_ab01_5-05-86.u8a", 0x00000, 0x4000, CRC(2d53d023) SHA1(01c1d2cd7d8be60c40527e9c1571b84388a39bd8) )
+ ROM_LOAD( "spiker_u_r_ab23_5-05-86.u7a", 0x04000, 0x4000, CRC(3be87edf) SHA1(0d4f1ff501d5d865abc3906f6b232ec04586d3dc) )
+ ROM_LOAD( "spiker_u_r_cd_6_ef_6-09-86.u1a", 0x1c000, 0x4000, CRC(5b5a6d86) SHA1(a173637991601adc87f0fc8fd1ee9102f5fb2b81) ) /* Only ROM updated from the 5/05/86 set */
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(0caa6e3e) SHA1(ce6765d44e444d24129ec99f04a41a866a32eee2) )
- ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(970c81f6) SHA1(f22189e172a795d115597feb48ccbc04be3859b9) )
- ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(90ddd737) SHA1(8e1dde2f42e9bf755dedeef218745d1fc54faac7) )
+ ROM_LOAD( "spiker_u_r_gr01_5-05-86.u4c", 0x00000, 0x4000, CRC(0caa6e3e) SHA1(ce6765d44e444d24129ec99f04a41a866a32eee2) )
+ ROM_LOAD( "spiker_u_r_gr23_5-05-86.u3c", 0x04000, 0x4000, CRC(970c81f6) SHA1(f22189e172a795d115597feb48ccbc04be3859b9) )
+ ROM_LOAD( "spiker_u_r_gr45_5-05-86.u2c", 0x08000, 0x4000, CRC(90ddd737) SHA1(8e1dde2f42e9bf755dedeef218745d1fc54faac7) )
ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
- ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
+ ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC - One cart showed hand written label of: SPKR */
MOTHERBOARD_PALS
ROM_END
-ROM_START( spiker2 ) /* Spiker U.R. 5/5/86 */
+/*
+
+Spiker (5/5/86)
+
+Cartridge Type:
+ 006-8027-01-0B REV B
+Label:
++-----------------+
+| SPIKER U R |
+| CD 6 EF |
+| 5/05/86 |
++-----------------+
+
+NOTE: Cartridge contains an unlabeled PAL at U7C
+
+*/
+ROM_START( spiker2 ) /* Cart: 006-8027-01-0B REV B */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(59025e39) SHA1(f0e3e45bb32cc6664831c4ef6b0cfabf3fc71f58) ) // sldh
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(ffb23288) SHA1(3458e486794f6c936d15e837be0f419027b01311) ) // sldh
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(7f04774d) SHA1(c49ac3aa86425cdbab9877fc253999329bb99a49) ) // sldh
+ ROM_LOAD( "spiker_u_r_ab01_5-05-86.u8a", 0x00000, 0x4000, CRC(2d53d023) SHA1(01c1d2cd7d8be60c40527e9c1571b84388a39bd8) )
+ ROM_LOAD( "spiker_u_r_ab23_5-05-86.u7a", 0x04000, 0x4000, CRC(3be87edf) SHA1(0d4f1ff501d5d865abc3906f6b232ec04586d3dc) )
+ ROM_LOAD( "spiker_u_r_cd_6_ef_5-05-86.u1a", 0x1c000, 0x4000, CRC(f2c73ece) SHA1(4fc108823102fd17c5b7d9be1a0c76667788ba1a) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(1228b7a3) SHA1(70a207714ba7bc4f4dbc492768480afa424b31c0) ) // sldh
- ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(970c81f6) SHA1(f22189e172a795d115597feb48ccbc04be3859b9) )
- ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(bf2b413d) SHA1(f0f797853ac1b6e45ff606d7aa5c9350765efd48) ) // sldh
+ ROM_LOAD( "spiker_u_r_gr01_5-05-86.u4c", 0x00000, 0x4000, CRC(0caa6e3e) SHA1(ce6765d44e444d24129ec99f04a41a866a32eee2) )
+ ROM_LOAD( "spiker_u_r_gr23_5-05-86.u3c", 0x04000, 0x4000, CRC(970c81f6) SHA1(f22189e172a795d115597feb48ccbc04be3859b9) )
+ ROM_LOAD( "spiker_u_r_gr45_5-05-86.u2c", 0x08000, 0x4000, CRC(90ddd737) SHA1(8e1dde2f42e9bf755dedeef218745d1fc54faac7) )
ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
@@ -2159,17 +2515,25 @@ ROM_START( spiker2 ) /* Spiker U.R. 5/5/86 */
MOTHERBOARD_PALS
ROM_END
+/*
+
+Spiker - Earliest set:
-ROM_START( spiker3 ) /* Spiker U.R. 6/9/86 */
+ Doesn't show "ONE MOMENT PLEASE" at boot screen or when the service button is pressed
+ Doesn't show the "HINT: TRY TO KEEP YOUR FEET ON THE SHADOW OF BALL." message during demo play
+
+*/
+
+ROM_START( spiker3 )
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
- ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(2d53d023) SHA1(01c1d2cd7d8be60c40527e9c1571b84388a39bd8) )
- ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(3be87edf) SHA1(0d4f1ff501d5d865abc3906f6b232ec04586d3dc) )
- ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(5b5a6d86) SHA1(a173637991601adc87f0fc8fd1ee9102f5fb2b81) ) // sldh
+ ROM_LOAD( "ab01.u8a", 0x00000, 0x4000, CRC(59025e39) SHA1(f0e3e45bb32cc6664831c4ef6b0cfabf3fc71f58) )
+ ROM_LOAD( "ab23.u7a", 0x04000, 0x4000, CRC(ffb23288) SHA1(3458e486794f6c936d15e837be0f419027b01311) )
+ ROM_LOAD( "cd6ef.u1a", 0x1c000, 0x4000, CRC(7f04774d) SHA1(c49ac3aa86425cdbab9877fc253999329bb99a49) )
ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
- ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(0caa6e3e) SHA1(ce6765d44e444d24129ec99f04a41a866a32eee2) )
+ ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(1228b7a3) SHA1(70a207714ba7bc4f4dbc492768480afa424b31c0) )
ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(970c81f6) SHA1(f22189e172a795d115597feb48ccbc04be3859b9) )
- ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(90ddd737) SHA1(8e1dde2f42e9bf755dedeef218745d1fc54faac7) )
+ ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(bf2b413d) SHA1(f0f797853ac1b6e45ff606d7aa5c9350765efd48) )
ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
@@ -2479,60 +2843,60 @@ void balsente_state::init_shrike() { expand_roms(EXPAND_ALL); config_shooter
/* Board: Unknown */
GAME( 1984, sentetst, 0, balsente, sentetst, balsente_state, init_sentetst, ROT0, "Bally/Sente", "Sente Diagnostic Cartridge", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, cshift, 0, balsente, cshift, balsente_state, init_cshift, ROT0, "Bally/Sente", "Chicken Shift", MACHINE_SUPPORTS_SAVE )
GAME( 1984, gghost, 0, balsente, gghost, balsente_state, init_gghost, ROT0, "Bally/Sente", "Goalie Ghost", MACHINE_SUPPORTS_SAVE )
/* Board: 006-8003-01-0D Rev D */
-GAME( 1984, hattrick, 0, balsente, hattrick, balsente_state, init_hattrick, ROT0, "Bally/Sente", "Hat Trick", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, cshift, 0, balsente, cshift, balsente_state, init_cshift, ROT0, "Bally/Sente", "Chicken Shift (11/23/84)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, hattrick, 0, balsente, hattrick, balsente_state, init_hattrick, ROT0, "Bally/Sente", "Hat Trick (11/12/84)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, otwalls, 0, balsente, otwalls, balsente_state, init_otwalls, ROT0, "Bally/Sente", "Off the Wall (Sente) (10/16/84)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, triviag1, 0, balsente, triviag1, balsente_state, init_triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Think Tank - Genus Edition) (2/12/85)", MACHINE_SUPPORTS_SAVE )
GAME( 1984, trivia12, triviag1, balsente, triviag1, balsente_state, init_triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Think Tank - Genus Edition) (12/14/84)", MACHINE_SUPPORTS_SAVE )
/* Board: Unknown (From a picture on eBay Snacks'n Jaxson does not match any documented types here.) */
-GAME( 1984, otwalls, 0, balsente, otwalls, balsente_state, init_otwalls, ROT0, "Bally/Sente", "Off the Wall (Sente)", MACHINE_SUPPORTS_SAVE )
GAME( 1984, snakepit, 0, balsente, sentetst, balsente_state, init_snakepit, ROT0, "Bally/Sente", "Snake Pit", MACHINE_SUPPORTS_SAVE )
GAME( 1984, snakepit2, snakepit, balsente, sentetst, balsente_state, init_snakepit, ROT0, "Sente Technologies Inc.", "Snake Pit (9/14/84)", MACHINE_SUPPORTS_SAVE ) // 1984, even though titlescreen says 1983
GAME( 1984, snakjack, 0, balsente, snakjack, balsente_state, init_snakjack, ROT0, "Bally/Sente", "Snacks'n Jaxson", MACHINE_SUPPORTS_SAVE )
/* Board: 006-8025-01-0B Rev B */
GAMEL(1984, stocker, 0, balsente, stocker, balsente_state, init_stocker, ROT0, "Bally/Sente", "Stocker (3/19/85)", MACHINE_SUPPORTS_SAVE, layout_stocker ) // date from ROM chips
-GAME( 1985, gimeabrk, 0, balsente, gimeabrk, balsente_state, init_gimeabrk, ROT0, "Bally/Sente", "Gimme A Break (7/7/85)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, minigolf, 0, balsente, minigolf, balsente_state, init_minigolf, ROT0, "Bally/Sente", "Mini Golf (11/25/85)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, minigolf2, minigolf, balsente, minigolf2,balsente_state, init_minigolf2, ROT0, "Bally/Sente", "Mini Golf (10/8/85)", MACHINE_SUPPORTS_SAVE )
GAME( 1984, triviabb, 0, balsente, triviag1, balsente_state, init_triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Baby Boomer Edition) (3/20/85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, triviag2, 0, balsente, triviag1, balsente_state, init_triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Genus II Edition) (3/22/85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, triviayp, 0, balsente, triviag1, balsente_state, init_triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Young Players Edition) (3/29/85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, triviasp, 0, balsente, triviag1, balsente_state, init_triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (All Star Sports Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, gimeabrk, 0, balsente, gimeabrk, balsente_state, init_gimeabrk, ROT0, "Bally/Sente", "Gimme A Break (7/7/85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, minigolf, 0, balsente, minigolf, balsente_state, init_minigolf, ROT0, "Bally/Sente", "Mini Golf (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, minigolf2, minigolf, balsente, minigolf2,balsente_state, init_minigolf2, ROT0, "Bally/Sente", "Mini Golf (11/25/85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, teamht, 0, teamht, teamht, balsente_state, init_hattrick, ROT0, "Bally/Sente", "Team Hat Trick (11/16/84)", MACHINE_SUPPORTS_SAVE ) // ROM chips dated 11/16/84
GAME( 1987, grudge, 0, grudge, grudge, balsente_state, init_grudge, ROT0, "Bally Midway", "Grudge Match (v00.90, prototype)", MACHINE_SUPPORTS_SAVE ) // only the PCB was found
GAME( 1987, grudgei, grudge, grudge, grudge, balsente_state, init_grudge, ROT0, "Bally Midway", "Grudge Match (v00.90, Italy, location test?)", MACHINE_SUPPORTS_SAVE ) // PCB came from a dedicated cabinet complete with artwork
GAME( 1987, grudgep, grudge, grudge, grudgep, balsente_state, init_grudge, ROT0, "Bally Midway", "Grudge Match (v00.80, prototype)", MACHINE_SUPPORTS_SAVE )
/* Board: Unknown */
-GAME( 1984, triviag1, 0, balsente, triviag1, balsente_state, init_triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Think Tank - Genus Edition) (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, triviag2, 0, balsente, triviag1, balsente_state, init_triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Genus II Edition)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, triviasp, 0, balsente, triviag1, balsente_state, init_triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (All Star Sports Edition)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, triviayp, 0, balsente, triviag1, balsente_state, init_triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Young Players Edition)", MACHINE_SUPPORTS_SAVE )
GAME( 1987, triviaes, 0, balsente, triviaes, balsente_state, init_triviaes, ROT0, "Bally/Sente (Maibesa license)", "Trivial Pursuit (Volumen III, Spanish, Maibesa license)", MACHINE_SUPPORTS_SAVE ) // Genus Edition?
GAME( 1985, toggle, 0, balsente, toggle, balsente_state, init_toggle, ROT0, "Bally/Sente", "Toggle (prototype)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, nametune, 0, st1002, nametune, balsente_state, init_nametune, ROT0, "Bally/Sente", "Name That Tune (Bally, set 1)", MACHINE_SUPPORTS_SAVE )
/* Board: 007-8001-01-0C Rev C1 */
GAME( 1987, triviaes2, triviaes, balsente, triviaes, balsente_state, init_triviaes2, ROT0, "Bally/Sente (Maibesa license)", "Trivial Pursuit (Volumen II, Spanish, Maibesa license)", MACHINE_SUPPORTS_SAVE ) // "Jovenes Carrozas" Edition?
-/* Board: 006-8030-01-0A Rev A */
-GAME( 1986, nametune2, nametune, st1002, nametune, balsente_state, init_nametune, ROT0, "Bally/Sente", "Name That Tune (Bally, 3/23/86)", MACHINE_SUPPORTS_SAVE )
-
/* Board: 006-8027-01-0B Rev B */
GAME( 1986, nstocker, 0, st1002, nstocker, balsente_state, init_nstocker, ROT0, "Bally/Sente", "Night Stocker (10/6/86)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, nstocker2, nstocker, st1002, nstocker, balsente_state, init_nstocker, ROT0, "Bally/Sente", "Night Stocker (8/27/86)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, sfootbal, 0, st1002, sfootbal, balsente_state, init_sfootbal, ROT0, "Bally/Sente", "Street Football (11/12/86)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, spiker, 0, spiker, spiker, balsente_state, init_spiker, ROT0, "Bally/Sente", "Spiker", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, spiker, 0, spiker, spiker, balsente_state, init_spiker, ROT0, "Bally/Sente", "Spiker (6/9/86)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, spiker2, spiker, spiker, spiker, balsente_state, init_spiker, ROT0, "Bally/Sente", "Spiker (5/5/86)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, spiker3, spiker, spiker, spiker, balsente_state, init_spiker, ROT0, "Bally/Sente", "Spiker (6/9/86)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, spiker3, spiker, spiker, spiker, balsente_state, init_spiker, ROT0, "Bally/Sente", "Spiker (earliest?)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, stompin, 0, st1002, stompin, balsente_state, init_stompin, ROT0, "Bally/Sente", "Stompin' (4/4/86)", MACHINE_SUPPORTS_SAVE )
+/* Board: 006-8030-01-0A Rev A */
+GAME( 1986, nametune, 0, st1002, nametune, balsente_state, init_nametune, ROT0, "Bally/Sente", "Name That Tune (Bally, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, nametune2, nametune, st1002, nametune, balsente_state, init_nametune, ROT0, "Bally/Sente", "Name That Tune (Bally, 3/23/86)", MACHINE_SUPPORTS_SAVE )
+
/* Board: A084-91889-A000 (Not a cartridge, but dedicated board) */
GAME( 1987, rescraid, 0, rescraid, rescraid, balsente_state, init_rescraid, ROT0, "Bally Midway", "Rescue Raider (5/11/87) (non-cartridge)", MACHINE_SUPPORTS_SAVE )
/* Board: Unknown */
GAME( 1986, shrike, 0, shrike, shrike, balsente_state, init_shrike, ROT0, "Bally/Sente", "Shrike Avenger (prototype)", MACHINE_SUPPORTS_SAVE )
GAME( 1987, rescraida, rescraid, rescraid, rescraid, balsente_state, init_rescraid, ROT0, "Bally Midway", "Rescue Raider (stand-alone)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, teamht, 0, teamht, teamht, balsente_state, init_hattrick, ROT0, "Bally/Sente", "Team Hat Trick", MACHINE_SUPPORTS_SAVE )
/* Trivial Pursuit running on Maibesa hardware (with Bally/Sente license) */
GAME( 1988, triviaes4, 0, triviamb, triviaes, balsente_state, init_triviaes2, ROT0, "Bally/Sente (Maibesa license)", "Trivial Pursuit (Volumen IV, Spanish, Maibesa hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // different (bootleg?) hardware. maincpu ROMs structure clearly similar to Trivial Pursuit games