So, over the last few days I've gotten out and dusted off my old newsprites.asm file, reading back over it and becoming reaquainted with lines and lines of code that I had forgotten I'd written. I'll take a moment to say how completely grateful I am to my past self for being so anal about commenting everything, as annoying as it seemed at the time. Had I not, I'd be completely lost. After reorganizing my desktop, cleaning out my computer and defragmenting, and searching down all the necessary programs, documents, and utilities I need to be able to hack and code, I finally had it all together and ready to get back to work.
I got back on track, and caught myself back up with where I was when I last left off, months and months ago. What I found was that, while I still have a fairly powerful newsprite.asm file, capable of creating various different types of sprites in it's current form, it really doesn't yet offer me the degree of freedom that I really want. Many of the routines I'm using to handle sprite collision -- in particular, weapon vs. sprite, Link vs. sprite, and world vs. sprite, they're all still handled by the old original code, the code that handles all the old sprites. This is fine and well, and works fine for the "bot" sprite that I created before my long break from the project, but when it comes down to it, it's a pain in the @$$ to actually edit these routines when they're stuck right in the middle of the original game's code. There's only so much room, and moving things around is extremely hard.
So, my current task is this: Bring all the routines involved in newsprites.asm out into the "padding," which in layman's terms is the empty, expanded space at he back of the ROM, where there IS no original code to worry about overwriting or messing up. Basically, I'm currently making copies of the original game's collision handlers and other various routines, and bringing them out into the open where I can deal with them more easily. Once this is completed, I'll be able to extend them, rewrite them, and add exceptions and new code without having to worry about what I'm overwriting, or how much space I have. It'll allow more freedom and ease of access to the code.
So, I set about finding the best way to do this, and narrowed it down to 55 individual routines that I need to copy over to the padding. I currently have 11 of them done (2 were actually merged into one):
PLAY SOUND EFFECT IN REGISTER $12E
RETURN SOUND EFFECT TYPE IN STEREO
RETURN SOUND EFFECT POLARITY BY SPRITE POSITION
CREATE A 'SPARK' AT SWORD COORDINATES (WITH SOUND)
RETURN SOUND EFFECT POLARITY BY LINK'S POSITION
"SMALL POOF" ANIMATION AT SPRITE LOCATION
PLAY SOUND EFFECT IN REGISTER $12F
CANCEL DAMAGE BEING DEALT TO SPRITE
GIVE BREAKABLE SPRITE (EX. BUSH) ANIMATED DEATH
CREATE A SPARK AT SPRITE COODINATES (WITH SOUND)
So, as you can see, I'm approximately 20% there.
I'll keep you all posted as to what I'm up to, and as to what progress I'm making. Hopefully it'll revive some of our lost following, whether they've moved on, or are just keeping quiet like we have for the last few months. The winter months are long, and hit some of us harder than others, but I'm glad to say that I'm in the swing of things again, and am making progress.