Atari 8-Bit Display List Interrupts: An Advanced Tutorial
playermissile.com
playermissile.com
Towards the end of its popularity...well, it seems popular now.....but, one of the games that made use of multiple techniques, including DLIs to get what was, at the time, an amazing graphics game was ballblazer https://www.youtube.com/watch?v=qri5xavBdh4
It was never as popular as the c64 but as far as I can tell its peak was after it became dirt cheap around that time (and the follow up XE series was the cheapest).
IIRC, for me it was the TI 99/4a first, and the 800XL second. Then later, a Xerox PC (which was actually just a re-badged Olivetti).
Bottom-feeding, FTW.
The 2600 doesn't even really synchronize video for you. It can pause the CPU until the next scanline (via a WSYNC register, like the computers) but it's up to the programmer to generate the correct number of lines and generate a vertical sync pulse. Because all the graphics registers are one dimensional, the CPU will most likely be occupied with reloading them during the visible portion of the screen to produce 2D graphics and handle game logic outside it, keeping track of when to prepare for drawing again by polling a timer register or keeping track of how many cycles were wasted exactly.
Another interesting limitation is that there is only a very crude way of absolutely positioning sprites horizontally. You do this by strobing a register that resets a horizontal sprite counter. This positions the sprite horizontally where the beam happens to be at the time, so you have to pace your positioning with the beam. After you have done that to position the sprite roughly where you want it, you can nudge it relatively to its current position -8 to 7 (or something like that) pixels at a time.
It became apparent to me while working with it and reading the documentation that this was designed to be the minimum viable product to support just a couple of types of games (e.g. Combat and Pong) which makes the variety of its game library much more impressive.
My game source is at https://github.com/boomlinde/jupitersumo if anyone is interested. It's a two player game with a simple graphics kernel (two player sprites, a playfield and two life counters).