<![CDATA[Hack64 - Super Mario 64]]> (2024)

<![CDATA[Hack64 - Super Mario 64]]>https://hack64.net/<![CDATA[Hack64 - https://hack64.net]]>Thu, 24 Oct 2024 18:42:47 +0000MyBB<![CDATA[More Objects Patch 4 + Future Patches?]]>https://hack64.net/Thread-More-Objects-Patch-4-Future-PatchesTue, 23 Mar 2021 03:49:35 +0000https://hack64.net/Thread-More-Objects-Patch-4-Future-Patches<![CDATA[What's up? I decided to make a new MOP because there hasn't been a new one in years.

Note that this only works for SM64 ROM Manager, and not SM64 Editor or Decomp. That said I may probably port this to Decomp and Bowser's Blueprints eventually. (I already ported Boo Key/Door and Sunshine Dive Last year to decomp)
It is also 90% backwards compatible with MOP 1-3 (ROM Manager Versions), minus Purple ! Box and Beta Shells

It includes 6 new objects for SM64:
Name - Is Global? - Model - Behavior
Boo Key - Non-Global - 0x55 - 0x13001744
Boo Door - Global - Works with any door model - 0x13000F14
Red Koopa - Non-Global - Refer to included docs or set to 0 - Koopa Behavior
Red Koopa Shell - Global - Refer to included docs or set to 0 - Koopa Shell Behavior
Purple ! Box - Not Global? - Refer to included docs or set to 0 - ! Box Behavior (Bparam 2 = 4)
Creeper (Aw Man) - Global - Refer to included docs or set to 0 - 0x130022D8

Release Trailer/Download:



I've contacted Pilz to see if he can integrate this into RM as well, so it should work with Global Object Bank soon and what not. If anyone has any ideas for future patches I could make HMU with some ideas, such as a More Collisions Patch or a More Powerups/ ! Blocks Patch, etc, etc.]]>

<![CDATA[What's up? I decided to make a new MOP because there hasn't been a new one in years.

Note that this only works for SM64 ROM Manager, and not SM64 Editor or Decomp. That said I may probably port this to Decomp and Bowser's Blueprints eventually. (I already ported Boo Key/Door and Sunshine Dive Last year to decomp)
It is also 90% backwards compatible with MOP 1-3 (ROM Manager Versions), minus Purple ! Box and Beta Shells

It includes 6 new objects for SM64:
Name - Is Global? - Model - Behavior
Boo Key - Non-Global - 0x55 - 0x13001744
Boo Door - Global - Works with any door model - 0x13000F14
Red Koopa - Non-Global - Refer to included docs or set to 0 - Koopa Behavior
Red Koopa Shell - Global - Refer to included docs or set to 0 - Koopa Shell Behavior
Purple ! Box - Not Global? - Refer to included docs or set to 0 - ! Box Behavior (Bparam 2 = 4)
Creeper (Aw Man) - Global - Refer to included docs or set to 0 - 0x130022D8

Release Trailer/Download:



I've contacted Pilz to see if he can integrate this into RM as well, so it should work with Global Object Bank soon and what not. If anyone has any ideas for future patches I could make HMU with some ideas, such as a More Collisions Patch or a More Powerups/ ! Blocks Patch, etc, etc.]]>

<![CDATA[models and animations.]]>https://hack64.net/Thread-models-and-animationsSat, 20 Mar 2021 16:41:27 +0000https://hack64.net/Thread-models-and-animations<![CDATA[Hey, I am that same guy who made the post about decomp, now I can compile roms, and i need some help importing the gigaleak models and animations.

I want to import the unused star dance and other animations, i want the beta penguin, if anyone here can help me, please reply to me.]]>

<![CDATA[Hey, I am that same guy who made the post about decomp, now I can compile roms, and i need some help importing the gigaleak models and animations.

I want to import the unused star dance and other animations, i want the beta penguin, if anyone here can help me, please reply to me.]]>

<![CDATA[SM64GSW Updated For Linux/Windows - Write GameShark Codes To USA ROM/Modify CIC Check]]>https://hack64.net/Thread-SM64GSW-Updated-For-Linux-Windows-Write-GameShark-Codes-To-USA-ROM-Modify-CIC-CheckWed, 13 Jan 2021 07:34:49 +0000https://hack64.net/Thread-SM64GSW-Updated-For-Linux-Windows-Write-GameShark-Codes-To-USA-ROM-Modify-CIC-Check<![CDATA[SuperMario64GameSharkWriter is an open source3-BSDcommand line program written in C that writes GameShark/Xploder64 codes into a Super Mario 64 USA ROM (must be .z64/big endian format), and modifies the CRC check if neccesary (making this an alternatie to the CHKSUM64 program) allowing edited ROMs to boot inemulators. Unlike the old CHKSUM64 program the ROM will work in Mupen64Plus and many other emulators.

You can write a list of GameShark codes in a txt file, and SM64GSW can write each code line by line into aROM file. Alternatively, you can type each code into SM64GSW.

As of version 1.1, Linux x86, Linux x86_64, and Windows 95-Windows 10 builds are available on the officialweb page(which also contains the complete documentation.

<![CDATA[Hack64 - Super Mario 64]]> (1)
<![CDATA[Hack64 - Super Mario 64]]> (2)<![CDATA[Hack64 - Super Mario 64]]> (3)

<![CDATA[Hack64 - Super Mario 64]]> (4)
<![CDATA[Hack64 - Super Mario 64]]> (5)

<![CDATA[Hack64 - Super Mario 64]]> (6)
<![CDATA[Hack64 - Super Mario 64]]> (7)]]>

<![CDATA[SuperMario64GameSharkWriter is an open source3-BSDcommand line program written in C that writes GameShark/Xploder64 codes into a Super Mario 64 USA ROM (must be .z64/big endian format), and modifies the CRC check if neccesary (making this an alternatie to the CHKSUM64 program) allowing edited ROMs to boot inemulators. Unlike the old CHKSUM64 program the ROM will work in Mupen64Plus and many other emulators.

You can write a list of GameShark codes in a txt file, and SM64GSW can write each code line by line into aROM file. Alternatively, you can type each code into SM64GSW.

As of version 1.1, Linux x86, Linux x86_64, and Windows 95-Windows 10 builds are available on the officialweb page(which also contains the complete documentation.

<![CDATA[Hack64 - Super Mario 64]]> (8)
<![CDATA[Hack64 - Super Mario 64]]> (9)<![CDATA[Hack64 - Super Mario 64]]> (10)

<![CDATA[Hack64 - Super Mario 64]]> (11)
<![CDATA[Hack64 - Super Mario 64]]> (12)

<![CDATA[Hack64 - Super Mario 64]]> (13)
<![CDATA[Hack64 - Super Mario 64]]> (14)]]>

<![CDATA[Lower the 100 coins star]]>https://hack64.net/Thread-Lower-the-100-coins-starSat, 28 Nov 2020 11:14:49 +0000https://hack64.net/Thread-Lower-the-100-coins-star<![CDATA[Hi, do someone know how to change the 100 coins star to 75 or 50 coins?]]><![CDATA[Hi, do someone know how to change the 100 coins star to 75 or 50 coins?]]><![CDATA[SM64GSW Write GameShark Codes To USA ROM]]>https://hack64.net/Thread-SM64GSW-Write-GameShark-Codes-To-USA-ROMMon, 14 Sep 2020 04:08:40 +0000https://hack64.net/Thread-SM64GSW-Write-GameShark-Codes-To-USA-ROM<![CDATA[Edit: I will no longer be using this account, my new account is alex_free

and this project has moved to GitHub.

SM64GSW by Alex Free

==Info==
An open source (3-BSD) console program that can write GameShark/Xploder64 codes directly into a
Super Mario 64 USA ROM.

SM64GSW performs Messiaen64's manual hex editing method written at https://sites.google.com/site/messiaen64...hark-codes in software automatically so you don't
have to hex edit your SM64 ROM manually.

==Requirements==
- The Windows version is a 32-bit binary compatible with Windows 95 and above.
- Windows 95 requires MSVCR.dll (Windows 95 OSR2.5 and above already include it). One way you can get this is by updating Internet Explorer to version 4.0.
- A Super Mario 64 USA ROM in .z64 or .N64 (N64 SDK) format. The .n64 and .v64 formats are not supported.

==Usage==

1) Start SM64GSW in one of 2 different ways.

Command line method:
- Open cmd.exe or command.com.
- Execute the 'sm64gsw' command with your ROM as the argument. For example, the complete command could be
"sm64gsw C:\sm64.z64".

Windows Explorer method:
- Drag your ROM file on top of the sm64gsw.exe file.

2) Select your code input preference at the input selection menu.

SM64GSW can write codes contained in a txt file of your choosing, or you can input them with the keyboard.
In keyboard mode after each code is entered, it will be written to the ROM and you will be asked if you want to enter another code or to exit.
In file mode, you will be prompted to enter the file path (that must not contain spaces!) for a txt file containing codes. The txt file
can contain a code or multiple codes, one code per line. The file 'gs.txt' in this release is an example of this.
You can manually type in the file path, drag and drop the rom into the SM64GSW.exe window, or copy - paste the file path if in cmd.exe.

If SM64GSW tells you 'Attention: At least one code invalidates the internal ROM checksum, run checksum64
on your ROM before playing' you MUST run the 'chksum64' program on the ROM file after writing your codes. You
can do this by dropping your newly modified ROM on top of the chksum64 executable (Chksum64 is written by Andreas Sterbenz).

3) Test the ROM.

==What Codes Work?==

There is an incomplete list of some codes that work in the file named 'known_working_codes.txt' in this release.

Supported RAM range is 80246000-80333000. The 3rd-8th digits of a code must be a hexadecimal value in the
range of 246000-333000 to work.

Not all N64 GameShark/Xploder64 code types are supported. This is due to certain code types not translating
into just hex writes for various reasons, such as codes that:
- Require physical hardware (like a GS button).
- Perform live checks and or dynamic modification.
- Simply not being appliable (Expansion pack releated, non-Super Mario 64 security chip related).

Code types are defined by the first 2 hexadecimal digits of a code. For example, in the level select code
'A032D58C 0001' 'A0' is the code type. For multi-line codes, if any lines contain an incompatible code type
the entire code can not be written into ROM. See the table below for specifics.

Supported codes include 80, A0, F0, 81, A1, and 2A. 80, A0, and F0 must be in the X0XXXXXX-00XX format.

==License==
- This is open source software, released under the 3-Clause BSD license (read license.txt). It **should** compile
and work on other little-endian Operating Systems.

==Changelog==
==Version 1.0.1==
- Fixes a bug which prevented codes from being entered by the keyboard, after an invalid code was entered.

[color=var(--color-text-secondary)][url=https://github.com/][/url]
[/color]]]>

<![CDATA[Edit: I will no longer be using this account, my new account is alex_free

and this project has moved to GitHub.

SM64GSW by Alex Free

==Info==
An open source (3-BSD) console program that can write GameShark/Xploder64 codes directly into a
Super Mario 64 USA ROM.

SM64GSW performs Messiaen64's manual hex editing method written at https://sites.google.com/site/messiaen64...hark-codes in software automatically so you don't
have to hex edit your SM64 ROM manually.

==Requirements==
- The Windows version is a 32-bit binary compatible with Windows 95 and above.
- Windows 95 requires MSVCR.dll (Windows 95 OSR2.5 and above already include it). One way you can get this is by updating Internet Explorer to version 4.0.
- A Super Mario 64 USA ROM in .z64 or .N64 (N64 SDK) format. The .n64 and .v64 formats are not supported.

==Usage==

1) Start SM64GSW in one of 2 different ways.

Command line method:
- Open cmd.exe or command.com.
- Execute the 'sm64gsw' command with your ROM as the argument. For example, the complete command could be
"sm64gsw C:\sm64.z64".

Windows Explorer method:
- Drag your ROM file on top of the sm64gsw.exe file.

2) Select your code input preference at the input selection menu.

SM64GSW can write codes contained in a txt file of your choosing, or you can input them with the keyboard.
In keyboard mode after each code is entered, it will be written to the ROM and you will be asked if you want to enter another code or to exit.
In file mode, you will be prompted to enter the file path (that must not contain spaces!) for a txt file containing codes. The txt file
can contain a code or multiple codes, one code per line. The file 'gs.txt' in this release is an example of this.
You can manually type in the file path, drag and drop the rom into the SM64GSW.exe window, or copy - paste the file path if in cmd.exe.

If SM64GSW tells you 'Attention: At least one code invalidates the internal ROM checksum, run checksum64
on your ROM before playing' you MUST run the 'chksum64' program on the ROM file after writing your codes. You
can do this by dropping your newly modified ROM on top of the chksum64 executable (Chksum64 is written by Andreas Sterbenz).

3) Test the ROM.

==What Codes Work?==

There is an incomplete list of some codes that work in the file named 'known_working_codes.txt' in this release.

Supported RAM range is 80246000-80333000. The 3rd-8th digits of a code must be a hexadecimal value in the
range of 246000-333000 to work.

Not all N64 GameShark/Xploder64 code types are supported. This is due to certain code types not translating
into just hex writes for various reasons, such as codes that:
- Require physical hardware (like a GS button).
- Perform live checks and or dynamic modification.
- Simply not being appliable (Expansion pack releated, non-Super Mario 64 security chip related).

Code types are defined by the first 2 hexadecimal digits of a code. For example, in the level select code
'A032D58C 0001' 'A0' is the code type. For multi-line codes, if any lines contain an incompatible code type
the entire code can not be written into ROM. See the table below for specifics.

Supported codes include 80, A0, F0, 81, A1, and 2A. 80, A0, and F0 must be in the X0XXXXXX-00XX format.

==License==
- This is open source software, released under the 3-Clause BSD license (read license.txt). It **should** compile
and work on other little-endian Operating Systems.

==Changelog==
==Version 1.0.1==
- Fixes a bug which prevented codes from being entered by the keyboard, after an invalid code was entered.

[color=var(--color-text-secondary)][url=https://github.com/][/url]
[/color]]]>

<![CDATA[Reading Geometry from ROM]]>https://hack64.net/Thread-Reading-Geometry-from-ROMMon, 13 Jul 2020 02:37:34 +0000https://hack64.net/Thread-Reading-Geometry-from-ROM<![CDATA[I've been looking into creating some TAS tools for SM64 specifically. I'm trying to create a map of the geometry in the currently loaded level while having accurate positioning of each of object's (ground textures, item boxes, enemies, etc.) vertices/positions relative to the in game coordinate system. Kinda like making a overhead map. I'm sure that there is a way to do this, as Toad's Tool must do something like this for editing purposes. Is there any way to read these from the ROM?

Sorry if this is not the place for this question, but I haven't been able to find anyone who knows.

Also, is there a way to determine whether a ground tile is a slope (determine whether mario can walk on it or if he will slide when stood on)?]]>

<![CDATA[I've been looking into creating some TAS tools for SM64 specifically. I'm trying to create a map of the geometry in the currently loaded level while having accurate positioning of each of object's (ground textures, item boxes, enemies, etc.) vertices/positions relative to the in game coordinate system. Kinda like making a overhead map. I'm sure that there is a way to do this, as Toad's Tool must do something like this for editing purposes. Is there any way to read these from the ROM?

Sorry if this is not the place for this question, but I haven't been able to find anyone who knows.

Also, is there a way to determine whether a ground tile is a slope (determine whether mario can walk on it or if he will slide when stood on)?]]>

<![CDATA[SM64 Fast3D Anti-Aliasing Reducer]]>https://hack64.net/Thread-SM64-Fast3D-Anti-Aliasing-ReducerFri, 13 Sep 2019 03:12:02 +0000https://hack64.net/Thread-SM64-Fast3D-Anti-Aliasing-Reducer<![CDATA[This is a simple tool you can use to improve performance on real N64 hardware by forcing the game to use the reduced anti-aliasing mode instead of the full anti-aliasing mode.

<![CDATA[Hack64 - Super Mario 64]]> (15)


How does it work?

This tool will inject a modified version of the Fast3D 2.0D microcode that will block any attempt to write the IM_RD render mode flag into the RDP's othermode variable. Doing this forces the game to use the reduced anti-aliasing mode, which should improve performance on console by 3-4 fps (~10%).


How do I use it?

Just simply open up a Super Mario 64 ROM file, and then you can click the "Reduce the AA!" button if the ROM is compatible. Once the button is pressed, it will create a new ROM file with the ".ra" prefixed to the extension. For example,using the rom file "sm64.z64" will generate a new rom called "sm64.ra.z64".


What SM64 ROMs are supported?

Any SM64 ROM that uses the Fast3D 2.0D microcode is compatible. This includes the Japanese and North American versions of SM64 and any ROM hacks made with those versions.


What about emulators?

The compatibility with emulators will mainly depend on what kind of plugin that you use. In theory, high-level emulation plugins like should not have any problems if they assume that this microcode is just regular Fast3D. However, as mentioned in the replies below, some plugins like GlideN64 v4.0 doesn't seem to emulate the microcode correctly.

Also some low-level emulation plugins like angrylion do not like the custom microcode, and may make the game lag even more than before. Which is weird, because the microcode runs fine on real hardware.¯\_(ツ)_/¯


Benchmark

The beginning area of Jolly Roger Bay does lag a significant amount. Going down to a 22 fps minimum in my testing. Injecting the modified microcode makes a significant difference in the feel of the game, with the minimum increased to 25 fps.

My jolly roger bay benchmark starts at the beginning of the level and has Mario swim into the underwater cave. The framerate is bad in the beginning, but gets a lot better when you are deep underwater.

<![CDATA[Hack64 - Super Mario 64]]> (16)


Download & Source

Download: https://github.com/DavidSM64/SM64-Fast3D...r/releases
Source: https://github.com/DavidSM64/SM64-Fast3D-AA-Reducer/

]]>
<![CDATA[This is a simple tool you can use to improve performance on real N64 hardware by forcing the game to use the reduced anti-aliasing mode instead of the full anti-aliasing mode.

<![CDATA[Hack64 - Super Mario 64]]> (17)


How does it work?

This tool will inject a modified version of the Fast3D 2.0D microcode that will block any attempt to write the IM_RD render mode flag into the RDP's othermode variable. Doing this forces the game to use the reduced anti-aliasing mode, which should improve performance on console by 3-4 fps (~10%).


How do I use it?

Just simply open up a Super Mario 64 ROM file, and then you can click the "Reduce the AA!" button if the ROM is compatible. Once the button is pressed, it will create a new ROM file with the ".ra" prefixed to the extension. For example,using the rom file "sm64.z64" will generate a new rom called "sm64.ra.z64".


What SM64 ROMs are supported?

Any SM64 ROM that uses the Fast3D 2.0D microcode is compatible. This includes the Japanese and North American versions of SM64 and any ROM hacks made with those versions.


What about emulators?

The compatibility with emulators will mainly depend on what kind of plugin that you use. In theory, high-level emulation plugins like should not have any problems if they assume that this microcode is just regular Fast3D. However, as mentioned in the replies below, some plugins like GlideN64 v4.0 doesn't seem to emulate the microcode correctly.

Also some low-level emulation plugins like angrylion do not like the custom microcode, and may make the game lag even more than before. Which is weird, because the microcode runs fine on real hardware.¯\_(ツ)_/¯


Benchmark

The beginning area of Jolly Roger Bay does lag a significant amount. Going down to a 22 fps minimum in my testing. Injecting the modified microcode makes a significant difference in the feel of the game, with the minimum increased to 25 fps.

My jolly roger bay benchmark starts at the beginning of the level and has Mario swim into the underwater cave. The framerate is bad in the beginning, but gets a lot better when you are deep underwater.

<![CDATA[Hack64 - Super Mario 64]]> (18)


Download & Source

Download: https://github.com/DavidSM64/SM64-Fast3D...r/releases
Source: https://github.com/DavidSM64/SM64-Fast3D-AA-Reducer/

]]>
<![CDATA[SM64 Portal Tools]]>https://hack64.net/Thread-SM64-Portal-ToolsWed, 31 Jul 2019 12:13:03 +0000https://hack64.net/Thread-SM64-Portal-Tools<![CDATA[SM64 Portal Tools isa collection of objects that can be added to sm64. Included is also portal physics and tools.

<![CDATA[Hack64 - Super Mario 64]]> (19)

The idea of combining the best parts of sm64 physics with portal mechanics is to enable more unique and interesting variations in rom hacks.With portal objects and physics integrated a lot of new opportunities open up for level design, playing with physics in interesting ways and creating various forms of puzzles.

Only basic rom hacking knowledge is required to use these tools (the tutorial covers everything)

Objects included:

  • Sentry Turret
  • Cube
  • Light Bridge
  • Laser Beam
  • Receptacle Laser
  • Receptacle Pellet
  • Reflect Cube
  • Excursion Funnel
  • Excursion Funnel Switch
  • High Energy Pellet
  • Gel (blue)
  • Gel (yellow)
  • Gel (faucet)
  • Chamber Door
  • Connected Metal Box
  • Connected Metal Box (Appearing)
  • Switch with Hidden Boxes

Tutorial:
https://docs.google.com/document/d/1a4Ib...-MzfLTfog/

Downloads:
https://mega.nz/#!VkdkWSYT!FeKiVGj75y60H...HmVDfoQvh8]]>

<![CDATA[SM64 Portal Tools isa collection of objects that can be added to sm64. Included is also portal physics and tools.

<![CDATA[Hack64 - Super Mario 64]]> (20)

The idea of combining the best parts of sm64 physics with portal mechanics is to enable more unique and interesting variations in rom hacks.With portal objects and physics integrated a lot of new opportunities open up for level design, playing with physics in interesting ways and creating various forms of puzzles.

Only basic rom hacking knowledge is required to use these tools (the tutorial covers everything)

Objects included:

  • Sentry Turret
  • Cube
  • Light Bridge
  • Laser Beam
  • Receptacle Laser
  • Receptacle Pellet
  • Reflect Cube
  • Excursion Funnel
  • Excursion Funnel Switch
  • High Energy Pellet
  • Gel (blue)
  • Gel (yellow)
  • Gel (faucet)
  • Chamber Door
  • Connected Metal Box
  • Connected Metal Box (Appearing)
  • Switch with Hidden Boxes

Tutorial:
https://docs.google.com/document/d/1a4Ib...-MzfLTfog/

Downloads:
https://mega.nz/#!VkdkWSYT!FeKiVGj75y60H...HmVDfoQvh8]]>

<![CDATA[SM64 Enhanced Text Engine]]>https://hack64.net/Thread-SM64-Enhanced-Text-EngineSat, 27 Jul 2019 12:29:07 +0000https://hack64.net/Thread-SM64-Enhanced-Text-Engine<![CDATA[The sm64 enhanced text engine is a new way to display text in sm64 that allows much more versatility and direct control on how each and every character is displayed includingtiming, size andlocation.

To see all the feature of this engine, see this video:https://youtu.be/A-YfaQpm5-A

This is installed as an asm patch, it will take the rom space from 0x1203800 - 0x12052C0. Included isthe function itself "print string notes", the keyboard used for user input(simply place the entire file at 0x1204FFC)andan HTML file called "special_text_encode". This is a tool to make creating the strings easier since you can encode the cmds along with the text. The asm fileincludes two functions for the user to easily activate the text.

Code:

//80405218
//enable dialog with this object
//a0=x
//a1=y
//a2=*string
//everything but this object and mario will freeze, when dialog ends, everything will unfreeze (aka a 7C or a 7B cmd), call every frame while in dialog, 0x90 will be 1 during dialog, 0 when out of dialog

Code:

//display string during gameplay
//80404F40
//a0=x
//a1=y
//a2=*string

To make the strings, you place cmds inside the actual string. Cmds will be bytes unused by the normal sm64 text encoding and will have some parameters following them (ex. 40 0001 - set text speed to 1 VI per character).

Below is a list of all the cmds included along with some things to keep in mind while using them

Code:

//40 set VIs per character, 2 byte - VIs per new char
//41 play sfx, 2 bytes - sfx arg
//42 set color of following characters, 4 bytes (white by default) - RGBA
//43 display short user string, 1 byte - user string number (each string is 10 bytes and goes from 6f00 to 6FF0, so inputs are 0 to F)
//44 display long user inputted string, up to FF characters
//45 return from user string (automatically generated by 4F cmd)
//46 make rainbow text (characters following cmd will rgb glow, call a new env color to disable) 1 byte - alpha value
//4E re enable user input on re-talk (by default, a user input only works once, then the cmd acts as if it is not there, ofc this does not stay after resetting the game)
//4F allow user input of short string, 1 byte - short user string ID. (This cmd will remove all other input and bring a keyboard up the player can type on. If you are not in time stop mario will move around while typing and it will suck)
//boxes will reset scaling and position and color. The only thing preserved is the character speed, and the blip flags.
//70 end of box, auto go to next box (put a pause before this so your string stays a while)
//71 end of box, goto next box on a press
//72 remove all text for certain number of VIs, 2 bytes - num of VIs with no text (Text will flash back to its previous spot after it is done, so if you had three sentences, it will auto go back to that point once the cmd is done), 0 has no effect
//74 pause - 2 bytes VIs to wait
//76 play small blip sound per character (think like in megaman or any other rpg with text scrolling)
//77 disable blip
//78 change music that plays after message to currently playing music (basically use this so if you switch tracks mid message, the track keeps playing)
//79 play music track, 1 byte - track number (original music will resume when string is done)
//7A disable all music (original music will resume when string is done)
//7B stop displaying string on A press (basically use this as an FF)
//7C stop displaying string after number of VI's (basically use this as an FF) - 2 bytes - num of VI's to wait until string is gone
//7F define background box, 2 bytes x start, 2 bytes y start, 2 bytes x end, 2 bytes y end. 4 bytes env color (coordinates go from the bottom right as the origin and increase)
//84 scale text, 4 bytes x scale float, 4 bytes y scale float (To compensate for large Y scaling, just do several line breaks the text will go farther up, e.g. y scale of 2 will need an empty line above it to not overlap, x will auto align)
//85 enable dialog options, 1 byte, number of options (they will be displayed vertically), the following strings will be the options, to use an user inputted string as an option do this (ex. 43 FF), returns byte of option selected (zero indexed, end each dialog option with an 0xFF)
//86 display following only on returned dialog option, 1 byte return, truncate string with FF, if return value does not match it will skip to following string, if there is no following string it will just display nothing (zero indexed)
//87 display general text (basically anything after this will display no matter what dialog option you choose, if you put another 86 cmd after this, general text will end and it will pass all text until another 87 or a matching 86)
//88 enable screen shake (only in certain levels?)
//89 disable screen shake


I have included two example objects on how you should use this engine. They are located at the very bottom of the asm file so you can read through those to see how simple it is to setup.
You can also find the special text encoder along with other tools I have made here:https://sites.google.com/view/supermario...authuser=0

<![CDATA[Hack64 - Super Mario 64]]> (21)special_text_encode.html (Size: 17.25 KB / Downloads: 798)

<![CDATA[Hack64 - Super Mario 64]]> (22)print string notes.txt (Size: 50.61 KB / Downloads: 729)

<![CDATA[Hack64 - Super Mario 64]]> (23)keyboard.txt (Size: 388 bytes / Downloads: 873)]]>
<![CDATA[The sm64 enhanced text engine is a new way to display text in sm64 that allows much more versatility and direct control on how each and every character is displayed includingtiming, size andlocation.

To see all the feature of this engine, see this video:https://youtu.be/A-YfaQpm5-A

This is installed as an asm patch, it will take the rom space from 0x1203800 - 0x12052C0. Included isthe function itself "print string notes", the keyboard used for user input(simply place the entire file at 0x1204FFC)andan HTML file called "special_text_encode". This is a tool to make creating the strings easier since you can encode the cmds along with the text. The asm fileincludes two functions for the user to easily activate the text.

Code:

//80405218
//enable dialog with this object
//a0=x
//a1=y
//a2=*string
//everything but this object and mario will freeze, when dialog ends, everything will unfreeze (aka a 7C or a 7B cmd), call every frame while in dialog, 0x90 will be 1 during dialog, 0 when out of dialog

Code:

//display string during gameplay
//80404F40
//a0=x
//a1=y
//a2=*string

To make the strings, you place cmds inside the actual string. Cmds will be bytes unused by the normal sm64 text encoding and will have some parameters following them (ex. 40 0001 - set text speed to 1 VI per character).

Below is a list of all the cmds included along with some things to keep in mind while using them

Code:

//40 set VIs per character, 2 byte - VIs per new char
//41 play sfx, 2 bytes - sfx arg
//42 set color of following characters, 4 bytes (white by default) - RGBA
//43 display short user string, 1 byte - user string number (each string is 10 bytes and goes from 6f00 to 6FF0, so inputs are 0 to F)
//44 display long user inputted string, up to FF characters
//45 return from user string (automatically generated by 4F cmd)
//46 make rainbow text (characters following cmd will rgb glow, call a new env color to disable) 1 byte - alpha value
//4E re enable user input on re-talk (by default, a user input only works once, then the cmd acts as if it is not there, ofc this does not stay after resetting the game)
//4F allow user input of short string, 1 byte - short user string ID. (This cmd will remove all other input and bring a keyboard up the player can type on. If you are not in time stop mario will move around while typing and it will suck)
//boxes will reset scaling and position and color. The only thing preserved is the character speed, and the blip flags.
//70 end of box, auto go to next box (put a pause before this so your string stays a while)
//71 end of box, goto next box on a press
//72 remove all text for certain number of VIs, 2 bytes - num of VIs with no text (Text will flash back to its previous spot after it is done, so if you had three sentences, it will auto go back to that point once the cmd is done), 0 has no effect
//74 pause - 2 bytes VIs to wait
//76 play small blip sound per character (think like in megaman or any other rpg with text scrolling)
//77 disable blip
//78 change music that plays after message to currently playing music (basically use this so if you switch tracks mid message, the track keeps playing)
//79 play music track, 1 byte - track number (original music will resume when string is done)
//7A disable all music (original music will resume when string is done)
//7B stop displaying string on A press (basically use this as an FF)
//7C stop displaying string after number of VI's (basically use this as an FF) - 2 bytes - num of VI's to wait until string is gone
//7F define background box, 2 bytes x start, 2 bytes y start, 2 bytes x end, 2 bytes y end. 4 bytes env color (coordinates go from the bottom right as the origin and increase)
//84 scale text, 4 bytes x scale float, 4 bytes y scale float (To compensate for large Y scaling, just do several line breaks the text will go farther up, e.g. y scale of 2 will need an empty line above it to not overlap, x will auto align)
//85 enable dialog options, 1 byte, number of options (they will be displayed vertically), the following strings will be the options, to use an user inputted string as an option do this (ex. 43 FF), returns byte of option selected (zero indexed, end each dialog option with an 0xFF)
//86 display following only on returned dialog option, 1 byte return, truncate string with FF, if return value does not match it will skip to following string, if there is no following string it will just display nothing (zero indexed)
//87 display general text (basically anything after this will display no matter what dialog option you choose, if you put another 86 cmd after this, general text will end and it will pass all text until another 87 or a matching 86)
//88 enable screen shake (only in certain levels?)
//89 disable screen shake


I have included two example objects on how you should use this engine. They are located at the very bottom of the asm file so you can read through those to see how simple it is to setup.
You can also find the special text encoder along with other tools I have made here:https://sites.google.com/view/supermario...authuser=0

<![CDATA[Hack64 - Super Mario 64]]> (24)special_text_encode.html (Size: 17.25 KB / Downloads: 798)

<![CDATA[Hack64 - Super Mario 64]]> (25)print string notes.txt (Size: 50.61 KB / Downloads: 729)

<![CDATA[Hack64 - Super Mario 64]]> (26)keyboard.txt (Size: 388 bytes / Downloads: 873)]]>
<![CDATA[m64 format documentation]]>https://hack64.net/Thread-m64-format-documentationTue, 16 Jul 2019 14:33:57 +0000https://hack64.net/Thread-m64-format-documentation<![CDATA[Through reverse-engineering of the SM64 audio library, I figured some more details of the m64 format.

The hack64 forum software doesn't seem to support tables, but here's an external markdown doc: https://hackmd.io/opEB-OmxRa26P8h8pA-x7w as well as a decoder: https://gist.github.com/simonlindholm/30...22c291f878

The list of commands should be complete, though some of the descriptions are a bit vague. I could look closer into the code if there's some particular aspect that people are interested in.]]>

<![CDATA[Through reverse-engineering of the SM64 audio library, I figured some more details of the m64 format.

The hack64 forum software doesn't seem to support tables, but here's an external markdown doc: https://hackmd.io/opEB-OmxRa26P8h8pA-x7w as well as a decoder: https://gist.github.com/simonlindholm/30...22c291f878

The list of commands should be complete, though some of the descriptions are a bit vague. I could look closer into the code if there's some particular aspect that people are interested in.]]>

<![CDATA[Super Mario 64 Randomizer Program [v0.6.0]]]>https://hack64.net/Thread-Super-Mario-64-Randomizer-Program-v0-6-0Sun, 02 Jun 2019 13:04:00 +0000https://hack64.net/Thread-Super-Mario-64-Randomizer-Program-v0-6-0<![CDATA[This is an open source python-based Super Mario 64randomizer for the original game (as well as romhacks)that I have been working on the last fewweeks.Inspired by the Zelda Ocarina of Time Randomizer (github)

<![CDATA[Hack64 - Super Mario 64]]> (27)


Randomizers are a trendy topic right now but in case you have not heard of it before, here's a brief summary: This program will take an existing ROM (or Romhack!) and shuffle various parts around, like warp positions, object positions, text-addresses and so on, to generate a completely new challenge, everytime it is used.

The program is still in an early alpha, I'd say, so some things might break especially when working with romhacks. For that I recommend using the CLI, to have a more verbose output on whats wrong. Please feel free to come into the discord for support on running the randomizer on romhacks, or in general when you're having trouble using it.

Current features:

  • Object position shuffle*
  • Spawn position shuffle
  • Music track shuffle
  • Warp entry/exit shuffle
  • Castle Paintings match levels (levels without a painting will show a placeholder)
  • Dialog/Text shuffle
  • Coin-color shuffle
  • Mario's Outfit shuffle
  • Configurable via CLI or GUI
  • Extends your ROM automatically
  • Web Generator
* Object shuffle has some validity checks to ensure playability, unfortunately that doesn't always work. I rely on more playtesting so I can figure out what's wrong.

Screenshots:
<![CDATA[Hack64 - Super Mario 64]]> (28)<![CDATA[Hack64 - Super Mario 64]]> (29)<![CDATA[Hack64 - Super Mario 64]]> (30)

The program includes a simple GUI for Windows/Mac/Linux:
<![CDATA[Hack64 - Super Mario 64]]> (31)

This project has been a lot of fun, so I'm looking forward to having more people on board with suggestions, playtesting and development help. Feel free to join our (relatively empty) discord server for updates and support!

<![CDATA[Hack64 - Super Mario 64]]> (32)


Download:
https://github.com/andre-meyer/sm64-rand...ses/latest

(I posted here instead of in projects because I feel it is more than SM64 specific, considering it works with any SM64 based ROM - Feel free to move, if that was a bad choice)]]>

<![CDATA[This is an open source python-based Super Mario 64randomizer for the original game (as well as romhacks)that I have been working on the last fewweeks.Inspired by the Zelda Ocarina of Time Randomizer (github)

<![CDATA[Hack64 - Super Mario 64]]> (33)


Randomizers are a trendy topic right now but in case you have not heard of it before, here's a brief summary: This program will take an existing ROM (or Romhack!) and shuffle various parts around, like warp positions, object positions, text-addresses and so on, to generate a completely new challenge, everytime it is used.

The program is still in an early alpha, I'd say, so some things might break especially when working with romhacks. For that I recommend using the CLI, to have a more verbose output on whats wrong. Please feel free to come into the discord for support on running the randomizer on romhacks, or in general when you're having trouble using it.

Current features:

  • Object position shuffle*
  • Spawn position shuffle
  • Music track shuffle
  • Warp entry/exit shuffle
  • Castle Paintings match levels (levels without a painting will show a placeholder)
  • Dialog/Text shuffle
  • Coin-color shuffle
  • Mario's Outfit shuffle
  • Configurable via CLI or GUI
  • Extends your ROM automatically
  • Web Generator
* Object shuffle has some validity checks to ensure playability, unfortunately that doesn't always work. I rely on more playtesting so I can figure out what's wrong.

Screenshots:
<![CDATA[Hack64 - Super Mario 64]]> (34)<![CDATA[Hack64 - Super Mario 64]]> (35)<![CDATA[Hack64 - Super Mario 64]]> (36)

The program includes a simple GUI for Windows/Mac/Linux:
<![CDATA[Hack64 - Super Mario 64]]> (37)

This project has been a lot of fun, so I'm looking forward to having more people on board with suggestions, playtesting and development help. Feel free to join our (relatively empty) discord server for updates and support!

<![CDATA[Hack64 - Super Mario 64]]> (38)


Download:
https://github.com/andre-meyer/sm64-rand...ses/latest

(I posted here instead of in projects because I feel it is more than SM64 specific, considering it works with any SM64 based ROM - Feel free to move, if that was a bad choice)]]>

<![CDATA[ASM + hacking tutorial.]]>https://hack64.net/Thread-ASM-hacking-tutorialFri, 03 May 2019 23:19:37 +0000https://hack64.net/Thread-ASM-hacking-tutorial<![CDATA[I've been working on some documents to help get people in asm a bit. The hacking scene has been pretty active lately and a lot of new people are asking about things that can be done simply with asm so I figured I would write a quick tutorial. You shouldn't expect to understand this if you're completely new to hacking or computer science; learning this will take some effort. If you find any errors post in this thread or msg me please.
Here is what I've written so far:

Super Beginner:

Preface:Introduction to hexidecimal, ram/rom + banks and offsets, quick custom model importing + behavior scripts explanation

Beginner

Part 1:MIPS asm intro, the object struct and how you can use it to control objects

Part 2:floats, branches, jumps, the stack and functions and some example uses

Part 3:The mario struct, interactions and more in depth behaviors

Part 4:Practical examples and explanations

Aside:using the debugger (overview)

Advanced:

Part 5:Collision and Display Lists Introduction

WIP:

If you would like to contribute please message me or post in this thread. These tutorials will also be featured on my webiste:https://sites.google.com/view/supermario...authuser=0]]>

<![CDATA[I've been working on some documents to help get people in asm a bit. The hacking scene has been pretty active lately and a lot of new people are asking about things that can be done simply with asm so I figured I would write a quick tutorial. You shouldn't expect to understand this if you're completely new to hacking or computer science; learning this will take some effort. If you find any errors post in this thread or msg me please.
Here is what I've written so far:

Super Beginner:

Preface:Introduction to hexidecimal, ram/rom + banks and offsets, quick custom model importing + behavior scripts explanation

Beginner

Part 1:MIPS asm intro, the object struct and how you can use it to control objects

Part 2:floats, branches, jumps, the stack and functions and some example uses

Part 3:The mario struct, interactions and more in depth behaviors

Part 4:Practical examples and explanations

Aside:using the debugger (overview)

Advanced:

Part 5:Collision and Display Lists Introduction

WIP:

If you would like to contribute please message me or post in this thread. These tutorials will also be featured on my webiste:https://sites.google.com/view/supermario...authuser=0]]>

<![CDATA[Playsound ROM Locations]]>https://hack64.net/Thread-Playsound-ROM-LocationsFri, 23 Nov 2018 18:53:22 +0000https://hack64.net/Thread-Playsound-ROM-Locations<![CDATA[During the summer,I also started a little side-project on the side in a quest to documentall the playsound locationsin the ROM for convenience sake, as I've noticed certain playsounds: last longer/shorter than others, are binded by one particular sound effect (cowbell being binded to coins, health meter, etc for example), have multiple sound effects within them (example: coin + it's a me Mario). Being able to change these playsound arguments can be useful in getting around theseimpediments that bring forth frustration in sound hacking.

Here is my WIP list of the playsound ROM addresses I've found so far:

Playsound Locations (In an arbitrary order):

Mario Screen "Hello!": 0x21F8C2
Mario Screen "Press Start to Play!": 0x21F8DE
Mario Screen Star (Pressing Start): 0x21F91A
Mario Screen "Game Over!": 0x21F992
Title Screen Coin + It's a Me Mario (credit to Kaze): 0x21FA3E
Bowser Laugh when you die: 0x5B5A
Coin (credit to Xeraclom14): 0x6216
Coin (Underwater): 0x6206
Enter Warp Pipe: 0x9056
Exit Warp Pipe (Like in THI): 0x1457A
Enter Warp Hole: 0x9062
Waterfall: 0xAB7FE
Volcano: 0xAB82A
Birds 1: 0xAB8FA
Birds 2: 0xAB90E
Birds 3: 0xAB922
Crickets: 0xAB97A
Sand: 0xAB9CE
1-up Sound: 0xAEC7E
Goomba Smashed: 0xB63AA
Goomba Alert: 0xBA522
Small Bully Grunt: 0xA61F6
Monkey Message: 0xEDF04
Big Penguin Message: 0xEDF08
Short Bowser Laugh Message: 0xEDF0C
KTQ Message: 0xEDF10
King Bob-Omb Message: 0xEDF14
Boo Message: 0xEDF18
Bob-Omb Buddy Message: 0xEDF1C
Long Bowser Laugh Message: 0xEDF20
Whomp Message: 0xEDF24
Wiggler Message: 0xEDF28
Yoshi Message: 0xEDF2C

Free free to contribute to this list if you'd like and I can update it!]]>

<![CDATA[During the summer,I also started a little side-project on the side in a quest to documentall the playsound locationsin the ROM for convenience sake, as I've noticed certain playsounds: last longer/shorter than others, are binded by one particular sound effect (cowbell being binded to coins, health meter, etc for example), have multiple sound effects within them (example: coin + it's a me Mario). Being able to change these playsound arguments can be useful in getting around theseimpediments that bring forth frustration in sound hacking.

Here is my WIP list of the playsound ROM addresses I've found so far:

Playsound Locations (In an arbitrary order):

Mario Screen "Hello!": 0x21F8C2
Mario Screen "Press Start to Play!": 0x21F8DE
Mario Screen Star (Pressing Start): 0x21F91A
Mario Screen "Game Over!": 0x21F992
Title Screen Coin + It's a Me Mario (credit to Kaze): 0x21FA3E
Bowser Laugh when you die: 0x5B5A
Coin (credit to Xeraclom14): 0x6216
Coin (Underwater): 0x6206
Enter Warp Pipe: 0x9056
Exit Warp Pipe (Like in THI): 0x1457A
Enter Warp Hole: 0x9062
Waterfall: 0xAB7FE
Volcano: 0xAB82A
Birds 1: 0xAB8FA
Birds 2: 0xAB90E
Birds 3: 0xAB922
Crickets: 0xAB97A
Sand: 0xAB9CE
1-up Sound: 0xAEC7E
Goomba Smashed: 0xB63AA
Goomba Alert: 0xBA522
Small Bully Grunt: 0xA61F6
Monkey Message: 0xEDF04
Big Penguin Message: 0xEDF08
Short Bowser Laugh Message: 0xEDF0C
KTQ Message: 0xEDF10
King Bob-Omb Message: 0xEDF14
Boo Message: 0xEDF18
Bob-Omb Buddy Message: 0xEDF1C
Long Bowser Laugh Message: 0xEDF20
Whomp Message: 0xEDF24
Wiggler Message: 0xEDF28
Yoshi Message: 0xEDF2C

Free free to contribute to this list if you'd like and I can update it!]]>

<![CDATA[[Advanced] How to manually trigger a warp]]>https://hack64.net/Thread-Advanced-How-to-manually-trigger-a-warpWed, 08 Aug 2018 01:38:33 +0000https://hack64.net/Thread-Advanced-How-to-manually-trigger-a-warp<![CDATA[I'm sharing a couple of addresses I found a while ago to let you activate a warp at any time.

First you need to know which version of SM64 you are using. The only difference between the different versions of SM64 is the addresses in RAM. For this post I'm going to keep things vague so you can follow with any version.

Version Starting RAM Address
Japan0x80339EE2
North America 0x8033B252
Europe 0x8030951A
Shindou 0x8031DAAA
IQue Player 0x80320A86

Here is the table layout for each of the values starting at the RAM address specified above:

Data Type Description
s16 A value that tells the game that the warp delay timer is active or not.
s16 Warp delay timer. Value decrements if active, and will warp Mario to the Warp ID when it reaches zero.
s16 Warp ID to warp to.
s32 Optional Parameters orFlags? Used to determine which side of the door Mario will stand once a door warp is completed.
0x00000005 = Mario opened the door by pulling it inward.
0x00000006 = Mario opened the door by pushing it outward.

The idea is that you first set the warp delay timer to some value above 0 (minimum of 1), set the Warp ID, then set the first value to any number besides zero. The warp delay timer decrements every frame. Once it reaches zero, the warpwill activate instantly.


FailedLevel Exit (Lose a life)

Warp ID 0xF1 is used when Mariodies. He will exit the level and lose a life in the process.

Note: The player will not Game-Over if Mario has 0 lives. The game will decrement Mario lives to -1. You will need to check Mario's lives yourself.


SuccessfulLevel Exit (Star grabbed)

Warp ID 0xF0 is used when Mario grabs a star or bowser key. He will go back to the castle and prompt the "Save and Continue" menu.

Note 1: Since you didn't actually collect a star/key, the star counter will not be increased. You will need to code that in yourself.

Note 2: You need to set a specific byte in RAM, otherwise the game will crash when trying to display the text of the star you should've gotten. It is normally set whenMario grabs a star/key. This byte should be set between 1 and 6, corresponding to the act # you want to display.

Below is a table with the corresponding to the address of the byte you need to change for each version:

Version Address for gotten star # (Byte)
Japan0x8032CE24
North America 0x8032DD84
Europe 0x802F9F54
Shindou 0x8030D4B4
IQue Player 0x8030FA14
]]>

<![CDATA[I'm sharing a couple of addresses I found a while ago to let you activate a warp at any time.

First you need to know which version of SM64 you are using. The only difference between the different versions of SM64 is the addresses in RAM. For this post I'm going to keep things vague so you can follow with any version.

Version Starting RAM Address
Japan0x80339EE2
North America 0x8033B252
Europe 0x8030951A
Shindou 0x8031DAAA
IQue Player 0x80320A86

Here is the table layout for each of the values starting at the RAM address specified above:

Data Type Description
s16 A value that tells the game that the warp delay timer is active or not.
s16 Warp delay timer. Value decrements if active, and will warp Mario to the Warp ID when it reaches zero.
s16 Warp ID to warp to.
s32 Optional Parameters orFlags? Used to determine which side of the door Mario will stand once a door warp is completed.
0x00000005 = Mario opened the door by pulling it inward.
0x00000006 = Mario opened the door by pushing it outward.

The idea is that you first set the warp delay timer to some value above 0 (minimum of 1), set the Warp ID, then set the first value to any number besides zero. The warp delay timer decrements every frame. Once it reaches zero, the warpwill activate instantly.


FailedLevel Exit (Lose a life)

Warp ID 0xF1 is used when Mariodies. He will exit the level and lose a life in the process.

Note: The player will not Game-Over if Mario has 0 lives. The game will decrement Mario lives to -1. You will need to check Mario's lives yourself.


SuccessfulLevel Exit (Star grabbed)

Warp ID 0xF0 is used when Mario grabs a star or bowser key. He will go back to the castle and prompt the "Save and Continue" menu.

Note 1: Since you didn't actually collect a star/key, the star counter will not be increased. You will need to code that in yourself.

Note 2: You need to set a specific byte in RAM, otherwise the game will crash when trying to display the text of the star you should've gotten. It is normally set whenMario grabs a star/key. This byte should be set between 1 and 6, corresponding to the act # you want to display.

Below is a table with the corresponding to the address of the byte you need to change for each version:

Version Address for gotten star # (Byte)
Japan0x8032CE24
North America 0x8032DD84
Europe 0x802F9F54
Shindou 0x8030D4B4
IQue Player 0x8030FA14
]]>

<![CDATA[More Letters Patch]]>https://hack64.net/Thread-More-Letters-PatchFri, 13 Jul 2018 17:24:35 +0000https://hack64.net/Thread-More-Letters-Patch<![CDATA[This patch imports the following missing HUD characters from the Japanese ROM:

[J] [Q] [V] [X] [Z] [!] [!!]
[?] [&] [%] [Circle] [Key]


armips source:https://bitbucket.org/shygoo/sm64-more-l...ers-r0.zip
(Use Simple armips GUI to patch:https://hack64.net/Thread-Simple-Armips-GUI-v1-3)

Compatible with SM64 (U) ROMs extended with VL-Tone's extender or equivalent.

Summary

  • Appends image data from more-letters.bin to segment 02
  • Updates segment-offset pointers in the character table
  • Updates segment 02 loader addresses
Requirements
  • 0x1800 bytes of free space at 0x0081D364 (or NUM_CHARS * 0x200)
Configuration
  • Reduce NUM_CHARS in more-letters.asm if SM64 crashes
By default the key character is excluded due to memory limitations but if anyone needs it I can add some better configuration options.]]>
<![CDATA[This patch imports the following missing HUD characters from the Japanese ROM:

[J] [Q] [V] [X] [Z] [!] [!!]
[?] [&] [%] [Circle] [Key]


armips source:https://bitbucket.org/shygoo/sm64-more-l...ers-r0.zip
(Use Simple armips GUI to patch:https://hack64.net/Thread-Simple-Armips-GUI-v1-3)

Compatible with SM64 (U) ROMs extended with VL-Tone's extender or equivalent.

Summary

  • Appends image data from more-letters.bin to segment 02
  • Updates segment-offset pointers in the character table
  • Updates segment 02 loader addresses
Requirements
  • 0x1800 bytes of free space at 0x0081D364 (or NUM_CHARS * 0x200)
Configuration
  • Reduce NUM_CHARS in more-letters.asm if SM64 crashes
By default the key character is excluded due to memory limitations but if anyone needs it I can add some better configuration options.]]>
<![CDATA[SM64 Blender Importer]]>https://hack64.net/Thread-SM64-Blender-ImporterSat, 07 Jul 2018 23:42:17 +0000https://hack64.net/Thread-SM64-Blender-Importer<![CDATA[SM64 Blender Importer
<![CDATA[Hack64 - Super Mario 64]]> (39)
<![CDATA[Hack64 - Super Mario 64]]> (40)<![CDATA[Hack64 - Super Mario 64]]> (41)

This is a Blender plugin I've been working on that allows you to import custom Mario models, without having to manually import each body part separately. It also lets you import/export custom display lists. It relies on Blender custom data attributes that determine how the mesh in Blender is imported.

Features (import means import into Blender)

  • Mario import/export
  • Modified bone lengths are saved, excluding the root bone
  • Face animation supported
  • Can import custom hatless head/other hand poses
  • Will update metal/vanish models
  • Geo layout import
  • Display List import/export
  • Custom color combination functionality
Restrictions
  • Textures are not imported, only exported
  • The Blender custom data attributes are necessary for the plugin to work; Make sure to follow the process outlined in the instruction files.
Download Link]]>
<![CDATA[SM64 Blender Importer
<![CDATA[Hack64 - Super Mario 64]]> (42)
<![CDATA[Hack64 - Super Mario 64]]> (43)<![CDATA[Hack64 - Super Mario 64]]> (44)

This is a Blender plugin I've been working on that allows you to import custom Mario models, without having to manually import each body part separately. It also lets you import/export custom display lists. It relies on Blender custom data attributes that determine how the mesh in Blender is imported.

Features (import means import into Blender)

  • Mario import/export
  • Modified bone lengths are saved, excluding the root bone
  • Face animation supported
  • Can import custom hatless head/other hand poses
  • Will update metal/vanish models
  • Geo layout import
  • Display List import/export
  • Custom color combination functionality
Restrictions
  • Textures are not imported, only exported
  • The Blender custom data attributes are necessary for the plugin to work; Make sure to follow the process outlined in the instruction files.
Download Link]]>
<![CDATA[Baked Ambient Occlusion and Shadows]]>https://hack64.net/Thread-Baked-Ambient-Occlusion-and-ShadowsWed, 04 Jul 2018 18:19:11 +0000https://hack64.net/Thread-Baked-Ambient-Occlusion-and-Shadows<![CDATA[I've been experimenting with ambient occlusion and shadows and created a couple demo levels. I made a comparison to show the different ways you can add these effects and how they look in the levels. From what I can see, ambient occlusion looks good with vertex colors while shadows do not. Overlaying your textures with a shadow map can look good but is hard to implement accurately.

You can see all the pictures in this imgur album:https://imgur.com/a/lSP90bM

You can see the AO & Shadow texture maps individually here: https://imgur.com/a/Uze5UaS]]>

<![CDATA[I've been experimenting with ambient occlusion and shadows and created a couple demo levels. I made a comparison to show the different ways you can add these effects and how they look in the levels. From what I can see, ambient occlusion looks good with vertex colors while shadows do not. Overlaying your textures with a shadow map can look good but is hard to implement accurately.

You can see all the pictures in this imgur album:https://imgur.com/a/lSP90bM

You can see the AO & Shadow texture maps individually here: https://imgur.com/a/Uze5UaS]]>

<![CDATA[ASM Tutorial! (WIP)]]>https://hack64.net/Thread-ASM-Tutorial-WIPFri, 01 Jun 2018 02:17:26 +0000https://hack64.net/Thread-ASM-Tutorial-WIP<![CDATA[

Hello everyone, today I'd like to share an ASM tutorial I'm working on! I hope that this tutorial will contain everything that a hacker needs to start using ASM in their ROM hacks. (It's incomplete at the moment but more will be added later.)








Part 6: Object Structs - coming soon!

If you have any questions, feel free to PM me or email me at arthurtilly413@gmail.com to tell me so I can answer.


If you're good with ASM and spot a mistake in one of the tutorials, contact me through one of these so I can fix it ASAP.

]]>
<![CDATA[

Hello everyone, today I'd like to share an ASM tutorial I'm working on! I hope that this tutorial will contain everything that a hacker needs to start using ASM in their ROM hacks. (It's incomplete at the moment but more will be added later.)








Part 6: Object Structs - coming soon!

If you have any questions, feel free to PM me or email me at arthurtilly413@gmail.com to tell me so I can answer.


If you're good with ASM and spot a mistake in one of the tutorials, contact me through one of these so I can fix it ASAP.

]]>
<![CDATA[SM64 Segment 02]]>https://hack64.net/Thread-SM64-Segment-02Mon, 30 Apr 2018 01:20:04 +0000https://hack64.net/Thread-SM64-Segment-02<![CDATA[Segment 02 in SM64contains the font textures (HUD, dialog, credits), transition textures, font tables, dialog text, level names, and act names. Documentation is also on the SM64 Segment 2wiki page and am included the notes here. I am also attaching my assembly file which is a complete deconstruction of this segment and can be used to regenerate the exact segment 2 binary using the armips assembler.

Code:

StartEndDescription
0x000000x049FFLarge font and HUD textures
0x04A000x058FFCredits font textures
0x059000x06FFFSmall dialog font textures
0x070000x076FFHUD camera textures
0x077000x077E7HUD lookup table
0x077E80x07BE7Small dialog font lookup table
0x07BE80x07C7BCredits font lookup table
0x07C7C0x07C93HUD camera lookup table
0x07C940x07D07Some unused dialog-encoded text
0x07D080x07D33Unused text lookup table
0x07D340x0FFC7Dialog text
0x0FFC80x10D13Dialog lookup table
0x10D140x10F67Level names text
0x10F680x10FD3Level names lookup table
0x10FD40x1192BAct names text
0x1192C0x11ABFAct names lookup table
0x11AC00x120B7F3D display lists and vertices
0x120B80x172B7Shadow, transition, other textures
0x172B80x172CFUnused. Looks like lighting parameters
0x172D00x178BFMatrices, F3D display lists, vertices
0x178C00x18A0DPaintings mesh vertices, triangles


Interesting Finds
In addition to the dialog, level names, and act names, there is an unused section encoded in a similar manner starting at offset 0x7C94. Decoding it reveals something like the listing below. The hex values don't line up to any characters in the (U) ROM dialog lookup table, but they may be remnants from the (J) ROM. I may try to decode these later to see if it reveals anything interesting about the stages available in the stage select.

Code:

db "STAGE SELECT\n"...

I dug into the (J) ROM and found the same messages at offset 0x87E4 and 0x883C.
<![CDATA[Hack64 - Super Mario 64]]> (45)

Code:

STAGE SELECT
つづける?
1 マウンテン
2 ファイアーバブル
3 スノースライダー
4 ウォーターランド
クッパ1ごう
もどる

PAUSE
つづける?
やめる?


Translations (thanks to Rena, jrra, and Fendoroid):

Code:

STAGE SELECT
Continue?
1 Mountain
2 Fire bubble
3 Snow slide
4 Water land
Bowser number 1
Back

PAUSE
Continue?
Quit?


Japanese dialog font table:
<![CDATA[Hack64 - Super Mario 64]]> (46)

There is a peculiar up arrow texture stored at offset 0x17698, right in the middle of some F3D display lists. I don't recall seeing it in the game. It is the first arrow listed in the picture below. The other font textures that look like arrows are listed for reference as well.
<![CDATA[Hack64 - Super Mario 64]]> (47)

The ambient and diffuse lighting parameters for the paintings are stored at offsets 0x177B8 and 0x177C0 respectively. You can use this to change how the paintings are rendered while animating. Here, I made the diffuse color red instead of white.
<![CDATA[Hack64 - Super Mario 64]]> (48)

The vertex and triangle data used to construct the animated painting triangle mesh is stored at offset 0x178C0 (0x81AA16 extended ROM) and takes the following format. The Z values of the vertices don't matter as they are controlled by code, but the X and Y can be adjusted for some interesting results. I tried changing the order of the last triangle table, but it just locked up the game when I touched a painting, so it means something.

Code:

178C0-178C1: u16 vertex count (0x009D=157)
178C2-17C6F: i16 x, y, z vertices (157*6 bytes)
17C70-17C71: u16 triangle count (0x0108=264)
17C72-182A1: u16 3x triangle indexes (264*6 bytes)
182A2-18A0D: triangle indexes

<![CDATA[Hack64 - Super Mario 64]]> (49)

As a test, I compressed the top and bottom triangles and expanded the middle ones as shown. Looks pretty bad in game:
<![CDATA[Hack64 - Super Mario 64]]> (50)<![CDATA[Hack64 - Super Mario 64]]> (51)


<![CDATA[Hack64 - Super Mario 64]]> (52)sm64.segment02.zip (Size: 212.41 KB / Downloads: 1029)]]>
<![CDATA[Segment 02 in SM64contains the font textures (HUD, dialog, credits), transition textures, font tables, dialog text, level names, and act names. Documentation is also on the SM64 Segment 2wiki page and am included the notes here. I am also attaching my assembly file which is a complete deconstruction of this segment and can be used to regenerate the exact segment 2 binary using the armips assembler.

Code:

StartEndDescription
0x000000x049FFLarge font and HUD textures
0x04A000x058FFCredits font textures
0x059000x06FFFSmall dialog font textures
0x070000x076FFHUD camera textures
0x077000x077E7HUD lookup table
0x077E80x07BE7Small dialog font lookup table
0x07BE80x07C7BCredits font lookup table
0x07C7C0x07C93HUD camera lookup table
0x07C940x07D07Some unused dialog-encoded text
0x07D080x07D33Unused text lookup table
0x07D340x0FFC7Dialog text
0x0FFC80x10D13Dialog lookup table
0x10D140x10F67Level names text
0x10F680x10FD3Level names lookup table
0x10FD40x1192BAct names text
0x1192C0x11ABFAct names lookup table
0x11AC00x120B7F3D display lists and vertices
0x120B80x172B7Shadow, transition, other textures
0x172B80x172CFUnused. Looks like lighting parameters
0x172D00x178BFMatrices, F3D display lists, vertices
0x178C00x18A0DPaintings mesh vertices, triangles


Interesting Finds
In addition to the dialog, level names, and act names, there is an unused section encoded in a similar manner starting at offset 0x7C94. Decoding it reveals something like the listing below. The hex values don't line up to any characters in the (U) ROM dialog lookup table, but they may be remnants from the (J) ROM. I may try to decode these later to see if it reveals anything interesting about the stages available in the stage select.

Code:

db "STAGE SELECT\n"...

I dug into the (J) ROM and found the same messages at offset 0x87E4 and 0x883C.
<![CDATA[Hack64 - Super Mario 64]]> (53)

Code:

STAGE SELECT
つづける?
1 マウンテン
2 ファイアーバブル
3 スノースライダー
4 ウォーターランド
クッパ1ごう
もどる

PAUSE
つづける?
やめる?


Translations (thanks to Rena, jrra, and Fendoroid):

Code:

STAGE SELECT
Continue?
1 Mountain
2 Fire bubble
3 Snow slide
4 Water land
Bowser number 1
Back

PAUSE
Continue?
Quit?


Japanese dialog font table:
<![CDATA[Hack64 - Super Mario 64]]> (54)

There is a peculiar up arrow texture stored at offset 0x17698, right in the middle of some F3D display lists. I don't recall seeing it in the game. It is the first arrow listed in the picture below. The other font textures that look like arrows are listed for reference as well.
<![CDATA[Hack64 - Super Mario 64]]> (55)

The ambient and diffuse lighting parameters for the paintings are stored at offsets 0x177B8 and 0x177C0 respectively. You can use this to change how the paintings are rendered while animating. Here, I made the diffuse color red instead of white.
<![CDATA[Hack64 - Super Mario 64]]> (56)

The vertex and triangle data used to construct the animated painting triangle mesh is stored at offset 0x178C0 (0x81AA16 extended ROM) and takes the following format. The Z values of the vertices don't matter as they are controlled by code, but the X and Y can be adjusted for some interesting results. I tried changing the order of the last triangle table, but it just locked up the game when I touched a painting, so it means something.

Code:

178C0-178C1: u16 vertex count (0x009D=157)
178C2-17C6F: i16 x, y, z vertices (157*6 bytes)
17C70-17C71: u16 triangle count (0x0108=264)
17C72-182A1: u16 3x triangle indexes (264*6 bytes)
182A2-18A0D: triangle indexes

<![CDATA[Hack64 - Super Mario 64]]> (57)

As a test, I compressed the top and bottom triangles and expanded the middle ones as shown. Looks pretty bad in game:
<![CDATA[Hack64 - Super Mario 64]]> (58)<![CDATA[Hack64 - Super Mario 64]]> (59)


<![CDATA[Hack64 - Super Mario 64]]> (60)sm64.segment02.zip (Size: 212.41 KB / Downloads: 1029)]]>
<![CDATA[SM64 ROM Manager (Info & Download)]]>https://hack64.net/Thread-SM64-ROM-Manager-Info-DownloadFri, 13 Apr 2018 17:35:10 +0000https://hack64.net/Thread-SM64-ROM-Manager-Info-Download<![CDATA[

SM64 ROM Manager

Developed by Pilzinsel64


Download:


The SM64 ROM Manager is a brand new all-in-one tool for SM64 Hacking!

You can create wonderful SM64 Hacks with it. Using the onboard Level Manager, you can create and modify custom levels, edit text using the Text Manager, and many other tools which you can explore yourself!

I've spent a lot my of time in developing this program, which is very limited.


If you want to report a bug or make a feature request, you can either have a look in SM64 ROM Manager at "Help" menu, or you can check my website. There are two links to form that you can fill.

Bug fixes and small improvements I will publish ASAP as small updates (third number of version).

New features comes with big feature updates (second number of version).



Here is a list of things that are already finished:

  • Level Manager
    • Create and remove Levels easily.
    • Add and remove areas in your levels easily (with up to 8 areas per level).
    • Change the level ID easily (if the level is replacing level 1, you can easily change that to e.g. Level 2).
    • Set up many level dedicated settings every time.
    • Set up many area dedicated settings every time.
    • Select objects banks for your level (Optional).
    • Import and Replace Area Modes
    • Export Level Model & Collision
    • Export Object Models
    • One-0xE-Bank-Per-Area
      • This allows you to move the model size limit from per-level to per-area.
      • That means that now you have around 1.5 times as much space for a single area as you used to have for an entire level in the past.
      • Down in this post, I explained the system of it, so the developer can add support for Levels with this system.
    • Very fast Fast3D-Converter
      Supports over 40 different 3D File formats

    • Very dynamically auto-generated levelscripts and Bank 0xE
    • Water and fog boxes
    • 2D Camera per Area: Select Camera Preset 0xE and you can switch between 3D and 2D Camera.
    • Scrolling Textures
    • Choose Level BG: Custom, original Image or no background
    • Choose Area BG: Use Level BG or use a clear color
    • ...
    • Level Editor (included in the Level Manager)
      • Edit your custom levels using the area editor.
      • Open it from the Level Manager by double-clicking on the level or the area you want to open.
      • Add and remove objects to your current area (more than 300 objects per area, can be extendable)
      • Add and remove warps to your current area (more than enough for your needs)
      • Support for More Object Patch by Kaze Emanuar.
      • History-Feauture (Undo/Redo)
      • ...
      • Music Manager
        • Enable or disable "Extended Music" hack.
        • Rename sequences.
        • Change NInst set of a sequence.
        • Import Sequences (.m64)
        • Export Sequences (.m64, .mid)
        • Add unlimited number of new sequences (the game's maximum is 127)
        • Model Converter
          • Import over 40 different model formats
          • Select full colors instead of grayscale fror Shading
          • Scale your model using decimal values
          • Text Manager
            • Edit all texts and parameters in dialogs table
            • Edit all level names
            • Edit all act names
            • Edit Peach's dialogue and credits.
            • Custom Model Importer
            • Patches & Tweaks
            • Path Editor
            • Item Box Content Editor
            • Star Position Editor
            • HUD Options
            • RGB Editor
            • Coin properties
            • Tweaks
            • Global/Local Custom Model Bank
            • Global Behavior Bank
            • Custom Objects Manager
            • Custom ASM-Code Bank (for custom Behaviors)
            • ...
            • FAQ and Information:

              "Can I use my SM64 Editor made ROM with this tool?"
              It isn't supported and never will be because there are too many bugs to solve in the ROM. Like the N64 compatiblity e.g.

              But there is an experimental way to import your levels to a new ROM.
              Just open a new ROM and goto "Level Manager". Click the arrow on the left of "New Level" and click "Import Level ..".
              Then select your ROM (used by SM64 ROM Manager or SM64 Editor) and import any Custom Level that the ROM Manager is able to read.

              "What happens if I edit the levelscript, geolayout or displaylist?"
              Nothing. The SM64 ROM Manager reads the edited script and keeps the changes.

              Note: After you changed something on the ROM outside the ROM Manager, you need to reload your ROM .

              "Where are the Objects/Warps located"?

              If the One-0xE-Bank-System is enabled, then the objects and warps are located in the "special" 0xE-Bank. This "special" 0xE-Bank will be loaded at parsing the levelscript and will be cleared at loading the first area. I can do that while the objects and warps will not be needed anymore after loading them. So, we have more space in the levelscript and for the area model, yeah!
              If the One-0xE-Bank-System is disabled, then they are located in Bank 0x19 directly in the levelscript.

              The One-0xE-Bank System explained:
              In the Levelscript is an area table. The levelscript is mainly located in Segmented 0xE. So, the data for the current area is located at 0x19005F00 + AreaID * 0x10. The first four bytes shows the ROM address where the bank 0xE for this area starts. The second four bytes shows the ROM Address where the bank 0xE of this area ends. So, it is like a 0x17 levelscript command, but without the first four bytes of such command. But how do I know that the System is enabled? Easy. Just check the four bytes at 0x19005FFC. If they equal to 0x4BC9189A then the One-0xE-Bank-System is enabled. Otherwise, the 0xE Bank is per Level (as known from the SM64 Editor).

              Please note: The One-0xE-Bank-System is not supported in SM64 Editor Levels (in converted ROMs).

              "My Textures are offset a bit. Is it a bug?"
              No, it isn't. The SM64 ROM Manager does everything right. The problem is your video plugin in your emulator. Many popular plugins does have this bug, such as GLideN64, Glide64, Jabos Direct3D, and some others. The texture is offset a half pixel then. But on a real N64 the textures are on the right place.
              Read here an issue on GLideN64 plugin repository.

              Any more questions? Any Errors/Issues? Any ideas or suggestions?
              Let me know!

              • Ask questions
              • Explain errors in detail

              Bug Reports & Feature Requests:


              For Bug Reports please fill out this forular.
              For Feature Requests please fill out this formular.

              Credits:

              • Big thanks to Kaze Emanuar for coding some useful ASM codes, answering my questions and motivating me.
              • Also a very big thanks to all who supported me and believed in my new tool, which motivated me a lot.

              Links:


              On my website, you will find the changelog and download.

              Other tools that I have made for SM64 Hacking can be downloaded on my site.

              Subscribe to my channel to get information about updates or new previews.

              ]]>
              <![CDATA[

              SM64 ROM Manager

              Developed by Pilzinsel64


              Download:


              The SM64 ROM Manager is a brand new all-in-one tool for SM64 Hacking!

              You can create wonderful SM64 Hacks with it. Using the onboard Level Manager, you can create and modify custom levels, edit text using the Text Manager, and many other tools which you can explore yourself!

              I've spent a lot my of time in developing this program, which is very limited.


              If you want to report a bug or make a feature request, you can either have a look in SM64 ROM Manager at "Help" menu, or you can check my website. There are two links to form that you can fill.

              Bug fixes and small improvements I will publish ASAP as small updates (third number of version).

              New features comes with big feature updates (second number of version).



              Here is a list of things that are already finished:

              • Level Manager
                • Create and remove Levels easily.
                • Add and remove areas in your levels easily (with up to 8 areas per level).
                • Change the level ID easily (if the level is replacing level 1, you can easily change that to e.g. Level 2).
                • Set up many level dedicated settings every time.
                • Set up many area dedicated settings every time.
                • Select objects banks for your level (Optional).
                • Import and Replace Area Modes
                • Export Level Model & Collision
                • Export Object Models
                • One-0xE-Bank-Per-Area
                  • This allows you to move the model size limit from per-level to per-area.
                  • That means that now you have around 1.5 times as much space for a single area as you used to have for an entire level in the past.
                  • Down in this post, I explained the system of it, so the developer can add support for Levels with this system.
                • Very fast Fast3D-Converter
                  Supports over 40 different 3D File formats

                • Very dynamically auto-generated levelscripts and Bank 0xE
                • Water and fog boxes
                • 2D Camera per Area: Select Camera Preset 0xE and you can switch between 3D and 2D Camera.
                • Scrolling Textures
                • Choose Level BG: Custom, original Image or no background
                • Choose Area BG: Use Level BG or use a clear color
                • ...
                • Level Editor (included in the Level Manager)
                  • Edit your custom levels using the area editor.
                  • Open it from the Level Manager by double-clicking on the level or the area you want to open.
                  • Add and remove objects to your current area (more than 300 objects per area, can be extendable)
                  • Add and remove warps to your current area (more than enough for your needs)
                  • Support for More Object Patch by Kaze Emanuar.
                  • History-Feauture (Undo/Redo)
                  • ...
                  • Music Manager
                    • Enable or disable "Extended Music" hack.
                    • Rename sequences.
                    • Change NInst set of a sequence.
                    • Import Sequences (.m64)
                    • Export Sequences (.m64, .mid)
                    • Add unlimited number of new sequences (the game's maximum is 127)
                    • Model Converter
                      • Import over 40 different model formats
                      • Select full colors instead of grayscale fror Shading
                      • Scale your model using decimal values
                      • Text Manager
                        • Edit all texts and parameters in dialogs table
                        • Edit all level names
                        • Edit all act names
                        • Edit Peach's dialogue and credits.
                        • Custom Model Importer
                        • Patches & Tweaks
                        • Path Editor
                        • Item Box Content Editor
                        • Star Position Editor
                        • HUD Options
                        • RGB Editor
                        • Coin properties
                        • Tweaks
                        • Global/Local Custom Model Bank
                        • Global Behavior Bank
                        • Custom Objects Manager
                        • Custom ASM-Code Bank (for custom Behaviors)
                        • ...
                        • FAQ and Information:

                          "Can I use my SM64 Editor made ROM with this tool?"
                          It isn't supported and never will be because there are too many bugs to solve in the ROM. Like the N64 compatiblity e.g.

                          But there is an experimental way to import your levels to a new ROM.
                          Just open a new ROM and goto "Level Manager". Click the arrow on the left of "New Level" and click "Import Level ..".
                          Then select your ROM (used by SM64 ROM Manager or SM64 Editor) and import any Custom Level that the ROM Manager is able to read.

                          "What happens if I edit the levelscript, geolayout or displaylist?"
                          Nothing. The SM64 ROM Manager reads the edited script and keeps the changes.

                          Note: After you changed something on the ROM outside the ROM Manager, you need to reload your ROM .

                          "Where are the Objects/Warps located"?

                          If the One-0xE-Bank-System is enabled, then the objects and warps are located in the "special" 0xE-Bank. This "special" 0xE-Bank will be loaded at parsing the levelscript and will be cleared at loading the first area. I can do that while the objects and warps will not be needed anymore after loading them. So, we have more space in the levelscript and for the area model, yeah!
                          If the One-0xE-Bank-System is disabled, then they are located in Bank 0x19 directly in the levelscript.

                          The One-0xE-Bank System explained:
                          In the Levelscript is an area table. The levelscript is mainly located in Segmented 0xE. So, the data for the current area is located at 0x19005F00 + AreaID * 0x10. The first four bytes shows the ROM address where the bank 0xE for this area starts. The second four bytes shows the ROM Address where the bank 0xE of this area ends. So, it is like a 0x17 levelscript command, but without the first four bytes of such command. But how do I know that the System is enabled? Easy. Just check the four bytes at 0x19005FFC. If they equal to 0x4BC9189A then the One-0xE-Bank-System is enabled. Otherwise, the 0xE Bank is per Level (as known from the SM64 Editor).

                          Please note: The One-0xE-Bank-System is not supported in SM64 Editor Levels (in converted ROMs).

                          "My Textures are offset a bit. Is it a bug?"
                          No, it isn't. The SM64 ROM Manager does everything right. The problem is your video plugin in your emulator. Many popular plugins does have this bug, such as GLideN64, Glide64, Jabos Direct3D, and some others. The texture is offset a half pixel then. But on a real N64 the textures are on the right place.
                          Read here an issue on GLideN64 plugin repository.

                          Any more questions? Any Errors/Issues? Any ideas or suggestions?
                          Let me know!

                          • Ask questions
                          • Explain errors in detail

                          Bug Reports & Feature Requests:


                          For Bug Reports please fill out this forular.
                          For Feature Requests please fill out this formular.

                          Credits:

                          • Big thanks to Kaze Emanuar for coding some useful ASM codes, answering my questions and motivating me.
                          • Also a very big thanks to all who supported me and believed in my new tool, which motivated me a lot.

                          Links:


                          On my website, you will find the changelog and download.

                          Other tools that I have made for SM64 Hacking can be downloaded on my site.

                          Subscribe to my channel to get information about updates or new previews.

                          ]]>
                          <![CDATA[Hack64 - Super Mario 64]]> (2024)
                          Top Articles
                          Latest Posts
                          Recommended Articles
                          Article information

                          Author: Fr. Dewey Fisher

                          Last Updated:

                          Views: 5986

                          Rating: 4.1 / 5 (42 voted)

                          Reviews: 81% of readers found this page helpful

                          Author information

                          Name: Fr. Dewey Fisher

                          Birthday: 1993-03-26

                          Address: 917 Hyun Views, Rogahnmouth, KY 91013-8827

                          Phone: +5938540192553

                          Job: Administration Developer

                          Hobby: Embroidery, Horseback riding, Juggling, Urban exploration, Skiing, Cycling, Handball

                          Introduction: My name is Fr. Dewey Fisher, I am a powerful, open, faithful, combative, spotless, faithful, fair person who loves writing and wants to share my knowledge and understanding with you.