This code isn't the easiest to read. Check it out if you're interested. It's on Acknex Resource:

http://www.coniserver.net/coni_users/web_users/pirvu/au/scripts/zeldacode.zip