quand je regarde ton code, je vois que le x du rect de blit varie %5 -> donc, en x, tu n´iras pas plus loin que 5 blocs.
Mais je vois que le y, lui, varie systématiquement, du coup, ça devrait (normalement) te faire un truc comme ça :
X
_X
__X
___X
____X
X
_X
__X
___X
____X
X
_X
__X
___X
____X
Or, peut etre voulais quadriller ? faire plutot :
XXXXX
XXXXX
XXXXX
-> dans ces cas la, il faut faire (nbl/5)*102 + 290;
A noter aussi qu´une image blittée dehors ne provoque par d´erreurs, mais n´apparait logiquement pas : ton image de fond est elle assez grande ? sachant que la formule du dessus montre que le blit commence a 290.