Changes

FPGAmstrad

152 bytes added, 18:13, 9 January 2018
/* MiST-board special features */
Bulk of effort done/TODO-list, especially for the MiST-board's CoreAmstrad implementation.
==== ROM and /RAM ======== ROM/RAM : extension ====
In r004, you have more RAM +512KB, and you can add ROMs.
In r005.4, I add another UpperROM set : .f00 to .fFF file extension (hexa). If you press "space" during a reset_key ("page up" key), upperROM files used range from .f00 to .fFF instead of ranging from .e00 to .eFF. LowerROM .eZZ file extension is still used in both case.
==== ROM/RAM: TODO : RAM 4MB extension ====
Why not ?
==== DONE : A advanced dsk drive VIDEO ====
Done on r004, I added also a second Drive in order to copy easily files from one disk to another. Irregular sector size ok. You just have to select Drive A or B from OSD before selecting another dsk file. Write is done directly on sdcard dsk file, so you can save games, and write texts... You can now change disk without reset. And then play games using several disks. [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/fdc-floppy-t80ds-detection/ CPCWiki forum - Amstrad CPC hardware - FDC floppy t80ds detection] : talk about FDC in MiST-board CoreAmstrad. ==== DONE : A advanced FDC (with write access and more) ====Since r004 "mecashark", the FDC implementation has write access !   ==== TODO : SNAP DSK ====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) ==== TODO : fix message "This program will not run in this environment. Press any key" ====HartOz The core does not support the bundled CP/M+ software. With a valid working CP/M+ Disc1 image mounted, the systems returns with the following message after issuing the |cpm command. "This program will not run in this environment. Press any key"Due to using wrong language version of CP/M+ disc (cpmpluf1.dsk is french version of CP/M+)[[File:Cpmpluf1.dsk.png|thumbnail|CP/M+ fr disk inserted (cpmpluf1.dsk)]] "Wrong disk for your configuration" message seen in one-disk version of "Batman Forever" demo (two separate disk version runs fine), in forum they say that dsk image is using "bad track numbers", in fact when looking at a Track-Info with side 1 (instead of 0), track and side are correct in Track-Info but side is not ok in Sector-Info, normaly track/side are ignored in Sector-Info (Track-Info is used for that)... but still having the message, something else seems also wrong. Do fix also message "Bad Command" while running a not existing file on disk. Certainly linked to ''Orion Primes.dsk'' loading problem.     ==== TODO : A X/Y input ==== I want to work also on screen-pen entry, is there a manner to detect an analog X/Y as pen or gun ? YES : [http://java.cpc-live.com/gx4000.php Markus Hohmann] does it, he implements the lightgun on JavaCPC-GX4000 using mouse :) http://cpcrulez.fr/hardware-pistolet-magnum_light_phaser_ACPC.htm register 11,12 and 13 ? ==== DONEVIDEO: A SCART output =====
In order to plug FPGAmstrad on TV, and help debugging. And also to test a simple scan-doubler.
r005 : VGA 60H/TV 50Hz.
==== DONE = VIDEO: an 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.
core_r005c18 seems having a scan-doubler output, have to merge it.
==== DONE = VIDEO: A SCART output with border =====
Original output signal has no border, I have to implement the original border in TV mode.
Done in r005.8.14.2
==== DONE = VIDEO: move SCART parameter into mist.ini =====
Doing like in other cores : do use the global "scandoubler" option in mist.ini to switch between VGA and TV mode.
==== DONE = VIDEO: mix SCART H and V sync into HV sync (sort of C sync) =====
[http://github.com/mist-devel/mist-binaries/issues/35 Amstrad CPC core · Issue #35 · mist-devel-mist-binaries · GitHub] :
SCART TVs expect a composite sync. The VGAs vsync is connected the SCART pin used to detect a RGB signal and is constantly driven high. A TV will not cope with a video signal with separate H and V sync.
Done in r005.8.14.1
==== DONE = VIDEO: refactor of Parrot PAL signal =====
I found a running 15kHz TV, with [http://github.com/mist-devel/mist-board/blob/master/tutorials/soc/lesson11/lesson11.png mist-board tutorial lesson11 Parrot PAL] running fine, but not with CoreAmstrad r005.8.14.1. It's the same TV I used some years ago at festival with original CPC. I have to refactor Parrot tutorial and adapt it on CoreAmstrad in order to generate a better TV signal quality.
Test about centering screen are done using "BORDER 0", this way border is ignored and does interact with HSYNC/VSYNC screen synchronisation.
==== DONE = VIDEO: CRTC1 =====
r004.8 : a better CRTC/Gateway implementation, following better JEmu (JavaCPC) one... but it is a CRTC1 (but a better ONE)
Some bugs came from PPI also (keyboard bugs in particular), solved in r004.8
==== DONE = VIDEO: CRTC1 detection =====
I don't remember exactly, but in r005.8.4, one of "Midline Process"/"From Scratch"/"Pheelone" demo does crash due to a "CRTC1 needed" message : my CRTC1 seems not detected as a true CRTC1... If's "From Scratch" that does display this message in fact.
[http://quasar.cpcscene.net/doku.php?id=coding:test_crtc Test CRTC - Quasar Net]
==== = VIDEO: TODO : Interlaced scanlines =====
Interlaced scanline is an effect existing in CRTC (register R8) used by Wolfenstrad demo
L'écran passe en 100Hz, les registres 4 et 7 doivent être doublés pour retomber sur 50Hz
==== DONE = VIDEO: Scanlines =====
Here effect is about simulating CRT (not CRTC.R8) original screen. There is several way to implement it.
Here, truly one line out of two is 1/2 darker. By visual effect this result in "a thin full black horizontal line".
[[File:FGPAmstrad cc withScanlines.png|thumbnail]]
==== DONE = VIDEO: Monochrome option =====
Add an option to turn screen into green monochrome mode (in mode TV and in mode VGA)
[http://cpc.sylvestre.org/technique/technique_coul1.html Les Sucres en Morceaux - Couleurs - 1 - Les couleurs du CPC]
==== DONE = VIDEO: Monochrome OSD =====
Could be great having the OSD in monochrome when monochrome is selected and scanlined when scanline is selected
Done in r005.8.14.4
==== = VIDEO: TODO : Scanline during monochrome + scandb50Hz modes =====
soleil vert demo display result is best using scandb50Hz mode (r005.8.16c29) because it does alternate two pictures at 25Hz, seeming then like a fixed image for humans.
But my scandb50Hz option does not enable yet the scanline effect that could improve her agains this demo. To do.
==== TODO : Ethernet ====Integration of "ethernec.v". Several multiplayer games using several CPC does already exists VIDEO: [[Virtual_Net_96]].   ==== TODO : AMX mouse support ====Asked by KLNHOMEALONE. ==== 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. ==== DONE BUT SEEMS USELESS : welcome VGA signal =====
While bootloader is not fully started, do display a lighter screen output (not darker pixels as original screen color CPC depth using more resistors), as it VGA should be nicely centered at each boot. And then after come back to original CPC pixel depth.
This solution does not fix the problem of "stupid screen", but reveals something interesting about the defect (next chapter)
==== = VIDEO: SAMSUNG 16/9 tests =====
Using lighter pixels full white screen during bootload show me that screen doubts between two positions : a perfect centered 4/3 with 6.5 centimeters horizontal border each; and a starting 16/9 at left, crop at 6.5 centimeters left.
* one time screen does crop at 6.5 left and right, changing the screen vertical position using menu does translate the image cropping left and right at fix position : 6.5 centimeters fix black border. About extra 1 centimeter pixels : image in middle of image does move, but not the borders at all.
* a second time image does move perfectly (completely/totally) left and right without crop, and if centered has 6.5 black border left and right. This time image seems complete but crushed.
==== DSK ====
 ==== = DSK: A advanced dsk drive ===== Done on r004, I added also a second Drive in order to copy easily files from one disk to another. Irregular sector size ok. You just have to select Drive A or B from OSD before selecting another dsk file. Write is done directly on sdcard dsk file, so you can save games, and write texts... You can now change disk without reset. And then play games using several disks. [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/fdc-floppy-t80ds-detection/ CPCWiki forum - Amstrad CPC hardware - FDC floppy t80ds detection] : talk about FDC in MiST-board CoreAmstrad. Since r004 "mecashark", the FDC implementation has write access ! ===== DSK: TODO : SNAP DSK =====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 : fix message "This program will not run in this environment. Press any key" =====HartOz The core does not support the bundled CP/M+ software. With a valid working CP/M+ Disc1 image mounted, the systems returns with the following message after issuing the |cpm command. "This program will not run in this environment. Press any key"Due to using wrong language version of CP/M+ disc (cpmpluf1.dsk is french version of CP/M+)[[File:Cpmpluf1.dsk.png|thumbnail|CP/M+ fr disk inserted (cpmpluf1.dsk)]] "Wrong disk for your configuration" message seen in one-disk version of "Batman Forever" demo (two separate disk version runs fine), in forum they say that dsk image is using "bad track numbers", in fact when looking at a Track-Info with side 1 (instead of 0), track and side are correct in Track-Info but side is not ok in Sector-Info, normaly track/side are ignored in Sector-Info (Track-Info is used for that)... but still having the message, something else seems also wrong. Do fix also message "Bad Command" while running a not existing file on disk. 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. ===== DSK: TODO : snapshoot purpose =====
Like in emulators, do something to go back in time while running a game.
 
==== Transmit ====
Could be nice around cross-dev.
 
===== Transmit: TODO : Ethernet =====
Integration of "ethernec.v".
 
Several multiplayer games using several CPC does already exists : [[Virtual_Net_96]].
 
==== X/Y ====
===== X/Y: TODO : A X/Y input =====
 
I want to work also on screen-pen entry, is there a manner to detect an analog X/Y as pen or gun ? YES : [http://java.cpc-live.com/gx4000.php Markus Hohmann] does it, he implements the lightgun on JavaCPC-GX4000 using mouse :)
 
http://cpcrulez.fr/hardware-pistolet-magnum_light_phaser_ACPC.htm
 
register 11,12 and 13 ?
 
 
==== X/Y: TODO : AMX mouse support ====
Asked by KLNHOMEALONE.
=== Others tricks ===
1,200
edits