Closed juri74 closed 7 years ago
Amstrad is using a 50Hz display, not interlaced. It cannot be scandoubler for mode 2 (lost of precision)
Using mist.ini scandoubler parameter, you can enable original signal output (SCART), but it was a blind development : some signal are ouput, but VSYNC/HSYNC offset are not confirmed.
I tested with my TV, but no way to run any 15kHz signals on it correctly (SNES doesn't run on it, same problem of display moving up), so I'm blind here. I have to validate a TV before validating my code...
Process generating TV signals is "aZRaEL_process" in https://github.com/renaudhelias/CoreAmstrad/blob/master/BuildYourOwnZ80Computer/simple_GateArrayInterrupt.vhd RED_out,GREEN_out, BLUE_out, HSYNC_out, VSYNC_out.
Another way of approach : compare signal with MAME's Amstrad core (if it does run correctly at 15kHz)
sorry for late reply, i noticed other cores uses a RGBS (RGB + COMPOSITE sync) for 15khz video signal, maybe the problem is that HV sync control.. unfortunately VHD is alien language for me :(
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.
Bu tit's usually sufficient to xor hsync and vsync to get a csync acceptable for many TVs.
But it's usually sufficient to xor hsync and vsync to get a csync acceptable for many TVs.
@renaudhelias maybe could you give it a try? thanks
Added to TODO-list (TODO-list is here : http://www.cpcwiki.eu/index.php/FPGAmstrad#Effort_done)
http://github.com/mist-devel/mist-board/tree/master/tutorials/soc#lesson-11-15khz-tv-video could be fine to adapt first (50Hz/60Hz), as it I could begin by... validating my TV.
@juri74 lesson11's core (60Hz with separate V and H sync) does run correctly on your TV ?)
Hi @harbaum can you first align lesson11 60Hz 15kHz with unix "modeline" -parameters- command protocol ? (refactor) / "modeline" is an unix command showing all world screen/tv parameters for generating easily all world screen/tv signals...
@renaudhelias thanks for the hint. I'll have a look.
I saw in tutorial the use of xor for TV output, so then I try it at home, my TV sucks @15kHz.
So I put a try by here : https://github.com/mist-devel/mist-binaries/tree/master/cores/amstrad/experimental
@juri74 perhaps you can try theses not-tested version (4 alternates).
@renaudhelias, if you point me to your source code changes for these 15khz tests I can have a look. I've done quite a lot of 15khz work recently and can test it properly.
Amstrad is 50Hz
Candidate patchs are here (one is inversing the output signal...) :
Component concerned is : http://github.com/renaudhelias/CoreAmstrad/blob/master/BuildYourOwnZ80Computer/MiST_SCART.vhd This MiST_SCART.vhd component does use the mist.ini feature http://github.com/mist-devel/mist-binaries/blob/master/cores/amstrad/experimental/mist.ini scandoubler_disable=1
Another component can be patched also : http://github.com/renaudhelias/CoreAmstrad/blob/master/BuildYourOwnZ80Computer/simple_GateArrayInterrupt.vhd My second patch is not a great one (xorTV2 and xor2TV2 alternative), I did just try hacking the "HSYNC_out" output (used for TV signal) by here In this last component simple_GateArrayInterrupt.vhd you'll find the TV signal output generation :
If you never tryed CoreAmstrad all is explain here http://github.com/mist-devel/mist-board/wiki/CoreDocAmstrad#installation (you can contact me also : renaudhelias at gmail dot com)
Having a quick look this one looks correct to create the csync. I can't check properly until I get home and test the cores and see what signals are being generated.
See my quick conversion changes of TCA2600 here. Specifically: VGA_HS <= not (vga_hsync_i xor vga_vsync_i) when tv15khz='1' else vga_hsync_i; VGA_VS <= '1' when tv15khz='1' else vga_vsync_i;
hello @renaudhelias ,
my wife is at the hospital i do not have time to try at the moment sorry :( i will publish your test link on my fb page and let other mist users to try it out. thanks for your effort!!
EDIT 1: sony trinitron 21 inches (PAL TV but it support ntsc and pal60) 170308 r005.8.14e xorTv: image displayed with some disturbs & rolling up 170308 r005.8.14e xor tv 2: image displayed with some disturbs, off center on the left & rolling up other two experimental cores: black screen
amstrad_170308_r005.8.14e_xorTV will be integrated in next realise.
DrOG from atari-forum succeeded in running with it. I think last problem is about VSYNC/HSYNC signal length.
"Unfortunatley no F12-menu"
bernouilli from atari-forum did succeed also using amstrad_170308_r005.8.14e_xorTV, he said that _amstrad_170308_r005.8.14exorTV2 is better centered (r005.8.14e_xorTV2 does correct a delay of RGB output versus HSYNC/VSYNC output, passing signal throw the same number of components, but it's a "no brain" version)
amstrad_170308_r005.8.14e_xorTV2 :
amstrad_170308_r005.8.14e_xorTV :
Offset seems needed, both in VSYNC and HSYNC.
great!
amstrad_170323_r005.8.15c12.rbf published (for ones of atari-forum), normally does resolve OSD in TV mode. It's candidate 12 because I'm currently working on next version (FDC)
Return : OSD is OK.
Please add AMX mouse support if possible
amstrad_170328_r005.8.15c16e.rbf published "applying Gerald HSYNC/VSYNC width formula"
@KLNHOMEALONE added to TODO-list (http://www.cpcwiki.eu/index.php/FPGAmstrad)
"Perfect and well-centered!" - DrOG
I've got a TV ! PAL 50Hz 15KHz Parrot test ( https://github.com/mist-devel/mist-board/blob/master/tutorials/soc/lesson11/lesson11.png ) does pass on it, but CoreAmstrad doesn't. I'll refactor Parrot test into modeline and then in a second step will try to adapt it to CoreAmstrad output :)
I compare HSYNC/VSYNC width with Parrot test, it results this experimental version : cores/amstrad/amstrad_170507_r005.8.14.2e.rbf (not tested)
Ok, back from Tetalab laboratory.
r005.8.14.2e.rbf does run fine, one char or one half-char h-offset in left (screen not horizontally centered)
All chars are displayed, but HDISP does come too early and go away too later : about one half-char each.
Ignoring the two previous bugs. Border seems having a 4 chars size (H and V)
amstrad_170507_r005.8.14.2j.rbf TV mode with borders (not tested)
r005.8.14.2j OK for me, just an half-char offset of HDISP (cutting chars at right) but border limits OK.
Tryed also with another TV (same model but image not stable verticaly (blurred screen))
r005.8.14.2 realized
not an issue but just a request: could be possible to "unlock" 15khz RGBS mode please? thanks