From 2208d6f74e952ffe6fe68d6ff6195fe0cf2c6e24 Mon Sep 17 00:00:00 2001 From: mamehaze <140764005+mamehaze@users.noreply.github.com> Date: Fri, 1 Mar 2024 15:51:54 +0000 Subject: [PATCH] Added various TV games and cartridges: (#12072) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nintendo/nes_clone.cpp: Added Croaky Karaoke 16-in-1. * skeleton/hudson_poems.cpp: Implemented tile flip enable flag and added Spoo Daisuki! Playmat. * tvgames/spg2xx.cpp: Added Dora TV Globe-Trotter (France) and Lexibook Junior My 1st Drawing Studio. * tvgames/xavix.cpp: Added Tokyo Friend Park 2. * gcslottv.xml: Added Juu-ou Junior cartridge. New working systems ------------- Epoch / SSD Company LTD Tokyo Friend Park 2 (Japan) [David Haywood, TeamEurope] New working clones -------------- VTech Dora the Explorer - Dora TV Globe-Trotter (France) [David Haywood, TeamEurope] New systems marked not working ------------ Croaky Karaoke 16-in-1 [David Haywood, TeamEurope] Konami Goo Choco Lantan Spoo Daisuki! Playmat [David Haywood, TeamEurope] Lexibook Junior My 1st Drawing Studio [David Haywood, TeamEurope] New software list items marked not working --------------- gcslottv.xml: Jū-ō Junior [David Haywood, TeamEurope] --- hash/gcslottv.xml | 15 +++++- src/mame/mame.lst | 5 ++ src/mame/nintendo/nes_clone.cpp | 7 +++ src/mame/skeleton/hudson_poems.cpp | 75 ++++++++++++++++++++++++------ src/mame/tvgames/spg2xx.cpp | 43 ++++++++++++++++- src/mame/tvgames/spg2xx.h | 18 +++++++ src/mame/tvgames/xavix.cpp | 20 ++++++++ 7 files changed, 167 insertions(+), 16 deletions(-) diff --git a/hash/gcslottv.xml b/hash/gcslottv.xml index ef028f02552..1576f94bd10 100644 --- a/hash/gcslottv.xml +++ b/hash/gcslottv.xml @@ -21,7 +21,7 @@ license:CC0-1.0 - + Ginginmaru TV 2002 Sammy @@ -45,6 +45,19 @@ license:CC0-1.0 + + + Jū-ō Junior + 2002 + Sammy + + + + + + + + Mōjū-ō TV 2002 diff --git a/src/mame/mame.lst b/src/mame/mame.lst index deed70a9dd3..8b53ada0cff 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -34237,6 +34237,7 @@ smb3bl @source:nintendo/nes_clone.cpp afbm7800 +croaky dancexpt digezlg dnce2000 @@ -41729,6 +41730,7 @@ ht68k // marimba // poembase poemgolf +poemspoo poemzet poemzet2 @@ -44934,6 +44936,7 @@ comil // decathln decathlna doraglob // (c) 2007 VTech +doraglobf doraglobg doraphon // (c) 2006 VTech doraphonf @@ -44949,6 +44952,7 @@ jeuint jjstrip jouet knd +lexiart lxairjet lxspidaj mattelcs // @@ -45167,6 +45171,7 @@ epo_epp3 // epo_eppk // epo_esdx // epo_guru // +epo_tfp2 // evio // gcslottv // gungunad // diff --git a/src/mame/nintendo/nes_clone.cpp b/src/mame/nintendo/nes_clone.cpp index 4b3a7364f32..38c5149cd22 100644 --- a/src/mame/nintendo/nes_clone.cpp +++ b/src/mame/nintendo/nes_clone.cpp @@ -1311,6 +1311,11 @@ ROM_START( dnce2000 ) // use Mapper 241 if you want to run this in a NES emulato ROM_LOAD( "dance.bin", 0x00000, 0x40000, CRC(0982bb50) SHA1(bd608159d7e624ea345f2a188de51cb1aa116421) ) ROM_END +ROM_START( croaky ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "croakykaraoke_16in1.bin", 0x00000, 0x80000, CRC(5f939fd6) SHA1(9dd56b1ee5f27a7d9b42c2638c6a06fac5554c9b) ) +ROM_END + ROM_START( vtvppong ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) // high bit is never set in the first 0x28000 bytes of this ROM, probably 7-bit sound data? code might need opcode bits swapping ROM_LOAD( "vtvpongcpu.bin", 0x00000, 0x40000, CRC(52df95fa) SHA1(3015bcc90eee862b3568f122b402c9defa566aab) ) @@ -1369,6 +1374,8 @@ CONS( 2004, afbm7800, 0, 0, nes_clone_afbm7800, nes_clone, nes_clone_afbm7 CONS( 200?, dnce2000, 0, 0, nes_clone_dnce2000, dnce2000, nes_clone_dnce2000_state, init_nes_clone, "Shenzhen Soyin Electric Appliance Ind. Co., Ltd.", "Dance 2000 / Hot 2000 (Jin Bao TV Dancing Carpet, SY-2000-04)", 0 ) +CONS( 2002, croaky, 0, 0, nes_clone_dnce2000, nes_clone, nes_clone_dnce2000_state, init_nes_clone, "", "Croaky Karaoke 16-in-1", MACHINE_NOT_WORKING ) // no inputs + // Black pad marked 'SUDOKU' with tails on the S and U characters looping over the logo. Box says "Plug and Play Sudoku" // Has 2 sets of 4 buttons in circular 'direction pad' layouts (on the left for directions, on the right for functions) and 9 red numbered buttons with red power LED on left of them, and reset button on right // Alt. version was released with 'New York Times' titlescreen diff --git a/src/mame/skeleton/hudson_poems.cpp b/src/mame/skeleton/hudson_poems.cpp index aa435441fa3..31f28927b65 100644 --- a/src/mame/skeleton/hudson_poems.cpp +++ b/src/mame/skeleton/hudson_poems.cpp @@ -71,8 +71,8 @@ protected: private: u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - void draw_tile(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 tile, int xx, int yy, int gfxbase, int extrapal); - void draw_tile8(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 tile, int xx, int yy, int gfxbase, int extrapal); + void draw_tile(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 tile, int xx, int yy, int gfxbase, int extrapal, bool use_flips); + void draw_tile8(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 tile, int xx, int yy, int gfxbase, int extrapal, bool use_flips); void draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void draw_tilemap(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int which, int priority); @@ -228,6 +228,11 @@ static INPUT_PORTS_START( poemzet ) PORT_START( "IN1" ) INPUT_PORTS_END +static INPUT_PORTS_START( poemspoo ) + PORT_START( "IN1" ) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + void hudson_poems_state::draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { int spritebase = (m_spritelistbase & 0x0003ffff) / 4; @@ -314,6 +319,8 @@ void hudson_poems_state::draw_tilemap(screen_device &screen, bitmap_rgb32 &bitma { int width, base, bpp, gfxbase, extrapal; + bool use_flips; + // guess, could be more/less bits, or somewhere else entirely, works for the 2 scenes that need it const int thispriority = (m_tilemapcfg[which] & 0x01f00000) >> 20; @@ -336,6 +343,14 @@ void hudson_poems_state::draw_tilemap(screen_device &screen, bitmap_rgb32 &bitma else bpp = 4; + // this might not be the correct enable flag + // marimba needs 2 of the tile bits to act as flip, while poemspoo, poembase, poemgolf use them as tile number bits + if (m_tilemapcfg[which] & 0x10000000) + use_flips = false; + else + use_flips = true; + + if (m_tilemapcfg[which] & 0x00080000) extrapal = 1; else @@ -388,13 +403,13 @@ void hudson_poems_state::draw_tilemap(screen_device &screen, bitmap_rgb32 &bitma if (bpp == 4) { - draw_tile(screen, bitmap, cliprect, (tiles & 0xffff), xpos, ypos, gfxbase, extrapal); - draw_tile(screen, bitmap, cliprect, ((tiles >> 16) & 0xffff), xpos + 8, ypos, gfxbase, extrapal); + draw_tile(screen, bitmap, cliprect, (tiles & 0xffff), xpos, ypos, gfxbase, extrapal, use_flips); + draw_tile(screen, bitmap, cliprect, ((tiles >> 16) & 0xffff), xpos + 8, ypos, gfxbase, extrapal, use_flips); } else if (bpp == 8) { - draw_tile8(screen, bitmap, cliprect, (tiles & 0xffff), xpos, ypos, gfxbase, extrapal); - draw_tile8(screen, bitmap, cliprect, ((tiles >> 16) & 0xffff), xpos + 8, ypos, gfxbase, extrapal); + draw_tile8(screen, bitmap, cliprect, (tiles & 0xffff), xpos, ypos, gfxbase, extrapal, use_flips); + draw_tile8(screen, bitmap, cliprect, ((tiles >> 16) & 0xffff), xpos + 8, ypos, gfxbase, extrapal, use_flips); } } } @@ -426,26 +441,48 @@ template u32 hudson_poems_state::tilemap_cfg_r(offs_t offset, u32 mem template u32 hudson_poems_state::tilemap_scr_r(offs_t offset, u32 mem_mask) { return m_tilemapscr[Layer]; } -void hudson_poems_state::draw_tile(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 tile, int xx, int yy, int gfxbase, int extrapal) +void hudson_poems_state::draw_tile(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 tile, int xx, int yy, int gfxbase, int extrapal, bool use_flips) { gfx_element *gfx = m_gfxdecode->gfx(2); - const int flipx = tile & 0x0800; - const int flipy = tile & 0x0400; + int flipx = 0; + int flipy = 0; int pal = (tile & 0xf000)>>12; + + if (use_flips) + { + flipx = tile & 0x0800; + flipy = tile & 0x0400; + tile &= 0x3ff; + } + else + { + tile &= 0xfff; + } + pal += extrapal * 0x10; - tile &= 0x3ff; tile += gfxbase / 32; gfx->transpen(bitmap,cliprect,tile,pal,flipx,flipy,xx,yy, 0); } -void hudson_poems_state::draw_tile8(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 tile, int xx, int yy, int gfxbase, int extrapal) +void hudson_poems_state::draw_tile8(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, u32 tile, int xx, int yy, int gfxbase, int extrapal, bool use_flips) { gfx_element *gfx = m_gfxdecode->gfx(3); - const int flipx = tile & 0x0800; - const int flipy = tile & 0x0400; + int flipx = 0; + int flipy = 0; int pal = 0;//(tile & 0xf000)>>8; + + if (use_flips) + { + flipx = tile & 0x0800; + flipy = tile & 0x0400; + tile &= 0x3ff; + } + else + { + tile &= 0xfff; + } + pal += extrapal; - tile &= 0x3ff; tile += gfxbase / 64; gfx->transpen(bitmap,cliprect,tile,pal,flipx,flipy,xx,yy, 0); } @@ -893,6 +930,14 @@ ROM_START( poemzet2 ) ROM_LOAD( "at24c08a.u3", 0x000000, 0x400, CRC(5f3d5352) SHA1(94386f5703751e66d6a62e23c344ab7711aad769) ) ROM_END +ROM_START(poemspoo) + ROM_REGION(0x800000, "maincpu", ROMREGION_ERASE00) + ROM_LOAD( "poems_spoo.u2", 0x000000, 0x400000, CRC(1ebc473a) SHA1(6ebc33f274f71183bcd4a93d06e565eff71e2f47) ) // glob with TSOP pads + + // seeprom position not populated +ROM_END + + } // anonymous namespace @@ -906,3 +951,5 @@ CONS( 2004, poembase, 0, 0, hudson_poems, poemgolf, hudson_po CONS( 2004, poemzet, 0, 0, hudson_poems, poemzet, hudson_poems_state, init_marimba, "Konami", "Zettai Zetsumei Dangerous Jiisan - Mini Game de Taiketsu ja!", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) CONS( 2005, poemzet2, 0, 0, hudson_poems, poemzet, hudson_poems_state, init_marimba, "Konami", "Zettai Zetsumei Dangerous Jiisan Party ja! Zen-in Shuugou!!", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) + +CONS( 2005, poemspoo, 0, 0, hudson_poems, poemspoo, hudson_poems_state, init_marimba, "Konami", "Goo Choco Lantan Spoo Daisuki! Playmat", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) diff --git a/src/mame/tvgames/spg2xx.cpp b/src/mame/tvgames/spg2xx.cpp index b2ca87205b9..aa6471cdfec 100644 --- a/src/mame/tvgames/spg2xx.cpp +++ b/src/mame/tvgames/spg2xx.cpp @@ -325,6 +325,14 @@ void spg2xx_game_wfcentro_state::mem_map_wfcentro(address_map &map) } +void spg2xx_game_lexiart_state::mem_map_lexiart(address_map &map) +{ + map(0x000000, 0x3fffff).bankr("cartbank"); + map(0x3f0000, 0x3f7fff).ram(); // 2 * 32Kb RAMs on PCB +} + + + static INPUT_PORTS_START( spg2xx ) // base structure for easy debugging / figuring out of inputs PORT_START("P1") PORT_DIPNAME( 0x0001, 0x0001, "P1:0001" ) @@ -477,6 +485,15 @@ static INPUT_PORTS_START( spg2xx ) // base structure for easy debugging / figuri PORT_DIPSETTING( 0x8000, "8000" ) INPUT_PORTS_END +static INPUT_PORTS_START( lexiart ) + PORT_INCLUDE( spg2xx ) + + PORT_MODIFY("P1") + PORT_DIPNAME( 0x0100, 0x0000, "Battery State" ) + PORT_DIPSETTING( 0x0000, "Ok" ) + PORT_DIPSETTING( 0x0100, "Low" ) +INPUT_PORTS_END + static INPUT_PORTS_START( itvphone ) // hold 8 and ENTER for Diagnostics mode PORT_START("P1") // note, the physical inputs are in 'phone' order, so 1 is top left, not bottom left like a PC Keypad PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 1") PORT_CODE(KEYCODE_1_PAD) @@ -1745,6 +1762,17 @@ void spg2xx_game_wfcentro_state::wfcentro(machine_config &config) m_maincpu->portc_in().set(FUNC(spg2xx_game_wfcentro_state::base_portc_r)); } +void spg2xx_game_lexiart_state::lexiart(machine_config &config) +{ + SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen); + m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_lexiart_state::mem_map_lexiart); + + spg2xx_base(config); + + m_maincpu->porta_in().set(FUNC(spg2xx_game_lexiart_state::base_porta_r)); + m_maincpu->portb_in().set(FUNC(spg2xx_game_lexiart_state::base_portb_r)); + m_maincpu->portc_in().set(FUNC(spg2xx_game_lexiart_state::base_portc_r)); +} void spg2xx_game_senwfit_state::portc_w(offs_t offset, uint16_t data, uint16_t mem_mask) @@ -2120,6 +2148,11 @@ ROM_START( doraglob ) ROM_LOAD16_WORD_SWAP( "doraglobe.bin", 0x000000, 0x800000, CRC(6f454c50) SHA1(201e2de3d90abe017a8dc141613cbf6383423d13) ) ROM_END +ROM_START( doraglobf ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "doraglobefrance.bin", 0x000000, 0x800000, CRC(7124edc1) SHA1(b144fc1f13a28299ef14f1d01f7acd2677e4ebb9) ) +ROM_END + ROM_START( doraglobg ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "doraglobegerman.bin", 0x000000, 0x800000, CRC(538aa197) SHA1(e97e0641df04074a0e45d02cecb43fbec91a4ce6) ) @@ -2140,6 +2173,11 @@ ROM_START( wfcentro ) ROM_LOAD16_WORD_SWAP( "winfuncentro.bin", 0x000000, 0x800000, CRC(fd6ad052) SHA1(78af844729bf4843dc70531349e38a8c25caf748) ) ROM_END +ROM_START( lexiart ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "lexibookartstudio.u3", 0x000000, 0x800000, CRC(fc417abb) SHA1(c0a18a2cf11c47086722f0ec88410614fed7c6f7) ) +ROM_END + ROM_START( tiktokmm ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "webcamthingy.bin", 0x000000, 0x800000, CRC(54c0d4a9) SHA1(709ee607ca447baa6f7e686268df1998372fe617) ) @@ -2278,8 +2316,9 @@ CONS( 2006, doraphon, 0, 0, doraphone, doraphone, spg2xx_game_doraphone CONS( 2006, doraphonf, doraphon, 0, doraphonep,doraphonep,spg2xx_game_doraphone_state,empty_init, "VTech", "Dora the Explorer - Dora TV Explorer Phone / L'anniversaire de Babouche (France)", MACHINE_IMPERFECT_SOUND ) // This was from a 'cost reduced' unit with the 'non-TV' mode switch and internal speaker removed, however it looks like the code was not disabled or removed as the mode is fully functional. // The ZC-Infinity video for this on YouTube shows the map scrolling to center the continent, there doesn't appear to be an input for this, different revision? -// Dutch and French localized versions also exists, which again must be different code +// a Dutch localized version also exists, which again must be different code CONS( 2007, doraglob, 0, 0, doraphone, doraglobe, spg2xx_game_doraphone_state,empty_init, "VTech", "Dora the Explorer - Dora TV Adventure Globe", MACHINE_IMPERFECT_SOUND ) +CONS( 2007, doraglobf, doraglob, 0, doraphone, doraglobe, spg2xx_game_doraphone_state,empty_init, "VTech", "Dora the Explorer - Dora TV Globe-Trotter (France)", MACHINE_IMPERFECT_SOUND ) CONS( 2007, doraglobg, doraglob, 0, doraphone, doraglobe, spg2xx_game_doraphone_state,empty_init, "VTech", "Dora the Explorer - Doras Abenteuer-Globus (Germany)", MACHINE_IMPERFECT_SOUND ) @@ -2317,5 +2356,7 @@ CONS( 2007, jeuint, ordentv, 0, ordentv, ordentv, spg2xx_game_ordentv_s CONS( 200?, wfcentro, 0, 0, wfcentro, spg2xx, spg2xx_game_wfcentro_state, empty_init, "WinFun", "Centro TV de Diseno Artistico (Spain)", MACHINE_NOT_WORKING ) +CONS( 200?, lexiart, 0, 0, lexiart, lexiart, spg2xx_game_lexiart_state, empty_init, "Lexibook", "Lexibook Junior My 1st Drawing Studio", MACHINE_NOT_WORKING ) + // set 2862 to 0003 (irq enable) when it stalls on boot to show something (doesn't turn on IRQs again otherwise?) needs camera emulating CONS( 200?, tiktokmm, 0, 0, spg2xx, spg2xx, spg2xx_game_wfcentro_state, empty_init, "TikTokTech Ltd. / 3T Games / Senario", "Moving Music (MM-TV110)", MACHINE_NOT_WORKING ) diff --git a/src/mame/tvgames/spg2xx.h b/src/mame/tvgames/spg2xx.h index 2aad7984a9c..f34f7532714 100644 --- a/src/mame/tvgames/spg2xx.h +++ b/src/mame/tvgames/spg2xx.h @@ -297,6 +297,24 @@ private: void mem_map_wfcentro(address_map& map); }; + +class spg2xx_game_lexiart_state : public spg2xx_game_state +{ +public: + spg2xx_game_lexiart_state(const machine_config &mconfig, device_type type, const char *tag) : + spg2xx_game_state(mconfig, type, tag) + { } + + void lexiart(machine_config &config); + +protected: + +private: + + void mem_map_lexiart(address_map& map); +}; + + class spg2xx_game_ordentv_state : public spg2xx_game_state { public: diff --git a/src/mame/tvgames/xavix.cpp b/src/mame/tvgames/xavix.cpp index 0084a8f59e0..6788ebdf05d 100644 --- a/src/mame/tvgames/xavix.cpp +++ b/src/mame/tvgames/xavix.cpp @@ -1178,6 +1178,18 @@ static INPUT_PORTS_START( epo_efdx ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) INPUT_PORTS_END +static INPUT_PORTS_START( epo_tfp2 ) + PORT_INCLUDE(xavix_i2c) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Player 1 Left / Red") PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 1 Right / Blue") PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Player 1 Start / Orange") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Player 2 Left / Green") PORT_PLAYER(2) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 2 Right / Pink") PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Player 2 Start / Blue") +INPUT_PORTS_END + static INPUT_PORTS_START( has_wamg ) PORT_INCLUDE(xavix) @@ -1993,6 +2005,12 @@ ROM_START( gcslottv ) ROM_LOAD( "sammyslotunit.bin", 0x000000, 0x200000, CRC(2ba6f3ab) SHA1(1c7fc0c85d817db1550d40c0258f424770e0bd81) ) ROM_END +ROM_START( epo_tfp2 ) + ROM_REGION( 0x400000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "funpark2.u1", 0x000000, 0x400000, CRC(97ad5183) SHA1(77310b42d0a015838a1cef4eb5e74cc8335284d1) ) +ROM_END + + @@ -2131,3 +2149,5 @@ CONS( 2002, gcslottv, 0, 0, xavix_cart_gcslottv, gcslottv, xavix CONS( 2006, ltv_tam, 0, 0, xavix_i2c_24lc04_tam, ltv_tam,xavix_i2c_ltv_tam_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) CONS( 2008, hikara, 0, 0, xavix_cart_hikara, hikara, xavix_hikara_state, init_xavix, "Takara Tomy / SSD Company LTD", "Hi-kara (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) + +CONS( 2003, epo_tfp2, 0, 0, xavix_i2c_24c08, epo_tfp2, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Tokyo Friend Park 2 (Japan)", MACHINE_IMPERFECT_SOUND) // uses in24lc08b