On the Atari 2600

Ok, I figured out what the bounciness was.

Rather than messing up the VBlank I was messing up the Overscan.

Here is the code listing:

        processor 6502

        include "vcs.h"
        include "macro.h"
        org $f000

BGColor equ $81
TColor  equ $82

SH      equ 9
YPos    equ $83
XPos    equ $84
XPosC   equ $85        
XPosF   equ $86       
        

Frame0
        .byte #%00000000;$40
        .byte #%01001000;$40
        .byte #%00100000;$40
        .byte #%00000000;$94
        .byte #%00110000;$94
        .byte #%00110000;$94
        .byte #%00000100;$40
        .byte #%00010010;$40
        .byte #%00000000;$40        
        
Start
        CLEAN_START
        lda #10
        sta YPos
        lda #0
        sta XPos

NextFrame
        lda #2
        sta VBLANK
        sta VSYNC

        sta WSYNC
        sta WSYNC
        sta WSYNC

        lda #0
        sta VSYNC

        ldx #35                 ; skip all but the last two v blank line
LVBlank
        sta WSYNC
        dex
        bne LVBlank
        
        ldx XPosC
        sta WSYNC
P1P
        dex
        bne P1P
        sta RESP0
        lda XPosF        
        sta HMP0
        sta WSYNC
        sta HMOVE

        lda #0
        sta VBLANK

        ldy BGColor             
        sty TColor              ; initialize color for scans
       
        ldx #192
LVScan
        sta WSYNC
        ldy TColor
        sty COLUBK
        iny
        sty TColor              ; store color for next frame

        txa
        sec
        sbc YPos
        cmp #SH
        bcc InSprite
        lda #0
        sta GRP0

Rt
        dex        
        bne LVScan

        sta WSYNC
        lda #2
        sta VBLANK
        ldx #28

LVOver
        sta WSYNC
        dex
        bne LVOver

        inc XPos
        lda XPos
        tax
        cmp #159
        bne Hop
        lda #0
        sta XPos
Hop
        txa
        sta WSYNC
        adc #68
        clc     
        ldx #0
        sec
PDiv    sbc #15
        inx
        bcs PDiv
        dex
        eor #7
        asl
        asl
        asl
        asl
        sta XPosF
        txa
        sta XPosC
        sta WSYNC
        inc YPos
        dec BGColor
        jmp NextFrame

InSprite
        tay
        lda Frame0,Y
        sta GRP0
        jmp Rt
        

        org $fffc
        .word Start
        .word Start