summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/dreamwld.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/dreamwld.cpp')
-rw-r--r--src/mame/drivers/dreamwld.cpp1234
1 files changed, 0 insertions, 1234 deletions
diff --git a/src/mame/drivers/dreamwld.cpp b/src/mame/drivers/dreamwld.cpp
deleted file mode 100644
index a843328bd73..00000000000
--- a/src/mame/drivers/dreamwld.cpp
+++ /dev/null
@@ -1,1234 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-/*
-
- SemiCom 68020 based hardware
- Driver by David Haywood
-
-Baryon - Future Assault (c) 1997 SemiCom / Tirano
-Cute Fighter (c) 1998 SemiCom
-Rolling Crush (c) 1999 Trust / SemiCom
-Gaia - The Last Choice of Earth (c) 1999 SemiCom / XESS
-Dream World (c) 2000 SemiCom
-
-Note: There is a SemiCom game known as Lode Quest 1998(?). This game is very similar to Dream World.
- It's not known if Lode Quest is a alternate title or a prequel of Dream World.
-
-Note: this hardware is a copy of Psikyo's 68020 based hardware,
- the Strikers 1945 bootleg has the same unknown rom!
-
- It isn't quite as flexible as the original Psikyo hardware
- by the looks of it, there are various subtle changes to how
- things work, for example the tilemap sizes and missing
- transparent pen modification. This makes it rather hard to
- merge with psikyo.cpp and it should probably be left separate.
-
-
-Stephh's notes (based on the game M68EC020 code and some tests) :
-
- - Don't trust the "test mode" as it displays Dip Switches infos
- that are in fact unused by the game ! Leftover from another game ?
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0002, "1" )
- PORT_DIPSETTING( 0x0003, "2" )
- PORT_DIPSETTING( 0x0001, "3" )
- PORT_DIPSETTING( 0x0000, "4" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW2:5" )
- PORT_DIPNAME( 0x0060, 0x0060, "Ticket Payout" ) PORT_DIPLOCATION("SW2:6,7")
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0020, "Little" )
- PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0040, "Much" )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0a00, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
- PORT_DIPSETTING( 0x2000, "Level 1" )
- PORT_DIPSETTING( 0x1000, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x7000, "Level 4" )
- PORT_DIPSETTING( 0x6000, "Level 5" )
- PORT_DIPSETTING( 0x5000, "Level 6" )
- PORT_DIPSETTING( 0x4000, "Level 7" )
- PORT_DIPSETTING( 0x3000, "Level 8" )
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-
-
- note:
-
- Baryon has some annoying sound looping clicks / cutouts, these need to
- be verified against the HW (it's a very cheap sound system, so it might
- be accurate)
-
- Baryon has playfield background which fade in with very rough / visible
- edges. In this case the tilemap size registers from the original
- psikyo hardware are set to be the alternate tilemap size, however that
- doesn't make sense in the context of the data in RAM, which doesn't
- appear to wrap properly anyway, again, it's likely this is just how the
- game is. Furthermore the BG test in the test menu indicates that it
- tests alternate tilemap sizes, but doesn't even write to the register,
- probably a leftover from hardware development as the test menu is mostly
- incomplete.
-
- All: sprite priority, the original psikyo.c HW has sprite<->tilemap
- priority but we don't support it here, does the clone HW support it?
-
- All: sprite zooming, again the original psikyo.c HW supports this, but we
- don't support it here. The Strikers 1945 bootleg in psikyo.c doesn't
- appear to support it properly either, so it might be missing on these
- clone boards.
-
-*/
-
-#include "emu.h"
-#include "cpu/m68000/m68000.h"
-#include "cpu/mcs51/mcs51.h"
-#include "sound/okim6295.h"
-#include "emupal.h"
-#include "screen.h"
-#include "speaker.h"
-#include "tilemap.h"
-
-#include <algorithm>
-
-class dreamwld_state : public driver_device
-{
-public:
- dreamwld_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- , m_spriteram(*this, "spriteram")
- , m_vram(*this, "vram_%u", 0U, u8(32))
- , m_vregs(*this, "vregs")
- , m_workram(*this, "workram")
- , m_lineram(*this, "lineram", 32)
- , m_prot(*this, "prot")
- , m_spritelut(*this, "spritelut")
- , m_okibank(*this, "oki%ubank", 1)
- , m_dsw(*this, "DSW")
- , m_maincpu(*this, "maincpu")
- , m_gfxdecode(*this, "gfxdecode")
- , m_palette(*this, "palette")
- {
- std::fill(std::begin(m_old_linescroll), std::end(m_old_linescroll), 0);
- }
-
- void baryon(machine_config &config);
- void dreamwld(machine_config &config);
-
-protected:
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
-
-private:
- /* memory pointers */
- required_shared_ptr<u32> m_spriteram;
- required_shared_ptr_array<u16, 2> m_vram;
- required_shared_ptr<u32> m_vregs;
- required_shared_ptr<u32> m_workram;
- required_shared_ptr<u16> m_lineram;
-
- optional_memory_region m_prot;
- required_memory_region m_spritelut;
- optional_memory_bank_array<2> m_okibank;
- required_ioport m_dsw;
-
- u16 lineram_r(offs_t offset) { return m_lineram[offset]; }
- void lineram_w(offs_t offset, u16 data, u16 mem_mask = ~0) { COMBINE_DATA(&m_lineram[offset]); }
-
- /* video-related */
- tilemap_t *m_tilemap[2][2];
- int m_tilebank[2];
- int m_tilebankold[2];
- int m_old_linescroll[2];
-
- std::unique_ptr<u32[]> m_spritebuf[2];
-
- /* misc */
- int m_protindex;
-
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
-
- template<int Layer> u16 vram_r(offs_t offset);
- template<int Layer> void vram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
- u32 protdata_r();
- template<int Chip> void okibank_w(u8 data);
- template<int Layer> TILE_GET_INFO_MEMBER(get_tile_info);
- u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_WRITE_LINE_MEMBER(screen_vblank);
- void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
- void baryon_map(address_map &map);
- void dreamwld_map(address_map &map);
- void oki1_map(address_map &map);
- void oki2_map(address_map &map);
-};
-
-
-void dreamwld_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- gfx_element *gfx = m_gfxdecode->gfx(0);
- const u32 *source = m_spritebuf[0].get();
- const u32 *finish = m_spritebuf[0].get() + 0x1000 / 4;
- const u16 *redirect = &m_spritelut->as_u16();
- const int xoffset = 4;
-
- while (source < finish)
- {
- int xpos = (source[0] & 0x000001ff) >> 0;
- int ypos = (source[0] & 0x01ff0000) >> 16;
- u8 xsize = (source[0] & 0x00000e00) >> 9;
- u8 ysize = (source[0] & 0x0e000000) >> 25;
-
- u32 tileno = (source[1] & 0x0001ffff) >>0;
- const u32 colour = (source[1] & 0x3f000000) >>24;
- const bool xflip = (source[1] & 0x40000000);
- const bool yflip = (source[1] & 0x80000000);
-
- int xinc = 16;
- int yinc = 16;
-
- xpos += xoffset;
- xpos &= 0x1ff;
-
- if (xflip)
- {
- xinc = -16;
- xpos += 16 * xsize;
- }
-
- if (yflip)
- {
- yinc = -16;
- ypos += 16 * ysize;
- }
-
- ysize++; xsize++; // size 0 = 1 tile
-
- xpos -=16;
-
- for (int yct = 0; yct < ysize; yct++)
- {
- for (int xct = 0; xct < xsize; xct++)
- {
- gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, ypos + yct * yinc, 0);
- gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, ypos + yct * yinc, 0);
- gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, (ypos + yct * yinc) - 0x200, 0);
- gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, (ypos + yct * yinc) - 0x200 , 0);
-
- tileno++;
- }
- }
-
- source += 2;
- }
-}
-
-template<int Layer>
-u16 dreamwld_state::vram_r(offs_t offset)
-{
- return m_vram[Layer][offset];
-}
-
-template<int Layer>
-void dreamwld_state::vram_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_vram[Layer][offset]);
- for (int size = 0; size < 2; size++)
- {
- m_tilemap[Layer][size]->mark_tile_dirty(offset);
- }
-}
-
-template<int Layer>
-TILE_GET_INFO_MEMBER(dreamwld_state::get_tile_info)
-{
- const u16 tileno = m_vram[Layer][tile_index];
- const u16 colour = tileno >> 13;
- SET_TILE_INFO_MEMBER(1, (tileno & 0x1fff) | (m_tilebank[Layer] << 13), (Layer * 0x40) + colour, 0);
-}
-
-
-void dreamwld_state::video_start()
-{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
- m_tilemap[1][0]->set_transparent_pen(0);
- m_tilemap[1][1]->set_transparent_pen(0);
-
- for (int layer = 0; layer < 2; layer++)
- {
- for (int size = 0; size < 2; size++)
- {
- m_tilemap[layer][size]->set_scroll_rows(1);
- m_tilemap[layer][size]->set_scroll_cols(1);
- }
- }
-
- m_spritebuf[0] = std::make_unique<u32[]>(0x2000 / 4);
- m_spritebuf[1] = std::make_unique<u32[]>(0x2000 / 4);
-
- save_pointer(NAME(m_spritebuf[0]), 0x2000 / 4, 0);
- save_pointer(NAME(m_spritebuf[1]), 0x2000 / 4, 1);
-
-}
-
-WRITE_LINE_MEMBER(dreamwld_state::screen_vblank)
-{
- // rising edge
- if (state)
- {
- memcpy(m_spritebuf[1].get(), m_spritebuf[0].get(), 0x2000);
- memcpy(m_spritebuf[0].get(), m_spriteram, 0x2000);
- }
-}
-
-
-u32 dreamwld_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- tilemap_t *tmptilemap[2];
-
- const u32 scrolly[2]{ m_vregs[(0x000 / 4)] + 32, m_vregs[(0x008 / 4)] + 32 };
- const u32 scrollx[2]{ m_vregs[(0x004 / 4)] + 0, m_vregs[(0x00c / 4)] + 2 };
- const u32 layer_ctrl[2]{ m_vregs[0x010 / 4], m_vregs[0x014 / 4] };
-
- for (int layer = 0; layer < 2; layer++)
- {
- m_tilebank[layer] = (layer_ctrl[layer] >> 6) & 1;
-
- if (m_tilebank[layer] != m_tilebankold[layer])
- {
- m_tilebankold[layer] = m_tilebank[layer];
- for (int size = 0; size < 2; size++)
- m_tilemap[layer][size]->mark_all_dirty();
- }
-
- // Test mode only, Other size is enable?
- const int size = (layer_ctrl[layer] & 0x0400) >> 10;
- tmptilemap[layer] = m_tilemap[layer][size];
- const int row_mask = 0x3ff >> size;
-
- tmptilemap[layer]->set_scrolly(0, scrolly[layer]);
-
- if (layer_ctrl[layer] & 0x0300)
- {
- const int tile_rowscroll = (layer_ctrl[layer] & 0x0200) >> 7;
- if (m_old_linescroll[layer] != (layer_ctrl[layer] & 0x0300))
- {
- for (int i = 0; i < 2; i++)
- {
- m_tilemap[layer][i]->set_scroll_rows(((64 * 16) >> i));
- }
- m_old_linescroll[layer] = (layer_ctrl[layer] & 0x0300);
- }
- const u16* linebase = &m_lineram[(layer * 0x200) / 2];
- for (int i = 0; i < 256; i++) /* 256 screen lines */
- {
- /* per-line rowscroll */
- const int x0 = linebase[((i + 32) & 0xff) >> tile_rowscroll];
-
- tmptilemap[layer]->set_scrollx(
- (i + scrolly[layer]) & row_mask,
- scrollx[layer] + x0 );
- }
- }
- else
- {
- if (m_old_linescroll[layer] != (layer_ctrl[layer] & 0x0300))
- {
- for (int i = 0; i < 2; i++)
- {
- m_tilemap[layer][i]->set_scroll_rows(1);
- }
- m_old_linescroll[layer] = (layer_ctrl[layer] & 0x0300);
- }
-
- tmptilemap[layer]->set_scrollx(0, scrollx[layer]);
- }
- }
-
- tmptilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
- tmptilemap[1]->draw(screen, bitmap, cliprect, 0, 0);
-
- draw_sprites(bitmap, cliprect);
-
- return 0;
-}
-
-
-u32 dreamwld_state::protdata_r()
-{
- //static int count = 0;
-
- size_t protsize = m_prot->bytes();
- const u8 dat = m_prot->base()[m_protindex];
-
- if (!machine().side_effects_disabled())
- m_protindex = (m_protindex + 1) % protsize;
- //printf("protection read %04x %02x\n", count, dat);
- //count++;
-
- // real hw returns 00 after end of data, I haven't checked if it's possible to overflow the read counter
- // and read out the internal rom.
-
- return dat << 24;
-}
-
-void dreamwld_state::oki1_map(address_map &map)
-{
- map(0x00000, 0x2ffff).rom();
- map(0x30000, 0x3ffff).bankr("oki1bank");
-}
-
-void dreamwld_state::oki2_map(address_map &map)
-{
- map(0x00000, 0x2ffff).rom();
- map(0x30000, 0x3ffff).bankr("oki2bank");
-}
-
-template<int Chip>
-void dreamwld_state::okibank_w(u8 data)
-{
- m_okibank[Chip]->set_entry(data & 3);
-}
-
-
-void dreamwld_state::baryon_map(address_map &map)
-{
- map(0x000000, 0x1fffff).rom().nopw();
-
- map(0x400000, 0x401fff).ram().share("spriteram");
- map(0x600000, 0x601fff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette");
- map(0x800000, 0x801fff).rw(FUNC(dreamwld_state::vram_r<0>), FUNC(dreamwld_state::vram_w<0>)).share("vram_0");
- map(0x802000, 0x803fff).rw(FUNC(dreamwld_state::vram_r<1>), FUNC(dreamwld_state::vram_w<1>)).share("vram_1");
- map(0x804000, 0x8043ff).rw(FUNC(dreamwld_state::lineram_r), FUNC(dreamwld_state::lineram_w)).share("lineram"); // linescroll
- map(0x804400, 0x805fff).ram().share("vregs");
-
- map(0xc00000, 0xc00003).portr("INPUTS");
- map(0xc00004, 0xc00007).lr16(NAME([this] () { return u16(m_dsw->read()); }));
-
- map(0xc0000f, 0xc0000f).w(FUNC(dreamwld_state::okibank_w<0>)); // sfx
- map(0xc00018, 0xc00018).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // sfx
-
- map(0xc00030, 0xc00033).r(FUNC(dreamwld_state::protdata_r)); // it reads protection data (irq code) from here and puts it at ffd000
-
- map(0xfe0000, 0xffffff).ram().share("workram"); // work ram
-}
-
-void dreamwld_state::dreamwld_map(address_map &map)
-{
- baryon_map(map);
-
- map(0xc0002f, 0xc0002f).w(FUNC(dreamwld_state::okibank_w<1>)); // sfx
- map(0xc00028, 0xc00028).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // sfx
-}
-
-
-static INPUT_PORTS_START( dreamwld )
- PORT_START("INPUTS")
- PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0000fffc, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* "Book" (when you get one of them) */
- PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* "Jump" */
- PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* "Dig" */
- PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
- PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
- PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
- PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
- PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* "Book" (when you get one of them) */
- PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* "Jump" */
- PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* "Dig" */
- PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
- PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
- PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
- PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0002, "2" )
- PORT_DIPSETTING( 0x0003, "3" )
- PORT_DIPSETTING( 0x0001, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW2:6" ) /* see notes - "Ticket Payout" */
- PORT_DIPUNUSED_DIPLOC( 0x0040, IP_ACTIVE_LOW, "SW2:7" ) /* see notes - "Ticket Payout" */
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8") /* gives in fact 99 credits */
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW1:1" ) /* see notes - "Demo Sounds" */
- PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0a00, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
- PORT_DIPUNUSED_DIPLOC( 0x1000, IP_ACTIVE_LOW, "SW1:5" ) /* see notes - "Difficulty" */
- PORT_DIPUNUSED_DIPLOC( 0x2000, IP_ACTIVE_LOW, "SW1:6" ) /* see notes - "Difficulty" */
- PORT_DIPUNUSED_DIPLOC( 0x4000, IP_ACTIVE_LOW, "SW1:7" ) /* see notes - "Difficulty" */
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( baryon )
- PORT_INCLUDE(dreamwld)
-
- PORT_MODIFY("DSW")
- PORT_DIPNAME( 0x0004, 0x0004, "Bomb Stock" ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x0004, "2" )
- PORT_DIPSETTING( 0x0000, "3" )
- PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( rolcrush )
- PORT_START("INPUTS")
- PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0000fffc, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
- PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
- PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
- PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
- PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
- PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
- PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
- PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
-
- PORT_START("DSW")
- PORT_DIPUNUSED_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW2:1" ) /* As listed in service mode, but tested */
- PORT_DIPUNUSED_DIPLOC( 0x0002, IP_ACTIVE_LOW, "SW2:2" ) /* These might have some use, requires investigation of code */
- PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, IP_ACTIVE_LOW, "SW2:7" )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0a00, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
- PORT_DIPSETTING( 0x2000, "Level 1" )
- PORT_DIPSETTING( 0x1000, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x7000, "Level 4" )
- PORT_DIPSETTING( 0x6000, "Level 5" )
- PORT_DIPSETTING( 0x5000, "Level 6" )
- PORT_DIPSETTING( 0x4000, "Level 7" )
- PORT_DIPSETTING( 0x3000, "Level 8" )
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( cutefght )
- PORT_START("INPUTS")
- PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0000fffc, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
- PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
- PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
- PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
- PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
- PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
- PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
- PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
-
- PORT_START("DSW")
- PORT_DIPUNUSED_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW2:1" ) /* As listed in service mode, but tested */
- PORT_DIPUNUSED_DIPLOC( 0x0002, IP_ACTIVE_LOW, "SW2:2" ) /* These might have some use, requires investigation of code */
- PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW2:5" )
- PORT_DIPNAME( 0x0060, 0x0060, "Ticket Payout" ) PORT_DIPLOCATION("SW2:6,7")
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0020, "Little" )
- PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0040, "Much" )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1") /* Has no effect?? */
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0a00, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
- PORT_DIPSETTING( 0x2000, "Level 1" )
- PORT_DIPSETTING( 0x1000, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x7000, "Level 4" )
- PORT_DIPSETTING( 0x6000, "Level 5" )
- PORT_DIPSETTING( 0x5000, "Level 6" )
- PORT_DIPSETTING( 0x4000, "Level 7" )
- PORT_DIPSETTING( 0x3000, "Level 8" )
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( gaialast )
- PORT_START("INPUTS")
- PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0000fffc, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
- PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
- PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
- PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
- PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
- PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
- PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
- PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0003, 0x0001, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0002, "1" )
- PORT_DIPSETTING( 0x0003, "2" )
- PORT_DIPSETTING( 0x0001, "3" )
- PORT_DIPSETTING( 0x0000, "4" )
- PORT_DIPNAME( 0x0004, 0x0000, "Bomb Stock" ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x0004, "2" )
- PORT_DIPSETTING( 0x0000, "3" )
- PORT_DIPNAME( 0x0008, 0x0000, "Lock Vertical Scroll" ) PORT_DIPLOCATION("SW2:4") // if Off the game pans the screen up/down when you move up/down
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW2:6" ) // these are listed as ticket payout in test mode, but I believe
- PORT_DIPUNUSED_DIPLOC( 0x0040, IP_ACTIVE_LOW, "SW2:7" ) // that to be a leftover from some redemption game
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1") /* Title screen sounds only */
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0a00, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
- PORT_DIPSETTING( 0x2000, "Level 1" ) // listed as 'Level 3' in service mode
- PORT_DIPSETTING( 0x1000, "Level 2" ) // ^^
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x7000, "Level 4" )
- PORT_DIPSETTING( 0x6000, "Level 5" )
- PORT_DIPSETTING( 0x5000, "Level 6" )
- PORT_DIPSETTING( 0x4000, "Level 7" )
- PORT_DIPSETTING( 0x3000, "Level 8" ) // listed as 'Little' in service mode, but still clearly the most difficult
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-static const gfx_layout layout_16x16x4 =
-{
- 16,16,
- RGN_FRAC(1,1),
- 4,
- {STEP4(0,1)},
- {STEP16(0,4)},
- {STEP16(0,4*16)},
- 16*16*4
-};
-
-static GFXDECODE_START( gfx_dreamwld )
- GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 0x000, 0x40 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4, 0x800, 0x48 ) // [1] Layer 0 + 1
-GFXDECODE_END
-
-
-void dreamwld_state::machine_start()
-{
- if (m_okibank[0].found())
- {
- m_okibank[0]->configure_entries(0, 4, memregion("oki1")->base() + 0x30000, 0x10000);
- m_okibank[0]->set_entry(0);
- }
-
- if (m_okibank[1].found())
- {
- m_okibank[1]->configure_entries(0, 4, memregion("oki2")->base() + 0x30000, 0x10000);
- m_okibank[1]->set_entry(0);
- }
-
- save_item(NAME(m_protindex));
- save_item(NAME(m_tilebank));
- save_item(NAME(m_tilebankold));
-}
-
-void dreamwld_state::machine_reset()
-{
- m_tilebankold[0] = m_tilebankold[1] = -1;
- m_tilebank[0] = m_tilebank[1] = 0;
- m_protindex = 0;
-}
-
-
-void dreamwld_state::baryon(machine_config &config)
-{
- /* basic machine hardware */
- M68EC020(config, m_maincpu, XTAL(32'000'000)/2); /* 16MHz verified */
- m_maincpu->set_addrmap(AS_PROGRAM, &dreamwld_state::baryon_map);
- m_maincpu->set_vblank_int("screen", FUNC(dreamwld_state::irq4_line_hold));
-
- AT89C52(config, "mcu", XTAL(32'000'000)/2).set_disable(); /* AT89C52 or 87(C)52, unknown clock (value from docs), internal ROMs aren't dumped */
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(57.793);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
- screen.set_size(512,256);
- screen.set_visarea(0, 308-1, 0, 224-1);
- screen.set_screen_update(FUNC(dreamwld_state::screen_update));
- screen.screen_vblank().set(FUNC(dreamwld_state::screen_vblank));
- screen.set_palette(m_palette);
-
- PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x1000);
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_dreamwld);
-
- SPEAKER(config, "mono").front_center();
-
- okim6295_device &oki1(OKIM6295(config, "oki1", XTAL(32'000'000)/32, okim6295_device::PIN7_LOW)); /* 1MHz verified */
- oki1.add_route(ALL_OUTPUTS, "mono", 1.00);
- oki1.set_addrmap(0, &dreamwld_state::oki1_map);
-}
-
-void dreamwld_state::dreamwld(machine_config &config)
-{
- baryon(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &dreamwld_state::dreamwld_map);
-
- okim6295_device &oki2(OKIM6295(config, "oki2", XTAL(32'000'000)/32, okim6295_device::PIN7_LOW)); /* 1MHz verified */
- oki2.add_route(ALL_OUTPUTS, "mono", 1.00);
- oki2.set_addrmap(0, &dreamwld_state::oki2_map);
-}
-
-
-/*
-
-Baryon
-SemiCom, 1997
-
-PCB Layout
-----------
-
-|-------------------------------------------------|
-| 1SEMICOM 62256 ACTEL 8SEMICOM |
-|VOL M6295 62256 A1020B |
-| PAL PAL 32MHz |
-| 62256 62256 PAL |
-| 2SEMICOM 4SEMICOM 68EC020 PAL PAL |
-| 3SEMICOM 5SEMICOM PAL PAL |
-|J 62256 62256 PAL |
-|A PAL 27MHz |
-|M PAL |
-|M ACTEL M5M44260 |
-|A 6116 A1020B M5M44260 |
-| 6116 |
-| PAL |
-| 6264 PAL |
-| DSW1 6264 |
-| DSW2 P87C52 9SEMICOM |
-| 6SEMICOM 10SEMICOM 27C160* |
-|3* 4* 7SEMICOM 11SEMICOM 27C160* |
-|-------------------------------------------------|
-
-The PCB used for Baryon is an earlier version with a single OKI sound chip
-
-* denotes unpopulated components
- 3 & 4 are 10 pin headers
-
-*/
-
-ROM_START( baryon ) // this set had original SemiCom labels
- ROM_REGION( 0x200000, "maincpu", 0 )
- ROM_LOAD32_BYTE( "4_semicom", 0x000000, 0x040000, CRC(6c1cdad0) SHA1(40c437507076ce52ec2240049d6b4bef180b104a) ) // eprom type 27C020
- ROM_LOAD32_BYTE( "5_semicom", 0x000001, 0x040000, CRC(15917c9d) SHA1(6444be93e6a997070820e3c5a2e2e703e22883d9) )
- ROM_LOAD32_BYTE( "2_semicom", 0x000002, 0x040000, CRC(42b14a6c) SHA1(37e772a673732ef16767c14ad77a4faaa06d675a) )
- ROM_LOAD32_BYTE( "3_semicom", 0x000003, 0x040000, CRC(0ae6d86e) SHA1(410ad161688ec8516fe5ac7160a4a228dbb01936) )
-
- ROM_REGION( 0x02000, "mcu", 0 ) /* 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x02000 , NO_DUMP ) /* can't be dumped. */
-
- ROM_REGION( 0x6bd, "prot", 0 ) /* Protection data - from baryona set, assumed to be the same */
- ROM_LOAD( "protdata.bin", 0x000, 0x6bd, CRC(117f32a8) SHA1(837bea09d3e59ab9e13bd1103b1fc988edb361c0) ) /* extracted */
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples */
- ROM_LOAD( "1_semicom", 0x000000, 0x80000, CRC(e0349074) SHA1(f3d53d96dff586a0ad1632f52e5559cdce5ed0d8) ) // eprom type 27C040
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */
- ROM_LOAD( "10_semicom", 0x000000, 0x200000, CRC(28bf828f) SHA1(271390cc4f4015a3b69976f0d0527947f13c971b) ) // eprom type 27C160
- ROM_LOAD( "11_semicom", 0x200000, 0x200000, CRC(d0ff1bc6) SHA1(4aeb795222eedeeba770cf725122e989f97119b2) ) // eprom type 27C160
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* BG Tiles - decoded */
- ROM_LOAD( "8_semicom",0x000000, 0x200000, CRC(684012e6) SHA1(4cb60907184b67be130b8385e4336320c0f6e4a7) ) // eprom type 27C160
-
- ROM_REGION( 0x040000, "spritelut", 0 ) /* Sprite Code Lookup ... */
- ROM_LOAD16_BYTE( "6_semicom", 0x000000, 0x020000, CRC(fdbb08b0) SHA1(4b3ac56c4c8370b1434fb6a481fce0d9c52313e0) ) // eprom type 27C010
- ROM_LOAD16_BYTE( "7_semicom", 0x000001, 0x020000, CRC(c9d20480) SHA1(3f6170e8e08fb7508bd13c23f243ec6888a91f5e) ) // eprom type 27C010
-
- ROM_REGION( 0x10000, "unknown", 0 )
- ROM_LOAD( "9_semicom", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) ) // eprom type 27C512
-ROM_END
-
-ROM_START( baryona ) // replacment labels? no SemiCom logo
- ROM_REGION( 0x200000, "maincpu", 0 )
- ROM_LOAD32_BYTE( "4.bin", 0x000000, 0x040000, CRC(59e0df20) SHA1(ff12f4adcf731f6984db7d0fbdd7fcc71ce66aa4) )
- ROM_LOAD32_BYTE( "6.bin", 0x000001, 0x040000, CRC(abccbb3d) SHA1(01524f094543d872d775306024f51258a11e9240) )
- ROM_LOAD32_BYTE( "3.bin", 0x000002, 0x040000, CRC(046d4231) SHA1(05056efe5fec7f43c400f05278de516b01be0fdf) )
- ROM_LOAD32_BYTE( "5.bin", 0x000003, 0x040000, CRC(63d5e7cb) SHA1(269bf5ffe10f2464f823c4d377921e19cfb8bc46) )
-
- ROM_REGION( 0x02000, "mcu", 0 ) /* 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x02000 , NO_DUMP ) /* can't be dumped. */
-
- ROM_REGION( 0x6bd, "prot", 0 ) /* Protection data */
- ROM_LOAD( "protdata.bin", 0x000, 0x6bd, CRC(117f32a8) SHA1(837bea09d3e59ab9e13bd1103b1fc988edb361c0) ) /* extracted */
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples */
- ROM_LOAD( "1.bin", 0x000000, 0x80000, CRC(e0349074) SHA1(f3d53d96dff586a0ad1632f52e5559cdce5ed0d8) )
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */
- ROM_LOAD( "9.bin", 0x000000, 0x200000, CRC(28bf828f) SHA1(271390cc4f4015a3b69976f0d0527947f13c971b) )
- ROM_LOAD( "11.bin", 0x200000, 0x200000, CRC(d0ff1bc6) SHA1(4aeb795222eedeeba770cf725122e989f97119b2) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* BG Tiles - decoded */
- ROM_LOAD( "2.bin",0x000000, 0x200000, CRC(684012e6) SHA1(4cb60907184b67be130b8385e4336320c0f6e4a7) )
-
- ROM_REGION( 0x040000, "spritelut", 0 ) /* Sprite Code Lookup ... */
- ROM_LOAD16_BYTE( "8.bin", 0x000000, 0x020000, CRC(fdbb08b0) SHA1(4b3ac56c4c8370b1434fb6a481fce0d9c52313e0) )
- ROM_LOAD16_BYTE( "10.bin",0x000001, 0x020000, CRC(c9d20480) SHA1(3f6170e8e08fb7508bd13c23f243ec6888a91f5e) )
-
- ROM_REGION( 0x10000, "unknown", 0 )
- ROM_LOAD( "7.bin", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) )
-ROM_END
-
-/*
-
-Cute Fighter
-SemiCom, 1998
-
-PCB Layout
-----------
-
-|-------------------------------------------------|
-| M6295 SEMICOM1 62256 ACTEL SEMICOM12 |
-|VOL M6295 SEMICOM2 62256 A1020B |
-| PAL PAL 32MHz |
-| 62256 62256 PAL |
-| SEMICOM3 SEMICOM5 68EC020 PAL PAL |
-| SEMICOM4 SEMICOM6 PAL PAL |
-|J 62256 62256 PAL |
-|A PAL 27MHz |
-|M PAL |
-|M ACTEL M5M44260 |
-|A 6116 A40MX04 M5M44260 |
-| 6116 |
-| PAL |
-| 6264 PAL |
-| DSW1 6264 |
-| DSW2 8752 SEMICOM9 |
-| SEMICOM7 SEMICOM10 SEMICOM13 |
-|3* 4* SEMICOM8 SEMICOM11 SEMICOM14 |
-|-------------------------------------------------|
-
-A later version of the SemiCom 68020 hardware added a second OKI sound chip and sample rom
-
-Main CPU 68EC020FG16 @ 16MHz
-AD-65 (OKI MSM6295 rebadged) @ 1MHz
-Atmel AT89C52 MCU (secured) @ 16MHZ
-
-* 3 & 4 are 10 pin headers for unknown use. One might be used to drive the ticket dispenser
-
-*/
-
-ROM_START( cutefght )
- ROM_REGION( 0x200000, "maincpu", 0 )
- ROM_LOAD32_BYTE( "5_semicom", 0x000000, 0x080000, CRC(c14fd5dc) SHA1(f332105f5f249d693e792e7115f9e6cffb6db19f) )
- ROM_LOAD32_BYTE( "6_semicom", 0x000001, 0x080000, CRC(47440088) SHA1(c45503c4b5f271b430263ca079edeaaeadf5d9f6) )
- ROM_LOAD32_BYTE( "3_semicom", 0x000002, 0x080000, CRC(e7e7a866) SHA1(a31751f4164a427de59f0c76c9a8cb34370d8183) )
- ROM_LOAD32_BYTE( "4_semicom", 0x000003, 0x080000, CRC(476a3bf5) SHA1(5be1c70bbf4fcfc534b7f20bfceaa8da2e961330) )
-
- ROM_REGION( 0x02000, "mcu", 0 ) /* 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x02000 , NO_DUMP ) /* can't be dumped. */
-
- ROM_REGION( 0x1000, "prot", ROMREGION_ERASEFF ) /* Protection data */
- ROM_LOAD( "protdata.bin", 0x000, 0x701 , CRC(764c3c0e) SHA1(ae044d016850b730b2d97ccb7845b6b438c1e074) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples - 1st chip */
- ROM_LOAD( "2_semicom", 0x000000, 0x80000, CRC(694ddaf9) SHA1(f9138e7e1d8f771c4e69c17f27fb2b70fbee076a) )
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* OKI Samples - 2nd chip */
- ROM_LOAD( "1_semicom", 0x000000, 0x80000, CRC(fa3b6890) SHA1(7534931c96d6fa05fee840a7ea07b87e2e2acc50) )
-
- ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprite Tiles - decoded */
- ROM_LOAD( "10_semicom", 0x000000, 0x200000, CRC(62bf1e6e) SHA1(fb4b0db313e26687f0ebc6a8505a02e5348776da) )
- ROM_LOAD( "11_semicom", 0x200000, 0x200000, CRC(796f23a7) SHA1(adaa4c8525de428599f4489ecc8e966fed0d514d) )
- ROM_LOAD( "13_semicom", 0x400000, 0x200000, CRC(24222b3c) SHA1(08163863890c01728db89b8f4447841ecb4f4f62) )
- ROM_LOAD( "14_semicom", 0x600000, 0x200000, CRC(385b69d7) SHA1(8e7cae5589e354bea0b77b061af1d0c81d796f7c) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* BG Tiles - decoded */
- ROM_LOAD( "12_semicom",0x000000, 0x200000, CRC(45d29c22) SHA1(df719a061dcd14fb4388fb45dfee2054e56a1299) )
-
- ROM_REGION( 0x040000, "spritelut", 0 ) /* Sprite Code Lookup ... */
- ROM_LOAD16_BYTE( "7_semicom", 0x000000, 0x020000, CRC(39454102) SHA1(347e9242fd7e2092cfaacdce92691cf6024471ac) )
- ROM_LOAD16_BYTE( "8_semicom", 0x000001, 0x020000, CRC(fccb1b13) SHA1(fd4aec4a660f9913651fcc084e3f13eb0adbddd6) )
-
- ROM_REGION( 0x10000, "unknown", 0 ) /* ???? - not decoded seems to be in blocks of 0x41 bytes.. */
- ROM_LOAD( "9_semicom", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) )
-ROM_END
-
-/*
-
-Rolling Crush
-Trust / SemiCom, 1999
-
-PCB Layout
-----------
-
-|-------------------------------------------------|
-| M6295* 27C40* 62256 ACTEL ROM10 |
-|VOL M6295 ROM6 62256 A40MX04 |
-| PAL PAL 32MHz |
-| 62256 62256 PAL |
-| ROM2 ROM4 68EC020 PAL PAL |
-| ROM1 ROM3 PAL PAL |
-|J 62256 62256 PAL |
-|A PAL 27MHz |
-|M PAL |
-|M ACTEL M5M44260 |
-|A 6116 A40MX04 M5M44260 |
-| 6116 |
-| PAL |
-| 6264 PAL |
-| DSW2 6264 |
-| DSW2 8752 ROM9 |
-| ROM7 ROM8 27C160* |
-|3* 4* ROM6 27C160* 27C160* |
-|-------------------------------------------------|
-
-Same PCB as Cute Fighter / Dream World PCB except one OKI M6295 and it's sample rom are unpopulated
-
-* denotes unpopulated components
- 3 & 4 are 10 pin headers
-
-Main CPU 68EC020FG16 @ 16MHz
-AD-65 (OKI MSM6295 rebadged) @ 1MHz
-Atmel AT89C52 MCU (secured) @ 16MHZ
-
-V-SYNC @57.793 Hz
-H-SYNC @15.19 - 15.27KHz (floating)
-
-*/
-
-ROM_START( rolcrush )
- ROM_REGION( 0x200000, "maincpu", 0 )
- ROM_LOAD32_BYTE( "mx27c2000_4.bin", 0x000000, 0x040000, CRC(c47f0540) SHA1(76712f41046e5852ad6be6dbf171cf34471e2409) )
- ROM_LOAD32_BYTE( "mx27c2000_3.bin", 0x000001, 0x040000, CRC(7af59294) SHA1(f36b3d100e0d963bf51b7fbe8c4a0bdcf2180ba0) )
- ROM_LOAD32_BYTE( "mx27c2000_2.bin", 0x000002, 0x040000, CRC(5eb24adb) SHA1(0329a02e18490bfe72ff34a64722d7316814720b) )
- ROM_LOAD32_BYTE( "mx27c2000_1.bin", 0x000003, 0x040000, CRC(a37e15b2) SHA1(f0fc945a894d6ed58daf05390a17051d0f3cda20) )
-
- ROM_REGION( 0x02000, "mcu", 0 ) /* 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x02000 , NO_DUMP ) /* can't be dumped. */
-
- ROM_REGION( 0x10000, "prot", ROMREGION_ERASE00 ) /* Protection data */
- ROM_LOAD( "protdata.bin", 0x000, 0x745, CRC(06b8a880) SHA1(b7d4bf26d34cb544825270c2c474bbd4c81a6c9e) ) /* extracted */
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples - 1st chip*/
- ROM_LOAD( "mx27c4000_5.bin", 0x000000, 0x80000, CRC(7afa6adb) SHA1(d4049e1068a5f7abf0e14d0b9fbbbc6dfb5d0170) )
-
- ROM_REGION( 0x80000, "oki2", ROMREGION_ERASE00 ) /* OKI Samples - 2nd chip (neither OKI or rom is present, empty sockets) */
- /* not populated */
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */
- ROM_LOAD( "m27c160.8.bin", 0x000000, 0x200000, CRC(a509bc36) SHA1(aaa008e07e4b24ff9dbcee5925d6516d1662931c) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* BG Tiles - decoded */
- ROM_LOAD( "m27c160.10.bin",0x000000, 0x200000, CRC(739b0cb0) SHA1(a7cc48502d84218586afa7276fa7ba759242f05e) )
-
- ROM_REGION( 0x040000, "spritelut", 0 ) /* Sprite Code Lookup ... */
- ROM_LOAD16_BYTE( "tms27c010_7.bin", 0x000000, 0x020000, CRC(4cb84384) SHA1(8dd02e2d9829c15cb19654779d2217a7d53d5971) )
- ROM_LOAD16_BYTE( "tms27c010_6.bin", 0x000001, 0x020000, CRC(0c9d197a) SHA1(da057c8d08f41c4a5b9cb4f8f00de7e1461d98f0) )
-
- ROM_REGION( 0x10000, "unknown", 0 ) /* ???? - not decoded seems to be in blocks of 0x41 bytes.. */
- ROM_LOAD( "mx27c512.9.bin", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) )
-ROM_END
-
-
-ROM_START( rolcrusha )
- ROM_REGION( 0x200000, "maincpu", 0 )
- ROM_LOAD32_BYTE( "4", 0x000000, 0x040000, CRC(b6afbc05) SHA1(543bd3d48d03df3500f2fa2c8ef8d9e98a8ebe1f) )
- ROM_LOAD32_BYTE( "3", 0x000001, 0x040000, CRC(ecb2f9da) SHA1(6892601bd279f7968d46798db9cbbe575f63bff2) )
- ROM_LOAD32_BYTE( "2", 0x000002, 0x040000, CRC(7b291ba9) SHA1(9629c71b00317c68394b836395c3a81bdd32273a) )
- ROM_LOAD32_BYTE( "1", 0x000003, 0x040000, CRC(ef23ccf3) SHA1(14dcf8bfca991f6aa9b20236c879ae715a009ca2) )
-
- ROM_REGION( 0x02000, "mcu", 0 ) /* 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x02000 , NO_DUMP ) /* can't be dumped. */
-
- ROM_REGION( 0x10000, "prot", ROMREGION_ERASE00 ) /* Protection data */
- ROM_LOAD( "protdata.bin", 0x000, 0x745, CRC(06b8a880) SHA1(b7d4bf26d34cb544825270c2c474bbd4c81a6c9e) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples - 1st chip*/
- ROM_LOAD( "5", 0x000000, 0x80000, CRC(7afa6adb) SHA1(d4049e1068a5f7abf0e14d0b9fbbbc6dfb5d0170) )
-
- ROM_REGION( 0x80000, "oki2", ROMREGION_ERASE00 ) /* OKI Samples - 2nd chip (neither OKI or rom is present, empty sockets) */
- /* not populated */
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */
- ROM_LOAD( "8", 0x000000, 0x200000, CRC(01446191) SHA1(b106ed6c085fad617552972db78866a3346e4553) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* BG Tiles - decoded */
- ROM_LOAD( "10",0x000000, 0x200000, CRC(8cb75392) SHA1(8b274cd13876e65fffc157d8459331032c3c16db) )
-
- ROM_REGION( 0x040000, "spritelut", 0 ) /* Sprite Code Lookup ... */
- ROM_LOAD16_BYTE( "7", 0x000000, 0x020000, CRC(23d641e4) SHA1(1df8afb5c0118e8588d301db64f6adeb9ae40a79) )
- ROM_LOAD16_BYTE( "6", 0x000001, 0x020000, CRC(5934dac9) SHA1(2adc63746b9a921a15b8f8461af451ad82add721) )
-
- ROM_REGION( 0x10000, "unknown", 0 ) /* ???? - not decoded seems to be in blocks of 0x41 bytes.. */
- ROM_LOAD( "9", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) )
-ROM_END
-
-
-
-/*
-
-Dream World
-SemiCom, 2000
-
-PCB Layout
-----------
-
-|-------------------------------------------------|
-| M6295 ROM5 62256 ACTEL ROM10 |
-|VOL M6295 ROM6 62256 A40MX04 |
-| PAL PAL 32MHz |
-| 62256 62256 PAL |
-| ROM1 ROM3 68EC020 PAL PAL |
-| ROM2 ROM4 PAL PAL |
-|J 62256 62256 PAL |
-|A PAL 27MHz |
-|M PAL |
-|M ACTEL M5M44260 |
-|A 6116 A40MX04 M5M44260 |
-| 6116 |
-| PAL |
-| 6264 PAL |
-| DSW1 6264 |
-| DSW2 8752 ROM11 |
-| ROM7 ROM9 27C160* |
-|3* 4* ROM8 27C160* 27C160* |
-|-------------------------------------------------|
-
-* denotes unpopulated components
- 3 & 4 are 10 pin headers
-
-Notes:
- 68020 @ 16.0MHz [32/2]
- M6295 (both) @ 1.0MHz [32/32]. pin 7 LOW
- 8752 @ 16.0MHz [32/2]
- HSync @ 15.2kHz
- VSync @ 58Hz
-*/
-
-ROM_START( dreamwld )
- ROM_REGION( 0x200000, "maincpu", 0 )
- ROM_LOAD32_BYTE( "3.bin", 0x000000, 0x040000, CRC(e8f7ae78) SHA1(cfd393cec6dec967c82e1131547b7e7fdc5d814f) )
- ROM_LOAD32_BYTE( "4.bin", 0x000001, 0x040000, CRC(3ef5d51b) SHA1(82a00b4ff7155f6d5553870dfd510fed9469d9b5) )
- ROM_LOAD32_BYTE( "1.bin", 0x000002, 0x040000, CRC(35c94ee5) SHA1(3440a65a807622b619c97bc2a88fd7d875c26f66) )
- ROM_LOAD32_BYTE( "2.bin", 0x000003, 0x040000, CRC(5409e7fc) SHA1(2f94a6a8e4c94b36b43f0b94d58525f594339a9d) )
-
- ROM_REGION( 0x02000, "mcu", 0 ) /* 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x02000 , NO_DUMP ) /* can't be dumped. */
-
- ROM_REGION( 0x6c9, "prot", 0 ) /* Protection data */
- /* The MCU supplies this data.
- The 68k reads it through a port, taking the size and destination write address from the level 1
- and level 2 irq positions in the 68k vector table (there is code to check that they haven't been
- modified!) It then decodes the data using the rom checksum previously calculated and puts it in
- ram. The interrupt vectors point at the code placed in RAM. */
- ROM_LOAD( "protdata.bin", 0x000, 0x6c9 , CRC(f284b2fd) SHA1(9e8096c8aa8a288683f002311b38787b120748d1) ) /* extracted */
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples - 1st chip */
- ROM_LOAD( "5.bin", 0x000000, 0x80000, CRC(9689570a) SHA1(4414233da8f46214ca7e9022df70953922a63aa4) )
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* OKI Samples - 2nd chip */
- ROM_LOAD( "6.bin", 0x000000, 0x80000, CRC(c8b91f30) SHA1(706004ca56d0a74bc7a3dfd73a21cdc09eb90f05) )
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */
- ROM_LOAD( "9.bin", 0x000000, 0x200000, CRC(fa84e3af) SHA1(5978737d348fd382f4ec004d29870656c864d137) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* BG Tiles - decoded */
- ROM_LOAD( "10.bin",0x000000, 0x200000, CRC(3553e4f5) SHA1(c335494f4a12a01a88e7cd578cae922954303cfd) )
-
- ROM_REGION( 0x040000, "spritelut", 0 ) /* Sprite Code Lookup ... */
- ROM_LOAD16_BYTE( "8.bin", 0x000000, 0x020000, CRC(8d570df6) SHA1(e53e4b099c64eca11d027e0083caa101fcd99959) )
- ROM_LOAD16_BYTE( "7.bin", 0x000001, 0x020000, CRC(a68bf35f) SHA1(f48540a5415a7d9723ca6e7e03cab039751dce17) )
-
- ROM_REGION( 0x10000, "unknown", 0 ) /* ???? - not decoded seems to be in blocks of 0x41 bytes.. */
- ROM_LOAD( "11.bin", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) )
-ROM_END
-
-/*
-
-Gaia - The Last Choice of Earth
-SemiCom / XESS, 1999
-
-PCB Layout
-----------
-
-|-------------------------------------------------|
-| M6295* 27C40* 62256 ACTEL ROM8 |
-|VOL M6295 ROM1 62256 A40MX04 |
-| PAL PAL 32MHz |
-| 62256 62256 PAL |
-| ROM2 ROM4 68EC020 PAL PAL |
-| ROM3 ROM5 PAL PAL |
-|J 62256 62256 PAL |
-|A PAL 27MHz |
-|M PAL |
-|M ACTEL M5M44260 |
-|A 6116 A40MX04 M5M44260 |
-| 6116 |
-| PAL |
-| 6264 PAL |
-| DSW2 6264 |
-| DSW2 8752 ROM9 |
-| ROM6 ROM10 ROM12 |
-|3* 4* ROM7 ROM11 27C160* |
-|-------------------------------------------------|
-
-Same PCB as Cute Fighter / Dream World PCB except one OKI M6295 and it's sample rom are unpopulated
-IE: Same configuration as Rolling Crush
-
-No labels on any of the roms.
-
-Program roms 2 through 5 are MX27C2000
-Rom 1 is a TMS 27C040
-Rom 9 is a MX26C512
-Roms 6 & 7 are MX26C1000
-Roms 8 and 10 through 12 are ST M27C160
-
-* denotes unpopulated components
- 3 & 4 are 10 pin headers
-
-Main CPU 68EC020FG16 @ 16MHz [32/2]
-AD-65 (OKI MSM6295 rebadged) @ 1MHz [32/32]. pin 7 LOW
-Atmel AT89C52 MCU (secured) @ 16MHZ [32/2]
-
-*/
-
-ROM_START( gaialast )
- ROM_REGION( 0x200000, "maincpu", 0 )
- ROM_LOAD32_BYTE( "4", 0x000000, 0x040000, CRC(10cc2dee) SHA1(0719333ff391ee7935c6e4cea7e8e75369aeb9d0) )
- ROM_LOAD32_BYTE( "5", 0x000001, 0x040000, CRC(c55f6f11) SHA1(13d543b0770bebdd4c6e064b56fd6cc2ec929566) )
- ROM_LOAD32_BYTE( "2", 0x000002, 0x040000, CRC(549e594a) SHA1(728c6b51cc478ad7251bcbe6d7f4f4e6a2ee4a4e) )
- ROM_LOAD32_BYTE( "3", 0x000003, 0x040000, CRC(a8e845d8) SHA1(f8c7e702bd747a22e76c861effec4cd3cd2f3fc9) )
-
- ROM_REGION( 0x02000, "mcu", 0 ) /* 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x02000 , NO_DUMP ) /* can't be dumped. */
-
- ROM_REGION( 0x6c9, "prot", ROMREGION_ERASEFF ) /* Protection data */
- ROM_LOAD( "protdata.bin", 0x000, 0x6c9 , CRC(d3403b7b) SHA1(712a7f27fc41b632d584237f7641e8ae20035111) )
-
- ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples */
- ROM_LOAD( "1", 0x000000, 0x80000, CRC(2dbad410) SHA1(bb788ea14bb605be9af9c8f8adec94ad1c17ab55) )
-
- ROM_REGION( 0x80000, "oki2", ROMREGION_ERASE00 ) /* OKI Samples - 2nd chip (neither OKI or rom is present, empty sockets) */
- /* not populated */
-
- ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprite Tiles - decoded */
- ROM_LOAD( "10", 0x000000, 0x200000, CRC(5822ef93) SHA1(8ce22c30f8027f35c5f72eb6ce57a74540dd55da) )
- ROM_LOAD( "11", 0x200000, 0x200000, CRC(f4f5770d) SHA1(ac850483cae321d286a09fe93ce7e49725722de0) )
- ROM_LOAD( "12", 0x400000, 0x200000, CRC(a1f04571) SHA1(c29b3b3c209b63ad44ebfa5afb4b1832965e0936) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* BG Tiles - decoded */
- ROM_LOAD( "8",0x000000, 0x200000, CRC(32d16985) SHA1(2b7a20eea09e7d2debd42469e9f6ae49310f5747) )
-
- ROM_REGION( 0x040000, "spritelut", 0 ) /* Sprite Code Lookup ... */
- ROM_LOAD16_BYTE( "6", 0x000000, 0x020000, CRC(5c82feed) SHA1(1857afecf1081adf015ade1efb5930e3a7deef78) )
- ROM_LOAD16_BYTE( "7", 0x000001, 0x020000, CRC(9d7f04ae) SHA1(55fb82626060fe0ddc03ed3ef402ccf998063d27) )
-
- ROM_REGION( 0x10000, "unknown", 0 )
- ROM_LOAD( "9", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) )
-ROM_END
-
-GAME( 1997, baryon, 0, baryon, baryon, dreamwld_state, empty_init, ROT270, "SemiCom / Tirano", "Baryon - Future Assault (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1997, baryona, baryon, baryon, baryon, dreamwld_state, empty_init, ROT270, "SemiCom / Tirano", "Baryon - Future Assault (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1998, cutefght, 0, dreamwld, cutefght, dreamwld_state, empty_init, ROT0, "SemiCom", "Cute Fighter", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, rolcrush, 0, baryon, rolcrush, dreamwld_state, empty_init, ROT0, "SemiCom / Exit (Trust license)", "Rolling Crush (version 1.07.E - 1999/02/11, Trust license)", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, rolcrusha,rolcrush, baryon, rolcrush, dreamwld_state, empty_init, ROT0, "SemiCom / Exit", "Rolling Crush (version 1.03.E - 1999/01/29)", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, gaialast, 0, baryon, gaialast, dreamwld_state, empty_init, ROT0, "SemiCom / XESS", "Gaia - The Last Choice of Earth", MACHINE_SUPPORTS_SAVE )
-GAME( 2000, dreamwld, 0, dreamwld, dreamwld, dreamwld_state, empty_init, ROT0, "SemiCom", "Dream World", MACHINE_SUPPORTS_SAVE )