mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
Plug and Play work (#6363)
* set discpal to correct machine type (nw) * moew skannerz tv to its own driver and add notes from Tahg [Tahg] * buzztime IO notes from Tahg [Tahg] * new NOT WORKING ---- Pac-Man Connect & Play (Feb 14 2012 10:46:23) [Sean Riddle, David Haywood] boots and you can select things from the menu but this is the newer SP SoC and needs a LOT of work on the graphics.
This commit is contained in:
parent
b48b0cb47c
commit
b973a74df6
@ -3823,6 +3823,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/tvgame.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg110.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_skannerztv.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_jakks.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_jakks_gkr.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg2xx_jakks_tvtouch.cpp",
|
||||
|
@ -93,6 +93,119 @@
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
Buzztime Trivia notes from Tahg (addresses based on base ROM, not cartridges)
|
||||
|
||||
300 Cursor Left
|
||||
301 Cursor Top
|
||||
302 Cursor Right
|
||||
303 Cursor Bottom
|
||||
|
||||
3E5 Sent Command
|
||||
3E6 Watchdog Counter
|
||||
3E9 Active Player
|
||||
3EA Sent Player Id/Incoming Byte
|
||||
3EB Sent Player Button/Loop Counter
|
||||
|
||||
0-A Name
|
||||
E-F Score
|
||||
44x Player 1 Data
|
||||
...
|
||||
4Fx Player 12 Data
|
||||
|
||||
509 Cursor index
|
||||
515 Name on Enter name screen
|
||||
|
||||
These read a byte, (aaabbbcc) MSB first on IO 5041. In general:
|
||||
Set 5043 bit 0 high.
|
||||
Repeat 8 times
|
||||
Wait for 5041 bit 0 to go high
|
||||
Read 5041 bit 1
|
||||
Set 5043 bit 0 low
|
||||
|
||||
6B29 ReadCommandA Exit on c=2 or c=1,b=7,a=7 Watchdog resets counters and reads port again
|
||||
6BE8 ReadCommandB Exit on c=2 or c=1,b=7,a=7 Watchdog exits with b=FF if 3E7 nonzero
|
||||
6CB4 ReadCommandC Exit on c=2 Watchdog exits with b=FF
|
||||
|
||||
Address Publics by Value
|
||||
|
||||
00000000:00000000 byte_0
|
||||
00000000:0000050A index
|
||||
00000000:00006011 LoadTileSet
|
||||
00000000:0000605B LoadPalette
|
||||
00000000:00006090 SetTileBase
|
||||
00000000:000060D7 DisableSprites
|
||||
00000000:000060F0 SetSpriteBase
|
||||
00000000:0000648F Play0
|
||||
00000000:00006494 Play1
|
||||
00000000:00006499 Play2
|
||||
00000000:0000649E Play3
|
||||
00000000:000064A3 Play4
|
||||
00000000:000064A8 Play5
|
||||
00000000:000064AD Play6
|
||||
00000000:000064B2 Play7
|
||||
00000000:000064B7 Play8
|
||||
00000000:000064BC Play9
|
||||
00000000:000064C1 PlayA
|
||||
00000000:000064C6 PlayB
|
||||
00000000:000064CB DisableSoundCh0
|
||||
00000000:000064EA DisableSoundCh1
|
||||
00000000:00006509 DisableSoundCh2
|
||||
00000000:00006528 DisableSoundCh3
|
||||
00000000:00006547 DisableSoundCh4
|
||||
00000000:00006566 DisableSoundCh5
|
||||
00000000:00006585 DisableSoundChAll
|
||||
00000000:000065AC WaitForVBIAndSetSpriteBase
|
||||
00000000:000065B5 WaitForVBIAndSetTileBase
|
||||
00000000:000065BE WaitForVBIAndLoadTileSet
|
||||
00000000:000065C7 JJLoadTileSet
|
||||
00000000:00006933 DrawBackground
|
||||
00000000:00006B29 ReadCommandA
|
||||
00000000:00006BE8 ReadCommandB
|
||||
00000000:00006CB4 ReadCommandC
|
||||
00000000:00006D66 DrawText
|
||||
00000000:00007E80 WaitXTimesForInput
|
||||
00000000:000099B4 NameScreenLoop
|
||||
00000000:00009EB0 NameScreenSetChar
|
||||
00000000:00009F43 NameScreenDeleteChar
|
||||
00000000:00009FC8 NameScreenCalcCharacter
|
||||
00000000:0000A02F NameScreenCalculateCursor
|
||||
00000000:0000A051 NameScreenUpdateCursor
|
||||
00000000:0000A112 SelectPlayersLoop
|
||||
00000000:0000A290 SelectPlayer
|
||||
00000000:0000A31E CreatePlayer
|
||||
00000000:0000A769 ReadAAndWaitForSelect
|
||||
00000000:0000A821 DrawRoundTitles
|
||||
00000000:0000AD8A ReadAAndSetPlayer
|
||||
00000000:0000ADDF ReadAAndCheckPlayer
|
||||
00000000:0000AF1F ShowQuestion
|
||||
00000000:0000AF65 ShowChoices
|
||||
00000000:0000AFC5 ShowHint1
|
||||
00000000:0000B004 ShowHint2
|
||||
00000000:0000B033 ShowHint3
|
||||
00000000:0000B061 ShowAnswer
|
||||
00000000:0000B0BF ShowReason
|
||||
00000000:0000B1C0 ShowScore
|
||||
00000000:0000C848 MenuUpdate
|
||||
00000000:0000D10D WinScreen
|
||||
00000000:0000D1F1 DoFireworks
|
||||
00000000:0000E9AE JLoadTileSet
|
||||
00000000:0000E9B6 JLoadPalette
|
||||
00000000:0000E9C2 JSetTileBase
|
||||
00000000:0000E9C8 JSetSpriteBase
|
||||
00000000:0000E9CE JDisableSprites
|
||||
00000000:0000E9D4 SetGamePage
|
||||
00000000:0000E9DF MemoryTest
|
||||
00000000:0000EA36 SRAMTest
|
||||
00000000:0000EBA9 nullsub_1
|
||||
00000000:0000EBAA WaitForVBI
|
||||
00000000:0000EBCA RomTest
|
||||
00000000:0000EC24 WaitForTimer
|
||||
00000000:0000ECE9 nullsub_2
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/m6502/m6502.h"
|
||||
//#include "cpu/m6502/m65c02.h"
|
||||
|
@ -322,104 +322,6 @@ static INPUT_PORTS_START( rad_skatp )
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_CUSTOM ) // NTSC (1) / PAL (0) flag
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( rad_sktv )
|
||||
/* how does the Scanner connect? probably some serial port with comms protocol, not IO ports?
|
||||
internal test mode shows 'uart' ports (which currently fail)
|
||||
|
||||
To access internal test hold DOWN and BUTTON1 together on startup until a coloured screen appears.
|
||||
To cycle through the tests again hold DOWN and press BUTTON1 */
|
||||
|
||||
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_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
||||
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_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
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_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( wiwi18 )
|
||||
PORT_START("P1")
|
||||
@ -1187,19 +1089,6 @@ void spg2xx_game_state::rad_skatp(machine_config &config)
|
||||
// m_screen->set_size(320, 312);
|
||||
}
|
||||
|
||||
void spg2xx_game_state::rad_sktv(machine_config &config)
|
||||
{
|
||||
SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_state::mem_map_4m);
|
||||
|
||||
spg2xx_base(config);
|
||||
|
||||
m_maincpu->porta_in().set(FUNC(spg2xx_game_state::base_porta_r));
|
||||
m_maincpu->portb_in().set(FUNC(spg2xx_game_state::base_portb_r));
|
||||
m_maincpu->portc_in().set(FUNC(spg2xx_game_state::base_portc_r));
|
||||
m_maincpu->i2c_w().set(FUNC(spg2xx_game_state::i2c_w));
|
||||
m_maincpu->i2c_r().set(FUNC(spg2xx_game_state::i2c_r));
|
||||
}
|
||||
|
||||
void spg2xx_game_state::rad_crik(machine_config &config)
|
||||
{
|
||||
@ -1225,17 +1114,6 @@ ROM_START( rad_skatp ) // rom was dumped from the NTSC version, but region comes
|
||||
ROM_LOAD16_WORD_SWAP( "skateboarder.bin", 0x000000, 0x400000, CRC(08b9ab91) SHA1(6665edc4740804956136c68065890925a144626b) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( rad_sktv )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "skannerztv.bin", 0x000000, 0x200000, CRC(e92278e3) SHA1(eb6bee5e661128d83784960dfff50379c36bfaeb) )
|
||||
|
||||
/* The external scanner MCU is a Winbond from 2000: SA5641
|
||||
the scanner plays sound effects when scanning, without being connected to the main unit, so a way to dump / emulate
|
||||
this MCU is also needed for complete emulation
|
||||
|
||||
TODO: find details on MCU so that we know capacity etc. */
|
||||
ROM_END
|
||||
|
||||
ROM_START( rad_fb2 )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "football2.bin", 0x000000, 0x400000, CRC(96b4f0d2) SHA1(e91f2ac679fb0c026ffe216eb4ab58802f361a17) )
|
||||
@ -1366,7 +1244,6 @@ void spg2xx_game_swclone_state::init_swclone()
|
||||
CONS( 2006, rad_skat, 0, 0, rad_skat, rad_skat, spg2xx_game_state, init_crc, "Radica", "Play TV Skateboarder (NTSC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
CONS( 2006, rad_skatp, rad_skat, 0, rad_skatp,rad_skatp, spg2xx_game_state, init_crc, "Radica", "Connectv Skateboarder (PAL)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
CONS( 2006, rad_crik, 0, 0, rad_crik, rad_crik, spg2xx_game_state, init_crc, "Radica", "Connectv Cricket (PAL)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // Version 3.00 20/03/06 is listed in INTERNAL TEST
|
||||
CONS( 2007, rad_sktv, 0, 0, rad_sktv, 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 ) // offers a 2 player option in menus, but seems to have only been programmed for, and released as, a single player unit, P2 controls appear unfinished.
|
||||
|
||||
// ABL TV Games
|
||||
|
@ -331,8 +331,11 @@ ROM_END
|
||||
// these all have the same ROM scrambling
|
||||
|
||||
CONS( 200?, lexizeus, 0, 0, lexizeus, lexizeus, spg2xx_lexizeus_game_state, init_zeus, "Lexibook", "Zeus IG900 20-in-1 (US?)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // bad sound and some corrupt bg tilemap entries in Tiger Rescue, verify ROM data (same game runs in Zone 60 without issue)
|
||||
|
||||
CONS( 200?, lexiseal, 0, 0, lexiseal, lexiseal, spg2xx_lexiseal_game_state, init_zeus, "Lexibook / Sit Up Limited", "Seal 50-in-1", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // also has bad sound in Tiger Rescue, but no corrupt tilemap
|
||||
CONS( 200?, discpal, 0, 0, lexiseal, lexiseal, spg2xx_lexiseal_game_state, init_zeus, "Performance Designed Products / Disney / Jungle Soft", "Disney Game It! Classic Pals", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
// there are versions of the Seal that actually show Lexibook on the boot screen rather than just the unit
|
||||
|
||||
CONS( 200?, discpal, 0, 0, lexizeus, lexiseal, spg2xx_lexizeus_game_state, init_zeus, "Performance Designed Products / Disney / Jungle Soft", "Disney Game It! Classic Pals", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
// there was also a Game It! Princess Pals
|
||||
|
||||
CONS( 200?, vgcaplet, 0, 0, lexiseal, lexiseal, spg2xx_lexiseal_game_state, init_zeus, "Performance Designed Products (licensed by Taito / Data East)", "VG Pocket Caplet Fast Acting 50-in-1", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
432
src/mame/drivers/spg2xx_skannerztv.cpp
Normal file
432
src/mame/drivers/spg2xx_skannerztv.cpp
Normal file
@ -0,0 +1,432 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz, David Haywood
|
||||
|
||||
// Skannerz TV
|
||||
|
||||
/* I/O related notes from Tahg
|
||||
|
||||
Summary:
|
||||
SEND(from console) RECEIVE (to console)
|
||||
--- Load monsters / items
|
||||
1 2
|
||||
128 + 0 M/I[0] HIBYTE, LOBYTE
|
||||
... ...
|
||||
128 + 99 M/I[99] HIBYTE, LOBYTE
|
||||
--- Save monsters / items
|
||||
4 5
|
||||
128 + 0, M/I[0] HIBYTE, LOBYTE 6
|
||||
... ...
|
||||
128 + 99, M/I[99] HIBYTE, LOBYTE 6
|
||||
--- Buttons
|
||||
3 BHI, BLO
|
||||
|
||||
Buttons
|
||||
BLO:
|
||||
Bit 0 Up
|
||||
Bit 1 Down
|
||||
Bit 2 2/B
|
||||
Bit 3 1/A
|
||||
Bit 4 Left
|
||||
Bit 5 Right
|
||||
Bit 6 Unused
|
||||
Bit 7 Unused
|
||||
BHI: Unused
|
||||
|
||||
Port A
|
||||
Bit 0 Enable "Left" Controller
|
||||
Bit 1 Enable "Right" Controller
|
||||
|
||||
Player
|
||||
0:
|
||||
8:
|
||||
B:
|
||||
D:
|
||||
E:
|
||||
65: monsters
|
||||
B5: items
|
||||
|
||||
doPlayer(player)
|
||||
var_3 = player - 1
|
||||
pData = Player[var_3]
|
||||
switch(PlayerState[var_3])
|
||||
case 0: // Request controller -> console state
|
||||
r1 = 79
|
||||
while(--r1 >= 0)
|
||||
PlayerState[var_3] = 1
|
||||
P_UART_Ctrl |= TxEn
|
||||
P_UART_Ctrl |= TxIntEn
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = 1
|
||||
WaitCycle[var_3] = 6
|
||||
CurMI[var_3] = 0
|
||||
break
|
||||
case 1: // Receive controller -> console state (expects 2)
|
||||
if(Uartp != Uartg)
|
||||
byte_1241 = UARTBuffer[Uartg]
|
||||
if(byte_1241 == 2)
|
||||
PlayerState[var_3] = 2
|
||||
InitPlayer(var_3)
|
||||
Uartg = Uartg == 7 ? 0 : Uartg + 1
|
||||
break
|
||||
case 2: // Sync monster / item
|
||||
if(CurMI[var_3] != 100)
|
||||
var_6 = CurMI[var_3] | 80h
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = var_6
|
||||
PlayerState[var_3] = 3
|
||||
WaitCycle[var_3] = 6
|
||||
Retries[var_3] = 3
|
||||
CurRecByte[var_3] = 0
|
||||
else if(player == 1 && byte_1238 & 100h)
|
||||
PlayerState[var_3] = 6
|
||||
byte_1238 &= ~100h
|
||||
else if(player == 2 && byte_1238 & 200h)
|
||||
PlayerState[var_3] = 6
|
||||
byte_1238 &= ~200h
|
||||
else
|
||||
PlayerState[var_3] = 4
|
||||
if(player == 1)
|
||||
P_IOA_Buffer |= 1
|
||||
byte_1238 |= 11
|
||||
else if(player == 2)
|
||||
P_IOA_Buffer |= 2
|
||||
byte_1238 |= 22
|
||||
break
|
||||
case 3: // Receive monster / item
|
||||
if(Uartp != Uartg)
|
||||
r4 = CurMI[var_3]
|
||||
var_A = UARTBuffer[Uartg]
|
||||
if(CurRecByte[var_3] == 0)
|
||||
if(r4 > 79)
|
||||
pData.items[r4-80] = var_A << 8
|
||||
else pData.monsters[r4] = var_A << 8
|
||||
CurRecByte[var_3] += 1
|
||||
else if(CurRecByte[var_3] == 1)
|
||||
if(r4 > 79)
|
||||
pData.items[r4-80] |= var_A
|
||||
else pData.monsters[r4] |= var_A
|
||||
PlayerState[var_3] = 2
|
||||
CurMI[var_3] += 1
|
||||
Uartg = Uartg == 7 ? 0 : Uartg + 1
|
||||
break
|
||||
case 4:
|
||||
if(player == 1)
|
||||
if((byte_1238 & 4) == 0)
|
||||
byte_1238 |= 4
|
||||
r1 = 79
|
||||
while(--r1 >= 0)
|
||||
while(P_UART_Status & TXBUSY)
|
||||
else break
|
||||
else if(player == 2)
|
||||
if((byte_1238 & 8) == 0)
|
||||
byte_1238 |= 8
|
||||
r1 = 79
|
||||
while(--r1 >= 0)
|
||||
while(P_UART_Status & TXBUSY)
|
||||
break
|
||||
else break
|
||||
else break
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = 3
|
||||
PlayerState[var_3] = 5
|
||||
WaitCycle[var_3] = 6
|
||||
Retries[var_3] = 3
|
||||
CurRecByte[var_3] = 0
|
||||
break
|
||||
case 5:
|
||||
if(Uartp != Uartg)
|
||||
var_4 = CurRecByte[var_3]
|
||||
if(var_4 == 0)
|
||||
byte_1242[var_3] = UARTBuffer[Uartg] & 3fh
|
||||
CurRecByte[var_3] += 1
|
||||
else if(var_4 == 1)
|
||||
byte_1234[var_3] = UARTBuffer[Uartg] & 3fh
|
||||
PlayerState = 2
|
||||
WaitCycle[var_3] = 0
|
||||
if(player == 1)
|
||||
P_IOA_Buffer |= 1
|
||||
byte_1238 &= ~4
|
||||
else if(player == 2)
|
||||
P_IOA_Buffer |= 2
|
||||
byte_1238 &= ~8
|
||||
Uartg = Uartg == 7 ? 0 : Uartg + 1
|
||||
break:
|
||||
case 6: // Request console -> controller state
|
||||
r1 = 79
|
||||
while(--r1 >= 0)
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = 4
|
||||
PlayerState[var_3] = 7
|
||||
WaitCycle[var_3] = 6
|
||||
CurMI[var_3] = 0
|
||||
Retries[var_3] = 3
|
||||
case 7: // Receive console -> controller state (expects 5)
|
||||
if(Uartp != Uartg)
|
||||
if(UARTBuffer[Uartg] == 5)
|
||||
PlayerState = 8
|
||||
WaitCycle[var_3] = 6
|
||||
CurSendByte[var_3] = 0
|
||||
Retries[var_3] = 3
|
||||
Uartg = Uartg == 7 ? 0 : Uartg + 1
|
||||
break
|
||||
case 8: // Send monster / item
|
||||
r4 = CurMI[var_3]
|
||||
if( r4 <= 99)
|
||||
var_9 = CurSendByte[var_3]
|
||||
var_8 = 0
|
||||
if((P_UART_Status & TXBUSY) == 0)
|
||||
var_8 = 1
|
||||
if(var_8)
|
||||
if(var_9 == 0)
|
||||
var_1 = r4 | 80h
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = var_1
|
||||
WaitCycle[var_3] = 6
|
||||
CurSendByte[var_3] += 1
|
||||
else if(var_9 == 1)
|
||||
if (r4 <= 79)
|
||||
var_1 = (pData.monsters[r4] & 0xFF00) >> 8
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = var_1
|
||||
else
|
||||
var_1 = (pData.monsters[r4-80] & 0xFF00) >> 8
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = var_1
|
||||
WaitCycle[var_3] = 6
|
||||
CurSendByte[var_3] += 1
|
||||
else if(var_9 == 2)
|
||||
if (r4 <= 79)
|
||||
var_1 = pData.monsters[r4] & 0xFF
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = var_1
|
||||
else
|
||||
var_1 = pData.monsters[r4-80] & 0xFF
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl &= ~RxEn
|
||||
P_UART_TxBuf = var_1
|
||||
WaitCycle[var_3] = 6
|
||||
CurSendByte[var_3] += 1
|
||||
PlayerState[var_3] = 9
|
||||
else
|
||||
PlayerState = 4
|
||||
if(player == 1)
|
||||
P_IOA_Buffer |= 1
|
||||
byte_1238 |= 4
|
||||
else if(player == 2)
|
||||
P_IOA_Buffer |= 2
|
||||
byte_1238 |= 8
|
||||
break
|
||||
case 9: // Receive monster / item sent state (expects 6)
|
||||
if(Uartp != Uartg)
|
||||
if(UARTBuffer[Uartg] == 6)
|
||||
PlayerState[var_3] = 8
|
||||
WaitCycle[var_3] = 0
|
||||
CurSendByte[var_3] = 0
|
||||
CurMI[var_3] += 1
|
||||
Retries[var_3] = 3
|
||||
break
|
||||
doPlayerMore(player)
|
||||
|
||||
doPlayerMore(player)
|
||||
var_2 = WaitCycle[player-1]
|
||||
if(var_2 == 0) return
|
||||
var_2--
|
||||
WaitCycle[player-1] = var_2
|
||||
if(var_2 != 0) return
|
||||
switch(PlayerState[player-1])
|
||||
case 3:
|
||||
if(Retries[player-1]--)
|
||||
var_3 = CurMI[player-1] | 80h
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl = var_1 = P_UART_Ctrl & ~RxEn
|
||||
P_UART_TxBuf = var_3
|
||||
WaitCycle[player-1] = 6
|
||||
CurRecByte[player-1] = 0
|
||||
return
|
||||
break
|
||||
case 5:
|
||||
if(Retries[player-1]--)
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl = var_1 = P_UART_Ctrl & ~RxEn
|
||||
P_UART_TxBuf = 3
|
||||
WaitCycle[player-1] = 6
|
||||
CurRecByte[player-1] = 0
|
||||
return
|
||||
break
|
||||
case 7:
|
||||
if(Retries[player-1]--)
|
||||
while(P_UART_Status & TXBUSY)
|
||||
P_UART_Ctrl = var_1 = P_UART_Ctrl & ~RxEn
|
||||
P_UART_TxBuf = 4
|
||||
WaitCycle[player-1] = 6
|
||||
return
|
||||
break
|
||||
case 9:
|
||||
if(Retries[player-1]--)
|
||||
PlayerState = 8
|
||||
CurSendByte[player] = 0
|
||||
else
|
||||
ClearPlayer(player)
|
||||
return
|
||||
case 1:
|
||||
ClearPlayer(player)
|
||||
return
|
||||
ClearPlayer(player)
|
||||
if(player == 1)
|
||||
byte_1238 |= 40h
|
||||
byte_1238 &= ~10h
|
||||
else if(player == 2)
|
||||
byte_1238 |= 80h
|
||||
byte_1238 &= ~20h
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/spg2xx.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
class skannerztv_state : public spg2xx_game_state
|
||||
{
|
||||
public:
|
||||
skannerztv_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
spg2xx_game_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void rad_sktv(machine_config& config);
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
static INPUT_PORTS_START( rad_sktv )
|
||||
/* how does the Scanner connect? probably some serial port with comms protocol, not IO ports?
|
||||
internal test mode shows 'uart' ports (which currently fail)
|
||||
|
||||
To access internal test hold DOWN and BUTTON1 together on startup until a coloured screen appears.
|
||||
To cycle through the tests again hold DOWN and press BUTTON1 */
|
||||
|
||||
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_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
||||
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_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
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_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void skannerztv_state::rad_sktv(machine_config &config)
|
||||
{
|
||||
SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &skannerztv_state::mem_map_4m);
|
||||
|
||||
spg2xx_base(config);
|
||||
|
||||
m_maincpu->porta_in().set(FUNC(skannerztv_state::base_porta_r));
|
||||
m_maincpu->portb_in().set(FUNC(skannerztv_state::base_portb_r));
|
||||
m_maincpu->portc_in().set(FUNC(skannerztv_state::base_portc_r));
|
||||
//m_maincpu->i2c_w().set(FUNC(skannerztv_state::i2c_w));
|
||||
//m_maincpu->i2c_r().set(FUNC(skannerztv_state::i2c_r));
|
||||
}
|
||||
|
||||
|
||||
ROM_START( rad_sktv )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "skannerztv.bin", 0x000000, 0x200000, CRC(e92278e3) SHA1(eb6bee5e661128d83784960dfff50379c36bfaeb) )
|
||||
|
||||
/* The external scanner MCU is a Winbond from 2000: SA5641
|
||||
the scanner plays sound effects when scanning, without being connected to the main unit, so a way to dump / emulate
|
||||
this MCU is also needed for complete emulation
|
||||
|
||||
TODO: find details on MCU so that we know capacity etc. */
|
||||
ROM_END
|
||||
|
||||
CONS( 2007, rad_sktv, 0, 0, rad_sktv, rad_sktv, skannerztv_state, init_crc, "Radica", "Skannerz TV", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
@ -3,7 +3,7 @@
|
||||
/*
|
||||
(unSP 2.0 based System on a Chip)
|
||||
|
||||
JAKKS call this GPAC800, other sources call it GPL16250
|
||||
JAKKS call this GPAC800, other sources (including Pac-Man Connect and Play test mode) call it GPL16250
|
||||
|
||||
die markings GCM394
|
||||
- Smart Fit Park
|
||||
@ -1049,7 +1049,80 @@ static INPUT_PORTS_START( jak_s500 )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
ROM_START(smartfp)
|
||||
static INPUT_PORTS_START( paccon ) // for Test Mode hold buttons 1+2 until the screen starts changing colours (happens after the copyright display)
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) // PAL/NTSC flag
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) // '***'
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) // '***'
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) // 'A'
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON3 ) // '*C* (doesn't exist?) (cheat)
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // 'B'
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // '***'
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) // '*MENU*' (doesn't exist?)
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) // '***'
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) // '***'
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) // '***'
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) // '***'
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN2")
|
||||
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
|
||||
|
||||
ROM_START( smartfp )
|
||||
//ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) // not on this model? (or at least not this size, as CS base is different)
|
||||
//ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP )
|
||||
|
||||
@ -1057,6 +1130,15 @@ ROM_START(smartfp)
|
||||
ROM_LOAD16_WORD_SWAP("smartfitpark.bin", 0x000000, 0x800000, CRC(ada84507) SHA1(a3a80bf71fae62ebcbf939166a51d29c24504428))
|
||||
ROM_END
|
||||
|
||||
ROM_START( paccon )
|
||||
//ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) // not on this model? (or at least not this size, as CS base is different)
|
||||
//ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP )
|
||||
|
||||
ROM_REGION(0x800000, "maincpu", ROMREGION_ERASE00)
|
||||
ROM_LOAD16_WORD_SWAP("pacmanconnect.bin", 0x000000, 0x400000, CRC(8567cdc7) SHA1(cef4e003142e479169e4438ab33558436ee9ee68) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( tkmag220 )
|
||||
//ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) // not on this model? (or at least not this size, as CS base is different)
|
||||
//ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP )
|
||||
@ -1286,6 +1368,10 @@ CONS(200?, tkmag220, 0, 0, tkmag220, tkmag220, tkmag220_game_state, empty_init
|
||||
|
||||
// Fun 2 Learn 3-in-1 SMART SPORTS ?
|
||||
|
||||
// also sold as "Pac-Man Connect & Play 35th Anniversary" (same ROM?)
|
||||
CONS(2012, paccon, 0, 0, wrlshunt, paccon, jak_s500_game_state, init_wrlshunt, "Bandai", "Pac-Man Connect & Play (Feb 14 2012 10:46:23)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
|
||||
|
||||
|
||||
CONS(2009, jak_s500, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc", "SpongeBob SquarePants Bikini Bottom 500 (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
|
||||
CONS(200?, jak_totm, 0, 0, wrlshunt, jak_s500, jak_s500_game_state, init_wrlshunt, "JAKKS Pacific Inc", "Toy Story - Toys on the Move (JAKKS Pacific TV Motion Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // Toys on the Move has ISSI 404A
|
||||
|
||||
|
@ -37083,7 +37083,6 @@ lx_jg7425
|
||||
@source:spg2xx.cpp
|
||||
rad_skat //
|
||||
rad_skatp //
|
||||
rad_sktv //
|
||||
rad_crik //
|
||||
rad_fb2 //
|
||||
mattelcs //
|
||||
@ -37157,6 +37156,9 @@ tmntpdc
|
||||
@source:spg2xx_playvision.cpp
|
||||
pvmil //
|
||||
|
||||
@source:spg2xx_skannerztv.cpp
|
||||
rad_sktv //
|
||||
|
||||
@source:spg2xx_senario.cpp
|
||||
senmil
|
||||
senbbs
|
||||
@ -37773,6 +37775,7 @@ srangerw // (c) 1988 SunA (WDK License)
|
||||
starfigh // (c) 1990 SunA
|
||||
|
||||
@source:sunplus_unsp20soc.cpp
|
||||
paccon
|
||||
jak_s500
|
||||
jak_totm
|
||||
smartfp // Smart Fit Park
|
||||
|
@ -825,6 +825,7 @@ spg2xx_lexibook.cpp
|
||||
spg2xx_mysprtch.cpp
|
||||
spg2xx_pdc.cpp
|
||||
spg2xx_playvision.cpp
|
||||
spg2xx_skannerztv.cpp
|
||||
spg2xx_senario.cpp
|
||||
spg2xx_senario_poker.cpp
|
||||
spg2xx_shredmjr.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user