I: Tiles
I "unified" all of the previous tileset related patches into one big patch, which I think is much easier to work with than all the other stuff. In addition, Dr. Kylstein is creating a TileInfo program which will support the patch and generate all the data files so there is no more patching together TLS and what not. All features described below are optional:
- Sloped Tiles: Top/Bottom slopes of 45, 22.5 or 11.25 degrees. Can be jump through too!
- Extended Multiple Tileset: Like the earlier patch, but this time, you can have UP TO 910 tiles per level, as many tile graphics as you can fit in memory, custom animation patterns, and possibly up to 8 frames of animation (still have to make that last one).
- Unique tilesets for finale, menus, and world map (previously all of these used the same image) This is worth mentioning because now we can use tiles instead of costly bitmaps for images, freeing up more space for tiles and sprites.
- More free memory: includes a (fixed) "Free 4KB of graphics memory" and "Free ~15kB of space" patch (see Keen1 patch forum)
II: Sprite Behaviours
If people want to go ahead and write sprite behaviours, do it in English, or C- or Basic-like syntax and post it. We can divide it into three logical sections: Keen behaviours, creature behaviours (includes rayguns, and possibly pick up items), and controller or "body" functions (see end of post).
Then, when absolutely everything is planned and complete, we can begin the actual coding. It's important that everything (story, all the sprites, what gets collected) is mapped out in exacting detailed and scrutinized thrice before coding because it's a pain in the butt and a waste of time to go back and re-code stuff. Anyways, when all that is done, I will collate everything.
I am thinking a complete rewrite of sprite behaviours may be easier than trying to manage dozens or hundreds of individual sprite patches. We could certainly make more interesting sprites that way. Since it is known where pretty much every important function and variable is held in game memory, I am wondering if it is possible to use this information so that sprite behaviours could be written in C, compiled, and then used as patchfiles.
III: Other Stuff
Status Box, Main Menu, Finale, String Data and all that stuff. Can just use standard patches for all of this.
Background: There are 3 types of behaviours. "think" procedures that are called every level loop, "contact" procedures that are called when two sprites collide, and a third type for "bodies," for lack of a better word. Bodies include the ice cube spawner, door opener, vorticon crusher, and the shot chain. Bodies are different from sprites in that they have a different structure in memory, and are not stored in the same place (this is why you can only have 16 ice cannons), and the body procedures are called after the sprite think procedures. Bodies don't have images (as far as I can tell), but are used to control tiles and other sprites. All 3 types of behaviours are in one big chunk from $1713 to $4B69, intermingled with other procedures like tile collision and pogo calculation and so forth.