Changes

Jump to: navigation, search

FPGAmstrad

1,619 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.
*'''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.
===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 :
* '''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.
* '''Amsoccer.cdt''': on third screen : no key ?* '''Anatomie.cdt''': incomplete load stepend 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.
* '''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.
* '''Ballon Buster.cdt''': black screen.
* '''Barbarian II.cdt''': black screen blue border. Welcome screen with glitchs
* '''Beach Head 2.cdt''': freeze load. Reboot id13
* '''Dark Man.cdt''': black screen pink border
* * on r005.8.16.8.1c3
* '''Death Pit.cdt''': welcome screen not loaded completelyidFF
* '''Deliverance.cdt''': black screen pink border, reboot id13
* '''Demon s Revenge.cdt''': "Searching 00" freeze
* * '''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===
In ZX-Uno FPGAmstrad, I implemented CRTC0.
CRTC1 has double sized VSYNC against CRTC0 (moustache test)
==== VGA: VRAM ====
==== 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.
[[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 ===
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.
897
edits