Chameleon Core update 9o released

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.
  • There is no easy way to make this an option.


    Do you have VIC-Sync enabled? That is much more likely going to cause problems than sync polarity - which shouldnt even matter much with modern TFT displays.

  • There is no easy way to make this an option.


    Do you have VIC-Sync enabled? That is much more likely going to cause problems than sync polarity - which shouldnt even matter much with modern TFT displays.

    Only my BenQ monitors I mentioned will support VIC II sync. So the others I tested with VIC II sync off

  • sync polarity - which shouldnt even matter much with modern TFT displays.

    Sync polarity can matter with modern TFT displays, because it's one of the cues the screen uses to guess what the incoming screenmode is, and thus how many pixels it should sample. For example, if I feed a DblNTSC screen to my Dell U2311, it will guess that it's looking at either 640x480 or 720x400 depending on sync polarity (which can be adjusted with a BEAMCON0 tooltype in the monitor driver's icon). It's smart enough to adapt the vertical resolution to the number of actual active scanlines, but when it only samples 640 pixels and the Amiga's outputting 720 the result is a fuzzy mess.

  • As robinsonb5 explains, this seems to be the problem. The monitors seems to guess resolution and quite a few monitors go for 640x480 when selecting resolutions like 720x576 50Hz, 768x576 50Hz or 800x600 50Hz. With the older firmwares for TC64, the ones before the VGA changes, my BenQs would not guess 640x480 when I selected 800x600 50Hz. They would guess something like 1024x576 50Hz. It would almost fill the screen, show the overscan correctly and look okay. Whereas the new 800x600 50Hz setting always goes for 640x480 and makes it not usable. I'm guessing the sync polarity was changed in the later firmwares?


    Of course, different monitors will guess different resolutions depending on sync polarity. This is why I believe that having the option to invert sync polarity would give us more options.

  • I did check the older beta 9i firmware now. The one before the VGA changes. And before the new resolutions like 720x576 and 768x576 was added. When I select 800x600 50Hz with VIC II sync on in 9i firmware my BenQ BL 702A and BL912 guesses 832x624 50Hz every time, and not 1024x576 50Hz like I wrote in my last post. This gives me the full overscan, correct aspect ratio but with some black bars on the top and bottom. But fully usable.


    With the later firmwares when I select 800x600 50Hz with VIC II sync on my BenQs guesses 640x480 50Hz every time. Cropping off a big part at the bottom of the image and not showing the overscan correctly. Making this resolution not usable. With the later firmwares I have to use 768x576 50Hz VIC II on. This gives me correct aspect ratio (at least close to it) and full overscan. Get some black bars on the sides. But I can make them smaller by increasing the pixelclock to 100. 720x576 50Hz will more often than not guess 640x480 50Hz. Making it unusable. The few times it guesses the correct 720x576 50Hz It fills the screen perfectly, full overscan and perfect aspect ratio. In many cases VIC II sync on or off does not make a difference when using the 50Hz profiles. Only if I enable VIC II sync on 60Hz profiles it will guess different due to the monitor having to guess one of it's 50Hz profiles instead of 60Hz or higher profiles.


    I really would wish for an option under VGA settings to invert sync polarity. If it's possible of course. And if it's possible I don't see how it would hurt anything. Just keep the rest as is with the current polarity settings but add that option so people who wants can try to invert the sync polarity with this option.

  • As said, it's not easily possible. (Comparing with the older VGA stuff isnt really useful either, as the timing was completely different and even mostly wrong)


    Quote

    Sync polarity can matter with modern TFT displays, because it's one of the cues the screen uses to guess what the incoming screenmode is, and thus how many pixels it should sample.

    If that is the case - there must be some resource that tells use what polarity a monitor is supposed to see for a specific mode? Where is it? :)

  • I may actually have found a new 'sweetspot' for my BenQ BL702A/BL 912. This fills the screen properly with no letterbox, gives full overscan and correct aspect ratio. Due to the higher pixelclock it gets a bit more blurry but I sharpen that up with scanlines at 75%. This is with beta 9Q firmware on my TC64V2. When I select 1152x864 50Hz VIC-II sync on my monitor 'guesses' very close by selecting 1152x870 50Hz.

  • So been messing some more with the 720x576@50Hz ViC II sync on resolution on my BenQ BL 702As and BL912. So what I found is that the first time I change to this resolution my monitors will guess the correct 720x576@50Hz resolution and fill the screen perfectly (probably mentioned this earlier). As soon as I reset the chamelon or turn the system off and on again my monitors will guess 640x480@50Hz and much of the lower picture will not show. If I turn the monitors off and on again they will guess the correct resolution again (720x576@50Hz).


    So when the chamelon resets or is booting up from coldstart it will run the default 800x600@72Hz until It reaches the menu. Then it will switch to the saved resolution profile set by the user. And this switching causes my BL702As and BL912 to guess the wrong (not suitable) resolution. Until I turn my monitors off and then on again, then everything is fine. So if there was a way I could have the 720x576@50Hz resolution at reset or coldstart then the problem would be gone. Would it be possible at all?

  • That early startup code is intended to show "something" on screen in case something goes wrong - it's a debug screen and should therefore be visible on almost any monitor. It would be counter productive to already load user settings there, as those might be "special" like in your case, where a 50Hz-capable monitor is required.


    I can imagine that pausing the output for a certain minimum amount of time can help, but you can try that yourself: If the output has already switched to 720x576 and your monitor has falsely detected 640x480, leave both units powered on and only remove the VGA connector from the Chameleon for maybe 2 seconds. If you then plug it back in again, will the monitor detect the correct resolution?


    If that fixes it, we may be able to add an option in the settings to "emulate" this plugging event by disabling the output signals for a certain period of time (which you'll hopefully tell us). I would not want to add this wait by default, as one of the properties of the Chameleon is it's quick start. It would be nice if others won't have to suffer from a wait that's not necessary for their setup.

  • That early startup code is intended to show "something" on screen in case something goes wrong - it's a debug screen and should therefore be visible on almost any monitor. It would be counter productive to already load user settings there, as those might be "special" like in your case, where a 50Hz-capable monitor is required.


    I can imagine that pausing the output for a certain minimum amount of time can help, but you can try that yourself: If the output has already switched to 720x576 and your monitor has falsely detected 640x480, leave both units powered on and only remove the VGA connector from the Chameleon for maybe 2 seconds. If you then plug it back in again, will the monitor detect the correct resolution?


    If that fixes it, we may be able to add an option in the settings to "emulate" this plugging event by disabling the output signals for a certain period of time (which you'll hopefully tell us). I would not want to add this wait by default, as one of the properties of the Chameleon is it's quick start. It would be nice if others won't have to suffer from a wait that's not necessary for their setup.

    Just got home. Did some testing. I did exactly what you describe here. First I set the resolution to 720x576@50Hz VICII sync on and saved the settings. At which point my monitors correctly switches to 720x576@50Hz and everything looks nice. Then I power off my system and power it on again. At which point my monitors switches to 640x480@50Hz.


    At this point, with both the system (C64 + TC64V2) and monitor still turned on I unplug the VGA cable and then plug it back after about 2 seconds. This makes my BenQ BL912/BL 702As switch to the more correct 720x576@50Hz. If I unplug and then instantly re-plug the VGA cable then the monitors will identify the wrong resolution and switch to 640x480@50Hz. But about 2 seconds seems to do it. I tried this about 10 to 15 times. And every time I waited about 2 seconds before I plugged the VGA cable back my monitors would detect and switch to the more correct 720x576@50Hz mode.


    So it seems your solution could work for my case at least. Would be awesome if you could implement a menu option for this. Seeing as the BenQ BL702As and BL912 are quite popular for both the Indivision line of scandoublers and TC64V1/V2. They will sync perfectly to 50Hz. And 720x576@50Hz seems to be the sweetspot for the TC64V2 on these monitors. So if that delay option selectable from the menu would do the trick that would be awesome.


    Thanks

  • Thanks for confirming that this is a bug in the monitor, not the Chameleon.


    The wait-option would go on Tobias ' todo list. And I know he hates additional things on the Chameleon todo list, as there is so little space available.. let's hope it doesn't hurt too much and won't require additional code in the FPGA.

  • To me it sounds like the problem is that the monitor insists on using the first mode it detects?


    I dont think we can do much about it - the Chameleon core always outputs an image, initially some standard 800x600, then whatever was configured in the Menu.


    Perhaps holding space at startup for some seconds helps somehow? That would give the monitor some time to sync on the initial mode before it goes to the configured one.

  • To me it sounds like the problem is that the monitor insists on using the first mode it detects?

    To me, it sounds like the monitor will continue in it's list after the current mode. If the current mode is already beyond the position of 720x576, it will falsely detect a different mode that is "sufficiently similar".


    My idea was to shut down VGA sync generation completely for 2 seconds before activating the 50Hz mode, so the monitor starts it's search at "zero" again, just like it does after a power cycle or after unplugging the connector for 2 seconds. We may have to rub pwsoft 's lamp to ask if there's already a way to do that.


    Another possibility (and more things to try for turrican9 ) would be to find a mode in the already-existing list of Chameleon output modes that is good for switching *from*: Please try if selecting one of the other modes first, then back to 720x576@50Hz also makes it work, as that's something that the software can always do without adding anything to the FPGA core.

  • Another possibility (and more things to try for turrican9 ) would be to find a mode in the already-existing list of Chameleon output modes that is good for switching *from*: Please try if selecting one of the other modes first, then back to 720x576@50Hz also makes it work, as that's something that the software can always do without adding anything to the FPGA core.


    So switching from 768x576@50Hz VIC II sync ON to 720x576@50Hz VIC II sync ON seems solid after 10 + tries. Meaning the monitor will indeed select the desired 720x576@50Hz setting after 10+ tries. If I try to go from 768x576@50Hz VIC II sync OFF to 720x576@50Hz VIC II sync ON the monitor will switch to the 'not wanted' 640x480@50Hz.


    Other resolutions I tried was 640x480@50Hz, 800x600@50Hz and 800x600@72Hz. For all of them I tried VIC II sync ON or OFF. About 3 or 4 tries with 800x600@50Hz VIC II sync on then back to 720x576@50Hz VIC II sync ON seemed to work in those few tries. But not if I tried VIC II sync OFF and then back to 720x576@50Hz VIC II sync ON. Would then go back to the not wanted 640x480@50Hz. 640x480@50Hz VIC II sync ON or OFF would fail to switch to the proper resolution when I switched back to 720x576@50Hz VIC II sync ON. 800x600@72Hz and VIC II sync ON would give me the correct resolution a couple of times when switching back to 720x576@50Hz VIC II sync ON, but failed after a few attempts. Giving me the not desireable 640x480@50Hz.


    So so far it seems like it's solid when coming from 768x576@50Hz VIC II sync ON and switching to 720x576@50Hz VIC II sync ON. As for 800x600@50Hz VIC II sync ON I would need to do more testing to be sure.

  • "hope" in terms of a software fix possibility: Yes, as Tobias can surely implement something like that. However, I need him on Keyrah V3 right now, so it's going to be some time until he can go back to Chameleon development. And even then, it's up to him to prioritize this.

  • The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.