あきとさん
修正ありがとうございます!
BGGET(…,Y+14)はY+15の打ち間違いでした。
Y+15にしているのは16×16のキャラの丁度四隅に判定を置こうとしたからですね。
確かに16ドット単位の補正だけだとマップがジワジワ動く強制スクロールとか坂道の処理とかに対応が効かなそうですねー。
マップの座標に合わせて16nから16n+15までの単位に補正するドット数を変化させるとか、坂道は別個に処理を作るとかになってくるでしょうか。
プレイヤーキャラを画面中央に固定してBGを上下左右にスクロールさせて移動を表現したり、マップ端でキャラを直接移動させたりするのは16ドット単位の補正で自分は事足りたのですが、それ以外の条件となるとまだ手を出せていないので何とも言えないです。
あ、強制スクロールならBGCOORDでプレイヤーとマップBGの座標変化を同期させるとかが行けそうかもですね。