Register - Login
Views: 99378556
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 10:22:54 PM
Jul - SM64 Hacking (Archive) - SM64 Forum Info - New topics will be trashed. New poll - New thread - New reply
Next newer thread | Next older thread
Lyskar
12210
-The Chaos within trumps the Chaos without-
Level: 192


Posts: 1942/12211
EXP: 99235281
For next: 638290

Since: 07-03-07

From: 52-2-88-7

Since last post: 7.4 years
Last activity: 7.3 years

Posted on 01-23-09 06:52:05 AM (last edited by Metal_Man88 at 07-01-12 09:36:01 AM) Link | Quote

SM64 Forum Information Topic


Long ago, this forum was a land of spam topics and idiocy. Now it has gotten better. Unfortunately, that means rules have to be followed. Below are the rules and some FAQs. Below those are a list of information/documents. Read everything before making a topic, lest ye be banned!
ALSO, IF YOU ARE INCAPABLE OF READING, NOTE THIS: TOPICS WITH THE WORD 'HELP' IN THE TITLE ARE 90% LIKELY TO BE VIOLATING THESE RULES!
Quick links:
BEFORE POSTING A THREAD
FAQS
File Listing



BEFORE POSTING A THREAD

Do not post a thread unless it is one of the following:


  • A tool or project
  • A theory (with information to back it up)
  • A new discovery
  • A mod or hack itself, after it has been approved by a SM64 forum mod
  • Something informative that isn't blatantly obvious
  • A well-phrased Question not answered or addressed in another topic


Also, include these sort of things in your topic, unless you like lining the trash forum with topics:

  • Pictures (If a tool or a project)
  • A constructive use (If a tool)
  • Quality (Nobody's going to be reading a bunch of gibberish)
  • A link to the related patch/program (Especially with hacks, but also with tools; we don't want to just be teased with the images and a 'COMING SOON' message)
  • Some interesting or positive quality (You could make a tool to mess up all the colors without reason, but who would use that???)
  • If a question or theory, some practical reason to ask it or reason for you to posit it (You could post "Penguins are always blue! OMG" but that would get your account obliterated)


And in case you missed it, you must get permission from VL_Tone or Metal Man before you can make a thread about an individual mod/hack. First, you'll have to demonstrate, by showing your mod in the dedicated thread http://jul.rustedlogic.net/thread.php?id=436 that your mod is worthy of having its own thread.

Now, to repeat what I said, but in a different way. Random questions, threads about drama, idiocy, whining, threads without any supporting purpose/picture/movie/patch/reason and such are likely to be closed and/or deleted.

In addition to that, please read the FAQ below.





FAQs

Before you ask ANY QUESTIONS, please read the forum FAQ, the Toad's Tool FAQ and the Toad's Tool help thread. There are few things more annoying than being asked the most mundane, half-way obvious and easily answered questions over, and over, and over by someone who didn't have the courtesy to read the FAQ.

ROM POLICY

Direct linking to any commercial* ROM, be it the vanilla game or a hacked version, is expressly forbidden. IPS/NINJA/PPF/whatever patches are okay.

*Commercial refers to a ROM that was dumped from a video game that was released on a console for profit. Homebrew ROMs, meaning that they were made by amateur programmers who are coding for the system for non-profit reasons, are perfectly fine to link.

HOW TO GET HELP

If you've read the FAQs and help thread and you still have questions, post a reply to the help thread with clear and concise information on your problem. If you post a question simply saying "I open the program and it crash what do I do" - you will probably get no help at all. We're not mind readers, we can't know exactly what the issue is. If you need help on a feature, be specific on what you need to be done. If you're having technical issues, be very specific. If the program is behaving oddly, note very specifically what is going wrong ("it turns black" is NOT specific at all). If the program is crashing or failing to start up, post exactly what the error message says, along with system specs. The more in depth you explain your problems, the greater your chances of being helped.

DON'T BE AN IDIOT

Type reasonably well. "hey wen u open th rom ware do i find how2 chang tihng?s" is absolutely unacceptable. If English is not your native language, attempts will be made to understand what you're saying, but if it's incomprehensible, that's worse than not posting at all. You don't need to be completely perfect by any means, but at least give an effort.

Respect other people. Don't be rude. If a newbie comes along and violates everything the rules, ignore them. Flaming them will get YOU in trouble, and trying to guess what the mods will do and warning them of it is backseat modding. On the other hand, providing them with links to this topic, and/or other topics where their question belongs is fine. Just leave locking and punishment/warnings to the mods.

PUNISHMENT AND ENFORCEMENT

All rules are enforced at all times, especially when you don't expect it. The punishment for breaking the rules generally goes as follows:

First offence: warning
Second offence: more dire warning
Third offence: semi-long ban/account destruction

This happens most of the time. If it doesn't, consider yourself lucky. Also note YOU CAN BE BANNED AT ANY TIME.

CONCLUSION

Don't be intimidated by the size of this FAQ! It's incredibly simple. In summary:

Read the FAQ
Don't post ROM links
Type reasonably well
Don't be a jerk
Don't backseat mod

That's all you really need to know!

FOOTNOTE

While it's no means a rule, if you want people to try out your hack, post screenshots. Post them in the thread. No one will download it if you do. Even if you put screenshots in the RAR, no one will download it. People need to see what they're downloading before they consider downloading it, mmkay?


File Listing

Here is a list of important files/documents for SM64 hacking. If you know of more, PM Metal Man.



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.
Mario64_HackingDoc1.5.txt

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.
M64TextureList07.txt

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

ExtendedROMchanges.txt

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

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.
SM64GeoLayoutPtrs.txt

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

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.
SM64GeoLayoutPtrsAndPolys.txt

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.
TT64ROMBanks.txt

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.
SM64Behaviors.txt

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

VL-Tone's commented Hex Data for Flatworld Battlefield.

FlatWorldBattleFieldHexData.txt


Some improvements on the Flatworld Commented Hex Data:

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

to

[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.

--

Also, we're making a SM64 wiki page about it. Here's a page with some beta information, and a review of some of the information seen above. Super Mario 64 on the Cutting Room Floor

Collision Data/Terrain Info

Super Mario 64 Level Format Diagram by VL-Tone (Possibly outdated, but still very useful)
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - SM64 Forum Info - New topics will be trashed. New poll - New thread - New reply


Rusted Logic

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

27 database queries.
Query execution time:  0.092430 seconds
Script execution time:  0.027090 seconds
Total render time:  0.119520 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 216 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 91 - 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 190 column 1 - Warning: missing <li>
line 200 column 1 - Warning: missing <li>
line 208 column 2285 - Warning: discarding unexpected </b>
line 327 column 11429 - Warning: unescaped & or unknown entity "&page"
line 332 column 17 - Warning: missing <tr>
line 332 column 17 - Warning: discarding unexpected <table>
line 335 column 35 - Warning: missing <tr>
line 335 column 50 - Warning: missing </font> before </td>
line 335 column 91 - Warning: missing </font> before </table>
line 337 column 35 - Warning: missing <tr>
line 337 column 50 - Warning: missing </font> before </td>
line 338 column 37 - Warning: unescaped & or unknown entity "&id"
line 337 column 216 - Warning: missing </font> before </table>
line 339 column 17 - Warning: discarding unexpected </textarea>
line 339 column 28 - Warning: discarding unexpected </form>
line 339 column 35 - Warning: discarding unexpected </embed>
line 339 column 43 - Warning: discarding unexpected </noembed>
line 339 column 53 - Warning: discarding unexpected </noscript>
line 339 column 64 - Warning: discarding unexpected </noembed>
line 339 column 74 - Warning: discarding unexpected </embed>
line 339 column 82 - Warning: discarding unexpected </table>
line 339 column 90 - Warning: discarding unexpected </table>
line 341 column 9 - Warning: missing </font> before <table>
line 353 column 25 - Warning: discarding unexpected </font>
line 362 column 37 - Warning: discarding unexpected </font>
line 340 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 160 column 17 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 17 - Warning: <img> lacks "alt" attribute
line 160 column 60 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 60 - Warning: <img> lacks "alt" attribute
line 160 column 103 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 103 - Warning: <img> lacks "alt" attribute
line 160 column 146 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 146 - Warning: <img> lacks "alt" attribute
line 160 column 189 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 189 - Warning: <img> lacks "alt" attribute
line 160 column 232 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 232 - Warning: <img> lacks "alt" attribute
line 160 column 275 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 275 - Warning: <img> lacks "alt" attribute
line 160 column 318 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 318 - Warning: <img> lacks "alt" attribute
line 160 column 361 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 361 - Warning: <img> lacks "alt" attribute
line 161 column 23 - Warning: <img> lacks "alt" attribute
line 161 column 64 - Warning: <img> lacks "alt" attribute
line 161 column 113 - Warning: <img> lacks "alt" attribute
line 161 column 163 - Warning: <img> lacks "alt" attribute
line 162 column 11 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 176 column 89 - Warning: <font> attribute "color" had invalid value "ffffff" and has been replaced
line 338 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 338 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 338 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 347 column 25 - Warning: <img> lacks "alt" attribute
line 352 column 267 - Warning: <img> lacks "alt" attribute
line 149 column 50 - Warning: trimming empty <font>
line 332 column 17 - Warning: trimming empty <tr>
line 335 column 50 - Warning: trimming empty <font>
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
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 89 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