diff options
author | 2022-10-27 18:06:20 +0200 | |
---|---|---|
committer | 2022-10-27 18:06:20 +0200 | |
commit | 96d879e9f6ab41b49cc806ec8b438b02bedf3570 (patch) | |
tree | d1ff165ff66fec7a5aeba543855efa5d48376bc6 | |
parent | 8c959fb8112e0108fd95ca4f4487e80cafc7d6dd (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.cpp | 381 | ||||
-rw-r--r-- | src/mame/edevices/mugsmash.h | 54 | ||||
-rw-r--r-- | src/mame/edevices/mugsmash_v.cpp | 148 | ||||
-rw-r--r-- | src/mame/edevices/stlforce.cpp | 227 | ||||
-rw-r--r-- | src/mame/edevices/stlforce.h | 46 | ||||
-rw-r--r-- | src/mame/kiwako/mrjong.cpp | 259 | ||||
-rw-r--r-- | src/mame/kiwako/mrjong.h | 56 | ||||
-rw-r--r-- | src/mame/kiwako/mrjong_v.cpp | 146 | ||||
-rw-r--r-- | src/mame/midway/balsente.cpp | 874 |
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 |