mirror of
https://github.com/holub/mame
synced 2025-07-07 10:58:41 +03:00
vii.cpp:
new NOT WORKING Mattel Classic Sports [Sean Riddle] Dora the Explorer (JAKKS Pacific TV Game) [Sean Riddle] kludge handling of invalid size writes to DMA so that Dora the Explorer doesn't trash all of RAM + registers new SOFTWARE LIST JAKKS Pacific 'NK' Game Keys (Dora has corrupt gfx, probably the bad DMAs should do something, Mattel Classic Sports gives a black screen) xavix.cpp: new NOT WORKING e-kara Pro Headset (US, includes 3 songs) [Sean Riddle] Super Dash Ball (Japan) [Sean Riddle, Peter Wilhelmsen] Gururin World (Japan) [Sean Riddle, Peter Wilhelmsen] disable active raster interrupts if raster interrupt enable is turned off, and add preliminary shifter register emulation, needed for 3D stages in Gururin World [David Haywood] (Pro Headset works as well as other e-Kara stuff, marked as NOT WORKING due to lack of microphone and sound emulation issues, Super Dash Ball needs trackballs hooking up, Gururin World needs analog cycle looking up) rad_eu3a14.cpp: tied tilemap dimensions to tile sizes to improve Huntin'3 map screen [David Haywood]
This commit is contained in:
parent
0f0fbc2548
commit
95b4e8f656
18
hash/jakks_gamekey_nk.xml
Normal file
18
hash/jakks_gamekey_nk.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<softwarelist name="jakks_gamekey_nk" description="JAKKS Pacific 'NK' Game Keys">
|
||||
|
||||
<!-- This list is for the 'NK' coded Game Keys, for Nicktoons and related systems -->
|
||||
|
||||
<software name="dora" supported="no">
|
||||
<description>Dora the Explorer</description>
|
||||
<year>2005</year>
|
||||
<publisher>JAKKS Pacific</publisher>
|
||||
<part name="cart" interface="jakks_gamekey">
|
||||
<dataarea name="rom" size="0x200000">
|
||||
<rom name="nk_dora.bin" size="0x200000" crc="2bcdf9a5" sha1="ac86d967b269cb8c4ecc9c8b99fb5c16424da7be" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
@ -1482,7 +1482,9 @@ WRITE16_MEMBER(spg2xx_device::io_w)
|
||||
|
||||
case 0x102: // DMA Length
|
||||
LOGMASKED(LOG_DMA, "io_w: DMA Length = %04x\n", data);
|
||||
do_cpu_dma(data);
|
||||
if (!(data & 0xc000)) // jak_dora writes 0xffff here which ends up trashing registers etc. why? such writes can't be valid
|
||||
do_cpu_dma(data);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -268,12 +268,21 @@ void radica_eu3a14_state::draw_background(screen_device &screen, bitmap_ind16 &b
|
||||
int xscroll = m_scrollregs[0] | (m_scrollregs[1] << 8);
|
||||
int yscroll = m_scrollregs[2] | (m_scrollregs[3] << 8);
|
||||
|
||||
int size = 16;
|
||||
// or 0x10?
|
||||
int size;
|
||||
// or 0x80?
|
||||
if (m_tilecfg[0] & 0x10)
|
||||
{
|
||||
size = 8;
|
||||
m_pagewidth = 32;
|
||||
m_pageheight = 28;
|
||||
}
|
||||
else
|
||||
{
|
||||
size = 16;
|
||||
m_pagewidth = 16;
|
||||
m_pageheight = 14;
|
||||
}
|
||||
|
||||
|
||||
// normal
|
||||
draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, 0 - yscroll, size);
|
||||
@ -965,8 +974,6 @@ void radica_eu3a14_state::init_rad_gtg()
|
||||
// must be registers to control this
|
||||
m_tilerambase = 0x0a00 - 0x200;
|
||||
m_spriterambase = 0x0220 - 0x200;
|
||||
m_pagewidth = 16;
|
||||
m_pageheight = 14;
|
||||
}
|
||||
|
||||
void radica_eu3a14_state::init_rad_foot()
|
||||
@ -974,9 +981,6 @@ void radica_eu3a14_state::init_rad_foot()
|
||||
// must be registers to control this
|
||||
m_tilerambase = 0x0200 - 0x200;
|
||||
m_spriterambase = 0x2800 - 0x200;
|
||||
// this is ok for the game, but secret test mode also uses a weird 8x8 mode with different tile addressing
|
||||
m_pagewidth = 16;
|
||||
m_pageheight = 14;
|
||||
}
|
||||
|
||||
|
||||
@ -985,9 +989,6 @@ void radica_eu3a14_state::init_rad_hnt3()
|
||||
// must be registers to control this
|
||||
m_tilerambase = 0x0200 - 0x200;
|
||||
m_spriterambase = 0x1800 - 0x200;
|
||||
// uses an 8x8 mode, could depend on that, but other 8x8 use case above is different
|
||||
m_pagewidth = 32;
|
||||
m_pageheight = 28;
|
||||
}
|
||||
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
Systems which run on the SPG243 SoC
|
||||
|
||||
( die markings show "SunPlus QL8041" on JAKKS WWE / Fantastic 4 / Justice League )
|
||||
( die markings show "SunPlus QL8041" on JAKKS WWE / Fantastic 4 / Justice League, Dora the Explorer, Mattel Classic Sports )
|
||||
|
||||
Status:
|
||||
|
||||
@ -133,6 +133,27 @@ protected:
|
||||
optional_device<nvram_device> m_nvram;
|
||||
};
|
||||
|
||||
class jakks_gkr_state : public spg2xx_game_state
|
||||
{
|
||||
public:
|
||||
jakks_gkr_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: spg2xx_game_state(mconfig, type, tag)
|
||||
, m_cart(*this, "cartslot")
|
||||
, m_cart_region(nullptr)
|
||||
{ }
|
||||
|
||||
void jakks_gkr(machine_config &config);
|
||||
void jakks_gkr_nk(machine_config &config);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(gamekey_cart);
|
||||
|
||||
required_device<generic_slot_device> m_cart;
|
||||
memory_region *m_cart_region;
|
||||
};
|
||||
|
||||
class vii_state : public spg2xx_game_state
|
||||
{
|
||||
public:
|
||||
@ -539,6 +560,158 @@ static INPUT_PORTS_START( rad_sktv )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( mattelcs ) // TODO: inputs once it boots (this is just for debug)
|
||||
PORT_START("P1")
|
||||
PORT_DIPNAME( 0x0001, 0x0001, "IN0" )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("P2")
|
||||
PORT_DIPNAME( 0x0001, 0x0001, "IN1" )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("P3")
|
||||
PORT_DIPNAME( 0x0001, 0x0001, "IN2" )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* hold 'Console Down' while powering up to get the test menu, including input tests
|
||||
the ball (Wired) and bat (IR) are read some other way as they don't seem to appear in the ports. */
|
||||
static INPUT_PORTS_START( rad_crik )
|
||||
@ -738,6 +911,49 @@ void spg2xx_game_state::jakks(machine_config &config)
|
||||
I2CMEM(config, m_i2cmem, 0).set_data_size(0x200);
|
||||
}
|
||||
|
||||
|
||||
void jakks_gkr_state::machine_start()
|
||||
{
|
||||
spg2xx_game_state::machine_start();
|
||||
|
||||
// if there's a cart, override the standard banking
|
||||
if (m_cart && m_cart->exists())
|
||||
{
|
||||
std::string region_tag;
|
||||
m_cart_region = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
|
||||
m_bank->configure_entries(0, (m_cart_region->bytes() + 0x7fffff) / 0x800000, m_cart_region->base(), 0x800000);
|
||||
m_bank->set_entry(0);
|
||||
}
|
||||
}
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER(jakks_gkr_state, gamekey_cart)
|
||||
{
|
||||
uint32_t size = m_cart->common_get_size("rom");
|
||||
|
||||
m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE);
|
||||
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
|
||||
|
||||
return image_init_result::PASS;
|
||||
}
|
||||
|
||||
void jakks_gkr_state::jakks_gkr(machine_config &config)
|
||||
{
|
||||
walle(config);
|
||||
|
||||
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "jakks_gamekey");
|
||||
m_cart->set_width(GENERIC_ROM16_WIDTH);
|
||||
m_cart->set_device_load(device_image_load_delegate(&jakks_gkr_state::device_image_load_gamekey_cart, this));
|
||||
|
||||
}
|
||||
|
||||
void jakks_gkr_state::jakks_gkr_nk(machine_config &config)
|
||||
{
|
||||
jakks_gkr(config);
|
||||
|
||||
SOFTWARE_LIST(config, "jakks_gamekey_nk").set_original("jakks_gamekey_nk");
|
||||
}
|
||||
|
||||
|
||||
void spg2xx_game_state::walle(machine_config &config)
|
||||
{
|
||||
jakks(config);
|
||||
@ -812,6 +1028,12 @@ ROM_START( jak_just )
|
||||
ROM_LOAD16_WORD_SWAP( "jakksjlagkr.bin", 0x000000, 0x200000, CRC(182989f0) SHA1(799229c537d6fe629ba9e1e4051d1bb9ca445d44) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( jak_dora )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "jakksdoragkr.bin", 0x000000, 0x200000, CRC(bcaa132d) SHA1(3894b980fbc4144731b2a7a94acebb29e30de67c) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -861,6 +1083,12 @@ ROM_START( rad_crik ) // only released in EU?
|
||||
ROM_LOAD16_WORD_SWAP( "cricket.bin", 0x000000, 0x200000, CRC(6fa0aaa9) SHA1(210d2d4f542181f59127ce2f516d0408dc6de7a8) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( mattelcs )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "mattelclassicsports.bin", 0x000000, 0x100000, CRC(e633e7ad) SHA1(bf3e325a930cf645a7e32195939f3c79c6d35dac) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
Wireless Air 60
|
||||
(info provided with dump)
|
||||
@ -1001,18 +1229,17 @@ CONS( 2004, jak_batm, 0, 0, jakks, batman, spg2xx_game_state, empty_init, "JAKKS
|
||||
CONS( 2008, jak_wall, 0, 0, walle, walle, spg2xx_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wall-E (JAKKS Pacific TV Game)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
// 'Game-Key-Ready' JAKKS games (these can also take per-game specific expansion cartridges, although not all games had them released)
|
||||
CONS( 2005, jak_wwe, 0, 0, walle, jak_gkr,spg2xx_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "WWE (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WW (no game-keys released)
|
||||
CONS( 2005, jak_fan4, 0, 0, walle, jak_gkr,spg2xx_game_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Fantastic Four (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // F4 (no game-keys released)
|
||||
CONS( 2005, jak_just, 0, 0, walle, jak_gkr,spg2xx_game_state, empty_init, "JAKKS Pacific Inc / Taniko", "Justice League (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DC (no game-keys released)
|
||||
// Other Game-Key-Ready systems (not all releases of them?, only Sunplus SPG240 [Sunplus PAC300] versions?)
|
||||
CONS( 2005, jak_wwe, 0, 0, jakks_gkr, jak_gkr,jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "WWE (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WW (no game-keys released)
|
||||
CONS( 2005, jak_fan4, 0, 0, jakks_gkr, jak_gkr,jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Fantastic Four (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // F4 (no game-keys released)
|
||||
CONS( 2005, jak_just, 0, 0, jakks_gkr, jak_gkr,jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Taniko", "Justice League (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DC (no game-keys released)
|
||||
CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr,jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3+ released) // Other Game-Key-Ready systems (not all releases of them?, only Sunplus SPG240 [Sunplus PAC300] versions?)
|
||||
// Nicktoons NK (3? keys available) (same keys as Dora the Explorer)
|
||||
// SpongeBob SquarePants: The Fry Cook Games NK (3? keys available) ^^
|
||||
// Namco Ms. Pac-Man NM (3 keys available [Dig Dug, New Rally-X], [Rally-X, Pac-Man, Bosconian], [Pac-Man, Bosconian])
|
||||
// Star Wars SW (1 key available)
|
||||
// Nicktoons NK (3 keys available)
|
||||
// Disney DY (3? keys available)
|
||||
// Disney Princess DP (? keys available)
|
||||
// Spider-Man MV (1? key available)
|
||||
// SpongeBob SquarePants: The Fry Cook Games ?? (1? key available)
|
||||
// Dora the Explorer ?? (1? key available)
|
||||
// no keys released for the following, some were in development but cancelled
|
||||
// Dragon Ball Z DB (no game-keys released)
|
||||
// Capcom 3-in-1 CC (no game-keys released)
|
||||
@ -1028,9 +1255,15 @@ CONS( 2006, rad_crik, 0, 0, rad_crik, rad_crik, spg2xx_game_state, ini
|
||||
CONS( 2007, rad_sktv, 0, 0, rad_skat, rad_sktv, spg2xx_game_state, init_crc, "Radica", "Skannerz TV", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
||||
CONS( 2007, rad_fb2, 0, 0, rad_skat, rad_fb2, spg2xx_game_state, init_crc, "Radica", "Play TV Football 2", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
||||
|
||||
// might not fit here. First 0x8000 bytes are blank (not too uncommon for these) then rest of rom looks like it's probably encrypted at least
|
||||
// Mattel games
|
||||
CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, empty_init, "Mattel", "Mattel Classic Sports", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
||||
|
||||
// might not fit here. First 0x8000 bytes are blank (not too uncommon for these) then rest of rom looks like it's probably encrypted at least
|
||||
// could be later model VT based instead? even after decrypting (simple word xor) the vectors have a different format and are at a different location to the SunPlus titles
|
||||
CONS( 2009, zone40, 0, 0, non_spg_base, wirels60, spg2xx_game_state, empty_init, "Jungle Soft / Ultimate Products (HK) Ltd", "Zone 40", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
|
||||
// NAND dumps w/ internal bootstrap. Almost certainly do not fit in this driver, as the SPG2xx can only address up to 4Mwords.
|
||||
CONS( 2010, wlsair60, 0, 0, non_spg_base, wirels60, spg2xx_game_state, empty_init, "Jungle Soft / Kids Station Toys Inc", "Wireless Air 60", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
// valid looking code, but extended periperhal area (twice the size?) makes use of unemulated opcode 0xfe00 ?
|
||||
CONS( 2011, wrlshunt, 0, 0, non_spg_base, wirels60, spg2xx_game_state, empty_init, "Hamy / Kids Station Toys Inc", "Wireless Hunting Video Game System", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
|
||||
// NAND dumps w/ internal bootstrap. Almost certainly do not fit in this driver, as the SPG2xx can only address up to 4Mwords. These are 'GeneralPlus' instead?
|
||||
CONS( 2010, wlsair60, 0, 0, non_spg_base, wirels60, spg2xx_game_state, empty_init, "Jungle Soft / Kids Station Toys Inc", "Wireless Air 60", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
|
@ -65,7 +65,7 @@
|
||||
13 STAR WARS Light Saber Battle /TOMY/Japan - - - - - - -
|
||||
14 Jala Jaland /atlus/Japan - - - - - - -
|
||||
15 Star Wars Lightsaber Battle Game /Hasbro/USA SWSA x8 48 8M 24C02 SSD 2000 NEC 85605-621 dumped
|
||||
16 Gururin World /EPOCH/Japan - - - - - - -
|
||||
16 Gururin World /EPOCH/Japan - x8 - - - SSD 98 PL7351-181 dumped
|
||||
17 Toinohgi Onmyo-daisenki /BANDAI/Japan - - - - - - -
|
||||
2004 1 Accessory cartridge for Super TV computer "Double mouse party"/EPOCH/Japan - - - - - - -
|
||||
2 Printer for TV computer /EPOCH/Japan - - - - - - -
|
||||
@ -73,12 +73,12 @@
|
||||
4 Accessory cartridge for Super TV computer "Doraemon"/EPOCH/Japan - - - - - - -
|
||||
5 Accessory cartridge for Super TV computer "Hamutaro"/EPOCH/Japan - - - - - - -
|
||||
6 Super TV computer /EPOCH/Japan - - - - - - -
|
||||
7 Super Dash ball /EPOCH/Japan - - - - - - -
|
||||
7 Super Dash ball /EPOCH/Japan - x8 - - - SSD 2000 NEC 85605-621 dumped
|
||||
8 Exciting sports Tennis X Fitness /EPOCH/Japan - - - - - - -
|
||||
9 Accessory memory mascot for TV mail Pc mail cot 2 characters (Putchi, Petchi) /EPOCH/Japan - - - - - - -
|
||||
10 Accessory memory mascot for TV mail Pc mail cot 2 characters (Charuru, Kurau) /EPOCH/Japan - - - - - - -
|
||||
11 The Lord of the Rings Warrior of Middle Earth /Hasbro/USA LORA x8 48 8M 24C02 SSD 2000 NEC 85605-621 dumped
|
||||
12 Beyblade Arcade Challenge 5-in-1 /Hasbro/USA - - - - - - -
|
||||
12 Beyblade Arcade Challenge 5-in-1 /Hasbro/USA - - - - - - have
|
||||
13 All star Festival Quize /EPOCH/Japan - - - - - - -
|
||||
14 e-kara mix /TAKARA/Japan - - - - - - -
|
||||
15 Jumping Popira /TAKARA/Japan - - - - - - -
|
||||
@ -98,7 +98,7 @@
|
||||
5 Exciting stadium DX, Hansin Tigers version /EPOCH/Japan - - - - - - -
|
||||
6 Dragon Quest /SQUARE ENIX/Japan - - - 8M - SSD 2000? dumped
|
||||
7 Croquette! Win a medal! /EPOCH/Japan - - - - - - -
|
||||
8 Taiko Popira /TAKARA/Japan - - - - - - -
|
||||
8 Taiko Popira /TAKARA/Japan - - - - - - dumped
|
||||
9 Together Minimoni, Dancing' Stage! plus /EPOCH/Japan - - - - - - -
|
||||
10 Evio /TOMY/Japan - - - - - - -
|
||||
11 Together Minimoni,Jumping Party! /EPOCH/Japan - - - - - - -
|
||||
@ -366,7 +366,7 @@ void xavix_state::xavix_lowbus_map(address_map &map)
|
||||
map(0x7c03, 0x7c03).r(FUNC(xavix_state::timer_curval_r));
|
||||
|
||||
// Barrel Shifter registers
|
||||
// map(0x7ff0, 0x7ff1)
|
||||
map(0x7ff0, 0x7ff1).rw(FUNC(xavix_state::barrel_r), FUNC(xavix_state::barrel_w));
|
||||
|
||||
// Multiply / Divide registers
|
||||
map(0x7ff2, 0x7ff4).rw(FUNC(xavix_state::mult_param_r), FUNC(xavix_state::mult_param_w));
|
||||
@ -1231,6 +1231,12 @@ ROM_START( epo_efdx )
|
||||
ROM_LOAD("excitefishing.bin", 0x000000, 0x400000, CRC(9c85b261) SHA1(6a363faed2ec89c5176e46554a98ca1e20132579) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( epo_guru )
|
||||
ROM_REGION(0x400000, "bios", ROMREGION_ERASE00)
|
||||
ROM_LOAD("gururinworld.bin", 0x000000, 0x400000, CRC(e5ae4523) SHA1(0e39ef8f94203d34e49422081667805f50a339a1) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( rad_rh )
|
||||
ROM_REGION(0x200000, "bios", ROMREGION_ERASE00)
|
||||
ROM_LOAD("rescueheroes.bin", 0x000000, 0x200000, CRC(38c391a7) SHA1(120334d4ce89d98438c2a35bf7e53af5096cc878) )
|
||||
@ -1264,6 +1270,15 @@ ROM_START( ekaraj )
|
||||
ROM_RELOAD(0x000000, 0x100000)
|
||||
ROM_END
|
||||
|
||||
ROM_START( ekaraphs )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "ekaraheadset.bin", 0x600000, 0x200000, CRC(dd9b3cd7) SHA1(baaf35d56fa45b6f995b8466331bb30f0035f734) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
ROM_START( ddrfammt )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "ekara_ddr_ha010_81947.bin", 0x600000, 0x200000, CRC(737d5d1a) SHA1(a1043047056dd27bca69767ee2044461ec549465) )
|
||||
@ -1325,6 +1340,8 @@ CONS( 200?, rad_rh, 0, 0, xavix, rad_rh, xavix_state,
|
||||
|
||||
CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, epo_efdx, xavix_i2c_state, init_epo_efdx, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
CONS( 2005, epo_guru, 0, 0, xavix, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Gururin World (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
CONS( 200?, has_wamg, 0, 0, xavix, xavix, xavix_state, init_xavix, "Hasbro / Milton Bradley / SSD Company LTD", "TV Wild Adventure Mini Golf (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
|
||||
@ -1335,7 +1352,8 @@ CONS( 200?, has_wamg, 0, 0, xavix, xavix, xavix_state,
|
||||
CONS( 2000, ekara, 0, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD / Hasbro", "e-kara (US?, NTSC, set 1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) // shows "Please insert a cartridge before turn it on" without cart
|
||||
CONS( 2000, ekaraa, ekara, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD / Hasbro", "e-kara (US?, NTSC, set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) // shows "Please insert a cartridge before turning on e-kara" without cart
|
||||
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
|
||||
// there appear to be later e-kara releases for each region with 3 built in songs too
|
||||
// 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, 0, 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*/ )
|
||||
|
||||
CONS( 2001, ddrfammt, 0, 0, xavix_cart_ddrfammt,ddrfammt, xavix_cart_state, init_xavix, "Takara / Konami / SSD Company LTD", "Dance Dance Revolution Family Mat (Japan)", MACHINE_IMPERFECT_SOUND/*|MACHINE_IS_BIOS_ROOT*/ )
|
||||
|
||||
@ -1346,7 +1364,12 @@ CONS( 2000, popira, 0, 0, xavix_cart_popira,popira, xavix_cart_st
|
||||
CONS( 2003, taikodp, 0, 0, xavix_i2c_taiko, taikodp, xavix_i2c_cart_state, init_xavix, "Takara / SSD Company LTD", "Taiko De Popira (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*|MACHINE_IS_BIOS_ROOT*/ ) // inputs? are the drums analog?
|
||||
|
||||
|
||||
/* SuperXaviX hardware titles */
|
||||
/* SuperXaviX (XaviX 2000 type CPU) hardware titles */
|
||||
|
||||
ROM_START( epo_sdb )
|
||||
ROM_REGION(0x400000, "bios", ROMREGION_ERASE00)
|
||||
ROM_LOAD("superdashball.bin", 0x000000, 0x400000, CRC(a004a764) SHA1(47a96822d4d7d6a0f6be5cd729c3747dbab65979) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ttv_sw )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
|
||||
@ -1368,15 +1391,21 @@ ROM_START( drgqst )
|
||||
ROM_LOAD( "dragonquest.bin", 0x000000, 0x800000, CRC(3d24413f) SHA1(1677e81cedcf349de7bf091a232dc82c6424efba) )
|
||||
ROM_END
|
||||
|
||||
CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c_24c02, xavix, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c_24c02, xavix, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Lord Of The Rings - Warrior of Middle-Earth", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c_24c04, ttv_mx, xavix_i2c_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2003, drgqst, 0, 0, xavix2000_i2c_24c02, xavix, xavix_i2c_lotr_state, init_xavix, "Square Enix / SSD Company LTD", "Kenshin Dragon Quest: Yomigaerishi Densetsu no Ken", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2004, epo_sdb, 0, 0, xavix2000, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Super Dash Ball (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c_24c02, xavix, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c_24c02, xavix, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Lord Of The Rings - Warrior of Middle-Earth", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c_24c04, ttv_mx, xavix_i2c_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2003, drgqst, 0, 0, xavix2000_i2c_24c02, xavix , xavix_i2c_lotr_state, init_xavix, "Square Enix / SSD Company LTD", "Kenshin Dragon Quest: Yomigaerishi Densetsu no Ken", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
/* SuperXaviX (XaviX 2002 type CPU) hardware titles */
|
||||
|
||||
/* The 'XaviXPORT' isn't a real console, more of a TV adapter, all the actual hardware (CPU including video hw, sound hw) is in the cartridges and controllers
|
||||
and can vary between games, see notes at top of driver.
|
||||
*/
|
||||
|
||||
// SSD 2002 NEC 85054-611 CPU uses 16-bit ROMs
|
||||
|
||||
ROM_START( xavtenni )
|
||||
ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "xavixtennis.bin", 0x000000, 0x800000, CRC(23a1d918) SHA1(2241c59e8ea8328013e55952ebf9060ea0a4675b) )
|
||||
|
@ -445,6 +445,12 @@ private:
|
||||
DECLARE_READ8_MEMBER(mult_param_r);
|
||||
DECLARE_WRITE8_MEMBER(mult_param_w);
|
||||
|
||||
uint8_t m_barrel_params[2];
|
||||
|
||||
DECLARE_READ8_MEMBER(barrel_r);
|
||||
DECLARE_WRITE8_MEMBER(barrel_w);
|
||||
|
||||
|
||||
void update_irqs();
|
||||
uint8_t m_irqsource;
|
||||
|
||||
|
@ -366,7 +366,23 @@ WRITE8_MEMBER(xavix_state::dispctrl_6ff8_w)
|
||||
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
|
||||
}
|
||||
|
||||
uint8_t old_vid = m_video_ctrl;
|
||||
|
||||
m_video_ctrl = data & 0x3f;
|
||||
|
||||
// epo_guru needs something like this, otherwise raster IRQ ends up blocking all other IRQs forever
|
||||
if ((old_vid & 0x10) != (m_video_ctrl & 0x10))
|
||||
{
|
||||
if (!(m_video_ctrl & 0x10))
|
||||
{
|
||||
//printf("callback on scanline %d %d with IRQ enabled\n", m_screen->vpos(), m_screen->hpos());
|
||||
m_video_ctrl &= ~0x40;
|
||||
m_irqsource &= ~0x40;
|
||||
update_irqs();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// printf("%s: dispctrl_6ff8_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
@ -799,6 +815,49 @@ TIMER_CALLBACK_MEMBER(xavix_state::adc_timer_done)
|
||||
//update_irqs();
|
||||
}
|
||||
|
||||
// epo_guru uses this for ground movement in 3d stages (and other places)
|
||||
READ8_MEMBER(xavix_state::barrel_r)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
// or upper bits of result?
|
||||
logerror("%s: reading shift trigger?!\n", machine().describe_context());
|
||||
return 0x00;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t retdata = m_barrel_params[1];
|
||||
logerror("%s: reading shift results/data %02x\n", machine().describe_context(), retdata);
|
||||
return retdata;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::barrel_w)
|
||||
{
|
||||
m_barrel_params[offset] = data;
|
||||
|
||||
if (offset == 0)
|
||||
{
|
||||
int shift_data = m_barrel_params[1];
|
||||
int shift_amount = data & 0x0f;
|
||||
int shift_param = (data & 0xf0)>>4;
|
||||
|
||||
// this can't be right, shift amount would allow us to shift 16 places this way, this is an 8-bit register, uneless it can shift in and out of a private register?
|
||||
|
||||
if (shift_param & 0x8)
|
||||
{
|
||||
m_barrel_params[1] = shift_data >> shift_amount;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_barrel_params[1] = shift_data << shift_amount;
|
||||
}
|
||||
|
||||
// offset 0 = trigger
|
||||
logerror("%s: shifting value %02x by %01x with params %01x\n", machine().describe_context(), shift_data, shift_amount, shift_param);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
READ8_MEMBER(xavix_state::mult_r)
|
||||
@ -958,6 +1017,7 @@ void xavix_state::machine_start()
|
||||
save_item(NAME(m_sndtimer));
|
||||
save_item(NAME(m_timer_baseval));
|
||||
save_item(NAME(m_spritereg));
|
||||
save_item(NAME(m_barrel_params));
|
||||
}
|
||||
|
||||
void xavix_state::machine_reset()
|
||||
@ -1033,6 +1093,9 @@ void xavix_state::machine_reset()
|
||||
m_extbusctrl[1] = 0x00;
|
||||
m_extbusctrl[2] = 0x00;
|
||||
|
||||
m_barrel_params[0] = 0x00;
|
||||
m_barrel_params[1] = 0x00;
|
||||
|
||||
}
|
||||
|
||||
typedef device_delegate<uint8_t(int which, int half)> xavix_interrupt_vector_delegate;
|
||||
|
@ -38548,6 +38548,7 @@ jak_wall //
|
||||
jak_wwe //
|
||||
jak_fan4 //
|
||||
jak_just //
|
||||
jak_dora //
|
||||
vii // KenSingTon / Jungle Soft / Siatronics Vii
|
||||
wrlshunt // Wireless: Hunting Video Game System
|
||||
wirels60 // Wireless 60
|
||||
@ -38559,6 +38560,7 @@ rad_skatp //
|
||||
rad_sktv //
|
||||
rad_crik //
|
||||
rad_fb2 //
|
||||
mattelcs //
|
||||
|
||||
@source:vsmile.cpp
|
||||
vsmile //
|
||||
@ -39703,11 +39705,14 @@ rad_snowp //
|
||||
rad_madf //
|
||||
rad_fb //
|
||||
epo_efdx //
|
||||
epo_sdb //
|
||||
epo_guru //
|
||||
rad_rh //
|
||||
has_wamg //
|
||||
ekara //
|
||||
ekaraa //
|
||||
ekaraj //
|
||||
ekaraphs //
|
||||
ddrfammt //
|
||||
popira //
|
||||
taikodp //
|
||||
|
Loading…
Reference in New Issue
Block a user