From 668c87dca2ed89f6fc15afe7ce15372e9363e937 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sat, 9 Feb 2019 15:29:48 +0000 Subject: [PATCH] new WORKING Gamate game + Working DBZ JAKKS + misc bits (#4614) * new WORKING Software List entries --- gamate:fortress Fortress of Fierceness [Peter Wilhelmsen] new NOT WORKING Software List entries --- ekara_japan_a:a7 A-7 Pichi Pichi Pitch Pure Chapter 3 (Japan) [Peter Wilhelmsen, Sean Riddle] ekara_japan_a:a5 A-5 Pichi Pichi Pitch Karaoke Party (Japan) [Peter Wilhelmsen, Sean Riddle] ekara_japan_a:a4 A-4 Pichi Pichi Pitch Pure Chapter 1 (Japan) [Peter Wilhelmsen, Sean Riddle] ekara_japan_a:a1 A-1 Pichi Pichi Pitch vol.1 (Japan) [Peter Wilhelmsen, Sean Riddle] new NOT WORKING clones --- Play 2000 (Super Slot & Gran Tesoro) (v7.0i) (Italy) [Peter Wilhelmsen, Morten Shearman Kirkegaard] * new WORKING machines --- Dragon Ball Z (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 19 external donators] * flag (nw) * allow 'a7' to boot (nw) * move XaviX2 sets to new files (nw) * new machines marked as NOT WORKING --- Let's TV Play Naruto [Peter Wilhelmsen, Sean Riddle] This is another XaviX2 thing. --- hash/ekara_japan.xml | 8 +- hash/ekara_japan_a.xml | 72 +++++++++++++++ hash/ekara_japan_d.xml | 12 +-- hash/ekara_japan_g.xml | 1 + hash/ekara_japan_m.xml | 35 ++++--- hash/ekara_japan_s.xml | 25 +++-- hash/gamate.xml | 13 ++- scripts/target/mame/mess.lua | 1 + src/devices/bus/ekara/rom.cpp | 54 ++++++++++- src/devices/bus/ekara/rom.h | 25 +++++ src/devices/bus/ekara/slot.cpp | 21 +++++ src/devices/bus/ekara/slot.h | 11 +++ src/devices/machine/spg2xx.cpp | 3 + src/mame/drivers/gaelco2.cpp | 85 ++++++++++++++++- src/mame/drivers/vii.cpp | 13 ++- src/mame/drivers/xavix.cpp | 35 +++---- src/mame/drivers/xavix2.cpp | 161 +++++++++++++++++++++++++++++++++ src/mame/includes/xavix.h | 30 ++++-- src/mame/mame.lst | 6 ++ src/mame/mess.flt | 1 + 20 files changed, 530 insertions(+), 82 deletions(-) create mode 100644 hash/ekara_japan_a.xml create mode 100644 src/mame/drivers/xavix2.cpp diff --git a/hash/ekara_japan.xml b/hash/ekara_japan.xml index a6e6faa2e08..61198c2eff6 100644 --- a/hash/ekara_japan.xml +++ b/hash/ekara_japan.xml @@ -801,7 +801,7 @@ - + ETZ (Japan) (EC0079-ETZ) @@ -814,7 +814,7 @@ - + @@ -831,8 +831,8 @@ - + - + diff --git a/hash/ekara_japan_a.xml b/hash/ekara_japan_a.xml new file mode 100644 index 00000000000..63cf0bc5be1 --- /dev/null +++ b/hash/ekara_japan_a.xml @@ -0,0 +1,72 @@ + + + + + + + A-1 Pichi Pichi Pitch vol.1 (Japan) + 2003 + Takara + + + + + + + + + + A-4 Pichi Pichi Pitch Pure Chapter 1 (Japan) + 2004 + Takara + + + + + + + + + + A-5 Pichi Pichi Pitch Karaoke Party (Japan) + 2004 + Takara + + + + + + + + + A-7 Pichi Pichi Pitch Pure Chapter 3 (Japan) + 2004 + Takara + + + + + + + + + diff --git a/hash/ekara_japan_d.xml b/hash/ekara_japan_d.xml index cfaa6844b09..4b978607b12 100644 --- a/hash/ekara_japan_d.xml +++ b/hash/ekara_japan_d.xml @@ -16,14 +16,14 @@ note BAT and BHT aren't the same series - D-1 DC0001- (unknown) + D-1 DC0001-BHT BHT (Best Artists?) Volume 8 (most other BHT carts are in G series, or P series) *D-2 DC0002-BAT BAT Volume 6 - D-3 DC0003-BHT BHT (Best Artists?) Volume 9? (most other BHT carts are in G series, or P series) - D-4 DC0004- (unknown) + D-3 DC0003-BHT BHT (Best Artists?) Volume 9 + D-4 DC0004-TPJ TV Pop Volume 8 *D-5 DC0005-TPJ TV Pop Volume 9 - D-6 DC0006- (seen) - D-7 DC0007- (seen) - D-8 DC0008- (seen) + D-6 DC0006-BHT BHT (Best Artists?) Volume 10 + D-7 DC0007- (untranslated) Volume 4 + D-8 DC0008-BAT BAT Volume 7? (more? what's the D highest number?) diff --git a/hash/ekara_japan_g.xml b/hash/ekara_japan_g.xml index 8430cd5df3e..2ba3ed3c38c 100644 --- a/hash/ekara_japan_g.xml +++ b/hash/ekara_japan_g.xml @@ -28,6 +28,7 @@ G-15 *GC0015-BAT BAT Volume 5 (Artist Selection?) G-16 *GC0016-TPJ TV Pop Volume 5 G-17 GC0017-TPJ TV Pop Volume 6 + G-18 GC0018-TPJ TV Pop Volume 7 (more? what's the G highest number?) diff --git a/hash/ekara_japan_m.xml b/hash/ekara_japan_m.xml index d339310a3e3..a550d05c143 100644 --- a/hash/ekara_japan_m.xml +++ b/hash/ekara_japan_m.xml @@ -5,21 +5,26 @@ Japanese cart listing (by M code) (M-x on cartridge / box, MC in cart identifier code) - M-1 *MC0001-ATM ATM Mini Volume 1 - M-2 MC0002- - M-3 MC0003- - M-4 MC0004- ? Mini Volume 4 (w-inds) - M-5 MC0005- - M-6 MC0006- - M-7 MC0007-ATM ATM Mini Volume 5 - M-8 - M-9 - M-10 - M-11 - M-12 - M-13 MC0013-KSM KSM Mini Volume 5 - M-14 - M-15 MC0015-TPM TV Pop Mini Volume 1 + M-1 *MC0001-ATM Artist Mini Volume 1 (untranslated artist) + M-2 MC0002-ATM Artist Mini Volume 2 (untranslated artist) + M-3 MC0003-ATM Artist Mini Volume 3 (untranslated artist) + M-4 MC0004-ATM Artist Mini Volume 4 (w-inds) + M-5 MC0005- KSM? unknown Vol 1 + M-6 MC0006- KSM? TPM? unknown Vol 2 (TV) + M-7 MC0007-ATM Artist Mini Volume 5 (SMAP, KinKi Kids) + M-8 MC0008- KSM? TPM? unknown Vol 3 (TV) + M-9 MC0009-KSM JPop Mix Mini Vol 1 + M-10 MC0010-ATM Artist Mini Volume 6 (untranslated artist) + M-11 MC0011- KSM? unknown Vol 4 + M-12 MC0012-ATM Artist Mini Volume 7 (untranslated artist) + M-13 *MC0013-KSM KSM Mini Volume 5 + M-14 MC0014-ATM Artist Mini Volume 8 (BoA) + M-15 MC0015- KSM? TPM? unknown Vol 6 (TV Pop) + M-16 MC0016-ATM Artist Mini Volume 9 (untranslated artist) + M-17 MC0017- KSM? TPM? TV Pop Mini Vol 7 (TV Pop) + + unsure of KSM / TMP naming, MC0005/0005/0008/0011/0013/0015/0017 all seem to be the same series + but might have different 3 letter codes (more? what's the M highest number?) diff --git a/hash/ekara_japan_s.xml b/hash/ekara_japan_s.xml index 42b6b17d9f8..0d8343e9ce8 100644 --- a/hash/ekara_japan_s.xml +++ b/hash/ekara_japan_s.xml @@ -11,30 +11,29 @@ SAI seems to be used for multiple different series here, need to look at the subtitles too S-1 SC0001- Hello Kitty Special - S-2 SC0002-SAI (unknown) - S-3 SC0003- (unknown) + S-2 SC0002-SAI SAI (series 3) Volume 1 + S-3 SC0003- unknown(1) Volume 1 S-4 *SC0004-SAI SAI (series 1) Volume 1 S-5 *SC0005-SAI SAI (series 2) Volume 1 (same series as 6,9,19,21,22) S-6 *SC0006-SAI SAI (series 2) Volume 2 (same series as 5,9,19,21,22) - S-7 SC0007- (unknown) - S-8 SC0008- (unknown) + S-7 SC0007- unknown(2) Volume 1 + S-8 SC0008-SAI SAI (series 3) Volume 2 S-9 *SC0009-SAI SAI (series 2) Volume 3 (same series as 5,6,19,21,22) S-10 *SC0010-HWK HWK (untranslated) - S-11 SC0011- (unknown) + S-11 SC0011- PostPet S-12 *SC0012-SAI SAI (series 3) Volume 3 - S-13 SC0013- (unknown) - S-14 SC0014- (unknown) - S-15 SC0015- (unknown) - S-16 SC0016- (unknown) - S-17 SC0017- (unknown) + S-13 SC0013- SAI (series 2) Volume 4 + S-14 SC0014- SAI (series 3) Volume 4 + S-15 SC0015- unknown(2) Volume 2 + S-16 SC0016-SAI SAI (series 2) Volume 5 + S-17 SC0017- unknown(1) Volume 2 S-18 SC0018-SAI (unknown) Volume 1 S-19 *SC0019-SAI SAI (series 2) Volume 6 (same series as 5,6,9,21,22) - S-20 SC0020- (unknown) Volume 5 + S-20 SC0020- SAI (series 3) Volume 5 S-21 *SC0021-SAI SAI (series 2) Volume 7 (same series as 5,6,9,19,22) S-22 *SC0022-SAI SAI (series 2) Volume 8 (same series as 5,6,9,19,21) - S-23 SC0023- (unknown) - (more? what's the S highest number?) + (more? what's the S highest number?, had S-23 noted, but can't find evidence of it now) --> diff --git a/hash/gamate.xml b/hash/gamate.xml index 46b7a4ea654..20534013173 100644 --- a/hash/gamate.xml +++ b/hash/gamate.xml @@ -11,7 +11,6 @@ C1034 - Superboy (Unreleased?) C1039 - Column #5 (Unreleased?) C1040 - ?? C1041 - Mighty Boxer -C1050 - Fortress of Fierceness C1051 - Incantational Couple C1055 - ?? C1059 - ?? @@ -536,6 +535,18 @@ C1066 - ?? + + Fortress of Fierceness + 1991 + Bit Corporation + + + + + + + + Famous 7 1993 diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index f3bd95d3a5a..fd9960a680e 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3515,6 +3515,7 @@ files { MAME_DIR .. "src/mame/machine/xavix_io.h", MAME_DIR .. "src/mame/machine/xavix2002_io.cpp", MAME_DIR .. "src/mame/machine/xavix2002_io.h", + MAME_DIR .. "src/mame/drivers/xavix2.cpp", } createMESSProjects(_target, _subtarget, "ultimachine") diff --git a/src/devices/bus/ekara/rom.cpp b/src/devices/bus/ekara/rom.cpp index cf244a5c4f0..b957fb7b048 100644 --- a/src/devices/bus/ekara/rom.cpp +++ b/src/devices/bus/ekara/rom.cpp @@ -10,6 +10,7 @@ DEFINE_DEVICE_TYPE(EKARA_ROM_PLAIN, ekara_rom_plain_device, "ekara_rom_plain", "EKARA Cartridge") DEFINE_DEVICE_TYPE(EKARA_ROM_I2C_BASE, ekara_rom_i2c_base_device, "ekara_rom_i2c_base", "EKARA Cartridge with I2C") +DEFINE_DEVICE_TYPE(EKARA_ROM_I2C_24C08_EPITCH, ekara_rom_i2c_24c08_epitch_device, "ekara_rom_i2c_24c08", "EKARA Cartridge with I2C 24C08 (e-pitch)") DEFINE_DEVICE_TYPE(EKARA_ROM_I2C_24LC04, ekara_rom_i2c_24lc04_device, "ekara_rom_i2c_24lc04", "EKARA Cartridge with I2C 24LC04") DEFINE_DEVICE_TYPE(EKARA_ROM_I2C_24LC02, ekara_rom_i2c_24lc02_device, "ekara_rom_i2c_24lc02", "EKARA Cartridge with I2C 24LC02") @@ -24,18 +25,24 @@ ekara_rom_plain_device::ekara_rom_plain_device(const machine_config &mconfig, co { } -ekara_rom_i2c_base_device::ekara_rom_i2c_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ekara_rom_plain_device(mconfig, EKARA_ROM_I2C_BASE, tag, owner, clock), - m_i2cmem(*this, "i2cmem") -{ -} + ekara_rom_i2c_base_device::ekara_rom_i2c_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : ekara_rom_plain_device(mconfig, type, tag, owner, clock), m_i2cmem(*this, "i2cmem") { + m_buscontrol[0] = m_buscontrol[1] = m_buscontrol[2] = 0x00; } +ekara_rom_i2c_base_device::ekara_rom_i2c_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + ekara_rom_i2c_base_device(mconfig, EKARA_ROM_I2C_BASE, tag, owner, clock) +{ +} + +ekara_rom_i2c_24c08_epitch_device::ekara_rom_i2c_24c08_epitch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + ekara_rom_i2c_base_device(mconfig, EKARA_ROM_I2C_24C08_EPITCH, tag, owner, clock) +{ +} ekara_rom_i2c_24lc04_device::ekara_rom_i2c_24lc04_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ekara_rom_i2c_base_device(mconfig, EKARA_ROM_I2C_24LC04, tag, owner, clock) @@ -75,6 +82,22 @@ WRITE8_MEMBER(ekara_rom_plain_device::write_rom) // i2c base +bool ekara_rom_i2c_base_device::is_read_access_not_rom(void) +{ + return (m_buscontrol[1] & 0x08) ? true : false; +} + +bool ekara_rom_i2c_base_device::is_write_access_not_rom(void) +{ + return (m_buscontrol[0] & 0x08) ? true : false; +} + +WRITE8_MEMBER(ekara_rom_i2c_base_device::write_bus_control) +{ + logerror("ekara_rom_i2c_base_device::write_bus_control %08x %02x\n", offset, data); + m_buscontrol[offset] = data; +} + WRITE8_MEMBER(ekara_rom_i2c_base_device::write_rom) { logerror("ekara_rom_i2c_base_device::write_rom %08x %02x\n", offset, data); @@ -100,6 +123,26 @@ WRITE8_MEMBER(ekara_rom_i2c_base_device::write_extra) m_i2cmem->write_scl((data & 0x02) >> 1); } +// i2c 24c08 (for epitch carts) + +bool ekara_rom_i2c_24c08_epitch_device::is_read_access_not_rom(void) +{ + // write 0x08 before reading from SEEPROM + // reads from 005fffff, cart does no accress decoding + return (m_buscontrol[1] & 0x08) ? true : false; +} + +bool ekara_rom_i2c_24c08_epitch_device::is_write_access_not_rom(void) +{ + // writes 0x05 before writing to SEEPROM + // actually writes to address 3fffff which is where a mirror of the base ROM sits, but clearly all signals route through the cartridge too + // cart does no accress decoding + return (m_buscontrol[1] & 0x04) ? true : false; +} + +MACHINE_CONFIG_START(ekara_rom_i2c_24c08_epitch_device::device_add_mconfig) + I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x400); // 24C08 +MACHINE_CONFIG_END // i2c 24lc04 @@ -121,6 +164,7 @@ MACHINE_CONFIG_END void ekara_cart(device_slot_interface &device) { device.option_add_internal("plain", EKARA_ROM_PLAIN); + device.option_add_internal("rom_24c08_epitch", EKARA_ROM_I2C_24C08_EPITCH); device.option_add_internal("rom_24lc04", EKARA_ROM_I2C_24LC04); device.option_add_internal("rom_24lc02", EKARA_ROM_I2C_24LC02); } diff --git a/src/devices/bus/ekara/rom.h b/src/devices/bus/ekara/rom.h index a765f28d6d3..29487b2921c 100644 --- a/src/devices/bus/ekara/rom.h +++ b/src/devices/bus/ekara/rom.h @@ -54,8 +54,32 @@ protected: virtual DECLARE_READ8_MEMBER(read_extra) override; virtual DECLARE_WRITE8_MEMBER(write_extra) override; + + virtual DECLARE_WRITE8_MEMBER(write_bus_control) override; + + virtual bool is_read_access_not_rom(void) override; + virtual bool is_write_access_not_rom(void) override; + + uint8_t m_buscontrol[3]; }; + +// ======================> ekara_rom_i2c_24c08_epitch_device + +class ekara_rom_i2c_24c08_epitch_device : public ekara_rom_i2c_base_device +{ +public: + // construction/destruction + ekara_rom_i2c_24c08_epitch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + virtual bool is_read_access_not_rom(void) override; + virtual bool is_write_access_not_rom(void) override; + + virtual void device_add_mconfig(machine_config &config) override; +}; + + // ======================> ekara_rom_i2c_24lc04_device class ekara_rom_i2c_24lc04_device : public ekara_rom_i2c_base_device @@ -84,6 +108,7 @@ protected: // device type definition DECLARE_DEVICE_TYPE(EKARA_ROM_PLAIN, ekara_rom_plain_device) DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_BASE, ekara_rom_i2c_base_device) +DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_24C08_EPITCH, ekara_rom_i2c_24c08_epitch_device) DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_24LC04, ekara_rom_i2c_24lc04_device) DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_24LC02, ekara_rom_i2c_24lc02_device) diff --git a/src/devices/bus/ekara/slot.cpp b/src/devices/bus/ekara/slot.cpp index 0569bb49a6c..26a72ab18f3 100644 --- a/src/devices/bus/ekara/slot.cpp +++ b/src/devices/bus/ekara/slot.cpp @@ -95,6 +95,7 @@ static const ekara_slot slot_list[] = { { EKARA_PLAIN, "plain" }, { EKARA_I2C_BASE, "i2c_base" }, + { EKARA_I2C_24C08, "rom_24c08" }, { EKARA_I2C_24LC04, "rom_24lc04" }, { EKARA_I2C_24LC02, "rom_24lc02" }, }; @@ -237,3 +238,23 @@ WRITE8_MEMBER(ekara_cart_slot_device::write_extra) m_cart->write_extra(space, offset, data); } +/*------------------------------------------------- + write control + -------------------------------------------------*/ + +WRITE8_MEMBER(ekara_cart_slot_device::write_bus_control) +{ + m_cart->write_bus_control(space, offset, data); +} + +bool ekara_cart_slot_device::is_read_access_not_rom(void) +{ + return m_cart->is_read_access_not_rom(); +} + +bool ekara_cart_slot_device::is_write_access_not_rom(void) +{ + return m_cart->is_write_access_not_rom(); +} + + diff --git a/src/devices/bus/ekara/slot.h b/src/devices/bus/ekara/slot.h index 5f871aa1dfc..d0bba77efaa 100644 --- a/src/devices/bus/ekara/slot.h +++ b/src/devices/bus/ekara/slot.h @@ -16,6 +16,7 @@ enum { EKARA_PLAIN = 0, EKARA_I2C_BASE, + EKARA_I2C_24C08, EKARA_I2C_24LC04, EKARA_I2C_24LC02, }; @@ -35,6 +36,11 @@ public: virtual DECLARE_READ8_MEMBER(read_extra) { return 0xff; } virtual DECLARE_WRITE8_MEMBER(write_extra) { } + virtual DECLARE_WRITE8_MEMBER(write_bus_control) { } + + virtual bool is_read_access_not_rom(void) { return false; } + virtual bool is_write_access_not_rom(void) { return false; } + void rom_alloc(uint32_t size, const char *tag); uint8_t* get_rom_base() { return m_rom; } uint32_t get_rom_size() { return m_rom_size; } @@ -96,6 +102,11 @@ public: virtual DECLARE_READ8_MEMBER(read_extra); virtual DECLARE_WRITE8_MEMBER(write_extra); + virtual DECLARE_WRITE8_MEMBER(write_bus_control); + + virtual bool is_read_access_not_rom(void); + virtual bool is_write_access_not_rom(void); + bool has_cart() { return m_cart ? true : false; } protected: diff --git a/src/devices/machine/spg2xx.cpp b/src/devices/machine/spg2xx.cpp index f03c3e4eb25..8a488fbcf47 100644 --- a/src/devices/machine/spg2xx.cpp +++ b/src/devices/machine/spg2xx.cpp @@ -1933,6 +1933,9 @@ void spg2xx_device::device_timer(emu_timer &timer, device_timer_id id, int param check_video_irq(); } m_screen->update_partial(m_screen->vpos()); + + // fire again, jak_dbz pinball needs this + m_screenpos_timer->adjust(m_screen->time_until_pos(m_video_regs[0x36], m_video_regs[0x37] << 1)); break; } diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp index 8bd5a577435..e13cdcd3178 100644 --- a/src/mame/drivers/gaelco2.cpp +++ b/src/mame/drivers/gaelco2.cpp @@ -590,6 +590,7 @@ READ16_MEMBER(gaelco2_state::play2000_shareram_68k_r) } logerror("%04x read from shareram %04x %04x %04x\n", pc, offset * 2, mem_mask, ret & mem_mask); + return ret; } @@ -610,7 +611,7 @@ void gaelco2_state::play2000_map(address_map &map) { map(0x000000, 0x03ffff).rom(); /* ROM */ map(0x100000, 0x100001).portr("IN0"); /* Coins + other buttons? */ - // AM_RANGE(0x110000, 0x110001) ? + map(0x110000, 0x110001).portr("IN1"); map(0x200000, 0x20ffff).ram().w(FUNC(gaelco2_state::gaelco2_vram_w)).share("spriteram"); /* Video RAM */ map(0x202890, 0x2028ff).rw("gaelco", FUNC(gaelco_gae1_device::gaelcosnd_r), FUNC(gaelco_gae1_device::gaelcosnd_w)); /* Sound Registers */ map(0x214000, 0x214fff).ram().w(FUNC(gaelco2_state::gaelco2_palette_w)).share("paletteram"); /* Palette */ @@ -634,9 +635,82 @@ static INPUT_PORTS_START( play2000 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_DIPNAME( 0x0001, 0x0001, "IN1" ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_SERVICE_NO_TOGGLE( 0x0040, IP_ACTIVE_LOW ) + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END -ROM_START( play2000 ) /* there are version 4.0 and version 1.0 strings in this, go with the higher one */ +ROM_START( play2000 ) + ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "tms27c010a.2", 0x000000, 0x020000, CRC(598102f9) SHA1(66fb6d321c886099b99d048d1f9f13cf016b9c43) ) + ROM_LOAD16_BYTE( "tms27c010a.1", 0x000001, 0x020000, CRC(e2b5d79a) SHA1(f004352ddb9bc92aab126627689b45b2ef8583b1) ) + + ROM_REGION( 0x8000, "gaelco_ds5002fp:sram", 0 ) /* DS5002FP code */ + ROM_LOAD( "ds5002fp.bin", 0x00000, 0x8000, NO_DUMP ) + + ROM_REGION( 0x100, "gaelco_ds5002fp:mcu:internal", ROMREGION_ERASE00 ) + //DS5002FP_SET_MON( x ) + //DS5002FP_SET_RPCTL( x ) + //DS5002FP_SET_CRCR( x ) + + ROM_REGION( 0x0a00000, "gfx1", 0 ) /* GFX + Sound */ + ROM_LOAD( "6.u51", 0x0000000, 0x0100000, CRC(6dafc11c) SHA1(2aa3d6318418578433b3060bda6e27adf794dea4) ) /* GFX + Sound*/ + ROM_LOAD( "4.u53", 0x0200000, 0x0080000, CRC(94dc37a7) SHA1(28f9832b61541b292682a6e2d2264abccd138a2e) ) /* GFX only */ + ROM_LOAD( "7.u50", 0x0400000, 0x0080000, CRC(e80c6d39) SHA1(b3ae5d66c48c2ba6665a181e311b0c834384258a) ) /* GFX only */ + ROM_LOAD( "5.u52", 0x0600000, 0x0080000, CRC(19b939f4) SHA1(7281709aa3ab1decb84bf7ab10492fb6ec197c80) ) /* GFX only */ + ROM_LOAD( "3.u54", 0x0800000, 0x0080000, CRC(085008ed) SHA1(06eb4f972d79eab13b1b3b6829ef280e079abdb6) ) /* GFX only */ + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "palce16v8h.u29", 0x0000, 0x0117, BAD_DUMP CRC(4a0a6f39) SHA1(57351e471649391c9abf110828fe2f128fe84eee) ) +ROM_END + + +ROM_START( play2000a ) /* there are version 4.0 and version 1.0 strings in this, go with the higher one */ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "2.u39_v4", 0x000000, 0x020000, CRC(fff16141) SHA1(8493c3e58a231c03b152b336f43422a9a2d2618c) ) ROM_LOAD16_BYTE( "1.u40_v4", 0x000001, 0x020000, CRC(39f9d58e) SHA1(1cbdae2adc570f2a2e10a707075312ef717e2643) ) @@ -695,7 +769,7 @@ REF: 990315 | |------------| | -----------------------------------------------------------------------------| */ -ROM_START( play2000a ) +ROM_START( play2000b ) /*at least 1.u40 is bad, on every 0x40 bytes the first four are always 0xff.*/ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "2.u39", 0x000000, 0x020000, BAD_DUMP CRC(9939299e) SHA1(55303a2adf199f4b5a60f57be7480b0e119f8624) ) @@ -2330,8 +2404,9 @@ GAME( 1998, bang, 0, bang, bang, bang_state, i GAME( 1998, bangj, bang, bang, bang, bang_state, init_bang, ROT0, "Gaelco", "Gun Gabacho (Japan)", 0 ) // 2-in-1 gambling game, appears to be cloned Gaelco hardware complete with DS5002FP, or possibly manufactured by Gaelco for Nova Desitec but without any Gaelco branding. -GAME( 1999, play2000, 0, play2000, play2000, gaelco2_state, empty_init, ROT0, "Nova Desitec", "Play 2000 (Super Slot & Gran Tesoro) (v4.0) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1999, play2000a, play2000, play2000, play2000, gaelco2_state, empty_init, ROT0, "Nova Desitec", "Play 2000 (Super Slot & Gran Tesoro) (v5.01) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // bad dump +GAME( 1999, play2000, 0, play2000, play2000, gaelco2_state, empty_init, ROT0, "Nova Desitec", "Play 2000 (Super Slot & Gran Tesoro) (v7.0i) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1999, play2000a, play2000, play2000, play2000, gaelco2_state, empty_init, ROT0, "Nova Desitec", "Play 2000 (Super Slot & Gran Tesoro) (v4.0i) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1999, play2000b, play2000, play2000, play2000, gaelco2_state, empty_init, ROT0, "Nova Desitec", "Play 2000 (Super Slot & Gran Tesoro) (v5.0i) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // bad dump // Gym exercise bike GAME( 1997, saltcrdi, 0, saltcrdi, saltcrdi, gaelco2_state, empty_init, ROT0, "Salter Fitness / Gaelco", "Pro Tele Cardioline (Salter Fitness Bike V.1.0, Checksum 02AB)", MACHINE_NOT_WORKING ) // there are other machines in the Cardioline series, without TV displays diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index bedce3ac290..3c346499378 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -1091,6 +1091,11 @@ ROM_START( jak_sdoo ) ROM_LOAD16_WORD_SWAP( "jakksscoobydoogkr.bin", 0x000000, 0x400000, CRC(61062ce5) SHA1(9d21767fd855385ef83e4209c429ecd4bf7e5384) ) ROM_END +ROM_START( jak_dbz ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakksdragonballzgkr.bin", 0x000000, 0x200000, CRC(d52c3b20) SHA1(fd5ce41c143cad9bca3372054f4ff98b52c33874) ) +ROM_END + ROM_START( jak_sith ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "jakksstarwarsgkr.bin", 0x000000, 0x200000, CRC(932cde19) SHA1(b88b748c235e9eeeda574e4d5b4077ae9da6fbd0) ) @@ -1288,15 +1293,18 @@ CONS( 2010, wirels60, 0, 0, wireless60, wirels60, spg2xx_game_state, empty_init, CONS( 2004, jak_batm, 0, 0, jakks, batman, spg2xx_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "The Batman (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) CONS( 2008, jak_wall, 0, 0, walle, walle, spg2xx_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wall-E (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -// 'Game-Key Ready' JAKKS games (these can also take per-game specific expansion cartridges, although not all games had them released) Some of these were available in versions without Game-Key ports, it is unconfirmed if code was the same unless otherwise stated +// 'Game-Key Ready' JAKKS games (these can also take per-game specific expansion cartridges, although not all games had them released) +// Some of these were available in versions without Game-Key ports, it is unconfirmed if code was the same unless otherwise stated +// For units released AFTER the GameKey promotion was cancelled it appears the code is the same as the PCB inside is the same, just the external port closed off, earlier units might be different hardware in some cases. CONS( 2005, jak_wwe, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "WWE (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WW (no game-keys released) CONS( 2005, jak_fan4, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Fantastic Four (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // F4 (no game-keys released) CONS( 2005, jak_just, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Taniko", "Justice League (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DC (no game-keys released) -CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Nursery Rhyme Adventure (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3+ released) - The upper part of this one is pink/purple. +CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Nursery Rhyme Adventure (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is pink/purple. // there is also a Dora the Explorer 'Race to Play Park' which is also a GameKeyReady unit with NK code, and different games - the upper part of this one is blue. CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Jolliford Management","Scooby-Doo! and the Mystery of the Castle (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // SD (no game-keys released) CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney Friends (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released) CONS( 2005, jak_sith, 0, 0, jakks_gkr_sw, jak_sith, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Griptonite Games", "Star Wars - Revenge of the Sith (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses SW keys (1 released) +CONS( 2005, jak_dbz, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dragon Ball Z (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DB (no game-keys released, 1 in development but cancelled) // Nicktoons NK (3? keys available) (same keys as Dora the Explorer) // SpongeBob SquarePants: The Fry Cook Games NK (3? keys available) ^^ @@ -1305,7 +1313,6 @@ CONS( 2005, jak_sith, 0, 0, jakks_gkr_sw, jak_sith, jakks_gkr_state, empty_init, // Spider-Man MV (1? key available) // no keys released for the following, some were in development but cancelled -// Dragon Ball Z DB (no game-keys released) // Capcom 3-in-1 CC (no game-keys released) // Care Bears CB (no game-keys released) // Wheel of Fortune WF (no game-keys released) diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp index 87b009e5ffa..eb8dedd9fba 100644 --- a/src/mame/drivers/xavix.cpp +++ b/src/mame/drivers/xavix.cpp @@ -1301,6 +1301,7 @@ void xavix_cart_state::xavix_cart_ekara(machine_config &config) SOFTWARE_LIST(config, "cart_list_japan_en").set_original("ekara_japan_en"); SOFTWARE_LIST(config, "cart_list_japan_sp").set_original("ekara_japan_sp"); SOFTWARE_LIST(config, "cart_list_japan_web").set_original("ekara_japan_web"); + SOFTWARE_LIST(config, "cart_list_japan_a").set_original("ekara_japan_a"); } void xavix_cart_state::xavix_cart_popira(machine_config &config) @@ -1550,6 +1551,11 @@ ROM_START( ekarag ) ROM_END +ROM_START( epitch ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "ekarajapan.bin", 0x600000, 0x100000, CRC(e459e43b) SHA1(58b7f36a81571a2df5e812c118fdf68812a05abc) ) + ROM_RELOAD(0x000000, 0x100000) +ROM_END ROM_START( ddrfammt ) ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) @@ -1659,6 +1665,10 @@ CONS( 2002, ekarag, ekara, 0, xavix_cart_ekara, ekara, xavix_ekara_s // the 'e-kara pro headset' has 3 songs built in for the US release. The Japanese release of this appears to be called 'e-kara H.S.' and it is unclear if it also has built in songs. The Canadian box says 'cartridge contains' instead of 'songs included' but is likely a printing error. CONS( 2002, ekaraphs, ekara, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD", "e-kara Pro Headset (US, includes 3 songs)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) +// epitch (at least the pichi pichi pitch mermaid starter pack) uses the same internal rom as the Japanese ekara, but has less buttons, so some features aren't available (some games also seem to expect to read it with a different layout eg 'a7' cart, but 'a5' cart doesn't, so must be a way to enable that mode, or bug in code?) +CONS( 2003, epitch, 0, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD", "e-pitch (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) // shows Japanese message without cart + + CONS( 2001, ddrfammt, 0, 0, xavix_cart_ddrfammt,ddrfammt, xavix_cart_state, init_xavix, "Takara / Konami / SSD Company LTD", "Dance Dance Revolution Family Mat (Japan)", MACHINE_IMPERFECT_SOUND/*|MACHINE_IS_BIOS_ROOT*/ ) CONS( 2000, popira, 0, 0, xavix_cart_popira,popira, xavix_cart_state, init_xavix, "Takara / SSD Company LTD", "Popira (Japan)", MACHINE_IMPERFECT_SOUND/*|MACHINE_IS_BIOS_ROOT*/ ) // The original Popira is a single yellow unit @@ -1824,27 +1834,4 @@ CONS( 2008, domfitex, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, in CONS( 2008, domfitch, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Challenge (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) CONS( 2007, domdance, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Dance (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - - -// Domyos DiS (unknown hardware, probably XaviX 2) -// This DOES NOT look like a 6502 based Xavix / Super Xavix! maybe XaviX 2, the cartridges contain the entire system (CPU,Video,Sound,ROM) so that is possible. -// die is marked "SSD 2002-2004 NEC 800208-51" -// Seems to have 32-bit looking stuff, possible vectors at start? - -ROM_START( domfitad ) - ROM_REGION( 0x1000000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "xpfitnessadventure.bin", 0x000000, 0x1000000, CRC(a7917081) SHA1(95ae5dc6e64a78ae060cb0e61d8b0af34a93c4ce) ) -ROM_END - -ROM_START( dombikec ) - ROM_REGION( 0x1000000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "xpbikeconcept.bin", 0x000000, 0x1000000, CRC(3447fce5) SHA1(c7e9e9cd789a17ac886ecf253f67753213cf8d21) ) -ROM_END - -// Has SEEPROM and an RTC. Adventure has the string DOMYSSDCOLTD a couple of times. -CONS( 2008, domfitad, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Adventure (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -CONS( 2008, dombikec, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Bike Concept (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - - - - +// some DIS games run on XaviX 2 instead, see xavix2.cpp for Domyos Fitness Adventure and Domyos Bike Concept diff --git a/src/mame/drivers/xavix2.cpp b/src/mame/drivers/xavix2.cpp new file mode 100644 index 00000000000..a0e6327506e --- /dev/null +++ b/src/mame/drivers/xavix2.cpp @@ -0,0 +1,161 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/****************************************************************************** + + XaviX 2 + + unknown architecture, does not appear to be 6502 derived like XaviX / SuperXaviX + + die is marked "SSD 2002-2004 NEC 800208-51" + +*******************************************************************************/ + +#include "emu.h" + +#include "screen.h" +#include "emupal.h" +#include "softlist.h" +#include "speaker.h" + +class xavix2_state : public driver_device +{ +public: + xavix2_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_screen(*this, "screen") + , m_palette(*this, "palette") + , m_gfxdecode(*this, "gfxdecode") + { } + + void xavix2(machine_config &config); + +private: + virtual void machine_start() override; + virtual void machine_reset() override; + + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + required_device m_screen; + required_device m_palette; + required_device m_gfxdecode; +}; + +uint32_t xavix2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void xavix2_state::machine_start() +{ +} + +void xavix2_state::machine_reset() +{ +} + +static INPUT_PORTS_START( xavix2 ) +INPUT_PORTS_END + +static const gfx_layout charlayout = +{ + 8,8, + RGN_FRAC(1,1), + 4, + { STEP4(0,1) }, + { 1*4,0*4,3*4,2*4,5*4,4*4,7*4,6*4 }, + { STEP8(0,4*8) }, + 8*8*4 +}; + +static const gfx_layout char16layout = +{ + 16,16, + RGN_FRAC(1,1), + 4, + { STEP4(0,1) }, + { 1*4,0*4,3*4,2*4,5*4,4*4,7*4,6*4, 9*4,8*4,11*4,10*4,13*4,12*4,15*4,14*4 }, + { STEP16(0,4*16) }, + 16*16*4 +}; + +static const gfx_layout charlayout8bpp = +{ + 8,8, + RGN_FRAC(1,1), + 8, + { STEP8(0,1) }, + { STEP8(0,8) }, + { STEP8(0,8*8) }, + 8*8*8 +}; + +static const gfx_layout char16layout8bpp = +{ + 16,16, + RGN_FRAC(1,1), + 8, + { STEP8(0,1) }, + { STEP16(0,8) }, + { STEP16(0,16*8) }, + 16*16*8 +}; + +static GFXDECODE_START( gfx_xavix ) + GFXDECODE_ENTRY( "maincpu", 0, charlayout, 0, 16 ) + GFXDECODE_ENTRY( "maincpu", 0, char16layout, 0, 16 ) + GFXDECODE_ENTRY( "maincpu", 0, charlayout8bpp, 0, 1 ) + GFXDECODE_ENTRY( "maincpu", 0, char16layout8bpp, 0, 1 ) +GFXDECODE_END + + +void xavix2_state::xavix2(machine_config &config) +{ + // unknown CPU 'SSD 2002-2004 NEC 800208-51' + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + m_screen->set_screen_update(FUNC(xavix2_state::screen_update)); + m_screen->set_size(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_palette(m_palette); + + GFXDECODE(config, m_gfxdecode, m_palette, gfx_xavix); + + PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 256); + + /* sound hardware */ + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + // unknown sound hardware +} + + +ROM_START( ltv_naru ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD( "naruto.bin", 0x000000, 0x800000, CRC(e3465ad2) SHA1(13e3d2de5d5a084635cab158f3639a1ea73265dc) ) +ROM_END + +ROM_START( domfitad ) + ROM_REGION( 0x1000000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD( "xpfitnessadventure.bin", 0x000000, 0x1000000, CRC(a7917081) SHA1(95ae5dc6e64a78ae060cb0e61d8b0af34a93c4ce) ) +ROM_END + +ROM_START( dombikec ) + ROM_REGION( 0x1000000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD( "xpbikeconcept.bin", 0x000000, 0x1000000, CRC(3447fce5) SHA1(c7e9e9cd789a17ac886ecf253f67753213cf8d21) ) +ROM_END + + +CONS( 2006, ltv_naru, 0, 0, xavix2, xavix2, xavix2_state, empty_init, "Bandai / SSD Company LTD", "Let's TV Play Naruto", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +// These are for the 'Domyos Interactive System' other Domyos Interactive System games can be found in xavix.cpp (the SoC is inside the cartridge, base acts as a 'TV adapter' only) + +// Has SEEPROM and an RTC. Adventure has the string DOMYSSDCOLTD a couple of times. +CONS( 2008, domfitad, 0, 0, xavix2, xavix2, xavix2_state, empty_init, "Decathlon / SSD Company LTD", "Domyos Fitness Adventure (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2008, dombikec, 0, 0, xavix2, xavix2, xavix2_state, empty_init, "Decathlon / SSD Company LTD", "Domyos Bike Concept (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + + + + diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h index 0e47384a852..0f463643083 100644 --- a/src/mame/includes/xavix.h +++ b/src/mame/includes/xavix.h @@ -190,7 +190,6 @@ protected: required_device m_screen; required_device m_lowbus; address_space* m_cpuspace; - uint8_t m_extbusctrl[3]; private: @@ -263,8 +262,6 @@ private: } } - DECLARE_READ8_MEMBER(extintrf_790x_r); - DECLARE_WRITE8_MEMBER(extintrf_790x_w); DECLARE_READ8_MEMBER(ioevent_enable_r); DECLARE_WRITE8_MEMBER(ioevent_enable_w); @@ -577,8 +574,12 @@ private: protected: optional_device m_xavix2002io; - // additional SuperXaviX / XaviX2002 stuff + uint8_t m_extbusctrl[3]; + virtual DECLARE_READ8_MEMBER(extintrf_790x_r); + virtual DECLARE_WRITE8_MEMBER(extintrf_790x_w); + + // additional SuperXaviX / XaviX2002 stuff uint8_t m_sx_extended_extbus[3]; DECLARE_WRITE8_MEMBER(extended_extbus_reg0_w); @@ -763,9 +764,26 @@ protected: } } + // TODO, use callbacks? + virtual DECLARE_READ8_MEMBER(extintrf_790x_r) override + { + return xavix_state::extintrf_790x_r(space,offset,mem_mask); + } + + virtual DECLARE_WRITE8_MEMBER(extintrf_790x_w) override + { + xavix_state::extintrf_790x_w(space,offset,data, mem_mask); + + if (offset < 3) + { + if (m_cartslot->has_cart()) + m_cartslot->write_bus_control(space,offset,data,mem_mask); + } + }; + virtual uint8_t extbus_r(offs_t offset) override { - if (m_extbusctrl[1] & 0x08) + if (m_cartslot->has_cart() && m_cartslot->is_read_access_not_rom()) { logerror("%s: read from external bus %06x (SEEPROM READ?)\n", machine().describe_context(), offset); return m_cartslot->read_extra(*m_cpuspace, offset); @@ -791,7 +809,7 @@ protected: } virtual void extbus_w(offs_t offset, uint8_t data) override { - if (m_extbusctrl[0] & 0x08) + if (m_cartslot->has_cart() && m_cartslot->is_write_access_not_rom()) { logerror("%s: write to external bus %06x %02x (SEEPROM WRITE?)\n", machine().describe_context(), offset, data); return m_cartslot->write_extra(*m_cpuspace, offset, data); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d4fc33c9956..79fa0fd08f7 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -13280,6 +13280,7 @@ bang // (c) 1998 - Ref ??? bangj // (c) 1999 - Ref ??? play2000 // (c) 1999 - Ref ??? play2000a // (c) 1999 - Ref ??? +play2000b // (c) 1999 - Ref ??? maniacsq // (c) 1996 - Ref 940411 maniacsqa // (c) 1996 - Ref 940411 maniacsqu // (c) 1996 - Ref 940411 - (unprotected) @@ -38668,6 +38669,7 @@ jak_dora // jak_disf // jak_sith // jak_sdoo // +jak_dbz // vii // KenSingTon / Jungle Soft / Siatronics Vii wrlshunt // Wireless: Hunting Video Game System wirels60 // Wireless 60 @@ -39846,6 +39848,7 @@ ekaraa // ekaraj // ekarag // ekaraphs // +epitch // ddrfammt // popira // taikodp // @@ -39864,6 +39867,9 @@ xavmusic // domfitex // domfitch // domdance // + +@source:xavix2.cpp +ltv_naru // domfitad // dombikec // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index b509204d526..53e93e6ce14 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -862,6 +862,7 @@ x1.cpp x1twin.cpp x68k.cpp xavix.cpp +xavix2.cpp xbox.cpp xerox820.cpp xor100.cpp