diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2020-02-03 18:09:21 +0100 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2020-02-03 18:09:21 +0100 |
commit | 032c857d44995112bcdcb7543045040b511f10b2 (patch) | |
tree | 343b360bb37dfecf3e3b1c0f3eda92f287ce15b3 /src/mame/drivers/sfbonus.cpp | |
parent | 8cf316b17f81b75ebff01056c05cf06307ba76b0 (diff) |
sfbonus.cpp: templates, arrays, configured banking and save state support (nw)
Diffstat (limited to 'src/mame/drivers/sfbonus.cpp')
-rw-r--r-- | src/mame/drivers/sfbonus.cpp | 857 |
1 files changed, 384 insertions, 473 deletions
diff --git a/src/mame/drivers/sfbonus.cpp b/src/mame/drivers/sfbonus.cpp index 24bd26bd9ec..0bdd46d5dd2 100644 --- a/src/mame/drivers/sfbonus.cpp +++ b/src/mame/drivers/sfbonus.cpp @@ -9,7 +9,7 @@ Notes: - The games don't cope well with corrupt NVRAM, and may fail to boot completely(!) -- The code to handle the 'multple' reel layers is dubious. Rowscroll values are always used +- The code to handle the 'multiple' reel layers is dubious. Rowscroll values are always used based on only one of the tilemaps displayed in that screen region. - There are still priority bugs in Tiger Hook, I thought I'd fixed these by doing the single @@ -300,6 +300,7 @@ public: m_2c01_regs(*this, "2c01_regs"), m_3000_regs(*this, "3000_regs"), m_3800_regs(*this, "3800_regs"), + m_mainbank(*this, "mainbank"), m_lamps(*this, "lamp%u", 0U) { } @@ -345,7 +346,7 @@ public: void init_pirpok2v2(); void init_parrot3v2(); void init_fb4v3(); - void init_sfbonus_common(); + void init_common(); void init_seawld(); void init_moneymacv(); void init_fb3g(); @@ -424,18 +425,18 @@ public: void init_mcircus(); private: - DECLARE_WRITE8_MEMBER(sfbonus_videoram_w); - DECLARE_WRITE8_MEMBER(sfbonus_bank_w); - DECLARE_READ8_MEMBER(sfbonus_2800_r); - DECLARE_READ8_MEMBER(sfbonus_2801_r); - DECLARE_READ8_MEMBER(sfbonus_2c00_r); - DECLARE_READ8_MEMBER(sfbonus_2c01_r); - DECLARE_READ8_MEMBER(sfbonus_3800_r); - DECLARE_WRITE8_MEMBER(sfbonus_1800_w); - DECLARE_WRITE8_MEMBER(sfbonus_3800_w); - DECLARE_WRITE8_MEMBER(sfbonus_3000_w); - DECLARE_WRITE8_MEMBER(sfbonus_2801_w); - DECLARE_WRITE8_MEMBER(sfbonus_2c01_w); + DECLARE_WRITE8_MEMBER(videoram_w); + DECLARE_WRITE8_MEMBER(bank_w); + DECLARE_READ8_MEMBER(_2800_r); + DECLARE_READ8_MEMBER(_2801_r); + DECLARE_READ8_MEMBER(_2c00_r); + DECLARE_READ8_MEMBER(_2c01_r); + DECLARE_READ8_MEMBER(_3800_r); + DECLARE_WRITE8_MEMBER(_1800_w); + DECLARE_WRITE8_MEMBER(_3800_w); + DECLARE_WRITE8_MEMBER(_3000_w); + DECLARE_WRITE8_MEMBER(_2801_w); + DECLARE_WRITE8_MEMBER(_2c01_w); void sfbonus_bitswap(uint8_t xor0, uint8_t b00, uint8_t b01, uint8_t b02, uint8_t b03, uint8_t b04, uint8_t b05, uint8_t b06,uint8_t b07, uint8_t xor1, uint8_t b10, uint8_t b11, uint8_t b12, uint8_t b13, uint8_t b14, uint8_t b15, uint8_t b16,uint8_t b17, @@ -445,20 +446,16 @@ private: uint8_t xor5, uint8_t b50, uint8_t b51, uint8_t b52, uint8_t b53, uint8_t b54, uint8_t b55, uint8_t b56,uint8_t b57, uint8_t xor6, uint8_t b60, uint8_t b61, uint8_t b62, uint8_t b63, uint8_t b64, uint8_t b65, uint8_t b66,uint8_t b67, uint8_t xor7, uint8_t b70, uint8_t b71, uint8_t b72, uint8_t b73, uint8_t b74, uint8_t b75, uint8_t b76,uint8_t b77 ); - TILE_GET_INFO_MEMBER(get_sfbonus_tile_info); - TILE_GET_INFO_MEMBER(get_sfbonus_reel_tile_info); - TILE_GET_INFO_MEMBER(get_sfbonus_reel2_tile_info); - TILE_GET_INFO_MEMBER(get_sfbonus_reel3_tile_info); - TILE_GET_INFO_MEMBER(get_sfbonus_reel4_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info); + template<uint8_t Reel> TILE_GET_INFO_MEMBER(get_reel_tile_info); void draw_reel_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int category); - uint32_t screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void ramdac_map(address_map &map); void sfbonus_io(address_map &map); void sfbonus_map(address_map &map); - virtual void machine_start() override { m_lamps.resolve(); } - virtual void machine_reset() override; + virtual void machine_start() override; virtual void video_start() override; required_device<cpu_device> m_maincpu; @@ -473,17 +470,13 @@ private: required_shared_ptr<uint8_t> m_3000_regs; required_shared_ptr<uint8_t> m_3800_regs; + required_memory_bank m_mainbank; + std::unique_ptr<bitmap_ind16> m_temp_reel_bitmap; tilemap_t *m_tilemap; - tilemap_t *m_reel_tilemap; - tilemap_t *m_reel2_tilemap; - tilemap_t *m_reel3_tilemap; - tilemap_t *m_reel4_tilemap; + tilemap_t *m_reel_tilemap[4]; std::unique_ptr<uint8_t[]> m_tilemap_ram; - std::unique_ptr<uint8_t[]> m_reel_ram; - std::unique_ptr<uint8_t[]> m_reel2_ram; - std::unique_ptr<uint8_t[]> m_reel3_ram; - std::unique_ptr<uint8_t[]> m_reel4_ram; + std::unique_ptr<uint8_t[]> m_reel_ram[4]; std::unique_ptr<uint8_t[]> m_videoram; output_finder<6> m_lamps; }; @@ -805,7 +798,7 @@ INPUT_PORTS_END -TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_tile_info) +TILE_GET_INFO_MEMBER(sfbonus_state::get_tile_info) { int code = m_tilemap_ram[(tile_index*2)+0] | (m_tilemap_ram[(tile_index*2)+1]<<8); int flipx = (m_tilemap_ram[(tile_index*2)+1] & 0x80)>>7; @@ -817,41 +810,14 @@ TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_tile_info) TILE_FLIPYX(flipx | flipy)); } -TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel_tile_info) -{ - int code = m_reel_ram[(tile_index*2)+0] | (m_reel_ram[(tile_index*2)+1]<<8); - int flipx = (m_reel_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = 0;//(m_reel_ram[(tile_index*2)+1] & 0x40)>>5; - - int priority = (m_reel_ram[(tile_index*2)+1] & 0x40)>>6; - - SET_TILE_INFO_MEMBER(1, - code, - priority, // colour abused as priority - TILE_FLIPYX(flipx | flipy)); -} - -TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel2_tile_info) -{ - int code = m_reel2_ram[(tile_index*2)+0] | (m_reel2_ram[(tile_index*2)+1]<<8); - int flipx = (m_reel2_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = 0;//(m_reel2_ram[(tile_index*2)+1] & 0x40)>>5; - - int priority = (m_reel2_ram[(tile_index*2)+1] & 0x40)>>6; - - SET_TILE_INFO_MEMBER(1, - code, - priority, // colour abused as priority - TILE_FLIPYX(flipx | flipy)); -} - -TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel3_tile_info) +template<uint8_t Reel> +TILE_GET_INFO_MEMBER(sfbonus_state::get_reel_tile_info) { - int code = m_reel3_ram[(tile_index*2)+0] | (m_reel3_ram[(tile_index*2)+1]<<8); - int flipx = (m_reel3_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = 0;//(m_reel3_ram[(tile_index*2)+1] & 0x40)>>5; + int code = m_reel_ram[Reel][(tile_index*2)+0] | (m_reel_ram[Reel][(tile_index*2)+1]<<8); + int flipx = (m_reel_ram[Reel][(tile_index*2)+1] & 0x80)>>7; + int flipy = 0;//(m_reel_ram[Reel][(tile_index*2)+1] & 0x40)>>5; - int priority = (m_reel3_ram[(tile_index*2)+1] & 0x40)>>6; + int priority = (m_reel_ram[Reel][(tile_index*2)+1] & 0x40)>>6; SET_TILE_INFO_MEMBER(1, code, @@ -859,22 +825,7 @@ TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel3_tile_info) TILE_FLIPYX(flipx | flipy)); } -TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel4_tile_info) -{ - int code = m_reel4_ram[(tile_index*2)+0] | (m_reel4_ram[(tile_index*2)+1]<<8); - int flipx = (m_reel4_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = 0;//(m_reel4_ram[(tile_index*2)+1] & 0x40)>>5; - - int priority = (m_reel4_ram[(tile_index*2)+1] & 0x40)>>6; - - SET_TILE_INFO_MEMBER(1, - code, - priority, // colour abused as priority - TILE_FLIPYX(flipx | flipy)); -} - - -WRITE8_MEMBER(sfbonus_state::sfbonus_videoram_w) +WRITE8_MEMBER(sfbonus_state::videoram_w) { if (offset<0x4000) /* 0x0000 - 0x3fff */ { @@ -885,29 +836,29 @@ WRITE8_MEMBER(sfbonus_state::sfbonus_videoram_w) { offset-=0x4000; - m_reel_ram[offset] = data; - m_reel_tilemap->mark_tile_dirty(offset/2); + m_reel_ram[0][offset] = data; + m_reel_tilemap[0]->mark_tile_dirty(offset/2); } else if (offset<0x5000) /* 0x4800 - 0x4fff */ { offset-=0x4800; - m_reel2_ram[offset] = data; - m_reel2_tilemap->mark_tile_dirty(offset/2); + m_reel_ram[1][offset] = data; + m_reel_tilemap[1]->mark_tile_dirty(offset/2); } else if (offset<0x5800) /* 0x5000 - 0x57ff */ { offset-=0x5000; - m_reel3_ram[offset] = data; - m_reel3_tilemap->mark_tile_dirty(offset/2); + m_reel_ram[2][offset] = data; + m_reel_tilemap[2]->mark_tile_dirty(offset/2); } else if (offset<0x6000) /* 0x5800 - 0x5fff */ { offset-=0x5800; - m_reel4_ram[offset] = data; - m_reel4_tilemap->mark_tile_dirty(offset/2); + m_reel_ram[3][offset] = data; + m_reel_tilemap[3]->mark_tile_dirty(offset/2); } else if (offset<0x8000) { @@ -929,33 +880,27 @@ void sfbonus_state::video_start() { m_temp_reel_bitmap = std::make_unique<bitmap_ind16>(1024,512); - m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64); - m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16); - m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16); - m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16); - m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel4_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16); + m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64); + m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16); + m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16); + m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16); + m_reel_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_reel_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16); m_tilemap->set_transparent_pen(0); - m_reel_tilemap->set_transparent_pen(255); - m_reel2_tilemap->set_transparent_pen(255); - m_reel3_tilemap->set_transparent_pen(255); - m_reel4_tilemap->set_transparent_pen(255); + + for (uint8_t i = 0; i < 4; i++) + m_reel_tilemap[i]->set_transparent_pen(255); m_tilemap->set_scroll_rows(64); - m_reel_tilemap->set_scroll_cols(64); - m_reel2_tilemap->set_scroll_cols(64); - m_reel3_tilemap->set_scroll_cols(64); - m_reel4_tilemap->set_scroll_cols(64); + for (uint8_t i = 0; i < 4; i++) + m_reel_tilemap[i]->set_scroll_cols(64); } void sfbonus_state::draw_reel_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int category) { - int zz; - int i; - int startclipmin; const rectangle &visarea = screen.visible_area(); uint8_t* selectbase = &m_videoram[0x600]; uint8_t* bg_scroll = &m_videoram[0x000]; @@ -965,26 +910,26 @@ void sfbonus_state::draw_reel_layer(screen_device &screen, bitmap_ind16 &bitmap, globalyscrollreels += 8; globalxscrollreels += 8; - startclipmin = 0; + int startclipmin = 0; - for (i= 0;i < 0x80;i++) + for (int i = 0; i < 0x80; i++) { int scroll; scroll = bg_scroll[(i*2)+0x000] | (bg_scroll[(i*2)+0x001]<<8); - m_reel_tilemap->set_scrolly(i, scroll + globalyscrollreels ); + m_reel_tilemap[0]->set_scrolly(i, scroll + globalyscrollreels ); scroll = bg_scroll[(i*2)+0x080] | (bg_scroll[(i*2)+0x081]<<8); - m_reel2_tilemap->set_scrolly(i, scroll + globalyscrollreels); + m_reel_tilemap[1]->set_scrolly(i, scroll + globalyscrollreels); scroll = bg_scroll[(i*2)+0x100] | (bg_scroll[(i*2)+0x101]<<8); - m_reel3_tilemap->set_scrolly(i, scroll + globalyscrollreels); + m_reel_tilemap[2]->set_scrolly(i, scroll + globalyscrollreels); scroll = bg_scroll[(i*2)+0x180] | (bg_scroll[(i*2)+0x181]<<8); - m_reel4_tilemap->set_scrolly(i, scroll + globalyscrollreels); + m_reel_tilemap[3]->set_scrolly(i, scroll + globalyscrollreels); } // printf("------------\n"); - for (zz=0;zz<288;zz++) + for (int zz = 0; zz < 288; zz++) { rectangle clip; @@ -1008,91 +953,78 @@ void sfbonus_state::draw_reel_layer(screen_device &screen, bitmap_ind16 &bitmap, { rowscroll = reels_rowscroll[((line/8)*2)+0x000] | (reels_rowscroll[((line/8)*2)+0x001]<<8); xxxscroll = globalxscrollreels + rowscroll; - m_reel_tilemap->set_scrollx(0, xxxscroll ); - m_reel2_tilemap->set_scrollx(0, xxxscroll ); - m_reel3_tilemap->set_scrollx(0, xxxscroll ); - m_reel4_tilemap->set_scrollx(0, xxxscroll ); + for (uint8_t i = 0; i < 4; i++) + m_reel_tilemap[i]->set_scrollx(0, xxxscroll ); } else if (rowenable==0x1) { rowscroll = reels_rowscroll[((line/8)*2)+0x080] | (reels_rowscroll[((line/8)*2)+0x081]<<8); xxxscroll = globalxscrollreels + rowscroll; - m_reel_tilemap->set_scrollx(0, xxxscroll ); - m_reel2_tilemap->set_scrollx(0, xxxscroll ); - m_reel3_tilemap->set_scrollx(0, xxxscroll ); - m_reel4_tilemap->set_scrollx(0, xxxscroll ); + for (uint8_t i = 0; i < 4; i++) + m_reel_tilemap[i]->set_scrollx(0, xxxscroll ); } else if (rowenable==0x2) { rowscroll = reels_rowscroll[((line/8)*2)+0x100] | (reels_rowscroll[((line/8)*2)+0x101]<<8); xxxscroll = globalxscrollreels + rowscroll; - m_reel_tilemap->set_scrollx(0, xxxscroll ); - m_reel2_tilemap->set_scrollx(0, xxxscroll ); - m_reel3_tilemap->set_scrollx(0, xxxscroll ); - m_reel4_tilemap->set_scrollx(0, xxxscroll ); + for (uint8_t i = 0; i < 4; i++) + m_reel_tilemap[i]->set_scrollx(0, xxxscroll ); } else if (rowenable==0x3) { rowscroll = reels_rowscroll[((line/8)*2)+0x180] | (reels_rowscroll[((line/8)*2)+0x181]<<8); xxxscroll = globalxscrollreels + rowscroll; - m_reel_tilemap->set_scrollx(0, xxxscroll ); - m_reel2_tilemap->set_scrollx(0, xxxscroll ); - m_reel3_tilemap->set_scrollx(0, xxxscroll ); - m_reel4_tilemap->set_scrollx(0, xxxscroll ); + for (uint8_t i = 0; i < 4; i++) + m_reel_tilemap[i]->set_scrollx(0, xxxscroll ); } if (rowenable2==0) { - m_reel_tilemap->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),3); + m_reel_tilemap[0]->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),3); } if (rowenable==0) { - m_reel_tilemap->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),3); + m_reel_tilemap[0]->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),3); } if (rowenable2==0x1) { - m_reel2_tilemap->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),2); + m_reel_tilemap[1]->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),2); } if (rowenable==0x1) { - m_reel2_tilemap->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),2); + m_reel_tilemap[1]->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),2); } if (rowenable2==0x2) { - m_reel3_tilemap->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),1); + m_reel_tilemap[2]->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),1); } if (rowenable==0x2) { - m_reel3_tilemap->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),1); + m_reel_tilemap[2]->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),1); } if (rowenable2==0x3) { - m_reel4_tilemap->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),4); + m_reel_tilemap[3]->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),4); } if (rowenable==0x3) { - m_reel4_tilemap->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),4); + m_reel_tilemap[3]->draw(screen, *m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(category),4); } - - - - startclipmin+=1; } } -uint32_t sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t sfbonus_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int globalyscroll = (m_vregs[2] | m_vregs[3]<<8); int globalxscroll = (m_vregs[0] | m_vregs[1]<<8); uint8_t* front_rowscroll = &m_videoram[0x200]; ioport_constructor ipt; - int i; // align to 0 globalyscroll += 8; @@ -1105,11 +1037,9 @@ uint32_t sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind1 draw_reel_layer(screen,*m_temp_reel_bitmap,cliprect,0); { - int y,x; - - for (y=0;y<288;y++) + for (int y = 0; y < 288; y++) { - for (x=0;x<512;x++) + for (int x = 0; x < 512; x++) { uint16_t* src = &m_temp_reel_bitmap->pix16(y, x); uint16_t* dst = &bitmap.pix16(y, x); @@ -1122,20 +1052,17 @@ uint32_t sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind1 /* Normal Tilemap */ m_tilemap->set_scrolly(0, globalyscroll ); - for (i=0;i<64;i++) + for (int i = 0; i < 64; i++) { - int scroll; - scroll = front_rowscroll[(i*2)+0x000] | (front_rowscroll[(i*2)+0x001]<<8); + int scroll = front_rowscroll[(i*2)+0x000] | (front_rowscroll[(i*2)+0x001]<<8); m_tilemap->set_scrollx(i, scroll+globalxscroll ); } m_tilemap->draw(screen, bitmap, cliprect, 0,0); { - int y,x; - - for (y=0;y<288;y++) + for (int y = 0; y < 288; y++) { - for (x=0;x<512;x++) + for (int x = 0; x < 512; x++) { uint16_t* src = &m_temp_reel_bitmap->pix16(y, x); uint16_t* dst = &bitmap.pix16(y, x); @@ -1225,70 +1152,63 @@ uint32_t sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind1 void sfbonus_state::sfbonus_map(address_map &map) { - map(0x0000, 0xefff).bankr("bank1").w(FUNC(sfbonus_state::sfbonus_videoram_w)); + map(0x0000, 0xefff).bankr(m_mainbank).w(FUNC(sfbonus_state::videoram_w)); map(0xf000, 0xffff).ram().share("nvram"); } -WRITE8_MEMBER(sfbonus_state::sfbonus_bank_w) +WRITE8_MEMBER(sfbonus_state::bank_w) { - uint8_t *ROM = memregion("maincpu")->base(); - uint8_t bank; - - bank = data & 7; - - membank("bank1")->set_base(&ROM[bank * 0x10000]); + m_mainbank->set_entry(data & 7); } - - -READ8_MEMBER(sfbonus_state::sfbonus_2800_r) +READ8_MEMBER(sfbonus_state::_2800_r) { return machine().rand(); } -READ8_MEMBER(sfbonus_state::sfbonus_2801_r) +READ8_MEMBER(sfbonus_state::_2801_r) { return machine().rand(); } -READ8_MEMBER(sfbonus_state::sfbonus_2c00_r) +READ8_MEMBER(sfbonus_state::_2c00_r) { return machine().rand(); } -READ8_MEMBER(sfbonus_state::sfbonus_2c01_r) +READ8_MEMBER(sfbonus_state::_2c01_r) { return machine().rand(); } -READ8_MEMBER(sfbonus_state::sfbonus_3800_r) +READ8_MEMBER(sfbonus_state::_3800_r) { return 0xff; } // lamps and coin counters -WRITE8_MEMBER(sfbonus_state::sfbonus_1800_w) +WRITE8_MEMBER(sfbonus_state::_1800_w) { m_1800_regs[offset] = data; } -WRITE8_MEMBER(sfbonus_state::sfbonus_3800_w) +WRITE8_MEMBER(sfbonus_state::_3800_w) { m_3800_regs[offset] = data; } -WRITE8_MEMBER(sfbonus_state::sfbonus_3000_w) +WRITE8_MEMBER(sfbonus_state::_3000_w) { m_3000_regs[offset] = data; } -WRITE8_MEMBER(sfbonus_state::sfbonus_2801_w) +WRITE8_MEMBER(sfbonus_state::_2801_w) { m_2801_regs[offset] = data; } -WRITE8_MEMBER(sfbonus_state::sfbonus_2c01_w) +WRITE8_MEMBER(sfbonus_state::_2c01_w) { m_2c01_regs[offset] = data; } @@ -1312,21 +1232,21 @@ void sfbonus_state::sfbonus_io(address_map &map) map(0x0c01, 0x0c01).w("ramdac", FUNC(ramdac_device::pal_w)); map(0x0c02, 0x0c02).w("ramdac", FUNC(ramdac_device::mask_w)); - map(0x1800, 0x1807).w(FUNC(sfbonus_state::sfbonus_1800_w)).share("1800_regs"); // lamps and coin counters + map(0x1800, 0x1807).w(FUNC(sfbonus_state::_1800_w)).share("1800_regs"); // lamps and coin counters map(0x2400, 0x241f).ram().share("vregs"); - map(0x2800, 0x2800).r(FUNC(sfbonus_state::sfbonus_2800_r)); - map(0x2801, 0x2801).r(FUNC(sfbonus_state::sfbonus_2801_r)).w(FUNC(sfbonus_state::sfbonus_2801_w)).share("2801_regs"); + map(0x2800, 0x2800).r(FUNC(sfbonus_state::_2800_r)); + map(0x2801, 0x2801).r(FUNC(sfbonus_state::_2801_r)).w(FUNC(sfbonus_state::_2801_w)).share("2801_regs"); - map(0x2c00, 0x2c00).r(FUNC(sfbonus_state::sfbonus_2c00_r)); - map(0x2c01, 0x2c01).r(FUNC(sfbonus_state::sfbonus_2c01_r)).w(FUNC(sfbonus_state::sfbonus_2c01_w)).share("2c01_regs"); + map(0x2c00, 0x2c00).r(FUNC(sfbonus_state::_2c00_r)); + map(0x2c01, 0x2c01).r(FUNC(sfbonus_state::_2c01_r)).w(FUNC(sfbonus_state::_2c01_w)).share("2c01_regs"); - map(0x3000, 0x3000).w(FUNC(sfbonus_state::sfbonus_3000_w)).share("3000_regs"); - map(0x3400, 0x3400).w(FUNC(sfbonus_state::sfbonus_bank_w)); - map(0x3800, 0x3800).r(FUNC(sfbonus_state::sfbonus_3800_r)); + map(0x3000, 0x3000).w(FUNC(sfbonus_state::_3000_w)).share("3000_regs"); + map(0x3400, 0x3400).w(FUNC(sfbonus_state::bank_w)); + map(0x3800, 0x3800).r(FUNC(sfbonus_state::_3800_r)); - map(0x3800, 0x3807).w(FUNC(sfbonus_state::sfbonus_3800_w)).share("3800_regs"); + map(0x3800, 0x3807).w(FUNC(sfbonus_state::_3800_w)).share("3800_regs"); } @@ -1364,11 +1284,12 @@ static GFXDECODE_START( gfx_sfbonus ) GFXDECODE_END -void sfbonus_state::machine_reset() +void sfbonus_state::machine_start() { - uint8_t *ROM = memregion("maincpu")->base(); + m_mainbank->configure_entries(0, 8, memregion("maincpu")->base(), 0x10000); + m_mainbank->set_entry(0); - membank("bank1")->set_base(&ROM[0]); + m_lamps.resolve(); } @@ -1396,7 +1317,7 @@ void sfbonus_state::sfbonus(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(128*8, 64*8); screen.set_visarea(0*8, 512-1, 0*8, 288-1); - screen.set_screen_update(FUNC(sfbonus_state::screen_update_sfbonus)); + screen.set_screen_update(FUNC(sfbonus_state::screen_update)); screen.set_palette(m_palette); PALETTE(config, m_palette).set_entries(0x100*2); // *2 for priority workaround / custom drawing @@ -5887,27 +5808,18 @@ ROM_START( amclink ) ROM_REGION( 0x100000, "gfx2", ROMREGION_ERASE00 ) ROM_END -void sfbonus_state::init_sfbonus_common() +void sfbonus_state::init_common() { m_tilemap_ram = std::make_unique<uint8_t[]>(0x4000); memset(m_tilemap_ram.get(), 0xff, 0x4000); save_pointer(NAME(m_tilemap_ram), 0x4000); - m_reel_ram = std::make_unique<uint8_t[]>(0x0800); - memset(m_reel_ram.get(), 0xff ,0x0800); - save_pointer(NAME(m_reel_ram), 0x0800); - - m_reel2_ram = std::make_unique<uint8_t[]>(0x0800); - memset(m_reel2_ram.get(), 0xff, 0x0800); - save_pointer(NAME(m_reel2_ram), 0x0800); - - m_reel3_ram = std::make_unique<uint8_t[]>(0x0800); - memset(m_reel3_ram.get(), 0xff, 0x0800); - save_pointer(NAME(m_reel3_ram), 0x0800); - - m_reel4_ram = std::make_unique<uint8_t[]>(0x0800); - memset(m_reel4_ram.get(), 0xff, 0x0800); - save_pointer(NAME(m_reel4_ram), 0x0800); + for (uint8_t i = 0; i < 4; i++) + { + m_reel_ram[i] = std::make_unique<uint8_t[]>(0x0800); + memset(m_reel_ram[i].get(), 0xff ,0x0800); + save_pointer(NAME(m_reel_ram[i]), 0x0800, i); + } m_videoram = std::make_unique<uint8_t[]>(0x10000); @@ -5926,10 +5838,9 @@ void sfbonus_state::sfbonus_bitswap( uint8_t xor6, uint8_t b60, uint8_t b61, uint8_t b62, uint8_t b63, uint8_t b64, uint8_t b65, uint8_t b66,uint8_t b67, uint8_t xor7, uint8_t b70, uint8_t b71, uint8_t b72, uint8_t b73, uint8_t b74, uint8_t b75, uint8_t b76,uint8_t b77 ) { - int i; uint8_t *ROM = memregion("maincpu")->base(); - for(i = 0; i < memregion("maincpu")->bytes(); i++) + for(int i = 0; i < memregion("maincpu")->bytes(); i++) { uint8_t x = ROM[i]; @@ -5947,10 +5858,10 @@ void sfbonus_state::sfbonus_bitswap( ROM[i] = x; } - init_sfbonus_common(); + init_common(); } -//static DRIVER_INIT(helper) { sfbonus_bitswap(machine, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0); } +//void sfbonus_state::init_xxx() { sfbonus_bitswap( 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0, 0xff, 7,6,5,4,3,2,1,0); } void sfbonus_state::init_abnudge() { sfbonus_bitswap( 0x33, 0,3,7,6,5,2,1,4, 0xff, 3,7,6,5,1,0,4,2, 0x36, 4,2,3,7,6,5,1,0, 0xa8, 3,2,4,0,1,7,6,5, 0x2c, 0,1,7,6,5,2,4,3, 0xff, 3,7,6,5,1,0,4,2, 0x26, 2,4,3,7,6,5,1,0, 0xbe, 4,1,3,0,2,7,6,5); } void sfbonus_state::init_abnudged() { sfbonus_bitswap( 0x3b, 0,1,7,6,5,4,3,2, 0xef, 0,7,6,5,4,3,2,1, 0x21, 0,2,1,7,6,5,4,3, 0xa9, 4,3,0,1,2,7,6,5, 0x3d, 2,1,7,6,5,4,3,0, 0xed, 2,7,6,5,4,3,1,0, 0x21, 0,2,1,7,6,5,4,3, 0xa8, 4,3,1,2,0,7,6,5); } @@ -6070,286 +5981,286 @@ void sfbonus_state::init_getrich() { sfbonus_bitswap( 0x3c, 1,2,7,6,5,4 void sfbonus_state::init_mcircus() { sfbonus_bitswap( 0x39, 1,2,7,6,5,4,3,0, 0xef, 2,7,6,5,4,3,0,1, 0x21, 1,0,2,7,6,5,4,3, 0xa8, 4,3,1,2,0,7,6,5, 0x3b, 1,0,7,6,5,4,3,2, 0xe9, 1,7,6,5,4,3,2,0, 0x23, 0,2,1,7,6,5,4,3, 0xac, 4,3,0,1,2,7,6,5); } -GAME( 2002, suprball, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_suprball, ROT0, "Amcoe", "Super Ball (Version 1.3)", 0) - -GAME( 2003, sfbonus, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_sfbonus, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.9R, set 1)", 0) -GAME( 2003, sfbonusd1, sfbonus, sfbonus, amcoe1_reels3, sfbonus_state, init_sfbonusd, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.9R, set 2)", 0) -GAME( 2003, sfbonusv1, sfbonus, sfbonus, amcoe1_reels3, sfbonus_state, init_sfbonusv, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.9R Dual)", 0) -GAME( 2003, sfbonuso, sfbonus, sfbonus, amcoe2_reels3, sfbonus_state, init_sfbonus, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.7)", 0) -GAME( 2003, sfbonuso2, sfbonus, sfbonus, amcoe2_reels3, sfbonus_state, init_sfbonus, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.6)", 0) - -GAMEL( 2004, parrot3, 0, sfbonus, amcoe1_poker, sfbonus_state, init_parrot3v, ROT0, "Amcoe", "Parrot Poker III (Version 2.6E Dual)", 0, layout_pirpok2) -GAMEL( 2004, parrot3b1, parrot3, sfbonus, amcoe2_poker, sfbonus_state, init_pirpok2, ROT0, "Amcoe", "Parrot Poker III (Version 2.6R, set 1)", 0, layout_pirpok2) -GAMEL( 2004, parrot3d1, parrot3, sfbonus, amcoe1_poker, sfbonus_state, init_parrot3d, ROT0, "Amcoe", "Parrot Poker III (Version 2.6R, set 2)", 0, layout_pirpok2) -GAMEL( 2004, parrot3v1, parrot3, sfbonus, amcoe1_poker, sfbonus_state, init_parrot3v2, ROT0, "Amcoe", "Parrot Poker III (Version 2.6R Dual)", 0, layout_pirpok2) -GAMEL( 2003, parrot3o, parrot3, sfbonus, amcoe2_poker, sfbonus_state, init_pirpok2, ROT0, "Amcoe", "Parrot Poker III (Version 2.4)", 0, layout_pirpok2) - -GAME( 2000, hldspin1, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_hldspin1, ROT0, "Amcoe", "Hold & Spin I (Version 2.7T, set 1)", 0) -GAME( 2000, hldspin1dt, hldspin1, sfbonus, amcoe1_reels3, sfbonus_state, init_hldspin1d, ROT0, "Amcoe", "Hold & Spin I (Version 2.7T, set 2)", 0) -GAME( 2000, hldspin1vt, hldspin1, sfbonus, amcoe1_reels3, sfbonus_state, init_hldspin1v, ROT0, "Amcoe", "Hold & Spin I (Version 2.7T Dual)", 0) -GAME( 2000, hldspin1o, hldspin1, sfbonus, amcoe2_reels3, sfbonus_state, init_hldspin1, ROT0, "Amcoe", "Hold & Spin I (Version 2.5T)", 0) - -GAME( 2000, hldspin2, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_hldspin2, ROT0, "Amcoe", "Hold & Spin II (Version 2.8R, set 1)", 0) -GAME( 2000, hldspin2d1, hldspin2, sfbonus, amcoe1_reels3, sfbonus_state, init_hldspin2d, ROT0, "Amcoe", "Hold & Spin II (Version 2.8R, set 2)", 0) // some text corruption on first reset (MIN PLAY etc. real game bug?) -GAME( 2000, hldspin2v1, hldspin2, sfbonus, amcoe1_reels3, sfbonus_state, init_hldspin2v, ROT0, "Amcoe", "Hold & Spin II (Version 2.8R Dual)", 0) // some text corruption on first reset (MIN PLAY etc. real game bug?) -GAME( 2000, hldspin2o, hldspin2, sfbonus, amcoe2_reels3, sfbonus_state, init_hldspin2, ROT0, "Amcoe", "Hold & Spin II (Version 2.6)", 0) - -GAME( 2003, fcnudge, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fruitcar, ROT0, "Amcoe", "Fruit Carnival Nudge (Version 2.1 Dual)", 0) -GAME( 2003, fcnudgeo, fcnudge, sfbonus, amcoe2_reels3, sfbonus_state, init_fruitcar2, ROT0, "Amcoe", "Fruit Carnival Nudge (Version 2.0, set 1)", 0) -GAME( 2003, fcnudgeo2, fcnudge, sfbonus, amcoe1_reels3, sfbonus_state, init_fruitcar3, ROT0, "Amcoe", "Fruit Carnival Nudge (Version 2.0, set 2)", 0) -GAME( 2003, fcnudgeo3, fcnudge, sfbonus, amcoe2_reels3, sfbonus_state, init_abnudge, ROT0, "Amcoe", "Fruit Carnival Nudge (Version 1.7)", 0) - -GAME( 2001, pickwin, 0, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwinv2, ROT0, "Amcoe", "Pick 'n Win (Version 2.9E Dual)", 0) -GAME( 2001, pickwinb1, pickwin, sfbonus, amcoe2_reels4, sfbonus_state, init_pickwin, ROT0, "Amcoe", "Pick 'n Win (Version 2.9R, set 1)", 0) -GAME( 2001, pickwind1, pickwin, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwind, ROT0, "Amcoe", "Pick 'n Win (Version 2.9R, set 2)", 0) -GAME( 2001, pickwinv1, pickwin, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwinv, ROT0, "Amcoe", "Pick 'n Win (Version 2.9R Dual)", 0) -GAME( 2001, pickwinbt, pickwin, sfbonus, amcoe2_reels4, sfbonus_state, init_pickwin, ROT0, "Amcoe", "Pick 'n Win (Version 2.8T, set 1)", 0) -GAME( 2001, pickwindt, pickwin, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwind, ROT0, "Amcoe", "Pick 'n Win (Version 2.8T, set 2)", 0) -GAME( 2001, pickwinvt, pickwin, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwinv, ROT0, "Amcoe", "Pick 'n Win (Version 2.8T, Dual)", 0) -GAME( 2001, pickwino, pickwin, sfbonus, amcoe2_reels4, sfbonus_state, init_pickwin, ROT0, "Amcoe", "Pick 'n Win (Version 2.6)", 0) -GAME( 2001, pickwino2, pickwin, sfbonus, amcoe2_reels4, sfbonus_state, init_pickwin, ROT0, "Amcoe", "Pick 'n Win (Version 2.5T)", 0) - -GAME( 2004, tighook, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookv2, ROT0, "Amcoe", "Tiger Hook (Version 2.1E Dual)", 0) -GAME( 2004, tighookc1, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighook, ROT0, "Amcoe", "Tiger Hook (Version 2.1R, set 1)", 0) -GAME( 2004, tighookd1, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookd, ROT0, "Amcoe", "Tiger Hook (Version 2.1R, set 2)", 0) -GAME( 2004, tighookv1, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookv, ROT0, "Amcoe", "Tiger Hook (Version 2.1R Dual)", 0) -GAME( 2004, tighookc2, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighook, ROT0, "Amcoe", "Tiger Hook (Version 2.0LT, set 1)", 0) -GAME( 2004, tighookd2, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookd, ROT0, "Amcoe", "Tiger Hook (Version 2.0LT, set 2)", 0) -GAME( 2004, tighookv2, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookv, ROT0, "Amcoe", "Tiger Hook (Version 2.0LT Dual)", 0) -GAME( 2004, tighooko, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighook, ROT0, "Amcoe", "Tiger Hook (Version 1.7XT)", 0) -GAME( 2004, tighooko2, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighook, ROT0, "Amcoe", "Tiger Hook (Version 1.7)", 0) - -GAME( 2004, robadv, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v4, ROT0, "Amcoe", "Robin's Adventure (Version 1.7E Dual)", 0) -GAME( 2004, robadvc1, robadv, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure (Version 1.7R, set 1)", 0) -GAME( 2004, robadvd1, robadv, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2d, ROT0, "Amcoe", "Robin's Adventure (Version 1.7R, set 2)", 0) -GAME( 2004, robadvv1, robadv, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v1, ROT0, "Amcoe", "Robin's Adventure (Version 1.7R Dual)", 0) -GAME( 2004, robadvo, robadv, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure (Version 1.5)", 0) - -GAME( 2004, robadv2, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v4, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7E Dual)", 0) -GAME( 2004, robadv2c1, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7R, set 1)", 0) -GAME( 2004, robadv2d1, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2d, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7R, set 2)", 0) -GAME( 2004, robadv2v1, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v1, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7R Dual)", 0) -GAME( 2004, robadv2c2, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7LT, set 1)", 0) -GAME( 2004, robadv2d2, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2d, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7LT, set 2)", 0) -GAME( 2004, robadv2v2, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v1, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7LT Dual)", 0) -GAME( 2004, robadv2c3, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7SH, set 1)", 0) -GAME( 2004, robadv2d3, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2d, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7SH, set 2)", 0) -GAME( 2004, robadv2v3, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v1, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7SH Dual)", 0) -GAME( 2004, robadv2o, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.5SH)", 0) -GAME( 2004, robadv2o2, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.5)", 0) - -GAMEL( 2003, pirpok2, 0, sfbonus, amcoe1_poker, sfbonus_state, init_pirpok2v2, ROT0, "Amcoe", "Pirate Poker II (Version 2.4E Dual)", 0, layout_pirpok2) -GAMEL( 2003, pirpok2b1, pirpok2, sfbonus, amcoe2_poker, sfbonus_state, init_pirpok2, ROT0, "Amcoe", "Pirate Poker II (Version 2.2R, set 1)", 0, layout_pirpok2) -GAMEL( 2003, pirpok2d1, pirpok2, sfbonus, amcoe1_poker, sfbonus_state, init_pirpok2d, ROT0, "Amcoe", "Pirate Poker II (Version 2.2R, set 2)", 0, layout_pirpok2) -GAMEL( 2003, pirpok2v1, pirpok2, sfbonus, amcoe1_poker, sfbonus_state, init_pirpok2v, ROT0, "Amcoe", "Pirate Poker II (Version 2.2R Dual)", 0, layout_pirpok2) -GAMEL( 2003, pirpok2o, pirpok2, sfbonus, amcoe2_poker, sfbonus_state, init_pirpok2, ROT0, "Amcoe", "Pirate Poker II (Version 2.0)", 0, layout_pirpok2) - -GAME( 2003, anibonus, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusv3, ROT0, "Amcoe", "Animal Bonus (Version 1.8E Dual)", 0) -GAME( 2003, anibonusv1, anibonus, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusv, ROT0, "Amcoe", "Animal Bonus (Version 1.8R Dual)", 0) -GAME( 2003, anibonusv2, anibonus, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusv, ROT0, "Amcoe", "Animal Bonus (Version 1.8LT Dual)", 0) -GAME( 2003, anibonusb1, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.7R, set 1)", 0) -GAME( 2003, anibonusd1, anibonus, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusd, ROT0, "Amcoe", "Animal Bonus (Version 1.7R, set 2)", 0) -GAME( 2003, anibonusb2, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.7LT, set 1)", 0) -GAME( 2003, anibonusd2, anibonus, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusd, ROT0, "Amcoe", "Animal Bonus (Version 1.7LT, set 2)", 0) -GAME( 2003, anibonuso, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.5)", 0) -GAME( 2003, anibonuso2, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus3, ROT0, "Amcoe", "Animal Bonus (Version 1.4, set 1)", 0) -GAME( 2003, anibonuso3, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.4, set 2)", 0) -GAME( 2003, anibonusxo, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.50XT)", 0) -GAME( 2003, anibonusxo2, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus3, ROT0, "Amcoe", "Animal Bonus (Version 1.40XT, set 1)", 0) -GAME( 2003, anibonusxo3, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.40XT, set 2)", 0) - -GAME( 2003, abnudge, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_abnudgev, ROT0, "Amcoe", "Animal Bonus Nudge (Version 2.1 Dual)", 0) -GAME( 2003, abnudgeb, abnudge, sfbonus, amcoe2_reels3, sfbonus_state, init_abnudge, ROT0, "Amcoe", "Animal Bonus Nudge (Version 2.0, set 1)", 0) -GAME( 2003, abnudged, abnudge, sfbonus, amcoe1_reels3, sfbonus_state, init_abnudged, ROT0, "Amcoe", "Animal Bonus Nudge (Version 2.0, set 2)", 0) -GAME( 2003, abnudgeo, abnudge, sfbonus, amcoe2_reels3, sfbonus_state, init_abnudge, ROT0, "Amcoe", "Animal Bonus Nudge (Version 1.7)", 0) - -GAME( 2003, dblchal, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_dblchal, ROT0, "Amcoe", "Double Challenge (Version 1.5R, set 1)", 0) -GAME( 2003, dblchalc1, dblchal, sfbonus, amcoe1_reels3, sfbonus_state, init_dblchal, ROT0, "Amcoe", "Double Challenge (Version 1.5R, set 2)", 0) -GAME( 2003, dblchald1, dblchal, sfbonus, amcoe1_reels3, sfbonus_state, init_dblchald, ROT0, "Amcoe", "Double Challenge (Version 1.5R, set 3)", 0) -GAME( 2003, dblchalv1, dblchal, sfbonus, amcoe1_reels3, sfbonus_state, init_dblchalv, ROT0, "Amcoe", "Double Challenge (Version 1.5R Dual)", 0) -GAME( 2003, dblchalo, dblchal, sfbonus, amcoe2_reels3, sfbonus_state, init_dblchal, ROT0, "Amcoe", "Double Challenge (Version 1.1)", 0) - -GAME( 2003, anithunt, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_anithunt, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.9R, set 1)", 0) -GAME( 2003, anithuntd1, anithunt, sfbonus, amcoe1_reels3, sfbonus_state, init_anithuntd, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.9R, set 2)", 0) -GAME( 2003, anithuntv1, anithunt, sfbonus, amcoe1_reels3, sfbonus_state, init_anithuntv, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.9R Dual)", 0) -GAME( 2003, anithunto, anithunt, sfbonus, amcoe2_reels3, sfbonus_state, init_anithunt, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.7)", 0) -GAME( 2003, anithunto2, anithunt, sfbonus, amcoe2_reels3, sfbonus_state, init_anithunt, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.5)", 0) - -GAME( 2002, sfruitb, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv2, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.5E Dual)", 0) -GAME( 2002, sfruitbb1, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.5R, set 1)", 0) -GAME( 2002, sfruitbd1, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbd, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.5R, set 2)", 0) -GAME( 2002, sfruitbv1, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.5R Dual)", 0) -GAME( 2002, sfruitbb2, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0LT, set 1)", 0) -GAME( 2002, sfruitbd2, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbd, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0LT, set 2)", 0) -GAME( 2002, sfruitbv2, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0LT Dual)", 0) -GAME( 2002, sfruitbo, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0)", 0) -GAME( 2002, sfruitbo2, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 1.80XT)", 0) - -GAME( 2002, sfruitbh, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv2, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.2EB Dual)", 0) -GAME( 2002, sfruitbbh, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.2B, set 1)", 0) -GAME( 2002, sfruitbdh, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbd, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.2B, set 2)", 0) -GAME( 2002, sfruitbvh, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.2B Dual)", 0) -GAME( 2002, sfruitboh, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0B)", 0) - -GAME( 2004, fb2gen, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2genv3, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8E Dual)", 0) -GAME( 2004, fb2genc1, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gen, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8R, set 1)", 0) -GAME( 2004, fb2gend1, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gend, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8R, set 2)", 0) -GAME( 2004, fb2genv1, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2genv, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8R Dual)", 0) -GAME( 2004, fb2genc2, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gen, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8LT, set 1)", 0) -GAME( 2004, fb2gend2, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gend, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8LT, set 2)", 0) -GAME( 2004, fb2genv2, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2genv, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8LT Dual)", 0) -GAME( 2004, fb2geno, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gen, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.6XT)", 0) -GAME( 2004, fb2geno2, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gen, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.5)", 0) - -GAME( 2004, fb2nd, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2nd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8R, set 1)", 0) -GAME( 2004, fb2ndd1, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2ndd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8R, set 2)", 0) -GAME( 2004, fb2ndv1, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2ndv, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8R Dual)", 0) -GAME( 2004, fb2ndc2, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2nd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8LT, set 1)", 0) -GAME( 2004, fb2ndd2, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2ndd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8LT, set 2)", 0) -GAME( 2004, fb2ndv2, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2ndv, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8LT Dual)", 0) -GAME( 2004, fb2ndo, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2nd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.5)", 0) - -GAME( 2004, fb4, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5R, set 1)", 0) -GAME( 2004, fb4c1, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5R, set 2)", 0) -GAME( 2004, fb4d1, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4d, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5R, set 3)", 0) -GAME( 2004, fb4v1, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4v, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5R Dual)", 0) -GAME( 2004, fb4exp, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4v3, ROT0, "Amcoe", "Fruit Bonus 2005 (2004 Export - Version 1.5E Dual)", 0) // the export version has '2005' title, but is considered the same game as fb4 and labeled as such -GAME( 2004, fb4b2, fb4, sfbonus, amcoe2_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5LT, set 1)", 0) -GAME( 2004, fb4c2, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5LT, set 2)", 0) -GAME( 2004, fb4d2, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4d, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5LT, set 3)", 0) -GAME( 2004, fb4v2, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4v, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5LT Dual)", 0) -GAME( 2004, fb4o, fb4, sfbonus, amcoe2_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.3XT)", 0) -GAME( 2004, fb4o2, fb4, sfbonus, amcoe2_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.2)", 0) - -GAME( 1999, act2000, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000v2, ROT0, "Amcoe", "Action 2000 (Version 3.5E Dual)", 0) -GAME( 1999, act2000v1, act2000, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000v, ROT0, "Amcoe", "Action 2000 (Version 3.5R Dual)", 0) -GAME( 1999, act2000d1, act2000, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000d, ROT0, "Amcoe", "Action 2000 (Version 3.5R, set 1)", 0) -GAME( 1999, act2000b1, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 3.5R, set 2)", 0) -GAME( 1999, act2000vx, act2000, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000v3, ROT0, "Amcoe", "Action 2000 (Version 3.30XT Dual)", 0) -GAME( 1999, act2000dx, act2000, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000d, ROT0, "Amcoe", "Action 2000 (Version 3.30XT, set 1)", 0) -GAME( 1999, act2000bx, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 3.30XT, set 2)", 0) -GAME( 1999, act2000o, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 3.3)", 0) -GAME( 1999, act2000o2, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 3.10XT)", 0) -GAME( 1999, act2000o3, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 1.2)", 0) - -GAME( 2000, ch2000, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000v2, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4E Dual)", 0) -GAME( 2000, ch2000b1, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 1)", 0) -GAME( 2000, ch2000c1, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000c, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 2)", 0) -GAME( 2000, ch2000d1, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000d, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 3)", 0) -GAME( 2000, ch2000v1, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000v, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R Dual)", 0) -GAME( 2000, ch2000b2, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 1)", 0) -GAME( 2000, ch2000c2, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000c, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 2)", 0) -GAME( 2000, ch2000d2, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000d, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 3)", 0) -GAME( 2000, ch2000v2, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000v3, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT Dual)", 0) -GAME( 2000, ch2000o, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9XT)", 0) -GAME( 2000, ch2000o2, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9D)", 0) -GAME( 2000, ch2000o3, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9)", 0) - -GAME( 2001, pir2001, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001v2, ROT0, "Amcoe", "Pirate 2001 (Version 2.5E Dual)", 0) -GAME( 2001, pir2001b1, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.5R, set 1)", 0) -GAME( 2001, pir2001d1, pir2001, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001d, ROT0, "Amcoe", "Pirate 2001 (Version 2.5R, set 2)", 0) -GAME( 2001, pir2001v1, pir2001, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001v, ROT0, "Amcoe", "Pirate 2001 (Version 2.5R Dual)", 0) -GAME( 2001, pir2001bx, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.40XT, set 1)", 0) -GAME( 2001, pir2001dx, pir2001, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001d, ROT0, "Amcoe", "Pirate 2001 (Version 2.40XT, set 2)", 0) -GAME( 2001, pir2001vx, pir2001, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001v, ROT0, "Amcoe", "Pirate 2001 (Version 2.40XT Dual)", 0) -GAME( 2001, pir2001o, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.3N)", 0) -GAME( 2001, pir2001o2, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.3)", 0) -GAME( 2001, pir2001o3, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.20XT)", 0) - -GAME( 2001, pir2002, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002v2, ROT0, "Amcoe", "Pirate 2002 (Version 2.0E Dual)", 0) -GAME( 2001, pir2002b1, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 2.0R, set 1)", 0) -GAME( 2001, pir2002d1, pir2002, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002d, ROT0, "Amcoe", "Pirate 2002 (Version 2.0R, set 2)", 0) -GAME( 2001, pir2002v1, pir2002, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002v, ROT0, "Amcoe", "Pirate 2002 (Version 2.0R Dual)", 0) -GAME( 2001, pir2002bx, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 1.90XT, set 1)", 0) -GAME( 2001, pir2002dx, pir2002, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002d, ROT0, "Amcoe", "Pirate 2002 (Version 1.90XT, set 2)", 0) -GAME( 2001, pir2002vx, pir2002, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002v, ROT0, "Amcoe", "Pirate 2002 (Version 1.90XT Dual)", 0) -GAME( 2001, pir2002o, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 1.8N)", 0) -GAME( 2001, pir2002o2, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 1.8)", 0) -GAME( 2001, pir2002o3, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 1.70XT)", 0) - -GAME( 2004, classice, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_classiced3, ROT0, "Amcoe", "Classic Edition (Version 1.6E)", 0) -GAME( 2004, classicev, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classicev3, ROT0, "Amcoe", "Classic Edition (Version 1.6E Dual)", 0) -GAME( 2004, classice1, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classice, ROT0, "Amcoe", "Classic Edition (Version 1.6R, set 1)", 0) -GAME( 2004, classiced1, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classiced, ROT0, "Amcoe", "Classic Edition (Version 1.6R, set 2)", 0) -GAME( 2004, classicev1, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classicev, ROT0, "Amcoe", "Classic Edition (Version 1.6R Dual)", 0) -GAME( 2004, classice2, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classice, ROT0, "Amcoe", "Classic Edition (Version 1.6LT, set 1)", 0) -GAME( 2004, classiced2, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classiced, ROT0, "Amcoe", "Classic Edition (Version 1.6LT, set 2)", 0) -GAME( 2004, classicev2, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classicev, ROT0, "Amcoe", "Classic Edition (Version 1.6LT Dual)", 0) - -GAME( 2005, seawld, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_seawldv, ROT0, "Amcoe", "Sea World (Version 1.6E Dual)", 0) -GAME( 2005, seawldd1, seawld, sfbonus, amcoe1_reels3, sfbonus_state, init_seawld, ROT0, "Amcoe", "Sea World (Version 1.6R CGA)", 0) - -GAME( 2005, moneymac, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymacv, ROT0, "Amcoe", "Money Machine (Version 1.7E Dual)", 0) -GAME( 2005, moneymacd1, moneymac, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymacd, ROT0, "Amcoe", "Money Machine (Version 1.7R)", 0) -GAME( 2005, moneymacv1, moneymac, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymac, ROT0, "Amcoe", "Money Machine (Version 1.7R Dual)", 0) -GAME( 2005, moneymacd2, moneymac, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymacd, ROT0, "Amcoe", "Money Machine (Version 1.7LT)", 0) -GAME( 2005, moneymacv2, moneymac, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymac, ROT0, "Amcoe", "Money Machine (Version 1.7LT Dual)", 0) - -GAME( 2005, fb5, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_fb5, ROT0, "Amcoe", "Fruit Bonus 2005 (Version 1.5SH, set 1)", 0) -GAME( 2005, fb5c, fb5, sfbonus, amcoe1_reels3, sfbonus_state, init_fb5, ROT0, "Amcoe", "Fruit Bonus 2005 (Version 1.5SH, set 2)", 0) -GAME( 2005, fb5d, fb5, sfbonus, amcoe1_reels3, sfbonus_state, init_fb5d, ROT0, "Amcoe", "Fruit Bonus 2005 (Version 1.5SH, set 3)", 0) -GAME( 2005, fb5v, fb5, sfbonus, amcoe1_reels3, sfbonus_state, init_fb5v, ROT0, "Amcoe", "Fruit Bonus 2005 (Version 1.5SH Dual)", 0) - -GAME( 2005, funriver, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_funriver, ROT0, "Amcoe", "Fun River (Version 1.4R CGA)", 0) -GAME( 2005, funriverv, funriver, sfbonus, amcoe1_reels3, sfbonus_state, init_funriverv, ROT0, "Amcoe", "Fun River (Version 1.4R Dual)", 0) -GAME( 2005, funriverd1, funriver, sfbonus, amcoe1_reels3, sfbonus_state, init_funriver, ROT0, "Amcoe", "Fun River (Version 1.3R CGA)", 0) - -GAME( 2006, fb6, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7E CGA)", 0) -GAME( 2006, fb6v, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v3, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7E Dual)", 0) -GAME( 2006, fb6d1, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6d, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA)", 0) -GAME( 2006, fb6s1, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6s, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA, Compact PCB)", 0) -GAME( 2006, fb6v1, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7R Dual)", 0) -GAME( 2006, fb6d2, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6d, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA)", 0) -GAME( 2006, fb6s2, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6s, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA, Compact PCB)", 0) -GAME( 2006, fb6v2, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT Dual)", 0) -GAME( 2006, fb6s3, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6s, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.3R CGA, Compact PCB)", 0) - -GAME( 2006, fb6se, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4E CGA)", 0) /* Released August 2006 according to Amcoe web site */ -GAME( 2006, fb6sev, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v3, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4E Dual)", 0) -GAME( 2006, fb6sed1, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6d, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4R CGA)", 0) -GAME( 2006, fb6sev1, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4R Dual)", 0) -GAME( 2006, fb6sed2, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6d, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4LT CGA)", 0) -GAME( 2006, fb6sev2, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4LT Dual)", 0) - -GAME( 2006, bugfever, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfever, ROT0, "Amcoe", "Bugs Fever (Version 1.7R CGA)", 0) /* Released August 2006 according to Amcoe web site */ -GAME( 2006, bugfeverv, bugfever, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfeverv, ROT0, "Amcoe", "Bugs Fever (Version 1.7R Dual)", 0) -GAME( 2006, bugfeverd, bugfever, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfeverd, ROT0, "Amcoe", "Bugs Fever (Version 1.7E CGA)", 0) -GAME( 2006, bugfeverv2, bugfever, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfeverv2, ROT0, "Amcoe", "Bugs Fever (Version 1.7E Dual)", 0) -GAME( 2006, bugfevero, bugfever, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfever, ROT0, "Amcoe", "Bugs Fever (Version 1.6R CGA)", 0) - -GAME( 2006, dvisland, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_dvisland, ROT0, "Amcoe", "Devil Island (Version 1.4R CGA)", 0) -GAME( 2006, dvislando, dvisland, sfbonus, amcoe1_reels3, sfbonus_state, init_dvisland, ROT0, "Amcoe", "Devil Island (Version 1.0R CGA)", 0) - -GAME( 2007, atworld, 0, sfbonus, newlk1_reels3, sfbonus_state, init_atworldd, ROT0, "Amcoe", "Around The World (Version 1.4R CGA)", 0) /* Year according to Amcoe web site */ -GAME( 2007, atworlde1, atworld, sfbonus, newlk1_reels3, sfbonus_state, init_atworld, ROT0, "Amcoe", "Around The World (Version 1.3E CGA)", 0) /* Year according to Amcoe web site */ -GAME( 2007, atworldd1, atworld, sfbonus, newlk1_reels3, sfbonus_state, init_atworldd, ROT0, "Amcoe", "Around The World (Version 1.3R CGA)", 0) /* Year according to Amcoe web site */ +GAME( 2002, suprball, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_suprball, ROT0, "Amcoe", "Super Ball (Version 1.3)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, sfbonus, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_sfbonus, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.9R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, sfbonusd1, sfbonus, sfbonus, amcoe1_reels3, sfbonus_state, init_sfbonusd, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.9R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, sfbonusv1, sfbonus, sfbonus, amcoe1_reels3, sfbonus_state, init_sfbonusv, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.9R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, sfbonuso, sfbonus, sfbonus, amcoe2_reels3, sfbonus_state, init_sfbonus, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.7)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, sfbonuso2, sfbonus, sfbonus, amcoe2_reels3, sfbonus_state, init_sfbonus, ROT0, "Amcoe", "Skill Fruit Bonus (Version 1.6)", MACHINE_SUPPORTS_SAVE ) + +GAMEL( 2004, parrot3, 0, sfbonus, amcoe1_poker, sfbonus_state, init_parrot3v, ROT0, "Amcoe", "Parrot Poker III (Version 2.6E Dual)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) +GAMEL( 2004, parrot3b1, parrot3, sfbonus, amcoe2_poker, sfbonus_state, init_pirpok2, ROT0, "Amcoe", "Parrot Poker III (Version 2.6R, set 1)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) +GAMEL( 2004, parrot3d1, parrot3, sfbonus, amcoe1_poker, sfbonus_state, init_parrot3d, ROT0, "Amcoe", "Parrot Poker III (Version 2.6R, set 2)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) +GAMEL( 2004, parrot3v1, parrot3, sfbonus, amcoe1_poker, sfbonus_state, init_parrot3v2, ROT0, "Amcoe", "Parrot Poker III (Version 2.6R Dual)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) +GAMEL( 2003, parrot3o, parrot3, sfbonus, amcoe2_poker, sfbonus_state, init_pirpok2, ROT0, "Amcoe", "Parrot Poker III (Version 2.4)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) + +GAME( 2000, hldspin1, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_hldspin1, ROT0, "Amcoe", "Hold & Spin I (Version 2.7T, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hldspin1dt, hldspin1, sfbonus, amcoe1_reels3, sfbonus_state, init_hldspin1d, ROT0, "Amcoe", "Hold & Spin I (Version 2.7T, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hldspin1vt, hldspin1, sfbonus, amcoe1_reels3, sfbonus_state, init_hldspin1v, ROT0, "Amcoe", "Hold & Spin I (Version 2.7T Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hldspin1o, hldspin1, sfbonus, amcoe2_reels3, sfbonus_state, init_hldspin1, ROT0, "Amcoe", "Hold & Spin I (Version 2.5T)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2000, hldspin2, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_hldspin2, ROT0, "Amcoe", "Hold & Spin II (Version 2.8R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hldspin2d1, hldspin2, sfbonus, amcoe1_reels3, sfbonus_state, init_hldspin2d, ROT0, "Amcoe", "Hold & Spin II (Version 2.8R, set 2)", MACHINE_SUPPORTS_SAVE ) // some text corruption on first reset (MIN PLAY etc. real game bug?) +GAME( 2000, hldspin2v1, hldspin2, sfbonus, amcoe1_reels3, sfbonus_state, init_hldspin2v, ROT0, "Amcoe", "Hold & Spin II (Version 2.8R Dual)", MACHINE_SUPPORTS_SAVE ) // some text corruption on first reset (MIN PLAY etc. real game bug?) +GAME( 2000, hldspin2o, hldspin2, sfbonus, amcoe2_reels3, sfbonus_state, init_hldspin2, ROT0, "Amcoe", "Hold & Spin II (Version 2.6)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, fcnudge, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fruitcar, ROT0, "Amcoe", "Fruit Carnival Nudge (Version 2.1 Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, fcnudgeo, fcnudge, sfbonus, amcoe2_reels3, sfbonus_state, init_fruitcar2, ROT0, "Amcoe", "Fruit Carnival Nudge (Version 2.0, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, fcnudgeo2, fcnudge, sfbonus, amcoe1_reels3, sfbonus_state, init_fruitcar3, ROT0, "Amcoe", "Fruit Carnival Nudge (Version 2.0, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, fcnudgeo3, fcnudge, sfbonus, amcoe2_reels3, sfbonus_state, init_abnudge, ROT0, "Amcoe", "Fruit Carnival Nudge (Version 1.7)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2001, pickwin, 0, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwinv2, ROT0, "Amcoe", "Pick 'n Win (Version 2.9E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pickwinb1, pickwin, sfbonus, amcoe2_reels4, sfbonus_state, init_pickwin, ROT0, "Amcoe", "Pick 'n Win (Version 2.9R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pickwind1, pickwin, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwind, ROT0, "Amcoe", "Pick 'n Win (Version 2.9R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pickwinv1, pickwin, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwinv, ROT0, "Amcoe", "Pick 'n Win (Version 2.9R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pickwinbt, pickwin, sfbonus, amcoe2_reels4, sfbonus_state, init_pickwin, ROT0, "Amcoe", "Pick 'n Win (Version 2.8T, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pickwindt, pickwin, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwind, ROT0, "Amcoe", "Pick 'n Win (Version 2.8T, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pickwinvt, pickwin, sfbonus, amcoe1_reels4, sfbonus_state, init_pickwinv, ROT0, "Amcoe", "Pick 'n Win (Version 2.8T, Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pickwino, pickwin, sfbonus, amcoe2_reels4, sfbonus_state, init_pickwin, ROT0, "Amcoe", "Pick 'n Win (Version 2.6)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pickwino2, pickwin, sfbonus, amcoe2_reels4, sfbonus_state, init_pickwin, ROT0, "Amcoe", "Pick 'n Win (Version 2.5T)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, tighook, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookv2, ROT0, "Amcoe", "Tiger Hook (Version 2.1E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tighookc1, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighook, ROT0, "Amcoe", "Tiger Hook (Version 2.1R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tighookd1, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookd, ROT0, "Amcoe", "Tiger Hook (Version 2.1R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tighookv1, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookv, ROT0, "Amcoe", "Tiger Hook (Version 2.1R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tighookc2, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighook, ROT0, "Amcoe", "Tiger Hook (Version 2.0LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tighookd2, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookd, ROT0, "Amcoe", "Tiger Hook (Version 2.0LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tighookv2, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighookv, ROT0, "Amcoe", "Tiger Hook (Version 2.0LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tighooko, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighook, ROT0, "Amcoe", "Tiger Hook (Version 1.7XT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tighooko2, tighook, sfbonus, amcoe1_reels3, sfbonus_state, init_tighook, ROT0, "Amcoe", "Tiger Hook (Version 1.7)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, robadv, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v4, ROT0, "Amcoe", "Robin's Adventure (Version 1.7E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadvc1, robadv, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure (Version 1.7R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadvd1, robadv, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2d, ROT0, "Amcoe", "Robin's Adventure (Version 1.7R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadvv1, robadv, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v1, ROT0, "Amcoe", "Robin's Adventure (Version 1.7R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadvo, robadv, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure (Version 1.5)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, robadv2, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v4, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2c1, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2d1, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2d, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2v1, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v1, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2c2, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2d2, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2d, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2v2, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v1, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2c3, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7SH, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2d3, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2d, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7SH, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2v3, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv2v1, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.7SH Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2o, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.5SH)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, robadv2o2, robadv2, sfbonus, amcoe1_reels3, sfbonus_state, init_robadv, ROT0, "Amcoe", "Robin's Adventure 2 (Version 1.5)", MACHINE_SUPPORTS_SAVE ) + +GAMEL( 2003, pirpok2, 0, sfbonus, amcoe1_poker, sfbonus_state, init_pirpok2v2, ROT0, "Amcoe", "Pirate Poker II (Version 2.4E Dual)", MACHINE_SUPPORTS_SAVE, layout_pirpok2 ) +GAMEL( 2003, pirpok2b1, pirpok2, sfbonus, amcoe2_poker, sfbonus_state, init_pirpok2, ROT0, "Amcoe", "Pirate Poker II (Version 2.2R, set 1)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) +GAMEL( 2003, pirpok2d1, pirpok2, sfbonus, amcoe1_poker, sfbonus_state, init_pirpok2d, ROT0, "Amcoe", "Pirate Poker II (Version 2.2R, set 2)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) +GAMEL( 2003, pirpok2v1, pirpok2, sfbonus, amcoe1_poker, sfbonus_state, init_pirpok2v, ROT0, "Amcoe", "Pirate Poker II (Version 2.2R Dual)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) +GAMEL( 2003, pirpok2o, pirpok2, sfbonus, amcoe2_poker, sfbonus_state, init_pirpok2, ROT0, "Amcoe", "Pirate Poker II (Version 2.0)", MACHINE_SUPPORTS_SAVE, layout_pirpok2) + +GAME( 2003, anibonus, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusv3, ROT0, "Amcoe", "Animal Bonus (Version 1.8E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusv1, anibonus, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusv, ROT0, "Amcoe", "Animal Bonus (Version 1.8R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusv2, anibonus, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusv, ROT0, "Amcoe", "Animal Bonus (Version 1.8LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusb1, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.7R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusd1, anibonus, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusd, ROT0, "Amcoe", "Animal Bonus (Version 1.7R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusb2, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.7LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusd2, anibonus, sfbonus, amcoe1_reels3, sfbonus_state, init_anibonusd, ROT0, "Amcoe", "Animal Bonus (Version 1.7LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonuso, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.5)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonuso2, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus3, ROT0, "Amcoe", "Animal Bonus (Version 1.4, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonuso3, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.4, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusxo, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.50XT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusxo2, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus3, ROT0, "Amcoe", "Animal Bonus (Version 1.40XT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anibonusxo3, anibonus, sfbonus, amcoe2_reels3, sfbonus_state, init_anibonus, ROT0, "Amcoe", "Animal Bonus (Version 1.40XT, set 2)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, abnudge, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_abnudgev, ROT0, "Amcoe", "Animal Bonus Nudge (Version 2.1 Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, abnudgeb, abnudge, sfbonus, amcoe2_reels3, sfbonus_state, init_abnudge, ROT0, "Amcoe", "Animal Bonus Nudge (Version 2.0, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, abnudged, abnudge, sfbonus, amcoe1_reels3, sfbonus_state, init_abnudged, ROT0, "Amcoe", "Animal Bonus Nudge (Version 2.0, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, abnudgeo, abnudge, sfbonus, amcoe2_reels3, sfbonus_state, init_abnudge, ROT0, "Amcoe", "Animal Bonus Nudge (Version 1.7)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, dblchal, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_dblchal, ROT0, "Amcoe", "Double Challenge (Version 1.5R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, dblchalc1, dblchal, sfbonus, amcoe1_reels3, sfbonus_state, init_dblchal, ROT0, "Amcoe", "Double Challenge (Version 1.5R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, dblchald1, dblchal, sfbonus, amcoe1_reels3, sfbonus_state, init_dblchald, ROT0, "Amcoe", "Double Challenge (Version 1.5R, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, dblchalv1, dblchal, sfbonus, amcoe1_reels3, sfbonus_state, init_dblchalv, ROT0, "Amcoe", "Double Challenge (Version 1.5R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, dblchalo, dblchal, sfbonus, amcoe2_reels3, sfbonus_state, init_dblchal, ROT0, "Amcoe", "Double Challenge (Version 1.1)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, anithunt, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_anithunt, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.9R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anithuntd1, anithunt, sfbonus, amcoe1_reels3, sfbonus_state, init_anithuntd, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.9R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anithuntv1, anithunt, sfbonus, amcoe1_reels3, sfbonus_state, init_anithuntv, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.9R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anithunto, anithunt, sfbonus, amcoe2_reels3, sfbonus_state, init_anithunt, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.7)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, anithunto2, anithunt, sfbonus, amcoe2_reels3, sfbonus_state, init_anithunt, ROT0, "Amcoe", "Animal Treasure Hunt (Version 1.5)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2002, sfruitb, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv2, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.5E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbb1, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.5R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbd1, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbd, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.5R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbv1, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.5R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbb2, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbd2, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbd, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbv2, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbo, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbo2, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 1.80XT)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2002, sfruitbh, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv2, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.2EB Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbbh, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.2B, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbdh, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbd, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.2B, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitbvh, sfruitb, sfbonus, amcoe1_reels3, sfbonus_state, init_sfruitbv, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.2B Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sfruitboh, sfruitb, sfbonus, amcoe2_reels3, sfbonus_state, init_sfruitb, ROT0, "Amcoe", "Super Fruit Bonus (Version 2.0B)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, fb2gen, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2genv3, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2genc1, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gen, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2gend1, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gend, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2genv1, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2genv, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2genc2, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gen, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2gend2, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gend, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2genv2, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2genv, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.8LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2geno, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gen, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.6XT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2geno2, fb2gen, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2gen, ROT0, "Amcoe", "Fruit Bonus 2nd Generation (Version 1.5)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, fb2nd, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2nd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2ndd1, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2ndd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2ndv1, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2ndv, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2ndc2, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2nd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2ndd2, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2ndd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2ndv2, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2ndv, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.8LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb2ndo, fb2nd, sfbonus, amcoe1_reels3, sfbonus_state, init_fb2nd, ROT0, "Amcoe", "Fruit Bonus 2nd Edition (Version 1.5)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, fb4, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4c1, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4d1, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4d, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5R, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4v1, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4v, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4exp, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4v3, ROT0, "Amcoe", "Fruit Bonus 2005 (2004 Export - Version 1.5E Dual)", MACHINE_SUPPORTS_SAVE ) // the export version has '2005' title, but is considered the same game as fb4 and labeled as such +GAME( 2004, fb4b2, fb4, sfbonus, amcoe2_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4c2, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4d2, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4d, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5LT, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4v2, fb4, sfbonus, amcoe1_reels3, sfbonus_state, init_fb4v, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.5LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4o, fb4, sfbonus, amcoe2_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.3XT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, fb4o2, fb4, sfbonus, amcoe2_reels3, sfbonus_state, init_fb4, ROT0, "Amcoe", "Fruit Bonus 2004 (Version 1.2)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1999, act2000, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000v2, ROT0, "Amcoe", "Action 2000 (Version 3.5E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000v1, act2000, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000v, ROT0, "Amcoe", "Action 2000 (Version 3.5R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000d1, act2000, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000d, ROT0, "Amcoe", "Action 2000 (Version 3.5R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000b1, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 3.5R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000vx, act2000, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000v3, ROT0, "Amcoe", "Action 2000 (Version 3.30XT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000dx, act2000, sfbonus, amcoe1_reels3, sfbonus_state, init_act2000d, ROT0, "Amcoe", "Action 2000 (Version 3.30XT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000bx, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 3.30XT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000o, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 3.3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000o2, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 3.10XT)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, act2000o3, act2000, sfbonus, amcoe2_reels3, sfbonus_state, init_act2000, ROT0, "Amcoe", "Action 2000 (Version 1.2)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2000, ch2000, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000v2, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000b1, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000c1, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000c, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000d1, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000d, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000v1, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000v, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000b2, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000c2, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000c, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000d2, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000d, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000v2, ch2000, sfbonus, amcoe1_reels3, sfbonus_state, init_ch2000v3, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000o, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9XT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000o2, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9D)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ch2000o3, ch2000, sfbonus, amcoe2_reels3, sfbonus_state, init_ch2000, ROT0, "Amcoe", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2001, pir2001, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001v2, ROT0, "Amcoe", "Pirate 2001 (Version 2.5E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001b1, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.5R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001d1, pir2001, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001d, ROT0, "Amcoe", "Pirate 2001 (Version 2.5R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001v1, pir2001, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001v, ROT0, "Amcoe", "Pirate 2001 (Version 2.5R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001bx, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.40XT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001dx, pir2001, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001d, ROT0, "Amcoe", "Pirate 2001 (Version 2.40XT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001vx, pir2001, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2001v, ROT0, "Amcoe", "Pirate 2001 (Version 2.40XT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001o, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.3N)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001o2, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2001o3, pir2001, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2001, ROT0, "Amcoe", "Pirate 2001 (Version 2.20XT)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2001, pir2002, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002v2, ROT0, "Amcoe", "Pirate 2002 (Version 2.0E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002b1, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 2.0R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002d1, pir2002, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002d, ROT0, "Amcoe", "Pirate 2002 (Version 2.0R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002v1, pir2002, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002v, ROT0, "Amcoe", "Pirate 2002 (Version 2.0R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002bx, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 1.90XT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002dx, pir2002, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002d, ROT0, "Amcoe", "Pirate 2002 (Version 1.90XT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002vx, pir2002, sfbonus, amcoe1_reels3, sfbonus_state, init_pir2002v, ROT0, "Amcoe", "Pirate 2002 (Version 1.90XT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002o, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 1.8N)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002o2, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 1.8)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pir2002o3, pir2002, sfbonus, amcoe2_reels3, sfbonus_state, init_pir2002, ROT0, "Amcoe", "Pirate 2002 (Version 1.70XT)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, classice, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_classiced3, ROT0, "Amcoe", "Classic Edition (Version 1.6E)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, classicev, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classicev3, ROT0, "Amcoe", "Classic Edition (Version 1.6E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, classice1, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classice, ROT0, "Amcoe", "Classic Edition (Version 1.6R, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, classiced1, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classiced, ROT0, "Amcoe", "Classic Edition (Version 1.6R, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, classicev1, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classicev, ROT0, "Amcoe", "Classic Edition (Version 1.6R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, classice2, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classice, ROT0, "Amcoe", "Classic Edition (Version 1.6LT, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, classiced2, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classiced, ROT0, "Amcoe", "Classic Edition (Version 1.6LT, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, classicev2, classice, sfbonus, amcoe1_reels3, sfbonus_state, init_classicev, ROT0, "Amcoe", "Classic Edition (Version 1.6LT Dual)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2005, seawld, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_seawldv, ROT0, "Amcoe", "Sea World (Version 1.6E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, seawldd1, seawld, sfbonus, amcoe1_reels3, sfbonus_state, init_seawld, ROT0, "Amcoe", "Sea World (Version 1.6R CGA)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2005, moneymac, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymacv, ROT0, "Amcoe", "Money Machine (Version 1.7E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, moneymacd1, moneymac, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymacd, ROT0, "Amcoe", "Money Machine (Version 1.7R)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, moneymacv1, moneymac, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymac, ROT0, "Amcoe", "Money Machine (Version 1.7R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, moneymacd2, moneymac, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymacd, ROT0, "Amcoe", "Money Machine (Version 1.7LT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, moneymacv2, moneymac, sfbonus, amcoe1_reels3, sfbonus_state, init_moneymac, ROT0, "Amcoe", "Money Machine (Version 1.7LT Dual)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2005, fb5, 0, sfbonus, amcoe2_reels3, sfbonus_state, init_fb5, ROT0, "Amcoe", "Fruit Bonus 2005 (Version 1.5SH, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, fb5c, fb5, sfbonus, amcoe1_reels3, sfbonus_state, init_fb5, ROT0, "Amcoe", "Fruit Bonus 2005 (Version 1.5SH, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, fb5d, fb5, sfbonus, amcoe1_reels3, sfbonus_state, init_fb5d, ROT0, "Amcoe", "Fruit Bonus 2005 (Version 1.5SH, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, fb5v, fb5, sfbonus, amcoe1_reels3, sfbonus_state, init_fb5v, ROT0, "Amcoe", "Fruit Bonus 2005 (Version 1.5SH Dual)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2005, funriver, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_funriver, ROT0, "Amcoe", "Fun River (Version 1.4R CGA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, funriverv, funriver, sfbonus, amcoe1_reels3, sfbonus_state, init_funriverv, ROT0, "Amcoe", "Fun River (Version 1.4R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, funriverd1, funriver, sfbonus, amcoe1_reels3, sfbonus_state, init_funriver, ROT0, "Amcoe", "Fun River (Version 1.3R CGA)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2006, fb6, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7E CGA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6v, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v3, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6d1, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6d, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6s1, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6s, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA, Compact PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6v1, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6d2, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6d, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6s2, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6s, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA, Compact PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6v2, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6s3, fb6, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6s, ROT0, "Amcoe", "Fruit Bonus '06 - 10th anniversary (Version 1.3R CGA, Compact PCB)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2006, fb6se, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4E CGA)", MACHINE_SUPPORTS_SAVE ) /* Released August 2006 according to Amcoe web site */ +GAME( 2006, fb6sev, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v3, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6sed1, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6d, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4R CGA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6sev1, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6sed2, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6d, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4LT CGA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, fb6sev2, fb6se, sfbonus, amcoe1_reels3, sfbonus_state, init_fb6v, ROT0, "Amcoe", "Fruit Bonus 2006 Special Edition (Version 1.4LT Dual)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2006, bugfever, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfever, ROT0, "Amcoe", "Bugs Fever (Version 1.7R CGA)", MACHINE_SUPPORTS_SAVE ) /* Released August 2006 according to Amcoe web site */ +GAME( 2006, bugfeverv, bugfever, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfeverv, ROT0, "Amcoe", "Bugs Fever (Version 1.7R Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, bugfeverd, bugfever, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfeverd, ROT0, "Amcoe", "Bugs Fever (Version 1.7E CGA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, bugfeverv2, bugfever, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfeverv2, ROT0, "Amcoe", "Bugs Fever (Version 1.7E Dual)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, bugfevero, bugfever, sfbonus, amcoe1_reels3, sfbonus_state, init_bugfever, ROT0, "Amcoe", "Bugs Fever (Version 1.6R CGA)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2006, dvisland, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_dvisland, ROT0, "Amcoe", "Devil Island (Version 1.4R CGA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, dvislando, dvisland, sfbonus, amcoe1_reels3, sfbonus_state, init_dvisland, ROT0, "Amcoe", "Devil Island (Version 1.0R CGA)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2007, atworld, 0, sfbonus, newlk1_reels3, sfbonus_state, init_atworldd, ROT0, "Amcoe", "Around The World (Version 1.4R CGA)", MACHINE_SUPPORTS_SAVE ) /* Year according to Amcoe web site */ +GAME( 2007, atworlde1, atworld, sfbonus, newlk1_reels3, sfbonus_state, init_atworld, ROT0, "Amcoe", "Around The World (Version 1.3E CGA)", MACHINE_SUPPORTS_SAVE ) /* Year according to Amcoe web site */ +GAME( 2007, atworldd1, atworld, sfbonus, newlk1_reels3, sfbonus_state, init_atworldd, ROT0, "Amcoe", "Around The World (Version 1.3R CGA)", MACHINE_SUPPORTS_SAVE ) /* Year according to Amcoe web site */ /* The following sets were produced after Around The World, but specific month and year are unknown */ -GAME( 200?, spooky, 0, sfbonus, newer1_reels3, sfbonus_state, init_spooky, ROT0, "Amcoe", "Spooky Night 2nd Edition (Version 2.0.4)", 0) -GAME( 200?, spookyo, spooky, sfbonus, newer1_reels3, sfbonus_state, init_spooky, ROT0, "Amcoe", "Spooky Night (Version 1.0.1)", 0) +GAME( 200?, spooky, 0, sfbonus, newer1_reels3, sfbonus_state, init_spooky, ROT0, "Amcoe", "Spooky Night 2nd Edition (Version 2.0.4)", MACHINE_SUPPORTS_SAVE ) +GAME( 200?, spookyo, spooky, sfbonus, newer1_reels3, sfbonus_state, init_spooky, ROT0, "Amcoe", "Spooky Night (Version 1.0.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 200?, fbdeluxe, 0, sfbonus, newer1_reels3, sfbonus_state, init_fbdeluxe, ROT0, "Amcoe", "Fruit Bonus Deluxe (Version 1.0.9)", 0) -GAME( 200?, fbdeluxeo, fbdeluxe, sfbonus, newer1_reels3, sfbonus_state, init_fbdeluxe, ROT0, "Amcoe", "Fruit Bonus Deluxe (Version 1.0.7)", 0) +GAME( 200?, fbdeluxe, 0, sfbonus, newer1_reels3, sfbonus_state, init_fbdeluxe, ROT0, "Amcoe", "Fruit Bonus Deluxe (Version 1.0.9)", MACHINE_SUPPORTS_SAVE ) +GAME( 200?, fbdeluxeo, fbdeluxe, sfbonus, newer1_reels3, sfbonus_state, init_fbdeluxe, ROT0, "Amcoe", "Fruit Bonus Deluxe (Version 1.0.7)", MACHINE_SUPPORTS_SAVE ) -GAME( 200?, fb3g, 0, sfbonus, newer1_reels3, sfbonus_state, init_fb3g, ROT0, "Amcoe", "Fruit Bonus 3G (Version 1.0.3)", 0) +GAME( 200?, fb3g, 0, sfbonus, newer1_reels3, sfbonus_state, init_fb3g, ROT0, "Amcoe", "Fruit Bonus 3G (Version 1.0.3)", MACHINE_SUPPORTS_SAVE ) -GAME( 200?, getrich, 0, sfbonus, newer1_reels3, sfbonus_state, init_getrich, ROT0, "Amcoe", "Get Rich (Version 1.0.1)", 0) +GAME( 200?, getrich, 0, sfbonus, newer1_reels3, sfbonus_state, init_getrich, ROT0, "Amcoe", "Get Rich (Version 1.0.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2009, mcircus, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_mcircus, ROT0, "Amcoe", "Merry Circus (Version 1.0.2)", 0) +GAME( 2009, mcircus, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_mcircus, ROT0, "Amcoe", "Merry Circus (Version 1.0.2)", MACHINE_SUPPORTS_SAVE ) // no graphic / sound roms dumped for these sets, but functional program roms & descramble are in place /* Version 4 is a multi-game that has New Fruit Bonus ?96 Special Edition Ver. 4, New Cherry ?96 Special Edition Ver. 4 or Skill Cherry ?97 Ver. 4 */ -GAME( 2006, version4, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_version4, ROT0, "Amcoe", "Version 4 (Version 4.3R CGA)", MACHINE_NOT_WORKING) -GAME( 2006, version4v, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4v, ROT0, "Amcoe", "Version 4 (Version 4.3R Dual)", MACHINE_NOT_WORKING) -GAME( 2006, version4d2, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4d2, ROT0, "Amcoe", "Version 4 (Version 4.3E CGA)", MACHINE_NOT_WORKING) -GAME( 2006, version4v2, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4v2, ROT0, "Amcoe", "Version 4 (Version 4.3E Dual)", MACHINE_NOT_WORKING) -GAME( 2006, version4d3, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4, ROT0, "Amcoe", "Version 4 (Version 4.3LT CGA)", MACHINE_NOT_WORKING) -GAME( 2006, version4v3, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4v, ROT0, "Amcoe", "Version 4 (Version 4.3LT Dual)",MACHINE_NOT_WORKING) -GAME( 2006, version4o, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4, ROT0, "Amcoe", "Version 4 (Version 4.2R CGA)", MACHINE_NOT_WORKING) +GAME( 2006, version4, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_version4, ROT0, "Amcoe", "Version 4 (Version 4.3R CGA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2006, version4v, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4v, ROT0, "Amcoe", "Version 4 (Version 4.3R Dual)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2006, version4d2, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4d2, ROT0, "Amcoe", "Version 4 (Version 4.3E CGA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2006, version4v2, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4v2, ROT0, "Amcoe", "Version 4 (Version 4.3E Dual)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2006, version4d3, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4, ROT0, "Amcoe", "Version 4 (Version 4.3LT CGA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2006, version4v3, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4v, ROT0, "Amcoe", "Version 4 (Version 4.3LT Dual)",MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2006, version4o, version4, sfbonus, amcoe1_reels3, sfbonus_state, init_version4, ROT0, "Amcoe", "Version 4 (Version 4.2R CGA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // Known sets but no roms dumped at all for these: // Devil Island - 14 Liner version // ?? what is this -GAME( 200?, amclink, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_sfbonus_common, ROT0, "Amcoe", "Amcoe Link Control Box (Version 2.2)", MACHINE_NOT_WORKING) +GAME( 200?, amclink, 0, sfbonus, amcoe1_reels3, sfbonus_state, init_common, ROT0, "Amcoe", "Amcoe Link Control Box (Version 2.2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) |