SP座標をBG座標に変換して、その値が前回と違う時だけDATAを読みに行くなりの判定処理をすればよいのでは? 毎回やってもDATAを読むだけで60は切らないと思うし、VSYNCを消しただけで130というのはないですね。VSYNCは60(×指定値)フレーム経過していない時以外は無視されますから。