new NOT WORKING --- Play TV Real Swing Golf [Sean Riddle, Peter Wilhelmsen] (#4515)

* new NOT WORKING
---
Play TV Real Swing Golf [Sean Riddle, Peter Wilhelmsen]

also byteswapped the Golden Tee Home ROM to be more inline with current findings / dumping technique (nw)

* minor refactor preparation (nw)

* some trkfldch mapping notes (nw)
This commit is contained in:
David Haywood 2019-01-16 12:59:41 +00:00 committed by ajrhacker
parent 2d759abc17
commit b7bea7a50f
3 changed files with 137 additions and 18 deletions

View File

@ -12,13 +12,13 @@
name PCB ID ROM width TSOP pads ROM size SEEPROM die markings
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)
Real Swing Golf 74037 x16 48 4MB no ELAN EU3A14 (developed by FarSight Studios)
Baseball 3 ? x16 48 4MB no ELAN EU3A14 (developed by FarSight Studios)
Huntin3 ? x16 48 4MB no Elan ?
Connectv Football ? x16 48 4MB no ELAN EU3A14 (developed by Medialink)
Huntin3 ? x16 48 4MB no Elan ? (developed by V-Tac Technology Co Ltd.)
--------------
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
@ -159,6 +159,7 @@ private:
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);
void draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int count, int pal, int flipx, int xpos, int ypos, int gfxno);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@ -371,6 +372,14 @@ void radica_eu3a14_state::draw_background(screen_device &screen, bitmap_ind16 &b
}
void radica_eu3a14_state::draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int count, int pal, int flipx, int xpos, int ypos, int gfxno)
{
int tileno = offset + count;
gfx_element *gfx = m_gfxdecode->gfx(gfxno);
gfx->transpen(bitmap, cliprect, tileno, pal, flipx, 0, xpos, ypos, 0);
}
void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// first 4 sprite entries seem to be garbage sprites, so we start at 0x20
@ -433,8 +442,7 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm
int offset = ((m_mainram[i + 5] << 8) + (m_mainram[i + 4] << 0));
int extra = m_mainram[i + 6];
gfx_element *gfx;
gfx = m_gfxdecode->gfx(1);
int gfxno = 1;
int spritebase = (m_spritebase[1] << 8) | m_spritebase[0];
@ -447,16 +455,17 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm
case 0x00: // 8bpp
case 0x07: // 8bpp
offset >>= 1;
gfx = m_gfxdecode->gfx(2);
gfxno = 2;
break;
case 0x02: // 2bpp
offset <<= 1;
gfx = m_gfxdecode->gfx(0);
gfxno = 0;
pal = 0;
break;
case 0x04: // 4bpp
gfxno = 1;
break;
case 0x01: // unknowns
@ -476,7 +485,7 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm
{
for (int xx = 0; xx < width; xx++)
{
gfx->transpen(bitmap, cliprect, offset + count, pal, flipx, 0, x + xx * 8, y + yy, 0);
draw_sprite_line(screen, bitmap, cliprect, offset, count, pal, flipx, x + xx * 8, y + yy, gfxno);
count++;
}
}
@ -678,7 +687,7 @@ static INPUT_PORTS_START( rad_gtg )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // up and down in the menus should be the trackball, maybe these are leftovers from real swing golf or just from development?
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // up and down in the menus should be the trackball
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
PORT_START("IN1")
@ -696,6 +705,60 @@ static INPUT_PORTS_START( rad_gtg )
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( rad_rsg ) // base unit just has 4 directions + enter and a sensor to swing the club over
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // aiming
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) // select in menus?
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // previous in menus?
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // next in menus?
PORT_DIPNAME( 0x20, 0x20, "IN0" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("IN1")
PORT_DIPNAME( 0x01, 0x01, "IN1" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("TV")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( rad_rsgp )
PORT_INCLUDE(rad_rsg)
PORT_MODIFY("TV")
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
// hold enter and left during power on for test mode
static INPUT_PORTS_START( radica_foot )
PORT_START("IN0")
@ -1055,9 +1118,20 @@ void radica_eu3a14_state::init_rad_hnt3()
ROM_START( rad_gtg )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "goldentee.bin", 0x000000, 0x400000, CRC(b1985c63) SHA1(c42a59fcb665eb801d9ca5312b90e39333e52de4) )
ROM_LOAD( "goldentee.bin", 0x000000, 0x400000, CRC(2d6cdb85) SHA1(ce6ed39d692ff16ea407f39c37b6e731f952b9d5) )
ROM_END
ROM_START( rad_rsg )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "realswinggolf.bin", 0x000000, 0x400000, CRC(89e5b6a6) SHA1(0b14aa84d7e7ae7190cd64e3eb125de2104342bc) )
ROM_END
ROM_START( rad_rsgp )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "realswinggolf.bin", 0x000000, 0x400000, CRC(89e5b6a6) SHA1(0b14aa84d7e7ae7190cd64e3eb125de2104342bc) )
ROM_END
ROM_START( rad_foot )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "connectvfootball.bin", 0x000000, 0x400000, CRC(00ac4fc0) SHA1(2b60ae5c6bc7e9ef7cdbd3f6a0a0657ed3ab5afe) )
@ -1083,13 +1157,16 @@ ROM_START( rad_hnt3p )
ROM_LOAD( "huntin3.bin", 0x000000, 0x400000, CRC(c8e3e40b) SHA1(81eb16ac5ab6d93525fcfadbc6703b2811d7de7f) )
ROM_END
CONS( 2006, rad_gtg, 0, 0, radica_eu3a14_adc, rad_gtg, radica_eu3a14_state, init_rad_gtg, "Radica (licensed from Incredible Technologies)", "Golden Tee Golf: Home Edition", MACHINE_NOT_WORKING )
CONS( 2006, rad_gtg, 0, 0, radica_eu3a14_adc, rad_gtg, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios (licensed from Incredible Technologies)", "Golden Tee Golf: Home Edition", MACHINE_NOT_WORKING )
CONS( 2005, rad_rsg, 0, 0, radica_eu3a14, rad_rsg, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios", "Play TV Real Swing Golf", MACHINE_NOT_WORKING )
CONS( 2005, rad_rsgp, rad_rsg, 0, radica_eu3a14p, rad_rsgp, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios", "Connectv Real Swing Golf", MACHINE_NOT_WORKING )
// also has a Connectv Real Soccer logo in the roms, apparently unused, maybe that was to be the US title (without the logo being changed to Play TV) but Play TV Soccer ended up being a different game licensed from Epoch instead.
CONS( 2006, rad_foot, 0, 0, radica_eu3a14p, radica_foot, radica_eu3a14_state, init_rad_foot, "Radica", "Connectv Football", MACHINE_NOT_WORKING )
CONS( 2006, rad_foot, 0, 0, radica_eu3a14p, radica_foot, radica_eu3a14_state, init_rad_foot, "Radica / Medialink", "Connectv Football", MACHINE_NOT_WORKING )
CONS( 200?, rad_bb3, 0, 0, radica_eu3a14, radica_bb3, radica_eu3a14_state, init_rad_gtg, "Radica", "Play TV Baseball 3", MACHINE_NOT_WORKING )
CONS( 200?, rad_bb3p, rad_bb3, 0, radica_eu3a14p, radica_bb3p, radica_eu3a14_state, init_rad_gtg, "Radica", "Connectv Baseball 3", MACHINE_NOT_WORKING )
CONS( 2005, rad_bb3, 0, 0, radica_eu3a14, radica_bb3, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios", "Play TV Baseball 3", MACHINE_NOT_WORKING )
CONS( 2005, rad_bb3p, rad_bb3, 0, radica_eu3a14p, radica_bb3p, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios", "Connectv Baseball 3", MACHINE_NOT_WORKING )
CONS( 2005, rad_hnt3, 0, 0, radica_eu3a14, radica_hnt3, radica_eu3a14_state, init_rad_hnt3, "Radica / V-Tac Technology Co Ltd.", "Play TV Huntin' 3", MACHINE_NOT_WORKING )
CONS( 2005, rad_hnt3p,rad_hnt3, 0, radica_eu3a14p, radica_hnt3p, radica_eu3a14_state, init_rad_hnt3, "Radica / V-Tac Technology Co Ltd.", "Connectv Huntin' 3", MACHINE_NOT_WORKING )
CONS( 2005, rad_hnt3, 0, 0, radica_eu3a14, radica_hnt3, radica_eu3a14_state, init_rad_hnt3, "Radica / V-Tac Technology Co Ltd.", "Play TV Huntin' 3", MACHINE_NOT_WORKING )
CONS( 2005, rad_hnt3p,rad_hnt3, 0, radica_eu3a14p, radica_hnt3p, radica_eu3a14_state, init_rad_hnt3, "Radica / V-Tac Technology Co Ltd.", "Connectv Huntin' 3", MACHINE_NOT_WORKING )

View File

@ -5,7 +5,23 @@
Track & Field Challenge TV Game
https://www.youtube.com/watch?v=wjn1lLylqog
HELP! what type of CPU / SoC is this? seems to be G65816 derived?
HELP! what type of CPU / SoC is this? seems to be G65816 derived with custom vectors?
currently dies after call at
00:AE85: LDA $0b
00:AE87: TAX
00:AE88: LDA $0d
00:AE8A: JSL $00a044
00:A044: SEP #$20
00:A046: PHA
00:A047: REP #$20
00:A049: DEX
00:A04A: PHX
00:A04B: RTL
which pushes some values onto the stack, then RTLs to them (but the values at $0b and $0d at both 00, so it jumps to 0 and dies)
*/
@ -42,6 +58,9 @@ private:
uint32_t screen_update_trkfldch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void trkfldch_map(address_map &map);
DECLARE_READ8_MEMBER(unk_7804_read);
DECLARE_READ8_MEMBER(unk_7805_read);
};
void trkfldch_state::video_start()
@ -53,9 +72,30 @@ uint32_t trkfldch_state::screen_update_trkfldch(screen_device &screen, bitmap_in
return 0;
}
READ8_MEMBER(trkfldch_state::unk_7804_read)
{
return 0xff;
}
READ8_MEMBER(trkfldch_state::unk_7805_read)
{
return 0xff;
}
void trkfldch_state::trkfldch_map(address_map &map)
{
map(0x8000, 0xbfff).rom().region("maincpu", 0x0000);
map(0x000000, 0x003fff).ram();
map(0x006800, 0x006cff).ram();
map(0x007000, 0x0072ff).ram();
// 7800 - 78xx look like registers?
map(0x007804, 0x007804).r(FUNC(trkfldch_state::unk_7804_read));
map(0x007805, 0x007805).r(FUNC(trkfldch_state::unk_7805_read));
map(0x008000, 0x3fffff).rom().region("maincpu", 0x000000); // good for code mapped at 008000 and 050000 at least
}
static INPUT_PORTS_START( trkfldch )

View File

@ -33058,6 +33058,8 @@ rabbitjt // (c) 1996 Electronic Arts
@source:rad_eu3a14.cpp
rad_gtg
rad_rsg
rad_rsgp
rad_foot
rad_bb3
rad_bb3p