Just brainstorming about how to do isometric environments with ramps and overlapping paths on the GBC.
I'm thinking the map could be split into separate rectangular collision maps. Switching between them would be done at special transition zones. As for slopes, a sloped collision map wouldn't be much different from a flat collision map. The only difference is its effect on an object's z height. A flat collison map would use a fixed z height, while a sloped collision map would change the z height smoothly from one end to the other.
Then there's the problem of depth sorting. Objects need to appear in front of or behind terrain (trees, walls, another path that's floating above you, etc.). The GBC already has a way to make sprites appear behind parts of the background, but it's nowhere near powerful enough to handle all those scenarios without major caveats. The only real option is to do it in software.
That's where manual sprite clipping comes in. I figure the background could be split into two virtual layers (called "front" and "back"). For each background tile, there'd be an alpha mask that determines which layer each pixel belongs to. Then, it's just a matter of erasing the parts of the sprite that overlap with pixels in the "front" layer.
But wait! What if an object needs to appear behind the "front" layer sometimes, but not other times? For example, you could walk in front of a tree, or behind it. I'm thinking this could be handled by having a per-object setting that enables or disables clipping. This setting would change based on the object's location. If an object moves into an area where it could appear behind something, clipping gets turned on. When it leaves, clipping gets turned back off. These areas would have to be marked manually on the collision map, but that's a small price to pay.