From 4c96792f1c53b1f1ad3f13c5c69d3878b6468e9f Mon Sep 17 00:00:00 2001 From: Robbbert Date: Fri, 28 Aug 2020 04:10:02 +1000 Subject: crvision: added usage; fixed stoneage freeze; fixed MT 07338. --- hash/crvision.xml | 41 ++++++++++++++++- src/mame/drivers/crvision.cpp | 102 ++++++++++++++++++++++++++++++++---------- 2 files changed, 119 insertions(+), 24 deletions(-) diff --git a/hash/crvision.xml b/hash/crvision.xml index f933b04c56b..0663194723d 100644 --- a/hash/crvision.xml +++ b/hash/crvision.xml @@ -49,6 +49,11 @@ B-6196 : First Book of Wizzard Programs ?????? : Helicopter Rescue, Speed Race, Deep Sea Adventure (these were promised, but never heard of again) Creativision carts were universal (Japanese NTSC dumps turned out to be the same as worldwide PAL ones). + + +USAGE: Carts generally start up in attract mode, so press F10, then Z (unless otherwise noted), + wait for intro music to end. Shift is the usual "fire" key. + --> @@ -57,6 +62,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -70,6 +76,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -83,6 +90,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -100,6 +108,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -113,6 +122,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -126,6 +136,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -200,6 +211,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1983 Video Technology Ltd. + @@ -215,6 +227,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -228,6 +241,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -241,6 +255,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -255,6 +270,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -268,6 +284,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1983 Video Technology Ltd. + @@ -282,6 +299,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1983 Video Technology Ltd. + @@ -296,6 +314,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -309,6 +328,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -323,6 +343,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1983 Video Technology Ltd. + @@ -337,6 +358,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -351,6 +373,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -363,6 +386,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same Planet Defender (8k Cart, Bad?) 1981 Video Technology Ltd. + @@ -376,6 +400,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -389,6 +414,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -403,6 +429,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -418,6 +445,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1983 Video Technology Ltd. + @@ -432,6 +460,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -444,6 +473,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same Stone Age 1984 Video Technology Ltd. + @@ -457,6 +487,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -471,6 +502,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -484,6 +516,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -499,6 +532,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -512,6 +546,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -526,6 +561,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1981 Video Technology Ltd. + @@ -539,6 +575,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -553,6 +590,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -568,6 +606,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same 1982 Video Technology Ltd. + @@ -579,7 +618,7 @@ Creativision carts were universal (Japanese NTSC dumps turned out to be the same - + Hapmon 198? Richard Hayter diff --git a/src/mame/drivers/crvision.cpp b/src/mame/drivers/crvision.cpp index 966e5ca6a94..2ba4cbed405 100644 --- a/src/mame/drivers/crvision.cpp +++ b/src/mame/drivers/crvision.cpp @@ -125,6 +125,17 @@ All IC's shown. 4116 - Toshiba TMM416P-3 16Kx1 RAM CN1 - main board connector (17x2 pin header) + +Left Keyboard Right Keyboard +1 2 3 4 5 6 7 8 9 0 : - +CTRL Q W E R T Y U I O P RETN +<- A S D F G H J K L dn -> +SHFT Z X C V B N M . , / SHFT + + +TODO: +- laser2001, manager: they don't load crvision tapes. +- manager: find out if joystick is 8-way like crvision. */ #include "emu.h" @@ -183,43 +194,84 @@ void laser2001_state::lasr2001_map(address_map &map) INPUT_CHANGED_MEMBER( crvision_state::trigger_nmi ) { - m_maincpu->set_input_line(m6502_device::NMI_LINE, newval ? CLEAR_LINE : ASSERT_LINE); + m_maincpu->set_input_line(m6502_device::NMI_LINE, newval ? ASSERT_LINE : CLEAR_LINE); } /*------------------------------------------------- INPUT_PORTS( crvision ) + Each joystick has 8 direction pads. Further, + by activating 2 adjacent pads at once, 16 + directions can be obtained. BASIC only handles + the 8 pads. Direction codes per the manual: + 0 - no direction + 1 - down + 2 - down/right + 3 - right + 4 - up/right + 5 - up + 6 - up/left + 7 - left + 8 - down/left + when using PRINT JOY(1) [or JOY(2)]. + As you can see, there are multiple choices as + which input to choose. I've taken a guess; if + it turns out to be wrong use another option. -------------------------------------------------*/ static INPUT_PORTS_START( crvision ) // Player 1 Joystick PORT_START("PA0.0") + //PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) // 2 + //PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // 3 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA0.1") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0xfd, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_CODE(KEYCODE_PGDN) // 2 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // 1 + //PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // 1 + //PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // 1 + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA0.2") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + //PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // 3 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // 3 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT( 0xf3, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_CODE(KEYCODE_PGUP) // 4 + //PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // 3 + PORT_BIT( 0xb3, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA0.3") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // 5 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_CODE(KEYCODE_HOME) // 6 + //PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // 5 + //PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // 5 + PORT_BIT( 0xe7, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA0.4") + //PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) // 6 + //PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // 7 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA0.5") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0xdf, IP_ACTIVE_LOW, IPT_UNUSED ) + //PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // 7 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // 7 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_CODE(KEYCODE_END) // 8 + //PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // 7 + PORT_BIT( 0x9f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA0.6") + //PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // 1 + //PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) // 4 + //PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // 5 + //PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) // 8 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA0.7") + //PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // 1 + //PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // 3 + //PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // 5 + //PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // 7 PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Button 2 / CNT'L") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) @@ -277,24 +329,28 @@ static INPUT_PORTS_START( crvision ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA2.1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(2) PORT_CODE(KEYCODE_3_PAD) // 2 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0xfd, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA2.2") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_CODE(KEYCODE_6_PAD) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0xf3, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(2) PORT_CODE(KEYCODE_9_PAD) // 4 + PORT_BIT( 0xb3, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA2.3") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(2) PORT_CODE(KEYCODE_7_PAD) // 6 + PORT_BIT( 0xe7, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA2.4") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA2.5") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0xdf, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(2) PORT_CODE(KEYCODE_1_PAD) // 8 + PORT_BIT( 0x9f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PA2.6") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -900,13 +956,13 @@ ROM_END ***************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -CONS( 1982, crvision, 0, 0, pal, crvision, crvision_pal_state, empty_init, "Video Technology", "CreatiVision", 0 ) -CONS( 1982, fnvision, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Video Technology", "FunVision", 0 ) -CONS( 1982, crvisioj, crvision, 0, ntsc, crvision, crvision_state, empty_init, "Cheryco", "CreatiVision (Japan)", 0 ) -CONS( 1982, wizzard, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Dick Smith Electronics", "Wizzard (Oceania)", 0 ) -CONS( 1982, rameses, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Hanimex", "Rameses (Oceania)", 0 ) -CONS( 1983, vz2000, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Dick Smith Electronics", "VZ 2000 (Oceania)", 0 ) -CONS( 1983, crvisio2, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Video Technology", "CreatiVision MK-II (Europe)", 0 ) -COMP( 1983, lasr2001, 0, 0, lasr2001, manager, laser2001_state, empty_init, "Video Technology", "Laser 2001", 0 ) -//COMP( 1983, vz2001, lasr2001, 0, lasr2001, lasr2001, laser2001_state, empty_init, "Dick Smith Electronics", "VZ 2001 (Oceania)", 0 ) -COMP( 1983, manager, 0, 0, lasr2001, manager, laser2001_state, empty_init, "Salora", "Manager (Finland)", 0 ) +CONS( 1982, crvision, 0, 0, pal, crvision, crvision_pal_state, empty_init, "Video Technology", "CreatiVision", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, fnvision, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Video Technology", "FunVision", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, crvisioj, crvision, 0, ntsc, crvision, crvision_state, empty_init, "Cheryco", "CreatiVision (Japan)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, wizzard, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Dick Smith Electronics", "Wizzard (Oceania)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, rameses, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Hanimex", "Rameses (Oceania)", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, vz2000, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Dick Smith Electronics", "VZ 2000 (Oceania)", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, crvisio2, crvision, 0, pal, crvision, crvision_pal_state, empty_init, "Video Technology", "CreatiVision MK-II (Europe)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, lasr2001, 0, 0, lasr2001, manager, laser2001_state, empty_init, "Video Technology", "Laser 2001", MACHINE_SUPPORTS_SAVE ) +//COMP( 1983, vz2001, lasr2001, 0, lasr2001, lasr2001, laser2001_state, empty_init, "Dick Smith Electronics", "VZ 2001 (Oceania)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, manager, 0, 0, lasr2001, manager, laser2001_state, empty_init, "Salora", "Manager (Finland)", MACHINE_SUPPORTS_SAVE ) -- cgit v1.2.3