mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
new NOT WORKING --- Play TV Buckmasters Huntin' 2 (NTSC) [Sean Riddle, Peter Wilhelmsen] + extra Jakks gamekeys (#4511)
* new NOT WORKING --- Play TV Buckmasters Huntin' 2 (NTSC) [Sean Riddle, Peter Wilhelmsen] * rad_eu3a14.cpp : start moving away from drawgfx use so that we can move towards support of unaligned ram based drawing etc. needed by rad_hnt3 (nw) * new not working SOFTWARE LIST entries jakks_gamekey_dy.xml: Sports Bowling & Goofy's Underwater Adventure [Sean Riddle] jakks_gamekey_dy.xml: Sports Tennis & Face Chase [Sean Riddle] (a Disney base unit is on the way) * notes on how to bypass the startup check for now (nw)
This commit is contained in:
parent
c929d074dc
commit
8dbab379a5
36
hash/jakks_gamekey_dy.xml
Normal file
36
hash/jakks_gamekey_dy.xml
Normal file
@ -0,0 +1,36 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<softwarelist name="jakks_gamekey_dy" description="JAKKS Pacific 'DY' Game Keys">
|
||||
|
||||
<!-- This list is for the 'DY' coded Game Keys, for Disney base systems (not Disney Princess) -->
|
||||
|
||||
<!-- One of them doesn't use the /OE signal from the game, and has 16 10K resistors tying the data lines high.
|
||||
Silkscreened onto both PCBs is the text A1 A2 A3 A4 with 2 boxes next to each with H and L. Both PCBs are marked A1 H A3 L. -->
|
||||
|
||||
<!-- in debugger do "go 14ca4" then "do r1 = ffff" (it checks for compatible base board using magic value / response on port a) -->
|
||||
<software name="sbwlgoof" supported="no"> <!-- AT24C04 SEEPROM -->
|
||||
<description>Sports Bowling & Goofy's Underwater Adventure</description>
|
||||
<year>2005</year>
|
||||
<publisher>JAKKS Pacific</publisher>
|
||||
<part name="cart" interface="jakks_gamekey">
|
||||
<dataarea name="rom" size="0x200000">
|
||||
<rom name="dy_disneygkbowlinggoofy.bin" size="0x200000" crc="d2147aa4" sha1="0db986aac68868a2ff4936e93178da8c592ac81d" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- in debugger do "go fbdb" then "do r1 = ffff" (it checks for compatible base board using magic value / response on port a) -->
|
||||
<software name="stenfchs" supported="no"> <!-- AT24C04 SEEPROM -->
|
||||
<description>Sports Tennis & Face Chase</description>
|
||||
<year>2005</year>
|
||||
<publisher>JAKKS Pacific</publisher>
|
||||
<part name="cart" interface="jakks_gamekey">
|
||||
<dataarea name="rom" size="0x200000">
|
||||
<rom name="dy_disneygktennisfacechase.bin" size="0x200000" crc="ba37ccf2" sha1="c7204a0499b6949f3f70f0f5c042d353435406fb" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- There is another key with "Sports Tennis" "Face Chase" and "The Riches of Agrabah" which was sold as part of a 2-key + unit bundle -->
|
||||
|
||||
</softwarelist>
|
@ -11,15 +11,15 @@
|
||||
Known to be on this hardware
|
||||
|
||||
name PCB ID ROM width TSOP pads ROM size SEEPROM die markings
|
||||
Golden Tee Golf Home Edition ELAN EU3A14 (developed by FarSight Studios)
|
||||
Connectv Football ELAN EU3A14 (developed by Medialink)
|
||||
Play TV Basketball 75029 x16 48 4MB no ELAN EU3A14
|
||||
Golden Tee Golf Home Edition ? x16 48 4MB no ELAN EU3A14 (developed by FarSight Studios)
|
||||
Connectv Football ? x16 48 4MB no ELAN EU3A14 (developed by Medialink)
|
||||
Baseball 3 ? x16 48 4MB no ELAN EU3A14 (developed by FarSight Studios)
|
||||
Huntin’3 ? x16 48 4MB no Elan ?
|
||||
--------------
|
||||
Also on this hardware
|
||||
--------------
|
||||
Real Swing Golf 74037 x16 48 not dumped no ELAN EU3A14
|
||||
Play TV Basketball 75029 x16 48 not dumped no ELAN EU3A14
|
||||
|
||||
In many ways this is similar to the rad_eu3a05.cpp hardware
|
||||
but the video system has changed, here the sprites are more traditional non-tile based, rather
|
||||
@ -71,6 +71,7 @@ public:
|
||||
radica_eu3a14_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_mainregion(*this, "maincpu"),
|
||||
m_palram(*this, "palram"),
|
||||
m_scrollregs(*this, "scrollregs"),
|
||||
m_tilecfg(*this, "tilecfg"),
|
||||
@ -134,6 +135,7 @@ private:
|
||||
double hue2rgb(double p, double q, double t);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_region_ptr<uint8_t> m_mainregion;
|
||||
required_shared_ptr<uint8_t> m_palram;
|
||||
required_shared_ptr<uint8_t> m_scrollregs;
|
||||
required_shared_ptr<uint8_t> m_tilecfg;
|
||||
@ -153,6 +155,7 @@ private:
|
||||
int m_pagewidth;
|
||||
int m_pageheight;
|
||||
|
||||
void draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int gfxno, int tileno, int base, int palette, int flipx, int flipy, int xpos, int ypos, int transpen, int size);
|
||||
void handle_palette(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_page(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int xbase, int ybase, int size);
|
||||
void draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
@ -213,51 +216,109 @@ void radica_eu3a14_state::handle_palette(screen_device &screen, bitmap_ind16 &bi
|
||||
}
|
||||
}
|
||||
|
||||
void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int gfxno, int tileno, int base, int palette, int flipx, int flipy, int xpos, int ypos, int transpen, int size)
|
||||
{
|
||||
int bppdiv = 1;
|
||||
int baseaddr = base * 256;
|
||||
|
||||
switch (gfxno)
|
||||
{
|
||||
case 0x03: bppdiv = 1; baseaddr += tileno * 256; break; // 16x16 8bpp
|
||||
case 0x04: bppdiv = 2; baseaddr += tileno * 128; break; // 16x16 4bpp
|
||||
case 0x05: bppdiv = 1; baseaddr += tileno * 64; break; // 8x8 8bpp
|
||||
case 0x06: bppdiv = 2; baseaddr += tileno * 64; break; // 8x8 4bpp
|
||||
default: break;
|
||||
}
|
||||
const uint8_t *gfxdata = &m_mainregion[baseaddr & 0x3fffff];
|
||||
|
||||
int xstride = size / bppdiv;
|
||||
|
||||
int count = 0;
|
||||
for (int y = 0; y < size; y++)
|
||||
{
|
||||
int realy = ypos + y;
|
||||
uint16_t* dst = &bitmap.pix16(ypos + y);
|
||||
|
||||
for (int x = 0; x < xstride; x++)
|
||||
{
|
||||
int pix = gfxdata[count];
|
||||
|
||||
if (realy >= cliprect.min_y && realy <= cliprect.max_y)
|
||||
{
|
||||
if (bppdiv == 1) // 8bpp
|
||||
{
|
||||
int realx = x + xpos;
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix)
|
||||
dst[realx] = pix;
|
||||
}
|
||||
}
|
||||
else if (bppdiv == 2) // 4bpp
|
||||
{
|
||||
int realx = (x * 2) + xpos;
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix & 0xf0)
|
||||
dst[realx] = (pix & 0xf0) >> 4;
|
||||
}
|
||||
|
||||
realx++;
|
||||
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix & 0x0f)
|
||||
dst[realx] = pix & 0x0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void radica_eu3a14_state::draw_page(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int xbase, int ybase, int size)
|
||||
{
|
||||
gfx_element *gfx;
|
||||
int gfxno = 0;
|
||||
|
||||
int pagesize = m_pagewidth * m_pageheight * 2;
|
||||
|
||||
int base = (m_tilebase[1] << 8) | m_tilebase[0];
|
||||
if (m_tilecfg[2] & 0x04) // 4bpp selection
|
||||
{
|
||||
gfx = m_gfxdecode->gfx(4); // 16x16 4bpp
|
||||
base <<= 1;
|
||||
gfxno = 4; // 16x16 4bpp
|
||||
|
||||
if (size == 8)
|
||||
{
|
||||
gfx = m_gfxdecode->gfx(6); // 8x8 4bpp
|
||||
base <<= 2;
|
||||
gfxno = 6; // 8x8 4bpp
|
||||
}
|
||||
}
|
||||
else // 8bpp selection
|
||||
{
|
||||
gfx = m_gfxdecode->gfx(3); // 16x16 8bpp
|
||||
gfxno = 3; // 16x16 8bpp
|
||||
|
||||
if (size == 8)
|
||||
{
|
||||
gfx = m_gfxdecode->gfx(5); // 8x8 8bpp
|
||||
base <<= 2;
|
||||
gfxno = 5; // 8x8 8bpp
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int xdraw = xbase;
|
||||
int ydraw = ybase;
|
||||
int count = 0;
|
||||
|
||||
for (int i = m_tilerambase+pagesize*which; i < m_tilerambase+pagesize*(which+1); i+=2)
|
||||
for (int i = m_tilerambase + pagesize * which; i < m_tilerambase + pagesize * (which + 1); i += 2)
|
||||
{
|
||||
int tile = m_mainram[i+0] | (m_mainram[i+1] << 8);
|
||||
int tile = m_mainram[i + 0] | (m_mainram[i + 1] << 8);
|
||||
|
||||
gfx->transpen(bitmap, cliprect, tile+base, 0, 0, 0, xdraw, ydraw, 0);
|
||||
xdraw+=size;
|
||||
draw_tile(bitmap, cliprect, gfxno, tile, base, 0, 0, 0, xdraw, ydraw, 0, size);
|
||||
|
||||
xdraw += size;
|
||||
|
||||
count++;
|
||||
if (((count % m_pagewidth) == 0))
|
||||
{
|
||||
xdraw -= size*m_pagewidth;
|
||||
xdraw -= size * m_pagewidth;
|
||||
ydraw += size;
|
||||
}
|
||||
}
|
||||
|
@ -842,6 +842,8 @@ void jakks_gkr_state::jakks_gkr_nk(machine_config &config)
|
||||
jakks_gkr(config);
|
||||
|
||||
SOFTWARE_LIST(config, "jakks_gamekey_nk").set_original("jakks_gamekey_nk");
|
||||
|
||||
SOFTWARE_LIST(config, "jakks_gamekey_dy").set_original("jakks_gamekey_dy"); // doesn't belong here, but there are no DY base games dumped yet so just ensure it isn't orphaned
|
||||
}
|
||||
|
||||
|
||||
|
@ -201,6 +201,12 @@
|
||||
Fitness Dance has an Atmel H93864C (maybe SEEPROM?) a Microchip DSPIC 33FJ12GP202 and two JRC 2740 dual op amps.
|
||||
Music and Circuit has a 24CS64, two UTC324 quad op amps, a 74HC14, a 74HCT04, and an 8-pin SOIC labeled 61545, which is likely an M61545 dual electronic volume control.
|
||||
|
||||
NOTES:
|
||||
|
||||
Play TV Monster Truck runs off an entirely different codebase to everything else, presumably coded by the developer from scratch rather than using code supplied by SSD Company LTD
|
||||
Play TV Rescue Heroes fails to display any kind of XaviX logo or SSD Copyright, it is the only XaviX based game so far to not show these details anywhere in the game.
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -1233,6 +1239,12 @@ ROM_START( rad_hnt )
|
||||
ROM_LOAD("huntin1.bin", 0x000000, 0x100000, CRC(e51e250f) SHA1(d72199096d466cd344bb243ef1228e0df9501d00) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( rad_hnt2 )
|
||||
ROM_REGION(0x200000, "bios", ROMREGION_ERASE00)
|
||||
ROM_LOAD("huntin2.bin", 0x000000, 0x200000, CRC(fb6846df) SHA1(267632790ed42eba7ef1517b86b024799a78839d) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( rad_snow )
|
||||
ROM_REGION(0x100000, "bios", ROMREGION_ERASE00)
|
||||
ROM_LOAD("snoblu.bin", 0x000000, 0x100000, CRC(593e40b3) SHA1(03483ac39eddd7746470fb60018e704382b0da59) )
|
||||
@ -1380,6 +1392,8 @@ CONS( 2000, rad_opus, 0, 0, xavix_nv, rad_opus, xavix_state,
|
||||
|
||||
CONS( 2000, rad_hnt, 0, 0, xavix_nv, rad_hnt, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Buckmasters Huntin' (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // need to map gun (box shows 'Play TV' ingame just shows 'Plug & Play')
|
||||
|
||||
CONS( 2003, rad_hnt2, 0, 0, xavix_nv, rad_hnt, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Buckmasters Huntin' 2 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // need to map gun, crashes on pause
|
||||
|
||||
CONS( 2003, rad_mtrk, 0, 0, xavix_mtrk, rad_mtrk, xavix_mtrk_state, init_xavix, "Radica / SSD Company LTD", "Play TV Monster Truck (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 2003, rad_mtrkp, rad_mtrk, 0, xavix_mtrkp, rad_mtrkp,xavix_mtrk_state, init_xavix, "Radica / SSD Company LTD", "ConnecTV Monster Truck (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
@ -1402,7 +1416,7 @@ CONS( 2003, rad_madf, 0, 0, xavix_madfb, rad_fb, xavix_madfb_s
|
||||
|
||||
CONS( 200?, rad_fb, 0, 0, xavix_madfb, rad_fb, xavix_madfb_state, init_xavix, "Radica / SSD Company LTD", "Play TV Football (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // USA only release? doesn't change logo for PAL.
|
||||
|
||||
CONS( 200?, rad_rh, 0, 0, xavix, rad_rh, xavix_state, init_xavix, "Radioa / Fisher-Price / SSD Company LTD", "Play TV Rescue Heroes (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 200?, rad_rh, 0, 0, xavix, rad_rh, xavix_state, init_xavix, "Radica / Fisher-Price / SSD Company LTD", "Play TV Rescue Heroes (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, epo_efdx, xavix_i2c_state, init_epo_efdx, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
|
@ -39712,6 +39712,7 @@ rad_crdn //
|
||||
rad_crdnp //
|
||||
rad_opus //
|
||||
rad_hnt //
|
||||
rad_hnt2 //
|
||||
rad_bass //
|
||||
rad_bassp //
|
||||
rad_snow //
|
||||
|
Loading…
Reference in New Issue
Block a user