I've used this library by myself in multiple programs, but here it is by itself: The MarioMiner Library. This library is packed with some cool features, including pointers, array constructors, sprite shaders, and many other useful gadgets. Documentation in the file will explain each feature to you in simple terms, so it should be simple to understand, though I'm always up for questions. Do you need word wrapping? This library does that. Resizing graphics? Slow, but it does that too. It even has a function that creates an on-screen keyboard on the bottom screen that you can click and use so you don't need to switch XSCREEN (since doing so wipes the sprites and bg screen). It does have an UPPER function, but not a coordinating LOWER function (I don't know why, but I never needed to use it.)
Instructions:
Load the library into a slot (as with all libraries)
LOAD "PRG1:MMLIBRARY.LIB",0
USE 1
Then you can read the documentation, which should answer most questions. However, the documentation doesn't include shading, so here's some info on that:
To use sprite shading, you must make 2 sprites for every sprite you want to use it on in sequential order. First, set the angle you want the light source to be at using ANGD. It takes 2 values: the first one sets the angle of height of the light source compared to the sprite (should always be higher than 181 degrees). The second one sets the angle that the light source is to the sprite on the plane of the screen. This needs to be refreshed only when you are changing the angle of the light source. To get these angles, use GETANG to get the plane angle and GETHANG to get the height angle. When you want to cast your shadow, simply use SHADE (sprite number). This will turn the second sprite into a shadow and properly put it around the sprite. It's very fast and easy; 3 sprites will only take a millisecond to cast the shadow for all of them.
Alright, any questions? I'd love to answer them.
Notes:
Don't use the FILE_EXISTS function. CHKFILE works much better; I just didn't know it existed.