Register - Login
Views: 95751381
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
11-13-18 11:31:26 PM

Jul - SM64 Hacking (Archive) - All Super Mario 64 Hacking Docs New poll - New thread - Thread closed
Next newer thread | Next older thread
Super Mario 64 forum moderator
Level: 51

Posts: 35/621
EXP: 994174
For next: 19764

Since: 07-27-07

From: Montreal, Canada

Since last post: 1.0 years
Last activity: 31 days

Posted on 08-16-07 12:03:06 AM (last edited by VL-Tone at 03-24-08 01:45 AM) Link
This thread is meant as a repository for all SM64 hacking docs I produced over the year, and hopefully some other docs will be added by other hackers.

First is the main SM64 Hacking doc, which is a more recent version than what was posted on the "other" boards. It describes a good portion of level script, geometry layout, and polygon drawing commands. Still missing is the details of the collision data commands and format, which should be added eventually.

Here's a list of most texture addresses found in the extended ROM, though it's not completely up to date, a couple of textures are missing. It doesn't include sky backgrounds, icons used in the HUD, menus and the fonts.

Next is a list of changes made to create the extended ROM (can also be found at the end of the ROM Extender doc).


Formated level scripts that describe the menus and serve as a hub to launch other levels:

A list of all geometry layout pointers used in the game, essentially listing all 3d models used by the game. These pointers tell you where to find the geometry layout data, which itself describes the location and structure of the polygon sub-models, as well as where to find the polygon commands for each part.

This geometry layout pointers list is provided in three formats:

First is a simple sorted list of all geometry pointers and a description.

The second list is sorted by levels, so you can have the big picture about which level can use which model.

The third is like the second one, but includes a list of the polygon data pointers for each sub parts of the model, as extracted from the referred geometry layout data. It needs to be updated though, since my geometry layout decoding routine was a little broken for a couple of objects, and some polygon parts might be missing, though 99% of them should be correct.

If you need to find exactly in the ROM where are the geometry layout and polygon data reffered in these three docs, you'll need this list of unique bank numbers which are used internally in TT64 and their addresses in the extended ROM.

Next is a formated list of all behavior scripts found in the game. These are normally found in bank 0x13. It's pretty much the same list as I published on my blog when asking people to try to find the Blargg behavior, except for a small new addition:

I found that the 0x2A command refers to collision data used by many objects. That means that objects can have their own collision data, and that's why when you move them, their solidity is not affected. It would be nice to eventually add individual collision data to all platforms in the Bowser courses, and eliminate the main monolithic collision map.

Lastly are the Mario and peach Geometry Layout deconstruction docs, as posted on another thread. Please refer to this thread for more details.

If you are an experienced ROM hacker and have questions about these docs, go for it.

But if you barely know what hexadecimal is, seldom used an hex editor, and don't know much about ROM hacking, please don't post questions in this thread. I simply don't have the time to teach newbies the basics.

Also, if you have produced SM64 docs yourself, this is the place to post them.
Level: 13

Posts: 11/29
EXP: 10013
For next: 254

Since: 08-12-07

Since last post: 11.0 years
Last activity: 11.0 years

Posted on 08-26-07 10:52:26 AM Link
do you have anything on coin physics?
Super Mario 64 forum moderator
Level: 51

Posts: 55/621
EXP: 994174
For next: 19764

Since: 07-27-07

From: Montreal, Canada

Since last post: 1.0 years
Last activity: 31 days

Posted on 08-27-07 01:41:45 AM; last edit by VL-Tone on 09-11-07 04:33 PM Link
No, as I explained in some other reply, while I know a few things about what I call "behavior scripts", these scripts are actually pretty basic and call ASM code routines which contain all the physics and actual behavior code.
Level: 65

Posts: 6/1085
EXP: 2263564
For next: 72064

Since: 11-20-07

Since last post: 4.0 years
Last activity: 3.0 years

Posted on 03-20-08 10:39:31 AM (last edited by messiaen at 05-17-08 06:05 PM) Link

Just to update this thread and keep all information here, here is VL-Tone's
commented Hex Data for Flatworld Battlefield.


Some improvements on the Flatworld Commented Hex Data:

00 00 00 02 <----- Loads 2 collision triangles


[00 00] [00 02] <----- Loads 2 "0000" terrain type (first 2 bytes) collision triangles

Also, these are inverted:

BB 00 00 00 FF FF FF FF
B8 00 00 00 00 00 00 00 <------ End of polygon commands

0xB8 is the command to return from a 0x06 jump and 0xBB is actually the End of polygon command. Since the data is linear, this doesn't really matter here, but it is good to clarify this so that you don't get confused by this when looking at other geometry data.


Collision Data/Terrain Info

Super Mario 64 Level Format Diagram by VL-Tone (Possibly outdated, but still very useful)
-The Chaos within trumps the Chaos without-
Level: 185

Posts: 1943/12211
EXP: 86944411
For next: 815324

Since: 07-03-07

From: 52-2-88-7

Since last post: 3.0 years
Last activity: 3.0 years

Posted on 01-23-09 03:53:04 AM Link
Topic obsoleted. Go here.
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - All Super Mario 64 Hacking Docs New poll - New thread - Thread closed

Rusted Logic

Acmlmboard - commit 220d144 [2018-11-04]
©2000-2018 Acmlm, Xkeeper, Inuyasha, et al.

28 database queries, 1 query cache hits.
Query execution time: 0.199747 seconds
Script execution time: 0.013305 seconds
Total render time: 0.213052 seconds