diff --git a/hash/apple2_flop_clcracked.xml b/hash/apple2_flop_clcracked.xml index 6f599c85a81..754616908e3 100644 --- a/hash/apple2_flop_clcracked.xml +++ b/hash/apple2_flop_clcracked.xml @@ -230,25 +230,6 @@ license:CC0-1.0 - - Dungeon Master's Assistant (cleanly cracked) - 1988 - Strategic Simulations - - - - - - - - - - - - - - - Genesis (cleanly cracked) 1983 @@ -3582,86 +3563,6 @@ license:CC0-1.0 - - Battalion Commander (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - - - Battle Cruiser (cleanly cracked) - 1987 - Strategic Simulations - - - - - - - - - - - - - - - - Battle For Normandy (cleanly cracked) - 1982 - Strategic Simulations - - - - - - - - - - - Battle Group (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - Battle of Antietam (version 1.5) (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - - - - - - BC's Quest For Tires (cleanly cracked) 1983 @@ -3891,19 +3792,6 @@ license:CC0-1.0 - - Bomb Alley (cleanly cracked) - 1982 - Strategic Simulations - - - - - - - - - Borrowed Time (cleanly cracked) 1985 @@ -4211,32 +4099,6 @@ license:CC0-1.0 - - Carrier Force (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - - - Cartels and Cutthroats (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - Case of the Missing Chick: Finding The Main Idea (cleanly cracked) 1986 @@ -4751,19 +4613,6 @@ license:CC0-1.0 - - Colonial Conquest (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - Color Me (Softsmith) (cleanly cracked) 1982 @@ -4960,32 +4809,6 @@ license:CC0-1.0 - - Computer Air Combat (version 1.1) (cleanly cracked) - 1980 - Strategic Simulations - - - - - - - - - - - Computer Ambush (cleanly cracked) - 1982 - Strategic Simulations - - - - - - - - - Computer Assisted Problem Solving for Beginning Algebra (cleanly cracked) 1984 @@ -5055,24 +4878,6 @@ license:CC0-1.0 - - Computer Baseball (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - - - - - - Computer Discovery (cleanly cracked) 1981 @@ -5197,19 +5002,6 @@ license:CC0-1.0 - - Computer Quarterback Second Edition (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - Computerized Reading for Aphasics (cleanly cracked) 1984 @@ -6908,19 +6700,6 @@ license:CC0-1.0 - - Epidemic (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - Epoch (cleanly cracked) 1981 @@ -7262,65 +7041,6 @@ license:CC0-1.0 - - Field of Fire (cleanly cracked) - 1984 - Strategic Simulations - - - - - - - - - - - - - - - - - - Fifty Mission Crush (version 1.1) (cleanly cracked) - 1984 - Strategic Simulations - - - - - - - - - - - Fifty Mission Crush (version 1.2) (cleanly cracked) - 1984 - Strategic Simulations - - - - - - - - - - - Fighter Command (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - Finance Manager (cleanly cracked) 1984 @@ -7845,26 +7565,6 @@ license:CC0-1.0 - - Galactic Adventures (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - - - - - - - - Galaxy Gates (cleanly cracked) 1981 @@ -8003,19 +7703,6 @@ license:CC0-1.0 - - Gemstone Warrior (cleanly cracked) - 1984 - Strategic Simulations - - - - - - - - - Geography Adventure USA (cleanly cracked) 1983 @@ -8140,26 +7827,6 @@ license:CC0-1.0 - - Geopolitique 1990 (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - - - - - - - - GeoWhiz (cleanly cracked) 1990 @@ -8264,26 +7931,6 @@ license:CC0-1.0 - - Gettysburg - The Turning Point (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - GFL Championship Football (cleanly cracked) 1987 @@ -9812,32 +9459,6 @@ license:CC0-1.0 - - Guadalcanal Campaign (version 1.0) (cleanly cracked) - 1982 - Strategic Simulations - - - - - - - - - - - Guadalcanal Campaign (version 1.1) (cleanly cracked) - 1982 - Strategic Simulations - - - - - - - - - Guderian (cleanly cracked) 1986 @@ -9890,19 +9511,6 @@ license:CC0-1.0 - - Hands on BASIC Programming (cleanly cracked) - 1983 - Edu-Ware - - - - - - - - - Handy Dandy (cleanly cracked) 1983 @@ -10337,26 +9945,6 @@ license:CC0-1.0 - - Imperium Galactum (cleanly cracked) - 1984 - Strategic Simulations - - - - - - - - - - - - - - - - Improper Fractions (cleanly cracked) 1990 @@ -10634,26 +10222,6 @@ license:CC0-1.0 - - Kampfgruppe (version 1.1) (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - - - - - - - - Karate Champ (cleanly cracked) 1985 @@ -10869,19 +10437,6 @@ license:CC0-1.0 - - Knights of the Desert (version 1.1) (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - Know Your Apple (cleanly cracked) 1982 @@ -13362,26 +12917,6 @@ license:CC0-1.0 - - Mech Brigade (version 1.2) (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - - - - - - - - Meet The Presidents (cleanly cracked) 1981 @@ -14841,19 +14376,6 @@ license:CC0-1.0 - - NAM (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - Nemesis (cleanly cracked) 1984 @@ -14935,19 +14457,6 @@ license:CC0-1.0 - - North Atlantic 86 (cleanly cracked) - 1982 - Strategic Simulations - - - - - - - - - NoteCard Maker (cleanly cracked) 1985 @@ -15229,19 +14738,6 @@ license:CC0-1.0 - - Operation Apocalypse (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - Operation Frog (cleanly cracked) 1984 @@ -15415,19 +14911,6 @@ license:CC0-1.0 - - Panzer Grenadier (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - Paper Models - The Christmas Kit (cleanly cracked) 1986 @@ -16110,32 +15593,6 @@ license:CC0-1.0 - - President Elect (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - - - President Elect (1988 Edition) (cleanly cracked) - 1987 - Strategic Simulations (SSI) - - - - - - - - - Principal's Assistant (cleanly cracked) 1987 @@ -16403,19 +15860,6 @@ license:CC0-1.0 - - Queen of Hearts (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - Quest - Math 3-1 Place Value to 6 Digits (cleanly cracked) 1986 @@ -17049,26 +16493,6 @@ license:CC0-1.0 - - Professional Tour Golf (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - - - - - - - - Rings of Saturn (cleanly cracked) 1981 @@ -22282,33 +21706,6 @@ license:CC0-1.0 - - Rings of Zilfin (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - - - - - - - - - - - - - - - Spanish Verb Pairs (cleanly cracked) 1984 @@ -25087,26 +24484,6 @@ license:CC0-1.0 - - Roadwar Europa (cleanly cracked) - 1987 - Strategic Simulations - - - - - - - - - - - - - - - - The Story of Miss Mouse (cleanly cracked) 1985 @@ -25140,46 +24517,6 @@ license:CC0-1.0 - - The Shard of Spring (version 1.0) (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - - - The Eternal Dagger (version 1.2) (cleanly cracked) - 1987 - Strategic Simulations - - - - - - - - - - - - - - - - Rhymo's Falling Star (cleanly cracked) 1985 @@ -25616,19 +24953,6 @@ license:CC0-1.0 - - Warship (version 1.1) (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - Voyages of Discovery: Lewis and Clark (cleanly cracked) 1986 @@ -27556,66 +26880,6 @@ license:CC0-1.0 - - Roadwar 2000 (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - - - Rebel Charge at Chickamauga (cleanly cracked) - 1987 - Strategic Simulations - - - - - - - - - - - - - - - - - - War in the South Pacific (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - Ultima I: The Beginning (cleanly cracked) 1986 @@ -27681,26 +26945,6 @@ license:CC0-1.0 - - Shiloh: Grant's Trial in the West (cleanly cracked) - 1987 - Strategic Simulations - - - - - - - - - - - - - - - - Adventure Construction Set (cleanly cracked) 1985 @@ -27762,19 +27006,6 @@ license:CC0-1.0 - - Warship (version 1.0) (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - Talisman: Challenging the Sands of Time (128K) (cleanly cracked) 1987 @@ -27816,91 +27047,6 @@ license:CC0-1.0 - - The Shard of Spring (version 1.1) (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - - - Rails West! (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - - - The Battle of the Bulge: Tigers in the Snow (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - - - Ringside Seat (cleanly cracked) - 1983 - Strategic Simulations - - - - - - - - - - - The Shattered Alliance (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - - - The Warp Factor (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - Treasure Island (cleanly cracked) 1985 @@ -28089,19 +27235,6 @@ license:CC0-1.0 - - Torpedo Fire (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - The Planetary Guide (cleanly cracked) 1981 @@ -28161,85 +27294,6 @@ license:CC0-1.0 - - Roadwar 2000 (version 1.2) (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - - - Southern Command (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - - - The Battle of Shiloh (cleanly cracked) - 1981 - Strategic Simulations - - - - - - - - - - - Reforger 88 (cleanly cracked) - 1984 - Strategic Simulations - - - - - - - - - - - U.S.A.A.F. (version 1.2) (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - - - - - - - - The Function Game (cleanly cracked) 1983 @@ -29471,45 +28525,6 @@ license:CC0-1.0 - - The Cosmic Balance (cleanly cracked) - 1982 - Strategic Simulations - - - - - - - - - - - Questron (cleanly cracked) - 1984 - Strategic Simulations - - - - - - - - - - - - - - - - - - - - - - The Adventures of Kristen and Her Family (cleanly cracked) 1985 @@ -33820,27 +32835,6 @@ license:CC0-1.0 - - Kampfgruppe (version 1.0) (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - - - - - - - - - GATO (version 1.2) (cleanly cracked) 1985 @@ -34574,35 +33568,6 @@ license:CC0-1.0 - - Cytron Masters (cleanly cracked) - 1982 - Strategic Simulations - - - - - - - - - - - - - Six-Gun Shootout (cleanly cracked) - 1985 - Strategic Simulations - - - - - - - - - - Compuzzler (cleanly cracked) 1984 @@ -34617,39 +33582,6 @@ license:CC0-1.0 - - Wizard's Crown (version 1.2) (cleanly cracked) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Odyssey in Time (cleanly cracked) 1981 @@ -40917,6 +39849,135 @@ license:CC0-1.0 + + Battalion Commander (4am and san inc crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Battlecruiser (version 1.0) (4am crack) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Battle Group (version 1.0) (4am and san inc crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Battle For Normandy (4am and san inc crack) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Battle of Antietam (version 1.3) (4am and san inc crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Battle of Antietam (version 1.5) (4am crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + Battling Bugs and Concentraction (revision 1) (4am crack) 1982 @@ -41108,6 +40169,22 @@ license:CC0-1.0 + + Bomb Alley (4am and san inc crack) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Book Worm (A-407 version 1.0) (4am crack) 1985 @@ -41163,7 +40240,7 @@ license:CC0-1.0 Broadsides (revision 1) (4am crack) 1983 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -41180,7 +40257,7 @@ license:CC0-1.0 Broadsides (revision 2) (4am crack) 1983 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -41197,7 +40274,7 @@ license:CC0-1.0 Broadsides (revision 3) (4am crack) 1983 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -41214,7 +40291,7 @@ license:CC0-1.0 Broadsides (revision 4) (4am crack) 1983 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -41454,6 +40531,38 @@ license:CC0-1.0 + + Carrier Force (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Cartels & Cutthroats (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Cash Versus Credit Buying (4am crack) 1983 @@ -41952,6 +41061,23 @@ license:CC0-1.0 + + Colonial Conquest (version 1.0) (4am crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + CommuniKeys (A-248 version 1.0) (4am crack) 1989 @@ -42021,6 +41147,41 @@ license:CC0-1.0 + + Computer Air Combat (version 1.1) (4am and san inc crack) + 1980 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + Computer Ambush (version 1982) (4am and san inc crack) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Computer Assisted Blackboard demo (4am crack) 1983 @@ -42037,6 +41198,39 @@ license:CC0-1.0 + + Computer Baseball (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Computer Baseball 1983 Teams Disk (4am and san inc crack) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Computer Biology Lab: Clam Dissection (4am crack) 1984 @@ -42167,6 +41361,23 @@ license:CC0-1.0 + + Computer Bismarck (version 1.1) (4am and san inc crack) + 1980 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Computer Generated Mathematics Materials Volume 1: Problem Solving (A-757 version 1.1) (4am crack) 1982 @@ -42257,6 +41468,22 @@ license:CC0-1.0 + + Computer Quarterback Second Edition (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Computers in Government (A-122 version 1.0) (4am crack) 1984 @@ -43321,6 +42548,23 @@ license:CC0-1.0 + + Cytron Masters (4am and san inc crack) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Dancing Dinos (4am crack) 1993 @@ -44133,6 +43377,30 @@ license:CC0-1.0 + + Dungeon Master's Assistant Volume 1: Encounters (version 1.0) (trex crack) + 1988 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Dyno-Quest (4am crack) 1984 @@ -44507,6 +43775,22 @@ license:CC0-1.0 + + Epidemic (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Equations I (4am crack) 1983 @@ -44917,6 +44201,83 @@ license:CC0-1.0 + + Field of Fire (version 1.0) (4am crack) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + Fifty Mission Crush (version 1.1) (4am and san inc crack) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + Fifty Mission Crush (version 1.2) (4am and san inc crack) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + Fighter Command (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Fish Scales (version 4.0) (4am crack) 1984 @@ -45020,7 +44381,7 @@ license:CC0-1.0 Fortress (revision 2) (4am crack) 1983 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -45342,6 +44703,29 @@ license:CC0-1.0 + + Galactic Adventures (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + Game Frame One (4am crack) 1986 @@ -45426,6 +44810,24 @@ license:CC0-1.0 + + Gemstone Warrior (version 1.1) (4am crack) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Genesis: The Adventure Game Creator (4am crack) 1982 @@ -45541,6 +44943,29 @@ license:CC0-1.0 + + Geopolitique 1990 (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + German Vocabulary Builder (4am crack) 1982 @@ -45602,6 +45027,30 @@ license:CC0-1.0 + + Gettysburg: The Turning Point (version 1.0) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Glidepath (version 1.0) (4am crack) 1985 @@ -45919,6 +45368,40 @@ license:CC0-1.0 + + Guadalcanal Campaign (version 1.0) (4am and san inc crack) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + Guadalcanal Campaign (version 1.1) (4am and san inc crack) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Guitar Wizard (version 11601) (4am crack) 1986 @@ -46002,6 +45485,23 @@ license:CC0-1.0 + + Hands on BASIC Programming (version 1.0 25-Feb-83) (4am crack) + 1983 + Edu-Ware Services + + + + + + + + + + + + + Hard Hat Mack (4am and san inc crack) 1983 @@ -46137,6 +45637,30 @@ license:CC0-1.0 + + Imperium Galactum (version 1.0) (4am and san inc crack) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Improving Your Memory (4am crack) 1983 @@ -46362,6 +45886,54 @@ license:CC0-1.0 + + Kampfgruppe (version 1.0) (4am and san inc crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Kampfgruppe (version 1.1) (4am and san inc crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Key Signatures (4am crack) 1986 @@ -46712,6 +46284,23 @@ license:CC0-1.0 + + Knights of the Desert (version 1.1) (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Knowledge Master Basics: Earth Science (4am crack) 1986 @@ -48996,6 +48585,29 @@ license:CC0-1.0 + + Mech Brigade (version 1.2) (4am and san inc crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + Medalist Series: Black Americans (version 04.13.84) (4am crack) 1983 @@ -49709,6 +49321,39 @@ license:CC0-1.0 + + NAM (version 1.0) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + North Atlantic 86 (4am and san inc crack) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Number Bowling: Decimals and Fractions (4am crack) 1985 @@ -49803,6 +49448,22 @@ license:CC0-1.0 + + Operation Apocalypse (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Osmotic Pressure (version 1.1, 04/1985) (4am crack) 1985 @@ -49859,6 +49520,24 @@ license:CC0-1.0 + + Panzer Grenadier (verision 1.0) (4am crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Parachute Parts of Speech (4am crack) 1984 @@ -50184,7 +49863,7 @@ license:CC0-1.0 Phantasie (version 1.0) (4am and san inc crack) 1984 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -50208,7 +49887,7 @@ license:CC0-1.0 Phantasie II: Descent Into The Netherworld (version 2/5/86) (4am and san inc crack) 1986 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -50477,6 +50156,39 @@ license:CC0-1.0 + + President Elect (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + President Elect 1988 Edition (version 2.0) (4am crack) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Primary Math: Addition 4-Digit Numerals with Renaming (4am crack) 1985 @@ -50843,6 +50555,29 @@ license:CC0-1.0 + + Professional Tour Golf (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + Projectile and Circular Motion (4am crack) 1984 @@ -51054,6 +50789,22 @@ license:CC0-1.0 + + Queen of Hearts (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Questprobe featuring Spider-Man (version B-258) (4am crack) 1985 @@ -51126,6 +50877,35 @@ license:CC0-1.0 + + Questron (4am and san inc crack) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + + + Quiz Castle (4am crack) 1986 @@ -51236,6 +51016,22 @@ license:CC0-1.0 + + Rails West! (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Rainbow Painter (4am crack) 1984 @@ -51675,6 +51471,46 @@ license:CC0-1.0 + + Rebel Charge at Chickamauga (version 1.0) (4am crack) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Reforger 88 (4am and san inc crack) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Rendezvous with Rama (4am crack) 1984 @@ -51984,6 +51820,148 @@ license:CC0-1.0 + + Rings of Zilfin (version 1.0) (4am crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ringside Seat (4am and san inc crack) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Roadwar 2000 (version 1.0) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Roadwar 2000 (version 1.1) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Roadwar 2000 (version 1.2) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Roadwar Europa (version 1.0) (4am crack) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + RoboMath (revision 1) (4am crack) 1985 @@ -52597,6 +52575,30 @@ license:CC0-1.0 + + Shiloh: Grant's Trial in the West (version 1.0) (4am crack) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Shopping with the Yellow Pages (4am crack) 1984 @@ -52629,6 +52631,23 @@ license:CC0-1.0 + + Six-Gun Shootout (version 1.0) (4am and san inc crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Skill Builder: Social Studies - Grade 6 (4am crack) 1986 @@ -53058,6 +53077,22 @@ license:CC0-1.0 + + Southern Command (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Space Journey: Planets and Stars (4am crack) 1991 @@ -54695,6 +54730,38 @@ license:CC0-1.0 + + The Battle of Shiloh (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + The Battle of the Bulge: Tigers in the Snow (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + The Boy Jesus (4am crack) 1984 @@ -54719,6 +54786,22 @@ license:CC0-1.0 + + The Cosmic Balance (4am and san inc crack) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + The Counting Bee (version 1.1, 26-FEB-82) (4am crack) 1981 @@ -54864,6 +54947,30 @@ license:CC0-1.0 + + The Eternal Dagger (version 1.2) (4am crack) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + The Evelyn Wood Dynamic Reader (4am crack) 1984 @@ -55289,6 +55396,70 @@ license:CC0-1.0 + + The Shard of Spring (version 1.0) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + The Shard of Spring (version 1.1) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + The Shattered Alliance (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + The Spelling Bee (4am crack) 1985 @@ -55749,6 +55920,22 @@ license:CC0-1.0 + + The Warp Factor (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Theorems and Proofs of Theorems (4am crack) 1983 @@ -55986,6 +56173,22 @@ license:CC0-1.0 + + Torpedo Fire (4am and san inc crack) + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Total Learning System (4am crack) 1983 @@ -56361,6 +56564,29 @@ license:CC0-1.0 + + U.S.A.A.F. (version 1.2) (4am and san inc crack) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + Vaults of Zurich (4am crack) 1982 @@ -56560,6 +56786,29 @@ license:CC0-1.0 + + War in the South Pacific (version 1.0) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + Warrior of RAS Volume One: Dunzhin (4am crack) 1982 @@ -56592,6 +56841,40 @@ license:CC0-1.0 + + Warship (version 1.0) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + Warship (version 1.1) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Water in the Air (4am crack) 1985 @@ -57083,6 +57366,42 @@ license:CC0-1.0 + + Wizard's Crown (version 1.2) (4am crack) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wiziprint (version 2.01 20-AUG-83) (4am crack) 1982 diff --git a/hash/apple2_flop_orig.xml b/hash/apple2_flop_orig.xml index 62a4a76ee58..d087e0cb8db 100644 --- a/hash/apple2_flop_orig.xml +++ b/hash/apple2_flop_orig.xml @@ -7821,28 +7821,6 @@ license:CC0-1.0 - - Roadwar 2000 (version 1.1) - 1986 - Strategic Simulations, Inc - - - - - - - - - - - - - - - - - - Flight Simulator I (A2-FS1) 1980 @@ -8455,21 +8433,6 @@ license:CC0-1.0 - - Southern Command - 1981 - Strategic Simulations - - - - - - - - - - - Arthur: The Quest for Excalibur (version 17) 1989 @@ -10396,40 +10359,6 @@ license:CC0-1.0 - - Typhoon of Steel (version 1.0) - 1988 - Strategic Simulations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Alien Munchies 1983 @@ -10460,28 +10389,6 @@ license:CC0-1.0 - - Kampfgruppe (version 1.0) - 1985 - Strategic Simulations - - - - - - - - - - - - - - - - - - The Latin Hangman (Revision 1004) 1983 @@ -12347,40 +12254,6 @@ license:CC0-1.0 - - Panzer Strike! (version 1.0) - 1987 - Strategic Simulations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Police Quest 1987 @@ -13539,21 +13412,6 @@ license:CC0-1.0 - - Germany 1985 (version 2.0) - 1982 - Strategic Simulations - - - - - - - - - - - The Lion's Share 1983 @@ -16136,22 +15994,6 @@ license:CC0-1.0 - - Pursuit of the Graf Spee - 1982 - Strategic Simulations - - - - - - - - - - - - Bezare 1982 @@ -16541,29 +16383,6 @@ license:CC0-1.0 - - Gemstone Healer (version 1.2) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - - - - Space Adventure: Episode One 1981 @@ -20340,61 +20159,6 @@ license:CC0-1.0 - - Six-Gun Shootout - 1985 - Strategic Simulations - - - - - - - - - - - - - - The Road to Gettysburg - 1982 - Strategic Simulations - - - - - - - - - - - - - - Gettysburg: The Turning Point (version 1.2) - 1986 - Strategic Simulations - - - - - - - - - - - - - - - - - - - Microzine 31 1989 @@ -24745,6 +24509,23 @@ license:CC0-1.0 + + B-24 (version 1.0) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Back It Up III (version 3.4) 1983 @@ -24850,6 +24631,23 @@ license:CC0-1.0 + + Baltic 1985: Corridor to Berlin (version 1.0) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Bats in the Belfry 1983 @@ -24866,30 +24664,155 @@ license:CC0-1.0 - - Battleship Commander - 1980 - Quality Software - - - - + + Battalion Commander (version 1.0) + 1985 + Strategic Simulations Inc. (SSI) + + + + + - - + + - - Beach Landing - 1984 - Optimum Resource - - - - + + Battle of Antietam (version 1.3) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Battle of Antietam (version 1.5) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Battlecruiser (version 1.0) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + Battles of Napoleon (version 1.0) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Battleship Commander + 1980 + Quality Software + + + + + + + + + + + + + + Beach Landing + 1984 + Optimum Resource + + + + @@ -24998,6 +24921,47 @@ license:CC0-1.0 + + Bomb Alley (version 1.0) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + Breakthrough in the Ardennes (version 1.1) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Bubble Bobble 1988 @@ -25135,6 +25099,23 @@ license:CC0-1.0 + + Carrier Force (version 1.0) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Cause and Effect: What Makes It Happen 1988 @@ -25169,6 +25150,114 @@ license:CC0-1.0 + + Champions of Krynn (version 1.0) + 1990 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Champions of Krynn (version 1.1) + 1990 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Checkers (version 2.1) 1981 @@ -25353,6 +25442,23 @@ license:CC0-1.0 + + Colonial Conquest (version 1.1) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + CommuniKeys (A-248 version 1.0) 1989 @@ -25407,6 +25513,76 @@ license:CC0-1.0 + + Computer Air Combat (version 1.0) + 1980 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + Computer Air Combat (version 1.1) + 1980 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + Computer Ambush (version 1.0 revision 1) + 1980 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + Computer Ambush (version 1.0 revision 2) + 1980 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + Computer Generated Mathematics Materials Volume 1: Problem Solving (A-757 version 1.1) 1982 @@ -27314,6 +27490,23 @@ license:CC0-1.0 + + Eagles (version 1.0) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Earl Weaver Baseball 1989 @@ -27740,6 +27933,59 @@ license:CC0-1.0 + + Fifty Mission Crush (version 1.1) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + Fifty Mission Crush (version 1.2) + 1984 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + Fighter Command (version 1.0) + 1983 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Galactic Attack 1980 @@ -27759,7 +28005,7 @@ license:CC0-1.0 Galactic Gladiators 1983 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -27788,6 +28034,30 @@ license:CC0-1.0 + + Gemstone Healer (version 1.2) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Genesis 1983 @@ -27804,6 +28074,47 @@ license:CC0-1.0 + + Germany 1985 (version 2.0) + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + Gettysburg: The Turning Point (version 1.2) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Grammar: Building Better Language Skills: Adjectives and Adverbs 1991 @@ -28041,6 +28352,30 @@ license:CC0-1.0 + + Kampfgruppe (version 1.0) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Keyboarding Series: MECC Keyboarding Master: Games and Drills (Student Program) (A-131 version 1.0) 1985 @@ -29065,6 +29400,42 @@ license:CC0-1.0 + + Panzer Strike! (version 1.0) + 1987 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Paul's Missionary Journeys 1986 @@ -29236,6 +29607,22 @@ license:CC0-1.0 + + Pursuit of the Graf Spee + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Questmaster I: The Prism of Heheutotol 1989 @@ -29610,6 +29997,30 @@ license:CC0-1.0 + + Roadwar 2000 (version 1.1) + 1986 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + Run For It 1984 @@ -29972,6 +30383,23 @@ license:CC0-1.0 + + Six-Gun Shootout (version 1.0) + 1985 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + Snooper Troops 1: The case of: The Granite Point Ghost 1982 @@ -29990,6 +30418,22 @@ license:CC0-1.0 + + Southern Command + 1981 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + Spare Change 1983 @@ -31206,6 +31650,22 @@ license:CC0-1.0 + + The Road to Gettysburg + 1982 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + The Scoop 1989 @@ -31499,6 +31959,41 @@ license:CC0-1.0 + + Typhoon of Steel (version 1.0) + 1988 + Strategic Simulations Inc. (SSI) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Uncle Clyde's Consonant Slides: Beginning Consonants 1993 diff --git a/hash/apple2gs_flop_orig.xml b/hash/apple2gs_flop_orig.xml index 6e7c409001f..793467e2d43 100644 --- a/hash/apple2gs_flop_orig.xml +++ b/hash/apple2gs_flop_orig.xml @@ -647,7 +647,7 @@ license:CC0-1.0 Questron II (version 1.1) 1988 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -677,10 +677,10 @@ license:CC0-1.0 - + Roadwar 2000 1987 - Strategic Simulations + Strategic Simulations Inc. (SSI) @@ -1845,11 +1845,12 @@ license:CC0-1.0 - Halls of Montezuma + Halls of Montezuma (version 1.0 07-1990) 1990 - Strategic Simulations + Strategic Studies Group (SSG) + @@ -4262,4 +4263,133 @@ license:CC0-1.0 + + Time Pilot (version 1.2) + 2024 + Stefan Wessels + + + + + + + + + + + + + + + + Time Pilot (version 1.3) + 2024 + Stefan Wessels and Brutal Deluxe Software + + + + + + + + + + + + + + + + Time Pilot (version 1.4) + 2024 + Stefan Wessels and Brutal Deluxe Software + + + + + + + + + + + + + + + + Time Pilot (version 1.5) + 2024 + Stefan Wessels and Brutal Deluxe Software + + + + + + + + + + + + + + + + + + + + + + + Time Pilot (version 1.5.A) + 2024 + Stefan Wessels and Brutal Deluxe Software + + + + + + + + + + + + + + + + + + + + + + + Time Pilot (version 1.6) + 2024 + Stefan Wessels and Brutal Deluxe Software + + + + + + + + + + + + + + + + + + + + + diff --git a/hash/ibm5170_cdrom.xml b/hash/ibm5170_cdrom.xml index 154088955dc..fcadbdd50cc 100644 --- a/hash/ibm5170_cdrom.xml +++ b/hash/ibm5170_cdrom.xml @@ -4712,6 +4712,32 @@ Untested multiplayer options + + Duke Nukem 3D: Kill-A-Ton Collection + 1997 + GT Interactive + + + + + + + + + + + + + + + + + + + + + + diff --git a/hash/more/a2600.xml b/hash/more/a2600.xml index c8d76eab822..6ceff2df6e5 100644 --- a/hash/more/a2600.xml +++ b/hash/more/a2600.xml @@ -1,6 +1,6 @@ - + (000 - $F800) Game Select @@ -40822,6 +40822,66 @@ + + Z-Tack (1983) (Bomb) + ???? + unknown + + + + + + + + Zartog + ???? + unknown + + + + + + + + zaxxon2 + ???? + unknown + + + + + + + + Zblocks + ???? + unknown + + + + + + + + Zelda (2003) (Kyle Pittman) (Adventure Hack) + ???? + unknown + + + + + + + + Zero Patrol by Charles Morgan (Moon Patrol Hack) + ???? + unknown + + + + + + ZeroPage Homebrew - The Game (L.Camara)(2022-05-27) ???? @@ -40832,4 +40892,364 @@ + + Zeroplayer (PD) + ???? + unknown + + + + + + + + ZETA (2007) (Matthew J. Risch) (Prototype) + ???? + unknown + + + + + + + + ZETA 1a 20071223 + ???? + unknown + + + + + + + + zflicker bullet + ???? + unknown + + + + + + + + zflicker jumpman + ???? + unknown + + + + + + + + zflicker liana + ???? + unknown + + + + + + + + zflicker + ???? + unknown + + + + + + + + zflicker1 + ???? + unknown + + + + + + + + zflickerNTSC + ???? + unknown + + + + + + + + zflickerPAL + ???? + unknown + + + + + + + + Zi - The Flie Buster (2002) (Fernando Mora) (PD) + ???? + unknown + + + + + + + + Zilch 20070928 + ???? + unknown + + + + + + + + Zilch 20071001 + ???? + unknown + + + + + + + + Zippy [Demo 01] (Sonic The Hedgehog) [NTSC].bas + ???? + unknown + + + + + + + + Zirconium 2005-05-06 + ???? + unknown + + + + + + + + Zirconium 2005-10-28 + ???? + unknown + + + + + + + + Zkeep! (2023-12)(Altair) + ???? + unknown + + + + + + + + ZLoc4 (PD) + ???? + unknown + + + + + + + + ZNoTimer (PD) + ???? + unknown + + + + + + + + zodzone2 + ???? + unknown + + + + + + + + Zombies (PD) + ???? + unknown + + + + + + + + zombie_chase + ???? + unknown + + + + + + + + Zoop (PD) + ???? + unknown + + + + + + + + zr (Beta 1) + ???? + unknown + + + + + + + + zr (Beta 2) + ???? + unknown + + + + + + + + ZWithTim (PD) + ???? + unknown + + + + + + + + Zyx & Jittery Jim (2007-10-03)(atari2600world)(NTSC)(PD) + ???? + unknown + + + + + + + + Zyx & Stickman (2007-10-02)(atari2600world)(NTSC)(PD) + ???? + unknown + + + + + + + + Zyx (2006-06-08)(atari2600world)(NTSC)(PD) + ???? + unknown + + + + + + + + Zyx (2006-06-11)(atari2600world)(NTSC)(PD) + ???? + unknown + + + + + + + + Zyx (2007-09-30)(atari2600world)(NTSC)(PD) + ???? + unknown + + + + + + + + ZYX 2006 (Chris Read) + ???? + unknown + + + + + + + + Zyx 2k 20070903 + ???? + unknown + + + + + + + + ZYX beta1 (Chris Read) (2006 Minigame Compo) + ???? + unknown + + + + + + + + ZYX v2 (Chris Read) + ???? + unknown + + + + + + + + ZYX2 (Chris Read) + ???? + unknown + + + + + + diff --git a/hash/more/mc10.xml b/hash/more/mc10.xml index ff4ef9a38c2..4c92dbbc911 100644 --- a/hash/more/mc10.xml +++ b/hash/more/mc10.xml @@ -1,7 +1,47 @@ - + + + (demo)dypp[cloadm] + ???? + unknown + + + + + + + + (demo)dypp_4N[cloadm] + ???? + unknown + + + + + + + + (demo)EYESMOV1 + ???? + unknown + + + + + + + + (sound-only)DWSONG + ???? + unknown + + + + + + 08SUB ???? @@ -1032,6 +1072,16 @@ + + Beneath the Temple of Zeus + ???? + unknown + + + + + + BERZERK (2) ???? @@ -1362,6 +1412,16 @@ + + Castle Adventure + ???? + unknown + + + + + + Castle Bally ???? @@ -1852,6 +1912,16 @@ + + Cross Rally + ???? + unknown + + + + + + Crossword Puzzle ???? @@ -1902,6 +1972,16 @@ + + Curse of the Undead + ???? + unknown + + + + + + Dam Busters ???? @@ -1912,6 +1992,36 @@ + + Dante's Run (2) + ???? + unknown + + + + + + + + Dante's Run + ???? + unknown + + + + + + + + Darn It + ???? + unknown + + + + + + Dash (2) ???? @@ -1922,203 +2032,1293 @@ - - Dragon's Cubes + + DASH ???? unknown - - + + - - Duelling Cannons + + DASH013 ???? unknown - - + + - - Dungeon Crawl + + DASHLV02 ???? unknown - - + + - - Escape from Colditz + + DASHLV07 ???? unknown - - + + - - Exquisite Corpses + + Deadstick ???? unknown - - + + - - faire-le-point-bac-francais1-B_alice + + DECOY ???? unknown - - + + - - Halloween Boogaloo + + Deed of the York ???? unknown - - + + - - Hamburger + + DEEPSCAN ???? unknown - - + + - - Mission Defeat the Alpha Force (2)[cloadm exec] + + DEFCON1 ???? unknown - - + + - - Mission Defeat the Alpha Force[cloadm exec] + + DEFEND-joy_4N ???? unknown - - + + - - Night of the Vampire Bunnies + + defend ???? unknown - - + + - - Pharaoh's Curse + + DEFENSE ???? unknown - - + + - - programme-de-demonstration_alice + + DEFLECT ???? unknown - - + + - - road-race_mc10 + + Demon Attack-joy_4N ???? unknown - - + + - - Snowboarder + + Demon Attack ???? unknown - - + + - - Snowboarder_4N + + Demon Knight ???? unknown - - + + - - Treasures of Barsoom + + Demon's Eye ???? unknown - - + + - - Voyage to Atlantis + + Desassembleur[cloadm] ???? unknown - - + + - - Wizard of Chaos + + Devil's Dungeon ???? unknown - - + + - - Year at the Races + + Devil's Whist ???? unknown - - + + + + + + + Devils Triangle + ???? + unknown + + + + + + + + Diamond Hunt (2) + ???? + unknown + + + + + + + + Diamond Hunt + ???? + unknown + + + + + + + + DIAMOND + ???? + unknown + + + + + + + + DICEWARS + ???? + unknown + + + + + + + + DIGDUG + ???? + unknown + + + + + + + + DIGGER + ???? + unknown + + + + + + + + DIGITAYA + ???? + unknown + + + + + + + + Doctor's Adventure on Scaro + ???? + unknown + + + + + + + + Dodge'em + ???? + unknown + + + + + + + + Dog-star Mission Adventure + ???? + unknown + + + + + + + + DOJO + ???? + unknown + + + + + + + + DOMINOES + ???? + unknown + + + + + + + + DOTS + ???? + unknown + + + + + + + + Dracula's Castle + ???? + unknown + + + + + + + + DRAGLAIR + ???? + unknown + + + + + + + + Dragon Castles (final) + ???? + unknown + + + + + + + + Dragon Castles + ???? + unknown + + + + + + + + Dragon Dungeon + ???? + unknown + + + + + + + + Dragon's Cubes + ???? + unknown + + + + + + + + Dragonfear (2) + ???? + unknown + + + + + + + + Dragonfear + ???? + unknown + + + + + + + + DREIDEL + ???? + unknown + + + + + + + + DRIVE + ???? + unknown + + + + + + + + DRWHO demo + ???? + unknown + + + + + + + + DRWHO(uses DRWHO_1 and DRWHO_2 + ???? + unknown + + + + + + + + DRWHO1(uses DRWHO2) + ???? + unknown + + + + + + + + DRWHO2 + ???? + unknown + + + + + + + + DRWHO_1 + ???? + unknown + + + + + + + + DRWHO_2 + ???? + unknown + + + + + + + + Duelling Cannons + ???? + unknown + + + + + + + + Dungeon Crawl + ???? + unknown + + + + + + + + Dungeon of Death + ???? + unknown + + + + + + + + DUNGEON + ???? + unknown + + + + + + + + Dungeons and Dragons + ???? + unknown + + + + + + + + Earthquake + ???? + unknown + + + + + + + + eggs + ???? + unknown + + + + + + + + Elevator Action + ???? + unknown + + + + + + + + ELIZA + ???? + unknown + + + + + + + + Enchanted Isle + ???? + unknown + + + + + + + + ENGINEER + ???? + unknown + + + + + + + + Enigma Simulator + ???? + unknown + + + + + + + + Escape from Colditz + ???? + unknown + + + + + + + + Escape from the Dungeon of the Gods + ???? + unknown + + + + + + + + EXPLORER + ???? + unknown + + + + + + + + Exquisite Corpses + ???? + unknown + + + + + + + + Extended Basic v1 (2) + ???? + unknown + + + + + + + + Extended Basic v1 + ???? + unknown + + + + + + + + faire-le-point-bac-francais1-B_alice + ???? + unknown + + + + + + + + German Flag + ???? + unknown + + + + + + + + Halloween Boogaloo + ???? + unknown + + + + + + + + Hamburger + ???? + unknown + + + + + + + + Hunt the Wumpus + ???? + unknown + + + + + + + + In the Woods + ???? + unknown + + + + + + + + Mission Defeat the Alpha Force (2)[cloadm exec] + ???? + unknown + + + + + + + + Mission Defeat the Alpha Force[cloadm exec] + ???? + unknown + + + + + + + + Montiero Challenge + ???? + unknown + + + + + + + + Night of the Vampire Bunnies + ???? + unknown + + + + + + + + Pharaoh's Curse + ???? + unknown + + + + + + + + programme-de-demonstration_alice + ???? + unknown + + + + + + + + Revenge of the Toothless Vampire + ???? + unknown + + + + + + + + Road to Valhalla + ???? + unknown + + + + + + + + road-race_mc10 + ???? + unknown + + + + + + + + Robot Rubber Duckies from Space + ???? + unknown + + + + + + + + Romulan Warbirds + ???? + unknown + + + + + + + + Snowboarder + ???? + unknown + + + + + + + + Snowboarder_4N + ???? + unknown + + + + + + + + Stronghold of the Dwarven Lords + ???? + unknown + + + + + + + + Tays House Adventure + ???? + unknown + + + + + + + + Temple of Apshai + ???? + unknown + + + + + + + + Tower Dodge + ???? + unknown + + + + + + + + Treasure of Elgon Adventure + ???? + unknown + + + + + + + + Treasures of Barsoom + ???? + unknown + + + + + + + + U-boat + ???? + unknown + + + + + + + + Ultimate Adventure + ???? + unknown + + + + + + + + UNDRDATA + ???? + unknown + + + + + + + + UNDRGRND (uses UNDRDATA) + ???? + unknown + + + + + + + + Unexplored Mansion, An + ???? + unknown + + + + + + + + USFLAG + ???? + unknown + + + + + + + + VADER + ???? + unknown + + + + + + + + Valley, the + ???? + unknown + + + + + + + + Vespozian Affair + ???? + unknown + + + + + + + + VICTRON + ???? + unknown + + + + + + + + Voyage to Atlantis + ???? + unknown + + + + + + + + WANDERER + ???? + unknown + + + + + + + + WARLORDS + ???? + unknown + + + + + + + + Warren's World - Lost Colony + ???? + unknown + + + + + + + + WEREWOLF + ???? + unknown + + + + + + + + Wildcatter + ???? + unknown + + + + + + + + Williamsburg Adventure + ???? + unknown + + + + + + + + Witching Hour + ???? + unknown + + + + + + + + Wizard of Chaos + ???? + unknown + + + + + + + + Wizard's Castle + ???? + unknown + + + + + + + + Word Search Puzzle + ???? + unknown + + + + + + + + World Governor + ???? + unknown + + + + + + + + WORLDGEO + ???? + unknown + + + + + + + + WORLDS + ???? + unknown + + + + + + + + X-Rated Adventure + ???? + unknown + + + + + + + + XMAS + ???? + unknown + + + + + + + + XMAS2019 + ???? + unknown + + + + + + + + xmasrush[cloadm] + ???? + unknown + + + + + + + + XMASTREE + ???? + unknown + + + + + + + + XTREE03 + ???? + unknown + + + + + + + + YAHTZEE + ???? + unknown + + + + + + + + Year at the Races + ???? + unknown + + + + + + + + Zector Adventure + ???? + unknown + + + + + + + + ZODIAC + ???? + unknown + + + + + + + + ZOMBIES + ???? + unknown + + + + + + + + ZYMON + ???? + unknown + + + diff --git a/hash/more/spectrum_cass.xml b/hash/more/spectrum_cass.xml index efc9b82a100..810c9542bdb 100644 --- a/hash/more/spectrum_cass.xml +++ b/hash/more/spectrum_cass.xml @@ -1,6 +1,6 @@ - + (demo)63 BIT 3 (19xx)(-) @@ -3982,4 +3982,634 @@ + + Z (1987)(Rino Software) + ???? + unknown + + + + + + + + Z-Fred (1984)(AK Wood) + ???? + unknown + + + + + + + + Z-Man (1983)(DJL Software) + ???? + unknown + + + + + + + + Zaxxan (1983)(Starzone Software) + ???? + unknown + + + + + + + + Zaxxon (19xx)(D. Boettcher)(De) + ???? + unknown + + + + + + + + ZAZRAKY + ???? + unknown + + + + + + + + zblastsd + ???? + unknown + + + + + + + + zblastsdp + ???? + unknown + + + + + + + + Zebbedy (19xx)(-) + ???? + unknown + + + + + + + + Zed + ???? + unknown + + + + + + + + Zedex_Tanks_1_2_TAP_v1_2 + ???? + unknown + + + + + + + + ZEN 48K (2014)(Einar Saukas) + ???? + unknown + + + + + + + + ZEN II 48K (2015)(Einar Saukas) + ???? + unknown + + + + + + + + Zig Zag (1984)(DK'Tronics Ltd) + ???? + unknown + + + + + + + + Zig-Zag + ???? + unknown + + + + + + + + Ziggurat - The Temple Of Doom (1984)(Software Super Savers Ltd) + ???? + unknown + + + + + + + + Ziona Quest - GAME - ZX Spectrum TAPE + ???? + unknown + + + + + + + + Ziona Quest - Game 128K (2023)(Iamai) + ???? + unknown + + + + + + + + Ziona Quest - Training - ZX Spectrum TAPE + ???? + unknown + + + + + + + + Ziona Quest - Training 128K (2023)(Iamai) + ???? + unknown + + + + + + + + Zip-Zap 48K (1983)(Imagine) + ???? + unknown + + + + + + + + Zipper Flipper (1984)(R.E.D.) + ???? + unknown + + + + + + + + ZNAKY + ???? + unknown + + + + + + + + Zodiac Strip (1984)(Suzy Soft) + ???? + unknown + + + + + + + + Zoids (1985)(Martech Games Ltd) + ???? + unknown + + + + + + + + Zoinho 48K (2021)(Bitnamic) + ???? + unknown + + + + + + + + Zolyx (1988)(Firebird Software Ltd) + ???? + unknown + + + + + + + + Zombi (1990)(Ubi Soft Ltd) + ???? + unknown + + + + + + + + Zombi Mall EN (2022)(The Mojon Twins) + ???? + unknown + + + + + + + + Zombi Mall ES (2022)(The Mojon Twins) + ???? + unknown + + + + + + + + Zombi + ???? + unknown + + + + + + + + Zombie Calavera Prologue 48K (2010)(Mojon Twins) + ???? + unknown + + + + + + + + Zombie Zombie (1984)(Quicksilva Ltd) + ???? + unknown + + + + + + + + Zombies (19xx)(-) + ???? + unknown + + + + + + + + Zona 0 (1991)(Topo Soft)(es) + ???? + unknown + + + + + + + + Zona 0 (1991)(Topo Soft)(Sp) + ???? + unknown + + + + + + + + Zone M (1986)(Zuheir Urwani) + ???? + unknown + + + + + + + + Zooming Secretary 128K (2021)(PC NONO Games) + ???? + unknown + + + + + + + + Zoot & The Mankins (1985)(Bug-Byte Software) + ???? + unknown + + + + + + + + Zoot & The Mankins (1985)(Bug-Byte Software)[a] + ???? + unknown + + + + + + + + Zorro (1986)(US Gold Ltd) + ???? + unknown + + + + + + + + ztrack1k + ???? + unknown + + + + + + + + Zub (1986)(Mastertronic Added Dimension) + ???? + unknown + + + + + + + + Zulu Wars (1987)(CCS) + ???? + unknown + + + + + + + + Zulu Wars (1987)(CCS)[a] + ???? + unknown + + + + + + + + ZX Defender (19xx)(-) + ???? + unknown + + + + + + + + ZX Enigma Machine (2021)(Menyiques) + ???? + unknown + + + + + + + + ZX Football Manager 2005 (2004)(Cronosoft) + ???? + unknown + + + + + + + + ZX Frogger 48K (2021)(ref) + ???? + unknown + + + + + + + + ZX Larry 128K (2019)(Rafal Miazga) + ???? + unknown + + + + + + + + ZX Oil Panic G&W 48K (2021)(Menyiques) + ???? + unknown + + + + + + + + ZX Oil Panic Game & Watch v2 48K (2024)(Menyiques) + ???? + unknown + + + + + + + + ZX Parachute 16K (2020)(Carles Oriol) + ???? + unknown + + + + + + + + ZX Robots 48K (2023)(Skult) + ???? + unknown + + + + + + + + ZX Spectrum Grail (1983)(Severn Soft) + ???? + unknown + + + + + + + + ZX Trek (1982)(Impact Software) + ???? + unknown + + + + + + + + ZX-ECHO + ???? + unknown + + + + + + + + Zybex (1989)(Zeppelin Games Ltd) + ???? + unknown + + + + + + + + Zybex (1989)(Zeppelin Games Ltd)[t +1] + ???? + unknown + + + + + + + + Zynaps (1987)(Hewson Consultants Ltd) + ???? + unknown + + + + + + + + Zzoom (1983)(Imagine Software Ltd) + ???? + unknown + + + + + + + + Zzoom 48K (1983)(Imagine) + ???? + unknown + + + + + + + + Zzzz (19xx)(Mastertronic Ltd) + ???? + unknown + + + + + + diff --git a/hash/more/spectrum_snap.xml b/hash/more/spectrum_snap.xml index 96321a55020..5946948d22d 100644 --- a/hash/more/spectrum_snap.xml +++ b/hash/more/spectrum_snap.xml @@ -1,6 +1,6 @@ - + 100 - Stolnik (1995)(Power Of Sound) @@ -292,6 +292,16 @@ + + Astronut 48K (1984)(Software Projects) + ???? + unknown + + + + + + Astro_Marine_Corps_1989_Dinamic_Software_es_Part_1_of_2 ???? @@ -442,6 +452,16 @@ + + Beaky and the Egg Snatchers 48K (1984)(Fantasy Software) + ???? + unknown + + + + + + Benny Hill's Madcap Chase! 128K (2017)(AGDLabs) ???? @@ -722,6 +742,16 @@ + + Cherils Perils 48K (2010)(The Mojon Twins) + ???? + unknown + + + + + + Chevy Chase 128K (1991)(Hi-Tec) ???? @@ -1742,6 +1772,26 @@ + + Impossible Mission II 48K (1988)(U.S. Gold) + ???? + unknown + + + + + + + + Indoor Soccer 48K (1986)(Magnificent 7 Software) + ???? + unknown + + + + + + International Speedway (1988)(Silverbird) ???? @@ -2122,4 +2172,2064 @@ + + Mad Mix Game (1988)(Topo Soft)(es)(128k) + ???? + unknown + + + + + + + + Magic Carpet 16K (1985)(Mastertronic) + ???? + unknown + + + + + + + + MARTIAN + ???? + unknown + + + + + + + + Masters of the Universe - The Super Adventure 48K (1987)(U.S. Gold) + ???? + unknown + + + + + + + + Masterword 48K (Proto)(1989)(Atlantis Software) + ???? + unknown + + + + + + + + Merlin (1987)(Firebird) + ???? + unknown + + + + + + + + Merlin 48K (1988)(Firebird) + ???? + unknown + + + + + + + + Metal Army (1988)(Players Premier) + ???? + unknown + + + + + + + + Michel Futbol Master - Championship (1989)(Dinamic) + ???? + unknown + + + + + + + + Michel Futbol Master - Super Skills (1989)(Dinamic) + ???? + unknown + + + + + + + + Mickey Mouse - The Computer Game 128K (1988)(Gremlin Graphics) + ???? + unknown + + + + + + + + Mickey Mouse - The Computer Game 48K (1988)(Gremlin Graphics) + ???? + unknown + + + + + + + + Micro Profanation 48K v1.1 (2022)(Ivan Gomez Marquez) + ???? + unknown + + + + + + + + Mojon_Twins-sampler-biniax2 + ???? + unknown + + + + + + + + Mojon_Twins_Phantomas_Tales_1-sampler + ???? + unknown + + + + + + + + Monty Mole (1984)(Gremlin Graphics) + ???? + unknown + + + + + + + + Monty on the Run (1985)(Gremlin Graphics) + ???? + unknown + + + + + + + + Moon Torc (1991)(Atlantis Software) + ???? + unknown + + + + + + + + Moonsweeper (1983)(CheetahSoft) + ???? + unknown + + + + + + + + Moritz 48k (2017)(Sebastian Braunert) + ???? + unknown + + + + + + + + Mot (1989)(Opera Soft)(Part 1 of 3)(128k) + ???? + unknown + + + + + + + + Mot (1989)(Opera Soft)(Part 2 of 3)(128k) + ???? + unknown + + + + + + + + Mot (1989)(Opera Soft)(Part 3 of 3)(128k) + ???? + unknown + + + + + + + + motor + ???? + unknown + + + + + + + + Mundial de Futbol (1990)(Opera Soft)(es) + ???? + unknown + + + + + + + + Mutan Zone (1989)(Opera Soft)(es)(Part 1 of 2)(128k) + ???? + unknown + + + + + + + + Mutan Zone (1989)(Opera Soft)(es)(Part 2 of 2)(128k) + ???? + unknown + + + + + + + + Mystery of the Nile, The (1987)(Firebird Software)(128k) + ???? + unknown + + + + + + + + Nanako in Classic Japanese Monster Castle 48K (2007)(Computer Emuzone) + ???? + unknown + + + + + + + + Navy Moves (1988)(Dinamic Software)(Part 1 of 2)(128k) + ???? + unknown + + + + + + + + Navy Moves (1988)(Dinamic Software)(Part 2 of 2)(128k) + ???? + unknown + + + + + + + + Nebulus (1987)(Hewson Consultants) + ???? + unknown + + + + + + + + Nebulus (1988)(Hewson Consultants) + ???? + unknown + + + + + + + + Nemesis (1987)(The Hit Squad)[re-release] + ???? + unknown + + + + + + + + Night Breed (1990)(Ocean) + ???? + unknown + + + + + + + + Night Breed (1990)(Ocean)[128K] + ???? + unknown + + + + + + + + NISHADE + ???? + unknown + + + + + + + + NUPAGADI + ???? + unknown + + + + + + + + OLDDEMO + ???? + unknown + + + + + + + + Olli & Lissa - The Ghost Of Shilmoore Castle (1986)(Firebird) + ???? + unknown + + + + + + + + Olli & Lissa II - Halloween (1987)(Firebird) + ???? + unknown + + + + + + + + Olli & Lissa III - The Candlelight Adventure (1989)(Codemasters) + ???? + unknown + + + + + + + + Out Run (1988)(U.S. Gold)[128K] + ???? + unknown + + + + + + + + Pac-Man - Arcade 48K (2023)(Marco Leal) + ???? + unknown + + + + + + + + Pakacuda 16K (1983)(Rabbit) + ???? + unknown + + + + + + + + Paradise Cafe PT (1985)(Damatta)[adult] + ???? + unknown + + + + + + + + Pentagram + ???? + unknown + + + + + + + + PlanetOfShades + ???? + unknown + + + + + + + + players + ???? + unknown + + + + + + + + PODRAZ6 + ???? + unknown + + + + + + + + Poli Diaz (1990)(Opera Soft)(es)(128k) + ???? + unknown + + + + + + + + Popeye (1985)(DK'Tronics) + ???? + unknown + + + + + + + + Poradce + ???? + unknown + + + + + + + + Poseidon - Planet Eleven 48K (1990)(Hi-Tec) + ???? + unknown + + + + + + + + Postman Pat - The Computer Game 48K (1989)(Alternative) + ???? + unknown + + + + + + + + Prince Clumsy (1990)(Codemasters) + ???? + unknown + + + + + + + + Pro Skateboard Simulator (1989)(Codemasters) + ???? + unknown + + + + + + + + Pro Tennis Simulator (1990)(Codemasters) + ???? + unknown + + + + + + + + Professional Snooker Simulator (1987)(Codemasters) + ???? + unknown + + + + + + + + PSSST + ???? + unknown + + + + + + + + Pub Trivia (1989)(Codemasters) + ???? + unknown + + + + + + + + R-Type (1988)(Electric Dreams Software)[b] + ???? + unknown + + + + + + + + Race Against Time, The (1988)(Codemasters) + ???? + unknown + + + + + + + + Race, The + ???? + unknown + + + + + + + + RAM (1990)(Topo Soft)(es)(128k) + ???? + unknown + + + + + + + + Rat-A-Tat (2020)(Joesoft) + ???? + unknown + + + + + + + + Rescate Atlantida ES 128K (1989)(Dinamic) + ???? + unknown + + + + + + + + Rescate en el Golfo (1990)(Opera Soft)(Part 1 of 2) + ???? + unknown + + + + + + + + Rescate en el Golfo (1990)(Opera Soft)(Part 2 of 2) + ???? + unknown + + + + + + + + Rex (1988)(Martech Games)(128k) + ???? + unknown + + + + + + + + Rex (1988)(Martech Games)[Part 1 of 2] + ???? + unknown + + + + + + + + Rex (1988)(Martech Games)[Part 2 of 2] + ???? + unknown + + + + + + + + Road Blasters 128K (1988)(U.S. Gold) + ???? + unknown + + + + + + + + Road Runner 48K (1987)(U.S. Gold) + ???? + unknown + + + + + + + + Road Runner and Wile E. Coyote 48K (1991)(Hi-Tec) + ???? + unknown + + + + + + + + Rocco 48K (1985)(Gremlin Graphics) + ???? + unknown + + + + + + + + Rock 'n Roller (1988)(Topo Soft)(es)(128k) + ???? + unknown + + + + + + + + Rock'n Roller ES (1988)(Topo Soft) + ???? + unknown + + + + + + + + Rocky 48K (1985)(Dinamic) + ???? + unknown + + + + + + + + Run the Gauntlet (1989)(Ocean)[128K] + ???? + unknown + + + + + + + + S.I.P. - Special Intergalactic Painter 48K (2014)(Gamemaster) + ???? + unknown + + + + + + + + Saboteur (1986)(Durell) + ???? + unknown + + + + + + + + Saboteur 48K (1985)(Durell) + ???? + unknown + + + + + + + + Saboteur II - Avenging Angel (1987)(Durell)(128k)_2 + ???? + unknown + + + + + + + + Saboteur II - Avenging Angel (1987)(Durell)(Standard) + ???? + unknown + + + + + + + + Saboteur II - Avenging Angel (1987)(Durell)_1 + ???? + unknown + + + + + + + + Saboteur_II_Avenging_Angel_1987_Durell_Software + ???? + unknown + + + + + + + + Sabre Wulf + ???? + unknown + + + + + + + + Sabrina ES 48K (1989)(Iber Soft) + ???? + unknown + + + + + + + + Sacred Armour of Antiriad, The (1986)(Palace) + ???? + unknown + + + + + + + + Samurai Warrior - Usagi Yojimbo (1988)(Firebird) + ???? + unknown + + + + + + + + Sanxion - The Spectrum Remix (1989)(Thalamus)(48K-128K) + ???? + unknown + + + + + + + + Satan (1989)(Dinamic Software)(Part 1 of 2)(128k) + ???? + unknown + + + + + + + + Satan (1989)(Dinamic Software)(Part 2 of 2)(128k) + ???? + unknown + + + + + + + + Savage (1988)(Firebird)(128k) + ???? + unknown + + + + + + + + Savage, The (1988)(Firebird)[intro] + ???? + unknown + + + + + + + + Savage, The (1988)(Firebird)[Part 1 of 3] + ???? + unknown + + + + + + + + Savage, The (1988)(Firebird)[Part 1 of 3]_1 + ???? + unknown + + + + + + + + Savage, The (1988)(Firebird)[Part 2 of 3] + ???? + unknown + + + + + + + + Savage, The (1988)(Firebird)[Part 3 of 3] + ???? + unknown + + + + + + + + Score 3020 ES 48K (1989)(Topo Soft) + ???? + unknown + + + + + + + + Scuba Dive (1983)(Durell) + ???? + unknown + + + + + + + + Sea Dragon (2010)(Andrew Zhiglov)(128k) + ???? + unknown + + + + + + + + Sector (2013)(RetroSouls) + ???? + unknown + + + + + + + + Sentinel, The (1987)(Firebird Software) + ???? + unknown + + + + + + + + Seymour At The Movies (1991)(Codemasters) + ???? + unknown + + + + + + + + Seymour Take One (1991)(Codemasters) + ???? + unknown + + + + + + + + Shadow Of The Beast (1990)(Gremlin Graphics) + ???? + unknown + + + + + + + + Sherlock 48K (1984)(Melbourne House) + ???? + unknown + + + + + + + + Side Arms 48K (1988)(Go!) + ???? + unknown + + + + + + + + Sidewize_1987_Firebird_Software + ???? + unknown + + + + + + + + Silent Service 48K (1986)(U.S. Gold) + ???? + unknown + + + + + + + + Sim City (1989)(Infogrames) + ???? + unknown + + + + + + + + Simulador Profesional de Tenis (1990)(Dinamic Software)(es)(128k) + ???? + unknown + + + + + + + + Sirwood (1990)(Opera Soft)(Part 1 of 3)(128k) + ???? + unknown + + + + + + + + Sirwood (1991)(Opera Soft)(Part 2 of 3)(128k) + ???? + unknown + + + + + + + + Sirwood (1991)(Opera Soft)(Part 3 of 3)(128k) + ???? + unknown + + + + + + + + Sito Pons 500cc Grand Prix (1990)(Zigurat Software)(es)(128k) + ???? + unknown + + + + + + + + Skate Crazy - Part 1 (1988)(Gremlin Graphics) + ???? + unknown + + + + + + + + Skate Crazy - Part 2 (1988)(Gremlin Graphics) + ???? + unknown + + + + + + + + Skladacka (1989)(Deltasoft)(SK) + ???? + unknown + + + + + + + + Soko-BanEditor + ???? + unknown + + + + + + + + Sol Negro (1989)(Opera Soft)(es)(Part 1 of 2)(128k) + ???? + unknown + + + + + + + + Sol Negro (1989)(Opera Soft)(es)(Part 2 of 2)(128k) + ???? + unknown + + + + + + + + Sol Negro - Special Edition - Part 1 (1989)(Opera Soft) + ???? + unknown + + + + + + + + Sol Negro - Special Edition - Part 2 (1989)(Opera Soft) + ???? + unknown + + + + + + + + Soldier Of Fortune (1988)(Firebird) + ???? + unknown + + + + + + + + SOLITER + ???? + unknown + + + + + + + + Souls ES (2013)(Retrobytes Productions) + ???? + unknown + + + + + + + + Spooky Castle 48K (1990)(Atlantis Software) + ???? + unknown + + + + + + + + Stalker + ???? + unknown + + + + + + + + Star Blade (1995)(Barry Addams) + ???? + unknown + + + + + + + + Star Paws (1988)(Software Projects) + ???? + unknown + + + + + + + + Starfox + ???? + unknown + + + + + + + + Stonava1 + ???? + unknown + + + + + + + + Stonava2 + ???? + unknown + + + + + + + + Stonava3 + ???? + unknown + + + + + + + + Stop The Express (1983)(Hudson Soft) + ???? + unknown + + + + + + + + Stormlord (1989)(Hewson Consultants)[t] + ???? + unknown + + + + + + + + Stormlord_II_Deliverance_1990_Hewson_Consultants_Part_1_of_3 + ???? + unknown + + + + + + + + Stormlord_II_Deliverance_1990_Hewson_Consultants_Part_2_of_3 + ???? + unknown + + + + + + + + Stormlord_II_Deliverance_1990_Hewson_Consultants_Part_3_of_3 + ???? + unknown + + + + + + + + Street Hassle + ???? + unknown + + + + + + + + Strider II (1990)(U.S. Gold)[needs tape load] + ???? + unknown + + + + + + + + Stunt Car Racer (1989)(Micro Style) + ???? + unknown + + + + + + + + Subbuteo - The Computer Game (1990)(Electronic Zoo) + ???? + unknown + + + + + + + + Subbuteo - The Computer Game (1990)(Electronic Zoo)[128K] + ???? + unknown + + + + + + + + Super Alien Blast 48K (2021)(Vintage Software Systems) + ???? + unknown + + + + + + + + Super Meteor Blast 48K (2021)(Vintage Software Systems) + ???? + unknown + + + + + + + + Super Monaco GP (1991)(U.S. Gold)[128K] + ???? + unknown + + + + + + + + Super Space Invaders 128K (1991)(Domark) + ???? + unknown + + + + + + + + Superbike Trans-Am (1989)(Codemasters) + ???? + unknown + + + + + + + + SuperDiskus + ???? + unknown + + + + + + + + SWIV (1991)(Storm Software)(Block1)(128k) + ???? + unknown + + + + + + + + SWIV (1991)(Storm Software)[128K] + ???? + unknown + + + + + + + + S_Quest1 + ???? + unknown + + + + + + + + S_Quest2 + ???? + unknown + + + + + + + + Tai-Pan (1987)(Ocean) + ???? + unknown + + + + + + + + Tai-Pan 128K (1987)(Ocean) + ???? + unknown + + + + + + + + Technician Ted + ???? + unknown + + + + + + + + Teenage Mutant Hero Turtles (1990)(Image Works) + ???? + unknown + + + + + + + + Terra Cresta (1986)(Imagine Software) + ???? + unknown + + + + + + + + Terra Cresta (1986)(Imagine Software)[128K] + ???? + unknown + + + + + + + + Test_Drive_II_The_Duel_1989_Accolade + ???? + unknown + + + + + + + + Tetris (1988)(Mirrorsoft)(128k) + ???? + unknown + + + + + + + + Tetris (1988)(Mirrorsoft) + ???? + unknown + + + + + + + + Tetris2 + ???? + unknown + + + + + + + + Thundercats 128K (1987)(Elite Systems) + ???? + unknown + + + + + + + + Thundercats 48K (1987)(Elite Systems) + ???? + unknown + + + + + + + + Tiger Road (1988)(Go!) + ???? + unknown + + + + + + + + Tiger Road (1988)(Go!)[128K] + ???? + unknown + + + + + + + + Time Machine 48K (1990)(Activision) + ???? + unknown + + + + + + + + Titanic (1988)(Topo Soft)(Part 1 of 2)(128k) + ???? + unknown + + + + + + + + Titanic (1988)(Topo Soft)(Part 2 of 2)(128k) + ???? + unknown + + + + + + + + Top Cat in Beverly Hills Cats 48K (1991)(Hi-Tec) + ???? + unknown + + + + + + + + Total Recall (1991)(Ocean)[128K] + ???? + unknown + + + + + + + + Trantor The Last Stormtrooper (1987)(Go!) + ???? + unknown + + + + + + + + Tranz Am (1983)(Ultimate Play The Game) + ???? + unknown + + + + + + + + Trapdoor, The + ???? + unknown + + + + + + + + Treinador de Futebol PT (1983)(Microbyte Software) + ???? + unknown + + + + + + + + Tus Juegos Single 1 - Tape 1 - Incursion Aerea (19xx)(Monser)(es)[aka Harrier Attack!] + ???? + unknown + + + + + + + + Tus Juegos Single 1 - Tape 4 - Gusiloc (19xx)(Monser)(es)[aka Millipede] + ???? + unknown + + + + + + + + Underwurlde + ???? + unknown + + + + + + + + UPIR + ???? + unknown + + + + + + + + Valley of Rains (2019)(Zosya Entertainment)(128k) + ???? + unknown + + + + + + + + Vindicator, The (1988)(Imagine Software)[128K] + ???? + unknown + + + + + + + + Vindicators (1989)(Domark)[128K] + ???? + unknown + + + + + + + + Way of the Exploding Fist, The (1985)(Melbourne House) + ???? + unknown + + + + + + + + WEC Le Mans (1988)(Imagine Software) + ???? + unknown + + + + + + + + WEC Le Mans (1988)(Imagine Software)[128K] + ???? + unknown + + + + + + + + Welltris + ???? + unknown + + + + + + + + whb + ???? + unknown + + + + + + + + Wild West Seymour (1992)(Codemasters)(128k) + ???? + unknown + + + + + + + + Wild West Seymour (1992)(Codemasters) + ???? + unknown + + + + + + + + Wonder Boy (1987)(Activision)[128K] + ???? + unknown + + + + + + + + World Series Basketball (1985)(Imagine) + ???? + unknown + + + + + + + + Wrestling Superstars (1993)(Codemasters) + ???? + unknown + + + + + + + + wriggler + ???? + unknown + + + + + + + + Xecutor - Remix (1987)(ACE Software) + ???? + unknown + + + + + + + + Xeno II 16K (1983)(Anirog) + ???? + unknown + + + + + + + + Yie Ar Kung-Fu (1985)(Imagine Software) + ???? + unknown + + + + + + + + Yie Ar Kung-Fu (1985)(Imagine Software)[128K] + ???? + unknown + + + + + + + + Zombo's Christmas Capers (2016)(Monsterbytes) + ???? + unknown + + + + + + + + Zooming Secretary (2021)(PC NONO Games) + ???? + unknown + + + + + + + + Zorro (1986)(U.S. Gold) + ???? + unknown + + + + + + + + Zybex 48K (1989)(Zeppelin Games) + ???? + unknown + + + + + + diff --git a/hash/more/x68k_flop.xml b/hash/more/x68k_flop.xml index 034642d1044..76212219c9f 100644 --- a/hash/more/x68k_flop.xml +++ b/hash/more/x68k_flop.xml @@ -1,6 +1,6 @@ - + 177 (unofficial port) @@ -622,13 +622,233 @@ + + Teleportion (Sample disk) + ???? + unknown + + + + + + + + Teleportion (System disk) + ???? + unknown + + + + + + + + Terazzo Sprite Editor Pro-68K (Sample disk) + ???? + unknown + + + + + + + + Terazzo Sprite Editor Pro-68K (System disk) + ???? + unknown + + + + + + + + Terazzo Sprite Editor Pro-68K (User disk) + ???? + unknown + + + + + + + + Terminoru 2 + ???? + unknown + + + + + + + + Terminoru + ???? + unknown + + + + + + + + The File Master X68000 (v1.13) (Disk 1) + ???? + unknown + + + + + + + + The File Master X68000 (v1.13) (Disk 2) + ???? + unknown + + + + + + + + The File Master X68000 (v1.13) (Disk 3) + ???? + unknown + + + + + + + + The Fukubukuro (v2.0) (System disk) + ???? + unknown + + + + + + + + ThunderWord Nihongo Word Processor + ???? + unknown + + + + + + + + Tokyo Joshikou Pt 1 (1988)(SystHOh)(0) + ???? + unknown + + + + + + + + Tokyo Joshikou Pt 1 (1988)(SystHOh)(1) + ???? + unknown + + + + + + + + Tokyo Joshikou Pt 1 (1988)(SystHOh)(2) + ???? + unknown + + + + + + + + Tokyo Joshikou Pt 2 (1988)(SystHOh)(0) + ???? + unknown + + + + + + + + Tokyo Joshikou Pt 2 (1988)(SystHOh)(1) + ???? + unknown + + + + + + + + Tokyo Joshikou Pt 2 (1988)(SystHOh)(2) + ???? + unknown + + + + + + + + Toys & Tools + ???? + unknown + + + + + + + + Trilogy - Ayakashiden (1991)(Gundeck)(1) + ???? + unknown + + + + + + + + Trilogy - Ayakashiden (1991)(Gundeck)(2) + ???? + unknown + + + + + + - Twin Bee (y) (Konami) [xdf] + Twin Bee (y) (Konami) + ???? + unknown + + + + + + + + Twin Soul ???? unknown - + diff --git a/hash/more/zx81_cass.xml b/hash/more/zx81_cass.xml index a582d5075a4..0fcf68751eb 100644 --- a/hash/more/zx81_cass.xml +++ b/hash/more/zx81_cass.xml @@ -1,6 +1,6 @@ - + (demo)8WAY-SCR @@ -3492,6 +3492,616 @@ + + GALACTIC + ???? + unknown + + + + + + + + GALAKTIS + ???? + unknown + + + + + + + + GALAXIAN (3) + ???? + unknown + + + + + + + + GALAXIAN (5) + ???? + unknown + + + + + + + + GALAXIAN + ???? + unknown + + + + + + + + GALAXY (2) + ???? + unknown + + + + + + + + GALAXY (4) + ???? + unknown + + + + + + + + GALAXY + ???? + unknown + + + + + + + + GALGJE + ???? + unknown + + + + + + + + GAME-TWO + ???? + unknown + + + + + + + + GAME4 + ???? + unknown + + + + + + + + GAME5 + ???? + unknown + + + + + + + + GAME6 + ???? + unknown + + + + + + + + GANYMEDE + ???? + unknown + + + + + + + + GAUNTLET (3) + ???? + unknown + + + + + + + + gauntlet + ???? + unknown + + + + + + + + Gaz + ???? + unknown + + + + + + + + GAZETTEE + ???? + unknown + + + + + + + + gdhabits + ???? + unknown + + + + + + + + GEKKENHU + ???? + unknown + + + + + + + + GELD + ???? + unknown + + + + + + + + GEORGE + ???? + unknown + + + + + + + + GERMAN + ???? + unknown + + + + + + + + GHOST + ???? + unknown + + + + + + + + GHOSTDRI + ???? + unknown + + + + + + + + GHOSTHUN + ???? + unknown + + + + + + + + GLOOPER + ???? + unknown + + + + + + + + GLOOPS (3) + ???? + unknown + + + + + + + + GLOOPS + ???? + unknown + + + + + + + + GO-BALL + ???? + unknown + + + + + + + + GOBANG + ???? + unknown + + + + + + + + GOLF (2) + ???? + unknown + + + + + + + + GOLF (3) + ???? + unknown + + + + + + + + GOLF + ???? + unknown + + + + + + + + GRABEN + ???? + unknown + + + + + + + + GRAFFITY (2) + ???? + unknown + + + + + + + + Graffity + ???? + unknown + + + + + + + + GRAFIK_1 + ???? + unknown + + + + + + + + GRAFIK_2 + ???? + unknown + + + + + + + + GRAFIK_3 + ???? + unknown + + + + + + + + GRAFIK_4 + ???? + unknown + + + + + + + + GRAND-PR (2) + ???? + unknown + + + + + + + + GRAND-PR (3) + ???? + unknown + + + + + + + + GRAND-PR + ???? + unknown + + + + + + + + GRAPH (2) + ???? + unknown + + + + + + + + GRAPH (3) + ???? + unknown + + + + + + + + GRAPHICT + ???? + unknown + + + + + + + + GRAPHROU + ???? + unknown + + + + + + + + GRAPHTOO + ???? + unknown + + + + + + + + GRAVITY (2) + ???? + unknown + + + + + + + + GREEK-MC + ???? + unknown + + + + + + + + GUELFI + ???? + unknown + + + + + + + + GUELFI2 + ???? + unknown + + + + + + + + GUESSX + ???? + unknown + + + + + + + + GULP2 + ???? + unknown + + + + + + + + GULP2_1 + ???? + unknown + + + + + + + + GUN + ???? + unknown + + + + + + + + GUNFIGHT (2) + ???? + unknown + + + + + + + + GUNFIGHT + ???? + unknown + + + + + + + + Guntus (autorun) + ???? + unknown + + + + + + + + GUZZLERS + ???? + unknown + + + + + + Poker Machine ???? diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 8096a161189..634a6eab870 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -2701,6 +2701,8 @@ if (BUSES["VCS_CTRL"]~=null) then MAME_DIR .. "src/devices/bus/vcs_ctrl/mouse.h", MAME_DIR .. "src/devices/bus/vcs_ctrl/paddles.cpp", MAME_DIR .. "src/devices/bus/vcs_ctrl/paddles.h", + MAME_DIR .. "src/devices/bus/vcs_ctrl/trakball.cpp", + MAME_DIR .. "src/devices/bus/vcs_ctrl/trakball.h", MAME_DIR .. "src/devices/bus/vcs_ctrl/wheel.cpp", MAME_DIR .. "src/devices/bus/vcs_ctrl/wheel.h", } diff --git a/src/devices/bus/vcs_ctrl/ctrl.cpp b/src/devices/bus/vcs_ctrl/ctrl.cpp index afef3a923bf..8cf51645a55 100644 --- a/src/devices/bus/vcs_ctrl/ctrl.cpp +++ b/src/devices/bus/vcs_ctrl/ctrl.cpp @@ -72,6 +72,7 @@ void vcs_control_port_device::device_start() #include "lightpen.h" #include "mouse.h" #include "paddles.h" +#include "trakball.h" #include "wheel.h" void vcs_control_port_devices(device_slot_interface &device) @@ -84,6 +85,7 @@ void vcs_control_port_devices(device_slot_interface &device) device.option_add("wheel", VCS_WHEEL); device.option_add("keypad", VCS_KEYPAD); device.option_add("cx85", ATARI_CX85); + device.option_add("trakball", ATARI_TRAKBALL); } void a800_control_port_devices(device_slot_interface &device) diff --git a/src/devices/bus/vcs_ctrl/trakball.cpp b/src/devices/bus/vcs_ctrl/trakball.cpp new file mode 100644 index 00000000000..bb5cc0a9a22 --- /dev/null +++ b/src/devices/bus/vcs_ctrl/trakball.cpp @@ -0,0 +1,148 @@ +// license:BSD-3-Clause +/********************************************************************** + + Atari CX22/CX80 Trak-Ball + +Note: this module only works in trackball mode and not in joystick emulation mode + +Reference: Atari, CX22 Trakball Field Service Manual, Rev. 01 (FD100660), November 1983 + +**********************************************************************/ + +#include "emu.h" +#include "trakball.h" + +/*************************************************************************** + CONSTANTS +***************************************************************************/ + +#define TRAKBALL_BUTTON_TAG "trackball_buttons" +#define TRAKBALL_XAXIS_TAG "trackball_x" +#define TRAKBALL_YAXIS_TAG "trackball_y" + +#define TRAKBALL_POS_UNINIT 0xffffffff /* default out-of-range position */ + +//************************************************************************** +// DEVICE TYPE DEFINITION +//************************************************************************** + +DEFINE_DEVICE_TYPE(ATARI_TRAKBALL, atari_trakball_device, "atari_trakball", "Atari CX22/CX80 Trak-Ball") + + +//************************************************************************** +// INPUT PORTS +//************************************************************************** + +static INPUT_PORTS_START(atari_trakball) + PORT_START(TRAKBALL_BUTTON_TAG) /* Trak-ball - button */ + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_WRITE_LINE_MEMBER(atari_trakball_device, trigger_w) + PORT_BIT( 0xd0, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START(TRAKBALL_XAXIS_TAG) /* Trak-ball - X AXIS */ + PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(80) PORT_KEYDELTA(0) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, atari_trakball_device, trakball_moved, 0) + + PORT_START(TRAKBALL_YAXIS_TAG) /* Trak-ball - Y AXIS */ + PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(80) PORT_KEYDELTA(0) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, atari_trakball_device, trakball_moved, 1) +INPUT_PORTS_END + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// atari_trakball_device - constructor +//------------------------------------------------- + +atari_trakball_device::atari_trakball_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, ATARI_TRAKBALL, tag, owner, clock) + , device_vcs_control_port_interface(mconfig, *this) + , m_trakballb(*this, TRAKBALL_BUTTON_TAG) + , m_trakballxy(*this, { TRAKBALL_XAXIS_TAG, TRAKBALL_YAXIS_TAG }) + , m_last_pos{ TRAKBALL_POS_UNINIT, TRAKBALL_POS_UNINIT } + , m_last_direction{ 0, 0 } +{ +} + +//------------------------------------------------- +// device_input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor atari_trakball_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(atari_trakball); +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void atari_trakball_device::device_start() +{ +} + +#define QUADRATURE_ANGLE_RESOLUTION 0x02 + +//----------------------------------------------------------------- +// trakbal_pos_and_dir_upd - update tracked position and direction +//----------------------------------------------------------------- + +void atari_trakball_device::trakball_pos_and_dir_upd(int axis) +{ + int diff_pos = 0; + int cur_pos = 0; + + cur_pos = m_trakballxy[axis]->read(); + if (m_last_pos[axis] == TRAKBALL_POS_UNINIT) { + if (!machine().side_effects_disabled()) { + m_last_pos[axis] = cur_pos; + } + } + diff_pos = cur_pos - m_last_pos[axis]; + // wrap-around the position + if (diff_pos > 0x7f) { + diff_pos -= 0x100; + } else if (diff_pos < -0x80) { + diff_pos += 0x100; + } + if (!machine().side_effects_disabled()) { + m_last_pos[axis] = cur_pos; + if (diff_pos) { + m_last_direction[axis] = diff_pos > 0; + } + } +} + +//--------------------------------------------------------- +// trakball_moved - called when moved outside of polling +//--------------------------------------------------------- + +INPUT_CHANGED_MEMBER( atari_trakball_device::trakball_moved ) +{ + const int axis(param); + + trakball_pos_and_dir_upd(axis); +} + +//------------------------------------------------- +// vcs_joy_r - read digital inputs +//------------------------------------------------- + +u8 atari_trakball_device::vcs_joy_r() +{ + u8 vcs_joy_return = 0; + + for (int axis = 0; axis < 2; axis++) { + trakball_pos_and_dir_upd(axis); + } + + vcs_joy_return = + m_trakballb->read() | + (m_last_direction[0] ? 0x01 : 0x00) | + ((m_last_pos[0] & QUADRATURE_ANGLE_RESOLUTION) ? 0x02 : 0x00) | + (m_last_direction[1] ? 0x04 : 0x00) | + ((m_last_pos[1] & QUADRATURE_ANGLE_RESOLUTION) ? 0x08 : 0x00); + + return vcs_joy_return; +} diff --git a/src/devices/bus/vcs_ctrl/trakball.h b/src/devices/bus/vcs_ctrl/trakball.h new file mode 100644 index 00000000000..22d6c68d73e --- /dev/null +++ b/src/devices/bus/vcs_ctrl/trakball.h @@ -0,0 +1,53 @@ +// license:BSD-3-Clause +/********************************************************************** + + Atari CX22/CX80 Trak-Ball + +**********************************************************************/ + +#ifndef MAME_BUS_VCS_CTRL_TRAKBALL_H +#define MAME_BUS_VCS_CTRL_TRAKBALL_H + +#pragma once + +#include "ctrl.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> atari_trakball_device + +class atari_trakball_device : public device_t, + public device_vcs_control_port_interface +{ +public: + // construction/destruction + atari_trakball_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + DECLARE_INPUT_CHANGED_MEMBER( trakball_moved ); + +protected: + // device_t implementation + virtual void device_start() override; + + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + + // device_vcs_control_port_interface overrides + virtual u8 vcs_joy_r() override; + +private: + required_ioport m_trakballb; + required_ioport_array<2> m_trakballxy; + + void trakball_pos_and_dir_upd(int axis); + + uint32_t m_last_pos[2]; + uint8_t m_last_direction[2]; +}; + + +// device type declaration +DECLARE_DEVICE_TYPE(ATARI_TRAKBALL, atari_trakball_device) + +#endif // MAME_BUS_VCS_CTRL_TRAKBALL_H diff --git a/src/mame/astrocorp/astropc.cpp b/src/mame/astrocorp/astropc.cpp index 6e50f2c7fd4..f707fa9e3e0 100644 --- a/src/mame/astrocorp/astropc.cpp +++ b/src/mame/astrocorp/astropc.cpp @@ -365,5 +365,5 @@ GAME( 2005, rasce, 0, astropc, astropc, astropc_state, init_astropc, R // Artemis II games -GAME( 2009, carnivac, 0, astropc, astropc, astropc_state, init_astropc, ROT0, "Astro", "Carnival (Astro Corp., US.004.D)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2009, santacl, 0, astropc, astropc, astropc_state, init_astropc, ROT0, "Astro", "Santa Claus (IN.001.07.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2009, carnivac, 0, astropc, astropc, astropc_state, init_astropc, ROT0, "Astro Corp.", "Carnival (Astro Corp., US.004.D)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2009, santacl, 0, astropc, astropc, astropc_state, init_astropc, ROT0, "Astro Corp.", "Santa Claus (IN.001.07.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/atari/stkbd.cpp b/src/mame/atari/stkbd.cpp index 320bec26f51..39a6162a57f 100644 --- a/src/mame/atari/stkbd.cpp +++ b/src/mame/atari/stkbd.cpp @@ -4,8 +4,6 @@ #include "emu.h" #include "stkbd.h" -#include "utf8.h" - DEFINE_DEVICE_TYPE(ST_KBD, st_kbd_device, "st_kbd", "Atari ST Keyboard/Mouse/Joystick") ROM_START( st_kbd ) @@ -309,11 +307,11 @@ static INPUT_PORTS_START(stkbd) PORT_START("P45") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Undo") PORT_CODE(KEYCODE_F12) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(u8"\u2191") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // U+2191 = ↑ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Clr Home") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(u8"\u2190") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) // U+2190 = ← + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(u8"\u2193") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) // U+2193 = ↓ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(u8"\u2192") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) // U+2192 = → PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 1") PORT_CODE(KEYCODE_1_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) diff --git a/src/mame/barcrest/mpu4vid.cpp b/src/mame/barcrest/mpu4vid.cpp index e46f90e8724..3788820e6cc 100644 --- a/src/mame/barcrest/mpu4vid.cpp +++ b/src/mame/barcrest/mpu4vid.cpp @@ -3441,7 +3441,7 @@ ROM_START( v4redhtpunk ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "rhp20ac6", 0x0000, 0x010000, CRC(d6a842b4) SHA1(94f6cc6a9e0efa8a2eeee14f981f9d2407dfb092) ) - ROM_REGION( 0x800000, "video", 0 ) // none of the ROMs are have are commpatible with this? + ROM_REGION( 0x800000, "video", 0 ) // none of the ROMs we have are compatible with this? ROM_LOAD("video_board_roms", 0x0000, 0x10000, NO_DUMP ) ROM_REGION( 0x200000, "okicard:msm6376", ROMREGION_ERASE00 ) @@ -5442,6 +5442,26 @@ ROM_START( v4bulblxc ) /* none present */ ROM_END +ROM_START( v4bulblxd ) + ROM_REGION( 0x10000, "maincpu", 0 ) // main PCB wasn't present + ROM_LOAD( "program.bin", 0x00000, 0x010000, NO_DUMP ) + + ROM_REGION( 0x800000, "video", 0 ) // on BARCREST VIDEO MEMORY CARD 681868 18185-2 PCB + ROM_LOAD16_BYTE( "bvm_____.1_1.ic9", 0x000000, 0x010000, CRC(c3868e84) SHA1(991bad401a2853c3ea95adf9861c565fedc22b3a) ) // 1xxxxxxxxxxxxxxx = 0xFF + ROM_LOAD16_BYTE( "bvm_____.1_2.ic1", 0x000001, 0x010000, CRC(e97ba9ff) SHA1(40afefb7215ef968613b06e2aeb345b0f8bbc2c1) ) // 1xxxxxxxxxxxxxxx = 0xFF + ROM_LOAD16_BYTE( "bvm_____.1_3.ic10", 0x020000, 0x010000, CRC(4277e41c) SHA1(f2cab567be22714de42aff14755fda05d353a4fa) ) + ROM_LOAD16_BYTE( "bvm_____.1_4.ic2", 0x020001, 0x010000, CRC(d1d8e1f1) SHA1(e875085257782ba97058e637f15dc1d1b7ff63ba) ) + ROM_LOAD16_BYTE( "bvm_____.1_5.ic11", 0x040000, 0x010000, CRC(5aa44716) SHA1(256972701112bfd446d5f5fcdf741c6240ca6b3b) ) + ROM_LOAD16_BYTE( "bvm_____.1_6.ic3", 0x040001, 0x010000, CRC(ff698218) SHA1(f8dcd49ccdb47a6cf0d4012d22f2adf689d7f5e1) ) + // 10 more empty ROM sockets + + ROM_REGION( 0x200000, "okicard:msm6376", ROMREGION_ERASE00 ) + // none present + + ROM_REGION( 0x117, "plds", 0 ) // on BARCREST VIDEO MEMORY CARD 681868 18185-2 PCB + ROM_LOAD( "bvm__.g.ic18", 0x000, 0x117, NO_DUMP ) // GAL16V8 +ROM_END + ROM_START( v4cshinf ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -8805,10 +8825,11 @@ GAME( 1994, v4pzteta, v4pztet, bwbvid, v4pztet, mpu4vid_state, init_b GAME( 1994, v4pztetb, v4pztet, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Prize Tetris (BWB) (Showcase) (MPU4 Video)",GAME_FLAGS_OK ) // screen telling you to exchange tickets for prizes in the 'showcase' during attract GAME( 1994, v4pztetc, v4pztet, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Prize Tetris (BWB) (Showcase) (Datapak) (MPU4 Video)",GAME_FLAGS_OK ) // this appears to be a version of Prize Tetris without the Tetris license. These don't have proper alarms, eg coin1 stuck is 'undefined' -GAME( 1994, v4bulblx, 0, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1994, v4bulblxb, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1994, v4bulblxa, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1994, v4bulblxc, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblx, 0, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (BV_50___.2__) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblxb, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (BV_1P___.2__) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblxd, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (BVM_____.1__) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblxa, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (Datapak) (BV_50___.2__) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblxc, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (Datapak) (BV_1P___.2__) (MPU4 Video)",GAME_FLAGS ) // doesn't have payout so no shelf error (no payout on prototype?), runs with door closed diff --git a/src/mame/chessking/pmicrodx.cpp b/src/mame/chessking/pmicrodx.cpp new file mode 100644 index 00000000000..75bad506e0c --- /dev/null +++ b/src/mame/chessking/pmicrodx.cpp @@ -0,0 +1,246 @@ +// license:BSD-3-Clause +// copyright-holders:hap +// thanks-to:Sean Riddle +/******************************************************************************* + +Chess King Pocket Micro De-Luxe + +Hardware notes: +- Hitachi HD44868 @ ~800kHz (33K resistor) +- LCD with 4 7segs and custom segments, piezo + +HD44868A07 MCU is used in: +- Chess King Pocket Micro De-Luxe +- Chess King Mighty Midget De-Luxe +- Mephisto Teufelchen (H+G brand Pocket Micro De-Luxe) + +TODO: +- dump/add the first version (Pocket Micro), does it fit in this driver? + +*******************************************************************************/ + +#include "emu.h" + +#include "cpu/hmcs40/hmcs40.h" +#include "sound/dac.h" +#include "video/pwm.h" + +#include "screen.h" +#include "speaker.h" + +// internal artwork +#include "cking_pmicrodx.lh" + + +namespace { + +class pmicrodx_state : public driver_device +{ +public: + pmicrodx_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_display(*this, "display"), + m_dac(*this, "dac"), + m_inputs(*this, "IN.%u", 0) + { } + + void pmicrodx(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(input_changed) { refresh_irq(1 << param); } + +protected: + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD { refresh_irq(); } + +private: + // devices/pointers + required_device m_maincpu; + required_device m_display; + required_device m_dac; + required_ioport_array<5> m_inputs; + + u8 m_inp_mux = 0; + u8 m_lcd_com = 0; + u64 m_lcd_segs = 0; + + void update_lcd(); + template void seg_w(u8 data); + u8 read_buttons(); + void refresh_irq(u8 mask = ~0); + u16 input_r(); + void control_w(u16 data); +}; + +void pmicrodx_state::machine_start() +{ + save_item(NAME(m_inp_mux)); + save_item(NAME(m_lcd_com)); + save_item(NAME(m_lcd_segs)); +} + + + +/******************************************************************************* + I/O +*******************************************************************************/ + +void pmicrodx_state::update_lcd() +{ + // LCD common is analog (voltage level) + const u8 com = population_count_32(m_lcd_com & 3); + const u64 data = (com == 0) ? m_lcd_segs : (com == 2) ? ~m_lcd_segs : 0; + m_display->write_row(0, data); +} + +template +void pmicrodx_state::seg_w(u8 data) +{ + // R0x-R6x: LCD segments + const u8 shift = N * 4; + m_lcd_segs = (m_lcd_segs & ~(u64(0xf << shift))) | (u64(data) << shift); + update_lcd(); +} + +u8 pmicrodx_state::read_buttons() +{ + u8 data = 0; + + for (int i = 0; i < 4; i++) + if (m_inp_mux & m_inputs[i]->read()) + data |= 1 << i; + + return data; +} + +void pmicrodx_state::refresh_irq(u8 mask) +{ + // half of the buttons are tied to MCU interrupt pins + mask &= read_buttons(); + for (int i = 0; i < 2; i++) + m_maincpu->set_input_line(i, BIT(mask, i) ? CLEAR_LINE : ASSERT_LINE); +} + +u16 pmicrodx_state::input_r() +{ + // D0: battery status + u16 data = m_inputs[4]->read() & 1; + + // D2,D3: read buttons + data |= read_buttons() & 0xc; + return ~data; +} + +void pmicrodx_state::control_w(u16 data) +{ + // D1: speaker out + m_dac->write(BIT(data, 1)); + + // D4-D6: input mux + m_inp_mux = ~data >> 4 & 7; + refresh_irq(); + + // D7,D8: LCD common + m_lcd_com = data >> 7 & 3; + + // D9-D15: more LCD segments + m_lcd_segs = (m_lcd_segs & 0x0fff'ffffULL) | (u64(data & 0xfe00) << 19); + update_lcd(); +} + + + +/******************************************************************************* + Input Ports +*******************************************************************************/ + +#define INPUT_CHANGED(x) \ + PORT_CHANGED_MEMBER(DEVICE_SELF, pmicrodx_state, input_changed, x) + +static INPUT_PORTS_START( pmicrodx ) + PORT_START("IN.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) INPUT_CHANGED(0) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A1") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) INPUT_CHANGED(0) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E5") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) INPUT_CHANGED(0) PORT_CODE(KEYCODE_L) PORT_NAME("LV") + + PORT_START("IN.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) INPUT_CHANGED(1) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B2") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) INPUT_CHANGED(1) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F6") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) INPUT_CHANGED(1) PORT_CODE(KEYCODE_T) PORT_NAME("TB") + + PORT_START("IN.2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C3") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G7") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("EN") + + PORT_START("IN.3") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D4") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H8") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CE") + + PORT_START("IN.4") + PORT_CONFNAME( 0x01, 0x01, "Battery Status" ) + PORT_CONFSETTING( 0x00, "Low" ) + PORT_CONFSETTING( 0x01, DEF_STR( Normal ) ) +INPUT_PORTS_END + + + +/******************************************************************************* + Machine Configs +*******************************************************************************/ + +void pmicrodx_state::pmicrodx(machine_config &config) +{ + // basic machine hardware + HD44868(config, m_maincpu, 800'000); // approximation + m_maincpu->write_r<0>().set(FUNC(pmicrodx_state::seg_w<0>)); + m_maincpu->write_r<1>().set(FUNC(pmicrodx_state::seg_w<1>)); + m_maincpu->write_r<2>().set(FUNC(pmicrodx_state::seg_w<2>)); + m_maincpu->write_r<3>().set(FUNC(pmicrodx_state::seg_w<3>)); + m_maincpu->write_r<4>().set(FUNC(pmicrodx_state::seg_w<4>)); + m_maincpu->write_r<5>().set(FUNC(pmicrodx_state::seg_w<5>)); + m_maincpu->write_r<6>().set(FUNC(pmicrodx_state::seg_w<6>)); + m_maincpu->write_d().set(FUNC(pmicrodx_state::control_w)); + m_maincpu->read_d().set(FUNC(pmicrodx_state::input_r)); + + // video hardware + PWM_DISPLAY(config, m_display).set_size(1, 35); + m_display->set_bri_levels(0.05); + config.set_default_layout(layout_cking_pmicrodx); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); + screen.set_refresh_hz(60); + screen.set_size(1920/3, 851/3); + screen.set_visarea_full(); + + // sound hardware + SPEAKER(config, "speaker").front_center(); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); +} + + + +/******************************************************************************* + ROM Definitions +*******************************************************************************/ + +ROM_START( pmicrodx ) + ROM_REGION( 0x2000, "maincpu", 0 ) + ROM_LOAD("chessking_mark_2_hd44868a07", 0x0000, 0x2000, CRC(aef47e60) SHA1(97cb7b51ce354c54c6f0faa903d5bd70d5a108ba) ) + ROM_IGNORE( 0x2000 ) // ignore factory test banks + + ROM_REGION( 74477, "screen", 0 ) + ROM_LOAD("pmicrodx.svg", 0, 74477, CRC(34563496) SHA1(dcca2223cc35d54955caead8ff14e6f96b4155ce) ) +ROM_END + +} // anonymous namespace + + + +/******************************************************************************* + Drivers +*******************************************************************************/ + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +SYST( 1984, pmicrodx, 0, 0, pmicrodx, pmicrodx, pmicrodx_state, empty_init, "Chess King / Intelligent Software", "Pocket Micro De-Luxe", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/handheld/dbridgec.cpp b/src/mame/handheld/dbridgec.cpp new file mode 100644 index 00000000000..21cb3d6cfb8 --- /dev/null +++ b/src/mame/handheld/dbridgec.cpp @@ -0,0 +1,257 @@ +// license:BSD-3-Clause +// copyright-holders:hap +// thanks-to:Sean Riddle +/******************************************************************************* + +Diamond Bridge Computer (model M1011) +Also sold by Nu Vations as Nu Va Bridge Computer (model NV211) + +Hardware notes: +- PCB label: MCL, M1011 +- Hitachi HD44860 @ ~800kHz (33K resistor) +- LCD with custom segments, no sound +- comms jack for playing against another Bridge Computer + +TODO: +- add comms port +- is Diamond Bridge Computer II (model M1021) on similar hardware? + +*******************************************************************************/ + +#include "emu.h" + +#include "cpu/hmcs40/hmcs40.h" +#include "video/pwm.h" + +#include "screen.h" + +// internal artwork +#include "dbridgec.lh" + + +namespace { + +class dbridgec_state : public driver_device +{ +public: + dbridgec_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_display(*this, "display"), + m_inputs(*this, "IN.%u", 0) + { } + + void dbridgec(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(in0_changed) { refresh_irq(); } + +protected: + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD { refresh_irq(); } + +private: + // devices/pointers + required_device m_maincpu; + required_device m_display; + required_ioport_array<4> m_inputs; + + u8 m_inp_mux = 0; + u8 m_lcd_com = 0; + u64 m_lcd_segs = 0; + + // I/O handlers + void update_lcd(); + template void lcd1_w(u8 data); + void lcd2_w(u16 data); + + u8 read_buttons(); + void refresh_irq(); + u16 input_r(); + template void input_w(u8 data); +}; + +void dbridgec_state::machine_start() +{ + save_item(NAME(m_inp_mux)); + save_item(NAME(m_lcd_com)); + save_item(NAME(m_lcd_segs)); +} + + + +/******************************************************************************* + I/O +*******************************************************************************/ + +void dbridgec_state::update_lcd() +{ + const u8 com1 = BIT(m_lcd_com, 4); + const u8 com2 = m_lcd_com & 0xf; + const u64 data = com1 ? m_lcd_segs : ~m_lcd_segs; + + for (int i = 0; i < 4; i++) + m_display->write_row(i, (BIT(com2, i) == com1) ? data : 0); +} + +template +void dbridgec_state::lcd1_w(u8 data) +{ + // R0x-R6x: LCD segments + const u8 shift = N * 4; + m_lcd_segs = (m_lcd_segs & ~(u64(0xf << shift))) | (u64(data) << shift); + update_lcd(); +} + +void dbridgec_state::lcd2_w(u16 data) +{ + // D0-D4: LCD common + m_lcd_com = data & 0x1f; + + // D9,D10,D12-D15: more LCD segments + const u8 segs = (data >> 9 & 3) | (data >> 10 & 0x3c); + m_lcd_segs = (m_lcd_segs & 0x0fff'ffffULL) | u64(segs) << 28; + update_lcd(); + + // D5: comms port +} + +u8 dbridgec_state::read_buttons() +{ + u8 data = 0; + + for (int i = 0; i < 4; i++) + if (m_inp_mux & m_inputs[i]->read()) + data |= 1 << i; + + return data; +} + +void dbridgec_state::refresh_irq() +{ + // right button column goes to MCU INT0 + m_maincpu->set_input_line(0, (read_buttons() & 1) ? CLEAR_LINE : ASSERT_LINE); +} + +u16 dbridgec_state::input_r() +{ + // D6-D8: read buttons + u16 data = read_buttons() << 5 & 0x1c0; + return ~data; + + // D5: comms port +} + +template +void dbridgec_state::input_w(u8 data) +{ + // R4x,R5x: input mux + const u8 shift = N * 4; + m_inp_mux = (m_inp_mux & ~(0xf << shift)) | ((data ^ 0xf) << shift); + refresh_irq(); +} + + + +/******************************************************************************* + Input Ports +*******************************************************************************/ + +#define IN0_CHANGED(x) \ + PORT_CHANGED_MEMBER(DEVICE_SELF, dbridgec_state, in0_changed, 0) + +static INPUT_PORTS_START( dbridgec ) + PORT_START("IN.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) IN0_CHANGED() PORT_CODE(KEYCODE_U) PORT_NAME("Dummy") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) IN0_CHANGED() PORT_CODE(KEYCODE_T) PORT_NAME("Partner") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) IN0_CHANGED() PORT_CODE(KEYCODE_L) PORT_NAME("Level") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) IN0_CHANGED() PORT_CODE(KEYCODE_H) PORT_NAME("Change Side") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) IN0_CHANGED() PORT_CODE(KEYCODE_S) PORT_NAME("Score") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) IN0_CHANGED() PORT_CODE(KEYCODE_R) PORT_NAME("New Rubber") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) IN0_CHANGED() PORT_CODE(KEYCODE_D) PORT_NAME("Deal") + + PORT_START("IN.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_P) PORT_NAME("Pass") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("Double") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("No Trump") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("Clubs") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Diamonds") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Hearts") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) PORT_NAME("Spades") + + PORT_START("IN.2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("A") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("K") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Q") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_J) PORT_NAME("J") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("10") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8") + + PORT_START("IN.3") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7") +INPUT_PORTS_END + + + +/******************************************************************************* + Machine Configs +*******************************************************************************/ + +void dbridgec_state::dbridgec(machine_config &config) +{ + // basic machine hardware + HD44860(config, m_maincpu, 800'000); // approximation + m_maincpu->write_r<0>().set(FUNC(dbridgec_state::lcd1_w<0>)); + m_maincpu->write_r<1>().set(FUNC(dbridgec_state::lcd1_w<1>)); + m_maincpu->write_r<2>().set(FUNC(dbridgec_state::lcd1_w<2>)); + m_maincpu->write_r<3>().set(FUNC(dbridgec_state::lcd1_w<3>)); + m_maincpu->write_r<4>().set(FUNC(dbridgec_state::lcd1_w<4>)); + m_maincpu->write_r<4>().append(FUNC(dbridgec_state::input_w<0>)); + m_maincpu->write_r<5>().set(FUNC(dbridgec_state::lcd1_w<5>)); + m_maincpu->write_r<5>().append(FUNC(dbridgec_state::input_w<1>)); + m_maincpu->write_r<6>().set(FUNC(dbridgec_state::lcd1_w<6>)); + m_maincpu->write_d().set(FUNC(dbridgec_state::lcd2_w)); + m_maincpu->read_d().set(FUNC(dbridgec_state::input_r)); + + // video hardware + PWM_DISPLAY(config, m_display).set_size(4, 34); + m_display->set_bri_levels(0.1); + config.set_default_layout(layout_dbridgec); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); + screen.set_refresh_hz(60); + screen.set_size(1920/1.5, 1068/1.5); + screen.set_visarea_full(); +} + + + +/******************************************************************************* + ROM Definitions +*******************************************************************************/ + +ROM_START( dbridgec ) + ROM_REGION( 0x2000, "maincpu", 0 ) + ROM_LOAD("hd44860_b29.u1", 0x0000, 0x2000, CRC(9ebb51e0) SHA1(0e99f4247ba516cd93bec889faebf1b6ba22f361) ) + ROM_IGNORE( 0x2000 ) // ignore factory test banks + + ROM_REGION( 234761, "screen", 0 ) + ROM_LOAD("dbridgec.svg", 0, 234761, CRC(24834e57) SHA1(3e10afefa6ef112cf1bb339bf9dd25ed0ca4c150) ) +ROM_END + +} // anonymous namespace + + + +/******************************************************************************* + Drivers +*******************************************************************************/ + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +SYST( 1987, dbridgec, 0, 0, dbridgec, dbridgec, dbridgec_state, empty_init, "Diamond", "Bridge Computer (Diamond)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_NODEVICE_LAN ) diff --git a/src/mame/handheld/hh_hmcs40.cpp b/src/mame/handheld/hh_hmcs40.cpp index 7dfb606089d..cf5738aff21 100644 --- a/src/mame/handheld/hh_hmcs40.cpp +++ b/src/mame/handheld/hh_hmcs40.cpp @@ -88,13 +88,13 @@ known chips: *A13 HD44840 1982, CXG Computachess II *A14 HD44840 1982, CXG Computachess II / Advanced Portachess - *B29 HD44860 1987, Diamond Bridge Computer (M1011) + B29 HD44860 1987, Diamond Bridge Computer -> handheld/dbridgec.cpp *B55 HD44860 1987, Saitek Pro Bridge 100 *A04 HD44868 1984, SciSys Rapier - *A07 HD44868 1984, Chess King Pocket Micro Deluxe / Mephisto Teufelchen + A07 HD44868 1984, Chess King Pocket Micro De-Luxe -> chessking/pmicrodx.cpp *A12 HD44868 1985, SciSys Travel Mate II / Pocket Chess / MK 10 / Electronic Trio - *A14 HD44868 1985, SciSys Kasparov Plus + *A14 HD44868 1985, SciSys Kasparov Plus / MK 12 *A16 HD44868 1988, Saitek Pocket Checkers (* means undumped unless noted, @ denotes it's in this driver) diff --git a/src/mame/handheld/hh_ucom4.cpp b/src/mame/handheld/hh_ucom4.cpp index c766bb25259..0ba4dc8a7af 100644 --- a/src/mame/handheld/hh_ucom4.cpp +++ b/src/mame/handheld/hh_ucom4.cpp @@ -2264,14 +2264,14 @@ void mcompgin_state::lcd_w(u8 data) static INPUT_PORTS_START( mcompgin ) PORT_START("IN.0") // port A - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Select") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Deal / Gin") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Discard") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Draw") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Select") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("Deal / Gin") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("Discard") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Draw") PORT_START("IN.1") // port B - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Compare") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Score") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Compare") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("Score") PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END diff --git a/src/mame/ibm/thinkpad600.cpp b/src/mame/ibm/thinkpad600.cpp index 253ce6eedd4..a76c1a9567d 100644 --- a/src/mame/ibm/thinkpad600.cpp +++ b/src/mame/ibm/thinkpad600.cpp @@ -113,6 +113,9 @@ ROM_START(thinkpad600e) ROM_REGION(0x00080, "seeprom", 0) ROM_LOAD( "atmel_24c01a.u98", 0x00000, 0x00080, CRC(7ce51001) SHA1(6f25666373a6373ce0014c04df73a066f4da938b) ) + ROM_REGION(0x00420, "seeprom2", 0) + ROM_LOAD( "at24rf08bt.u99", 0x00000, 0x00420, CRC(c7ce9600) SHA1(4e6ed66250fed838614c3f1f6044fd9a19a2d0de) ) + ROM_REGION(0x00c39, "plds", 0) ROM_LOAD( "atf1500al-modemboard.u12", 0x00000, 0x00c39, CRC(7ecd4b79) SHA1(b69ef5fe227b466f331f863ba20efd7e23056809) ) // On modem PCB ROM_END diff --git a/src/mame/jaleco/acommand.cpp b/src/mame/jaleco/acommand.cpp index fb512842ffc..7cc8dd9ed37 100644 --- a/src/mame/jaleco/acommand.cpp +++ b/src/mame/jaleco/acommand.cpp @@ -1,23 +1,23 @@ // license:BSD-3-Clause // copyright-holders:Angelo Salese -/******************************************************************************************* +/************************************************************************************************** Alien Command (c) 1993 Jaleco -driver by Angelo Salese - Actually same HW as the Cisco Heat ones. TODO: --Understand what "devices" area needs to make this working.It's likely that the upper switches - controls the UFO's and the lower switches the astronauts. --Back tilemap paging is likely to be incorrect. --3D Artworks for the UFO's,Astronauts etc. --Merge to the Cisco Heat driver. +- Understand what "devices" area needs to make this working. +\- Possibly the upper switches controls the UFO's and the lower switches the astronauts. +- 3D Artworks for the UFO's,Astronauts etc. +- Merge sprite chip with jaleco/cischeat.cpp +\- Uses zooming during attract, and needs pdrawgfx. Notes: --The real HW is a redemption machine with two guns, similar to the "Cosmo Gang the Video" -(Namco) redemption version. +- The real HW is a redemption machine with two guns, similar to namco/cgang.cpp. + +bp 237c4,1,{curpc+=0x10;g} ; to skip initial error checks + ; $f009a & $f009c SW state m68k irq table vectors lev 1 : 0x64 : 0000 04f0 - rte @@ -28,7 +28,7 @@ lev 5 : 0x74 : 0000 04f0 - rte lev 6 : 0x78 : 0000 04f0 - rte lev 7 : 0x7c : 0000 04f0 - rte -=========================================================================================== +=================================================================================================== Jaleco Alien Command Redemption Video Game with Guns @@ -55,16 +55,16 @@ JALMR14 BIN 524,288 02-07-99 1:17a JALMR14.BIN JALCF1 BIN 1,048,576 02-07-99 1:11a JALCF1.BIN -*******************************************************************************************/ +**************************************************************************************************/ #include "emu.h" -#include "ms1_tmap.h" - #include "cpu/m68000/m68000.h" #include "machine/timer.h" #include "sound/okim6295.h" +#include "ms1_tmap.h" + #include "emupal.h" #include "screen.h" #include "speaker.h" @@ -76,17 +76,16 @@ namespace { class acommand_state : public driver_device { public: - acommand_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_spriteram(*this, "spriteram"), - m_maincpu(*this, "maincpu"), - m_oki1(*this, "oki1"), - m_oki2(*this, "oki2"), - m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette"), - m_bgtmap(*this, "bgtmap"), - m_txtmap(*this, "txtmap"), - m_digits(*this, "digit%u", 0U) + acommand_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_gfxdecode(*this, "gfxdecode") + , m_palette(*this, "palette") + , m_bgtmap(*this, "bgtmap") + , m_txtmap(*this, "txtmap") + , m_spriteram(*this, "spriteram") + , m_oki(*this, "oki%u", 1U) + , m_digits(*this, "digit%u", 0U) { } void acommand(machine_config &config); @@ -103,23 +102,20 @@ class acommand_state : public driver_device void ext_devices_1_w(uint16_t data); void ext_devices_2_w(uint16_t data); - void ac_unk2_w(uint16_t data); - TILEMAP_MAPPER_MEMBER(bg_scan); - uint32_t screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - TIMER_DEVICE_CALLBACK_MEMBER(acommand_scanline); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + TIMER_DEVICE_CALLBACK_MEMBER(scanline_cb); - void acommand_map(address_map &map) ATTR_COLD; + void main_map(address_map &map) ATTR_COLD; virtual void machine_start() override ATTR_COLD; - required_shared_ptr m_spriteram; required_device m_maincpu; - required_device m_oki1; - required_device m_oki2; required_device m_gfxdecode; required_device m_palette; required_device m_bgtmap; required_device m_txtmap; + required_shared_ptr m_spriteram; + required_device_array m_oki; output_finder<8> m_digits; uint16_t m_7seg0 = 0; @@ -197,7 +193,7 @@ void acommand_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec } -uint32_t acommand_state::screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t acommand_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { // reference has black pen background, as weird it might sound bitmap.fill(m_palette->black_pen(), cliprect); @@ -210,15 +206,6 @@ uint32_t acommand_state::screen_update_acommand(screen_device &screen, bitmap_in } -/******************************************************************************************/ - -/*This is always zero ATM*/ -void acommand_state::ac_unk2_w(uint16_t data) -{ - if(data) - popmessage("UNK-2 enabled %04x",data); -} - /************************************* * * I/O @@ -227,13 +214,13 @@ void acommand_state::ac_unk2_w(uint16_t data) void acommand_state::oki_bank_w(uint8_t data) { - m_oki1->set_rom_bank(data & 0x3); - m_oki2->set_rom_bank((data & 0x30) >> 4); + m_oki[0]->set_rom_bank(data & 0x3); + m_oki[1]->set_rom_bank((data & 0x30) >> 4); } /* 0 1 2 3 4 5 6 7 8 9 a b c d e f*/ -static const uint8_t led_fill[0x10] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x00,0x00,0x00,0x00,0x00}; +static const uint8_t led_fill[0x10] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x00,0x00,0x00,0x00,0x00 }; void acommand_state::output_7seg0_w(offs_t offset, uint16_t data, uint16_t mem_mask) { @@ -293,7 +280,7 @@ uint16_t acommand_state::ext_devices_0_r() void acommand_state::ext_devices_0_w(uint16_t data) { - printf("%04x EXT 0\n",data); + logerror("%04x EXT 0\n",data); m_boss_door = data & 3; m_ufo_lane[0] = (data >> 8) & 0x1f; } @@ -311,32 +298,32 @@ uint16_t acommand_state::ext_devices_1_r() void acommand_state::ext_devices_1_w(uint16_t data) { - //printf("%04x EXT 1\n",data); + //logerror("%04x EXT 1\n",data); m_ufo_lane[1] = (data >> 0) & 0x1f; m_ufo_lane[2] = (data >> 8) & 0x1f; } void acommand_state::ext_devices_2_w(uint16_t data) { - //printf("%04x EXT 2\n",data); + //logerror("%04x EXT 2\n",data); m_ufo_lane[3] = (data >> 0) & 0x1f; m_ufo_lane[4] = (data >> 8) & 0x1f; } void acommand_state::output_lamps_w(uint16_t data) { - machine().bookkeeping().coin_counter_w(0, data & 0x40); - machine().bookkeeping().coin_counter_w(1, data & 0x80); + machine().bookkeeping().coin_counter_w(0, BIT(data, 6)); + machine().bookkeeping().coin_counter_w(1, BIT(data, 7)); // --xx --xx lamps } -void acommand_state::acommand_map(address_map &map) +void acommand_state::main_map(address_map &map) { map(0x000000, 0x03ffff).rom(); map(0x082000, 0x082005).w(m_bgtmap, FUNC(megasys1_tilemap_device::scroll_w)); map(0x082100, 0x082105).w(m_txtmap, FUNC(megasys1_tilemap_device::scroll_w)); - map(0x082208, 0x082209).w(FUNC(acommand_state::ac_unk2_w)); + map(0x082208, 0x082209).noprw(); // watchdog map(0x0a0000, 0x0a3fff).ram().w(m_bgtmap, FUNC(megasys1_tilemap_device::write)).share("bgtmap"); map(0x0b0000, 0x0b3fff).ram().w(m_txtmap, FUNC(megasys1_tilemap_device::write)).share("txtmap"); map(0x0b8000, 0x0bffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); @@ -346,8 +333,8 @@ void acommand_state::acommand_map(address_map &map) map(0x100001, 0x100001).w(FUNC(acommand_state::oki_bank_w)); map(0x100008, 0x100009).portr("IN0").w(FUNC(acommand_state::output_lamps_w)); - map(0x100014, 0x100017).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff); - map(0x100018, 0x10001b).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff); + map(0x100014, 0x100017).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff); + map(0x100018, 0x10001b).rw(m_oki[1], FUNC(okim6295_device::read), FUNC(okim6295_device::write)).umask16(0x00ff); map(0x100040, 0x100041).rw(FUNC(acommand_state::ext_devices_0_r), FUNC(acommand_state::ext_devices_0_w)); map(0x100044, 0x100045).rw(FUNC(acommand_state::ext_devices_1_r), FUNC(acommand_state::ext_devices_1_w)); @@ -394,61 +381,47 @@ static INPUT_PORTS_START( acommand ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_START("DSW") - 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_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW3:1,2,3") + PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) ) + PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW3:4,5,6") + PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x0040, 0x0040, "SW3:7" ) + // Overrides Coinage + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:8") 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_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SW4:1" ) + PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SW4:2" ) + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW4:3") + PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( On ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x0800, 0x0800, "SW4:4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x1000, 0x1000, "SW4:5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x2000, 0x2000, "SW4:6" ) + PORT_DIPUNKNOWN_DIPLOC( 0x4000, 0x4000, "SW4:7" ) + PORT_DIPUNKNOWN_DIPLOC( 0x8000, 0x8000, "SW4:8" ) INPUT_PORTS_END static GFXDECODE_START( gfx_acommand ) GFXDECODE_ENTRY( "gfx3", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x1800, 256 ) GFXDECODE_END -TIMER_DEVICE_CALLBACK_MEMBER(acommand_state::acommand_scanline) +TIMER_DEVICE_CALLBACK_MEMBER(acommand_state::scanline_cb) { int scanline = param; @@ -461,18 +434,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(acommand_state::acommand_scanline) void acommand_state::acommand(machine_config &config) { - /* basic machine hardware */ M68000(config, m_maincpu, 12000000); - m_maincpu->set_addrmap(AS_PROGRAM, &acommand_state::acommand_map); - TIMER(config, "scantimer").configure_scanline(FUNC(acommand_state::acommand_scanline), "screen", 0, 1); + m_maincpu->set_addrmap(AS_PROGRAM, &acommand_state::main_map); + TIMER(config, "scantimer").configure_scanline(FUNC(acommand_state::scanline_cb), "screen", 0, 1); - /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(32*8, 32*8); - screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); - screen.set_screen_update(FUNC(acommand_state::screen_update_acommand)); + // assume same as armchmp2 + screen.set_raw(XTAL(12'000'000)/2,396,0,256,256,16,240); + screen.set_screen_update(FUNC(acommand_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_acommand); @@ -481,17 +450,17 @@ void acommand_state::acommand(machine_config &config) MEGASYS1_TILEMAP(config, m_bgtmap, m_palette, 0x0f00); MEGASYS1_TILEMAP(config, m_txtmap, m_palette, 0x2700); - /* sound hardware */ + // assume amplified stereo SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - OKIM6295(config, m_oki1, 2112000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified - m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 1.0); - m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 1.0); + OKIM6295(config, m_oki[0], 2112000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - OKIM6295(config, m_oki2, 2112000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified - m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 1.0); - m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 1.0); + OKIM6295(config, m_oki[1], 2112000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); } /*************************************************************************** @@ -534,4 +503,4 @@ ROM_END } // anonymous namespace -GAMEL( 1994, acommand, 0, acommand, acommand, acommand_state, empty_init, ROT0, "Jaleco", "Alien Command" , MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_acommand ) +GAMEL( 1994, acommand, 0, acommand, acommand, acommand_state, empty_init, ROT0, "Jaleco", "Alien Command (v2.1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_acommand ) diff --git a/src/mame/jaleco/jalmah.cpp b/src/mame/jaleco/jalmah.cpp index 0235d4c022b..b6617e1c820 100644 --- a/src/mame/jaleco/jalmah.cpp +++ b/src/mame/jaleco/jalmah.cpp @@ -110,12 +110,12 @@ OSC: 12.000MHz #include "emu.h" -#include "ms1_tmap.h" - #include "cpu/m68000/m68000.h" #include "machine/timer.h" #include "sound/okim6295.h" +#include "ms1_tmap.h" + #include "emupal.h" #include "screen.h" #include "speaker.h" diff --git a/src/mame/layout/cking_pmicrodx.lay b/src/mame/layout/cking_pmicrodx.lay new file mode 100644 index 00000000000..817fa634450 --- /dev/null +++ b/src/mame/layout/cking_pmicrodx.lay @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/dbridgec.lay b/src/mame/layout/dbridgec.lay new file mode 100644 index 00000000000..7ec66d15d79 --- /dev/null +++ b/src/mame/layout/dbridgec.lay @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/mcompgin.lay b/src/mame/layout/mcompgin.lay index f0471de694a..45fdee35021 100644 --- a/src/mame/layout/mcompgin.lay +++ b/src/mame/layout/mcompgin.lay @@ -5,179 +5,94 @@ authors:hap --> - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + + - - + + - + + @@ -190,164 +105,232 @@ authors:hap - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/mame.lst b/src/mame/mame.lst index e87dd2001e6..df67a643bbd 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -8212,6 +8212,7 @@ v4bulblx // Bullion Blox v4bulblxa v4bulblxb v4bulblxc +v4bulblxd v4cmaze // The Crystal Maze (v1.3) v4cmaze2 // The New Crystal Maze Featuring Ocean Zone v4cmaze2_amld // @@ -16238,6 +16239,9 @@ tascr30g @source:chessking/master.cpp master +@source:chessking/pmicrodx.cpp +pmicrodx + @source:chessking/triomphe.cpp triomphe @@ -19024,6 +19028,9 @@ newbrainmd // @source:handheld/chessking.cpp chesskng // +@source:handheld/dbridgec.cpp +dbridgec + @source:handheld/gameking.cpp gamekin3 // gameking // @@ -19983,6 +19990,7 @@ rtpc025 // IBM RT PC Model 025 rtpca25 // IBM RT PC Model A25 @source:ibm/thinkpad600.cpp +thinkpad600 // IBM Thinkpad 600 thinkpad600e // IBM Thinkpad 600E @source:ibm/thinkpad8xx.cpp @@ -31020,8 +31028,9 @@ fiches // fiches12 // @source:misc/mirax.cpp -mirax // (c) 1985 Current Technologies -miraxa // (c) 1985 Current Technologies +mirax // (c) 1985 Current Technology, Inc. +miraxa // (c) 1985 Current Technology, Inc. +miraxb // (c) 1985 Current Technology, Inc. @source:misc/mirderby.cpp mirderby // (c) 1988 Home Data? diff --git a/src/mame/misc/mirax.cpp b/src/mame/misc/mirax.cpp index 77b965b56da..d8675b545f2 100644 --- a/src/mame/misc/mirax.cpp +++ b/src/mame/misc/mirax.cpp @@ -2,7 +2,7 @@ // copyright-holders:Angelo Salese, Tomasz Slanina, Olivier Galibert /* **************************************************** -Mirax (C)1985 Current Technologies +Mirax (C)1985 Current Technology, Inc. driver by Tomasz Slanina analog[AT]op[DOT]pl @@ -97,6 +97,32 @@ Stephh's notes (based on the games Z80 code and some tests) : - Same ingame bug as in 'mirax' when you reach level 100 (of course, it will display "LUXORI UNIT" instead of "MIRAX CITY" on "presentation" screen). + +Roberto Fresca notes about set 'miraxb' + + - The game starts without a self test. + + Stages: + + stages 01 to 10 : "MIRAX" + stages 11 to 20 : "RUTHIN" + stages 21 to 30 : "GORGAN" + stages 31 to 40 : "PEMBAY" + stages 41 to 50 : "URMIA" + stages 51 to 60 : "VENLO" + stages 61 to 70 : "OHRE" + stages 71 to 80 : "DESBOM" + stages 81 to 90 : "XELUN" + stages 91 to 99 : "MURBO" + + After the stage 99, the game jumps to stage 1 (take as 100), where you reach the city. + even displaying the wrong text. Cities appear at stage 1, 11, 21, etc... + Once you reach again the stage 99, you'll get the stage 1 again, + but the city will displace to the stage 2, 12, 22, etc... Always with wrong text on screen. + + Indeed it's a bug of the game. + + ************************************************ */ @@ -572,6 +598,35 @@ ROM_START( miraxa ) ROM_LOAD( "mrb3.prm", 0x0020, 0x0020, CRC(e3f3d0f5) SHA1(182b06c9db5bec1e3030f705247763bd2380ba83) ) ROM_END +ROM_START( miraxb ) + ROM_REGION( 0xc000, "maincpu", ROMREGION_ERASE00 ) // put decrypted code there + + ROM_REGION( 0xc000, "data_code", 0 ) // encrypted code for the main cpu + ROM_LOAD( "10.p5", 0x0000, 0x4000, CRC(680cd519) SHA1(1cf4ef5a3e6907524b1fd874dc5412f95e4b5856) ) + ROM_LOAD( "11.r5", 0x4000, 0x4000, CRC(a518c8b0) SHA1(e974c5eaba7d8135b5c3d4606ce81f88550eb657) ) + ROM_LOAD( "12.s5", 0x8000, 0x4000, CRC(ed1f6c30) SHA1(360a46c412c93274a763f35493257f746f79bb43) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "13.r5", 0x0000, 0x2000, CRC(cd2d52dc) SHA1(0d4181dc68beac338f47a2065c7b755008877896) ) + + ROM_REGION( 0xc000, "gfx1", 0 ) + ROM_LOAD( "4.e3", 0x0000, 0x4000, CRC(0cede01f) SHA1(c723dd8ee9dc06c94a7fe5d5b5bccc42e2181af1) ) + ROM_LOAD( "6.h3", 0x4000, 0x4000, CRC(58221502) SHA1(daf5c508939b44616ca76308fc33f94d364ed587) ) + ROM_LOAD( "8.k3", 0x8000, 0x4000, CRC(6dbc2961) SHA1(5880c28f1ef704fee2d625a42682c7d65613acc8) ) + + ROM_REGION( 0x18000, "gfx2", 0 ) + ROM_LOAD( "1.e2", 0x04000, 0x4000, CRC(2cf5d8b7) SHA1(f66bce4d413a48f6ae07974870dc0f31eefa68e9) ) + ROM_LOAD( "2.f2", 0x0c000, 0x4000, CRC(1f42c7fa) SHA1(33e56c6ddf7676a12f57de87ec740c6b6eb1cc8c) ) + ROM_LOAD( "3.h2", 0x14000, 0x4000, CRC(cbaff4c6) SHA1(2dc4a1f51b28e98be0cfb5ab7576047c748b6728) ) + ROM_LOAD( "5.f3", 0x00000, 0x4000, CRC(14b1ca85) SHA1(775a4c81a81b78490d45095af31e24c16886f0a2) ) + ROM_LOAD( "7.i3", 0x08000, 0x4000, CRC(20fb2099) SHA1(da6bbd5d2218ba49b8ef98e7affdcab912f84ade) ) + ROM_LOAD( "9.l3", 0x10000, 0x4000, CRC(918487aa) SHA1(47ba6914722a253f65c733b5edff4d15e73ea6c2) ) + + ROM_REGION( 0x0060, "proms", 0 ) + ROM_LOAD( "mra3.prm", 0x0000, 0x0020, CRC(ae7e1a63) SHA1(f5596db77c1e352ef7845465db3e54e19cd5df9e) ) + ROM_LOAD( "mrb3.prm", 0x0020, 0x0020, CRC(e3f3d0f5) SHA1(182b06c9db5bec1e3030f705247763bd2380ba83) ) +ROM_END + void mirax_state::init_mirax() { @@ -591,5 +646,6 @@ void mirax_state::init_mirax() } // anonymous namespace -GAME( 1985, mirax, 0, mirax, mirax, mirax_state, init_mirax, ROT90, "Current Technologies", "Mirax (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, miraxa, mirax, mirax, miraxa, mirax_state, init_mirax, ROT90, "Current Technologies", "Mirax (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, mirax, 0, mirax, mirax, mirax_state, init_mirax, ROT90, "Current Technology, Inc.", "Mirax (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, miraxa, mirax, mirax, miraxa, mirax_state, init_mirax, ROT90, "Current Technology, Inc.", "Mirax (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, miraxb, mirax, mirax, miraxa, mirax_state, init_mirax, ROT90, "Current Technology, Inc.", "Mirax (set 3)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/saitek/minichess.cpp b/src/mame/saitek/minichess.cpp index 4512f00ccdc..1377e5c304c 100644 --- a/src/mame/saitek/minichess.cpp +++ b/src/mame/saitek/minichess.cpp @@ -76,7 +76,7 @@ class mini_state : public driver_device TIMER_DEVICE_CALLBACK_MEMBER(computing) { m_computing = 1; } - void update_display(); + void update_lcd(); template void seg_w(u8 data); void mux_w(u16 data); u16 input_r(); @@ -98,7 +98,7 @@ void mini_state::machine_start() I/O *******************************************************************************/ -void mini_state::update_display() +void mini_state::update_lcd() { u8 data = (m_lcd_select & 1) ? (m_lcd_data ^ 0xff) : m_lcd_data; data = bitswap<8>(data,2,4,6,7,5,1,0,3); @@ -108,9 +108,9 @@ void mini_state::update_display() template void mini_state::seg_w(u8 data) { - // R2x,R3x: lcd segment data + // R2x,R3x: LCD segment data m_lcd_data = (m_lcd_data & ~(0xf << (N*4))) | (data << (N*4)); - update_display(); + update_lcd(); } void mini_state::mux_w(u16 data) @@ -129,7 +129,7 @@ void mini_state::mux_w(u16 data) } m_lcd_select = sel; - update_display(); + update_lcd(); } u16 mini_state::input_r() diff --git a/src/mame/saitek/superstar.cpp b/src/mame/saitek/superstar.cpp index 1df185ea3c7..a1e9ed0d2d3 100644 --- a/src/mame/saitek/superstar.cpp +++ b/src/mame/saitek/superstar.cpp @@ -28,8 +28,9 @@ Superstar 36K: - 32KB ROM (custom label, same program as tstar432), extension ROM slot - piezo is very low pitch, this is normal -There are 2 versions of Turbostar 432, the 2nd one has a lighter shade and -the top-right is gray instead of red. It came with the KSO ROM included. +There are 2 versions of Turbostar 432, the 2nd Kasparov brand version has +a lighter shade and the top-right is gray instead of red. It came with the +KSO ROM included. I.C.D. (a reseller in USA, NY) also sold a version overclocked to 5.53MHz, and named it Turbostar 540+. The ROM is unmodified, so the internal chess diff --git a/src/mame/saitek/turbo16k.cpp b/src/mame/saitek/turbo16k.cpp index d09637013cc..c9bdc9ca65a 100644 --- a/src/mame/saitek/turbo16k.cpp +++ b/src/mame/saitek/turbo16k.cpp @@ -3,7 +3,7 @@ // thanks-to:Sean Riddle /******************************************************************************* -SciSys Turbo 16K family +SciSys Kasparov Turbo 16K family These chesscomputers are all on similar hardware. The chess engine is by Julio Kaplan and Craig Barnes. @@ -515,8 +515,8 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1986, turbo16k, 0, 0, turbo16k, turbo16k, turbo16k_state, empty_init, "SciSys / Heuristic Software", "Turbo 16K", MACHINE_SUPPORTS_SAVE ) -SYST( 1986, compan3, turbo16k, 0, compan3, compan3, turbo16k_state, empty_init, "SciSys / Heuristic Software", "Companion III", MACHINE_SUPPORTS_SAVE ) +SYST( 1986, turbo16k, 0, 0, turbo16k, turbo16k, turbo16k_state, empty_init, "SciSys / Heuristic Software", "Kasparov Turbo 16K", MACHINE_SUPPORTS_SAVE ) +SYST( 1986, compan3, turbo16k, 0, compan3, compan3, turbo16k_state, empty_init, "SciSys / Heuristic Software", "Kasparov Companion III", MACHINE_SUPPORTS_SAVE ) SYST( 1988, conquist, 0, 0, conquist, conquist, conquist_state, empty_init, "Saitek / Heuristic Software", "Kasparov Conquistador", MACHINE_SUPPORTS_SAVE ) SYST( 1988, tmate, conquist, 0, tmate, tmate, conquist_state, empty_init, "Saitek / Heuristic Software", "Kasparov Team-Mate", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/sinclair/beta_m.cpp b/src/mame/sinclair/beta_m.cpp index 0013cde772a..05c3bda085d 100644 --- a/src/mame/sinclair/beta_m.cpp +++ b/src/mame/sinclair/beta_m.cpp @@ -208,13 +208,16 @@ void beta_disk_device::motors_control() void beta_disk_device::floppy_formats(format_registration &fr) { fr.add_mfm_containers(); + fr.add_pc_formats(); fr.add(FLOPPY_TRD_FORMAT); } static void beta_disk_floppies(device_slot_interface &device) { + device.option_add("525hd", FLOPPY_525_HD); device.option_add("525qd", FLOPPY_525_QD); device.option_add("35hd", FLOPPY_35_HD); + device.option_add("35dd", FLOPPY_35_DD); } diff --git a/src/mame/sinclair/sprinter.cpp b/src/mame/sinclair/sprinter.cpp index 65d5bb20209..a636f07be65 100644 --- a/src/mame/sinclair/sprinter.cpp +++ b/src/mame/sinclair/sprinter.cpp @@ -56,8 +56,6 @@ Sprinter Sp2000 (Peters Plus Ltd) #include "speaker.h" #include "tilemap.h" -#include - #include "sprinter.lh" @@ -127,6 +125,7 @@ class sprinter_state : public spectrum_128_state virtual TIMER_CALLBACK_MEMBER(irq_on) override; virtual TIMER_CALLBACK_MEMBER(irq_off) override; TIMER_CALLBACK_MEMBER(cbl_tick); + TIMER_CALLBACK_MEMBER(acc_tick); u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void screen_update_graph(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -142,20 +141,17 @@ class sprinter_state : public spectrum_128_state private: enum accel_state : u8 { - OFF = 0, // ld b,b - FILL, // ld c,c - SET_BUFFER, // ld d,d - FILL_VERT, // ld e,e - DOUBLE, // ld h,h - COPY, // ld l,l - OFF_HALT, // halt - COPY_VERT, // ld a,a - MODE_AND = 0xa6, // and (hl) MODE_XOR = 0xae, // xor (hl) MODE_OR = 0xb6, // or (hl) MODE_NOP = 0xbe // cp (hl) }; + enum access_state : u8 + { + ACCEL_OFF = 0, + ACCEL_GO, + ACCEL_ON + }; static constexpr XTAL X_SP = 42_MHz_XTAL; // TODO X1 after spectrumless @@ -196,16 +192,18 @@ class sprinter_state : public spectrum_128_state void update_int(bool recalculate); u8 isa_r(offs_t offset); void isa_w(offs_t offset, u8 data); + void do_mem_wait(u8 cpu_taken); + void check_accel(bool is_read, offs_t offset, u8 &data); void accel_control_r(u8 data); - void accel_r_tap(u16 offset, u8 &data); - void accel_w_tap(u16 offset, u8 &data); + void do_accel_block(bool is_read); + void accel_mem_r(offs_t offset); + void accel_mem_w(offs_t offset, u8 data); u8 &accel_buffer(u8 idx); void update_accel_buffer(u8 idx, u8 data); u8 kbd_fe_r(offs_t offset); void on_kbd_data(int state); - void do_cpu_wait(bool is_io = false); required_device m_rtc; required_device_array m_ata; @@ -235,7 +233,11 @@ class sprinter_state : public spectrum_128_state u8 m_ram_pages[0x40] = {}; // 0xc0 - 0xff u16 m_pages[4] = {}; // internal state for faster calculations - bool m_z80_m1; + bool m_z80_m1; + offs_t m_z80_addr; + u8 m_z80_data; + bool m_deferring; + bool m_skip_write; std::list> m_ints; u8 m_conf; @@ -267,16 +269,17 @@ class sprinter_state : public spectrum_128_state u8 m_ata_data_latch; // Accelerator - bool m_skip_write; u8 m_prf_d; + u8 m_rgacc; u8 m_acc_cnt; u8 m_accel_buffer[256] = {}; bool m_alt_acc; u16 m_aagr; u8 m_xcnt; u8 m_xagr; - accel_state m_acc_dir; + u8 m_acc_dir; accel_state m_fn_acc; + access_state m_access_state; // Covox Blaster u8 m_cbl_xx; @@ -285,6 +288,7 @@ class sprinter_state : public spectrum_128_state u8 m_cbl_wa; bool m_cbl_wae; emu_timer *m_cbl_timer = nullptr; + emu_timer *m_acc_timer = nullptr; bool m_hold_irq; }; @@ -544,12 +548,12 @@ u8 sprinter_state::dcp_r(offs_t offset) if (!machine().side_effects_disabled()) { - do_cpu_wait(true); if (((offset & 0x7f) == 0x7b)) { m_cash_on = BIT(offset, 7); update_memory(); } + do_mem_wait(4); } const u16 dcp_offset = (BIT(m_cnf, 3, 2) << 12) | (0 << 11) | (m_dos << 10) | (1 << 9) | (BIT(offset, 14, 2) << 7) | (BIT(offset, 13) << 4) | (BIT(offset, 7) << 3) | (offset & 0x67); @@ -659,8 +663,6 @@ void sprinter_state::dcp_w(offs_t offset, u8 data) if (m_starting) return; - do_cpu_wait(true); - if ((offset & 0xbf) == 0x3c) { m_rom_sys = BIT(~offset, 6); @@ -674,6 +676,7 @@ void sprinter_state::dcp_w(offs_t offset, u8 data) m_sys_pg |= BIT(m_rom_rg, 4); update_memory(); } + do_mem_wait(4); const u16 dcp_offset = (BIT(m_cnf, 3, 2) << 12) | (0 << 11) | (m_dos << 10) | (0 << 9) | (BIT(offset, 14, 2) << 7) | (BIT(offset, 13) << 4) | (BIT(offset, 7) << 3) | (offset & 0x67); const u8 dcpp = m_dcp_location[dcp_offset]; @@ -883,162 +886,205 @@ void sprinter_state::accel_control_r(u8 data) if ((((data & 0x1b) == 0x00) || ((data & 0x1b) == 0x09) || ((data & 0x1b) == 0x12) || ((data & 0x1b) == 0x1b)) && (((data & 0xe4) == 0x40) || ((data & 0xe4) == 0x64))) { - m_acc_dir = ((data & 7) == OFF_HALT) ? OFF : static_cast(data & 7); + switch(data & 7) + { + case 0: m_acc_dir = 0b00000000; break; // LD B,B + case 1: m_acc_dir = 0b00100101; break; // LD C,C % % fill by constant + case 2: m_acc_dir = 0b00001001; break; // LD D,D % % load count accelerator + case 3: m_acc_dir = 0b00010101; break; // LD E,E % % fill by constant VERTICAL + case 4: m_acc_dir = 0b01000001; break; // LD H,H % % duble byte fn + case 5: m_acc_dir = 0b00100111; break; // LD L,L % % copy line + case 6: m_acc_dir = 0b00000000; break; // HALT + case 7: m_acc_dir = 0b00010111; break; // LD A,A % % copy line VERTICAL + } m_fn_acc = MODE_NOP; } - else { + else + { const accel_state state_candidate = static_cast(data); switch(state_candidate) { - case MODE_AND: - case MODE_XOR: - case MODE_OR: - m_fn_acc = state_candidate; - break; - default: - break; + case MODE_AND: + case MODE_XOR: + case MODE_OR: + m_fn_acc = state_candidate; + break; + default: + break; } } } m_prf_d = is_prefix; } -void sprinter_state::accel_r_tap(u16 offset, u8 &data) +TIMER_CALLBACK_MEMBER(sprinter_state::acc_tick) { - const std::string_view m{(m_fn_acc == MODE_AND) ? "&" : (m_fn_acc == MODE_OR) ? "|" : (m_fn_acc == MODE_XOR) ? "^" : ""}; - if (m_acc_dir == SET_BUFFER) + const bool is_block_op = BIT(m_acc_dir, 2); + if (m_access_state == ACCEL_GO) { - m_acc_cnt = data; - LOGACCEL("Accel buffer: %d\n", m_acc_cnt); + m_acc_cnt = m_rgacc; + m_access_state = ACCEL_ON; } - else if (m_pages[offset >> 14] & BANK_RAM_MASK) // block ops RAM only + + const bool is_read = param & 1; + if (is_block_op) { - const u16 acc_cnt = m_acc_cnt ? m_acc_cnt : 256; - if (m_acc_dir == COPY) - { - LOGACCEL("Accel rCOPY: %s%02x\n", m, offset); - for (auto i = 0; i < acc_cnt; i++) - { - if (i && !machine().side_effects_disabled()) - do_cpu_wait(); - const u16 addr = offset + i; - data = (m_pages[addr >> 14] & BANK_RAM_MASK) ? ram_r(addr) : 0xff; - update_accel_buffer(i, data); - } - } - else if (m_acc_dir == COPY_VERT) - { - LOGACCEL("Accel rCOPY_GR: %s%02x (%x)\n", m, offset, m_port_y); - for (auto i = 0; i < acc_cnt; i++) - { - if (i && !machine().side_effects_disabled()) - do_cpu_wait(); - data = ram_r(offset); - update_accel_buffer(i, data); - m_port_y++; - } - } - else if (m_acc_dir == FILL_VERT) - m_port_y += acc_cnt; + do_accel_block(is_read); + } + if (BIT(m_acc_dir, 3)) + { + m_rgacc = m_z80_data; + LOGACCEL("Accel buffer: %d\n", m_rgacc ? m_rgacc : 256); + } + else if (BIT(m_acc_dir, 6) && !is_read) + { + accel_mem_w(m_z80_addr ^ 1, m_z80_data); + } + + if (m_acc_cnt == 1 || !is_block_op) + { + m_acc_timer->reset(); + m_access_state = ACCEL_OFF; + m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE); + } + else + { + m_acc_timer->adjust(attotime::from_ticks(6, X_SP), is_read); + m_acc_cnt--; } } -void sprinter_state::accel_w_tap(u16 offset, u8 &data) +void sprinter_state::check_accel(bool is_read, offs_t offset, u8 &data) { - if (m_acc_dir == SET_BUFFER) + const bool is_ram = m_pages[BIT(offset, 14, 2)] & BANK_RAM_MASK; + if (is_read && m_in_out_cmd && !m_z80_m1) { - m_acc_cnt = data; - LOGACCEL("Accel buffer: %d\n", m_acc_cnt); + if (data == 0x1f && is_ram) + data = 0x0f; + m_in_out_cmd = false; } - else if (m_pages[BIT(offset, 14, 2)] & BANK_RAM_MASK) // block ops RAM only + + const bool accel_go_case = m_access_state == ACCEL_OFF && !m_z80_m1 && m_acc_dir && acc_ena(); + if (is_ram && (!accel_go_case || m_deferring)) { - const u16 acc_cnt = m_acc_cnt ? m_acc_cnt : 256; - if (m_acc_dir == FILL) + do_mem_wait(3); + } + if (accel_go_case) + { + if (!m_deferring) { - LOGACCEL("Accel wFILL: %02x\n", offset); - for (auto i = 0; i < acc_cnt; i++) + m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); + m_access_state = ACCEL_GO; + m_acc_timer->adjust(attotime::from_ticks(6, X_SP), is_read); + m_z80_addr = offset; + m_z80_data = data; + + if (BIT(m_acc_dir, 2)) { - const u16 addr = offset + i; - if ((m_pages[addr >> 14] & BANK_RAM_MASK) && (~m_pages[addr >> 14] & BANK_WRDISBL_MASK)) - ram_w(addr, data); + m_skip_write = !is_read; + m_maincpu->defer_access(); + m_deferring = true; } } - else if (m_acc_dir == FILL_VERT) + else { - LOGACCEL("Accel wFILL_VERT: %02x (%x)\n", offset, m_port_y); - for (auto i = 0; i < acc_cnt; i++) + if (is_read) + { + data = m_z80_data; + } + else if (is_ram) { - ram_w(offset, data); - m_port_y++; + m_skip_write = true; } + m_deferring = false; } - else if (m_acc_dir == DOUBLE) + } +} + +void sprinter_state::do_accel_block(bool is_read) +{ + const bool ram_wr = BIT(m_acc_dir, 1); + if (is_read) + { + accel_mem_r(m_z80_addr); + if (ram_wr) { - ram_w(offset, data); - ram_w(offset ^ 1, data); + update_accel_buffer(m_acc_cnt, m_z80_data); } - else if (m_acc_dir == COPY) + } + else + { + if (ram_wr) { - LOGACCEL("Accel wCOPY: %02x\n", offset); - for (auto i = 0; i < acc_cnt; i++) + m_z80_data = accel_buffer(m_acc_cnt); + + const u8 pg = m_pages[BIT(m_z80_addr, 14, 2)]; + if (pg == 0xfd) { - const u16 addr = offset + i; - if ((m_pages[addr >> 14] & BANK_RAM_MASK) && (~m_pages[addr >> 14] & BANK_WRDISBL_MASK)) + if (!cbl_mode16()) { - data = accel_buffer(i); - ram_w(addr, data); + m_cbl_data[m_cbl_wa++] = (m_z80_data << 8); + } + else + { + if (m_cbl_wae) + m_cbl_data[m_cbl_wa] = m_z80_data; + else + { + m_cbl_data[m_cbl_wa] |= ((m_z80_data ^ 0x80) << 8); + m_cbl_wa++; + } + m_cbl_wae = !m_cbl_wae; } } } - else if (m_acc_dir == COPY_VERT) - { - LOGACCEL("Accel wCOPY_VERT: %02x (%x)\n", offset, m_port_y); - for (auto i = 0; i < acc_cnt; i++) - { - data = accel_buffer(i); - ram_w(offset, data); - m_port_y++; - } - } - else - return; + accel_mem_w(m_z80_addr, m_z80_data); + } - m_skip_write = true; + if (BIT(m_acc_dir, 4)) // graph line + m_port_y++; + else + m_z80_addr++; +} + +void sprinter_state::accel_mem_r(offs_t offset) +{ + if (m_pages[BIT(offset, 14, 2)] & BANK_RAM_MASK) + { + m_z80_data = m_program.read_byte(offset); + } +} + +void sprinter_state::accel_mem_w(offs_t offset, u8 data) +{ + if (~m_pages[BIT(offset, 14, 2)] & (BANK_FASTRAM_MASK | BANK_ISA_MASK | BANK_WRDISBL_MASK)) + { + m_program.write_byte(offset, data); } } u8 &sprinter_state::accel_buffer(u8 idx) { - u8 ram_adr = m_acc_cnt - idx; if (m_alt_acc) { - ram_adr = m_xcnt; + idx = m_xcnt; const u16 xcnt_agr = ((m_xcnt << 8) | m_xagr) + m_aagr; m_xcnt = xcnt_agr >> 8; m_xagr = xcnt_agr & 0xff; } - return m_accel_buffer[ram_adr]; + return m_accel_buffer[idx]; } void sprinter_state::update_accel_buffer(u8 idx, u8 data) { switch (m_fn_acc) { - case MODE_AND: - accel_buffer(idx) &= data; - break; - case MODE_OR: - accel_buffer(idx) |= data; - break; - case MODE_XOR: - accel_buffer(idx) ^= data; - break; - case MODE_NOP: - accel_buffer(idx) = data; - break; - default: - assert(false); + case MODE_AND: accel_buffer(idx) &= data; break; + case MODE_OR: accel_buffer(idx) |= data; break; + case MODE_XOR: accel_buffer(idx) ^= data; break; + case MODE_NOP: accel_buffer(idx) = data; break; + default: assert(false); break; } } @@ -1078,7 +1124,6 @@ void sprinter_state::ram_w(offs_t offset, u8 data) m_skip_write = false; return; } - do_cpu_wait(); const u8 bank = BIT(offset, 14, 2); const u8 page = m_pages[bank] & 0xff; @@ -1107,23 +1152,6 @@ void sprinter_state::ram_w(offs_t offset, u8 data) vram_w(vxa, data); } } - else if ((m_acc_dir == COPY) && (page == 0xfd)) - { - if (!cbl_mode16()) - m_cbl_data[m_cbl_wa++] = (data << 8); - else - { - if (m_cbl_wae) - m_cbl_data[m_cbl_wa] = data; - else - { - m_cbl_data[m_cbl_wa] |= ((data ^ 0x80) << 8); - m_cbl_wa++; - } - m_cbl_wae = !m_cbl_wae; - } - } - reinterpret_cast(m_bank_ram[bank]->base())[offset & 0x3fff] = data; } } @@ -1279,30 +1307,15 @@ void sprinter_state::init_taps() { if (!machine().side_effects_disabled()) { - if (m_in_out_cmd && !m_z80_m1) - { - if (data == 0x1f && (m_pages[BIT(offset, 14, 2)] & BANK_RAM_MASK)) - data = 0x0f; - m_in_out_cmd = false; - } - if (!(m_pages[BIT(offset, 14, 2)] & (BANK_FASTRAM_MASK | BANK_ISA_MASK))) // ROM+RAM - do_cpu_wait(); - if(!m_z80_m1 && acc_ena() && (m_acc_dir != OFF)) - accel_r_tap(offset, data); + check_accel(true, offset, data); } }); prg.install_write_tap(0x10000, 0x1ffff, "accel_write", [this](offs_t offset, u8 &data, u8 mem_mask) { - if (m_in_out_cmd && !m_z80_m1) + if (!machine().side_effects_disabled()) { - if (data == 0x1f && (m_pages[BIT(offset, 14, 2)] & BANK_RAM_MASK)) - data = 0x0f; - m_in_out_cmd = false; + check_accel(false, offset, data); } - if (!(m_pages[BIT(offset, 14, 2)] & 0xff00)) // ROM only, RAM(w) applies waits manually - do_cpu_wait(); - if (!m_z80_m1 && acc_ena() && (m_acc_dir != OFF)) - accel_w_tap(offset, data); }); } @@ -1318,6 +1331,10 @@ void sprinter_state::machine_start() save_item(NAME(m_ram_pages)); save_item(NAME(m_pages)); save_item(NAME(m_z80_m1)); + save_item(NAME(m_z80_addr)); + save_item(NAME(m_z80_data)); + save_item(NAME(m_deferring)); + save_item(NAME(m_skip_write)); save_item(NAME(m_conf)); save_item(NAME(m_conf_loading)); save_item(NAME(m_starting)); @@ -1343,16 +1360,17 @@ void sprinter_state::machine_start() save_item(NAME(m_in_out_cmd)); save_item(NAME(m_ata_selected)); save_item(NAME(m_ata_data_latch)); - save_item(NAME(m_skip_write)); save_item(NAME(m_prf_d)); + save_item(NAME(m_rgacc)); save_item(NAME(m_acc_cnt)); save_item(NAME(m_accel_buffer)); save_item(NAME(m_alt_acc)); save_item(NAME(m_aagr)); save_item(NAME(m_xcnt)); save_item(NAME(m_xagr)); - //save_item(NAME(m_acc_dir)); + save_item(NAME(m_acc_dir)); //save_item(NAME(m_fn_acc)); + //save_item(NAME(m_access_state)); save_item(NAME(m_cbl_xx)); save_item(NAME(m_cbl_data)); save_item(NAME(m_cbl_cnt)); @@ -1390,10 +1408,13 @@ void sprinter_state::machine_start() void sprinter_state::machine_reset() { - m_cbl_timer->adjust(attotime::never); + m_acc_timer->reset(); + m_cbl_timer->reset(); spectrum_128_state::machine_reset(); + m_deferring = false; + m_skip_write = false; m_starting = 1; m_dos = 1; // off m_rom_sys = 0; @@ -1407,9 +1428,9 @@ void sprinter_state::machine_reset() m_cash_on = 0; m_isa_addr_ext = 0; - m_skip_write = false; + m_access_state = ACCEL_OFF; m_prf_d = false; - m_acc_dir = OFF; + m_acc_dir = 0; m_alt_acc = 0; m_cbl_xx = 0; @@ -1484,6 +1505,7 @@ void sprinter_state::video_start() m_contention_pattern = {}; init_taps(); + m_acc_timer = timer_alloc(FUNC(sprinter_state::acc_tick), this); m_cbl_timer = timer_alloc(FUNC(sprinter_state::cbl_tick), this); } @@ -1542,14 +1564,13 @@ void sprinter_state::on_kbd_data(int state) } } -void sprinter_state::do_cpu_wait(bool is_io) +void sprinter_state::do_mem_wait(u8 cpu_taken = 0) { - if ((m_turbo && m_turbo_hard)) + if (m_turbo && m_turbo_hard) { - u8 count = is_io ? 4 : 3; - const u8 over = m_maincpu->total_cycles() % count; - count = count + (over ? (count - over) : 0); - m_maincpu->adjust_icount(-count); + u8 over = m_maincpu->total_cycles() % 6; + over = over ? (6 - over) : 0; + m_maincpu->adjust_icount(-(over + (6 - cpu_taken))); } } @@ -1758,13 +1779,13 @@ void sprinter_state::sprinter(machine_config &config) m_maincpu->set_irq_acknowledge_callback(NAME([](device_t &, int){ return 0xff; })); m_maincpu->irqack_cb().set(FUNC(sprinter_state::irq_off)); - ISA8(config, m_isa[0], 0); + ISA8(config, m_isa[0], X_SP / 5); m_isa[0]->set_custom_spaces(); zxbus_device &zxbus(ZXBUS(config, "zxbus", 0)); zxbus.set_iospace(m_isa[0], isa8_device::AS_ISA_IO); ZXBUS_SLOT(config, "zxbus2isa", 0, "zxbus", zxbus_cards, nullptr); - ISA8(config, m_isa[1], 0); + ISA8(config, m_isa[1], X_SP / 5); m_isa[1]->set_custom_spaces(); ISA8_SLOT(config, "isa8", 0, m_isa[1], pc_isa8_cards, nullptr, false); diff --git a/src/mame/skeleton/bullion2.cpp b/src/mame/skeleton/bullion2.cpp index 248c8f85fde..5f10d805866 100644 --- a/src/mame/skeleton/bullion2.cpp +++ b/src/mame/skeleton/bullion2.cpp @@ -30,10 +30,10 @@ DIP1 -> |ON |HOPPER| default ON DIP2 | |OFF|PULSES| - DIP3 | + DIP3 | DIP4 | |ON |DEMO SOUND | default ON DIP5 | /->|OFF|NO DEMO SOUND| - DIP6 --/ + DIP6 --/ DIP7 --> |OFF |OFF |ON |ON | default ON DIP8 --> |OFF |ON |OFF |ON | default ON |LONGER |LONG |SHORT |SHORTER| @@ -46,14 +46,16 @@ Plug B = 80% default Plug C = 82% Plug D = 84% - + Complete manual (for both Bullion 2 and Bullion 3) with schematics and dip switches can be downloaded from: https://www.recreativas.org/manuales/tragaperras */ #include "emu.h" + #include "cpu/z80/z80.h" #include "sound/sn76496.h" + #include "speaker.h" @@ -64,7 +66,7 @@ class bullion2_state : public driver_device public: bullion2_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), + m_maincpu(*this, "maincpu"), m_sn(*this, "sn76489") { } @@ -74,8 +76,11 @@ class bullion2_state : public driver_device virtual void machine_start() override; virtual void machine_reset() override; +private: required_device m_maincpu; required_device m_sn; + + void program_map(address_map &map); }; void bullion2_state::machine_start() @@ -86,6 +91,15 @@ void bullion2_state::machine_reset() { } +void bullion2_state::program_map(address_map &map) +{ + map(0x0000, 0x2fff).rom(); + map(0x4000, 0x43ff).ram(); + // map(0x4804, 0x4804).rw // ?? + // map(0x4900, 0x4907).w // latch for lamps and reels control? + // map(0x4b00, 0x4b00).w("sn76489", FUNC(sn76489_device::write)); // SN? +} + static INPUT_PORTS_START( bullion2 ) PORT_START("DSW0") PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW0:1") @@ -102,14 +116,16 @@ void bullion2_state::bullion2(machine_config &config) { // CPU PCB Inder "60-977" - Z80( config, m_maincpu, 4_MHz_XTAL ); // NEC D780C + Z80(config, m_maincpu, 4_MHz_XTAL); // NEC D780C + m_maincpu->set_addrmap(AS_PROGRAM, &bullion2_state::program_map); + m_maincpu->set_periodic_int(FUNC(bullion2_state::irq0_line_hold), attotime::from_hz(60*4)); // TODO: proper IRQs // Sound PCB Inder "60-083" - SPEAKER( config, "mono" ).front_center(); + SPEAKER(config, "mono").front_center(); - SN76489( config, m_sn, 4_MHz_XTAL ); - m_sn->add_route( ALL_OUTPUTS, "mono", 1.0 ); + SN76489(config, m_sn, 4_MHz_XTAL); + m_sn->add_route(ALL_OUTPUTS, "mono", 1.0); } ROM_START( bullion2 )