|
Post by D-Type on Oct 6, 2022 17:43:59 GMT -5
Fascinating discussion. Unfortunately I'm on holiday with the family this week, so can't participate much. This'll take me a few read-throughs the really understand it. I can't imagine what can cause a separate interfering 50Hz signal, if it's not from the same clock, I can't imagine how you'd ever get a stable image. I'm thinking the "draw everything directly after the wait recall" is important. If you do that and increase the 30,000 timer to, say, 30,010, does it start to wobble?
If I redraw the screen on interrupt, I get no wobble at all, no matter what processing I do after the draw, unless I take over 30,000 cycles to redraw, in which case it's always interrupted and then wobbles. I've not tried changing the interrupt timer start value yet.
|
|
|
Post by Peer on Oct 7, 2022 2:15:55 GMT -5
... I can't imagine what can cause a separate interfering 50Hz signal, A little scientific rambling (sorry, can’t help my nature ). I am not saying or assuming that there actually is such an interfering signal. It might be just a phenomenon which is natural to the workings of vector CRTs, or it might just be a gremlin on the board. All I have is a theory, or rather a model. A model is an abstraction of reality, and it tries to “describe” and/or “predict” in abstract terms how things behave in the real world. But it is not said that the model “is” the real world. And models can be wrong, or right, or just partially be right. And models can be disproved, or improved. Consider e.g. Newton’s Law of Gravity and his model of a universal time. It accurately describes the real world on earth-level scale, but not on cosmic scale. Einstein’s Theories of Relativity are an improvement of Newton’s model, working also on the very large scale. But not on subatomic scale. There we have Quantum Theory. That one seems to be accurate on the very tiny scale, but fails on the large scale. But both of them are just (mathematical) models of reality, neither says that reality actually is like this. And one day we might find a new model which is even more accurate? For now, this interfering-signal-model seems to work for the Vectrex, or rather for my Vectrex console, as I have not yet any evidence for other consoles. Yes, it does. As the model predicts. Interesting. I have not yet done any interrupt stuff. But the experiment would be to have a pause of varying duration before drawing things in the interrupt routine, so that each drawing of the same non-moving object has a slight cycle-offset in each frame.
|
|
|
Post by Peer on Oct 7, 2022 6:17:27 GMT -5
Short update: I rewrote the wobble-test binary and tested again. The results seem to exactly confirm what is predicted by the model. The test binary allows to preselect a specific frequency for the framerate. Then, two different tests can be run. In the first test (called the stable-test), four stationary dots are drawn at always precisely the same cycle within the frame window. In the second test (called the dynamic-test), four stationary dots are drawn at randomly varying cycle offsets within the frame window. For the dynamic-test, the model predicts that the four dots should always appear unstable (wobbling or jittering), regardless of the frame frequency. Especially also for 50Hz. And this is the case on my two consoles. For the stable-test, the model predicts that the four dots should appear stable only at 50Hz and 25Hz, but should appear unstable at all other frequencies. Again, this is the case on my two consoles (the 25Hz case is heavily flickering, but the positions of the dots look stable to my eyes). Yet, there is still one thing that does not fit the overall picture. The dots of the stable-test at 100Hz (15.000 cycles per frame) also look pretty stable to me. One explanation would be that the frequency of the sine wave of the interfering signal is not 50Hz, but 100Hz. But then the dots of the stable-test at 33Hz (45.000 cycles per frame) should also appear stable, which to my eyes they do not.
|
|
|
Post by Malban on Oct 8, 2022 5:39:54 GMT -5
Using your model, I implemented this into Vide:
Pretty cool - ey?
|
|
|
Post by Peer on Oct 8, 2022 8:23:59 GMT -5
Using your model, I implemented this into Vide:
Pretty cool - ey?
Awesome!!! That looks absolutely real! Can I have that Vide version?
|
|
|
Post by Malban on Oct 8, 2022 11:16:53 GMT -5
|
|
|
Post by Peer on Oct 8, 2022 12:37:52 GMT -5
Thanks, download complete. What exactly does "max pos offset" do?
Did you by any chance try out the binary I sent you? The stable-test, on a real console, I mean. I am especially interested in the 33Hz case (45.000 cycles). Do you think that there is a wobble? If the sine-wave runs at 100Hz, then 33Hz should be wobble free. My eyes hurt, and I am not sure. It helps if you turn down the brightness knob at the back of the console. That reduces the flickering which is caused by the low frequency, but then also wobbling is harder to see. If there is any. You can compare this with the 25Hz case and the 49Hz case, to find a good brightness setting. I am very sure that there is indeed no wobbling at 25Hz, but the 33Hz case bugs me...
Addendum: I am currently writing another test program, but I won't be able to finish that today. Maybe tomorrow.
|
|
|
Post by Malban on Oct 8, 2022 18:28:52 GMT -5
Yes I tried that. But it is really hard to discern.
I am leaning towards no wobble at 33Hz. But I can't be certain.
"max pos offset" is the amplitude of the added sin values in "vectrex pixel"
|
|
|
Post by Peer on Oct 9, 2022 0:26:53 GMT -5
... I am leaning towards no wobble at 33Hz. But I can't be certain. ... Same here. That would hint at a 100Hz interference instead of 50Hz. I have the strong feeling that we are (once again, or rather as usual) wasting time on things which are completely irrelevant in normal life, but which are fun to investigate anyway...
|
|
|
Post by Peer on Oct 9, 2022 3:13:58 GMT -5
Just ran the new test binary which allows to set an arbitrary number of cycles for a frame. Ran that one in parallel on a real console and in Vide. Putting some results down here in order not to forget them:
Kind of eerie how much Vide and reality look alike. However, there are slight differences. Which is natural, as the model is most likely not accurate enough. The simulated wobbling of my test dots seems to go mostly left-up-right-down in Vide, while on my console the dots also wobble on the other diagonal. Interestingly enough, the 33Hz case looks pretty stable on the console as well as in Vide, with the interfering signal simulated at 50Hz! This would be expected for 100Hz, but not for 50Hz. Have to think about that…
|
|
|
Post by Malban on Oct 9, 2022 3:34:15 GMT -5
In Vide I have an additional y-offset in the sinus function, I made that configurable but didn't include it yet in the configuration screen. At the moment it is VERY small: 30000 cycles = 360° (at 50 Hz). yOffset = 30 cycles = 0.360 degrees. Theoretically a higher offset does not seem sensible - but I could make that parameter "open" in the configscreen and you can toy around with that.
|
|
|
Post by Peer on Oct 9, 2022 3:41:35 GMT -5
Ok, this (or maybe me?) is just getting weirder. At certain odd framerate-frequencies, the wobbling "looks" like if it follows some superposition of two sine waves with different periods??? Something (but not exactly) like:
sin(x*p_1)*cos(x*p_2) For an illustration, try, for example,
This is the pattern the wobbling seems to follow. And from the looks of the wobbling I am trying to deduce or recompute the wave-form of the interfering signal. And in these cases this does not hint at a simple sine-wave, but at something more complex. Probably a wild-goose chase...
|
|
|
Post by Peer on Oct 9, 2022 3:42:48 GMT -5
... Theoretically a higher offset does not seem sensible - but I could make that parameter "open" in the configscreen and you can toy around with that. Yes, please
|
|
|
Post by Malban on Oct 9, 2022 3:59:50 GMT -5
|
|
|
Post by Peer on Oct 9, 2022 5:40:34 GMT -5
Thanks, downloaded. But I probably won't be able to test again before tonight.
|
|