tvgames/xavix.cpp: Added Hi-kara. Also added more e-kara and evio cartridge dumps. (#11920)

* tvgames/xavix_m.cpp: Removed obsolete I2C I/O hack for Excite Fishing.
* ekara_japan_s.xml: Verified dump of Saiten Cartridge: Challenge Idol vol.2 (Japan) (SC0008-SAI) from a second cartridge.
* ekara_japan.xml: Fixed copy/paste errors in Enkamichi cartridge titles.

New systems marked not working
-------------------------
Takara Tomy / SSD Company LTD Hi-Kara (Japan)  [David Haywood, Team Europe]

New working software list items
-------------------------
ekara_japan: Enkamichi Volume 9 (Japan) (EC0064-ENK) [David Haywood, Team Europe]
ekara_japan_ac: Misora Hibari PR-06 (Japan) [David Haywood, Team Europe]
ekara_japan_g: TV Pop Junior Volume 3 (Japan) (GC0009-TPJ) [David Haywood, Team Europe]
ekara_japan_m: Kids Song Mini Volume 2 (Japan) (MC0008-KSM) [David Haywood, Team Europe]
ekara_japan_sp: Super Cartridge: Best Hit (Japan) (SP-01) [David Haywood, Team Europe]
evio: Concerto Selection [David Haywood, Team Europe]
hikara: Best Hit Collection Volume 1: J-Pop 1 [David Haywood, Team Europe]
hikara: Best Hit Collection Volume 2: J-Pop 2 [David Haywood, Team Europe]
hikara: Best Hit Collection Volume 4: Anime 1 [David Haywood, Team Europe]
hikara: Hi-kara 5-song capacity user cartridge (used, with 5 songs) [David Haywood, Team Europe]
This commit is contained in:
mamehaze 2024-01-13 21:01:03 +00:00 committed by GitHub
parent cd031d82ac
commit ce6c7e3d44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 326 additions and 58 deletions

View File

@ -145,7 +145,7 @@ license:CC0-1.0
61 *EC0061-JPM J-Pop Mix Volume 27
62 *EC0062-JPM J-Pop Mix Volume 28
63 *EC0063-JPM J-Pop Mix Volume 29
64 EC0064-ENK Enkamichi Volume 9
64 *EC0064-ENK Enkamichi Volume 9
65 *EC0065-JPM J-Pop Mix Volume 30
66 *EC0066-JPM J-Pop Mix Volume 31
67 *EC0067-JPM J-Pop Mix Volume 32
@ -263,7 +263,7 @@ license:CC0-1.0
<description>Enkamichi Volume 1 (Japan) (EC0006-ENK)</description>
<year>2000</year>
<publisher>Takara</publisher>
<info name="alt_title" value="演歌道ベスト Vol.1" />
<info name="alt_title" value="演歌道 Vol.1" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="ec0006-enk.u1" size="0x100000" crc="294a0639" sha1="f1f58057a80257c9083093be146ed287ca1aee39"/>
@ -378,7 +378,7 @@ license:CC0-1.0
<description>Enkamichi Volume 2 (Japan) (EC0016-ENK)</description>
<year>2000</year>
<publisher>Takara</publisher>
<info name="alt_title" value="演歌道ベスト Vol.2" />
<info name="alt_title" value="演歌道 Vol.2" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="ec0016-enk.u1" size="0x100000" crc="1bac5cc7" sha1="d80e266d079ea2e8a5acb8c1ed97a94c5d31e6ec"/>
@ -538,7 +538,7 @@ license:CC0-1.0
<description>Enkamichi Volume 3 (Japan) (EC0030-ENK)</description>
<year>2000</year>
<publisher>Takara</publisher>
<info name="alt_title" value="演歌道ベスト Vol.3" />
<info name="alt_title" value="演歌道 Vol.3" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="ec0030-enk.u1" size="0x100000" crc="28556ca2" sha1="bf5b14208e339369e2d719441e673bf2c6534978"/>
@ -621,7 +621,7 @@ license:CC0-1.0
<description>Enkamichi Volume 4 (Japan) (EC0037-ENK)</description>
<year>2001</year>
<publisher>Takara</publisher>
<info name="alt_title" value="演歌道ベスト Vol.4" />
<info name="alt_title" value="演歌道 Vol.4" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="ec0037-enk.u1" size="0x100000" crc="3c61036c" sha1="b09096a58f361f70041b35c29a02b768ef1758d2"/>
@ -691,7 +691,7 @@ license:CC0-1.0
<description>Enkamichi Volume 5 (Japan) (EC0043-ENK)</description>
<year>2001</year>
<publisher>Takara</publisher>
<info name="alt_title" value="演歌道ベスト Vol.5" />
<info name="alt_title" value="演歌道 Vol.5" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="ec0043-enk.u1" size="0x100000" crc="c730037d" sha1="c283b99fe4ae51adc3e13a6fae4eaffb891ec20d"/>
@ -753,7 +753,7 @@ license:CC0-1.0
<description>Enkamichi Volume 6 (Japan) (EC0048-ENK)</description>
<year>2001</year>
<publisher>Takara</publisher>
<info name="alt_title" value="演歌道ベスト Vol.6" />
<info name="alt_title" value="演歌道 Vol.6" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="ec0048-enk.u1" size="0x100000" crc="32ad1da7" sha1="7033988a6652fffca840348c68d5d54e5e28f225"/>
@ -801,7 +801,7 @@ license:CC0-1.0
<description>Enkamichi Volume 7 (Japan) (EC0052-ENK)</description>
<year>2001</year>
<publisher>Takara</publisher>
<info name="alt_title" value="演歌道ベスト Vol.7" />
<info name="alt_title" value="演歌道 Vol.7" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="ec0052-enk.u1" size="0x100000" crc="120662ff" sha1="292d15f49f6bf450662f343e805fd49c484a04ad"/>
@ -923,7 +923,17 @@ license:CC0-1.0
</part>
</software>
<!-- EC0064-ENK Enkamichi Volume 9 -->
<software name="ec0064">
<description>Enkamichi Volume 9 (Japan) (EC0064-ENK)</description>
<year>2001</year>
<publisher>Takara</publisher>
<info name="alt_title" value="演歌道 Vol.9" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="ec0064-enk.u1" size="0x100000" crc="ec2fefb3" sha1="1a56f251d32ff3eb5a20c70ac040c6e0f7d9307d"/>
</dataarea>
</part>
</software>
<software name="ec0065">
<description>J-Pop Mix Volume 30 (Japan) (EC0065-JPM)</description>

View File

@ -7,6 +7,8 @@ license:CC0-1.0
<!-- cartridges contain the ROM only, the XaviX CPU and BIOS are in the base unit -->
<!--
These are bundled/pack-in cartridges that don't appear to be part of any other series
Japanese cart listing (by AC code) * = dumped
* = dumped
@ -14,14 +16,17 @@ license:CC0-1.0
are actually 1-8 here, just lacking the actual AC markings.
see ekara_japan_a.xml
*AC0009-KIR / KR-1 Kirarin Revolution (comes in kira kara Starter Set bundled with Kirarin Revolution microphone)
the PR-06 cart also has 'AC0009' on the PCB (along with a PR0006 sticker) so this doesn't appear to a unique numbering
*KR-1 Kirarin Revolution (comes in kira kara Starter Set bundled with Kirarin Revolution microphone) (inside cart is marked AC0009-KIR)
*PR-06 Misora Hibari (inside cart is marked AC0009)
(more?)
-->
<software name="ac0009" supported="no">
<description>Kirarin Revolution KR-1 (Japan) (AC0009-KIR)</description>
<software name="kr1" supported="no">
<description>Kirarin Revolution KR-1 (Japan)</description>
<year>2007</year>
<publisher>Takara</publisher>
<info name="alt_title" value="きらりん☆レボリューション" />
@ -32,4 +37,16 @@ license:CC0-1.0
</part>
</software>
<software name="pr06" supported="no">
<description>Misora Hibari PR-06 (Japan)</description>
<year>2006</year>
<publisher>Takara</publisher>
<info name="alt_title" value="美空ひばり" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="PR-06.u1" size="0x100000" crc="a08a5e06" sha1="c0abd221733002ab120e44f01c59d478547fc0d3"/>
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -23,7 +23,7 @@ license:CC0-1.0
G-6 *GC0006-BHT Best Hit Volume 3
G-7 *GC0007-BAT Best Artist Volume 3
G-8 *GC0008-MIN mini-moni
G-9 GC0009-TPJ TV Pop Junior Volume 3 (Volume 2 is 'P-2' in 'P' series)
G-9 *GC0009-TPJ TV Pop Junior Volume 3 (Volume 2 is 'P-2' in 'P' series)
G-10 *GC0010-BAT Best Artist Volume 4
G-11 *GC0011-TPJ TV Pop Junior Volume 4
G-12 GC0012-BHT Best Hit Volume 5 (Volume 4 is 'P-1' in 'P' series)
@ -146,6 +146,18 @@ license:CC0-1.0
</part>
</software>
<software name="gc0009">
<description>TV Pop Junior Volume 3 (Japan) (GC0009-TPJ)</description>
<year>2000</year>
<publisher>Takara</publisher>
<info name="alt_title" value="TV POPジュニアVol.3"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="gc0009-tpj.u1" size="0x100000" crc="aed34640" sha1="2a55eb5e518ca18a5fd66d4e43269954015bb238"/>
</dataarea>
</part>
</software>
<!-- Notes from Sean
G10 has a 24LC02, but no 74HC125, and pin 2 isn't connected.

View File

@ -16,7 +16,7 @@ license:CC0-1.0
M-5 *MC0005-KSM Kids Song Mini Volume 1 (TV Song)
M-6 *MC0006-KSM Kids Song Mini Volume 2 (TV Hero)
M-7 *MC0007-ATM Artist Mini Volume 5 (SMAP, KinKi Kids, ARASHI, TOKIO)
M-8 MC0008- Kids Song Mini Volume 3?
M-8 *MC0008-KSM Kids Song Mini Volume 3
M-9 MC0009- JPop Mix Mini Volume 1
M-10 *MC0010-ATM Artist Mini Volume 6 (Utada Hikaru)
M-11 MC0011- Kids Song Mini Volume 4 (Fantastic)
@ -109,6 +109,18 @@ license:CC0-1.0
</part>
</software>
<software name="mc0008">
<description>Kids Song Mini Volume 2 (Japan) (MC0008-KSM)</description>
<year>2003</year>
<publisher>Takara</publisher>
<info name="alt_title" value="キッズソングミニ mini vol.3"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x080000">
<rom name="mc0008-ksm.u1" size="0x080000" crc="5238a3d4" sha1="8da36edcc6c28de31e955edca1cf893cc5d7fce3"/>
</dataarea>
</part>
</software>
<software name="mc0010">
<description>Artist Mini Volume 6 (Utada Hikaru) (Japan) (MC0010-ATM)</description>
<year>2003</year>

View File

@ -128,15 +128,15 @@ license:CC0-1.0
</part>
</software>
<!-- this crashes on the scoring screen, the same occurs on real hardware, could be bitrot or a broken revision -->
<!-- this crashes on the scoring screen, the same occurs on real hardware, ROM confirmed from 2 different cartridges, does a fixed version exist? -->
<software name="sc0008">
<description>Saiten Cartridge: Challenge Idol vol.2 (Japan) (SC0008-SAI)</description>
<description>Saiten Cartridge: Challenge Idol vol.2 (Japan) (SC0008-SAI) (broken master)</description>
<year>2001</year>
<publisher>Takara</publisher>
<info name="alt_title" value="採点カートリッジ チャレンジアイドル vol.2"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="sc0008-sai.u1" size="0x100000" crc="5d887910" sha1="5e32cccd99ba7e19974c6a9462e13cb7f8543b2a" status="baddump"/>
<rom name="sc0008-sai.u1" size="0x100000" crc="5d887910" sha1="5e32cccd99ba7e19974c6a9462e13cb7f8543b2a"/>
</dataarea>
</part>
</software>

View File

@ -25,7 +25,7 @@ license:CC0-1.0
"please play this cartridge on e-kara series, popira, popira 2, taiko de popira or jumping popira"
SP-01 'Super Cartridge' SP-01 Best Hit
*SP-01 'Super Cartridge' SP-01 Best Hit
*SP-02 'Super Cartridge' SP-02 Best Hit
*SP-03 'Super Cartridge' SP-03 TV Pop Junior
*SP-04 'Super Cartridge' SP-04 Best Hit
@ -37,6 +37,19 @@ license:CC0-1.0
-->
<software name="sp01">
<description>Super Cartridge: Best Hit (Japan) (SP-01)</description>
<year>2004</year>
<publisher>Takara</publisher>
<info name="alt_title" value="スーパーカートリッジ ベストヒット"/>
<part name="cart" interface="ekara_cart">
<feature name="slot" value="rom_24c08_epitch"/>
<dataarea name="rom" size="0x200000">
<rom name="sp01.u1" size="0x200000" crc="af1e8755" sha1="4282635c1aac5a7e2f1edf1c21127d33e713fcbc"/>
</dataarea>
</part>
</software>
<software name="sp02">
<description>Super Cartridge: Best Hit (Japan) (SP-02)</description>
<year>2004</year>

View File

@ -25,7 +25,7 @@ license:CC0-1.0
*eM10 - Anime Special - Pocket Monsters (yellow)
eM11 - Anime Mix 2
*eM12 - I Love Classic 2 (brown)
eM13 - Concerto Selection
*eM13 - Concerto Selection (dark blue)
eM14 - Disney Special 1
*eM15 - evio Selection 04 (translucent red)
*eM16 - Chisako Takashima Selection (cream/gold)
@ -179,6 +179,19 @@ license:CC0-1.0
</part>
</software>
<software name="em13" supported="no">
<description>Concerto Selection</description>
<year>2003</year>
<publisher>Tomy</publisher>
<info name="alt_title" value="コンチェルトセレクション"/>
<info name="serial" value="eM13"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x200000">
<rom name="em13.bin" size="0x080000" crc="f27756d5" sha1="90461bc44974d6a2b57ff3fa7ab3434acb6f0eef"/>
</dataarea>
</part>
</software>
<software name="em15" supported="no">
<description>evio Selection 04</description>
<year>2003</year>

111
hash/hikara.xml Normal file
View File

@ -0,0 +1,111 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
license:CC0-1.0
-->
<softwarelist name="hikara" description="Takara Tomy Hi-kara cartridges">
<!-- cartridges contain the ROM only, the XaviX CPU and BIOS are in the base unit
***********************************************************************************
cartridge pinout
01 | NC 27 | GND
02 | connects to 13 28 | NC
03 | A15 29 | NC
04 | A14 30 | NC
05 | A13 31 | NC
06 | A12 32 | VCC
07 | A11 33 | D07
08 | A10 34 | D06
09 | A09 35 | D05
10 | A08 36 | D04
11 | A07 37 | D03
12 | A06 38 | D02
13 | connects to 02 39 | D01
14 | CE 40 | D00
15 | A05 41 | GND
16 | A04 42 | WE
17 | A03 43 | OE
18 | A02 44 | VCC
19 | A01 45 | NC
20 | A00 46 | A22
21 | VCC 47 | A21
22 | NC 48 | A20
23 | NC 49 | A19
24 | NC 50 | A18
25 | NC 51 | A17
26 | GND 52 | A16
-->
<!-- User cartridges are advertised as 'prepaid' and come in 5,10, or 20 song capacity for the user to download songs to.
The service is no longer available.
-->
<!-- this one has some songs programmed into it:
キューティーハニー 倖田來未 Cutie Honey Kōda Kumi
KissHug aiko KissHug aiko
さくらんぼ 大塚愛 Sakuranbo Ōtsuka Ai
Dream Fighter Perfume Dream Fighter Perfume
ポリリズム Perfume Polyrhythm Perfume) -->
<software name="user5" supported="no">
<description>Hi-kara 5-song capacity user cartridge (used, with 5 songs) (Japan)</description>
<year>2008</year>
<publisher>Takara Tomy</publisher>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x100000">
<rom name="A29L800ATV.u1" size="0x100000" crc="679f92e9" sha1="9af880f7f09c0e616d0f0b3cd499ab42de3ab210"/>
<!-- temp patch to boot -->
<rom size="1" value="0xf0" offset="0x8ec4" loadflag="fill"/>
<rom size="1" value="0xd0" offset="0x8ec9" loadflag="fill"/>
</dataarea>
</part>
</software>
<software name="jpop1" supported="no">
<description>Best Hit Collection Volume 1: J-Pop 1 (Japan)</description>
<year>2008</year>
<publisher>Takara Tomy</publisher>
<info name="alt_title" value="ベストヒットコレクション vol.1 J-POP①"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x200000">
<rom name="bh0801001.u1" size="0x200000" crc="298dff43" sha1="c644a00154d129808261688482943b93440c33dc"/>
<!-- temp patch to boot -->
<rom size="1" value="0xf0" offset="0x93b5" loadflag="fill"/>
<rom size="1" value="0xd0" offset="0x93ba" loadflag="fill"/>
</dataarea>
</part>
</software>
<software name="jpop2" supported="no">
<description>Best Hit Collection Volume 2: J-Pop 2 (Japan)</description>
<year>2008</year>
<publisher>Takara Tomy</publisher>
<info name="alt_title" value="ベストヒットコレクション vol.2 J-POP②"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x200000">
<rom name="bh0801002.u1" size="0x200000" crc="ef4c68f3" sha1="ea9d62d6ba98f3c067f39b6d2e9d8b03d441b315"/>
<!-- temp patch to boot -->
<rom size="1" value="0xf0" offset="0x93b5" loadflag="fill"/>
<rom size="1" value="0xd0" offset="0x93ba" loadflag="fill"/>
</dataarea>
</part>
</software>
<software name="anime1" supported="no">
<description>Best Hit Collection Volume 4: Anime Song 1</description>
<year>2008</year>
<publisher>Takara Tomy</publisher>
<info name="alt_title" value="ベストヒットコレクション vol.4 アニメソング①"/>
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x200000">
<rom name="bh0802001.u1" size="0x200000" crc="1294fbcc" sha1="aa68b6aeb497837f8fed595a3537f49a2a17dd11"/>
<!-- temp patch to boot -->
<rom size="1" value="0xf0" offset="0x9412" loadflag="fill"/>
<rom size="1" value="0xd0" offset="0x9417" loadflag="fill"/>
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -45035,6 +45035,7 @@ evio //
gcslottv //
gungunad //
has_wamg //
hikara //
jarajal //
jpopira //
ltv_tam //

View File

@ -808,6 +808,41 @@ static INPUT_PORTS_START( ekara )
// no 40/80 due to multiplexer code
INPUT_PORTS_END
static INPUT_PORTS_START( hikara )
PORT_INCLUDE(xavix)
PORT_MODIFY("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_hikara_state, ekara_multi0_r)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_hikara_state, ekara_multi1_r)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_hikara_state, ekara_multi2_r)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_hikara_state, ekara_multi3_r)
PORT_START("EXTRA0")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Select")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("Key Down")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Key Up")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON10 ) PORT_NAME("Brightness Up")
PORT_START("EXTRA1")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("BGM Down")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_NAME("Brightness Down")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("BGM Up")
PORT_START("EXTRA2")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Cancel")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Tempo Up")
PORT_START("EXTRA3")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Tempo Down")
INPUT_PORTS_END
static INPUT_PORTS_START( ddrfammt )
PORT_INCLUDE(xavix)
@ -1304,16 +1339,20 @@ static GFXDECODE_START( gfx_xavix )
GFXDECODE_ENTRY( "bios", 0, char16layout8bpp, 0, 1 )
GFXDECODE_END
void xavix_state::xavix(machine_config &config)
void xavix_state::set_xavix_cpumaps(machine_config &config)
{
/* basic machine hardware */
XAVIX(config, m_maincpu, MAIN_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &xavix_state::xavix_map);
m_maincpu->set_addrmap(5, &xavix_state::xavix_lowbus_map);
m_maincpu->set_addrmap(6, &xavix_state::xavix_extbus_map);
m_maincpu->set_vblank_int("screen", FUNC(xavix_state::interrupt));
m_maincpu->set_vector_callback(FUNC(xavix_state::get_vectors));
}
void xavix_state::xavix(machine_config &config)
{
/* basic machine hardware */
XAVIX(config, m_maincpu, MAIN_CLOCK);
set_xavix_cpumaps(config);
TIMER(config, "scantimer").configure_scanline(FUNC(xavix_state::scanline_cb), "screen", 0, 1);
@ -1517,6 +1556,19 @@ void xavix_cart_state::xavix_cart_ekara(machine_config &config)
SOFTWARE_LIST(config, "cart_list_japan_ac").set_original("ekara_japan_ac");
}
void xavix_cart_state::xavix_cart_hikara(machine_config &config)
{
xavix_cart(config);
// The songs seem too slow at regular clock. It is speculated that the later
// CPU types run at ~43Mhz, so maybe this is really a XaviX 2000/2003 type chip
// with a higher clock, even if no extra opcodes are used.
m_maincpu->set_clock(MAIN_CLOCK * 2);
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("hikara");
}
void xavix_cart_state::xavix_cart_popira(machine_config &config)
{
xavix_cart(config);
@ -1886,6 +1938,14 @@ ROM_START( ekaramix )
ROM_RELOAD(0x000000, 0x200000)
ROM_END
ROM_START( hikara )
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
ROM_LOAD( "hikara.u3", 0x000000, 0x100000, CRC(6b91102a) SHA1(684dcfeaa8ac2888da2055617603494ce5fed93c) )
ROM_RELOAD(0x600000, 0x100000)
ROM_FILL(0xed19, 1, 0xf0) // temp, bypass unknown boot check
ROM_FILL(0xed1e, 1, 0xd0)
ROM_END
ROM_START( ddrfammt )
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
ROM_LOAD( "ekara_ddr_ha010_81947.bin", 0x600000, 0x200000, CRC(737d5d1a) SHA1(a1043047056dd27bca69767ee2044461ec549465) )
@ -2013,7 +2073,7 @@ CONS( 2000, epo_eppk, epo_epp, 0, xavix, epo_epp, xavix_state,
CONS( 2006, epo_epp3, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Challenge Ai-chan! Excite Ping Pong (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, epo_efdx, xavix_i2c_state, init_epo_efdx, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, epo_efdx, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 2005, epo_guru, 0, 0, xavix_guru, epo_guru, xavix_guru_state, init_xavix, "Epoch / SSD Company LTD", "Gururin World (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
@ -2068,3 +2128,5 @@ CONS( 2002, gcslottv, 0, 0, xavix_cart_gcslottv, gcslottv, xavix
// Lets!TVプレイ 超にんきスポット!ころがしほーだい たまごっちりぞーと (Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort) (only on the Japanese list? http://test.shinsedai.co.jp/english/products/Applied/list.html ) This also allows you to use an IR reciever to import a Tamagotchi from compatible games
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*/ )

View File

@ -189,6 +189,9 @@ protected:
virtual uint8_t read_io1(uint8_t direction);
virtual void write_io0(uint8_t data, uint8_t direction);
virtual void write_io1(uint8_t data, uint8_t direction);
void set_xavix_cpumaps(machine_config &config);
required_ioport m_in0;
required_ioport m_in1;
required_ioport_array<8> m_an_in;
@ -607,9 +610,7 @@ class xavix_i2c_state : public xavix_state
public:
xavix_i2c_state(const machine_config &mconfig, device_type type, const char *tag)
: xavix_state(mconfig, type, tag),
m_i2cmem(*this, "i2cmem"),
hackaddress1(-1),
hackaddress2(-1)
m_i2cmem(*this, "i2cmem")
{ }
void xavix_i2c_24lc04(machine_config &config);
@ -624,21 +625,10 @@ public:
void xavix2002_i2c_24c04(machine_config &config);
void xavix2002_i2c_mrangbat(machine_config& config);
void init_epo_efdx()
{
init_xavix();
hackaddress1 = 0x958a;
hackaddress2 = 0x8524;
}
protected:
virtual void write_io1(uint8_t data, uint8_t direction) override;
required_device<i2cmem_device> m_i2cmem;
private:
int hackaddress1;
int hackaddress2;
};
class xavix_i2c_ltv_tam_state : public xavix_i2c_state
@ -725,6 +715,7 @@ public:
void xavix_cart_popira(machine_config &config);
void xavix_cart_ddrfammt(machine_config &config);
void xavix_cart_evio(machine_config &config);
void xavix_cart_hikara(machine_config &config);
protected:
@ -969,10 +960,8 @@ public:
m_extraiowrite(0)
{ }
int ekara_multi0_r();
int ekara_multi1_r();
// void xavix_ekara(machine_config &config);
virtual int ekara_multi0_r();
virtual int ekara_multi1_r();
protected:
@ -986,5 +975,26 @@ protected:
uint8_t m_extraiowrite;
};
class xavix_hikara_state : public xavix_ekara_state
{
public:
xavix_hikara_state(const machine_config &mconfig, device_type type, const char *tag)
: xavix_ekara_state(mconfig, type, tag),
m_extra2(*this, "EXTRA2"),
m_extra3(*this, "EXTRA3")
{ }
virtual int ekara_multi0_r() override;
virtual int ekara_multi1_r() override;
int ekara_multi2_r();
int ekara_multi3_r();
protected:
required_ioport m_extra2;
required_ioport m_extra3;
};
#endif // MAME_TVGAMES_XAVIX_H

View File

@ -189,11 +189,7 @@ void xavix_state::xavix2000(machine_config &config)
xavix(config);
XAVIX2000(config.replace(), m_maincpu, MAIN_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &xavix_state::xavix_map);
m_maincpu->set_addrmap(5, &xavix_state::xavix_lowbus_map);
m_maincpu->set_addrmap(6, &xavix_state::xavix_extbus_map);
m_maincpu->set_vblank_int("screen", FUNC(xavix_state::interrupt));
m_maincpu->set_vector_callback(FUNC(xavix_state::get_vectors));
set_xavix_cpumaps(config);
m_palette->set_entries(512);
}

View File

@ -324,11 +324,8 @@ void xavix_state::xavix2002(machine_config &config)
xavix(config);
XAVIX2002(config.replace(), m_maincpu, MAIN_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &xavix_state::xavix_map);
set_xavix_cpumaps(config);
m_maincpu->set_addrmap(5, &xavix_state::superxavix_lowbus_map); // has extra video, io etc.
m_maincpu->set_addrmap(6, &xavix_state::xavix_extbus_map);
m_maincpu->set_vblank_int("screen", FUNC(xavix_state::interrupt));
m_maincpu->set_vector_callback(FUNC(xavix_state::get_vectors));
m_palette->set_entries(512);

View File

@ -416,6 +416,27 @@ int xavix_ekara_state::ekara_multi1_r()
return 0x00;
}
int xavix_hikara_state::ekara_multi0_r()
{
return (m_extraioselect & m_extra0->read() & 0x0e) ? 0x01 : 0x00;
}
int xavix_hikara_state::ekara_multi1_r()
{
return (m_extraioselect & m_extra1->read() & 0x0e) ? 0x01 : 0x00;
}
int xavix_hikara_state::ekara_multi2_r()
{
return (m_extraioselect & m_extra2->read() & 0x0e) ? 0x01 : 0x00;
}
int xavix_hikara_state::ekara_multi3_r()
{
return (m_extraioselect & m_extra3->read() & 0x0e) ? 0x01 : 0x00;
}
uint8_t xavix_state::read_io0(uint8_t direction)
{
// LOG("%s: read_io0\n", machine().describe_context());
@ -444,13 +465,6 @@ void xavix_state::write_io1(uint8_t data, uint8_t direction)
void xavix_i2c_state::write_io1(uint8_t data, uint8_t direction)
{
// ignore these writes so that epo_edfx can send read requests to the ee-prom and doesn't just report an error
// TODO: check if these writes shouldn't be happening (the first is a direct write, the 2nd is from a port direction change)
// or if the i2cmem code is oversensitive, or if something else is missing to reset the state
if (hackaddress1 != -1)
if ((m_maincpu->pc() == hackaddress1) || (m_maincpu->pc() == hackaddress2))
return;
if (direction & 0x08)
{
m_i2cmem->write_sda((data & 0x08) >> 3);