mirror of
https://github.com/holub/mame
synced 2025-06-06 12:53:46 +03:00
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:
parent
2d759abc17
commit
b7bea7a50f
@ -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)
|
||||
Huntin’3 ? x16 48 4MB no Elan ?
|
||||
Connectv Football ? x16 48 4MB no ELAN EU3A14 (developed by Medialink)
|
||||
Huntin’3 ? 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 )
|
||||
|
@ -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 )
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user