Changes

FPGAmstrad

24,469 bytes added, 23:58, 6 June 2023
/* Sniffing USB frames */ typo
== Last news about this project ==
In MaY 2020, I add Sorgelig formula for WAIT_n=quick, no more table of instruction time in code, just a simple WAIT_n formula. In MaY 2019, I add cassette feature. In August 2018, totally desperated -around time and level of efforts- about reaching next step focus around Z80 range, here came Sorgelig, he is working around port of FPGAmstrad into the MiSTer FPGA platform, and make during his step an intermediate jump step on MiST-board called "Amstrad_MiST" full of verilog as he seems to love. And, as a specialist of Z80 core, I just send him Z80 testbenches I collected since, he then corrected the Z80 fully this way, I merged, resulting this next current checkpoint. In May 2018, I programmed my first CPC game http://www.pouet.net/prod.php?which=75855 following JDVA youtube tutorial since january, they are based on CPCMania 2005's website knowledge about programing in CPC using SDCC. I think that if I do progress this way enough, I'll implement my own CPC testbenches, needed for reaching next realise of FPGAmstrad.(I did it : Moustache testbench)
[[File:Mk2-cpc-600x350.png|thumbnail|Image converted to CPC by SuTeKH/Epyteo]]
===On MiST-board CoreAmstrad version===
Games that doesn't run are :
*'''007 The Living Daylight.dsk''': problem with VSYNC. Certainly two VSYNC per frame, GA ignoring the second one.
*'''ACPC_logon_system.dsk''': text scrolling lag. This demo will be used for horizontal ink calibration (when I’ll buy a luxurious FPGA platform... I need in fact 224KB of internal RAM to do it), and CRTC overcounts.
*'''commando.dsk''': pixels that should be deleted are not deleted (only VRAM &C000-FFFF seems used), on level 1, the moto is not displayed correctly inside the bridge... but after the bridge :/
*'''split ink demo.dsk''': (from cpcrulez) : may help about ink raster calibration.
*'''Sultan's Maze.dsk''': does need the right part of keyboard (F0-F9 are used for directions in this game)
*'''Orion Primes.dsk''': does display "secteurs entrelacés" - "vérifiez votre copie", a FDC problem, perhaps "sectorId++" is not the good way to reach next sector, or else two tracks in one track. Does pass on Sorgelig fork.*'''Batman_Forever.dsk''': some problem during flying chip demo part (one garbage line), and several rupture showing ghost lines around Vcc=0. Rupture solved in r005.8.16c4, but flying chip now show a half garbage of pixels. Batman seems CRTC1. '''BattroProblems with FDC in r005.dsk''' seems also CRTC1 and does fail completly8.16 (does slow animations, like if I missed some "not ready" signal ?)*'''30YMD.dsk''': in Benediction demo, at bottom some time you see some ghosts of central animation (too many HSync per screen ?), solved in r005.8.16c4 16 (CRTC0 seems perfectly implemented). 30YMD seems CRTC0, running fine except that changing disk feature does still fail.*'''arkanoid2.dsk''': don't run in r005.8.13, but fine in r005.8.13e (experimental fork), ok in r005.8.14 (using default OSD value : MEM_WR=quick)*'''trailblazer.dsk''': no more "raster" problem since r005.5, it's now perfect ! Palette heuristic offset (done for unlocking Batman Forever Demo) has a small effect in left (squares are inserted/not separated by a black line in first column) - same small defect in TV mode using r005.8.14.2... Thinking about a HSYNC offset of 2 (instead of 1 currently) then also delaying DATA+HDISP of 1 (charinserted/inserted signal ?)*'''imperial_mahjong.dsk''': modern EXA/EXA2 resolution not passing my color pallet heuristic :p- does pass on Sorgelig fork.
*'''rtypeee.dsk''': at begin of presentation, a draw of "jack plug" is done in a strange video mode, more than 200 pixels of height !, see [http://cpc.sylvestre.org/musee/musee_flipping_lace.html flipping lace]
*'''S&Koh.dsk''': LOGON SYSTEM, black screen in r005.8.4... damn
*'''Pinball_Dreams__PREVIEW.DSK''': Does run in experimental/ versions r005.8.9.2 and r005.9.11e (experimental forked version of r005.9.11 using flag FPGAmstrad_amstrad_motherboard.vhdl.HACK_Z80=false). Does freeze in !experimental versions when background music is special (not long classic background music) and you press two buttons (left/right flipper keys) at the same time, ok in r005.8.14 (using default OSD value : MEM_WR=quick). Scrolling text is OK in r005.8.16c4 but still one garbage line at top of main game (CRTC1 offset ?)
*'''Fres Fighter II Turbo.dsk''': FDC problem, cannot be launched.
*'''Seascape.dsk''': Devilmarkus, using scandb50Hz and MEM_wr=slow, does display, but a flower petal at bottom is drawn in blue. A good raster test. Test on real 6128 [http://www.cpcwiki.eu/forum/demos/seascape-cpc-by-impact-on-original-cpc-6128/ forum: Seascape CPC by Impact - on original CPC 6128 ?] - by Emashzed : type 1 is perfect (no blue on bottom right flowers, no blue on middle triangle rock), type 2 has bright cyan squares (one on bottom right flowers, and one on middle triangle rock. Calibrated OK in r005.8.16.5 using OSD VGA:scandb50Hz. Does pass on Sorgelig fork.[[File:Seaspace-type1_MiST-board_CoreAmstrad-r005.8.16.5|thumbnail|Seascape (type 1) - r005.8.16.5]]*'''Megablasters[original].dsk''': has a 2 pixels glich border on left side. Certainly final HSYNC offset problem, as on Super Cauldron normaly the right (not left) border has to be selected to get a nice bottom bar in game (actually too centered)*'''Edge_Grinder.dsk''': screen not stable horizontally, music change speed during game ? Does pass on Sorgelig fork.
*'''Welcome To Amstrad CPC 6128.dsk''': does display "Incompatible BASIC installed" message.
*'''phX.dsk''': does begin to pass on r005.8.16. Does pass completly on Sorgelig fork (scandoubler). Does finish on amstrad_180804_r005.8.16.5. Does show vertical bars with CRTC0, no display during end scroll part. Does freeze at middle on amstrad_180804_r005.8.16.6 (doesn't launch the read of disk), does pass on Sorgelig fork but song is 2 times slown down before reaching this part. Did pass one time on amstrad_200527_r005.8.16.8.5c1.rbf (CRTC0 WAIT_n:quick (Sorgelig GA simple formula)), but I was lucky. Did pass one time on amstrad_200527_r005.8.16.8.5c2.rbf (CRTC1 WAIT_n:quick) except vertical bars of begin. Seems that launching Pinball Dreams CRTC1 (until menu of boards) before (soft reset (page up key) and) PhX CRTC0 does unlock PhX.
*'''Ghouls'n'Ghost.dsk''': does fail on r005.8.16.2 : time going to zero in 3 seconds, is fine in r005.8.15.2, fine also on Sorgelig fork... also unlocked by Sorgelig in r005.8.16.3 !
* '''Ultimate Megademo (Face Hugger).dsk''': First part is better using CRTC0. Ending part (one just after Lemmings part), a double VSYNC problem (a small scrolling text instead of... a lot of things), music OK during this ending.
'''Arkanoid.dsk''' stars use rupture address (changing address several time during display of one image), it is now supported on "candidate 001" version of FPGAmstrad. Run better in r005.9.11e than in r005.9.11.
'''Ghouls'n'Ghost.dsk''' / '''Ecole.dsk''' does need RAM write when writing in ROM (RAM is beside ROM, hard to emulate with asynchronous SDRAM controler, MiST does use a hacked synchronous RAM done for that)
'''moktar.dsk''' / '''super_cauldron.dsk''' does run fine since r004.8.1.1. Morkar run fine in r005.8.16c4 using CRTC0 and MEM_wr=slow. Super Cauldron bottom bar is fine in r005.8.16.4 when we select "right border" (instead of default left one) during "screen synchro" menu welcome.
'''CPC Aventure''' does run fine since r005.2 (message about turning disk now displayed)
'''-circles.dsk''': this demo freeze does since r004.8 (PPI border effect ?) and is back since r005.5, it was nice to calibrate SOUND clock : I did generate 8 candidates of synchronizing this clock (1MHz from 4MHz : 1100 0110 0011 1001, and 0.5 deltas : 1100i, 0110i, 0011i, 1001i), only one does not freeze -circles... so I release r005.5 candidate. This demo is a great one around calibrating Yamaha clock.
 
 
'''Nigel Mansell's Grand Prix.dsk''': Only one race track seems ok : Monaco (Brazil track does not start). Unclassified : this disk bug also with other emulators, certainly a bad dsk dump here, TOSEC version of Nigel Mansell does run fine (but some legendary traces of "SK bit purpose" needed by here (in FDC, setting SK does jump deleted disk tracks), perhaps to investigate) - update : some tracks unlocked in r005.8.15c61.
'''tetris95.dsk''' : bad in r005.8.9.2 (4 beep while breaking 3 lines (instead of 3 beep while breaking 3 lines), was correct in r005.8.4. Back since r005.8.10.
 
'''Battro.dsk''' seems also CRTC1 and does fail completly. Does pass in r005.8.16.
 
'''arkanoid2.dsk''': don't run in r005.8.13, but fine in r005.8.13e (experimental fork), ok in r005.8.14 (using default OSD value : MEM_WR=quick)
 
'''trailblazer.dsk''': no more "raster" problem since r005.5, it's now perfect ! Palette heuristic offset (done for unlocking Batman Forever Demo) has a small effect in left (squares are not separated by a black line in first column) - same small defect in TV mode using r005.8.14.2... Thinking about a HSYNC offset of 2 (instead of 1 currently) then also delaying DATA+HDISP of 1 (char) . Has defect on bottom scroll text bar r005.8.16.2, is fine in r005.8.15.2, fine also on Sorgelig fork... also unlocked by Sorgelig in r005.8.16.3 !
 
'''commando.dsk''': pixels that should be deleted are not deleted (only VRAM &C000-FFFF seems used), on level 1, the moto is not displayed correctly inside the bridge... but after the bridge :/ - unlocked by Sorgelig in r005.8.16.3 !
 
'''Pinball_Dreams__PREVIEW.DSK''': Does run in version r005.8.16.6 using CRTC1 (and WAIT_n=slow). Sorgelig fork does implement interlace (used an welcome screen - eagle)
{| class="wikitable"
*To test also : [http://www.speccy.pl/archive/prod.php?id=335 Unlimited Bobs (Dr.Piotr).dsk] demo.
 
===On MiST-board CoreAmstrad version - TAPES ===
 
https://cpcrulez.fr/GamesTest/legend_of_steel.htm :
Hello,
a nice game, unfortunately graphic error at 50 and 72 Hz.
My monitor can be 50Hz. 48Hz not.
Why does the game show 48Hz on my monitor?
https://cpcrulez.fr/GamesTest/legend_of_steel.htm
Best regards, MiC
 
List of known running TAPE games (on r005.8.16.8.3c9): A Magician s Apprentice (txt), A Message from Deep Space (txt), A View To A Kill, Aaargh!, '''Academy''' (missile commander 360°), Advanced Destroyer Simulator, Advanced Lawnmoving Simulator (by '''DevilMarkus'''), After Shock (txt+img), '''Aftermath''' (missile commander), Air Attack, Air Traffic Control - Heathrow, Air Traffic Control - Schiphol, '''Airborne Ranger''' (aircraft or walk), Airwolf, Aladdin s Cave, '''Alex Higgins World Snooker''' (pool table), Algebre, Ali Candil Y El Teroso dde Sierra Morena, Alien TurboAmstrad, Alien Syndrome, Aliens The Computer Game, '''Alkahera''' (spacecraft simulator), Alpine games, Alsim, Alternative World Games, Amaurote, Amsgolf, AmstradMagazine Le Survivant, Amstrad Shuffle (card games), Amstrad Tecla a Tecla, Amstroid (txt), '''Amstroids''', Angelique A Grief Encounter (txt), '''Angleball''' (pool table), Animal Vegetable Mineral, Annals of Rome, Antalex (txt), '''All Points Bulletin''' (little car), Apocalipsis New (txt), Arcade Fruit Machine, Arcos, Ariane, Arnhem, '''Asphalt''', Assault Course, Asterix and the Magic Cauldron, Astro Plumber, '''Atahualpa''' (angel), '''Athlete''', Atlantida 3000 (platform), Atlantis Anirog, Atlantis (txt), '''Atomic Battle''' (asteroids), '''Atomic Driver''' (little car), Auftraq In Der Bronx (txt), Aufwarts Zur Rettung (donkey kong), '''Avenger Way of the Tiger II''', Aventure Au Chateau (adventure), '''Azar Menu''',
Abu Simbel Profanation, Ace of Aces, Advanced Pinball Simulator (CPC-Power), After The War, Afteroids (CPC-Power), Agent X 2, Alien Highway, American Football, Amo Del Mundo, Amsgolf, Amsoccer (del key to launch party), Amstrad Unlocked, Animated Strip Poker, Aquad, Arkanoid, Arkanoid II, Arkos, Army Moves, Artura, Ashkeron (txt), Atlantis Anirog, Atom Ant, Auf Wiedersehen Monty, Autocrash, Auxilio Aereo.
 
Games that doesn't run are :
* '''Action Force.cdt''': freeze during loading, black screen with green border, nothing more. glitch in r005.8.16.8.3c8
* '''Adidas Championship Football.cdt''': freeze after loading.
* '''Afterburner.cdt''': nothing after load (still black screen with colorfull border) reboot
* '''Alien Attack.cdt''': simple tape, but freeze (idFF : end of tape) saying "is loading". Same using WinAPE.
* '''Alien Legion.cdt''': not enough in line 19 : memory &9FFF. Run in r005.8.16.8.3c9 but no key ?
* '''Alta Tension.cdt''': 007 Living in fact, same vsync problem than disk version.
* '''AMC Astro Marine Corps.cdt''': welcome picture not drawn completely, do load data for nothing and then freeze.
* '''Anatomie.cdt''': end of tape idFF.
* '''Arnold Goes to Somewhere Else.cdt (txt)''': Rewind tape.
* '''Atlantida 3000''': welcome picture seems not fully loaded, but game starting. Same in WinAPE.
* '''ATV Simulator.cdt''': nothing after load (still black screen with colorfull border), reboot
* '''Automec.cdt''': reboot during game (second tape of three)
 
Back-Tron, Bacterik Dream (puzzle), Bactro (tron), Bactron, Balade Outre-Rhin (txt), '''Ball Breaker II''' (breakout), Ballon Buster (press space to unlock black screen, and another time after welcome screen displayed), Barry McGuigan Word Championship Boxing, Batalla de Inglaterra, Batalla Naval, Battle ships, Battle Tank Simulator, '''Batty''' (breakout), Beat the Clock (scrabble), Behind The Lines (txt), Berks 3, '''Bestial Warrior''' (platform), Beta-2515, '''BeTiled''' (Bejeweled), Better Spelling, Big Trouble in Little China, Blade Runner, Blagger, Blindado, Blitz AmstradAction, Blockbusters, '''Blue Tomb''' (bomberman), BMX Ninja, '''Bob Morane Espacio''', '''Bomb Jack''', Border Harrier (adventure), '''Bosconian 87''' (Asteroids), '''Boulder Dash 3''', Brian Jacks Superstar Challenge (run), Bride of Frankenstein, Bridge (card), Bronx, '''Bubble Bobble 4''', Bubble Dizzy, Buffalo Bill s Rodeo Games, Buggy II, '''Buggy Boy''', Bugs Buster, Bullseye, Bump Set Spike, Bundesliga Manager 3 (tool), Buscate la vida, Business Plus, '''Buster Block''', Ball Crazy, Barbarian, Bataille Pour Midway, Battle for Midway, Beach Buggy Simulator, Bedlam, Beyond the Ice Palace, Bivouac, Black Beard, Blasteroids, Brawn Free (txt), Bruce Lee, Bubble Bobble (2014-06-20), Buitre-Emilio Butragueno Futbol
 
* '''Back to Reality.cdt''': Rewind tape.
* '''Barbarian II.cdt''': black screen blue border. Welcome screen with glitchs
* '''Beach Head 2.cdt''': freeze load. Reboot id13
* '''Blood Valley.cdt''': welcome screen, "Read error b"
* '''Bomb Jack 2.cdt''': welcome picture not load completely, freeze.
* '''Boom.cdt''': load until block 16, then freeze. Reboot at block 21.
* '''Booty.cdt''': second welcome screen then freeze. id15 (ear)
* '''Boulder Dash 4.cdt''': not a game but a tool kit,
* '''Brainache.cdt''': no pause at begin of tape, welcome screen turn into black screen at end of tape (idFF)
* '''Bugs.cdt''': "Rewind tape" message
 
Cap Horn, Cap sur Dakar, Cavebola, Cedric y los Juguetes Perdidos, '''Chessmaster 2000''', Civil War, Cluedo, '''Cobra''' (snake), Coloric, Concurso, Conflit en l an 2000, Crystann Le Donjon de Diamant
 
* '''CORE Anatomie''': end of tape idFF.
 
'''Dan Dare 1''', Dances With Bunny Rabbits (txt), Danger Adventurer at work (txt), Danger Mouse In Makin, Dark Side, Dark Star, '''Darts''', De la Terre a la Lune, Deactivators, Deadenders (txt), '''Deadly Evil''' (walk platform), Deathkick (right part of keyboard), '''Deathscape''', Dedalos, '''Defcom1''', Demon Attack, Dempsey and Makepeace, Dernier Metro, Desert Rats, Devil s Castle, Diamond Mine, Diamond Mine 2 (same ?), Die Heilige Rustung Des '''Antiriad''', Die Tiefe (txt), Die You Vicious Fish (txt), '''Digger Barnes''', '''Dimension Omega''', Dirk, Dizzy 2 Treasure Island, Dizzy 4 Magicland, Dizzy 5 Spellbound, Dizzy 6 Prince f the Yolkfolk, Dizzy Down the Rapids, Dominoes (keyboard F1-F7 + space), '''Doodle Bug''' (pacman+), Doomsdark's Revenge (txt), Dr Jackle and Mr Wide, Dracula (txt), Dragon's Lair, Dragons of Flame, Driller, Druids Moon (txt), Duel A Abilene, Dun Darach, Dungeons Amethyst (txt), Dynamite Dan, Dynamix
Daley Thompson Super Test 1, Dark Fusion, Death Stalker, Death Wish 3, Desperado, Die Alien Slime, Dizzy Amstrad Action Special Edition, Dizzy Cristal Kingdom, Double Dragon, Dragon Spirit, Dragontorc, Dustin
 
* '''Daleks.cdt''': use of right part of keyboard as arrow (not mapped)
* '''Daley Thompson s Olympic Challenge.cdt''': reboot
* '''Damas.cdt''': Rewind Tape
* '''Dark Sceptre.cdt''': Rewind to 04
* '''Dark Man.cdt''': black screen pink border
* * on r005.8.16.8.1c3
* '''Death Pit.cdt''': welcome screen not loaded completely idFF
* '''Deliverance.cdt''': black screen pink border, reboot id13
* '''Demon s Revenge.cdt''': "Searching 00" freeze
* '''Des Chiffres et des Lettres.cdt''': reboot
* '''Dick Tracy''': black screen id15 (ear), idFF (end of tape)
* '''Dizzy 3 Fantasy World''': black screen
* '''Dominator''': black screen pink border
* '''Domino''': Rewind tape
* '''Don't Panic''': no pause, freeze message "SEARCHING", id15 (ear) idFF (end of tape)
* '''Dragon ninja''': welcome screen ok, message "128K MACHINE DETECTED" - "PLEASE WAIT" too long, slower than WinAPE id11 read (datalen=0 does ignore data read ?)
* '''Dynamic Duo''': "Searching 00" freeze
 
E.X.I.T, Eagle AmstradVideoPlay, '''Eagle''', Edd the duck, Eden Blues, Egg Blitz, El Comecocos, El Cuerpo Humano, El equipo A (A Team), El Formamento, El Foso, El Misterio del Milo, El Prisionero (txt), '''El Secreto de la Tumba''', Electric Fencing, Electro Freddy, Elevator Action, '''Elven Warrior''', Emerald Isle (txt), Emilio Butragueno Futbol, Emlyn Hughes International Soccer, En Busca Del Arca De ma Alianza (txt), Encyclopaedia of War-Ancient Battles, Endurance, Enduro Racer (moto), Enigme a Oxford, '''Enterprise''', '''Equinox''', Escape-Edisoft, Escape from Khoshima (txt), Espacial, Espana-Comunidades Autonomas 1, Espionage, Espionage Island (txt), Euro Boss, Europa Teatro de Operaciones, European 2, European Champions, '''European Soccer Challenge''', Evening Star, Everyone s a Wally, Exolon, Exploring Adventure on the Amstrad (txt), Exterminator, Eye,
E-motion, Echelon, El CID, El juego de la Oca, El Ladron del Sol Purpura, El Poder Oscura, Elektra Glide, Elidon, Emilio Butragueno 2, Emilio Sanchez Vicario Grand Slam, Empire, Enchanted, Endzone, European 5, Every Second Counts, Eye Spy
 
* '''Eddie Edwards Super Ski''': rewind tape
* '''El Caldero Magic''': return to basic during game, bad charset
* '''El Capitan Trueno''': slow block load, reboot
** on r005.8.16.8.2c12
* '''El Gerente''': rewind tape
* '''El Jabato''': blue screen, reboot
* '''El Laberinto del Sultan''': rewind tape
* '''El Tute''': after a certain time doing nothing, "Read error b"
* '''Election''': black screen with blue border, message "LOADING: Please Wait"
* '''Eliminator''': black screen with blue border
* '''Elite''': "Searching 00", id15 (ear), with somes id11 before and after it.
* '''Energy Warrior''': game launched but bad horizontal alignment
* '''Er-bert''': "Press PLAY then any key"; end of tape idFF
* '''Erik the Viking''' (txt): end of tape idFF, no key
* '''Escape from The Planet Of The Robot Monsters''': welcome image OK, then black screen border green
* '''Eswat-Cyber Police''': Cannot insert face B
* '''Execution''': gray screen
* '''Exploding Wall''': black screen red border
* '''Explorer''': reset to BASIC
* '''Express Raider''': yellow screen blue border, message "LOADING: Please Wait"
* '''Extreme''': black screen blue border
 
Fantasia Diamond (txt), Federation (txt), Feliz Navidad, '''Fernandez Must Die''', Ferry Captain, Fifth Quadrant, '''Feud''' (OK on r005.8.16.8.2c13), Fighter Pilot, Finders Keepers, Fire Ant, Firescape (txt), First Steps With The Mr Men, Flash, Flight Path 737, Flight Simulation, Fluglehrer, Flunky, Fly, Fly Spy, Football manager, Football manager III, '''Forbidden Planet''', Force 4, Forces, Formula 1 Simulator, Formula, Fourth Protocol, Frank Bruno s Boxing, Frank N Stein, Frankenstein (txt), '''Freedom Fighter''', Friss Man, Frontline, '''Frost Byte''', '''Fruity Frank''', Fu-Kung in Las Vegas, '''Fusion 2'''
F-1, Fernando Martin Basket Master, Fiendish Freddy s Big Top O Fun, Firelord, First Past The Post, Five a Side Football, Football Champion, Footballer of the year I, Forgotten Worlds, Formula One, Frankenstein Jnr/Junior, Froggy, Fuego Curzado, Future Knight
 
* '''F15 Strike Eagle''': black screen blue border, xFF (end of tape)
* '''F16 Combat Pilot''': black screen blue border, xFF (end of tape)
* '''F16 Fighting Falcon''': light gun game
* '''F1 Tornado Simulator''': some vsync problem ?
* '''FA Cup Football''': Rewind tape slow face of tape OK
* '''Fairlight 1 A Prelude''': Rewind tape
* '''Fast Food Dizzy''': black screen, a dot
* * on r005.8.16.8.2c13
* '''Fighter Bomber''': black screen pink border, reboot
* '''Fighting Soccer''': black screen blue border, reboot
* '''Fire and Forget 1''': Rewind tape, idFF (end of tape)
* '''Firezone''': use right part of keyboard
* '''Flash Gordon''': Read error b
* '''Flying Shark''': Searching 00, strange id60 (end of tape). Rewind to 12
* '''Football Director''': welcome picture not load completely, freeze, xFF (end of tape)
* '''Football Frenzy''': Rewind tape
* '''Football manager II''': welcome image and music, then Rewind tape
* '''Football Manager World Cup Edition''': welcome screen, no more idFF (end of tape)
* '''Footballer of the year II''': glitch
* '''Freddy Hardest 1''': black screen blue border
* '''Freddy Hardest 2''': reboot
* '''Freestyle BMX Simulator''': black screen
* '''Friday The 13th''': rewind tape at idFF (end of tape)
* '''Fruit Machine Simulator''': black screen blue border
* '''Fruit Machine Simulator II''': black screen, reboot
 
G-LOC R360, '''Galachip''' (space invaders), Galletron, Garfield 1 & 2, Gauntlet-Micropower, Gazza s Super Soccer, GBA Championship Basketball 2 On 2, '''Geasa-Parabola''', Gem, Geoff Capes Strongman, '''Ghost Hunters''', '''Ghostbusters 1''', Ghostbusters 2, Ghouls, Gilligan s Gold, Glass, '''Glen Hoddle Soccer''', Glider Rider, '''Golf Trophee''', Gorbaf El Vikingo, Graham Gooch s Test Cricket, '''Grand Prix 500cc''', Grand Prix Driver, Great Gurianos, Grell and Falla, Greyfell, '''Grid Trap''', Ground Zero, Guadalcanal, Guardian 2-Revenge of the mutants, Guerre des galaxies, Guerrero Espacial, Gunfighter
Galaxia, Game Over I - 1st., Gary Linekers s Superstar Soccer, Gauntlet II, Gems Of Stradus, Get Dexter 1 & 0, Go for Gold, Grand Prix, Grand Prix Simulator 2, Grand Prix Tennis, Grange Hill, '''Green Beret''', Gregory Loses His Clock, Guardian Angel
 
* '''Gabrielle''': Rewind tape
* '''Galactic Conqueror''': Rewind tape, idFF (end of tape)
* '''Galactic Games''': "LOADING: Please Wait"
* '''Galaxia SPANISH''': crash during play (when crashing on a wall : reboot)
* '''Galivan''': black screen
* '''Game Over II''': black screen orange border
* '''Gauntlet I-The Deeper Dungeon''': nothing displayed
* '''Gauntlet III''': welcome image, no proposition to change tape side. At end of first tape I insert the second one... Not loading the 3rd tape.
* '''Gauntlet''': reboot
* '''Gazza II''': "Loading error - Please retry"
* '''Gee Bee Air Rally''': return to BASIC
* '''Gemini Wings''': black screen pink border, id13 reboot
* '''Ghost n Goblins''': Rewind tape
* '''Gi Hero''': Searching 00 Loading 00...07 Rewind to 0C (to retry ?)
* '''Gilbert-Escape From Drill''': glitch, and then black screen
* '''Gladiator''': Rewind tape
* '''Golden Axe''': reboot id14
* '''Golden Basket''': welcome image then reboot.
* '''Goliath-Le Defi''': problem during load of welcome image
* '''Golpe en la Pequena China''': no key
* '''Grand Prix Circuit''': tape stopped with strange id value : 00
* '''Grand Prix Master''': blue screen
* '''Grand Prix Simulator 1''': idFF (end of tape)
* '''Great Courts''': blocked by a password
* '''Gremlins-The Adventure''': message "Resume a saved game ?" - no keyboard (same in WinAPE), version ripped in 2018 in CPC-Power does run fine.
* '''Gremlins 2''': reboot (Turbo Data + Standard Data) - running ok in WinAPE
* '''Gryzor''': reboot (Turbo Data + Pure Tone + Sequence of Pulses)
* '''Guillzemo Tell''': no keyboard, 4 Turbo Data, last one is big - running ok in WinAPE
 
Hacker 2, Halls of Gold, Happy Letters, '''Happy Numbers''', Happy Writing, Hard Drivin, '''Hard Hat Mack''', '''Harricana-Raid International Motoneige''', Harrier Attack, Haunted Hedges (pacman), Haunted House (txt), Havoc, Hawk Storm version 64K, Heartland, Heathrow International Air Traffic Control, Heavy on the Magick (txt), Helicoptero 2000, Heliot, Helvera-Mistress of the Park (txt), Herberts Dummy Run, Here and There With the Mr Men, '''Hero''', Hero of the Golden Talisman, Herobotix, Hexenkueche 1 & 2 (Cauldron), Hi-Q Quiz, Hi Rise, High Moon, '''Highier''', Hijack, '''HMS Cobra''', Hobgoblin (GNG), '''Hold-Up''', Holdfast, Hollywood Or Bust, Hollywood Palace, Home Runner, '''Hong Kong Phooey''', '''Hot Shot''', House of Usher, How To Be A Hero, Hunchback, '''Hundra''', Hunter Killer, Hustler, Hydrofool, '''Hyperbowl''', Hyperspace 4 (txt)
Hacker 1, Hammer-Head, Hammer boy, Hercule-Slayer Of The Damne, Heroes of the Lance,, Hideous, Humphrey, Hunchback 1, Hunchback 2, Huxley Pig, Hypsys
 
* '''Hammerfist''': white screen blue border, reboot while starting drawing welcome screen id13
* '''Handicap Golf''': Rewind tape
* '''Hanse''': Rewind tape while loading welcome screen
* '''Hardball''': Rewind tape
* '''Harvey Headbanger''': id11 id11 '''id12''' id13 - Sequence of pulses of different length - id9C (crash) + Searching 00. Rewind to 0D
* '''HATE-Hostile All Terrain Encounter''': reboot
* '''Having Fits Of Madness''': BASIC 1.1 - to retest in 6128 model version. black screen green border.
* '''Head Over Heels''': black screen with message "LOADING: Please Wait" id11 id11 '''id12''' (Pure Tone) id13 (crash)
* '''Heavy Metal''': reset while loading welcome screen
* '''Helichopper''': id19 - Generalized Data Block. Rewind to 03
* '''Hero Quest''': black screen, message "level 12"
* '''Heroes of Karn''': "LOADING ERROR" back to BASIC.
* '''High Steel''': id11 id11 '''id12''' id13 id70 (crash). Rewind to 0A
* '''Highlander''': message "LOADING: Please Wait" id11 id11 '''id12''' id00 (crash)
* '''Highway Encounter''': message "LOADING: Please Wait" id11 id11 id12 id00
* '''Histo-Quizz''': Rewind tape (after loading a party) idFF (end of tape)
* '''Hive''': id13 id2E (crash). Rewind to 02
* '''HKM-Human Killing Machine''': reboot after a count down
* '''Hockey''': idFF (end of tape), no keyboard
* '''Hopper Copper''': Rewind tape (to retry ?)
* '''Hoppin Mad''': Rewind tape (to retry ?)
* '''Hostages''': welcome screen and freeze (tape stopped), no keyboard
* '''Hot-Rod''': black screen pink border, reboot id14
* '''How To Be A Complete Bastard''': white screen, blue border
* '''Hudson Hawk''': grey screen, pink border
* '''Hunter or Hunted''': Rewind tape
* '''Hybrid''': id13 id7F (crash) "Searching 00"
* '''Hydra''': black screen border blue
* '''Hyper Sports''': welcome screen, and then nothing
 
i alien, Ikari Warrior, Impossaball, Inca Curse - adventure B (txt), Indigestion, Indoor Soccer, Inertie, Infernal Runner, Inquisitor-Shade of Swords, Interchange, International Football, '''International Karate Plus''', International Manager, International Rugby, International Tennis, Into Oblivision, Into the Eagle s Nest, '''Invasion of the Zombie Monsters''', Invasores, Invierte y gana (manager), Invitation (txt), ISS-Incredible Shrinking Sphere, Iznogood
Ilogic All, '''Impossible Mission 1''', Impossible Mission 2, Indoor Race, Inside Outing, Invasion, Isoleur, Italian Supercar, Ivan Ironman Stewart s Super Off Road
 
 
* '''i Ball 2 - quest for the Past''': Rewind to 8
* '''i Ball''': Rewind to 7
* '''Ice Breaker''': reboot
* '''Imagination''': Rewind to 7
* '''Impossamole''': "LOAD ERROR" level 1. A lot of id14
* '''Indiana Jones 3''': black screen during second tape load
* '''Indiana Jones 4''': Please rewind
* '''Indiana Jones''': counter down : tape stopped in middle of id11 transmission, noise, reboot
* '''Infiltrator''': message "LOADING: Please Wait", glitch idFF (end of tape) idem second tape.
* '''Infodroid''': reboot
* '''Interdictor Pilot''': game not running - no key
* '''Interieur''': "Rewind tape", end of tape id=FF
* '''International 3D Tennis''': 64K version : reboot at begin of welcome image.
* '''International Karate''': reset to BASIC
* '''International Speedway''': rewind to 15 - great for comparative speed test :)
* '''It s a Knockout''': message "LOADING: Please Wait" id14
* '''Italia 90 World Cup Soccer''': "WARNING" message, reboot
* '''Italy 1990''': game not launched despite of inserting face B
 
Jack and the beanstalk, Jack the Nipper II, Jackson City, Jail Break, Jammin, Jet-Boot Jack, Jet, Jet Set Willy-the final frontier (password needed), '''JetPac''', Jeux de Kim, Jigsaw Rescue, Jimmy Business, Jimmy s Soccer Manager, Jinks, Jocky Wilson s Compendium of Darts, '''Jocky Wilson s Darts Challenge''', Joe Blade I, Joe Blade II, Joe Blade III, Johnny Reb II, Jolly Poppa Down (txt), Jolly Roger s Dungeon Escape, Jonah Barringtons Squash, '''Jonny Quest''', Juggernaut, Jump, Jump Jet, Jumper, Jumpman, Jungle Warrior, Justin
Jack Nicklaus Golf, Jai Alai,
 
* '''Jack the Nipper I''': game not launched. xFF, still at welcome screen.
* '''Jackal''': grey screen, then reset
* '''Jahangir Khan World Championship Squash''': "Tape Loading error..."
* '''James Clavell s Shogun''': id11 6 times then '''id10'''
* '''James Debug dans Le mystère de l'Ile Perdue''': joystick misunderstood
* '''Jaws''': id11 4 times then '''id10''' - "Rewind to 04"
* '''Jet Bike Simulator''': id13 pure data, pure tone, loop
* '''Jet Set Willy II''': Rewind tape (all id11)
* '''Johnny Proot II''': Rewind tape (end of tape idFF, all id11)
* '''Jungle Jane''': blue screen, idFF (end of tape)
* '''Jungle Warfare''': game auto launched, no joystick/keyboard
 
K Y A, '''Kane''', Karl s Treasure Hunt, Kart 3000, Kat Trap, Ke Rulen Los Petas (txt), '''Kenny Dalglish Soccer Manager''', '''Kenny Dalglish Soccer Match''', Kentilla (txt), Kentucky Racing, Kick off II, '''Killapede''', Killer Cobra, Killer Gorilla, Killer Ring, King Leonard, Klax, Knight Ghost, Knight Lore, Knight Orc, Knight Tyme, Knightmare, Knights and Demons, Kobayashi Maru, Kokotoni Wilf, Kong s Revenge, Krakout, Kung-Fu Master, '''Kwik Snax''', KYA
Karnov, '''Kung-fu'''
* '''Kaiser''': Rewind tape
* '''Kettle''': reset id11, id13 not reached
* '''Kick off I''': Rewind tape
* '''Killed Until Dead Murder At Midnight''': id11, id11, (id12 id13) several times
* '''Kinetik''': "Rewind to 03"
* '''Knight Force''': Rewind tape
* '''Knight Games''': id13
* '''Knight Rider''': id13
* '''Konami s Golf''': id13
* '''Kong Strikes Back''': id13
* '''Kotoran s Shadow''': invalid CDT format
* '''Kristal''': Rewind tape
 
L'Affaire Sydney (txt), L'Affaire Vera Cruz (txt), L'Anneau de Zengara, L Hepiss, La Armadura Sacradda De Antiriad, La Aventura Original (txt), La Caza del Octubre Rojo, La Chose De Grotemburg (txt), La course a la boussole, La foret Infernale, La France, La Geste D Artillac (txt), La Guerra de las Vajillas (txt), La Trilogie du temple d Apshai, La Ville Infernale, Labyrinth Hall (txt), Langolo del Diavolo, Las Joyas Del Nio, Las Vegas Video Poker, '''Laser''', Laser Blast, Laser Tiempo, Le 5eme Axe, Le Bagne De Nepharia (txt), Le Diamant de l Ile Maudite (txt), Le jeu du Roy, Le Millionnaire, Le spectre d'Anubis (txt), Le Survivant, Le Talisman d Osiris, Le Tour du Monde en 80 jours (txt), Le Tournoi du Siecle, '''Le Tresor de l Amazone''', League Challenge, Legend, Lenguaje, Les aventures du KA-Menace sur l Arctique, '''Les Diamants de la Peur''', Lettura Rapida, Life Expectancy Zero, Lifeterm (txt), '''Light Force''', Linkword-French, Logiformes, Lop Ears, Lords, Lords of time (txt), Lorna, Los Angeles Swat, Los Pajaros De Bangkok (txt), Los Planetas-El Sistema Solar, Los Templos Sagrados (txt), '''Lost Caves and the Tomb of Doom''', Loto, Lotus Turbo Esprit, Lucky Fruits
L Heritage-Panique a Las Vegas, Lee Enfield Space Ace, Little Puff in Dragonland, Lords of Chaos
* '''L oeil de Set''': rewind tape
* '''La Abadia del crimen''': blue screen and grey border
* '''La Malediction de Thaar''': rewind tape idFF
* '''La Tour Fantastique''': rewind tape
* '''Lala Prologue''': black screen
* '''Las Vegas Casino''': Read error B (too quick)
* '''Last Duel''': count down, reset
* '''Last Ninja 2''': glitch, id14 reboot
* '''Le Necromancien''': red screen, blue border
* '''Leader Board''': id12 freeze
* '''LED Storm''': black screen, rewind at start of block.
* '''Lemmings''': no welcome image
* '''Les aventures de Jack Buron-big troube in little china''': no keyboard
* '''Les Joyaux de Babylone''': "ERREUR CASSETTE"
* '''Leviathan''': reset at id14
* '''Line of Fire''': inserting second side does nothing
* '''Live and Let Die''': black screen idFF (end of tape)
* '''Living Daylights''': same problem than in dsk version
* '''Lords of Midnight''': welcome image, then freeze
 
Mach 4, '''Mach 3''', Macrocosmica, Mad Mix Game, Mad Mix Game 2, Magic Clock, '''Magical Drop CPC''', Manager, Mansion Kali 1 (txt), Mansion Kali 2 (txt), Mantis 1 (txt), Mantis 2 (txt), Mapa del Cielo, Master Chess, Match Point, Mathasard, Mathe Stunde 1, Max, Meltdown, Mercenaire, Mexico 86, Minas, Misil Atack, Missile Ground Zero, Missiles, Molecule Man, Money Molch, Monster of Murdac, Monty Mutant, '''Monument''', Mordon s Quest (txt)
Mariano The Dragon In Capers In Cityland, Marius Tresor Foot, Masters of the Universe, Mathex n1, Maziacs, Megacorp, Meganova, Message from Andromada (txt), Miami Cobra GT, Microprose Soccer
* '''M enfin''': sound freeze during welcome picture
* '''Mahjong''': Rewind tape
* '''Manic Miner''': crash after loosing one time.
* '''Mansion''': Rewind tape during first mission
* '''Marble Madness-Deluxe Edition''': blue screen
* '''Marsport''': password
* '''Master of the lamps''': Rewind tape
* '''Matchday 2''': black screen blue border
* '''Mercenary Escape from Targ''': welcome screen, no keyboard
* '''Mercs''': reboot
* '''Metropol''': back to basic at first round of play
* '''Miami Vice''':
* '''Michel Futbol Master Super Skills''': reboot
* '''Mickey Mouse''': reboot
* '''Micro Sapien''': Rewind tape
* '''Mike Head S Computer Pop Quiz''': menu without keys
* '''Mineur''': Read error a
* '''Mobile Man''': reboot
* '''Monopoly''': grey screen
* '''Montsegur''': reboot
* '''Moonblaster''': game not launched
 
 
 
* * '''Breaking Baud.cdt''': no pause, last part "pink floral" heart is missing. As explain at begin of demo, instructions are executed during they are written in memory, speed of tape against speed of Z80...
===On ZX-Uno FPGAmstrad version===
* '''jdva6.dsk''': no keyboard... [https://github.com/renaudhelias/RubikCubePaletteCPC/tree/master/JDVA%236_test JDVA#6 test]
 
Antonio Villena mail "ZXDOS conversion of your CPC core" 2019/01/29
Hi Renaud
It's for asking if you plan a conversion of your CPC core for this platform. It's like ZX-Uno, but with:
-A bigger FPGA, LX16 instead LX9.
-18 bit DAC
-32Mb of SDRAM, also 512K of SRAM
-dual joystick port
-Separate PS/2 joystick and mouse
If you are interested I can provide the two addon boards, so you only need the LX16 board. Bought from Aliexpress is about 18 EUR.
https://es.aliexpress.com/store/product//606998_32818384452.html
Regards
== Effort done ==
In ZX-Uno FPGAmstrad, I implemented CRTC0.
CRTC1 has double sized VSYNC against CRTC0 (moustache test)
==== VGA: VRAM ====
You can power Amstrad CPC using extension port, applying 5v. By doing it, power down button of Amstrad doesn’t run. Using this way you reach a common 5v power between starter-kit and Amstrad. I connected wires from extension port directly to FPGA, as they are used just for listening.
==== GA: WAIT_n generator (WIP- currently in r008.5..) 14 ====
Instruction timing.
I just made a test bench log of [[T80]] (log of instruction's M1, and first M1 coming after knowing that I send a lot of NOP after my instruction), and compare it to a JavaCPC timing array. Some instructions was not tested (interrupt wait, and special timing (instructions with change timing)), but all others passed correctly.
==== GA: MEM_WR has an OSD menu choice to switch between "quick" and "slow", "slow" mode does insert ONE WAIT_n generator - currently during detection of MEM_WR. This switch exists because somes games are running in r008.5.14 ====In GA, I do use begin of edge for IO_ACK instead of state"slow" mode and others in "quick" mode.
M1 reached same time An elegant fork by Sorgelig, sum up nicely the "MEM_WR:slow" algorithm + the HACK_Z80 flag of IO_ACK are ignored r008.5.14 : T80pa CPU (not M1 (...) in .cen_p(ce_4p & (WAIT_n generator| no_wait)), .wait_n(1) // (cyc1MHz | (IORQ_n & MREQ_n) | no_wait) );MEM_WR has an OSD menu choice to switch between "quick" and "slow", "slow" mode does insert ONE // Current WAIT_n during detection of MEM_WR. This switch exists because somes games are running in "slow" mode and others in "quick" mode.generation is not correct! // It should use WAIT_n instead (see commented out code above ^^) reg WAIT_n; wire acc = (MREQ_n | ~RFSH_n) & IORQ_n; always @(posedge clk) begin reg old_acc; if(ce_4p) begin old_acc <= acc; if(old_acc & ~acc) WAIT_n <= 0; if(cyc1MHz) WAIT_n <= 1; end end
==== GA: WAIT_n generator - talk about r008.5.14 ====
[http://www.cpcwiki.eu/forum/programming/cpc-z80-commands-and-how-long-they-take/40/ CPC Z80 Commands and how long they take...]
==== GA: WAIT_n generator - talk about r005.8.16c4 ====In r005.8.16c3, I remark that WAIT_n are badly introduced following plustest.dsk testbench (WinAPE). I corrected a T80 parameter firing the WRITE action 1 clock before. That unlocks 32 instructions timing in plustest.dsk testbench . In r005.8.16c4, I remark that two WAIT_n are also needed by instructions using 5T during M1 cycle. But in fact the M1 signal is not outputing 4T while 4T, but cutted at 2T. So that I do here (experimental), I produce a M1 signal output of 3T while 5T. Detecting it that way in my WAIT_n generator, producing then needed 2 WAIT_n at this moment. But plustest.dsk testbench don't pass anymore in r005.8.16c4, testbench show border effect : a correct instruction is marked as bad timing, but in fact it the next one I did modify. I don't know if plustest.dsk does pass on real Amstrad, but it is a really great testbench to progress (without it, r005.8.16c4 could not be realized). During this work, I remark an instruction that seems badly classified on plustest.dsk : 2A LD HL, (nn). This instruction does not use MEM_WR and is not a 5T M1 instruction. So it shall be using 4 NOPs instead of -5 NOPs. LD (nn), HL does take 5 NOPs (because it does use MEM_WR instruction), as in plustest.dsk testbench here for this instruction. ==== GA: WAIT_n generator - Tests on real CPC (by DanyPPC) ====
[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/need-plustest-dsk-testbench-5-output-on-original-cpc-6128/ CPCWiki's forum : Need plustest.dsk testbench 5 output on original CPC 6128]
About testbench border effects, I think that IO_ACKed instructions has to be under same rules (MEM_wr, modulo 4 etc) - update : same result in testbench using this way.
==== GA: WAIT_n generator - talk about r005.8.16c20 plustest-9 - Tests on real CPC (by GUNHED and Kris) ====Instruction timing seems all respected following plustest[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/need-plustest-dsk, but I think it isn't enough, so it-testbench-9-output-on-original-cpc-6128/ CPCWiki's still a candidate versionforum : Need plustest.dsk testbench 9 output on original CPC 6128]
Even prefixed and double prefixed instructions are taken into account by my WAIT_n generator.GUNHED results : WAIT_n generator is finally juste inserting a certain number of WAIT_n following executed instruction + a mod 4. In forum if I remembered System 1: CPC6128, you don't do the next mod 4 alignement after a recepted IO_ACK (have to check that)CRTC2: I try on this version to get Test 9 works normal until the &EC codes, there are two errors marked with an intelligent IO_ACK: in JavaCPC instructions just has a fixed time (array of instruction timing) and IO_ACK does not influence on them. So IO_ACK perhaps has to remove one WAIT_n inserted by GateArray"X". &ED, &46: 2I have regressions on this version &ED, Still Rising's scroll&4E: 2 After &ED, and Trail Blazer palette offset at left.&5D it suddenly stops working! "RET cc" instruction seems not respecting original timing in T80. I had System 2 clocks in last TStates of it.: 6128 Plus: I don't understand why I have to add &ED, &46: 2 WAIT_n when 1 WAIT_n seems suffisant &ED, I think there is some problem around my "PLEASE_WAIT" component (hack of T80's WAIT_n entry)&48 5 &ED, perhaps finally T80's WAIT_n entry is fine&49: 5 &ED, as finally I just insert a certain number of WAIT_n during second clock of M1&4E: 2 &ED, MEM_wr slow is unvalidated &50: Gatearray of Amstrad doesn't have the needed "WR" wire5 &ED, so.&51: 5 &ED, &58: 5Next step shall be destroying "PLEASE_WAIT" component I think &ED, in order to add 1 WAIT_n and not 2 with my WAIT_n generator.&59: 5 T80 WAIT_n has also to be checked After &ED, I know that inserting &5D it suddenly stops working! Probably a WAIT_n seems generating crash, since a seconde IO_ACK edge during an IO_ACKspot appears on screen.Kris results :Have to check also Here are my results (teste performed on CPC 6128 CRTC 1) Pictures of each screen attached in the moment IO_ACK is taken into account during M1 signal .rar file. (I think it's at begin ...)In pictures of itKris, but have to re-check thatafter ED5D, it does stop also. Only ED test part has some failings :* ED46:C* ED4E:CIn WinAPE (by default CPC 6128 CRTC1), ED test does finish its screeen result, with several fails :* ED46:2* ED4E:2* ED66:2* ED6E:2Others screens results after does pass. Relaunching once again in WinAPE, same results.
==== GA: WAIT_n generator - RET cc and WAIT_n timing analysis ====
Normaly, without WAIT_n generator (even modulo 4), NOP should take 1 M-cycles and 4 T-states, so this instruction should pass using plustest.dsk at 0x00. Does fail here (my approach is incorrect)
 
In r005.6, cpctest.dsk did pass. Removing MEM_wr:slow both tests does still run fine (NOP/HALT (x00 x76)). Removing full mod4 WAIT_n generator, cpctest.dsk and plustest.dsk does fail. So NOP has to be synchronized ? (plustest.dsk is full of NOPs)
 
My WAIT_n generator currently passing fully plustest.dsk's testbench is using the bad edge, something is wrong, it's a false positive. I know that NOP, HALT and IO_ACK/INT has to be good for this test to be valid. It's not the case here, so in fact my table of latencies is not the good one : running, but corrections are done on several bad instructions, some of them are even illogical, as this "RET cc" instruction where I had to hack the Z80 itself to reach a passing test, so something is wrong, and that thing is firstly the current WAIT_n generator clock edge (in comparison againts Z80's clock edge)
 
Have to change my approach, perhaps using invariant (table of full instruction chrono versus reality), validate instruction timing before trying validating IO_ACK interrupts. Write one table from plustest.dsk's testbench launched on WinAPE, and another table from original Z80 documentation, and deduce a first theorical candidate table of latencies. I have to trust first in my instruction timing tables (and have to write them both completely...)
 
Prefixed instruction seems having only one M1 : Z80 doc show that a prefixed instruction take 4T more time. But last time plustest.dsk did pass thinking prefixed instruction are totally separated (M1 for DD, M1 for CB, M1 for "RLC (IX+D)"), so each prefix has its own M1, and following instruction has also its own M1.
 
Is IO_ACK itself a separated instruction ? I think not, it's more about a hack of a current instruction, adding two autowait and making its business during this inserted times.
 
IO_ACK offset into INT (interrupt) should not implicated by WAIT_n generator, and it seems that a WAIT_n during T2 is ignored because of autowait already inserted at this moment... for synchronizing an IO_ACK, I have normaly to insert WAIT_n during T2+2. No way, instruction itself is synchronized, so IO_ACK is synchronized also, you don't have to insert WAIT_n during T2+2.
So you slow down instructions following a slowing down instruction table, slowing it the less you can, and then IO_ACK comes or not, and then you synchronize next M1 putting WAIT_n during T2 modulo 4. IO_ACK two autowaits are not prolongated.
ralferro explains also that stretching instruction timing depends of memory used or not by instruction. I know that Amstrad schematics does not use the MEM_WR wire. So it could be hard to deduce if they added 1 or more WAIT_n for certain instructions. But I'm more about 1 WAIT_n inserted at maximum each time (it's more easy to hard implements), and the modulo 4 synchro, let's see results of my current experiment (comparing time instruction of Z80 and plustest.dsk testbench, deducing diff table of "slowing down instructions") wip.
==== GA: WAIT_n generator - talk about r005.8.16c29 16 ====This version does implements correctly a theorical OSD menu has now "WAIT_n generator : I used slow|quick", a script comparing Z80 doc timings to plustest.dsk testbench result on real CPC, I deduce that inserting each time 2 WAIT_n does the stuff (that will my first approach), I saw also that first set of instruction timing generator is fully covered by Z80 docimplemented adding 0, so plustest.dsk testbench failing on this part is not due to table slowing down instruction timing (1 or 2 WAIT_n generator's table of slowing down instruction timing), this isntructioon have to be slowed somewhere else : perhaps a bug inside Z80 itself or else the equation NOP/HALT/ACK to review, instructions concerned here seems all about "JUMP" except two instruction (a LD and an EX), in past I did already tested Z80 per instruction timing themself and found no problem this way.
I also revisited the edges of WAIT_n generator, to insert WAIT_n at 2T(like explain in Z80 doc), so normaly it is retro-compatible with official T80. Doing this way I can set HACK_Z80 flag at false (T80.WAIT_n is now used in r005.8.16)
I also removed the edge detection of IO_ACK on gatearray, replacing it by state detection of IO_ACK, resulting cpctest's testbench back : this test of HSYNC width is now successfull.
HALT is the only one instruction that will be always OK on plustest.dsk instruction timing testbench. As this instruction cannot be timed.
Megablasters seems running fine on r005.8.16c29. Using 4 disk version of Megablasters (old one), sometimes bombs doesn't explode, it's normal : in this case you have to press the second fire button (gameplay...) plustest.dsk source code are available on winape websitetestbench 5 does pass, I have to explore them. {| class="wikitable"|except for two instruction : CPIR and CPDR -! Hex !! Inst !! CPC timing !! btw, in r005.8.16c29|-| 32 || LD (nn)16,A || 4|| 3|-| 3A || LD A,(nn) || 4 || 3|-| C0 || RET NZ || 2its instructions are using then same "WAIT_n generator" slower than CPI/4 || 2/3|-| C4 || CALL NZ,nn || 3/5 || 3/4|-| C5 || PUSH BC || 4 || 3|-| C7 || RST 0H || 4 || 3|-| C8 || RET Z || 4/2 || 3/2|-| CC || CALL Z,nn || 5/3 || 4/3|-| CD || CALL nn || 5 || 4|-| CF || RST 8H || 4 || 3|-| D0 || RET NC || 2/4 || 2/3|-| D4 || CALL NC,nn || 3/5 || 3/4|-| D5 || PUSH DE || 4 || 3|-| D7 || RST 10H || 4 || 3|-| D8 || RET C || 4/2 || 3/2|-| DC || CALL C,nn || 5/3 || 4/3|-| DF || RST 18H || 4 || 3|-| E0 || RET PO || 2/4 || 2/3|-| E3 || EX CPD : none (SPno WAIT_n added for theses instructions),HL || 6 || 5|-| E4 || CALL PO,nn || 3/5 || 3/4|-| E5 || PUSH HL || 4 || 3|-| E7 || RST 20H || 4 || 3|-| E8 || RET PE || 4/2 || 3/2|-| EC || CALL PE,nn || 5/3 || 4/3|-| EF || RST 28H || 4 || 3|-| F0 || RET P || 2/4 || 2/3|-| F4 || CALL P,nn || 3/5 || 3/4|-| F5 || PUSH AF || 4 || 3|-| F7 || RST 30H || 4 || 3|-| F8 || RET M || 4/2 || 3/2|-| FC || CALL M,nn || 5/3 || 4/3|-| FF || RST 38H || 4 || 3|}
==== GA: WAIT_n generator - plustest.asm ====
Il ne faudrait pas penser que l'on puisse changer de mode plusieurs fois par ligne. En effet. c'est "impossible"! (jusqu'à preuve du contraire, le mode s'enclenche à chaque synchro horizontale (HBL).
https://cpcrulez.fr/coding_logon35-le_gate_array.htm
 
==== GA: Moustache testbench ====
A homemade Testbench done firstly for helping Sorgelig to calibrate it's port of FPGAmstrad into MiSTer. But as Sorgelig core does run finer than mine (Pinball Dreams did pass ! WAIT_n:slow, CRTC 1, Brand name: Amstrad), I do then take back the good behavior using this testbench, resulting r005.8.16.1
 
It's a stress testbench around VSYNC/HSYNC/interrupt.
 
If the cat doesn't catch the line, this testbench does fail (that's a small palette testbench). First array is about VSYNC length comparable between a real CPC and an emulator. Second array is about interrupt length. Stress is done by inserting NOP, NOPNOP, NOPNOPNOP or else NOPNOPNOPNOP instruction before each measure.
 
[https://github.com/renaudhelias/RubikCubePaletteCPC/blob/master/JDVPA%236_test/jdvpa6_moustache.dsk jdvpa6_moustache.dsk]
 
[[File:Jdvpa6 moustache-FPGAmstrad testbench.png|thumbnail|jdvpa6_moustache.dsk testbench]]
 
==== GA: Sorgelig formula ====
GA instruction-timing formula (compteur1MHz is 4MHz mod 4):
--Sorgelig formula : .wait_n((phase == 0) | (IORQ_n & MREQ_n) | no_wait)
if compteur1MHz > 0 and (IO_REQ_R='1' or IO_REQ_W='1' or MEM_RD='1' or MEM_WR='1') then
WAIT_n<='0'
I put it inside OSD menu WAIT_n:quick in r005.8.16.8.5c1
Does pass easily plustest.dsk test 5, but not 9. Mister Amstrad does pass test 9, I misunderstood how its Z80 is hacked.
 
Another great Sorgelig formula btw :
-- Sorgelig formula : wire acc = (MREQ_n | ~RFSH_n) & IORQ_n;
MREQ<=not(MREQ_n or not(RFSH_n));
=== Z80 ===
==== Z80: Some bad instruction timing analysis ====
Based on [[http://www.winape.net/ WinAPE>download>Plus test>plustest.dsk]] testbench, mapped using [[http://clrhome.org/table/ Z80 instruction set - ClrHome]], instruction described then in [[http://www.zilog.com/docs/z80/um0080.pdf Z80 doc]], against [[http://www.winape.net/ WinAPE]] passing testbench timing.
{| class="wikitable"
|-
! Hex !! Inst !! CPC timing !! MEM_wr:quick !! MEM_wr:slow !! remark
|-
| 02 || LD (BC), A || 2 || || 3 || Fixed on r005.8.16c3
|-
| 10 || DJNZ, e || 4/3 || 4/2 || 4/2 || T States begin by "(5, " : M1 is longer than 4.
Seems adding also one Wait_n in this case (as about MEM_wr)
|-
| 12 || LD (DE), A || 2 || || 3 || Fixed on r005.8.16c3
|-
| 22 || LD (nn), HL || 5 || 4 || 6 || Fixed on r005.8.16c3
|-
| 2A || LD HL, (nn) || 5 || 4 || 4 || MEM_WR not used by here,
it seems correct following doc : 4+3+3+3+3=16, 16/4=4.
Damn.
|-
| 32 || LD (nn), A || 4 || || 5 || Fixed on r005.8.16c3
|-
| 34 || INC (HL) || 3 || || 4 || Fixed on r005.8.16c3
|-
| 35 || || 3 || || 4 || Fixed on r005.8.16c3
|-
| 36 || || 3 || || 4 || Fixed on r005.8.16c3
|-
| 70 || || 2 || || 3 || Fixed on r005.8.16c3
|-
| 71 || || 2 || || 3 || Fixed on r005.8.16c3
|-
| 72 || || 2 || || 3 || Fixed on r005.8.16c3
|-
| 73 || || 2 || || 3 || Fixed on r005.8.16c3
|-
| 74 || || 2 || || 3 || Fixed on r005.8.16c3
|-
| 75 || || 2 || || 3 || Fixed on r005.8.16c3
|-
| 77 || || 2 || || 3 || Fixed on r005.8.16c3
|-
| C0 || RET nz || 2/4 || 2/3 || 2/3 || RET cc, inverse of RET z.
|-
| C4 || || 3/5 || || 3/6 || Fixed on r005.8.16c3
|-
| C5 || PUSH bc || 4 || 3 || || PUSH qq (same as F5), ok using MEM_wr:low
|-
| C7 || RST 00h || 4 || 3 || 3 || RST p. Fixed on r005.8.16c3. T States begin by "(5, " : M1 is longer than 4.
|-
| C8 || RET z || 4/2 || 3/2 || 3/2 || RET cc, it seems correct following doc: true@5+3+3=>3*4; false@5=>2*4.
T States begin by "(5, " : M1 is longer than 4.
|-
| CC || || 5/3 || 5/3 || 6/3 || Fixed on r005.8.16c3
|-
| CD || || 5 || || 6 || Fixed on r005.8.16c3
|-
| CF || RST 08h || 4 || 3 || 3 || RST p. Fixed on r005.8.16c3
|-
| D0 || RET nc || 2/4 || 2/3 || 2/3 || RET cc, inverse of RET c.
|-
| D4 || || 3/5 || || 3/6 || Fixed on r005.8.16c3
|-
| D5|| PUSH de || 4 || 3 || || PUSH qq (same as F5), ok using MEM_wr:low
|-
| D7 || RST 10h || 4 || 3 || 3 || RST p. Fixed on r005.8.16c3
|-
| D8 || RET c || 4/2 || 3/2 || 3/2 || RET cc
|-
| DC || || 5/3 || || 6/3 || Fixed on r005.8.16c3
|-
| DF || RST 18h || 4 || 3 || 3 || RST p. Fixed on r005.8.16c3
|-
| E0 || RET po || 2/4 || 2/3 || 2/3 || RET cc, inverse of RET pe.
|-
| E3 || || 6 || 5 || 6 || Fixed on r005.8.16c3
|-
| E4 || || 3/5 || || 3/6 || Fixed on r005.8.16c3
|-
| E5 || PUSH hl || 4 || 3 || PUSH qq (same as F5), ok using MEM_wr:low
|-
| E7 || RST 20h || 4 || 3 || 3 || RST p. Fixed on r005.8.16c3
|-
| E8 || RET pe || 4/2 || 3/2 || 3/2 || RET cc
|-
| EC || || 5/3 || || 6/3 || Fixed on r005.8.16c3
|-
| EF || RST 28h || 4 || 3 || 3 || RST p. Fixed on r005.8.16c3
|-
| F0 || RET p || 2/4 || 2/3 || 2/3 || RET cc, inverse of RET m.
|-
| F4 || || 3/5 || || 3/6 || Fixed on r005.8.16c3
|-
| F5 || PUSH af || 4 || 3 || || PUSH qq, 5+3+3=11<3*4, is MEM_WR prologation effective two times here 1T+1T?
yes: pushing a register pair here, ok using MEM_wr:low
|-
| F7 || RST 30h || 4 || 3 || 3 || RST p. Fixed on r005.8.16c3
|-
| F8 || RET m || 4/2 || 3/2 || 3/2 || RET cc
|-
| FC || || 5/3 || || 6/3 || Fixed on r005.8.16c3
|-
| FF || RST 38h || 4 || 3 || 3 || RST p. Fixed on r005.8.16c3.
|-
|}
CC codes : all ok DD codes : somes ko ED codes : somes ko FD codes : somes ko DD CB codes : all ko FD CB codes : all koSolved in r005.8.16.3 (WAIT_n generator)
r005.8.16c4 results ==== Z80:Some bad instruction analysis ====Based on [[Filehttps:FPGAmstrad plustest5 r005//cpcrulez.8fr/applications_CPM-util-zexall.16c4 part1.png|thumbnail|FPGAmstrad_plustest5_r005.8.16c4_part1htm Zexall: Z80 instruction set exerciser]][[File:FPGAmstrad plustest5 r005, running fine in JavaCPC.8.16c4 part2.png|thumbnail|FPGAmstrad_plustest5_r005.8.16c4_part2]]
Solved in r005.8.16c6 results :[[File:FPGAmstrad plustest5 r005.8.16c6 part1.png|thumbnail|FPGAmstrad_plustest5_r005.8.16c6_part1]][[File:FPGAmstrad plustest5 r005.8.16c6 part2.png|thumbnail|FPGAmstrad_plustest5_r005.816.16c6_part2]]3 by Sorgelig (T80 fixes) - valided
==== Z80: Some bad instruction analysis ====Based on [[https://cpcrulez.fr/applications_CPM-util-zexall.htm Zexall: Z80 instruction set exerciser]], running fine in JavaCPC.==== Z80: ED A9 B9 cpd(r) / ED A1 B1 cpi(r) ====<s>Problem here : CPDR and CPIR has same implementation than ED A9 CPD and ED A1 CPI.</s> Solved by Sorgelig (does not pass plustest.dsk testbench 5 in r005.8.16.2 but does pass it on Sorgelig MiSTer fork version) In fact it is a more difficult instruction that I was thinking, if you watch at it, it shall take only 4 NOPs maximum but in plustest.dsk it does take 6/4 NOPs. In fact C9 RET seem also used here, as sub instruction. I remark that CPD and CPI does take 4 NOPs, so here CPDR/CPIR does not has same implementation than CPD/CPI (so I was wrong : CPIR/CPIR is implemented in T80) Done in r005.8.16.4 : just added a TState (TStates <= "110";) on case 3, that way plustest.dsk tb 5 does succeed.
==== Z80: TODO : cpc-power testbench ====
Some errors detected in r005.8.4 (test done by Philippe D.)
==== Z80: TODO : winape testbench ====Some errors detected in r005.8.16.3
2 errors left only in r005.8.16.6 (thanks to Sorgelig hard work in T80)
 
==== Z80: winape testbench ====
[http://www.winape.net/download/plustest.zip WinAPE plustest.zip (including Instruction and Interrupt timing tests)]
* 5EPASS : check_dtl3 - does pass but well to know that a dtl write less than sector_sector_size will not be taken into account (due to write per block of sdcard)
* 60FAIL01 : format2 - format command not implemented (this test is slow)
 
Perhaps dsk does go into sleep after a certain time of no use, and then takes a certain time to wake up when reused : a timeout for turning the motor off. Perhaps overrun of FDC does turn the motor off.
 
http://cpctech.cpc-live.com/docs/upd765a/necfdc.htm
During disk data transfers between the FDC and the processor, via the data bus, the FDC must be serviced by the processor every 27µs in the FM mode, and every 13µs in the MFM mode, or the FDC sets the OR (Over Run) flag in Status Register 1 to a 1 (high), and terminates the Read Data Command.
arnoldemu's second testbench
STarKos seems running PERFECTLY using A-Z80 instead of T80, please do contact me if you want a personalized fork version of CoreAmstrad using A-Z80 (I have just to switch a parameter : USE_AZ80:boolean:=false; in FPGAmstrad_amstrad_motherboard.vhd)
==== SOUND: Dual SID ====
Why not ?
----
http://www.youtube.com/watch?v=fh4v4OXridc
USB is just a state machine (welcome how are you today, show me your state, show me your state, show me your state....), encoding (have to read USB manual), you can use some usb sniffer softwares software to decode them (wireshark unix version does it fine). Sniffer software does not show low level messages (ack ko ok) but does show the high level messages (ones that show that a button is pressed or not)
As it is just encoding, you can capture signals and show that they differ only when you do unpress or press a button.
My own made program does it with poor serial port, so for dumping all RAM content it takes about 3 hours, and for dumping Amstrad RAM part it is about 15 minutes.
On [[http://www.digilentinc.com/Products/Detail.cfm?Prod=NEXYS2 Diligent NEXYS2 official page]], you can download a "Onboard Memory controller reference design" that contains explanation and VHDL source code about dumping on RAM/ROM of NEXYS2 directly from PC (usb port). I didn't tested this yet, but it is certainly a nicer approach :P
==== FPGA internal RAM size ====
===== VIDEO: An OSD option to enable scan-doubler =====
scan-doubler (simple TV to VGA converter) doesn't run ok in mode 2, but there is some many recent demo effect that doesn't pass using current VGA 72Hz implementation. Have to try to insert both VGA implementations(=> done in r005.8.15.2)
core_r005c18 seems having a scan-doubler outputOn Sorgelig fork, have to merge it.the scandoubler does run ok in mode 2 (but still not centered correctly on VGA 16/9)
===== VIDEO: A SCART output with border =====
[http://cpc.sylvestre.org/technique/technique_coul1.html Les Sucres en Morceaux - Couleurs - 1 - Les couleurs du CPC]
 
TODO : alternative color, but cool ones : yellow (green) blue orange pink.
===== VIDEO: Monochrome OSD =====
Add an option in OSD MENU : "SNAP DSK". Does create a copy of current disk in current drive into "SNAP[number].DSK". Heuristic for number : file count (at boot, incremented at each snap dsk done)
===== DSK: TODO HOWTO: fix message "This program will not run in this environment. Press any key" =====
HartOz
The core does not support the bundled CP/M+ software.
Certainly linked to ''Orion Primes.dsk'' loading problem.
 ===== DSK: TODO : tapes =====
Do read .CDT files also.
I think @ralferoo had already written FPGA code for tape reading for his FPGA CPC. Maybe you can borrow some code from him?
Bryce.
 
Caprice32 has a nice tape.c implementation, in fact blocks are just read bit by bit (byte is shifted), at a certain speed. Perhaps starting with a fix CDT small file, reading blocks in loop, could be a nice approach around that.
 
Some has tryed reading sound directly (on emulator), switching to '1' when level (from 0.0 to 1.0) does pass over 0.5+0.1 and to '0' when level does pass below 0.5-0.1, that's the way @ralferoo uses, but @ralferoo seems also interested around CDT. ZX-Uno 464 is also using an audio jack input.
 
amstrad_190518_r005.8.16.8 does now read CDT. I've seen that sorgelig implements also the CDT with "Breaking Baud" demo running completely.
===== DSK: TODO : snapshoot purpose =====
Like in emulators, do something to go back in time while running a game.
 
For info, it seems called the "Multiface 2" purpose.
==== Transmit ====
===== X/Y: TODO : AMX Kempston mouse support =====Asked by KLNHOMEALONEdid ask AMX mouse - sorry about this, finally I added the Kempston mouse model only :p Merge of Sorgelig kempston_mouse.v done in r005.8.16.6 [[File:Advanced art studio-kempston-mouse MiST.jpg|thumbnail|Advanced Art Studio - Kempston mouse]] Advanced Art Studio > Misc.> Input Devices> Kempston mouse Advanced Art Studio > Misc.> Input Devices> Fast cursor (if you want) I do not like the AMX mouse, because it can trick a beginner: in fact, in Advanced Art Studio, even if the mouse is already moving, you have to activate the "AMX mouse" on "Misc" menu or else the mouse stay very very slow, the time you understand that our mouse is slow and that it's abnormal, you are disgusted with Advanced Art Studio.
=== Others tricks ===
897
edits