I've been very interested in the "racing the beam"-technique used by the HI-RES program and the recent "A Bright Shining Star"-demo. The latter one updated 10 characters in video-RAM per line in 60 cycles (LDA #$xx sta $80xx taking 6 cycles each). By my calculations one should be able to do 11-char-wide "graphics" by having the first line of each group of 8 lines updated in the VBLANK-area and only updating the following 7 lines while racing the beam. This needs very exact raster-timing, however. I have mocked this up in Fridgegrid. See image below.
I don't own a real PET (just a MiniPET by TFW8B) so I could only try this in emulation. I would appreciate if the emualtion was as exact as possible. I noticed both demos above don't work correctly on the MiniPET. This is because it does the video-generation a little differently. To check this I have written a short program that measures the cycles of the video- and VBLANK-area with a VIA-timer:
In GTK-VICE for PETs without CRTCS this gives values of 12800 cycles for video and 3840 for VBLANK (with some jitter), while the MiniPET does about 12688 / 4008. I would appreciate if folks with real PETs could run this and report the values and also whether it was run on a CRTC or non-CRTC PET.
I don't own a real PET (just a MiniPET by TFW8B) so I could only try this in emulation. I would appreciate if the emualtion was as exact as possible. I noticed both demos above don't work correctly on the MiniPET. This is because it does the video-generation a little differently. To check this I have written a short program that measures the cycles of the video- and VBLANK-area with a VIA-timer:
In GTK-VICE for PETs without CRTCS this gives values of 12800 cycles for video and 3840 for VBLANK (with some jitter), while the MiniPET does about 12688 / 4008. I would appreciate if folks with real PETs could run this and report the values and also whether it was run on a CRTC or non-CRTC PET.