Register - Login
Views: 99378059
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 09:54:01 PM
Jul - SM64 Hacking (Archive) - Editing the RAM objects New poll - New thread - New reply
Pages: 1 2 Next newer thread | Next older thread
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

Posted on 05-21-08 11:13:39 PM Link | Quote
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?!
messiaen
Catgirl
Level: 68


Posts: 125/1085
EXP: 2594027
For next: 134773

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-07-08 04:52:25 PM Link | Quote
Thanks for the updated list! However, I'm having a few problems working with the extended ROM.

Nemu doesn't open it, Project 64 "Debug" (Build 52) has a memory viewer, but doesn't have searching or dump features. I tried to "attach" Renegade64 to Project 64 and Mupen64, but got errors.
yoshiman
Member
Level: 23


Posts: 78/95
EXP: 67007
For next: 716

Since: 12-21-07

From: London, England

Since last post: 13.2 years
Last activity: 12.9 years

Posted on 06-07-08 10:09:49 PM Link | Quote
Yes, only Project64 seems to like the extended ROM so I use the normal ROM with Nemu for RAM viewing. As for ROM editing the expanded ROM I use a hex editor and after making changes load it into Project64.

____________________
James S.

We English do things a little differently...Anyone for a cup of tea while we hack?!
Pages: 1 2 Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - Editing the RAM objects New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

30 database queries, 1 query cache hits.
Query execution time:  0.102402 seconds
Script execution time:  0.011049 seconds
Total render time:  0.113451 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 300 - Warning: unescaped & or unknown entity "&page"
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 194 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 94 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 131 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 177 column 99 - Warning: unescaped & or unknown entity "&postid"
line 388 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 390 column 9 - Warning: missing <tr>
line 408 column 13 - Warning: missing <tr>
line 409 column 99 - Warning: unescaped & or unknown entity "&postid"
line 416 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 418 column 9 - Warning: missing <tr>
line 436 column 13 - Warning: missing <tr>
line 437 column 99 - Warning: unescaped & or unknown entity "&postid"
line 444 column 17 - Warning: missing <tr>
line 444 column 17 - Warning: discarding unexpected <table>
line 447 column 35 - Warning: missing <tr>
line 447 column 94 - Warning: unescaped & or unknown entity "&page"
line 447 column 50 - Warning: missing </font> before </td>
line 447 column 131 - Warning: missing </font> before </table>
line 449 column 35 - Warning: missing <tr>
line 449 column 50 - Warning: missing </font> before </td>
line 450 column 37 - Warning: unescaped & or unknown entity "&id"
line 449 column 194 - Warning: missing </font> before </table>
line 451 column 17 - Warning: discarding unexpected </textarea>
line 451 column 28 - Warning: discarding unexpected </form>
line 451 column 35 - Warning: discarding unexpected </embed>
line 451 column 43 - Warning: discarding unexpected </noembed>
line 451 column 53 - Warning: discarding unexpected </noscript>
line 451 column 64 - Warning: discarding unexpected </noembed>
line 451 column 74 - Warning: discarding unexpected </embed>
line 451 column 82 - Warning: discarding unexpected </table>
line 451 column 90 - Warning: discarding unexpected </table>
line 453 column 9 - Warning: missing </font> before <table>
line 465 column 25 - Warning: discarding unexpected </font>
line 474 column 57 - Warning: discarding unexpected </font>
line 452 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 112 - Warning: <img> lacks "alt" attribute
line 161 column 161 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 393 column 22 - Warning: <img> lacks "alt" attribute
line 393 column 63 - Warning: <img> lacks "alt" attribute
line 393 column 111 - Warning: <img> lacks "alt" attribute
line 393 column 161 - Warning: <img> lacks "alt" attribute
line 404 column 15 - Warning: <img> lacks "alt" attribute
line 421 column 22 - Warning: <img> lacks "alt" attribute
line 421 column 63 - Warning: <img> lacks "alt" attribute
line 421 column 112 - Warning: <img> lacks "alt" attribute
line 421 column 161 - Warning: <img> lacks "alt" attribute
line 432 column 15 - Warning: <img> lacks "alt" attribute
line 450 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 450 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 450 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 25 - Warning: <img> lacks "alt" attribute
line 464 column 267 - Warning: <img> lacks "alt" attribute
line 444 column 17 - Warning: trimming empty <tr>
line 125 column 68 - Warning: <nobr> is not approved by W3C
line 141 column 68 - Warning: <nobr> is not approved by W3C
line 177 column 27 - Warning: <nobr> is not approved by W3C
line 409 column 27 - Warning: <nobr> is not approved by W3C
line 437 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 85 warnings and 0 errors!


The alt attribute should be used to give a short description
of an image; longer descriptions should be given with the
longdesc attribute which takes a URL linked to the description.
These measures are needed for people using non-graphical browsers.

For further advice on how to make your pages accessible
see http://www.w3.org/WAI/GL.
You are recommended to use CSS to specify the font and
properties such as its size and color. This will reduce
the size of HTML files and make them easier to maintain
compared with using <FONT> elements.

You are recommended to use CSS to control line wrapping.
Use "white-space: nowrap" to inhibit wrapping in place
of inserting <NOBR>...</NOBR> into the markup.

About HTML Tidy: https://github.com/htacg/tidy-html5
Bug reports and comments: https://github.com/htacg/tidy-html5/issues
Official mailing list: https://lists.w3.org/Archives/Public/public-htacg/
Latest HTML specification: http://dev.w3.org/html5/spec-author-view/
Validate your HTML documents: http://validator.w3.org/nu/
Lobby your company to join the W3C: http://www.w3.org/Consortium

Do you speak a language other than English, or a different variant of
English? Consider helping us to localize HTML Tidy. For details please see
https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md