Here is a closer look at the horizontal ball control. VRESET goes high at the end of every frame. In the real circuit, that's every 262 horizontal lines, but here, it's every 10 lines. When we load 138 into the horizontal ball counter, then the ball doesn't move horizontally. At the end of every frame, we briefly load 137 into the counter, which causes the ball to move one pixel to the right.

You can click on the input (on the "H") attached to the HIT2 line to manually bring it low. That simulates a hit on paddle 2, which will cause the ball to move to the left (loading 139 into the counter every frame).

Every time there's a hit, the speed counter counts up. When it hits 4, then the MOVE signal lasts two lines instead of one, causing the ball to move faster (two pixels per frame). When the counter hits 12, the MOVE signal lasts 3 lines. The speed counter resets to zero when MISS goes low or when the game is reset (when SRST goes low), both of which you can do manually.

If ATTRACT is high, then the ball switches direction whenever SC goes high, which happens when the ball hits the horizontal edges of the screen.

Next: Vertical Ball Control.