vblank and vsync stats #27
Replies: 6 comments 3 replies
-
It's a great idea. The FPS overlay might get very busy though so I think we'd need some way of configuring what appears on it.
There are. Custer's Revenge and a version of Donkey Kong by Andreas Dietrich both use VBLANK as a cheap way of outputting black. It's a neat trick but it's not clear to me if every TV likes it - but that's a discussion for another day.
Yes. I keep track of this in the television "resizer" code. This code tries to find the best framing for the TV image, the most important element for framing is the top and bottom VBLANK.
I agree. One of my goals for the Timeline window was to visually show historic information of this nature. At the moment it doesn't show VSYNC and VBLANK information but I could easily add it I think. It does show scanline count information, which is related I suppose. In the example below the red line shows the jitter Something similar to that but tracing the limits of VBLANK.
There's a BREAK JITTER command which breaks execution whenever the refresh rate changes. I could add something similar for whenever VBLANK position changes. I'm thinking a BREAK FRAMING command would be good. I'll have to think about how to watch for changes in VSYNC but it would be something similar I think. |
Beta Was this translation helpful? Give feedback.
-
I've not forgotten about this. I'm working through a list of code refinements that I've been meaning to make. It should make adding this sort of thing easier. |
Beta Was this translation helpful? Give feedback.
-
I'll be looking at this today. First attempt is quite simple. Max extent of top and bottom values of both VSYNC and VBLANK. These values are only set once the screen has settled down after ROM startup I'll put in the break to debugger option if any of these values change. But I'm wondering how to present these numbers so that it is clear whether the values are the current values. I'm thinking maybe an icon, showing that the values are now, or have in the past, been different. The debugger can show details of where and how the values were different. Is this what you had in mind? |
Beta Was this translation helpful? Give feedback.
-
television_halts branch shows work so far. VSYNC stats and "halting conditions" are working but I've not finished the VBLANK equivalent yet. Video here https://youtu.be/2GOA_Ir18EQ Demonstration ROM is Snow White, which has very bad VSYNC programming and so is a good test case. Things to notice in the video:
|
Beta Was this translation helpful? Give feedback.
-
I've added the VBLANK statistics to the overlay. Top and bottom indicated by icons. I hope that's clear enough. The tick icon is a reintroduction of an old idea that had removed some time ago. The tick indicates that the VBLANK values are exactly as recommended by Atari in the Stella Programmer's Guide |
Beta Was this translation helpful? Give feedback.
-
These changes have been merged into the master branch and are part of the v0.33.0 release |
Beta Was this translation helpful? Give feedback.
-
I would like for the FPS overlay (F7) to include the low-water and high-water marks for vblank and vsync enable and disable as well as the last scanline that each one took place. It would also be great if there's a way to configure it to always break when there is any variance in either signal. I don't know if there are any games that use vblank to selectively blank out lines mid screen. It may be good to only count the first disable of vblank after vsync and the last enable of vblank before vsync just in case.
This would make it easier for game developers and publishers to verify that the vsync and vblank signals stay consistent throughout all screen transitions in a game.
Beta Was this translation helpful? Give feedback.
All reactions