I am preparing batch processes to maximise the quality and minimise the file size of communal SM64 textures that are raw rips from other games and not compatible with N64 as the ways it's often done can be extremely lossy and bloated. Please send me all the zips you know!!
I'm currently hacking my way through most vanilla objects in Super Mario 64 using SM64 ROM Manager for my hack Ura Mario, so expect a lot of updates over the next few months.
These resources specifically relate to hacking the compiled binary ROM with ROM Manager, but other hackers may still find them useful.
How to: Working Castle Paintings in Custom Levels
How to: Using the Castle Grounds Cutscenes and End Credits
How to: Working Bomps without Hex Editing
HD Vanilla Texture Comparison
Vanilla Texture Rips
Random notes:
Fish have to be below y=0 (will confirm, but iirc Y co-ord must be negative). Inside Castle Fish use different behaviour (don't follow Mario) and have a Room ID check.
The endless staircase instant warp uses a Room ID check as well as checking if the star count is ≥70 before activating every warp of that collision type in the room.
Presumably a Room ID check exists with mirrors, coffins and other broken functions in levels that use the Castle/BBH room unloading system.
The related axis to Z in Sketchup/Blender (Y) is flipped, so use positive numbers for negatives and vice versa.
If an object won't work and it appears elsewhere in the game you can probably use that variant instead. Enabling what appears to be an unrelated object bank may actually be necessary to use the first variant as the displayed object lists in RM's object bank selection tab are not comprehensive.
Low-Poly Mario is a less efficient usage of resources than just sticking with regular Mario, even on console, so you may as well disable him.
Quad rips are huge (≲1:1 with ROM Manager Imports) and the texture scale is incredibly tiny, and this introduces rounding errors on import/export. You can mostly avoid these texture memes by scaling the texture to roughly the final size before reapplying it. Along with this, offset textures and seams are created because on N64 textures are rendered offset (centred on the top left pixel of the middle 4 I believe).
Any edge that is not axis-aligned introduces floating point imprecision to the face of the tris using it, which messes with collision operations (floats are used to approximate irrational numbers). Among many other potential problems this introduces, it can create a single unit deep ceiling without a floor covering it which extends until it hits a floor, creating an "invisible wall" (ceiling leak). This also happens on movement frames of moving objects.
The possible tri-count for levels is exceptionally high on emu (and higher than conventional wisdom on console), and you're unlikely to exceed it unless you're being extremely careless or porting complex models from later generations. If your area is taking up to much data and using too much RAM it's probably caused by being extremely wasteful with your textures (object processing also generates lag).
ROM Manager has a patch for console compatibility (see Shuri's Library).
Adding missing letters back from JP ROM: https://hack64.net/Thread-More-Letters-Patch
Planned:
How to: Transparencies, Translucencies and Double-Sided Textures (avoid partial transparencies (alpha values other than 0 or 100) unless B+W IA8, eg the vector coloured light shafts and the glow around lights)
How to: Removing Texture Seams (Use N64TextureTool for split textures and the endscreen, use texture projection on grass etc.)
How to: Understanding Collision and Axis Alignment, and Avoiding "Invisible Walls" (see pannenkoek 'walls, floors and ceilings' and 'invisible walls' videos)
How to: Rolling Ball, MIPS, Koopa and Penguin Race Pathing
Useful Links (Community Hack Document. SMW Central and Models Resource et al have frozen submissions for new SM64 resources and are thus very outdated, best to rip things yourself)
Useful Lists (linking or mirroring various sources)
First Time Hacker FAQ (Answering some of the most FAQs in community help channels and some advice for first time hackers)
How to: Disabling Room ID Checks (Case by case)
QSM64 Asset Library (ie abandonware tools, vanilla rips and conversions, useful models, and texture, m64 and wav dumps from my released hacks)
(My) Unsolved Issues Using ROM Manager (why no coffins, flying carpets or snowman's head? 🤔)
How to: Utilising Beta Assets (low priority, you might want to check The Cutting Room Floor, github and/or the tweak list)
How to: Using Advanced SM64 Text Engine (implementing in hacks after Ura Mario)