mirror of
https://github.com/holub/mame
synced 2025-04-09 18:17:44 +03:00
Added 11 TV games/handheld games (one working) and four i-Singer cartridges. (#13342)
nintendo/rp2a03_vtscr.cpp: Use RP2A03 CPU core rather than 6502 as some games seem to need it. New working clones ------------------ Sonokong / SSD Company LTD PoPiRa - Finger Sports (Korea) [David Haywood, TeamEurope, Taksangs] New systems marked not working ---------------------------- Bandai / SSD Company LTD Let's! TV Play Narikiri Fight Ultraman - Ute! Hissatsu Kousen!! (Japan) [David Haywood, TeamEurope] dreamGEAR My Arcade Tetris (DGUNL-7028, Pocket Player Pro) [Sean Riddle] dreamGEAR My Arcade Tetris (DGUNL-7029, Go Gamer, with 300 bonus games) [Sean Riddle] dreamGEAR My Arcade Tetris (DGUNL-7083, Pixel Pocket, with 10 bonus games) [Sean Riddle] Epoch / SSD Company LTD TV Mail PC mail*cot (Japan) [David Haywood, TeamEurope] Epoch / SSD Company LTD TV-PC Hello Kitty (Japan) [David Haywood, TeamEurope] Lexibook Compact Cyber Arcade - Barbie [David Haywood, TeamEurope] Nissin / SSD Company LTD Dontore da bei - Donbei-kun to Training (Japan) [David Haywood, TeamEurope] NubSup TV Interactive Extreme u-box / Extreme u-box Game Station 32Bit Interactive System - New 30 [David Haywood, TeamEurope] New clones marked not working ------------------------- Sonokong / SSD Company LTD i-Singer (Korea) [David Haywood, TeamEurope, Taksangs] New working software list items (ekara_cart.xml) -------------------------------- i-Singer Volume 2 (Korea) [David Haywood, TeamEurope, Taksangs] i-Singer Volume 3 (Korea) [David Haywood, TeamEurope, Taksangs] i-Singer Volume 11 (Korea) [David Haywood, TeamEurope, Taksangs] i-Singer Volume 14 (Korea) [David Haywood, TeamEurope, Taksangs]
This commit is contained in:
parent
a5ec778d17
commit
aa32b6e89b
@ -3741,4 +3741,52 @@ license:CC0-1.0
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="kr_vol2">
|
||||
<description>i-Singer Volume 2 (Korea)</description>
|
||||
<year>2002</year>
|
||||
<publisher>Takara / Sonokong</publisher>
|
||||
<sharedfeat name="compatibility" value="ISINGER"/>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
<dataarea name="rom" size="0x100000">
|
||||
<rom name="kr-ec002.u1" size="0x100000" crc="0c060c0f" sha1="82e0757a380617008b7313cf6b380e16804f7862"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="kr_vol3">
|
||||
<description>i-Singer Volume 3 (Korea)</description>
|
||||
<year>2002</year>
|
||||
<publisher>Takara / Sonokong</publisher>
|
||||
<sharedfeat name="compatibility" value="ISINGER"/>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
<dataarea name="rom" size="0x100000">
|
||||
<rom name="kr-ec003.u1" size="0x100000" crc="928b97a6" sha1="5900cda733298b258b114c5452e1c02b0d90cee4"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="kr_vol11">
|
||||
<description>i-Singer Volume 11 (Korea)</description>
|
||||
<year>2002</year>
|
||||
<publisher>Takara / Sonokong</publisher>
|
||||
<sharedfeat name="compatibility" value="ISINGER"/>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
<dataarea name="rom" size="0x100000">
|
||||
<rom name="kr-ec011.u1" size="0x100000" crc="effe2356" sha1="57417803b25273439fb5537a7d5aca340988eea8"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="kr_vol14">
|
||||
<description>i-Singer Volume 14 (Korea)</description>
|
||||
<year>2002</year>
|
||||
<publisher>Takara / Sonokong</publisher>
|
||||
<sharedfeat name="compatibility" value="ISINGER"/>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
<dataarea name="rom" size="0x100000">
|
||||
<rom name="kr-s001.u1" size="0x100000" crc="8a43e1b6" sha1="69eae20a395aee941a5da3a02e6c2dc6feee2391"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
@ -35038,6 +35038,7 @@ dgun2573a
|
||||
dgunl3201
|
||||
dgunl3202
|
||||
fcpocket
|
||||
matet300
|
||||
rminitv
|
||||
|
||||
@source:nintendo/nes_vt369_vtunknown.cpp
|
||||
@ -35063,6 +35064,7 @@ lxccminn
|
||||
lxccplan
|
||||
lxcmc250
|
||||
lxcmcy
|
||||
lxcmcyba
|
||||
lxcmcycr
|
||||
lxcmcydp
|
||||
lxcmcyfz
|
||||
@ -35071,6 +35073,7 @@ lxcmcypp
|
||||
lxcmcysp
|
||||
lxcmcysw
|
||||
lxcyber
|
||||
matet10
|
||||
mc_cb280
|
||||
mc_hh210
|
||||
mog_m320
|
||||
@ -39789,6 +39792,7 @@ twinktmb
|
||||
atgame40
|
||||
dgunl3227
|
||||
dgunl3227a
|
||||
matet
|
||||
mdtvp1j
|
||||
mdtvp2j
|
||||
mdtvp3j
|
||||
@ -46135,6 +46139,7 @@ fundr200
|
||||
lx_aven
|
||||
lx_frozen
|
||||
lx_jg7425
|
||||
ubox30
|
||||
zone3d
|
||||
|
||||
@source:tvgames/spg2xx.cpp
|
||||
@ -46411,6 +46416,7 @@ epo_esht
|
||||
epo_fish
|
||||
epo_guru
|
||||
epo_hamd
|
||||
epo_mail
|
||||
epo_mj
|
||||
epo_mms
|
||||
epo_mmsp
|
||||
@ -46428,12 +46434,14 @@ gungunad
|
||||
gungunrv
|
||||
has_wamg
|
||||
hikara
|
||||
isinger
|
||||
jarajal
|
||||
jpopira
|
||||
ltv_tam
|
||||
namcons1
|
||||
namcons2
|
||||
popira
|
||||
popirak
|
||||
popira2
|
||||
rad_bass
|
||||
rad_bassp
|
||||
@ -46483,6 +46491,7 @@ tomthr
|
||||
tomplc
|
||||
tvpc_dor
|
||||
tvpc_ham
|
||||
tvpc_hk
|
||||
tvpc_tom
|
||||
|
||||
@source:tvgames/xavix2.cpp
|
||||
@ -46519,6 +46528,7 @@ apmj2009
|
||||
ban_bkgj
|
||||
ban_dn1j
|
||||
ban_kksj
|
||||
ban_ult
|
||||
ban_utmj
|
||||
epo_ntpj
|
||||
epo_rgfj
|
||||
@ -46532,6 +46542,7 @@ epo_doka
|
||||
epo_tfit
|
||||
maxheart
|
||||
mrangbat
|
||||
ndpbj
|
||||
suprtvpc
|
||||
suprtvpcdo
|
||||
suprtvpchk
|
||||
|
@ -1,97 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Shah
|
||||
/***************************************************************************
|
||||
|
||||
m6502_vtscr.cpp
|
||||
|
||||
6502 with VRT VTxx instruction scrambling
|
||||
|
||||
Scrambling in newer NES-based VTxx systems (FC pocket, etc) seems to be
|
||||
enabled with a write of 5 to 0x411E, then is activated at the next jump?
|
||||
When enabled, opcodes are to be XORed with 0xA1
|
||||
|
||||
Another form of scrambling is used in the VRT VT1682, this is not yet
|
||||
implemented at all in MAME (it's used for the MiWi2 and InterAct consoles).
|
||||
This is simpler, permanently activated and consists of swapping opcode bits
|
||||
7 and 2.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "m6502_vtscr.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(M6502_VTSCR, m6502_vtscr, "m6502_vtscr", "M6502 with VTxx scrambling")
|
||||
|
||||
m6502_vtscr::m6502_vtscr(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
m6502_device(mconfig, M6502_VTSCR, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
void m6502_vtscr::device_start()
|
||||
{
|
||||
mintf = std::make_unique<mi_decrypt>();
|
||||
set_scramble(false);
|
||||
init();
|
||||
}
|
||||
|
||||
void m6502_vtscr::set_next_scramble(bool scr)
|
||||
{
|
||||
downcast<mi_decrypt &>(*mintf).m_next_scramble = scr;
|
||||
}
|
||||
|
||||
void m6502_vtscr::set_scramble(bool scr)
|
||||
{
|
||||
downcast<mi_decrypt &>(*mintf).m_next_scramble = scr;
|
||||
downcast<mi_decrypt &>(*mintf).m_scramble_en = scr;
|
||||
}
|
||||
|
||||
|
||||
void m6502_vtscr::device_reset()
|
||||
{
|
||||
set_scramble(false);
|
||||
m6502_device::device_reset();
|
||||
}
|
||||
|
||||
bool m6502_vtscr::mi_decrypt::toggle_scramble(uint8_t op) {
|
||||
return (op == 0x4C) || (op == 0x00) || (op == 0x6C);
|
||||
}
|
||||
|
||||
|
||||
uint8_t m6502_vtscr::mi_decrypt::read_sync(uint16_t adr)
|
||||
{
|
||||
uint8_t res = cprogram.read_byte(adr);
|
||||
if(m_scramble_en)
|
||||
{
|
||||
res = descramble(res);
|
||||
}
|
||||
|
||||
if(toggle_scramble(res))
|
||||
{
|
||||
m_scramble_en = m_next_scramble;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
uint8_t m6502_vtscr::mi_decrypt::descramble(uint8_t op)
|
||||
{
|
||||
return op ^ 0xA1;
|
||||
}
|
||||
|
||||
std::unique_ptr<util::disasm_interface> m6502_vtscr::create_disassembler()
|
||||
{
|
||||
return std::make_unique<disassembler>(downcast<mi_decrypt *>(mintf.get()));
|
||||
}
|
||||
|
||||
m6502_vtscr::disassembler::disassembler(mi_decrypt *mi) : mintf(mi)
|
||||
{
|
||||
}
|
||||
|
||||
u32 m6502_vtscr::disassembler::interface_flags() const
|
||||
{
|
||||
return SPLIT_DECRYPTION;
|
||||
}
|
||||
|
||||
u8 m6502_vtscr::disassembler::decrypt8(u8 value, offs_t pc, bool opcode) const
|
||||
{
|
||||
return opcode && mintf->m_scramble_en ? mintf->descramble(value) : value;
|
||||
}
|
@ -8,7 +8,6 @@
|
||||
#include "nes_vt_soc.h"
|
||||
#include "cpu/m6502/rp2a03.h"
|
||||
#include "sound/nes_apu_vt.h"
|
||||
#include "m6502_vtscr.h"
|
||||
#include "m6502_swap_op_d5_d6.h"
|
||||
#include "video/ppu2c0x_vt.h"
|
||||
#include "screen.h"
|
||||
|
@ -366,6 +366,11 @@ ROM_START( fcpocket )
|
||||
ROM_LOAD( "s29gl01gp.bin", 0x00000, 0x8000000, CRC(8703b18a) SHA1(07943443294e80ca93f83181c8bdbf950b87c52f) ) // 2nd half = 0x00 (so 64MByte of content)
|
||||
ROM_END
|
||||
|
||||
ROM_START( matet300 )
|
||||
ROM_REGION( 0x2000000, "mainrom", 0 )
|
||||
ROM_LOAD( "tetris.bin", 0x00000, 0x2000000, CRC(73cbd40a) SHA1(5996c97cebd6cec42a0ba1fba9517adf1af00098) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
@ -380,8 +385,9 @@ CONS( 2015, rminitv, 0, 0, nes_vt32_pal_32mb, nes_vt32, nes_vt32_unk_state,
|
||||
// However, sometimes the different models use the same background as this one (confirmed on one Pixel Classic at least), so there doesn't appear to be a clear way of knowing without powering them on
|
||||
CONS( 201?, dgunl3201, 0, 0, nes_vt32_32mb, nes_vt32, nes_vt32_unk_state, empty_init, "dreamGEAR", "My Arcade Data East Classics - Pixel Classic (308-in-1) (DGUNL-3201)", MACHINE_NOT_WORKING ) // from a UK unit, single 32Mbyte bank!
|
||||
CONS( 201?, dgunl3202, 0, 0, nes_vt32_32mb, nes_vt32, nes_vt32_unk_state, empty_init, "dreamGEAR", "My Arcade Data East Classics - Pixel Player (308-in-1) (DGUNL-3202)", MACHINE_NOT_WORKING ) // from a US unit single 32Mbyte bank!
|
||||
|
||||
// There was also a 34-in-1 version of the Data East Classics in a mini-cabinet, NOT running on VT hardware, but using proper arcade ROMs, that one is reportedly running an old MAME build on an ARM SoC (although some sources say FBA)
|
||||
|
||||
CONS( 2021, matet300, 0, 0, nes_vt32_32mb, nes_vt32, nes_vt32_unk_state, empty_init, "dreamGEAR", "My Arcade Tetris (DGUNL-7029, Go Gamer, with 300 bonus games)", MACHINE_NOT_WORKING )
|
||||
|
||||
// Use DIP switch to select console or cartridge, as cartridge is fake and just toggles a GPIO
|
||||
CONS( 2016, fcpocket, 0, 0, nes_vt32_4x16mb, nes_vt32_fp, nes_vt32_unk_state, empty_init, "<unknown>", "FC Pocket 600 in 1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // has external banking (2x 32mbyte banks)
|
||||
|
@ -29,7 +29,7 @@ void nes_vt32_soc_device::device_add_mconfig(machine_config& config)
|
||||
{
|
||||
nes_vt02_vt03_soc_device::device_add_mconfig(config);
|
||||
|
||||
M6502_VTSCR(config.replace(), m_maincpu, NTSC_APU_CLOCK); // are these later chips RP2A03 core, or 6502 core derived?
|
||||
RP2A03_VTSCR(config.replace(), m_maincpu, NTSC_APU_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt32_soc_device::nes_vt_fp_map);
|
||||
}
|
||||
|
||||
@ -50,16 +50,16 @@ void nes_vt32_soc_device::vtfp_411e_w(uint8_t data)
|
||||
{
|
||||
logerror("411e_w %02x\n", data);
|
||||
if (data == 0x05)
|
||||
downcast<m6502_vtscr &>(*m_maincpu).set_next_scramble(true);
|
||||
downcast<rp2a03_vtscr &>(*m_maincpu).set_next_scramble(true);
|
||||
else if (data == 0x00)
|
||||
downcast<m6502_vtscr &>(*m_maincpu).set_next_scramble(false);
|
||||
downcast<rp2a03_vtscr &>(*m_maincpu).set_next_scramble(false);
|
||||
}
|
||||
|
||||
void nes_vt32_soc_device::vtfp_4a00_w(uint8_t data)
|
||||
{
|
||||
logerror("4a00_w %02x\n", data);
|
||||
//if(data == 0x80)
|
||||
// downcast<m6502_vtscr &>(*m_maincpu).set_scramble(false);
|
||||
// downcast<rp2a03_vtscr &>(*m_maincpu).set_scramble(false);
|
||||
}
|
||||
|
||||
|
||||
|
@ -5,15 +5,18 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "m6502_swap_op_d5_d6.h"
|
||||
#include "nes_vt09_soc.h"
|
||||
#include "rp2a03_vtscr.h"
|
||||
|
||||
#include "cpu/m6502/rp2a03.h"
|
||||
#include "sound/nes_apu_vt.h"
|
||||
#include "m6502_vtscr.h"
|
||||
#include "m6502_swap_op_d5_d6.h"
|
||||
#include "video/ppu2c0x_vt.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
class nes_vt32_soc_device : public nes_vt09_soc_device
|
||||
{
|
||||
public:
|
||||
@ -22,7 +25,7 @@ public:
|
||||
protected:
|
||||
nes_vt32_soc_device(const machine_config& mconfig, device_type type, const char* tag, device_t* owner, uint32_t clock);
|
||||
|
||||
virtual void device_add_mconfig(machine_config& config) override;
|
||||
virtual void device_add_mconfig(machine_config& config) override ATTR_COLD;
|
||||
|
||||
void nes_vt_fp_map(address_map &map) ATTR_COLD;
|
||||
|
||||
@ -42,7 +45,7 @@ public:
|
||||
nes_vt32_soc_pal_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
virtual void device_add_mconfig(machine_config& config) override;
|
||||
virtual void device_add_mconfig(machine_config& config) override ATTR_COLD;
|
||||
};
|
||||
|
||||
|
||||
|
@ -170,6 +170,7 @@ public:
|
||||
|
||||
void nes_vt369_vtunknown_unk(machine_config& config);
|
||||
void nes_vt369_vtunknown_unk_1mb(machine_config& config);
|
||||
void nes_vt369_vtunknown_unk_2mb(machine_config& config);
|
||||
void nes_vt369_vtunknown_unk_4mb(machine_config& config);
|
||||
void nes_vt369_vtunknown_unk_16mb(machine_config& config);
|
||||
|
||||
@ -449,6 +450,12 @@ void nes_vt369_vtunknown_unk_state::nes_vt369_vtunknown_unk_1mb(machine_config&
|
||||
m_soc->set_addrmap(AS_PROGRAM, &nes_vt369_vtunknown_unk_state::vt_external_space_map_1mbyte);
|
||||
}
|
||||
|
||||
void nes_vt369_vtunknown_unk_state::nes_vt369_vtunknown_unk_2mb(machine_config& config)
|
||||
{
|
||||
nes_vt369_vtunknown_unk(config);
|
||||
m_soc->set_addrmap(AS_PROGRAM, &nes_vt369_vtunknown_unk_state::vt_external_space_map_2mbyte);
|
||||
}
|
||||
|
||||
void nes_vt369_vtunknown_unk_state::nes_vt369_vtunknown_unk_4mb(machine_config& config)
|
||||
{
|
||||
nes_vt369_vtunknown_unk(config);
|
||||
@ -672,6 +679,11 @@ ROM_START( lxcmcypj )
|
||||
ROM_LOAD( "cob66-1g-new02.u4", 0x00000, 0x4000000, CRC(78149671) SHA1(00dab8c0919e909e910525c18142e6a195b364f8) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( lxcmcyba )
|
||||
ROM_REGION( 0x4000000, "mainrom", 0 )
|
||||
ROM_LOAD( "barbie.bin", 0x00000, 0x4000000, CRC(e38af9d0) SHA1(a978a4da61f007c152c70233e9628dbebb427743) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( lxcmcypp )
|
||||
ROM_REGION( 0x4000000, "mainrom", 0 )
|
||||
// marked 512mbit, possible A22 / A23 are swapped as they were marked on the board in a different way.
|
||||
@ -920,6 +932,11 @@ ROM_START( lexi30 )
|
||||
ROM_LOAD( "lexi30.u3", 0x00000, 0x800000, CRC(0d4307ea) SHA1(0d7cf492f796b0bb871deebaca38a3ff3b2ed1e6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( matet10 )
|
||||
ROM_REGION( 0x200000, "mainrom", 0 )
|
||||
ROM_LOAD( "tetriskeychain_p25q16sh_856015.bin", 0x00000, 0x200000, CRC(7a7251ea) SHA1(7ace8482a54f6b06982a90328779c21266d864fa) )
|
||||
ROM_IGNORE(0x300)
|
||||
ROM_END
|
||||
|
||||
void nes_vt369_vtunknown_state::init_lxcmcypp()
|
||||
{
|
||||
@ -968,25 +985,25 @@ CONS( 2012, lexi30, 0,0, nes_vt369_vtunknown_hh_8mb, nes_vt369_vtunknown, nes_
|
||||
CONS( 2012, dgun2561, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "dreamGEAR", "My Arcade Portable Gaming System with 140 Games (DGUN-2561)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
|
||||
CONS( 2012, lxccatv, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade TV - 120 in 1 (JL2370)", MACHINE_NOT_WORKING ) // 32MByte ROM, 2011 on case, 2012 on PCB
|
||||
CONS( 200?, lxcmcy, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmc250, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - 250-in-1 (JL2375)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmcysw, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Star Wars Rebels", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmcyfz, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Frozen", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmcydp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Disney Princess", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmcysp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Marvel Ultimate Spider-Man", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmcycr, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Cars", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmcypj, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - PJ Masks", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
// All Lexibook units below have 64Mbyte ROMs, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmcy, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmc250, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - 250-in-1 (JL2375)", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcysw, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Star Wars Rebels", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcyfz, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Frozen", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcydp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Disney Princess", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcysp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Marvel Ultimate Spider-Man", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcycr, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Cars", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcypj, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - PJ Masks", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcyba, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Compact Cyber Arcade - Barbie", MACHINE_NOT_WORKING )
|
||||
// the data order is swapped for this one, maybe other internal differences?
|
||||
CONS( 200?, lxcmcypp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, init_lxcmcypp, "Lexibook", "Compact Cyber Arcade - Paw Patrol", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
|
||||
|
||||
CONS( 200?, lxccminn, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Console Colour - Minnie Mouse", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxccplan, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Console Colour - Disney's Planes", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 200?, lxcmcypp, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, init_lxcmcypp, "Lexibook", "Compact Cyber Arcade - Paw Patrol", MACHINE_NOT_WORKING )
|
||||
|
||||
CONS( 200?, lxccminn, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Console Colour - Minnie Mouse", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxccplan, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Console Colour - Disney's Planes", MACHINE_NOT_WORKING )
|
||||
|
||||
// GB-NO13-Main-VT389-2 on PCBs
|
||||
CONS( 2016, rtvgc300, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Retro TV Game Console - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 2017, rtvgc300fz,0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Retro TV Game Console - Frozen - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme
|
||||
CONS( 2016, rtvgc300, 0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Retro TV Game Console - 300 Games", MACHINE_NOT_WORKING )
|
||||
CONS( 2017, rtvgc300fz,0, 0, nes_vt369_vtunknown_cy_bigger, nes_vt369_vtunknown, nes_vt369_vtunknown_cy_state, empty_init, "Lexibook", "Retro TV Game Console - Frozen - 300 Games", MACHINE_NOT_WORKING )
|
||||
|
||||
|
||||
/* The following are also confirmed to be NES/VT derived units, most having a standard set of games with a handful of lazy graphic mods thrown in to fit the unit theme
|
||||
@ -1109,3 +1126,6 @@ CONS( 2021, tetrtin, 0, 0, nes_vt369_vtunknown_unk_1mb, nes_vt369_vtu
|
||||
|
||||
// boots, has a lower resolution screen. menu is natively in low resolution, other games should be scaled down
|
||||
CONS( 2021, unk128vt, 0, 0, nes_vt369_vtunknown_unk_4mb, nes_vt369_vtunknown, nes_vt369_vtunknown_unk_state, empty_init, "<unknown>", "unknown VT369 based 128-in-1 (GC31-369-20210702-V2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
// uses a low res display like the above
|
||||
CONS( 2021, matet10, 0, 0, nes_vt369_vtunknown_unk_2mb, nes_vt369_vtunknown, nes_vt369_vtunknown_unk_state, empty_init, "dreamGEAR", "My Arcade Tetris (DGUNL-7083, Pixel Pocket, with 10 bonus games)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
@ -8,7 +8,6 @@
|
||||
#include "nes_vt09_soc.h"
|
||||
#include "cpu/m6502/rp2a03.h"
|
||||
#include "sound/nes_apu_vt.h"
|
||||
#include "m6502_vtscr.h"
|
||||
#include "m6502_swap_op_d5_d6.h"
|
||||
#include "vt1682_alu.h"
|
||||
#include "video/ppu2c0x_vt.h"
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
#include "cpu/m6502/rp2a03.h"
|
||||
#include "sound/nes_apu_vt.h"
|
||||
#include "m6502_vtscr.h"
|
||||
#include "m6502_swap_op_d5_d6.h"
|
||||
#include "video/ppu2c0x_vt.h"
|
||||
#include "screen.h"
|
||||
|
92
src/mame/nintendo/rp2a03_vtscr.cpp
Normal file
92
src/mame/nintendo/rp2a03_vtscr.cpp
Normal file
@ -0,0 +1,92 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Shah
|
||||
/***************************************************************************
|
||||
|
||||
rp2a03_vtscr.cpp
|
||||
|
||||
RP2A03 with VRT VTxx instruction scrambling
|
||||
|
||||
Scrambling in newer NES-based VTxx systems (FC pocket, etc) seems to be
|
||||
enabled with a write of 5 to 0x411E, then is activated at the next jump?
|
||||
When enabled, opcodes are to be XORed with 0xA1
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "rp2a03_vtscr.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(RP2A03_VTSCR, rp2a03_vtscr, "rp2a03_vtscr", "RP2A03 with VTxx scrambling")
|
||||
|
||||
rp2a03_vtscr::rp2a03_vtscr(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
rp2a03_core_device(mconfig, RP2A03_VTSCR, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
void rp2a03_vtscr::device_start()
|
||||
{
|
||||
mintf = std::make_unique<mi_decrypt>();
|
||||
set_scramble(false);
|
||||
init();
|
||||
}
|
||||
|
||||
void rp2a03_vtscr::set_next_scramble(bool scr)
|
||||
{
|
||||
downcast<mi_decrypt &>(*mintf).m_next_scramble = scr;
|
||||
}
|
||||
|
||||
void rp2a03_vtscr::set_scramble(bool scr)
|
||||
{
|
||||
downcast<mi_decrypt &>(*mintf).m_next_scramble = scr;
|
||||
downcast<mi_decrypt &>(*mintf).m_scramble_en = scr;
|
||||
}
|
||||
|
||||
|
||||
void rp2a03_vtscr::device_reset()
|
||||
{
|
||||
set_scramble(false);
|
||||
rp2a03_core_device::device_reset();
|
||||
}
|
||||
|
||||
bool rp2a03_vtscr::mi_decrypt::toggle_scramble(uint8_t op) {
|
||||
return (op == 0x4c) || (op == 0x00) || (op == 0x6c);
|
||||
}
|
||||
|
||||
|
||||
uint8_t rp2a03_vtscr::mi_decrypt::read_sync(uint16_t adr)
|
||||
{
|
||||
uint8_t res = cprogram.read_byte(adr);
|
||||
if(m_scramble_en)
|
||||
{
|
||||
res = descramble(res);
|
||||
}
|
||||
|
||||
if(toggle_scramble(res))
|
||||
{
|
||||
m_scramble_en = m_next_scramble;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
uint8_t rp2a03_vtscr::mi_decrypt::descramble(uint8_t op)
|
||||
{
|
||||
return op ^ 0xa1;
|
||||
}
|
||||
|
||||
std::unique_ptr<util::disasm_interface> rp2a03_vtscr::create_disassembler()
|
||||
{
|
||||
return std::make_unique<disassembler>(downcast<mi_decrypt *>(mintf.get()));
|
||||
}
|
||||
|
||||
rp2a03_vtscr::disassembler::disassembler(mi_decrypt *mi) : mintf(mi)
|
||||
{
|
||||
}
|
||||
|
||||
u32 rp2a03_vtscr::disassembler::interface_flags() const
|
||||
{
|
||||
return SPLIT_DECRYPTION;
|
||||
}
|
||||
|
||||
u8 rp2a03_vtscr::disassembler::decrypt8(u8 value, offs_t pc, bool opcode) const
|
||||
{
|
||||
return opcode && mintf->m_scramble_en ? mintf->descramble(value) : value;
|
||||
}
|
@ -2,23 +2,23 @@
|
||||
// copyright-holders:David Shah
|
||||
/***************************************************************************
|
||||
|
||||
m6502_vtscr.h
|
||||
rp2a03_vtscr.h
|
||||
|
||||
6502 with VRT VTxx instruction scrambling
|
||||
RP2A03 with VRT VTxx instruction scrambling
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_NINTENDO_M6502_VTSCR_H
|
||||
#define MAME_NINTENDO_M6502_VTSCR_H
|
||||
#ifndef MAME_NINTENDO_RP2A03_VTSCR_H
|
||||
#define MAME_NINTENDO_RP2A03_VTSCR_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "cpu/m6502/m6502d.h"
|
||||
#include "cpu/m6502/rp2a03.h"
|
||||
#include "cpu/m6502/rp2a03d.h"
|
||||
|
||||
class m6502_vtscr : public m6502_device {
|
||||
class rp2a03_vtscr : public rp2a03_core_device {
|
||||
public:
|
||||
m6502_vtscr(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
rp2a03_vtscr(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
void set_next_scramble(bool scr);
|
||||
void set_scramble(bool scr);
|
||||
@ -38,7 +38,7 @@ protected:
|
||||
|
||||
};
|
||||
|
||||
class disassembler : public m6502_disassembler {
|
||||
class disassembler : public rp2a03_disassembler {
|
||||
public:
|
||||
mi_decrypt *mintf;
|
||||
|
||||
@ -53,6 +53,6 @@ protected:
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(M6502_VTSCR, m6502_vtscr)
|
||||
DECLARE_DEVICE_TYPE(RP2A03_VTSCR, rp2a03_vtscr)
|
||||
|
||||
#endif // MAME_NINTENDO_M6502_VTSCR_H
|
||||
#endif // MAME_NINTENDO_RP2A03_VTSCR_H
|
@ -617,6 +617,13 @@ ROM_START( dgunl3227a )
|
||||
ROM_LOAD16_WORD_SWAP( "myarcadepacman_s99jl032hbt1_9991227e_as_s29jl032h55tai01.bin", 0x000000, 0x400000, CRC(ecead966) SHA1(971e8da6eb720f670f4148c7e07922e4f24eb609) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( matet )
|
||||
ROM_REGION( 0x400000, "maincpu", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "tetrismyarcade_s29gl032n90tfi04_0001227e.bin", 0x000000, 0x400000, CRC(09b5af89) SHA1(85e506923fd803f05cc8f579f37331b608fea744) )
|
||||
ROM_IGNORE(0x100)
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( atgame40 )
|
||||
ROM_REGION( 0x1000000, "rom", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "40bonusgamesin1.bin", 0x000000, 0x1000000, CRC(4eba6e83) SHA1(b8edf1b6ecb70a136b551f1454ba8afa45bd8bc1) )
|
||||
@ -788,6 +795,8 @@ CONS( 2018, msi_sf2, 0, 0, megadriv_radica_6button_ntsc, msi_6button,
|
||||
CONS( 2018, dgunl3227, 0, 0, megadriv_dgunl_ntsc, dgunl_1player, megadriv_dgunl_state, init_dgunl3227, "dreamGEAR", "My Arcade Pac-Man Pocket Player (DGUNL-3227)", 0 )
|
||||
CONS( 2018, dgunl3227a, dgunl3227,0, megadriv_dgunl_ntsc, dgunl_1player, megadriv_dgunl_state, init_dgunl3227, "dreamGEAR", "My Arcade Pac-Man Pocket Player (DGUNL-3227, older)", 0 )
|
||||
|
||||
CONS( 2021, matet, 0, 0, megadriv_radica_3button_ntsc, radica_3button, megadriv_radica_state, init_megadriv, "dreamGEAR", "My Arcade Tetris (DGUNL-7028, Pocket Player Pro)", MACHINE_NOT_WORKING)
|
||||
|
||||
CONS( 2018, ra145, 0, 0, megadriv_ra145_ntsc, msi_6button, megadriv_ra145_state, init_ra145, "<unknown>", "Retro Arcade 16 Bits Classic Edition Mini TV Game Console - 145 Classic Games - TV Arcade Plug and Play (Mega Drive bootlegs)", MACHINE_NOT_WORKING )
|
||||
|
||||
// Technically this is a MD type cartridge, but it doesn't seem to be designed for use with a standard MD as it contains
|
||||
|
@ -201,6 +201,21 @@ ROM_START( zone3d )
|
||||
ROM_LOAD32_DWORD("internal.rom", 0x000000, 0x008000, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
ROM_START( ubox30 )
|
||||
ROM_REGION( 0x200000, "extrom", 0 ) // SPI ROM in this case
|
||||
ROM_LOAD("ubox_xm25qe16bzig_204015.bin", 0x000000, 0x200000, CRC(f8135947) SHA1(f2a075ae2b0bae186202f1019b566ffc411742bb) )
|
||||
ROM_IGNORE(0x300)
|
||||
|
||||
DISK_REGION( "cfcard" )
|
||||
DISK_IMAGE( "ubox_sd_512", 0, SHA1(99f2f1437d644a5e1fe48ce1445acf48fb8b0359) )
|
||||
|
||||
ROM_REGION( 0x008000, "spg290", ROMREGION_32BIT | ROMREGION_LE )
|
||||
ROM_LOAD32_DWORD("internal.rom", 0x000000, 0x008000, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
CONS( 2015, fundr200, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init, "Funderdome", "Funderdome Video Game Entertainment System 200+ Games (FUN-GAME32-1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // FUN-GAME32-1 on manual
|
||||
@ -210,3 +225,12 @@ CONS( 2016, lx_frozen, 0, 0, lexibook_jg7425, lexibook_jg7425, l
|
||||
|
||||
// slightly different, but same basic structure of the external ROM
|
||||
COMP( 201?, zone3d, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init,"Zone", "Zone 3D", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
|
||||
// Unknown hardware, HDMI dongle with wireless pads.
|
||||
// Uses standard chips, not globs, but surface details on CPU/SoC have been erased.
|
||||
//
|
||||
// It has the GPspispi header, so is definitely a GeneralPlus / SunPlus chip, and it has a mix of '32-bit' games
|
||||
// as well as some 8-bit NES/FC games presumably running on an emulator like the above units, but the code in the
|
||||
// SPI ROM does not seem to disassemble to anything meaningful, maybe compressed?
|
||||
// Front and back have slightly different product names, unknown if NubSup is the manufacturer or part of the product name
|
||||
COMP( 201?, ubox30, 0, 0, lexibook_jg7425, lexibook_jg7425, lexibook_jg7425_state, empty_init,"<unknown>", "NubSup TV Interactive Extreme u-box / Extreme u-box Game Station 32Bit Interactive System - New 30", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
|
@ -37,17 +37,10 @@
|
||||
2006 Hello Kitty カードでおままごと あいうおえ図鑑 / エポック社 / 日本 Hello Kitty Play House with Cards Aiuoe Illustrated Book / Epochsha / Japan
|
||||
スーパーテレビパソコンLink / エポック社 / 日本 Super TV PC Link / Epoch / Japan
|
||||
Let's!TVプレイ ふしぎ星のふたご姫Gyu! ドレスチェンジでキュートにダンス / バンダイ / 日本 Let's!TV Play Gyu, the Twin Princess of the Mysterious Planet! Dance cutely with a dress change / Bandai / Japan
|
||||
Let's!TVプレイ なりきりファイト ウルトラマン 撃て!必殺光線!! / タカラトミー / 日本 Let's!TV Play Narikiri Fight Ultraman Shoot! Deadly ray! ! / Takara Tomy / Japan
|
||||
Jala Jaland /atlus/Japan (arcade version) - - - - - - -
|
||||
2004 Printer for TV computer /EPOCH/Japan - - - - - - -
|
||||
Accessory memory mascot for TV mail Pc mail cot 2 characters (Putchi, Petchi) /EPOCH/Japan - - - - - - -
|
||||
Accessory memory mascot for TV mail Pc mail cot 2 characters (Charuru, Kurau) /EPOCH/Japan - - - - - - -
|
||||
TV mail PC "Mercot /EPOCH/Japan - - - - - - -
|
||||
Wildest computer robot "Daigander" (Korean version) /TAKARA/Korea - - - - - - -
|
||||
2003 Hello Kitty TV computer /EPOCH/Japan - - - - - - -
|
||||
2001 Ping-pong(Chinese version) /Tenpon/China - - - - - - -
|
||||
Popira Korea version /SONOKONG/Korea - - - - - - -
|
||||
I singer: e-kara Korean version /SONOKONG/Korea - - - - - - -
|
||||
Baseball Korean version /SONOKONG/Korea - - - - - - -
|
||||
1999 ABC Jungle Fun Hippo /VTech/HK, USA, France - - - - - - -
|
||||
|
||||
@ -62,7 +55,14 @@
|
||||
2005 Let's!TVプレイ ドラゴンボ-ルZ バトル体感かめはめ波~ おめぇとフュージョン / バンダイ / 日本 Let's! TV Play Dragon Ball Z Battle Taikan Kamehameha~ Omee to Fusion / Bandai / Japan
|
||||
|
||||
dumped: either here, xavix_2000.cpp, or xavix_2002.cpp
|
||||
Let's!TVプレイ 体感キャストオフ 仮面ライダーカブト クロックアップ&ライダーキック / バンダイ / 日本 Let's! TV Play Taikan Cast Off Kamen Rider Kabuto Clock Up & Rider Kick / Bandai / Japan
|
||||
Let's!TVプレイ なりきりファイト ウルトラマン 撃て!必殺光線!! / タカラトミー / 日本 Let's!TV Play Narikiri Fight Ultraman Shoot! Deadly ray! ! / Takara Tomy / Japan
|
||||
Hello Kitty TV computer /EPOCH/Japan - - - - - - -
|
||||
Popira Korea version /SONOKONG/Korea - - - - - - -
|
||||
I singer: e-kara Korean version /SONOKONG/Korea - - - - - - -
|
||||
Accessory memory mascot for TV mail Pc mail cot 2 characters (Putchi, Petchi) /EPOCH/Japan (no unique ROM, just I2C memory storage)
|
||||
Accessory memory mascot for TV mail Pc mail cot 2 characters (Charuru, Kurau) /EPOCH/Japan (no unique ROM, just I2C memory storage)
|
||||
TV mail PC "Mercot /EPOCH/Japan - - - - - - -
|
||||
Let's!TVプレイ 体感キャストオフ 仮面ライダーカブト クロックアップ&ライダーキック / バンダイ / 日本 Let's! TV Play Taikan Cast Off Kamen Rider Kabuto Clock Up & Rider Kick / Bandai / Japan
|
||||
Let's!TVプレイ なりきり体感 ボウケンジャー 走れ!撃て!ミッションスタート!! / バンダイ / 日本 Let's! TV Play Narikiri Taikan Boukenger Hashire! Ute! Mission Start!! / Bandai / Japan
|
||||
Webdiver Gradion /TAKARA/Japan - - - - - - -
|
||||
Let's!TVプレイ 魔法戦隊マジレンジャー マジマットでダンス&バトル / バンダイ / 日本 Let's! TV Play Mahou Taiketsu Magiranger - Magimat de Dance & Battle / Bandai / Japan
|
||||
@ -2093,6 +2093,14 @@ void xavix_cart_state::xavix_cart_ekara(machine_config &config)
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("ekara_cart").set_filter("EKARA");
|
||||
}
|
||||
|
||||
void xavix_cart_state::xavix_cart_isinger(machine_config &config)
|
||||
{
|
||||
xavix_cart(config);
|
||||
|
||||
/* software lists */
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("ekara_cart").set_filter("ISINGER");
|
||||
}
|
||||
|
||||
void xavix_hikara_state::machine_reset()
|
||||
{
|
||||
xavix_ekara_state::machine_reset();
|
||||
@ -2159,6 +2167,13 @@ void xavix_cart_state::xavix_cart_popira(machine_config &config)
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("ekara_cart").set_filter("POPIRA");
|
||||
}
|
||||
|
||||
void xavix_cart_state::xavix_cart_popirak(machine_config &config)
|
||||
{
|
||||
xavix_cart(config);
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("ekara_cart").set_filter("POPIRA_KOREA");
|
||||
}
|
||||
|
||||
// see code at 028060, using table from 00eb6d for conversion
|
||||
uint8_t xavix_popira2_cart_state::popira2_adc0_r()
|
||||
{
|
||||
@ -2616,6 +2631,11 @@ ROM_START( ekaras )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
ROM_END
|
||||
|
||||
ROM_START( isinger )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "kr_isinger.bin", 0x600000, 0x100000, CRC(6ad588fe) SHA1(879da069ca8c126232a1b2dfcce25c8615540e48) )
|
||||
ROM_RELOAD(0x000000, 0x100000)
|
||||
ROM_END
|
||||
|
||||
ROM_START( epitch )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
|
||||
@ -2650,6 +2670,12 @@ ROM_START( popira )
|
||||
ROM_RELOAD(0x000000, 0x100000)
|
||||
ROM_END
|
||||
|
||||
ROM_START( popirak )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "kr_main.u2", 0x600000, 0x100000, CRC(785d8e21) SHA1(7877ac33b57bdd8ceac6bda3b0006a3274ad4dce) )
|
||||
ROM_RELOAD(0x000000, 0x100000)
|
||||
ROM_END
|
||||
|
||||
ROM_START( popira2 )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "popira2.bin", 0x600000, 0x200000, CRC(6acd8be0) SHA1(8b6c812d37e2dc2f2531b0e47d84ad8485729dc5) )
|
||||
@ -2739,6 +2765,21 @@ ROM_START( tvpc_ham )
|
||||
ROM_LOAD( "hpcj.u3", 0x000000, 0x400000, CRC(76e8c854) SHA1(5998c03292a16107d0d7ae00f77677582680f323) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( tvpc_hk )
|
||||
ROM_REGION( 0x400000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "kpcj.u2", 0x000000, 0x400000, CRC(87fc2f73) SHA1(29a284b907abec175d4289d290490af17a2a963f) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( epo_mail )
|
||||
ROM_REGION( 0x400000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "mailcot.u3", 0x000000, 0x400000, CRC(87f13ce7) SHA1(97326257210df411ac8b47e8513bb0da7b02dbde) )
|
||||
|
||||
// has a HT24LC16 in the main unit
|
||||
|
||||
// the cartridges also contain a HT24LC16 for data transfer between units (no other ROM though)
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( tak_gin )
|
||||
ROM_REGION( 0x200000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "snowboard.bin", 0x000000, 0x200000, CRC(79fdeae3) SHA1(ab08790e95cdccf3541ecbddb87ebf0dedb3718b) )
|
||||
@ -2964,7 +3005,10 @@ CONS( 2000, ekaraa, ekara, 0, xavix_cart_ekara, ekara, xavix_ekara_s
|
||||
CONS( 2000, ekaraj, ekara, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD", "e-kara (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) // shows Japanese message without cart
|
||||
CONS( 2002, ekarag, ekara, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD", "e-kara (Europe, includes 3 songs)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) // found in Germany and UK, could just be a Europe-wide model, NOT a headset model, but still has 3 songs.
|
||||
CONS( 2002, ekaras, ekara, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD / newgent", "e-kara (Spain, includes 3 songs)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ )
|
||||
// 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.
|
||||
// the Korean i-singer release from Sonokong has a unique bios and different data resources, meaning carts are not fully compatible between it and e-kara
|
||||
CONS( 2000, isinger, ekara, 0, xavix_cart_isinger, ekara, xavix_ekara_state, init_xavix, "Sonokong / SSD Company LTD", "i-Singer (Korea)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ )
|
||||
|
||||
// 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?)
|
||||
@ -2978,7 +3022,8 @@ CONS( 2001, ddrfammt, 0, 0, xavix_cart_ddrfammt,ddrfammt, xavix_cart_
|
||||
|
||||
// ポピラ
|
||||
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
|
||||
// a Korean version exists from Sonokong brand, with different songs
|
||||
// the Korean release is not properly compatible with the usual Popira carts, although some of the Korean i-singer range are compatible
|
||||
CONS( 2001, popirak, popira, 0, xavix_cart_popirak,popira, xavix_cart_state, init_xavix, "Sonokong / SSD Company LTD", "PoPiRa - Finger Sports (Korea)", MACHINE_IMPERFECT_SOUND/*|MACHINE_IS_BIOS_ROOT*/ )
|
||||
|
||||
// ポピラ2
|
||||
CONS( 2002, popira2, 0, 0, xavix_cart_popira2,popira2, xavix_popira2_cart_state, init_xavix, "Takara / SSD Company LTD", "Popira 2 (Japan)", MACHINE_IMPERFECT_SOUND/*|MACHINE_IS_BIOS_ROOT*/ ) // Popira 2 is a set of 2 blue & green linked units (2nd unit is just a controller, no CPU or TV out)
|
||||
@ -3019,3 +3064,9 @@ CONS( 2005, tvpc_tom, 0, 0, xavix_i2c_24c16_4mb, tvpc_tom, xavix_i2c
|
||||
CONS( 2003, tvpc_dor, 0, 0, xavix_i2c_24c16_4mb, tvpc_tom, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "TV-PC Doraemon (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
|
||||
// とっとこハム太郎 テレビパソコン
|
||||
CONS( 2003, tvpc_ham, 0, 0, xavix_i2c_24c16_4mb, tvpc_tom, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "TV-PC Tottoko Hamutaro (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
|
||||
|
||||
CONS( 2004, tvpc_hk, 0, 0, xavix_i2c_24c16_4mb, tvpc_tom, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "TV-PC Hello Kitty (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
|
||||
|
||||
// TVメールPC mail*cot メルコット
|
||||
// has a 74HC541D (maybe keyboard related?)
|
||||
CONS( 2004, epo_mail, 0, 0, xavix_i2c_24c16_4mb, tvpc_tom, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "TV Mail PC mail*cot (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
|
||||
|
@ -140,6 +140,7 @@ public:
|
||||
void xavix_43mhz(machine_config &config);
|
||||
|
||||
void init_xavix();
|
||||
void init_no_timer() { init_xavix(); m_disable_timer_irq_hack = true; }
|
||||
|
||||
void ioevent_trg01(int state);
|
||||
void ioevent_trg02(int state);
|
||||
@ -197,6 +198,14 @@ public:
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
int unknown_random_r()
|
||||
{
|
||||
if (!machine().side_effects_disabled())
|
||||
return machine().rand();
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected:
|
||||
// driver_device overrides
|
||||
virtual void machine_start() override ATTR_COLD;
|
||||
@ -645,6 +654,7 @@ public:
|
||||
, m_bmp_palram_l(*this, "bmp_palram_l")
|
||||
, m_bmp_base(*this, "bmp_base")
|
||||
, m_extra(*this, "extra")
|
||||
, m_exio(*this, "EX%u", 0U)
|
||||
{
|
||||
m_video_hres_multiplier = 2;
|
||||
}
|
||||
@ -712,9 +722,9 @@ private:
|
||||
void extended_extbus_reg1_w(uint8_t data);
|
||||
void extended_extbus_reg2_w(uint8_t data);
|
||||
|
||||
uint8_t superxavix_read_extended_io0(offs_t offset, uint8_t mem_mask) { logerror("%s: superxavix_read_extended_io0 (mask %02x)\n", machine().describe_context(), mem_mask); return 0x00; }
|
||||
uint8_t superxavix_read_extended_io1(offs_t offset, uint8_t mem_mask) { logerror("%s: superxavix_read_extended_io1 (mask %02x)\n", machine().describe_context(), mem_mask); return 0x00; }
|
||||
uint8_t superxavix_read_extended_io2(offs_t offset, uint8_t mem_mask) { logerror("%s: superxavix_read_extended_io2 (mask %02x)\n", machine().describe_context(), mem_mask); return 0x00; }
|
||||
uint8_t superxavix_read_extended_io0(offs_t offset, uint8_t mem_mask) { logerror("%s: superxavix_read_extended_io0 (mask %02x)\n", machine().describe_context(), mem_mask); return m_exio[0]->read(); }
|
||||
uint8_t superxavix_read_extended_io1(offs_t offset, uint8_t mem_mask) { logerror("%s: superxavix_read_extended_io1 (mask %02x)\n", machine().describe_context(), mem_mask); return m_exio[1]->read(); }
|
||||
uint8_t superxavix_read_extended_io2(offs_t offset, uint8_t mem_mask) { logerror("%s: superxavix_read_extended_io2 (mask %02x)\n", machine().describe_context(), mem_mask); return m_exio[2]->read(); }
|
||||
|
||||
void superxavix_write_extended_io0(offs_t offset, uint8_t data, uint8_t mem_mask) { logerror("%s: superxavix_write_extended_io0 %02x (mask %02x)\n", machine().describe_context(), data, mem_mask); }
|
||||
void superxavix_write_extended_io1(offs_t offset, uint8_t data, uint8_t mem_mask) { logerror("%s: superxavix_write_extended_io1 %02x (mask %02x)\n", machine().describe_context(), data, mem_mask); }
|
||||
@ -744,6 +754,7 @@ private:
|
||||
required_shared_ptr<uint8_t> m_bmp_base;
|
||||
|
||||
optional_region_ptr<uint8_t> m_extra;
|
||||
required_ioport_array<3> m_exio;
|
||||
|
||||
bool m_use_superxavix_extra; // does not need saving
|
||||
};
|
||||
@ -831,8 +842,6 @@ public:
|
||||
: xavix_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
int camera_r() { return machine().rand(); }
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
@ -844,10 +853,6 @@ public:
|
||||
: xavix_i2c_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
int camera_r();
|
||||
|
||||
void init_epo_mini();
|
||||
|
||||
protected:
|
||||
//virtual void write_io1(uint8_t data, uint8_t direction) override;
|
||||
};
|
||||
@ -979,7 +984,9 @@ public:
|
||||
|
||||
void xavix_cart(machine_config &config);
|
||||
void xavix_cart_ekara(machine_config &config);
|
||||
void xavix_cart_isinger(machine_config &config);
|
||||
void xavix_cart_popira(machine_config &config);
|
||||
void xavix_cart_popirak(machine_config &config);
|
||||
void xavix_cart_ddrfammt(machine_config &config);
|
||||
void xavix_cart_evio(machine_config &config);
|
||||
void xavix_cart_daig(machine_config &config);
|
||||
|
@ -182,8 +182,8 @@ static INPUT_PORTS_START( ttv_lotr )
|
||||
PORT_INCLUDE(xavix)
|
||||
|
||||
PORT_MODIFY("IN1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(xavix_i2c_lotr_state::camera_r))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(xavix_i2c_lotr_state::camera_r))
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(xavix_i2c_lotr_state::unknown_random_r))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(xavix_i2c_lotr_state::unknown_random_r))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::read_sda))
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -191,8 +191,8 @@ static INPUT_PORTS_START( epo_hamc )
|
||||
PORT_INCLUDE(xavix)
|
||||
|
||||
PORT_MODIFY("IN1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(xavix_epo_hamc_state::camera_r))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(xavix_epo_hamc_state::camera_r))
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(xavix_epo_hamc_state::unknown_random_r))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(xavix_epo_hamc_state::unknown_random_r))
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( ttv_mx )
|
||||
@ -384,11 +384,6 @@ ROM_START( epo_es2j ) // ES2J MAIN-01 2005 date on PCB, 2006 ingame
|
||||
ROM_LOAD("es2j.u3", 0x000000, 0x400000, CRC(840aecb1) SHA1(ad52449ffc13af5f4c67b2c3cf438e7ecd80b9fb) )
|
||||
ROM_END
|
||||
|
||||
void xavix_i2c_lotr_state::init_epo_mini()
|
||||
{
|
||||
init_xavix();
|
||||
m_disable_timer_irq_hack = true;
|
||||
}
|
||||
|
||||
|
||||
// doesn't use extra opcodes?
|
||||
@ -401,14 +396,14 @@ CONS( 2002, epo_bowl, 0, 0, xavix2000_i2c_24c04_2mb, epo_bowl, xavix_i2c_stat
|
||||
|
||||
// スーパーショット! エキサイトゴルフ
|
||||
// needs timer irq hack to boot, fails to draw main menu properly (buggy xavix2000 opcodes?) (2002 date on PCB, 2003 ingame)
|
||||
CONS( 2003, epo_golf, 0, 0, xavix2000_i2c_24c04_4mb, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Epoch / SSD Company LTD", "Super Shot! Excite Golf (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2003, epo_golf, 0, 0, xavix2000_i2c_24c04_4mb, ttv_lotr, xavix_i2c_lotr_state, init_no_timer, "Epoch / SSD Company LTD", "Super Shot! Excite Golf (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// とっとこハム太郎 ハムハム大サーカス!
|
||||
CONS( 2002, epo_hamc, 0, 0, xavix2000_4mb, epo_hamc, xavix_epo_hamc_state, init_xavix, "Epoch / SSD Company LTD", "Tottoko Hamtaro - Ham Ham Dai Circus! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// ミニモニ。パーティ!リズムでぴょん!
|
||||
// needs timer irq hack to boot
|
||||
CONS( 2003, epo_mini, 0, 0, xavix2000_i2c_24c08_4mb, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Epoch / SSD Company LTD", "mini-moni Party! Rhythm de Pyon! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2003, epo_mini, 0, 0, xavix2000_i2c_24c08_4mb, ttv_lotr, xavix_i2c_lotr_state, init_no_timer, "Epoch / SSD Company LTD", "mini-moni Party! Rhythm de Pyon! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// カードスキャン! エキサイトステージ サッカー日本代表チーム
|
||||
CONS( 2006, epo_es2j, 0, 0, xavix2000_4mb, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Card Scan! Excite Stage Soccer Nippon Daihyou Team (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
@ -444,7 +439,7 @@ CONS( 2004, ban_onep, 0, 0, xavix2000_i2c_24c04, ttv_lotr, xavix_i2c_lotr_sta
|
||||
|
||||
// Let’s!TV プレイ 闘印奥義 陰陽大戦記~目指せ最強闘神士~
|
||||
// stalls unless timers are disabled like epo_mini / epo_golf, 2004 date on PCB, 2005 ingame
|
||||
CONS( 2005, ban_omt, 0, 0, xavix2000_i2c_24c04_4mb, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Bandai / SSD Company LTD", "Let's! TV Play Touin Ougi Onmyou Taisenki: Mezase Saikyou Toushinshi (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2005, ban_omt, 0, 0, xavix2000_i2c_24c04_4mb, ttv_lotr, xavix_i2c_lotr_state, init_no_timer, "Bandai / SSD Company LTD", "Let's! TV Play Touin Ougi Onmyou Taisenki: Mezase Saikyou Toushinshi (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// ディズニープリンセス キラキラ魔法のレッスン
|
||||
CONS( 2004, tom_dpgm, 0, 0, xavix2000_i2c_24c08_4mb, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tomy / SSD Company LTD", "Disney Princess Kirakira Mahou no Lesson (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
@ -103,6 +103,84 @@ static INPUT_PORTS_START( xavix )
|
||||
PORT_START("MOUSE1Y")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("EX0")
|
||||
PORT_DIPNAME( 0x01, 0x00, "EX0" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("EX1")
|
||||
PORT_DIPNAME( 0x01, 0x00, "EX1" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("EX2")
|
||||
PORT_DIPNAME( 0x01, 0x00, "EX2" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("REGION") // PAL/NTSC flag
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_CUSTOM )
|
||||
INPUT_PORTS_END
|
||||
@ -186,7 +264,7 @@ static INPUT_PORTS_START( mrangbat )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("EX0") // NOT A JOYSTICK!!
|
||||
PORT_MODIFY("EX0") // NOT A JOYSTICK!!
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_16WAY // Red/Up 1
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_16WAY // Red/Up 2
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_16WAY // Green / Circle / Right 2
|
||||
@ -195,70 +273,31 @@ static INPUT_PORTS_START( mrangbat )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_16WAY // Yellow / Triangle / Left 1
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 )
|
||||
|
||||
|
||||
PORT_START("EX1")
|
||||
PORT_DIPNAME( 0x01, 0x00, "EX1" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("EX2")
|
||||
PORT_DIPNAME( 0x01, 0x00, "EX2" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( xavix_bowl )
|
||||
PORT_INCLUDE(xavix)
|
||||
|
||||
PORT_MODIFY("IN1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(superxavix_i2c_bowl_state::camera_r))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(superxavix_i2c_bowl_state::camera_r))
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(superxavix_i2c_bowl_state::unknown_random_r))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(superxavix_i2c_bowl_state::unknown_random_r))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::read_sda))
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( ban_ult )
|
||||
PORT_INCLUDE(xavix)
|
||||
|
||||
PORT_MODIFY("IN1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(superxavix_i2c_bowl_state::unknown_random_r))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(superxavix_i2c_bowl_state::unknown_random_r))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::read_sda))
|
||||
|
||||
PORT_MODIFY("EX2")
|
||||
PORT_DIPNAME( 0x80, 0x80, "Demo Mode" ) // bypasses calibration screen
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( xavixp )
|
||||
PORT_INCLUDE(xavix)
|
||||
|
||||
@ -275,6 +314,17 @@ static INPUT_PORTS_START( ban_ordj )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( ban_dn1j )
|
||||
PORT_INCLUDE(xavix_i2c)
|
||||
|
||||
PORT_MODIFY("IN0")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
|
||||
PORT_MODIFY("IN1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( anpanmdx )
|
||||
PORT_INCLUDE(xavix_i2c)
|
||||
|
||||
@ -345,16 +395,6 @@ void superxavix_i2c_jmat_state::write_extended_io2(offs_t offset, uint8_t data,
|
||||
LOG("%s: io2_data_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
int xavix_i2c_lotr_state::camera_r() // seems to be some kind of camera status bits
|
||||
{
|
||||
return machine().rand();
|
||||
}
|
||||
|
||||
int superxavix_i2c_bowl_state::camera_r() // seems to be some kind of camera status bits
|
||||
{
|
||||
return machine().rand();
|
||||
}
|
||||
|
||||
void superxavix_i2c_state::write_io1(uint8_t data, uint8_t direction)
|
||||
{
|
||||
m_i2cmem->write_sda(BIT(data | ~direction, 3));
|
||||
@ -722,6 +762,11 @@ ROM_START( ban_utmj )
|
||||
// SEEPROM is HT24LC02 at u3
|
||||
ROM_END
|
||||
|
||||
ROM_START( ban_ult )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00)
|
||||
ROM_LOAD("ultraman.u1", 0x000000, 0x800000,CRC(bc2a94fb) SHA1(4dc81089ac2afc1c9496a49ffd778213bb4a12bd) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ban_bkgj )
|
||||
ROM_REGION( 0x400000, "bios", ROMREGION_ERASE00)
|
||||
ROM_LOAD("bkgj.u2", 0x000000, 0x400000, CRC(a59ce23c) SHA1(d2a6be9e46f3cfc3cf798bf1f76732eee909c93b) )
|
||||
@ -784,6 +829,14 @@ ROM_START( doradraw )
|
||||
ROM_LOAD("dmdj.u7", 0x000000, 0x200000, CRC(0e6392f9) SHA1(30fa3d3451b37d663e124c7d1d52c7e30284d2fb) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ndpbj )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00)
|
||||
ROM_LOAD("ndpbj.u2", 0x000000, 0x800000, CRC(80cb5cbb) SHA1(cd424c4fbea8e9e47d165c4c8be52755fc7c2d98) )
|
||||
|
||||
ROM_REGION( 0x400, "i2cmem", ROMREGION_ERASE00)
|
||||
ROM_LOAD("s-24cs08a.u6", 0x000, 0x400, CRC(a22db408) SHA1(f8d925c75054a961930af12869e3002bb9c4600b) )
|
||||
ROM_END
|
||||
|
||||
|
||||
void superxavix_super_tv_pc_state::init_stvpc()
|
||||
{
|
||||
@ -870,6 +923,9 @@ CONS( 2006, ban_bkgj, 0, 0, superxavix_i2c_24c04_4mb,xavix_i2c, superxavix_i2c_
|
||||
// Let's!TV プレイ 体感キャストオフ 仮面ライダーカブト クロックアップ&ライダーキック
|
||||
CONS( 2006, ban_utmj, 0, 0, superxavix_i2c_24c02, xavix_i2c, superxavix_i2c_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Taikan Cast Off - Kamen Rider Kabuto Clock Up & Rider Kick!! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// Let's!TVプレイ なりきりファイト ウルトラマン 撃て!必殺光線!!
|
||||
CONS( 2006, ban_ult, 0, 0, superxavix_i2c_24c02, ban_ult, superxavix_i2c_bowl_state, init_no_timer, "Bandai / SSD Company LTD", "Let's! TV Play Narikiri Fight Ultraman - Ute! Hissatsu Kousen!! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// それいけトーマス ソドー島のなかまたち
|
||||
CONS( 2005, tmy_thom, 0, 0, superxavix_i2c_24c04, xavix_i2c, superxavix_i2c_state, init_xavix, "Tomy / SSD Company LTD", "Soreike Thomas - Sodor Tou no Nakamatachi / Thomas & Friends on the Island of Sodor (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
@ -883,7 +939,7 @@ CONS( 2007, tmy_rkmj, 0, 0, superxavix_i2c_24c04, xavix_i2c, superxavix_i2c_
|
||||
CONS( 2005, ban_ordj, 0, 0, superxavix_i2c_24c04, ban_ordj, superxavix_i2c_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Ongeki Battle! Kamen Rider Hibiki: Kimero! Ikki Kasei no Kata (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// ディズニーキャラクターズ オト!イロ!トン・トン!ミラクルパレード
|
||||
CONS( 2007, ban_dn1j, 0, 0, superxavix_i2c_24c04, ban_ordj, superxavix_i2c_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Disney Characters Oto! Iro! Ton-Ton! Miracle Parade (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2007, ban_dn1j, 0, 0, superxavix_i2c_24c04, ban_dn1j, superxavix_i2c_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Disney Characters Oto! Iro! Ton-Ton! Miracle Parade (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// アンパンマン かぞくで!育脳マットDX
|
||||
CONS( 2011, anpanmdx, 0, 0, superxavix_i2c_24c08, anpanmdx, superxavix_i2c_state, init_xavix, "JoyPalette / SSD Company LTD", "Anpanman Kazoku de! Ikunou Mat DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
@ -904,3 +960,7 @@ CONS( 2008, epo_ntpj, 0, 0, superxavix_piano_pc, suprtvpc, superxavix_piano_pc_
|
||||
|
||||
// ドラえもん うごく!おえかき エポック社
|
||||
CONS( 2007, doradraw, 0, 0, superxavix_doradraw, xavix, superxavix_doradraw_state, init_doradraw, "Epoch / SSD Company LTD", "Doraemon Ugoku! Oekaki (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// どんトレだ兵衛~どん兵衛くんとトレーニング
|
||||
// doesn't boot, has a camera with a large number of connections going to it, probably wants comms to work with it?
|
||||
CONS( 2007, ndpbj, 0, 0, superxavix_i2c_24c08, xavix_i2c, superxavix_i2c_state, init_xavix, "Nissin / SSD Company LTD", "Dontore da bei - Donbei-kun to Training (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
@ -120,8 +120,6 @@ public:
|
||||
superxavix_i2c_bowl_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: superxavix_i2c_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
int camera_r();
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user