mirror of
https://github.com/holub/mame
synced 2025-04-17 22:13:04 +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,6 +55,13 @@
|
||||
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 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 - - - - - - -
|
||||
@ -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,6 +3005,9 @@ 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 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*/ )
|
||||
|
||||
@ -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