1) Open a bomb passage north
2) Walk thru
3) Go back
4) Press L+R+A
5) Wait enough time to be able to swing your sword again
6) Press L+R+A
And the game crashes? The requirements are: xpos (0x70) = 78h, ypos (0x84) == 5dh, and "most recent door" = north. If one of these things is not true then the crash will not happen.
So what is the game checking for? When I do this on a south bomb-door nothing special happens. I'll be unable to press L,R,A, or B just like when I'm in a normal doorway, but it doesn't crash. Maybe if I knew why the game crashed then I could figure out what the game is thinking.
Sadly, the game seems to be programmed to look for underworld walls in the following way:
if (x < 20h) return DoorTypes[LEFT] != NONE && DoorStatus[LEFT] == OPEN
if (x > d0h) return DoorTypes[RIGHT] != NONE && DoorStatus[RIGHT] == OPEN
if (y < 8dx && this is a talking room && room is not cleared) return FALSE
if (y < 5Dh) return DoorType[UP] != NONE && DoorStatus[UP] == OPEN
if (y > BDh) return DooeTypes[DOWN] != NONE && DoorStatus[DOWN] == OPEN
otherwise check the map data
Which makes sense because there is no map data for those coordinates. So even with my cheating and setting values to 0x70 and 0x84, it's still just about impossible to make the screen scroll when it shouldn't. (You need to be able to take a step to cause a scroll.) The crappy part is that when I
did cause an illegal scroll it just took me back to the same map. For example: enter level 3, scroll right, enter level 3 from the left. Or enter level 2, up one, right one, kill 3/5 Ropes, scroll right, re-enter the same map and 2 Ropes spawn. It's just like the Lost Woods. :(