![]() NPC sprites are a very common thing to want to have, and the most recent NPC sprite we have in the sprite section is from. Not relative to screen border.This is a project that's been on my mind for a long while and that I was planning way in advance to release this C3, but I only started making it on Friday. X position of reappearing Boos, frame 2. Accumulating fraction bits for fixed point Y speed of death bats. Y position of reappearing Boos, frame 2. X speed for Boos from ghost ceiling and death bats. X position of reappearing Boos, frame 1. Y speed for Boos from ghost ceiling and death bats. Y position of reappearing Boos, frame 1. $7E:1E3E Cluster sprite X position, high byte. $7E:1E2A Cluster sprite Y position, high byte. $7E:1E16 Cluster sprite X position, low byte. $7E:1E02 Cluster sprite Y position, low byte. Note that this is not a table it is only one byte. Its purpose in SMW are the following: act as a timer for determining when death bats will fly, and as a timer to freeze an active Boo in the ghost ceiling. $7E:0F86 Cluster sprite table, used for various purposes including determining which Boo ring is which and determining whether or not a particular "death bat" is visible. It is also used in the death bat ceiling to keep track of the bats' Y position. It could theoretically be used for any purpose, but in the original SMW, it holds the index of each individual Boo in a Boo ring (00-09). This table was probably meant to function as a cluster sprite table, but it was never used as such. Cleared during reset and titlescreen load. Is also used for several other sprites that are generated, such as the ghost ceiling, but not necessarily for the same purpose. Is used for the castle background flame's frame to display, as well as Boo ring's speed - #$00 = still #$01-#$7F = counter-clockwise #$80-#$FF = clockwise. Listed below are RAM addresses related to cluster sprites in one way or another: This is mostly concerning custom cluster sprites, which are in fact almost completely written from scratch - OAM routine, interaction, physics, etc. For example, SMW uses $7E:1E02 to determine the low byte of the Y position, but one doesn't have to use $7E:1E02 for the Y position. Note that every single cluster sprite table (except $7E:1892) is a miscellaneous table that is to say, it can have whatever purpose you assign it to. There is a pointer table for the original game's cluster sprites that is 18 bytes long (9 16-bit pointers) and begins at SNES $02:F825. The first encounter with a ghost ceiling. Indicates what sprite a specific cluster sprite slot contains.Ī Swooper Death Bat Ceiling in Josh's Island.Ġ8 Swooper bat from Swooper Death Bat Ceiling. In regards to Super Mario World hacking, it is of course possible to generate cluster sprites by other means, such as ASM hacks.Ĭluster sprite number. In the original game, they need a "host sprite" that generates them, for example sprite E1, which generates a ghost ceiling. Much like any other sprite group which doesn't include regular sprites, cluster sprites cannot be directly inserted into the level. The only cluster sprites which actually do use the tables to the fullest are the ghost ceiling and disappearing ghost sprites. Inside Super Mario World, there are never more than eight 1-Up sprites available at once, and a Boo ring consists of merely 10 ghosts - although it is possible to have two Boo rings beside each other (but not any more than two). ![]() ![]() Many cluster sprites don't actually ever get up to 20 at once, however. Their large tables allow one to use up to 20 cluster sprites on the same screen at once. A great advantage of cluster sprites is that, unlike many other sprite types, there can be a lot of them on screen at once - hence their coined name, "cluster" sprites.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |