Why not use a proportional increment like
Code:
static char flag;
if(joy_flag == 0) {old_joy = p1_y;
flag =1;
}
else { if(old_joy < p1_y && (p1_y != 127))new_joy+=5;
else if (old_joy < p1_y && (p1_y != 127))new_joy -= 5;
elsenew_joy = 0;
flag = 0;
}
p1_y = old_joy + new_joy;