12/28/2023 0 Comments Super mario world sprites miscThe above list shows the usage of the settings byte for each standard object when an object has two columns for the usage, the right column is the lower nibble while the left is the higher nibble (i.e. In vertical levels, the X and Y position values are swapped. The 'settings byte' usage varies depending on the object, but generally specifies the height and width of the object. In order to decrease it or increase it by a larger amount, a screen jump must be used. The "new screen" flag described in most of the below formats increases the high X position of it and all following objects by one. If the first byte of an object is #$FF, it indicates the end of the data has been reached. The data consists of a five byte header, followed by a list of all the objects. The Z order of the objects is determined by the order they're written an object earlier in the data, for instance, will appear below an object written later. Object data is used to define Layer 1 and Layer 2 foreground data. Part of the sprite memory setting in the original game and older versions.ģ Although values up to #$1F (or #$3F in the original game) are possible, only up to #$12 are actually intended for use. Disabling Layer 2 interaction can mitigate this lag.Ģ Added in Lunar Magic v3.00. Enabling this can cause lag if too many sprites are onscreen at once. It is required for some sprites to behave correctly. Sprite buoyancy (disable sprite-Layer 2 interaction)ġ Sprite buoyancy is a pair of flags that controls how sprites interact with water or lava. More information can be found in the section on the actual data. The "new sprite system flag" indicates that the sprite data uses the FF byte for specifying additional options, rather than acting as a null terminator. The first byte of sprite data is the sprite header, which handles some miscellaneous sprite-related information. If the E bit is set, table 2 instead serves as bits 0-7 of the destination level, and bit 0 of table 3 serves as bit 8. Redirect midway entrance to other level see below. Midway BG initial position, if R bit is clear Midway FG initial position, if R bit is clear This data is stored in a dynamically-located set of tables, however they can all be found in order at read3(read3($05D9E4)+$0A).įlag to use seperate midway entrance (all bits except the M bit are ignored otherwise) Lunar Magic also adds similar data for midway entrances when they're set to have seperate settings. Currently reserved for bit 5 of the sprite header when loaded in RAM. Indicates the level uses either Layer 2 or Layer 3 Note that versions of Lunar Magic prior to v3.00 only provide one extra bit each.Īdditionally, there is an eigth table added in Lunar Magic v3.00, which can be found at read3(read3($05D9A2)+70), and is used for supporting the expanded level format system. In 3.00 onward, they are not.ġ Added by Lunar Magic not used in the original game.Ģ The capitalized Y and X bits are added by Lunar Magic when using X/Y position method 2, but are unused in the original game. Prior to v3.00 of Lunar Magic, the X and Y position values are swapped in vertical levels. Set main entrance FG/BG setting relative to player 1īG height (-1), or relative BG offset if O bit is set (absolute 0 = 0x10) 1 Main entrance FG/BG offset, if R bit is set Main entrance BG initial position, if R bit is clear Main entrance FG initial position, if R bit is clear Lunar Magic adds a fifth byte at $05DE00 as well, and from v3.00 onwards adds two more at $06FC00 and $06FE00 respectively. The secondary level header consists of four bytes, spread across four seperate tables with one byte per level. Layer 2 object data also contains this header, but it is skipped over and ignored. The first five bytes of object data for Layer 1 is the primary level header, which dictates various information about the level. Lunar Magic adds a 512-byte table for the bank byte at $0EF100. Lunar Magic changes this so full 24-bit addresses are used either way see the section on background data for more details.Ģ In the original SMW, all sprite data is in bank 7. 0x200 levels, 3 bytes 1 each (1,536 bytes)Ġx200 levels, 2 bytes 2 each (1,024 bytes)ġ In the original SMW, if the long byte of the Layer 2 pointer is 0xFF, it will be replaced by 0x0C and the data will be interpreted as a BG tilemap rather than object data.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |