Over the last month or so I've been trying my hand at a little Sonic 1 hacking, the result of which I hope to reveal soon.
Along the way, I've been learning a thing or two here and there about assembly language, and I've been trying to make some of the objects in the game (platforms and blocks of different types) "Zone Agnostic": that is, they'll load the correct art and mappings no matter which Zone they're placed in.
I've made a fair start of it. Anyone interested can follow along by visiting this thread of mine at Sonic Retro.
I've gotten a few more objects working, too. They're in the pipeline - I just have to find some time to add the necessary steps to the guide.