110行目のGOTOの位置がちょうどBGスクロール後の処理になるんで、GOTOを下にずらして、その位置にBGとの当たり判定を入れればいいと思いますよ。 BGGETを使うと指定座標のBGキャラ番号が得られるので、調べたい位置(キャラの居る場所)のBGキャラ番号を調べて、それが町や城だったら…みたいな処理をすればいいと思います。