<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.hack64.net/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.hack64.net/wiki/feed.php">
        <title>Hack64 Wiki super_mario_64</title>
        <description></description>
        <link>https://www.hack64.net/wiki/</link>
        <image rdf:resource="https://www.hack64.net/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-04T21:17:16+0000</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:actions&amp;rev=1609351274&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:applying_patches&amp;rev=1520620233&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:behavior_commands&amp;rev=1572772676&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:console_compatibility&amp;rev=1546955406&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_action&amp;rev=1604523469&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_music_sequence&amp;rev=1763754416&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_object&amp;rev=1604598296&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:eeprom_map&amp;rev=1531521456&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:fast3d_display_list_commands&amp;rev=1653964493&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:fast64_troubleshooting&amp;rev=1604592945&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:function_list&amp;rev=1692763022&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:geometry_layout_commands&amp;rev=1572790988&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:hacking_notes&amp;rev=1651878136&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:hacking_tools&amp;rev=1674397740&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:hardcoded_star_locations&amp;rev=1582998116&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:hud_rendering&amp;rev=1520619461&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:level_commands&amp;rev=1605971407&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_console_compatible_hacks&amp;rev=1627949839&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_segments&amp;rev=1554285302&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_sm64_rom_hacks&amp;rev=1520620204&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_tools_for_decomp&amp;rev=1604524460&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:minor_decomp_tweaks&amp;rev=1645183366&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:mio0&amp;rev=1569433751&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:music&amp;rev=1565979291&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:ram_memory_map&amp;rev=1539307679&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:rom_memory_map&amp;rev=1717351922&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:segment_2&amp;rev=1520619625&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:skip_mario_head&amp;rev=1604523889&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:skip_peach_intro&amp;rev=1604523767&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:special_macro_objects&amp;rev=1539256256&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:star_milestone_dialogs&amp;rev=1559676076&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:star_select_rendering&amp;rev=1539521560&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:structs&amp;rev=1576871277&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:text_editing&amp;rev=1563115059&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:textures&amp;rev=1520619074&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:title_screen&amp;rev=1539523428&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:tutorials&amp;rev=1592069386&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hack64.net/wiki/doku.php?id=super_mario_64:weird_asm_code&amp;rev=1520620486&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.hack64.net/wiki/lib/tpl/dokuwiki/images/favicon.ico">
        <title>Hack64 Wiki</title>
        <link>https://www.hack64.net/wiki/</link>
        <url>https://www.hack64.net/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:actions&amp;rev=1609351274&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-30T18:01:14+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Mario's Actions</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:actions&amp;rev=1609351274&amp;do=diff</link>
        <description>Mario's Actions

Mario can do a lot of different things in Super Mario 64. He can run, jump, swim, wall-kick, and even sleep among many other actions. These different actions have their own values to them, and each value points to a specific function that will run when Mario's current action (Mario</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:applying_patches&amp;rev=1520620233&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-09T18:30:33+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Applying Patches</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:applying_patches&amp;rev=1520620233&amp;do=diff</link>
        <description>Applying Patches

Patch files for Super Mario 64 ROM hacks usually come in one two forms: BPS or PPF.

BPS Patches

BPS is an efficient, generic binary patch format.  It supports delta-encoding, folder patching, infinite file sizes and checksum verification.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:behavior_commands&amp;rev=1572772676&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-03T09:17:56+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Behavior Commands</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:behavior_commands&amp;rev=1572772676&amp;do=diff</link>
        <description>Behavior Commands

The behavior layout commands define how the objects and Mario are initialized and interact.  Like the Geometry Layout Commands, the behavior commands start with a type byte and have no length byte.

Behavior Commands

00: Start

Marks start of behavior. If haunted chair (4FD4) or mad piano (5024), it calls BehCommonInit (802A4120). If it is message panel (32E0), it sets 0x194 to 0x43160000 (150.0).</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:console_compatibility&amp;rev=1546955406&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-08T13:50:06+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Console compatibility with SM64 ROM hacks</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:console_compatibility&amp;rev=1546955406&amp;do=diff</link>
        <description>Console compatibility with SM64 ROM hacks

This page lists the problems found over the past few years to help figure out how to get custom SM64 ROM hacks to work on real N64 hardware. Each issue that we have discovered is detailed here, and also includes ways to fix those issues.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_action&amp;rev=1604523469&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T20:57:49+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Custom action (decomp)</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_action&amp;rev=1604523469&amp;do=diff</link>
        <description>Custom action (decomp)

This page describes how to add a custom action for Mario. This tutorial was originally shared by “JoshDuMan” in the N64 Decompilation discord.

To add a movement function, define the action as “ACT_INSERTNAMEHERE” in /include/sm64.h. You'll want to find a vacant action slot (they are ordered sequentially) in the action group of your choice and any flags you want, add them together to get the number and define it there.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_music_sequence&amp;rev=1763754416&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-21T19:46:56+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Custom music sequence</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_music_sequence&amp;rev=1763754416&amp;do=diff</link>
        <description>Custom music sequence

For Super Mario 64 hacking, there are several ways to create a custom music sequence.

Text file (decomp)

If you are working with the decompilation project, you may write down a music sequence in assembly. The decompilation project provides macros that helps writing music files. See includes/seq_marcos.inc for available commands.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_object&amp;rev=1604598296&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-05T17:44:56+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Custom object (decomp)</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:custom_object&amp;rev=1604598296&amp;do=diff</link>
        <description>Custom object (decomp)

This page describes how to create a custom object with custom 3D model and custom behavior using the Super Mario 64 decompilation project.

Export 3D model (Fast64)

In Blender, install the Fast64 plugin, select your object you want to export, open the Fast64 menu and expand</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:eeprom_map&amp;rev=1531521456&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-07-13T22:37:36+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>EEPROM Memory Map</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:eeprom_map&amp;rev=1531521456&amp;do=diff</link>
        <description>EEPROM Memory Map

The EEPROM is a chip inside the cartridge where the save game data is stored. The game stores the star, coin, cannon, and Mips data for each of the four save files and some main menu state. In order to protect against data corruption, the game stores a duplicate copy of each block and a 4 byte checksum at the end of it. If the checksums of the original and the copy don't match, then the game knows that something bad happened to your save file and will repair the corrupted data…</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:fast3d_display_list_commands&amp;rev=1653964493&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-31T02:34:53+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Fast3D Display List Commands</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:fast3d_display_list_commands&amp;rev=1653964493&amp;do=diff</link>
        <description>Fast3D Display List Commands

The Fast3D display list commands are microcode that are passed to the RSP for rendering.  They are all 8 bytes long.

Fast3D Commands

00: G_SPNOOP

No operation. This should only be used for debugging purposes.

00 00 00 00 00 00 00 00</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:fast64_troubleshooting&amp;rev=1604592945&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-05T16:15:45+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Fast64 troubleshooting</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:fast64_troubleshooting&amp;rev=1604592945&amp;do=diff</link>
        <description>Fast64 troubleshooting

Fast64 is a Blender plugin for creating levels and other 3D objects for the Super Mario 64 decompilation project. This page is a collection of common issues you may encounter when working with Fast64.

Can't export object Geolayout</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:function_list&amp;rev=1692763022&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-23T03:57:02+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Function List</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:function_list&amp;rev=1692763022&amp;do=diff</link>
        <description>Function List

This is a list of functions in Super Mario 64, and their prototypes. For using these functions with assembly hacking, refer to the CPU ABI page.
 Address  Function Name/Prototype  04000040  ipl3_entry  80246000  entry_point  80246050  void handle_debug_key_sequences(void);</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:geometry_layout_commands&amp;rev=1572790988&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-03T14:23:08+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Geometry Layout Commands</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:geometry_layout_commands&amp;rev=1572790988&amp;do=diff</link>
        <description>Geometry Layout Commands

The geometry layout commands define how geometric shapes are drawn.  Some geo layouts are contained after the Level data blocks and some are loaded with Level Command 0x17 The first byte of the geo layout command is the command type.  Unlike the level commands, there is no length byte specified in the command.  Most geo layout commands are constant length, however, some depend on the values set.
Once geo layouts are loaded, they are processed into a graph node system. G…</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:hacking_notes&amp;rev=1651878136&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-06T23:02:16+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Hacking Notes</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:hacking_notes&amp;rev=1651878136&amp;do=diff</link>
        <description>Hacking Notes

This serves as a repository for hacking note archives.

VL-Tone

	*  &lt;http://jul.rustedlogic.net/thread.php?id=596&gt;
	*  &lt;http://qubedstudios.rustedlogic.net/Mario64_HackingDoc1.5.txt&gt;
	*  &lt;http://qubedstudios.rustedlogic.net/M64TextureList07.txt&gt;
	*  &lt;http://qubedstudios.rustedlogic.net/ExtendedROMchanges.txt&gt;
	*  &lt;http://qubedstudios.rustedlogic.net/SM64MainLevelScripts.txt&gt;
	*  &lt;http://qubedstudios.rustedlogic.net/SM64GeoLayoutPtrs.txt&gt;
	*  &lt;http://qubedstudios.rustedlogic.net/S…</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:hacking_tools&amp;rev=1674397740&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-22T14:29:00+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Super Mario 64 Hacking Tools</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:hacking_tools&amp;rev=1674397740&amp;do=diff</link>
        <description>Super Mario 64 Hacking Tools

This is a collection of tools for SM64 ROM hacking.

SM64 Editor



The SM64 Editor is a discontinued tool that contains the power to extend the SM64 ROM, import levels, import models,

import music sequences, and making many tweaks to the ROM.  A good tool to start hacking SM64 with.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:hardcoded_star_locations&amp;rev=1582998116&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-29T17:41:56+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Hardcoded Star Locations</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:hardcoded_star_locations&amp;rev=1582998116&amp;do=diff</link>
        <description>Hardcoded Star Locations

Several stars in the vanilla Super Mario 64 ROM are hardcoded. Such as when you beat Bob-Omb King, the star that spawns is located at a hardcoded position. Here's a list of these stars and what their coordinates are.

Star Level Locations:</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:hud_rendering&amp;rev=1520619461&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-09T18:17:41+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>HUD Rendering</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:hud_rendering&amp;rev=1520619461&amp;do=diff</link>
        <description>HUD Rendering

The HUD is rendered using function RenderHud: 802E3D2C/09ED2C. This function reads state to determine which HUD elements to display and calls several other subroutines and makes use of the PrintStr() and PrintInt() functions.

Functions</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:level_commands&amp;rev=1605971407&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-21T15:10:07+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Level Commands</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:level_commands&amp;rev=1605971407&amp;do=diff</link>
        <description>Level Commands

The level commands define the top-level control of the game.  They are used to load levels, textures, collision data, objects, warps, etc. and determine how everything is connected.  The first byte of the level command is the command type and the second byte is the length of the command in bytes.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_console_compatible_hacks&amp;rev=1627949839&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-03T00:17:19+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>List of SM64 ROM hacks that work on real N64 hardware</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_console_compatible_hacks&amp;rev=1627949839&amp;do=diff</link>
        <description>List of SM64 ROM hacks that work on real N64 hardware
 Name  Author(s)  Compatibility notes  Number of Stars  Requires expansion pak?  Download site  SM64: The Missing Stars (Console Compatible)  Messiaen, Davideesk  Game is fully playable with some minor bugs. Both</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_segments&amp;rev=1554285302&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-04-03T09:55:02+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SM64 List of Segments</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_segments&amp;rev=1554285302&amp;do=diff</link>
        <description>SM64 List of Segments

SM64 often uses segmented addresses for certain regions of memory. There is a mapping table stored in RAM that is used to keep track of the base virtual address of each segment. This is used for both graphics data that is passed to the RSP and overlay data that changes depending on what the</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_sm64_rom_hacks&amp;rev=1520620204&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-09T18:30:04+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>List of SM64 ROM Hacks</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_sm64_rom_hacks&amp;rev=1520620204&amp;do=diff</link>
        <description>List of SM64 ROM Hacks

See Also

Applying Patches

References

	*  &lt;http://www.smwcentral.net/?p=section&amp;s=sm64hacks&gt;
	*  &lt;http://origami64.net/hacklist.php&gt;
	*  &lt;http://sm64hacks.com/hacks.php&gt;</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_tools_for_decomp&amp;rev=1604524460&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T21:14:20+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>List of tools for decomp</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:list_of_tools_for_decomp&amp;rev=1604524460&amp;do=diff</link>
        <description>List of tools for decomp

Here is a list of tools to work with the Super Mario 64 decompilation project.

Fast64

Fast64 is a Blender plugin that allows for creating and changing levels and object models.

&lt;https://bitbucket.org/kurethedead/fast64/src/master/&gt;

Goddard-ImportExport-Project

This Blender plugin allows for modifying the Goddard (Mario's head) model.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:minor_decomp_tweaks&amp;rev=1645183366&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-18T11:22:46+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Minor decomp tweaks</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:minor_decomp_tweaks&amp;rev=1645183366&amp;do=diff</link>
        <description>Minor decomp tweaks

Here's a collection of minor tweaks you can do in the Super Mario 64 decompilation project.

Skip Peach intro

To skip the intro peach cutscene on the bridge when you start a new file, in init_level in level_update.c, change:


if (gCurrDemoInput != NULL) {
    set_mario_action(gMarioState, ACT_IDLE, 0);
} else if (gDebugLevelSelect == 0) {
    if (gMarioState-&gt;action != ACT_UNINITIALIZED) {
        if (save_file_exists(gCurrSaveFileNum - 1)) {
            set_mario_action(g…</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:mio0&amp;rev=1569433751&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-25T17:49:11+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>MIO0 Compression</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:mio0&amp;rev=1569433751&amp;do=diff</link>
        <description>MIO0 Compression

The MIO0 compressed data format is used in several N64 games, including Super Mario 64.  It is related to LZ77.

MIO0 compressed block structure
 Offset  Len  Description  0x00  0x10  Header:  0x00  0x04  Signature: “MIO0”  0x04  0x04</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:music&amp;rev=1565979291&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-16T18:14:51+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SM64 Music</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:music&amp;rev=1565979291&amp;do=diff</link>
        <description>SM64 Music

Specification

These are the specifications for the data formats to store music in the SM64 ROM. They are common across many first-party Nintendo 64 titles, such as Mario Kart 64, Wave Race 64, Starfox 64, Zelda 64.

Work on reversing this specification roughly took place in three phases:</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:ram_memory_map&amp;rev=1539307679&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-12T01:27:59+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RAM Memory Map</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:ram_memory_map&amp;rev=1539307679&amp;do=diff</link>
        <description>RAM Memory Map
 US Address  JP Address  PAL Address  Shindou Address  Disk Version Address  Length  Type  Description  Notes  800EE060  800EB1E0        4 bytes  Pointer  Pointer to debug function   80207700  80207B00        112 bytes  Flag  EEPROM file A flags</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:rom_memory_map&amp;rev=1717351922&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-02T18:12:02+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Super Mario 64 ROM Memory Map</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:rom_memory_map&amp;rev=1717351922&amp;do=diff</link>
        <description>Super Mario 64 ROM Memory Map
 Start   End     Type    Description  000000  000040  header  ROM header  000040  001000  asm     boot assembly  001000  0E6258  asm  ASM copied to 80246000-8032B258  0E6260  0E6330  bin  rsp boot  0E6330  0E7330  bin  rsp graphics</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:segment_2&amp;rev=1520619625&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-09T18:20:25+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Segment 2</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:segment_2&amp;rev=1520619625&amp;do=diff</link>
        <description>Segment 2

Segment 2 contains the font textures (HUD, dialog, credits, transitions), font tables, dialog text, level names, act names, various display lists, and painting mesh data. It is MIO0 Compression compressed and stored at 0x108A40 in the (U) ROM and inflated by assembly at run time in the function at 80248964. It is located at ROM offset 0x803156 in the extended ROM.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:skip_mario_head&amp;rev=1604523889&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T21:04:49+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Skip Mario head sequence (decomp)</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:skip_mario_head&amp;rev=1604523889&amp;do=diff</link>
        <description>Skip Mario head sequence (decomp)

To skip the mario head sequence when you start the game, change


exit_and_execute /*seg*/ 0x14, /*script*/ _introSegmentRomStart, /*scriptEnd*/ _introSegmentRomEnd, /*entry*/ level_intro_entry_2


to


exit_and_execute /*seg*/ 0x14, /*script*/ _introSegmentRomStart, /*scriptEnd*/ _introSegmentRomEnd, /*entry*/ L1</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:skip_peach_intro&amp;rev=1604523767&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T21:02:47+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Skip Peach intro (decomp)</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:skip_peach_intro&amp;rev=1604523767&amp;do=diff</link>
        <description>Skip Peach intro (decomp)

To skip the intro peach cutscene when you start a new file, in init_level in level_update.c, change:


if (gCurrDemoInput != NULL) {
    set_mario_action(gMarioState, ACT_IDLE, 0);
} else if (gDebugLevelSelect == 0) {
    if (gMarioState-&gt;action != ACT_UNINITIALIZED) {
        if (save_file_exists(gCurrSaveFileNum - 1)) {
            set_mario_action(gMarioState, ACT_IDLE, 0);
        } else {
            set_mario_action(gMarioState, ACT_INTRO_CUTSCENE, 0);
          …</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:special_macro_objects&amp;rev=1539256256&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-11T11:10:56+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Special Macro 3D Objects</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:special_macro_objects&amp;rev=1539256256&amp;do=diff</link>
        <description>Special Macro 3D Objects

Special Macro objects are objects that are loaded into the level from the level script command 0x2E. Their main purpose is to save space in the ROM, since they only take up 8, 10, or 12 bytes each whereas regular objects take up 24 bytes. However, they are more limited than the regular objects loaded from the</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:star_milestone_dialogs&amp;rev=1559676076&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-04T19:21:16+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Star Milestone Dialogs</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:star_milestone_dialogs&amp;rev=1559676076&amp;do=diff</link>
        <description>Star Milestone Dialogs

The milestone values used in the game for the star milestone messages (1 star, 3 stars, 8 stars, 30 stars, etc.) are stored in an array of unsigned bytes in 8032db54/0e8b54 - 8032db59/0e8b59. 
Each milestone value displays text dialog</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:star_select_rendering&amp;rev=1539521560&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-14T12:52:40+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Star Select Rendering</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:star_select_rendering&amp;rev=1539521560&amp;do=diff</link>
        <description>Star Select Rendering

The star select screen is rendered using a combination of geo layout functions and behaviors for the stars. Much of the screen uses custom asm to generate the F3D display lists.

The main menu level script (2A6120-2A65B0) contains the level script for the act selector starting at 2A6238. This includes a check on course number (asm 8024BE14), a geo layout for the star select screen (seg 14000408, ROM 2A6528), and a behavior for the spinning stars (seg 13003048, ROM 21CE48).</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:structs&amp;rev=1576871277&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-20T19:47:57+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Structs</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:structs&amp;rev=1576871277&amp;do=diff</link>
        <description>Structs

----------

Collision Triangle
 Offset  Type  Description      0x00  u16  collision_type  0x02  u16  Special Parameter for Col types (e.g. wind direction, flowing water)  0x04  u8  flag  0x05  u8  index to be used when the asm function 0x8029DBD4 (in the US version) is used in the</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:text_editing&amp;rev=1563115059&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-14T14:37:39+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Text Editing</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:text_editing&amp;rev=1563115059&amp;do=diff</link>
        <description>Text Editing

The text for the dialogs, level names, and act (star) names are stored in the ROM using a custom encoding.

Text Data
 Type  Bank Offset  Ext. ROM Offset  Items  Offset Len.  Max data len  Dialog  0xFFC8  0x81311E  170  16 bytes  32997 bytes</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:textures&amp;rev=1520619074&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-09T18:11:14+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Textures</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:textures&amp;rev=1520619074&amp;do=diff</link>
        <description>Textures

The textures inside the SM64 ROM are contained within the MIO0 Compression compressed blocks.  They are encoded with one of the N64 microcode formats.

	*  16-bit RGBA
	*  4-bit IA
	*  8-bit IA
	*  16-bit IA

Texture List
 ROM MIO0  Extended ROM  Textures and offset in block</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:title_screen&amp;rev=1539523428&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-14T13:23:48+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Title Screen</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:title_screen&amp;rev=1539523428&amp;do=diff</link>
        <description>Title Screen

The title screen is displayed from the main level scripts using a combination of Geometry Layout Commands and assembly. The top level script at 108A10 loads the level script at 269EA0 into segment 0x14 and jumps to the beginning of it. The 269EA0 level scripts loads assembly from 21F4C0-269EA0 to RAM 8016F000, 219E00 into segment 0x13, MIO0 block from 26A3A0 (main menu textures) into segment 0x07, and starts a geo layout area from 0x140002D0.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:tutorials&amp;rev=1592069386&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-13T17:29:46+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Super Mario 64 Hacking Tutorials</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:tutorials&amp;rev=1592069386&amp;do=diff</link>
        <description>Super Mario 64 Hacking Tutorials

Comprehensive Beginner Tutorial Doc

&lt;https://docs.google.com/document/d/1pSYR91UiMVKnP3PyvJiCdwRF5wNS_nZzMe-r2WPQUJk/edit?pli=1#&gt;

This tutorial covers everything you need to know to start romhacking assuming you are starting as a complete beginner. Most other YT tutorials are outdated and don't represent modern hacking techniques.</description>
    </item>
    <item rdf:about="https://www.hack64.net/wiki/doku.php?id=super_mario_64:weird_asm_code&amp;rev=1520620486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-09T18:34:46+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Weird ASM Code</title>
        <link>https://www.hack64.net/wiki/doku.php?id=super_mario_64:weird_asm_code&amp;rev=1520620486&amp;do=diff</link>
        <description>Weird ASM Code

Throughout the SM64 ROM there is a lot of weird assembly code.  The purpose of this page is to document all the ASM weirdness.

Kill it Again

In case the first ANDI didn't work, the compiler inserts a second one.  It does this two more times.</description>
    </item>
</rdf:RDF>
