From Joe on FB:
"Active Now
Joe Granato Ok so...I think I tracked this one down. I have created a fix in my code and have tested about 100 times going back and forth between screens and not seen it happen. That doesn't mean it's fixed, but I did find a logical reason why it may happen "sometimes".
The position check was checking to see if your right edge was MORE than the edge of the screen, and if so, do the screen edge code. But it had no case for if it happened to be EQUAL to it, in which case it would have skipped the edge code and done the collision check for potential position, which it would see as the looped tile on the far side of the screen, which would be reading as solid.
I have patched the code to include a case for equal for both left and right as well, and in doing that, haven't seen the problem manifest again after about 5 minutes of just walking back and forth.
If you want to fix it yourself:
1) Go to System\Macros\CheckPlayerCameraPosition.asm
2) Go to line 137 (or right around there) where you should see BCC leftOfCameraForPlayer.
3) Immediately after that, press enter to create a free line and write: BEQ leftOfCameraForPlayer.
Do the same thing at around line 163 - enter down after BCC rightOfCameraEdgeForPlayer and enter BEQ rightOfCameraEdgeForPlayer.
Now, if it's less OR equal to the edge, it will do the thing.
If you DON'T want to fix it yourself, I think there will be a patch today that fixes the audio bug, and that. I haven't seen this with up and down, but if you ever do see it, we can try patching it the same way."