Changes

FPGAmstrad

1,305 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.
* '''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