Possibility of 15Khz RGB output on C64 or Minimig?

Caution: Non registered users only see threads and messages in the currently selected language, which is determined by their browser. Please create an account and log in to see all content by default. This is a limitation of the forum software.


Also users that are not logged in can not create new threads. This is a, unfortunately needed, counter measure against spam. Please create an account and log in to start new threads.

Don't Panic. Please wash hands.
  • I was wondering if there was any possibility of the TC64 outputting 15Khz RGB video on the VGA connector that could be plugged into a 15Khz monitor with RGB inputs, such as Sony PVMs or various computer monitors that have 15Khz RGB? You can buy relatively cheap VGA breakout cables to RGB BNC connectors. I'm most interested in this feature for the C64 and Minimig cores, but it would also be great for other cores too like Atari ST and IBM XT cores. Thanks.

  • Each core would have to be adapted individually. For cores other than the main C64 core, the best person to ask is robinsonb5 - he will know if the switch-off feature for the Minimig line doubler is implemented.


    For the C64, it would be best if the complete frame buffer would be disabled, but that's a path that we never wanted to add. The reason for that is historic: Before the name "Chameleon" was chosen, the project name was "VGA64" and the goal was to have a VGA output only, because 15kHz monitors keep dying, and line transformers (the most susceptible component in those old monitors) are harder and harder to come by. Note that this was in 2007, and the spare part situation surely hasn't improved ever since :-)


    Back to today: Since bypassing the frame buffer is not implemented, the only "simple" method would be to output the picture from the frame buffer at 15kHz, with all the problems that it includes: Slight lag (at least one line), possible jitter on sync signals. Nothing that a real CRT wouldn't be able to cope with, but it wouldn't be the "perfect picture" that you'd expect from a sigital source, especially if the Chameleon is operated in cartridge mode. For stand-alone mode, it'll be easier to adjust frequencies for perfect V-Sync.


    Tobias and Peter will have to comment on the limits of implementing this. We did add the configurable pixel clock PLL in one of the latest updates, but I won't go as far as saying it's a "simple change", as in such a crammed design, nothing is really simple (both FPGA and menu system are at their capacity limits).


    Jens

  • For minimig AGA core:


    • F1 – Force Scandoubled NTSC (60Hz) mode. In this mode the core will imitate an NTSC Amiga.
    • F2 – Force Scandoubled PAL (50Hz) mode.
    • F3 – Force 15KHz NTSC mode. In this mode the core will be displayable on an NTSC TV using a suitable cable.
    • F4 – Force 15KHz PAL mode. In this mode the core will be displayable on a PAL TV using a suitable cable.
    • F5 – Force Scandoubled NTSC mode with inverted sync. This may help improve the picture quality if your monitor detects the Minimig display as 640 x 480 pixels instead of 720 or 800 pixels wide.
    • F6 – Force Scandoubled PAL mode with inverted sync. This may help improve the picture quality if your monitor detects the Minimig display as 640 x 480 pixels instead of 720 or 800 pixels wide


    For most other/if not all other cores ported by robinsonb5 there are easy ways to switch into 15KHz mode. Like holding the left button on the chameleon for 1 second or more. You can find information and download of each core here

  • @turrican9


    That's great to know about the 15khz modes with the AGA core and his other cores. I ordered a VGA BNC breakout cable to try it out.


    Jens


    Thanks for the detailed explanation and quick response, as always. :)


    To be clear, I don't care about perfect 15khz RGB video quality, I just want to have some way to hook up the TC64 output to my 15khz monitors. Almost all of my other old computers from the era work with those 15khz monitors except for my TC64 system, and I've always wished that I could use my TC64 with those monitors too. I do have a VGA CRT monitor that I use with the TC64, but the image quality just isn't quite the same as a standard definition 15khz CRT.


    Regarding spare parts for CRTs, there actually has been some development. Somebody has a working open-source "universal chassis" CRT project with a working prototype, and some pretty good plans for ways to develop it into a full replacement for a variety of CRT electronics. It's probably a few years away from a product you can buy, but he demonstrated his prototype at a recent retro-computer conference. There's a lengthy interview with the creator of the project here:


    https://www.youtube.com/watch?v=6l6mUYQhgSU


    Github project is here:

    https://github.com/tdaede/td-crt

  • As turrican9 says most of the core's I've worked on or ported support 15KHz output. With the Minimig core, once you've forced the screenmode with an F key at startup, the mode you've chosen will be saved when you save a config file.


    For the "DeMiSTified" cores (basically anything I've ported in the last couple of years except Rampage) then holding down the menu button / key for a couple of seconds will toggle the scandoubler. The few cores which support config files (off the top of my head, the MiSTery and BBC cores) will also save the scandoubler setting as part of the config.


    For future cores (if they don't need or support full config files) I intend to make them look for a "15Khz.cfg" file on the SD card, and disable the scandoubler if it's found.

  • For future cores (if they don't need or support full config files) I intend to make them look for a "15Khz.cfg" file on the SD card, and disable the scandoubler if it's found.

    That's a good idea - maybe Tobias could write this file out when saving a config that contains a 15kHz screen. *If* he's putting the feature on his todo list :-)

  • It works great. I've only tried the Amiga core so far, but it looks really nice on the screen. Thanks for all your work on these cores robinsonb5.


    The only problem I noticed is that Amiga interlaced modes seem to be alternating fields at half speed?


    Jens -- considering that this does works quite well and looks nice, it would be really great to have support in the C64 core. I suspect there are many other TC64 users who have RGB Commodore monitors and would appreciate 15khz support. Part of my problem now is that when I boot with the TC64 connected to a 15khz monitor, everything is garbled until I start a core that supports 15khz.


    I attached some photos of my PVM-20M2U showing the Amiga core. The diagonal lines are just an artifact of my camera sensor.


  • The only problem I noticed is that Amiga interlaced modes seem to be alternating fields at half speed?

    I had a feeling there was a problem with interlaced modes, but since I don't have a CRT myself, I wasn't sure I could judge it accurately using a TFT screen. Can you describe in more detail what you're seeing?

  • Monochrome monitors use the same voltage levels as the RGB part of VGA if I remember right, but we'd have to add composite sync generation to the feature set. We don't have anything to test this with (well.. maybe an old amber monitor in my collection), and the distance between test equipment and developer - I'm sorry to disappoint you, but this sounds out of reach. The colour of a monochrome green monitor may be unique, but them not really being easy on the eyes is also a known fact.


    My guess is that once you've tried it, you'll quickly go back to a flat screen, enjoying it's flicker-free, easy-to-read display. Even if the green is just a tad bit off.

  • I actually wasn't asking for you to make changes, I was wondering if it was possible to simply physically combine the sync signal line and green signal line with a "Y" cable, similar to how you just get composite video when you combine the chroma and luma outputs from the C64 with a "Y" cable I'm using a BNC breakout cable for my 15khz hookup, so combing the two signals would be easy for me to do. My TRS-80 Color Computer 3's RGB output literally just uses its composite video signal for RGB sync, so I'd think the sync signal output of the TC64 must essentially be the same as a composite sync signal.


    It's funny that you mention flicker because now that I finally have the gear to run a C64 and Amiga in PAL mode on a real CRT, the flicker is surprisingly annoying, haha. Whereas 60hz/NTSC doesn't really have any apparent flicker to me at all. So I'm planning to mostly just run NTSC/60hz modes unless I'm looking at demoscene stuff since I'm able to find NTSC or NTSC fixes for almost all the games I really want to play on C64 and Amiga.


    That Apple monitor is 60hz and also has persistent phosphor, so it has very little flicker.

  • so I'd think the sync signal output of the TC64 must essentially be the same as a composite sync signal.

    The 15KHz-capable cores do output composite sync when their scandoublers are disabled. (The sync signals are a characteristic of the currently-running core, rather than of the TC64 itself.)

  • The 15KHz-capable cores do output composite sync when their scandoublers are disabled. (The sync signals are a characteristic of the currently-running core, rather than of the TC64 itself.)

    Thanks for the info, so then Jens it sounds like the only remaining question is whether its electrically safe to physically join the sync output and green output from the TC64? Or would I need some kind of special circuit or video device to combine those signals without risk to the TC64?

  • it sounds like the only remaining question is whether its electrically safe to physically join the sync output and green output from the TC64?

    Please read again what I wrote: We do not generate composite sync, so there is no need to look into the electrical side. If the logical side doesn't even match, why attempt it on the electrical side?


    Jens

  • The 15KHz-capable cores do output composite sync when their scandoublers are disabled. (The sync signals are a characteristic of the currently-running core, rather than of the TC64 itself.)

    Since we've been asked to make a 15kHz mode for the TC64 core, and will probably only be able to do this by reducing the output pixel clock, but leave the complete frmaebuffer logic active, we won't have the chance to generate anything truly composite-sync-compatible. The question was "can we make it work on a 1084 monitor" - that answer is yes. Monochrome and composite sync is a different story.

  • we won't have the chance to generate anything truly composite-sync-compatible.

    Just to be clear, when I said "composite sync" I was talking about "both H and V sync end up on the HSync pin, as the exclusive-or of the two original sync signals". Without looking I couldn't say which cores generate a "correct" sync complete with serration pulses.

  • To my knowledge, just an XOR does not make a proper even/odd field designation.

    Indeed - that's my point - most of the cores in question (and the systems they imitate) don't make any attempt to interlace their video. If they do serration at all they either output all-even or all-odd frames.

    (I just checked the code for the NES, Sega Master System and Turbografx16 cores, and I don't see any code for serration in any of them. Minimig does have them, but I'm not convinced that they're implemented correctly - as discussed further up the thread.)