Te haré también unas observaciones muy básicas sobre el código. Deberías modularizarlo más. Sé que es un programa pequeño que no lo necesita, ¿pero por qué no usar Cargar(), Juego(), etc. en lugar de hacerlo todo monolítico?
Segundo, utiliza estructuras o clases para los elementos. Nuevamente aquí no tiene importancia porque es tremendamente simple, pero sin duda es mejor si lo haces de este modo:
typedef struct
{
s16 x, y; // posición
} palito;
typedef struct
{
s16 x, y; //posición
u8 xd, yd; //desplazamiento
} bolita;
A primera vista es tonto, pero qué tal si le metes un parámetro velocidad a la estructura bolita y en el supuesto de usar powerups unos parámetros de ángulo de rebote a cada palito, un parámetro para indicar un modo especial, varios parámetros para indicar el tamaño, etc. Entonces empieza a cobrar más sentido tener estructuras (incluso clases y poder hacer palito1.move(x,y) en lugar de llamar a PA_SetSpriteXY... ) y comienzas a beneficiarte de su potencial.
Por otro lado, los segmentos de código "copiar-y-pegar" piden a gritos que hagas una función de ellos y que los elementos que varían en cada uno sean sus parámetros de entrada, ej. los códigos de pantalla 1 y pantalla 2 usando estructuras pueden quedarse en:
void Mover_Bola(bolita bola, palito pala1, palito pala2)
{
//mover bola
bola.x+=bola.xd;
bola.y+=bola.yd;
//colision
if(bola.x==0)perder=1;
if(bola.x==(separacion+13))if(bola.y>(pala1.y-8))if(bola.y<(pala1.y+32))bola.xd=1;
if(bola.x>248)perder=2;
if(bola.x==(256-separacion-21))if(bola.y>(pala2.y-8))if(bola.y<(pala2.y+32))bola.xd=-1;
if(bola.y==0)bola.yd=1;
if(bola.y>184)bola.yd=-1;
//Mover tu pala
if(pala1.y>0)pala1.y -= Pad.Held.Up;
if(pala1.y<159)pala1.y += Pad.Held.Down;
//Mover pala de la maquina (solo cuando la bola este en la parte derecha de la pantalla)
if(bola.x>60)
{
calc_y=pala2.y+16-bola.y+4;
if(calc_y>0)if(pala2.y>0)pala2.y--;
if(calc_y<0)if(pala2.y<159)pala2.y++;
}
o similar, a la que puedes llamar con Mover_Bola(bola_arriba, pala1_arriba, pala2_arriba) y Mover_Bola(bola_abajo, pala1_abajo, pala2_abajo)
Por último, y esto lo digo símplemente porque me lo recomendaron, supongo que no pasa nada por usarlo y que tú lo verás más habitual viniendo de ensamblador, pero a mí siempre me han desaconsejado el uso de gotos, en lugar de eso, haz una llamada a la función Juego() que sea la función principal en la que se llama a Mover_Bola y Mover_Palito y jau.
Espero que te sean de ayuda para el modo historia
. Saludos.