| yoshiman Member Level: 23 Posts: 72/95 EXP: 67007 For next: 716 Since: 12-21-07 From: London, England Since last post: 13.2 years Last activity: 12.9 years |
|
||
| Here is an updated list of the variables used by each object; looking at the ASM has really helped with this: (f/p) is a floating-point value. 0x?? or 0x???? are hexadecimal values. [0x00] 0x001800 Always that value, should not be changed as it marks the start of an object structure. [0x02] 0x0025 Collection of bits that alters how the object behaves in relation to the camera. 0x25 causes the object to always face the camera as is the case of the 2D objects like trees and other objects so that it appears 3D (billboarding), however it can be used with 3D objects. 0x21 is used for true 3D objects so the object isn't forced to always face the camera since rotating the camera will show other parts of the object. [0x04] 0x8030B0B8 Usually pointer to the previous object. If this is the first object, it will point to the last object. [0x08] 0x8030B578 Usually pointer to the next object. If this is the last object, it will point to the first object. [0x0C] 0x80386A20 Always equals this value, points to a structure that contains variables which affect all the objects. [0x10] 0x00000000 ? [0x14] 0x80195084 Pointer to the object's graphics structure. [0x18] 0x01 Use graphics flag: =0x00 don't display object's graphics, =0x01 do display object's graphics. [0x19] 0x01 Appears to have no effect on the object; usually equals 0x01 if [0x18]=0x01, sometimes is 0xFF. [0x1A] 0x0000 ? [0x1C] 0x00000000 ? [0x20] 0xC4A6A000 (f/p) Some form of coordinate? [0x24] 0x4431C000 (f/p) Some form of coordinate? [0x28] 0x44EB2000 (f/p) Some form of coordinate? [0x2C] 0x3F800000 (f/p) X size modifier (scaling value). [0x30] 0x3F800000 (f/p) Y size modifier (scaling value). [0x34] 0x3F800000 (f/p) Z size modifier (scaling value). [0x38] 0x00000000 ? [0x3C] 0x80060030 Pointer to the object's animation structure; if zero, object is not animated. [0x40] 0x00000000 ? [0x44] 0x00000000 ? [0x48] 0x00010000 ? [0x4C] 0x00000000 ? [0x50] 0x00000000 ? [0x54] 0x3F751000 ? [0x58] 0xC2D2C670 (f/p) Some form of coordinate? [0x5C] 0xC444B1C0 (f/p) Some form of coordinate? [0x60] 0x8030FA58 Pointer to object ? [0x64] 0x8030F598 Pointer to object ? [0x68] 0x8030F7F8 For objects that follow another (e.g., coin in a Boo) this is a pointer to the object to follow. [0x6C] 0x00000000 ? [0x70] 0x00000000 ? [0x74] 0x01 ? [0x75] 0x01 Determines if the object is active: 0x00=remove the object (the structure remains), 0x01=continue using this object. [0x76] 0x0001 ? [0x78] 0x803194B8 Pointer to object collided with (usually pointer to Mario's object structure even before collision has occurred)? [0x7C] 0x00000000 ? [0x80] 0x00000000 ? [0x84] 0x00000000 ? [0x88] 0x00000000 ? [0x8C] 0x0000 [0x8E] 0x0001 How much object reacts to Mario (not used by some behaviours) 0x0001=Do not react to Mario. 0x0009=? 0x0449=Follow Mario. 0x2041=? 0x2049=Respond to Mario. 0x20C9=? 0x2449=Rotate to face Mario. [0x90] 0x00000000 ? [0x94] 0x0000 ? [0x96] 0x0001 ? [0x98] 0x00000000 ? [0x9C] 0x00000000 ? [0xA0] 0x45A54000 (f/p) X position in level. [0xA4] 0x43C4FD52 (f/p) Y position in level. [0xA8] 0xC4480000 (f/p) Z position in level. [0xAC] 0x00000000 ? [0xB0] 0x00000000 ? [0xB4] 0x00000000 ? [0xB8] 0x00000000 ? [0xBC] 0x00000000 ? [0xC0] 0x00000000 ? [0xC4] 0x00000000 X collision rotation? [0xC8] 0xFFFFBA00 Y collision rotation? [0xCC] 0x00000000 Z collision rotation? [0xD0] 0x00000000 X object rotation. [0xD4] 0xFFFFBA00 Y object rotation. [0xD8] 0x00000000 Z object rotation. [0xDC] 0x00000000 ? [0xF3] 0x00 For ! boxes, controls its colour (does not change what it gives out; use [0x147]): 0x00=red (wing cap). 0x01=green (metal cap). 0x02=blue(vanish cap). 0x03=yellow (other item such as coins). For ordinary boxes changes the texture of its graphics: 0x00=Shifting Sands box texture. 0x01=Bob-omb Battlefield box texture. For coins selects texture to use to animate its spinning; ranges from 0x00 to 0x07. [0xF8] 0x3FC00000 (f/p) For Goombas and Boos, single value to be used for the three size modifies at [0x2C], [0x30] and [0x34]. This allows you to alter an object's size qually along the 3 axis; the game will use this value for the three individual size modifiers. For Koopa, 0x00000000=run around as if lost his shell. 0x00000001=act like small Koopa (walk around, pause; run away if Mario nears). 0x00000002=behave like Koopa the Quick. [0xFC] 0x0000009E For Bob-ombs, this is a timer that continually increases while its fuse is lit; when it reaches a set value the Bob-omb explodes. [0x102] 0x8A90 ? [0X120] 0X0801DA4C Affects how object is animated? [0x124] 0x00000001 For small box that you can pick up: 0x00000000=Not moving or being carried 0x00000001=Being carried by Mario 0x00000002=? 0x00000003=? For Bob-omb: 0x00000000=Not being carried by Mario. 0x00000001=Being carried by Mario. 0x00000002=Thrown. [0x130] 0x20 0x20=Do electric shock to Mario ([0x183] determines how much damage). [0x131] 0x80 0x00=Solid object; can be punched, kicked and climbed onto its top. 0x01=Nothing? 0x02=Nothing? 0x04=Nothing? 0x08=Nothing? 0x10=Similiar to 0x40. 0x20=Cause Mario damage upon contact ([0x183] determines how much damage); can't jump on top or bounce off. 0x40=Cause Mario damage upon contact ([0x183] determines how much damage); can jump onto top and bounce off. 0x80=Can be read like a signpost and climbed onto its top. [0x132] 0x80 0x00=Cannot be broken but can climb onto and stand on its top. 0x02=Can be broken like a box 0x40=Act like a cannon? 0x80=Cause Mario damage upon contact ([0x183] determines how much damage); can jump onto top and bounce off. [0x133] 0x40 0x00=Solid object. 0x01=Act like quicksand? 0x02=Object can be picked up and carried. 0x04=Act like a door. 0x08=Cause Mario damage upon contact ([0x183] determines how much damage). 0x10=(used for red coin)? 0x20=Nothing (used by wing cap item so you can pick it up)? 0x40=Object can be climbed like a tree. 0x80=Nothing ? [0x136] 0xA0 0x00=[0x131] or [0x133] specify what should happen when Mario collides with this object. 0xA0=Ignore [0x131] and [0x133]. Sometimes set to 0xA0 by game after collision. [0x147] 0x32 Message to use for signposts and Bob-omb buddies (0x00 is the first message). For ! boxes it controls what object is given after the box is broken (has no affect on the colour of the ! box unless a code is active before entering the level): 0x00=Wing cap. 0x01=Metal cap. 0x02=Vanish cap. 0x03=Koopa shell. 0x04=x1 yellow coin. 0x05=x3 yellow coins. 0x06=x10 yellow coins. 0x07=1-up mushroom (moves slowly). 0x08=Level star 1. 0x09=1-up mushroom (moves fast). 0x0A=Level star 2. 0x0B=Level star 3. 0x0C=Level star 4. 0x0D=Level star 5. 0x0E=Level star 6. 0x0F=nothing. For Bob-ombs: 0x00=Move (patrol). 0x01=Don't move. 0x02=? For Bob-omb Buddy: 0x03=? [0x14C] 0x00000001 Current action. For Koopa shell: 0x00000000=Mario is not on Koopa shell (don't follow Mario). 0x00000001=Mario is on Koopa shell (do follow Mario). For Peach (intro sequence): 0x00000000 ? 0x00000001 ? 0x00000002 ? 0x00000003 Fade away For Bob-omb: 0x00000000 Patrol 0x00000001 Explode while not moving? 0x00000002 Chase Mario 0x00000003 Explode while moving For Goomba: 0x00000000 ? 0x00000001 Jump up and land 0x00000002 Fall (from jump) For a platform lift: 0x00000001=Moving straight upwards. 0x00000002=Turning over. 0x00000003=Moving straight downwards. 0x00000004=Moving horizontally. For Bowser 0x01=Lay down and try to get up. 0x02=Jump high and then land. 0x03=Swipe attack 0x04=Thrown back and land on shell; defeated. 0x06=Walk forward slowly. 0x07=Run fast and try to trample Mario. 0x08=Breathe fire breath upwards. 0x09=Breathe fireballs quickly. 0x0A=Standing on tiptoes as if about to fall off edge. 0x0B=Turning round. 0x0C=Thrown back. 0x0D=Jump, land and do shockwave. 0x0E=Walk about slowly. 0x0F=Breathe fire breath while standing still. 0x10=Vanish and reappear near Mario. 0x11=Jump high and land causing vibration For Yoshi: 0x00=Stop walking. 0x01=Walk. 0x02=Talk to Mario. [0x154] 0x00000033 Timer that increases until it reaches a certain value, resets to 0 and counts up again. Used by objects such as the platform lifts to decide when to change its movement type. For ! boxes it is used to delay the 'return' of the box. [0x170] 3F800000 ? [0x174] 40000000 ? [0x17C] 0x000000FF Level of transparency for object's graphics. Examples of objects that use this variable are Peach, Bowser and the Toads. 0x00000000=completely transparent, 0x000000FF=opaque. [0x183] 0x01 How many segments of damage to do Mario for objects that cause him harm; if zero enemy objects will push Mario away but not do him any harm. [0x187] 0x04 For Wiggler: 0x00=Don't move 0x01=Walk very slowly 0x02=Run around very fast and try to trample Mario 0x03=Run around and try to trample Mario 0x04=Walk around [0x194] 0x447A ? [0x19B] 0x01 For a Goomba, pond skater or breakable box, number of yellow coins to give out after its defeated. [0x19C] 0x457A (f/p) Controls what distance from the camera the object appears. Higher values will cause the object to appear further in the distance. [0x1AC] 0x802FCA68 Pointer to external data used by the object. For Tox box, it points to the values in RAM that control its set path. [0x1B3] 0x01 For Tox box, index into path data pointed to by [0x1AC], increases by 1 each time. [0x1B8] 0x0029 For Koopa the Quick, this is the value copied from the RAM pointed to by [0x1C0]. [0x1C0] 0x801A8280 Pointer. For Koopa the Quick points to data in the RAM it uses. [0x1C4] 0x5063B081 ? [0x1CC] 0x800E3B50 Pointer to behavoiur script. [0x1D3] 0x01 ? [0x1D4] 0x800E3B50 Pointer to behaviour script. [0x1DB] 0x00 ? [0x1DC] 0x800E0BC8 Pointer to behaviour script? [0x1F8] 0x42A00000 For trees, sets start of tree where Mario can grab at before climbing. [0x1FC] 0x43FA0000 For trees, determines height of tree and thus, when Mario can do a handstand. [0x20C] 0x800E3B20 Pointer to start of behaviour script (used for initialization?) James S. ____________________ We English do things a little differently...Anyone for a cup of tea while we hack?! |





