<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Hack64 - Super Mario 64]]></title>
		<link>https://hack64.net/</link>
		<description><![CDATA[Hack64 - https://hack64.net]]></description>
		<pubDate>Wed, 29 Apr 2026 23:18:36 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[More Objects Patch 4 + Future Patches?]]></title>
			<link>https://hack64.net/Thread-More-Objects-Patch-4-Future-Patches</link>
			<pubDate>Tue, 23 Mar 2021 03:49:35 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-More-Objects-Patch-4-Future-Patches</guid>
			<description><![CDATA[What's up? I decided to make a new MOP because there hasn't been a new one in years.<br />
<br />
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)<br />
It is also 90% backwards compatible with MOP 1-3 (ROM Manager Versions), minus Purple ! Box and Beta Shells<br />
<br />
It includes 6 new objects for SM64:<br />
<span style="color: #ff0000;" class="mycode_color">Name - Is Global? - Model - Behavior</span><br />
Boo Key - Non-Global - 0x55 - 0x13001744<br />
Boo Door - Global - Works with any door model - 0x13000F14<br />
Red Koopa - Non-Global - Refer to included docs or set to 0 - Koopa Behavior<br />
Red Koopa Shell - Global - Refer to included docs or set to 0 - Koopa Shell Behavior<br />
Purple ! Box - Not Global? - Refer to included docs or set to 0 - ! Box Behavior (Bparam 2 = 4)<br />
Creeper (Aw Man) - Global - Refer to included docs or set to 0 - 0x130022D8<br />
<br />
Release Trailer/Download: <br />
<br />
<!-- start: video_youtube_embed --><br />
<iframe width="560" height="315" src="//www.youtube.com/embed/-LaiET5I-F0" frameborder="0" allowfullscreen></iframe><br />
<!-- end: video_youtube_embed --><br />
<br />
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.]]></description>
			<content:encoded><![CDATA[What's up? I decided to make a new MOP because there hasn't been a new one in years.<br />
<br />
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)<br />
It is also 90% backwards compatible with MOP 1-3 (ROM Manager Versions), minus Purple ! Box and Beta Shells<br />
<br />
It includes 6 new objects for SM64:<br />
<span style="color: #ff0000;" class="mycode_color">Name - Is Global? - Model - Behavior</span><br />
Boo Key - Non-Global - 0x55 - 0x13001744<br />
Boo Door - Global - Works with any door model - 0x13000F14<br />
Red Koopa - Non-Global - Refer to included docs or set to 0 - Koopa Behavior<br />
Red Koopa Shell - Global - Refer to included docs or set to 0 - Koopa Shell Behavior<br />
Purple ! Box - Not Global? - Refer to included docs or set to 0 - ! Box Behavior (Bparam 2 = 4)<br />
Creeper (Aw Man) - Global - Refer to included docs or set to 0 - 0x130022D8<br />
<br />
Release Trailer/Download: <br />
<br />
<!-- start: video_youtube_embed --><br />
<iframe width="560" height="315" src="//www.youtube.com/embed/-LaiET5I-F0" frameborder="0" allowfullscreen></iframe><br />
<!-- end: video_youtube_embed --><br />
<br />
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.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[models and animations.]]></title>
			<link>https://hack64.net/Thread-models-and-animations</link>
			<pubDate>Sat, 20 Mar 2021 16:41:27 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-models-and-animations</guid>
			<description><![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.<br />
<br />
<br />
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.]]></description>
			<content:encoded><![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.<br />
<br />
<br />
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.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SM64GSW Updated For Linux/Windows - Write GameShark Codes To USA ROM/Modify CIC Check]]></title>
			<link>https://hack64.net/Thread-SM64GSW-Updated-For-Linux-Windows-Write-GameShark-Codes-To-USA-ROM-Modify-CIC-Check</link>
			<pubDate>Wed, 13 Jan 2021 07:34:49 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-SM64GSW-Updated-For-Linux-Windows-Write-GameShark-Codes-To-USA-ROM-Modify-CIC-Check</guid>
			<description><![CDATA[SuperMario64GameSharkWriter is an open source 3-BSD command 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 in emulators. Unlike the old CHKSUM64 program the ROM will work in Mupen64Plus and many other emulators.<br />
<br />
You can write a list of GameShark codes in a txt file, and SM64GSW can write each code line by line into a ROM file. Alternatively, you can type each code into SM64GSW.<br />
<br />
As of version 1.1, Linux x86, Linux x86_64, and Windows 95-Windows 10 builds are available on the official <a href="https://alex-free.github.io/sm64gsw/" target="_blank" rel="noopener" class="mycode_url">web page</a> (which also contains the complete documentation.<br />
<br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_b_win95.png" alt="[Image: sm64gsw_b_win95.png]" class="mycode_img" /><br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_b_linux.png" alt="[Image: sm64gsw_b_linux.png]" class="mycode_img" /><img src="https://alex-free.github.io/sm64gsw/sm64gsw_write_codes_from_file_win95.png" alt="[Image: sm64gsw_write_codes_from_file_win95.png]" class="mycode_img" /><br />
<br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_wrote_codes_from_file_win95.png" alt="[Image: sm64gsw_wrote_codes_from_file_win95.png]" class="mycode_img" /><br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_wrote_codes_from_file_linux.png" alt="[Image: sm64gsw_wrote_codes_from_file_linux.png]" class="mycode_img" /><br />
<br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_triple_damage_keyboard_entry_win95.png" alt="[Image: sm64gsw_triple_damage_keyboard_entry_win95.png]" class="mycode_img" /><br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_triple_damage_keyboard_entry_linux.png" alt="[Image: sm64gsw_triple_damage_keyboard_entry_linux.png]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[SuperMario64GameSharkWriter is an open source 3-BSD command 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 in emulators. Unlike the old CHKSUM64 program the ROM will work in Mupen64Plus and many other emulators.<br />
<br />
You can write a list of GameShark codes in a txt file, and SM64GSW can write each code line by line into a ROM file. Alternatively, you can type each code into SM64GSW.<br />
<br />
As of version 1.1, Linux x86, Linux x86_64, and Windows 95-Windows 10 builds are available on the official <a href="https://alex-free.github.io/sm64gsw/" target="_blank" rel="noopener" class="mycode_url">web page</a> (which also contains the complete documentation.<br />
<br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_b_win95.png" alt="[Image: sm64gsw_b_win95.png]" class="mycode_img" /><br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_b_linux.png" alt="[Image: sm64gsw_b_linux.png]" class="mycode_img" /><img src="https://alex-free.github.io/sm64gsw/sm64gsw_write_codes_from_file_win95.png" alt="[Image: sm64gsw_write_codes_from_file_win95.png]" class="mycode_img" /><br />
<br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_wrote_codes_from_file_win95.png" alt="[Image: sm64gsw_wrote_codes_from_file_win95.png]" class="mycode_img" /><br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_wrote_codes_from_file_linux.png" alt="[Image: sm64gsw_wrote_codes_from_file_linux.png]" class="mycode_img" /><br />
<br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_triple_damage_keyboard_entry_win95.png" alt="[Image: sm64gsw_triple_damage_keyboard_entry_win95.png]" class="mycode_img" /><br />
<img src="https://alex-free.github.io/sm64gsw/sm64gsw_triple_damage_keyboard_entry_linux.png" alt="[Image: sm64gsw_triple_damage_keyboard_entry_linux.png]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Lower the 100 coins star]]></title>
			<link>https://hack64.net/Thread-Lower-the-100-coins-star</link>
			<pubDate>Sat, 28 Nov 2020 11:14:49 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-Lower-the-100-coins-star</guid>
			<description><![CDATA[Hi, do someone know how to change the 100 coins star to 75 or 50 coins?]]></description>
			<content:encoded><![CDATA[Hi, do someone know how to change the 100 coins star to 75 or 50 coins?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SM64GSW Write GameShark Codes To USA ROM]]></title>
			<link>https://hack64.net/Thread-SM64GSW-Write-GameShark-Codes-To-USA-ROM</link>
			<pubDate>Mon, 14 Sep 2020 04:08:40 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-SM64GSW-Write-GameShark-Codes-To-USA-ROM</guid>
			<description><![CDATA[<b>Edit: I will no longer be using this account, my new account is alex_free<br />
<br />
and this project has moved to <a href=https://github.com/alex-free/sm64gsw>GitHub</a>.</b><br />
<br />
<span style="font-size: x-small;" class="mycode_size"><span style="font-family: SFMono-Regular, Consolas,;" class="mycode_font">SM64GSW by Alex Free<br />
<br />
==Info==<br />
An open source (3-BSD) console program that can write GameShark/Xploder64 codes directly into a<br />
Super Mario 64 USA ROM.<br />
<br />
SM64GSW performs Messiaen64's manual hex editing method written at <a href="https://sites.google.com/site/messiaen64/patching-gameshark-codes" target="_blank" rel="noopener" class="mycode_url">https://sites.google.com/site/messiaen64...hark-codes</a> in software automatically so you don't <br />
have to hex edit your SM64 ROM manually.<br />
<br />
==Requirements==<br />
- The Windows version is a 32-bit binary compatible with Windows 95 and above.<br />
- 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.<br />
- A Super Mario 64 USA ROM in .z64 or .N64 (N64 SDK) format. The .n64 and .v64 formats are not supported.<br />
<br />
==Usage==<br />
<br />
1) Start SM64GSW in one of 2 different ways.<br />
 <br />
Command line method:<br />
- Open cmd.exe or command.com.<br />
- Execute the 'sm64gsw' command with your ROM as the argument. For example, the complete command could be <br />
"sm64gsw C:\sm64.z64".<br />
<br />
Windows Explorer method:<br />
- Drag your ROM file on top of the sm64gsw.exe file.<br />
<br />
2) Select your code input preference at the input selection menu.<br />
<br />
SM64GSW can write codes contained in a txt file of your choosing, or you can input them with the keyboard.<br />
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.<br />
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 <br />
can contain a code or multiple codes, one code per line. The file 'gs.txt' in this release is an example of this.<br />
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.<br />
<br />
If SM64GSW tells you 'Attention: At least one code invalidates the internal ROM checksum, run checksum64 <br />
on your ROM before playing' you MUST run the 'chksum64' program on the ROM file after writing your codes. You<br />
 can do this by dropping your newly modified ROM on top of the chksum64 executable (Chksum64 is written by Andreas Sterbenz).<br />
<br />
3) Test the ROM.<br />
<br />
==What Codes Work?==<br />
<br />
There is an incomplete list of some codes that work in the file named 'known_working_codes.txt' in this release.<br />
<br />
Supported RAM range is 80246000-80333000. The 3rd-8th digits of a code must be a hexadecimal value in the <br />
range of 246000-333000 to work.<br />
<br />
Not all N64 GameShark/Xploder64 code types are supported. This is due to certain code types not translating <br />
into just hex writes for various reasons, such as codes that:<br />
- Require physical hardware (like a GS button).<br />
- Perform live checks and or dynamic modification.<br />
- Simply not being appliable (Expansion pack releated, non-Super Mario 64 security chip related).<br />
<br />
Code types are defined by the first 2 hexadecimal digits of a code. For example, in the level select code <br />
'A032D58C 0001' 'A0' is the code type. For multi-line codes, if any lines contain an incompatible code type <br />
the entire code can not be written into ROM. See the table below for specifics.<br />
<br />
Supported codes include 80, A0, F0, 81, A1, and 2A. 80, A0, and F0 must be in the X0XXXXXX-00XX format.<br />
<br />
==License==<br />
- This is open source software, released under the 3-Clause BSD license (read license.txt). It **should** compile<br />
and work on other little-endian Operating Systems.<br />
 <br />
==Changelog==<br />
==Version 1.0.1==<br />
- Fixes a bug which prevented codes from being entered by the keyboard, after an invalid code was entered.<br />
</span></span>[color=var(--color-text-secondary)]<span style="font-size: x-small;" class="mycode_size">[url=https://github.com/][/url]<br />
</span>[/color]]]></description>
			<content:encoded><![CDATA[<b>Edit: I will no longer be using this account, my new account is alex_free<br />
<br />
and this project has moved to <a href=https://github.com/alex-free/sm64gsw>GitHub</a>.</b><br />
<br />
<span style="font-size: x-small;" class="mycode_size"><span style="font-family: SFMono-Regular, Consolas,;" class="mycode_font">SM64GSW by Alex Free<br />
<br />
==Info==<br />
An open source (3-BSD) console program that can write GameShark/Xploder64 codes directly into a<br />
Super Mario 64 USA ROM.<br />
<br />
SM64GSW performs Messiaen64's manual hex editing method written at <a href="https://sites.google.com/site/messiaen64/patching-gameshark-codes" target="_blank" rel="noopener" class="mycode_url">https://sites.google.com/site/messiaen64...hark-codes</a> in software automatically so you don't <br />
have to hex edit your SM64 ROM manually.<br />
<br />
==Requirements==<br />
- The Windows version is a 32-bit binary compatible with Windows 95 and above.<br />
- 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.<br />
- A Super Mario 64 USA ROM in .z64 or .N64 (N64 SDK) format. The .n64 and .v64 formats are not supported.<br />
<br />
==Usage==<br />
<br />
1) Start SM64GSW in one of 2 different ways.<br />
 <br />
Command line method:<br />
- Open cmd.exe or command.com.<br />
- Execute the 'sm64gsw' command with your ROM as the argument. For example, the complete command could be <br />
"sm64gsw C:\sm64.z64".<br />
<br />
Windows Explorer method:<br />
- Drag your ROM file on top of the sm64gsw.exe file.<br />
<br />
2) Select your code input preference at the input selection menu.<br />
<br />
SM64GSW can write codes contained in a txt file of your choosing, or you can input them with the keyboard.<br />
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.<br />
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 <br />
can contain a code or multiple codes, one code per line. The file 'gs.txt' in this release is an example of this.<br />
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.<br />
<br />
If SM64GSW tells you 'Attention: At least one code invalidates the internal ROM checksum, run checksum64 <br />
on your ROM before playing' you MUST run the 'chksum64' program on the ROM file after writing your codes. You<br />
 can do this by dropping your newly modified ROM on top of the chksum64 executable (Chksum64 is written by Andreas Sterbenz).<br />
<br />
3) Test the ROM.<br />
<br />
==What Codes Work?==<br />
<br />
There is an incomplete list of some codes that work in the file named 'known_working_codes.txt' in this release.<br />
<br />
Supported RAM range is 80246000-80333000. The 3rd-8th digits of a code must be a hexadecimal value in the <br />
range of 246000-333000 to work.<br />
<br />
Not all N64 GameShark/Xploder64 code types are supported. This is due to certain code types not translating <br />
into just hex writes for various reasons, such as codes that:<br />
- Require physical hardware (like a GS button).<br />
- Perform live checks and or dynamic modification.<br />
- Simply not being appliable (Expansion pack releated, non-Super Mario 64 security chip related).<br />
<br />
Code types are defined by the first 2 hexadecimal digits of a code. For example, in the level select code <br />
'A032D58C 0001' 'A0' is the code type. For multi-line codes, if any lines contain an incompatible code type <br />
the entire code can not be written into ROM. See the table below for specifics.<br />
<br />
Supported codes include 80, A0, F0, 81, A1, and 2A. 80, A0, and F0 must be in the X0XXXXXX-00XX format.<br />
<br />
==License==<br />
- This is open source software, released under the 3-Clause BSD license (read license.txt). It **should** compile<br />
and work on other little-endian Operating Systems.<br />
 <br />
==Changelog==<br />
==Version 1.0.1==<br />
- Fixes a bug which prevented codes from being entered by the keyboard, after an invalid code was entered.<br />
</span></span>[color=var(--color-text-secondary)]<span style="font-size: x-small;" class="mycode_size">[url=https://github.com/][/url]<br />
</span>[/color]]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Reading Geometry from ROM]]></title>
			<link>https://hack64.net/Thread-Reading-Geometry-from-ROM</link>
			<pubDate>Mon, 13 Jul 2020 02:37:34 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-Reading-Geometry-from-ROM</guid>
			<description><![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?  <br />
<br />
Sorry if this is not the place for this question, but I haven't been able to find anyone who knows.<br />
<br />
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)?]]></description>
			<content:encoded><![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?  <br />
<br />
Sorry if this is not the place for this question, but I haven't been able to find anyone who knows.<br />
<br />
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)?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SM64 Fast3D Anti-Aliasing Reducer]]></title>
			<link>https://hack64.net/Thread-SM64-Fast3D-Anti-Aliasing-Reducer</link>
			<pubDate>Fri, 13 Sep 2019 03:12:02 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-SM64-Fast3D-Anti-Aliasing-Reducer</guid>
			<description><![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.<br />
<br />
<img src="https://i.imgur.com/5IiWuQr.png" width="496" height="119" alt="[Image: 5IiWuQr.png]" class="mycode_img" /><br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">How does it work?</span><br />
<br />
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%).<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">How do I use it?</span><br />
<br />
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".<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">What SM64 ROMs are supported?</span><br />
<br />
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.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">What about emulators?</span><br />
<br />
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.<br />
<br />
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. ¯\_(ツ)_/¯<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">Benchmark</span><br />
<br />
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.<br />
<br />
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.<br />
<br />
<img src="https://i.imgur.com/C0IV7yY.jpg" alt="[Image: C0IV7yY.jpg]" class="mycode_img" /><br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">Download & Source</span><br />
<br />
Download: <a href="https://github.com/DavidSM64/SM64-Fast3D-AA-Reducer/releases" target="_blank" rel="noopener" class="mycode_url">https://github.com/DavidSM64/SM64-Fast3D...r/releases</a><br />
Source: <a href="https://github.com/DavidSM64/SM64-Fast3D-AA-Reducer/" target="_blank" rel="noopener" class="mycode_url">https://github.com/DavidSM64/SM64-Fast3D-AA-Reducer/</a><br />
<br />
<hr class="mycode_hr" />]]></description>
			<content:encoded><![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.<br />
<br />
<img src="https://i.imgur.com/5IiWuQr.png" width="496" height="119" alt="[Image: 5IiWuQr.png]" class="mycode_img" /><br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">How does it work?</span><br />
<br />
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%).<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">How do I use it?</span><br />
<br />
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".<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">What SM64 ROMs are supported?</span><br />
<br />
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.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">What about emulators?</span><br />
<br />
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.<br />
<br />
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. ¯\_(ツ)_/¯<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">Benchmark</span><br />
<br />
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.<br />
<br />
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.<br />
<br />
<img src="https://i.imgur.com/C0IV7yY.jpg" alt="[Image: C0IV7yY.jpg]" class="mycode_img" /><br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: x-large;" class="mycode_size">Download & Source</span><br />
<br />
Download: <a href="https://github.com/DavidSM64/SM64-Fast3D-AA-Reducer/releases" target="_blank" rel="noopener" class="mycode_url">https://github.com/DavidSM64/SM64-Fast3D...r/releases</a><br />
Source: <a href="https://github.com/DavidSM64/SM64-Fast3D-AA-Reducer/" target="_blank" rel="noopener" class="mycode_url">https://github.com/DavidSM64/SM64-Fast3D-AA-Reducer/</a><br />
<br />
<hr class="mycode_hr" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SM64 Portal Tools]]></title>
			<link>https://hack64.net/Thread-SM64-Portal-Tools</link>
			<pubDate>Wed, 31 Jul 2019 12:13:03 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-SM64-Portal-Tools</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">SM64 Portal Tools</span> is a collection of objects that can be added to sm64. Included is also portal physics and tools.<br />
<br />
<img src="https://i.imgur.com/3bTY2DE.gif" alt="[Image: 3bTY2DE.gif]" class="mycode_img" /><br />
<br />
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.<br />
<br />
Only basic rom hacking knowledge is required to use these tools (the tutorial covers everything)<br />
<br />
Objects included:<br />
<ul class="mycode_list">
</li>
<li>Sentry Turret<br />
</li>
<li>Cube<br />
</li>
<li>Light Bridge<br />
</li>
<li>Laser Beam<br />
</li>
<li>Receptacle Laser<br />
</li>
<li>Receptacle Pellet<br />
</li>
<li>Reflect Cube<br />
</li>
<li>Excursion Funnel<br />
</li>
<li>Excursion Funnel Switch<br />
</li>
<li>High Energy Pellet<br />
</li>
<li>Gel (blue)<br />
</li>
<li>Gel (yellow)<br />
</li>
<li>Gel (faucet)<br />
</li>
<li>Chamber Door<br />
</li>
<li>Connected Metal Box<br />
</li>
<li>Connected Metal Box (Appearing)<br />
</li>
<li>Switch with Hidden Boxes<br />
</li></ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Tutorial:</span><br />
<a href="https://docs.google.com/document/d/1a4IbhnAb9SIt2ZecO6ACAv1Jvo_2reSUW7-MzfLTfog/" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/document/d/1a4Ib...-MzfLTfog/</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Downloads:</span><br />
<a href="https://mega.nz/#!VkdkWSYT!FeKiVGj75y60HXGhqXM-bnYdHyjgcx81vHmVDfoQvh8" target="_blank" rel="noopener" class="mycode_url">https://mega.nz/#!VkdkWSYT!FeKiVGj75y60H...HmVDfoQvh8</a>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">SM64 Portal Tools</span> is a collection of objects that can be added to sm64. Included is also portal physics and tools.<br />
<br />
<img src="https://i.imgur.com/3bTY2DE.gif" alt="[Image: 3bTY2DE.gif]" class="mycode_img" /><br />
<br />
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.<br />
<br />
Only basic rom hacking knowledge is required to use these tools (the tutorial covers everything)<br />
<br />
Objects included:<br />
<ul class="mycode_list">
</li>
<li>Sentry Turret<br />
</li>
<li>Cube<br />
</li>
<li>Light Bridge<br />
</li>
<li>Laser Beam<br />
</li>
<li>Receptacle Laser<br />
</li>
<li>Receptacle Pellet<br />
</li>
<li>Reflect Cube<br />
</li>
<li>Excursion Funnel<br />
</li>
<li>Excursion Funnel Switch<br />
</li>
<li>High Energy Pellet<br />
</li>
<li>Gel (blue)<br />
</li>
<li>Gel (yellow)<br />
</li>
<li>Gel (faucet)<br />
</li>
<li>Chamber Door<br />
</li>
<li>Connected Metal Box<br />
</li>
<li>Connected Metal Box (Appearing)<br />
</li>
<li>Switch with Hidden Boxes<br />
</li></ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Tutorial:</span><br />
<a href="https://docs.google.com/document/d/1a4IbhnAb9SIt2ZecO6ACAv1Jvo_2reSUW7-MzfLTfog/" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/document/d/1a4Ib...-MzfLTfog/</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Downloads:</span><br />
<a href="https://mega.nz/#!VkdkWSYT!FeKiVGj75y60HXGhqXM-bnYdHyjgcx81vHmVDfoQvh8" target="_blank" rel="noopener" class="mycode_url">https://mega.nz/#!VkdkWSYT!FeKiVGj75y60H...HmVDfoQvh8</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SM64 Enhanced Text Engine]]></title>
			<link>https://hack64.net/Thread-SM64-Enhanced-Text-Engine</link>
			<pubDate>Sat, 27 Jul 2019 12:29:07 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-SM64-Enhanced-Text-Engine</guid>
			<description><![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 including timing, size and location.<br />
<br />
To see all the feature of this engine, see this video: <a href="https://youtu.be/A-YfaQpm5-A" target="_blank" rel="noopener" class="mycode_url">https://youtu.be/A-YfaQpm5-A</a><br />
<br />
This is installed as an asm patch, it will take the rom space from 0x1203800 -  0x12052C0. Included is the function itself "print string notes", the keyboard used for user input (simply place the entire file at 0x1204FFC) and an 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 file includes two functions for the user to easily activate the text.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//80405218<br />
//enable dialog with this object<br />
//a0=x<br />
//a1=y<br />
//a2=*string<br />
//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></div></div><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//display string during gameplay<br />
//80404F40<br />
//a0=x<br />
//a1=y<br />
//a2=*string</code></div></div><br />
<br />
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 00 01 - set text speed to 1 VI per character).<br />
<br />
Below is a list of all the cmds included along with some things to keep in mind while using them<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//40 set VIs per character, 2 byte - VIs per new char<br />
//41 play sfx, 2 bytes - sfx arg<br />
//42 set color of following characters, 4 bytes (white by default) - RGBA<br />
//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)<br />
//44 display long user inputted string, up to FF characters<br />
//45 return from user string (automatically generated by 4F cmd)<br />
//46 make rainbow text (characters following cmd will rgb glow, call a new env color to disable) 1 byte - alpha value<br />
//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)<br />
//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)<br />
//boxes will reset scaling and position and color. The only thing preserved is the character speed, and the blip flags.<br />
//70 end of box, auto go to next box (put a pause before this so your string stays a while)<br />
//71 end of box, goto next box on a press<br />
//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<br />
//74 pause - 2 bytes VIs to wait<br />
//76 play small blip sound per character (think like in megaman or any other rpg with text scrolling)<br />
//77 disable blip<br />
//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)<br />
//79 play music track, 1 byte - track number (original music will resume when string is done)<br />
//7A disable all music (original music will resume when string is done)<br />
//7B stop displaying string on A press (basically use this as an FF)<br />
//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<br />
//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)<br />
//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)<br />
//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)<br />
//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)<br />
//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)<br />
//88 enable screen shake (only in certain levels?)<br />
//89 disable screen shake</code></div></div><br />
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.<br />
You can also find the special text encoder along with other tools I have made here: <a href="https://sites.google.com/view/supermario64romhacks/tweaks-and-tutorials?authuser=0" target="_blank" rel="noopener" class="mycode_url">https://sites.google.com/view/supermario...authuser=0</a><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://hack64.net/images/attachtypes/html.png" title="HTML File" border="0" alt=".html" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=44" target="_blank" title="">special_text_encode.html</a> (Size: 17.25 KB / Downloads: 1125)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://hack64.net/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=45" target="_blank" title="">print string notes.txt</a> (Size: 50.61 KB / Downloads: 1062)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://hack64.net/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=46" target="_blank" title="">keyboard.txt</a> (Size: 388 bytes / Downloads: 1172)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![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 including timing, size and location.<br />
<br />
To see all the feature of this engine, see this video: <a href="https://youtu.be/A-YfaQpm5-A" target="_blank" rel="noopener" class="mycode_url">https://youtu.be/A-YfaQpm5-A</a><br />
<br />
This is installed as an asm patch, it will take the rom space from 0x1203800 -  0x12052C0. Included is the function itself "print string notes", the keyboard used for user input (simply place the entire file at 0x1204FFC) and an 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 file includes two functions for the user to easily activate the text.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//80405218<br />
//enable dialog with this object<br />
//a0=x<br />
//a1=y<br />
//a2=*string<br />
//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></div></div><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//display string during gameplay<br />
//80404F40<br />
//a0=x<br />
//a1=y<br />
//a2=*string</code></div></div><br />
<br />
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 00 01 - set text speed to 1 VI per character).<br />
<br />
Below is a list of all the cmds included along with some things to keep in mind while using them<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//40 set VIs per character, 2 byte - VIs per new char<br />
//41 play sfx, 2 bytes - sfx arg<br />
//42 set color of following characters, 4 bytes (white by default) - RGBA<br />
//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)<br />
//44 display long user inputted string, up to FF characters<br />
//45 return from user string (automatically generated by 4F cmd)<br />
//46 make rainbow text (characters following cmd will rgb glow, call a new env color to disable) 1 byte - alpha value<br />
//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)<br />
//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)<br />
//boxes will reset scaling and position and color. The only thing preserved is the character speed, and the blip flags.<br />
//70 end of box, auto go to next box (put a pause before this so your string stays a while)<br />
//71 end of box, goto next box on a press<br />
//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<br />
//74 pause - 2 bytes VIs to wait<br />
//76 play small blip sound per character (think like in megaman or any other rpg with text scrolling)<br />
//77 disable blip<br />
//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)<br />
//79 play music track, 1 byte - track number (original music will resume when string is done)<br />
//7A disable all music (original music will resume when string is done)<br />
//7B stop displaying string on A press (basically use this as an FF)<br />
//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<br />
//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)<br />
//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)<br />
//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)<br />
//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)<br />
//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)<br />
//88 enable screen shake (only in certain levels?)<br />
//89 disable screen shake</code></div></div><br />
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.<br />
You can also find the special text encoder along with other tools I have made here: <a href="https://sites.google.com/view/supermario64romhacks/tweaks-and-tutorials?authuser=0" target="_blank" rel="noopener" class="mycode_url">https://sites.google.com/view/supermario...authuser=0</a><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://hack64.net/images/attachtypes/html.png" title="HTML File" border="0" alt=".html" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=44" target="_blank" title="">special_text_encode.html</a> (Size: 17.25 KB / Downloads: 1125)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://hack64.net/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=45" target="_blank" title="">print string notes.txt</a> (Size: 50.61 KB / Downloads: 1062)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://hack64.net/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=46" target="_blank" title="">keyboard.txt</a> (Size: 388 bytes / Downloads: 1172)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[m64 format documentation]]></title>
			<link>https://hack64.net/Thread-m64-format-documentation</link>
			<pubDate>Tue, 16 Jul 2019 14:33:57 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-m64-format-documentation</guid>
			<description><![CDATA[Through reverse-engineering of the SM64 audio library, I figured some more details of the m64 format.<br />
<br />
The hack64 forum software doesn't seem to support tables, but here's an external markdown doc: <a href="https://hackmd.io/opEB-OmxRa26P8h8pA-x7w" target="_blank" rel="noopener" class="mycode_url">https://hackmd.io/opEB-OmxRa26P8h8pA-x7w</a> as well as a decoder: <a href="https://gist.github.com/simonlindholm/307e73aefed6e1a358931522c291f878" target="_blank" rel="noopener" class="mycode_url">https://gist.github.com/simonlindholm/30...22c291f878</a><br />
<br />
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.]]></description>
			<content:encoded><![CDATA[Through reverse-engineering of the SM64 audio library, I figured some more details of the m64 format.<br />
<br />
The hack64 forum software doesn't seem to support tables, but here's an external markdown doc: <a href="https://hackmd.io/opEB-OmxRa26P8h8pA-x7w" target="_blank" rel="noopener" class="mycode_url">https://hackmd.io/opEB-OmxRa26P8h8pA-x7w</a> as well as a decoder: <a href="https://gist.github.com/simonlindholm/307e73aefed6e1a358931522c291f878" target="_blank" rel="noopener" class="mycode_url">https://gist.github.com/simonlindholm/30...22c291f878</a><br />
<br />
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.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Super Mario 64 Randomizer Program [v0.6.0]]]></title>
			<link>https://hack64.net/Thread-Super-Mario-64-Randomizer-Program-v0-6-0</link>
			<pubDate>Sun, 02 Jun 2019 13:04:00 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-Super-Mario-64-Randomizer-Program-v0-6-0</guid>
			<description><![CDATA[This is an <a href="https://github.com/andre-meyer/sm64-randomizer" target="_blank" rel="noopener" class="mycode_url">open source</a> python-based Super Mario 64 randomizer for the original game (as well as romhacks) that I have been working on the last few weeks. Inspired by the Zelda Ocarina of Time Randomizer (<a href="https://github.com/TestRunnerSRL/OoT-Randomizer" target="_blank" rel="noopener" class="mycode_url">github</a>)<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="https://i.imgur.com/pf687MH.png" alt="[Image: pf687MH.png]" class="mycode_img" /></div>
<br />
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.<br />
<br />
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.<br />
<br />
<span style="font-size: large;" class="mycode_size">Current features:</span><ul class="mycode_list">
</li>
<li>Object position shuffle*<br />
</li>
<li>Spawn position shuffle<br />
</li>
<li>Music track shuffle<br />
</li>
<li>Warp entry/exit shuffle<br />
</li>
<li>Castle Paintings match levels (levels without a painting will show a placeholder)<br />
</li>
<li>Dialog/Text shuffle<br />
</li>
<li>Coin-color shuffle<br />
</li>
<li>Mario's Outfit shuffle<br />
</li>
<li>Configurable via CLI or GUI<br />
</li>
<li>Extends your ROM automatically<br />
</li>
<li><a href="https://andre-meyer.github.io/sm64-randomizer" target="_blank" rel="noopener" class="mycode_url">Web Generator</a><br />
</li></ul>
* 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. <br />
<br />
<span style="font-size: large;" class="mycode_size">Screenshots:</span><br />
<img src="https://i.imgur.com/Kd8vHKa.jpg" width="250" height="176" alt="[Image: Kd8vHKa.jpg]" class="mycode_img" /><img src="https://i.imgur.com/e4CXm5w.png" width="250" height="178" alt="[Image: e4CXm5w.png]" class="mycode_img" /><img src="https://i.imgur.com/Jwuoi7B.png" width="250" height="180" alt="[Image: Jwuoi7B.png]" class="mycode_img" /><br />
<br />
The program includes a simple GUI for Windows/Mac/Linux:<br />
<img src="https://camo.githubusercontent.com/2adc5ae4694d2099f4798fd1d1a0219c4c2d6320/68747470733a2f2f692e696d6775722e636f6d2f6572456b3444682e706e67" alt="[Image: 68747470733a2f2f692e696d6775722e636f6d2f...682e706e67]" class="mycode_img" /><br />
<br />
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!<br />
<br />
<div style="text-align: center;" class="mycode_align"><a href="https://discord.gg/eJ5Kqcv" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.imgur.com/0DkN9vW.png" width="118" height="40" alt="[Image: 0DkN9vW.png]" class="mycode_img" /></a></div>
<br />
<span style="font-size: large;" class="mycode_size">Download:</span><br />
<a href="https://github.com/andre-meyer/sm64-randomizer/releases/latest" target="_blank" rel="noopener" class="mycode_url">https://github.com/andre-meyer/sm64-rand...ses/latest</a><br />
<br />
<br />
(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)]]></description>
			<content:encoded><![CDATA[This is an <a href="https://github.com/andre-meyer/sm64-randomizer" target="_blank" rel="noopener" class="mycode_url">open source</a> python-based Super Mario 64 randomizer for the original game (as well as romhacks) that I have been working on the last few weeks. Inspired by the Zelda Ocarina of Time Randomizer (<a href="https://github.com/TestRunnerSRL/OoT-Randomizer" target="_blank" rel="noopener" class="mycode_url">github</a>)<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="https://i.imgur.com/pf687MH.png" alt="[Image: pf687MH.png]" class="mycode_img" /></div>
<br />
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.<br />
<br />
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.<br />
<br />
<span style="font-size: large;" class="mycode_size">Current features:</span><ul class="mycode_list">
</li>
<li>Object position shuffle*<br />
</li>
<li>Spawn position shuffle<br />
</li>
<li>Music track shuffle<br />
</li>
<li>Warp entry/exit shuffle<br />
</li>
<li>Castle Paintings match levels (levels without a painting will show a placeholder)<br />
</li>
<li>Dialog/Text shuffle<br />
</li>
<li>Coin-color shuffle<br />
</li>
<li>Mario's Outfit shuffle<br />
</li>
<li>Configurable via CLI or GUI<br />
</li>
<li>Extends your ROM automatically<br />
</li>
<li><a href="https://andre-meyer.github.io/sm64-randomizer" target="_blank" rel="noopener" class="mycode_url">Web Generator</a><br />
</li></ul>
* 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. <br />
<br />
<span style="font-size: large;" class="mycode_size">Screenshots:</span><br />
<img src="https://i.imgur.com/Kd8vHKa.jpg" width="250" height="176" alt="[Image: Kd8vHKa.jpg]" class="mycode_img" /><img src="https://i.imgur.com/e4CXm5w.png" width="250" height="178" alt="[Image: e4CXm5w.png]" class="mycode_img" /><img src="https://i.imgur.com/Jwuoi7B.png" width="250" height="180" alt="[Image: Jwuoi7B.png]" class="mycode_img" /><br />
<br />
The program includes a simple GUI for Windows/Mac/Linux:<br />
<img src="https://camo.githubusercontent.com/2adc5ae4694d2099f4798fd1d1a0219c4c2d6320/68747470733a2f2f692e696d6775722e636f6d2f6572456b3444682e706e67" alt="[Image: 68747470733a2f2f692e696d6775722e636f6d2f...682e706e67]" class="mycode_img" /><br />
<br />
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!<br />
<br />
<div style="text-align: center;" class="mycode_align"><a href="https://discord.gg/eJ5Kqcv" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.imgur.com/0DkN9vW.png" width="118" height="40" alt="[Image: 0DkN9vW.png]" class="mycode_img" /></a></div>
<br />
<span style="font-size: large;" class="mycode_size">Download:</span><br />
<a href="https://github.com/andre-meyer/sm64-randomizer/releases/latest" target="_blank" rel="noopener" class="mycode_url">https://github.com/andre-meyer/sm64-rand...ses/latest</a><br />
<br />
<br />
(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)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ASM + hacking tutorial.]]></title>
			<link>https://hack64.net/Thread-ASM-hacking-tutorial</link>
			<pubDate>Fri, 03 May 2019 23:19:37 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-ASM-hacking-tutorial</guid>
			<description><![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.<br />
Here is what I've written so far:<br />
<br />
Super Beginner:<br />
<br />
Preface: <a href="https://docs.google.com/document/d/1JnPTLNohXw-2WjxBBP6vgvDsWJ7LPx6hVGmpuoQis1c/edit" target="_blank" rel="noopener" class="mycode_url">Introduction to hexidecimal, ram/rom + banks and offsets, quick custom model importing + behavior scripts explanation</a><br />
<br />
Beginner<br />
<br />
Part 1: <a href="https://docs.google.com/document/d/1_NKU-xg080kn9vnkmkg45Wdh_2VlH72s8no54wCT5ms/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">MIPS asm intro, the object struct and how you can use it to control objects</a><br />
<br />
Part 2: <a href="https://docs.google.com/document/d/1LvALWJDuc_1ay1JeR71jyKNxYHcHXzywOnM32Bv9Zug/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">floats, branches, jumps, the stack and functions and some example uses</a><br />
<br />
Part 3: <a href="https://docs.google.com/document/d/1nyRZfUus0Xp8ZzKAvNcZvqiFpNF7cBAItda-i384KYo/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">The mario struct, interactions and more in depth behaviors</a><br />
<br />
Part 4: <a href="https://docs.google.com/document/d/1rS5nN-O-bpfAZno5Q1WLE1JsdpljwG00JcMEX0HUZTo/edit?usp=drivesdk" target="_blank" rel="noopener" class="mycode_url">Practical examples and explanations</a><br />
<br />
Aside: <a href="https://docs.google.com/document/d/10rwoyTEWhUPigQhsVDB38TIuYrV4l9IhuD32ieiX8HY/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">using the debugger (overview)</a><br />
<br />
Advanced:<br />
<br />
Part 5: <a href="https://docs.google.com/document/d/1jd3lXCr0qW1K9ckelirnmhEC8FUlXuPD7VFNrtqn3T4/edit?usp=drivesdk" target="_blank" rel="noopener" class="mycode_url">Collision and Display Lists Introduction</a><br />
<br />
<br />
WIP:<br />
<ul class="mycode_list">
<br />
</li>
<li><span style="color: #212121;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family: Lato, sans-serif;" class="mycode_font"><a href="https://docs.google.com/document/d/1ujVdoGCUgOAb97llOjjcoofagEkdKm0SU9XIJ5GV7mQ/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url"><span style="color: #356e9a;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Advanced F3D w/ asm</span></span></span></a></span></span></span><br />
<br />
</li>
<li><span style="color: #212121;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family: Lato, sans-serif;" class="mycode_font"><a href="https://docs.google.com/document/d/10e9fR6OV2zTOVspiXMLVjOa6ZtCFm3zjlq4vCT0_1Pc/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url"><span style="color: #356e9a;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The model loading process</span></span></span></a></span></span></span><br />
</li></ul>
<br />
<br />
If you would like to contribute please message me or post in this thread. These tutorials will also be featured on my webiste: <a href="https://sites.google.com/view/supermario64romhacks/tweaks-and-tutorials?authuser=0" target="_blank" rel="noopener" class="mycode_url">https://sites.google.com/view/supermario...authuser=0</a>]]></description>
			<content:encoded><![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.<br />
Here is what I've written so far:<br />
<br />
Super Beginner:<br />
<br />
Preface: <a href="https://docs.google.com/document/d/1JnPTLNohXw-2WjxBBP6vgvDsWJ7LPx6hVGmpuoQis1c/edit" target="_blank" rel="noopener" class="mycode_url">Introduction to hexidecimal, ram/rom + banks and offsets, quick custom model importing + behavior scripts explanation</a><br />
<br />
Beginner<br />
<br />
Part 1: <a href="https://docs.google.com/document/d/1_NKU-xg080kn9vnkmkg45Wdh_2VlH72s8no54wCT5ms/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">MIPS asm intro, the object struct and how you can use it to control objects</a><br />
<br />
Part 2: <a href="https://docs.google.com/document/d/1LvALWJDuc_1ay1JeR71jyKNxYHcHXzywOnM32Bv9Zug/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">floats, branches, jumps, the stack and functions and some example uses</a><br />
<br />
Part 3: <a href="https://docs.google.com/document/d/1nyRZfUus0Xp8ZzKAvNcZvqiFpNF7cBAItda-i384KYo/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">The mario struct, interactions and more in depth behaviors</a><br />
<br />
Part 4: <a href="https://docs.google.com/document/d/1rS5nN-O-bpfAZno5Q1WLE1JsdpljwG00JcMEX0HUZTo/edit?usp=drivesdk" target="_blank" rel="noopener" class="mycode_url">Practical examples and explanations</a><br />
<br />
Aside: <a href="https://docs.google.com/document/d/10rwoyTEWhUPigQhsVDB38TIuYrV4l9IhuD32ieiX8HY/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">using the debugger (overview)</a><br />
<br />
Advanced:<br />
<br />
Part 5: <a href="https://docs.google.com/document/d/1jd3lXCr0qW1K9ckelirnmhEC8FUlXuPD7VFNrtqn3T4/edit?usp=drivesdk" target="_blank" rel="noopener" class="mycode_url">Collision and Display Lists Introduction</a><br />
<br />
<br />
WIP:<br />
<ul class="mycode_list">
<br />
</li>
<li><span style="color: #212121;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family: Lato, sans-serif;" class="mycode_font"><a href="https://docs.google.com/document/d/1ujVdoGCUgOAb97llOjjcoofagEkdKm0SU9XIJ5GV7mQ/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url"><span style="color: #356e9a;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Advanced F3D w/ asm</span></span></span></a></span></span></span><br />
<br />
</li>
<li><span style="color: #212121;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family: Lato, sans-serif;" class="mycode_font"><a href="https://docs.google.com/document/d/10e9fR6OV2zTOVspiXMLVjOa6ZtCFm3zjlq4vCT0_1Pc/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url"><span style="color: #356e9a;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The model loading process</span></span></span></a></span></span></span><br />
</li></ul>
<br />
<br />
If you would like to contribute please message me or post in this thread. These tutorials will also be featured on my webiste: <a href="https://sites.google.com/view/supermario64romhacks/tweaks-and-tutorials?authuser=0" target="_blank" rel="noopener" class="mycode_url">https://sites.google.com/view/supermario...authuser=0</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Playsound ROM Locations]]></title>
			<link>https://hack64.net/Thread-Playsound-ROM-Locations</link>
			<pubDate>Fri, 23 Nov 2018 18:53:22 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-Playsound-ROM-Locations</guid>
			<description><![CDATA[During the summer, I also started a little side-project on the side in a quest to document all the playsound locations in 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 these impediments that bring forth frustration in sound hacking.<br />
<br />
Here is my WIP list of the playsound ROM addresses I've found so far:<br />
<br />
<span style="font-size: x-large;" class="mycode_size">Playsound Locations (In an arbitrary order):</span><br />
<br />
Mario Screen "Hello!": 0x21F8C2<br />
Mario Screen "Press Start to Play!": 0x21F8DE<br />
Mario Screen Star (Pressing Start): 0x21F91A<br />
Mario Screen "Game Over!": 0x21F992<br />
Title Screen Coin + It's a Me Mario (credit to Kaze): 0x21FA3E<br />
Bowser Laugh when you die: 0x5B5A<br />
Coin (credit to Xeraclom14): 0x6216<br />
Coin (Underwater): 0x6206<br />
Enter Warp Pipe: 0x9056<br />
Exit Warp Pipe (Like in THI): 0x1457A<br />
Enter Warp Hole: 0x9062<br />
Waterfall: 0xAB7FE<br />
Volcano: 0xAB82A<br />
Birds 1: 0xAB8FA<br />
Birds 2: 0xAB90E<br />
Birds 3: 0xAB922<br />
Crickets: 0xAB97A<br />
Sand: 0xAB9CE<br />
1-up Sound: 0xAEC7E<br />
Goomba Smashed: 0xB63AA<br />
Goomba Alert: 0xBA522<br />
Small Bully Grunt: 0xA61F6<br />
Monkey Message: 0xEDF04 <br />
Big Penguin Message: 0xEDF08<br />
Short Bowser Laugh Message: 0xEDF0C<br />
KTQ Message: 0xEDF10<br />
King Bob-Omb Message: 0xEDF14<br />
Boo Message: 0xEDF18<br />
Bob-Omb Buddy Message: 0xEDF1C<br />
Long Bowser Laugh Message: 0xEDF20<br />
Whomp Message: 0xEDF24<br />
Wiggler Message: 0xEDF28<br />
Yoshi Message: 0xEDF2C<br />
<br />
<span style="font-style: italic;" class="mycode_i">Free free to contribute to this list if you'd like and I can update it!</span>]]></description>
			<content:encoded><![CDATA[During the summer, I also started a little side-project on the side in a quest to document all the playsound locations in 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 these impediments that bring forth frustration in sound hacking.<br />
<br />
Here is my WIP list of the playsound ROM addresses I've found so far:<br />
<br />
<span style="font-size: x-large;" class="mycode_size">Playsound Locations (In an arbitrary order):</span><br />
<br />
Mario Screen "Hello!": 0x21F8C2<br />
Mario Screen "Press Start to Play!": 0x21F8DE<br />
Mario Screen Star (Pressing Start): 0x21F91A<br />
Mario Screen "Game Over!": 0x21F992<br />
Title Screen Coin + It's a Me Mario (credit to Kaze): 0x21FA3E<br />
Bowser Laugh when you die: 0x5B5A<br />
Coin (credit to Xeraclom14): 0x6216<br />
Coin (Underwater): 0x6206<br />
Enter Warp Pipe: 0x9056<br />
Exit Warp Pipe (Like in THI): 0x1457A<br />
Enter Warp Hole: 0x9062<br />
Waterfall: 0xAB7FE<br />
Volcano: 0xAB82A<br />
Birds 1: 0xAB8FA<br />
Birds 2: 0xAB90E<br />
Birds 3: 0xAB922<br />
Crickets: 0xAB97A<br />
Sand: 0xAB9CE<br />
1-up Sound: 0xAEC7E<br />
Goomba Smashed: 0xB63AA<br />
Goomba Alert: 0xBA522<br />
Small Bully Grunt: 0xA61F6<br />
Monkey Message: 0xEDF04 <br />
Big Penguin Message: 0xEDF08<br />
Short Bowser Laugh Message: 0xEDF0C<br />
KTQ Message: 0xEDF10<br />
King Bob-Omb Message: 0xEDF14<br />
Boo Message: 0xEDF18<br />
Bob-Omb Buddy Message: 0xEDF1C<br />
Long Bowser Laugh Message: 0xEDF20<br />
Whomp Message: 0xEDF24<br />
Wiggler Message: 0xEDF28<br />
Yoshi Message: 0xEDF2C<br />
<br />
<span style="font-style: italic;" class="mycode_i">Free free to contribute to this list if you'd like and I can update it!</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Advanced] How to manually trigger a warp]]></title>
			<link>https://hack64.net/Thread-Advanced-How-to-manually-trigger-a-warp</link>
			<pubDate>Wed, 08 Aug 2018 01:38:33 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-Advanced-How-to-manually-trigger-a-warp</guid>
			<description><![CDATA[I'm sharing a couple of addresses I found a while ago to let you activate a warp at any time.<br />
<br />
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.<br />
<br />
<span style="font-family: Courier New;" class="mycode_font"><table border="1" style="background-color:#404040">
<tbody><tr><th style="padding-left:5px;"> Version </th><th style="padding-left:5px;padding-right:5px;"> Starting RAM Address </th></tr>
<tr><td style="padding-left:5px;"> Japan </td><td style="padding-left:5px;">0x80339EE2</td></tr>
<tr><td style="padding-left:5px;padding-right:5px;"> North America </td><td style="padding-left:5px;">0x8033B252</td></tr>
<tr><td style="padding-left:5px;"> Europe </td><td style="padding-left:5px;">0x8030951A</td></tr>
<tr><td style="padding-left:5px;"> Shindou </td><td style="padding-left:5px;">0x8031DAAA</td></tr>
<tr><td style="padding-left:5px;"> IQue Player </td><td style="padding-left:5px;">0x80320A86</td></tr>
</tbody></table>
</span><br />
Here is the table layout for each of the values starting at the RAM address specified above:<br />
<br />
<span style="font-family: Courier New;" class="mycode_font"><table border="1" style="background-color:#404040">
<tbody><tr><th style="padding-left:5px;"> Data Type </th><th style="padding-left:5px;"> Description </th></tr>
<tr><td style="padding-left:5px;"> s16 </td><td style="padding-left:5px;"> A value that tells the game that the warp delay timer is active or not.</td></tr>
<tr><td style="padding-left:5px;"> s16 </td><td style="padding-left:5px;"> Warp delay timer. Value decrements if active, and will warp Mario to the Warp ID when it reaches zero. </td></tr>
<tr><td style="padding-left:5px;"> s16 </td><td style="padding-left:5px;"> Warp ID to warp to.</td></tr>
<tr><td style="padding-left:5px;"> s32 </td><td style="padding-left:5px;"> Optional Parameters or Flags? Used to determine which side of the door Mario will stand once a door warp is completed.<br/>0x00000005 = Mario opened the door by pulling it inward.<span style="font-family: Courier New;" class="mycode_font"><br/></span>0x00000006 = Mario opened the door by pushing it outward.</td></tr>
</tbody></table></span><br />
<br />
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 warp will activate instantly.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-family: Courier New;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">Failed Level Exit (Lose a life)</span></span></span><br />
<br />
Warp ID 0xF1 is used when Mario dies. He will exit the level and lose a life in the process.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note:</span> 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.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-family: Courier New;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">Successful Level Exit (Star grabbed)</span></span></span><br />
<br />
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.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note 1:</span> Since you didn't actually collect a star/key, the star counter will not be increased. You will need to code that in yourself.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note 2:</span> 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 when Mario grabs a star/key. This byte should be set between 1 and 6, corresponding to the act # you want to display.  <br />
<br />
Below is a table with the corresponding to the address of the byte you need to change for each version:<br />
<br />
<span style="font-family: Courier New;" class="mycode_font"><table border="1" style="background-color:#404040">
<tbody><tr><th style="padding-left:5px;"> Version </th><th style="padding-left:5px;padding-right:5px;"> Address for gotten star # (Byte)</th></tr>
<tr><td style="padding-left:5px;"> Japan </td><td style="padding-left:5px;">0x8032CE24</td></tr>
<tr><td style="padding-left:5px;padding-right:5px;"> North America </td><td style="padding-left:5px;">0x8032DD84</td></tr>
<tr><td style="padding-left:5px;"> Europe </td><td style="padding-left:5px;">0x802F9F54</td></tr>
<tr><td style="padding-left:5px;"> Shindou </td><td style="padding-left:5px;">0x8030D4B4</td></tr>
<tr><td style="padding-left:5px;"> IQue Player </td><td style="padding-left:5px;">0x8030FA14</td></tr>
</tbody></table></span>]]></description>
			<content:encoded><![CDATA[I'm sharing a couple of addresses I found a while ago to let you activate a warp at any time.<br />
<br />
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.<br />
<br />
<span style="font-family: Courier New;" class="mycode_font"><table border="1" style="background-color:#404040">
<tbody><tr><th style="padding-left:5px;"> Version </th><th style="padding-left:5px;padding-right:5px;"> Starting RAM Address </th></tr>
<tr><td style="padding-left:5px;"> Japan </td><td style="padding-left:5px;">0x80339EE2</td></tr>
<tr><td style="padding-left:5px;padding-right:5px;"> North America </td><td style="padding-left:5px;">0x8033B252</td></tr>
<tr><td style="padding-left:5px;"> Europe </td><td style="padding-left:5px;">0x8030951A</td></tr>
<tr><td style="padding-left:5px;"> Shindou </td><td style="padding-left:5px;">0x8031DAAA</td></tr>
<tr><td style="padding-left:5px;"> IQue Player </td><td style="padding-left:5px;">0x80320A86</td></tr>
</tbody></table>
</span><br />
Here is the table layout for each of the values starting at the RAM address specified above:<br />
<br />
<span style="font-family: Courier New;" class="mycode_font"><table border="1" style="background-color:#404040">
<tbody><tr><th style="padding-left:5px;"> Data Type </th><th style="padding-left:5px;"> Description </th></tr>
<tr><td style="padding-left:5px;"> s16 </td><td style="padding-left:5px;"> A value that tells the game that the warp delay timer is active or not.</td></tr>
<tr><td style="padding-left:5px;"> s16 </td><td style="padding-left:5px;"> Warp delay timer. Value decrements if active, and will warp Mario to the Warp ID when it reaches zero. </td></tr>
<tr><td style="padding-left:5px;"> s16 </td><td style="padding-left:5px;"> Warp ID to warp to.</td></tr>
<tr><td style="padding-left:5px;"> s32 </td><td style="padding-left:5px;"> Optional Parameters or Flags? Used to determine which side of the door Mario will stand once a door warp is completed.<br/>0x00000005 = Mario opened the door by pulling it inward.<span style="font-family: Courier New;" class="mycode_font"><br/></span>0x00000006 = Mario opened the door by pushing it outward.</td></tr>
</tbody></table></span><br />
<br />
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 warp will activate instantly.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-family: Courier New;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">Failed Level Exit (Lose a life)</span></span></span><br />
<br />
Warp ID 0xF1 is used when Mario dies. He will exit the level and lose a life in the process.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note:</span> 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.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-family: Courier New;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">Successful Level Exit (Star grabbed)</span></span></span><br />
<br />
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.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note 1:</span> Since you didn't actually collect a star/key, the star counter will not be increased. You will need to code that in yourself.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note 2:</span> 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 when Mario grabs a star/key. This byte should be set between 1 and 6, corresponding to the act # you want to display.  <br />
<br />
Below is a table with the corresponding to the address of the byte you need to change for each version:<br />
<br />
<span style="font-family: Courier New;" class="mycode_font"><table border="1" style="background-color:#404040">
<tbody><tr><th style="padding-left:5px;"> Version </th><th style="padding-left:5px;padding-right:5px;"> Address for gotten star # (Byte)</th></tr>
<tr><td style="padding-left:5px;"> Japan </td><td style="padding-left:5px;">0x8032CE24</td></tr>
<tr><td style="padding-left:5px;padding-right:5px;"> North America </td><td style="padding-left:5px;">0x8032DD84</td></tr>
<tr><td style="padding-left:5px;"> Europe </td><td style="padding-left:5px;">0x802F9F54</td></tr>
<tr><td style="padding-left:5px;"> Shindou </td><td style="padding-left:5px;">0x8030D4B4</td></tr>
<tr><td style="padding-left:5px;"> IQue Player </td><td style="padding-left:5px;">0x8030FA14</td></tr>
</tbody></table></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[More Letters Patch]]></title>
			<link>https://hack64.net/Thread-More-Letters-Patch</link>
			<pubDate>Fri, 13 Jul 2018 17:24:35 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-More-Letters-Patch</guid>
			<description><![CDATA[This patch imports the following missing HUD characters from the Japanese ROM:<br />
<br />
<div style="color:#eee;background:#111;font-family:monospace;padding: 5px;">[J] [Q] [V] [X] [Z] [!] [!!]<br />
[?] [&] [%] [Circle] [Key]</div>
<br />
armips source: <a href="https://bitbucket.org/shygoo/sm64-more-letters/downloads/sm64-more-letters-r0.zip" target="_blank" rel="noopener" class="mycode_url">https://bitbucket.org/shygoo/sm64-more-l...ers-r0.zip</a><br />
(Use Simple armips GUI to patch: <a href="http://origami64.net/showthread.php?tid=775" target="_blank" rel="noopener" class="mycode_url">https://hack64.net/Thread-Simple-Armips-GUI-v1-3</a>)<br />
<br />
Compatible with SM64 (U) ROMs extended with VL-Tone's extender or equivalent.<br />
<br />
<span style="font-size: large;" class="mycode_size">Summary</span><ul class="mycode_list">
</li>
<li>Appends image data from more-letters.bin to segment 02<br />
</li>
<li>Updates segment-offset pointers in the character table<br />
</li>
<li>Updates segment 02 loader addresses<br />
</li></ul>
<span style="font-size: large;" class="mycode_size">Requirements</span><ul class="mycode_list">
</li>
<li>0x1800 bytes of free space at 0x0081D364 (or NUM_CHARS * 0x200)<br />
</li></ul>
<span style="font-size: large;" class="mycode_size">Configuration</span><ul class="mycode_list">
</li>
<li>Reduce NUM_CHARS in more-letters.asm if SM64 crashes<br />
</li></ul>
By default the key character is excluded due to memory limitations but if anyone needs it I can add some better configuration options.]]></description>
			<content:encoded><![CDATA[This patch imports the following missing HUD characters from the Japanese ROM:<br />
<br />
<div style="color:#eee;background:#111;font-family:monospace;padding: 5px;">[J] [Q] [V] [X] [Z] [!] [!!]<br />
[?] [&] [%] [Circle] [Key]</div>
<br />
armips source: <a href="https://bitbucket.org/shygoo/sm64-more-letters/downloads/sm64-more-letters-r0.zip" target="_blank" rel="noopener" class="mycode_url">https://bitbucket.org/shygoo/sm64-more-l...ers-r0.zip</a><br />
(Use Simple armips GUI to patch: <a href="http://origami64.net/showthread.php?tid=775" target="_blank" rel="noopener" class="mycode_url">https://hack64.net/Thread-Simple-Armips-GUI-v1-3</a>)<br />
<br />
Compatible with SM64 (U) ROMs extended with VL-Tone's extender or equivalent.<br />
<br />
<span style="font-size: large;" class="mycode_size">Summary</span><ul class="mycode_list">
</li>
<li>Appends image data from more-letters.bin to segment 02<br />
</li>
<li>Updates segment-offset pointers in the character table<br />
</li>
<li>Updates segment 02 loader addresses<br />
</li></ul>
<span style="font-size: large;" class="mycode_size">Requirements</span><ul class="mycode_list">
</li>
<li>0x1800 bytes of free space at 0x0081D364 (or NUM_CHARS * 0x200)<br />
</li></ul>
<span style="font-size: large;" class="mycode_size">Configuration</span><ul class="mycode_list">
</li>
<li>Reduce NUM_CHARS in more-letters.asm if SM64 crashes<br />
</li></ul>
By default the key character is excluded due to memory limitations but if anyone needs it I can add some better configuration options.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SM64 Blender Importer]]></title>
			<link>https://hack64.net/Thread-SM64-Blender-Importer</link>
			<pubDate>Sat, 07 Jul 2018 23:42:17 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-SM64-Blender-Importer</guid>
			<description><![CDATA[<span style="font-size: x-large;" class="mycode_size">SM64 Blender Importer</span><br />
<span style="font-size: x-large;" class="mycode_size"><img src="https://bitbucket.org/kurethedead/sm64_character_importer/raw/master/screenshots/blender.png" alt="[Image: blender.png]" class="mycode_img" /></span><br />
<img src="https://bitbucket.org/kurethedead/sm64_character_importer/raw/master/screenshots/mario%20hat.gif" alt="[Image: mario%20hat.gif]" class="mycode_img" /><img src="https://bitbucket.org/kurethedead/sm64_character_importer/raw/master/screenshots/mario%20wings.gif" alt="[Image: mario%20wings.gif]" class="mycode_img" /><br />
<br />
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.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-size: medium;" class="mycode_size">Features</span></span><span style="font-size: medium;" class="mycode_size"> <span style="font-size: small;" class="mycode_size">(import means import into Blender)</span></span><ul class="mycode_list">
</li>
<li>Mario import/export<br />
</li>
<li>Modified bone lengths are saved, excluding the root bone<br />
</li>
<li>Face animation supported<br />
</li>
<li>Can import custom hatless head/other hand poses<br />
</li>
<li>Will update metal/vanish models<br />
</li>
<li>Geo layout import<br />
</li>
<li>Display List import/export<br />
</li>
<li>Custom color combination functionality<br />
</li></ul>
<span style="text-decoration: underline;" class="mycode_u"><span style="font-size: medium;" class="mycode_size">Restrictions</span></span><ul class="mycode_list">
</li>
<li>Textures are not imported, only exported<br />
</li>
<li>The Blender custom data attributes are necessary for the plugin to work; Make sure to follow the process outlined in the instruction files.<br />
</li></ul>
<a href="https://bitbucket.org/kurethedead/sm64_character_importer" target="_blank" rel="noopener" class="mycode_url"><span style="font-size: medium;" class="mycode_size">Download Link</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-size: x-large;" class="mycode_size">SM64 Blender Importer</span><br />
<span style="font-size: x-large;" class="mycode_size"><img src="https://bitbucket.org/kurethedead/sm64_character_importer/raw/master/screenshots/blender.png" alt="[Image: blender.png]" class="mycode_img" /></span><br />
<img src="https://bitbucket.org/kurethedead/sm64_character_importer/raw/master/screenshots/mario%20hat.gif" alt="[Image: mario%20hat.gif]" class="mycode_img" /><img src="https://bitbucket.org/kurethedead/sm64_character_importer/raw/master/screenshots/mario%20wings.gif" alt="[Image: mario%20wings.gif]" class="mycode_img" /><br />
<br />
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.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-size: medium;" class="mycode_size">Features</span></span><span style="font-size: medium;" class="mycode_size"> <span style="font-size: small;" class="mycode_size">(import means import into Blender)</span></span><ul class="mycode_list">
</li>
<li>Mario import/export<br />
</li>
<li>Modified bone lengths are saved, excluding the root bone<br />
</li>
<li>Face animation supported<br />
</li>
<li>Can import custom hatless head/other hand poses<br />
</li>
<li>Will update metal/vanish models<br />
</li>
<li>Geo layout import<br />
</li>
<li>Display List import/export<br />
</li>
<li>Custom color combination functionality<br />
</li></ul>
<span style="text-decoration: underline;" class="mycode_u"><span style="font-size: medium;" class="mycode_size">Restrictions</span></span><ul class="mycode_list">
</li>
<li>Textures are not imported, only exported<br />
</li>
<li>The Blender custom data attributes are necessary for the plugin to work; Make sure to follow the process outlined in the instruction files.<br />
</li></ul>
<a href="https://bitbucket.org/kurethedead/sm64_character_importer" target="_blank" rel="noopener" class="mycode_url"><span style="font-size: medium;" class="mycode_size">Download Link</span></a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Baked Ambient Occlusion and Shadows]]></title>
			<link>https://hack64.net/Thread-Baked-Ambient-Occlusion-and-Shadows</link>
			<pubDate>Wed, 04 Jul 2018 18:19:11 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-Baked-Ambient-Occlusion-and-Shadows</guid>
			<description><![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.<br />
<br />
You can see all the pictures in this imgur album: <a href="https://imgur.com/a/lSP90bM" target="_blank" rel="noopener" class="mycode_url">https://imgur.com/a/lSP90bM</a><br />
<br />
You can see the AO & Shadow texture maps individually here: <a href="https://imgur.com/a/Uze5UaS" target="_blank" rel="noopener" class="mycode_url">https://imgur.com/a/Uze5UaS</a>]]></description>
			<content:encoded><![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.<br />
<br />
You can see all the pictures in this imgur album: <a href="https://imgur.com/a/lSP90bM" target="_blank" rel="noopener" class="mycode_url">https://imgur.com/a/lSP90bM</a><br />
<br />
You can see the AO & Shadow texture maps individually here: <a href="https://imgur.com/a/Uze5UaS" target="_blank" rel="noopener" class="mycode_url">https://imgur.com/a/Uze5UaS</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ASM Tutorial! (WIP)]]></title>
			<link>https://hack64.net/Thread-ASM-Tutorial-WIP</link>
			<pubDate>Fri, 01 Jun 2018 02:17:26 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-ASM-Tutorial-WIP</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><div style="text-align: left;" class="mycode_align">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.)</div>
<br />
<div style="text-align: left;" class="mycode_align">Part 1: Introduction to MIPS ASM - <a href="https://docs.google.com/presentation/d/1HjVlIPqFUtFN6cXGp5yh9HDhbrrs0nJW47Xaiyi-weA" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...7Xaiyi-weA</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 2: Registers - <a href="https://docs.google.com/presentation/d/1vPSHG8I2mNw7gQXcmCCGjKQOffFaFY1PLVBTt-ASJiw" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...VBTt-ASJiw</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 3: Common Commands - <a href="https://docs.google.com/presentation/d/1WkDbXtnaGTjFI570GW74YjK-uSkezAofXlMwxMic__I" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...lMwxMic__I</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 4: Jumps and Branches - <a href="https://docs.google.com/presentation/d/1b9HhwRZWQItpZRGnE62h4AKgAy82yMOb1h9Dk7j7lks" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...h9Dk7j7lks</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 4.5: Behaviour Scripts - <a href="https://docs.google.com/presentation/d/17oYiwFwYVBl1ATQR_zWBKMGNHPpC_RUtGuevZfWqT7g" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...uevZfWqT7g</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 5: Custom Objects - <a href="https://docs.google.com/document/d/1vLZ2liazKyjT90I1Y_R8amUVy9OEKccTvkVpnpGSBjw/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/document/d/1vLZ2...sp=sharing</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 6: Object Structs - coming soon!</div>
<br />
<br />
<br />
<div style="text-align: left;" class="mycode_align">If you have any questions, feel free to PM me or email me at arthurtilly413@gmail.com to tell me so I can answer.</div>
<br />
<div style="text-align: left;" class="mycode_align">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.</div>
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><div style="text-align: left;" class="mycode_align">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.)</div>
<br />
<div style="text-align: left;" class="mycode_align">Part 1: Introduction to MIPS ASM - <a href="https://docs.google.com/presentation/d/1HjVlIPqFUtFN6cXGp5yh9HDhbrrs0nJW47Xaiyi-weA" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...7Xaiyi-weA</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 2: Registers - <a href="https://docs.google.com/presentation/d/1vPSHG8I2mNw7gQXcmCCGjKQOffFaFY1PLVBTt-ASJiw" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...VBTt-ASJiw</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 3: Common Commands - <a href="https://docs.google.com/presentation/d/1WkDbXtnaGTjFI570GW74YjK-uSkezAofXlMwxMic__I" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...lMwxMic__I</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 4: Jumps and Branches - <a href="https://docs.google.com/presentation/d/1b9HhwRZWQItpZRGnE62h4AKgAy82yMOb1h9Dk7j7lks" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...h9Dk7j7lks</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 4.5: Behaviour Scripts - <a href="https://docs.google.com/presentation/d/17oYiwFwYVBl1ATQR_zWBKMGNHPpC_RUtGuevZfWqT7g" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/presentation/d/1...uevZfWqT7g</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 5: Custom Objects - <a href="https://docs.google.com/document/d/1vLZ2liazKyjT90I1Y_R8amUVy9OEKccTvkVpnpGSBjw/edit?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://docs.google.com/document/d/1vLZ2...sp=sharing</a></div>
<br />
<div style="text-align: left;" class="mycode_align">Part 6: Object Structs - coming soon!</div>
<br />
<br />
<br />
<div style="text-align: left;" class="mycode_align">If you have any questions, feel free to PM me or email me at arthurtilly413@gmail.com to tell me so I can answer.</div>
<br />
<div style="text-align: left;" class="mycode_align">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.</div>
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SM64 Segment 02]]></title>
			<link>https://hack64.net/Thread-SM64-Segment-02</link>
			<pubDate>Mon, 30 Apr 2018 01:20:04 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-SM64-Segment-02</guid>
			<description><![CDATA[Segment 02 in SM64 contains the font textures (HUD, dialog, credits), transition textures, font tables, dialog text, level names, and act names.  Documentation is also on the <a href="https://hack64.net/wiki/doku.php?id=super_mario_64:segment_2" target="_blank" rel="noopener" class="mycode_url">SM64 Segment 2 wiki page</a> 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 <a href="https://github.com/Kingcom/armips" target="_blank" rel="noopener" class="mycode_url">armips</a> assembler.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Start&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;&nbsp;&nbsp;&nbsp;Description<br />
0x00000&nbsp;&nbsp;&nbsp;&nbsp;0x049FF&nbsp;&nbsp;&nbsp;&nbsp;Large font and HUD textures<br />
0x04A00&nbsp;&nbsp;&nbsp;&nbsp;0x058FF&nbsp;&nbsp;&nbsp;&nbsp;Credits font textures<br />
0x05900&nbsp;&nbsp;&nbsp;&nbsp;0x06FFF&nbsp;&nbsp;&nbsp;&nbsp;Small dialog font textures<br />
0x07000&nbsp;&nbsp;&nbsp;&nbsp;0x076FF&nbsp;&nbsp;&nbsp;&nbsp;HUD camera textures<br />
0x07700&nbsp;&nbsp;&nbsp;&nbsp;0x077E7&nbsp;&nbsp;&nbsp;&nbsp;HUD lookup table<br />
0x077E8&nbsp;&nbsp;&nbsp;&nbsp;0x07BE7&nbsp;&nbsp;&nbsp;&nbsp;Small dialog font lookup table<br />
0x07BE8&nbsp;&nbsp;&nbsp;&nbsp;0x07C7B&nbsp;&nbsp;&nbsp;&nbsp;Credits font lookup table<br />
0x07C7C&nbsp;&nbsp;&nbsp;&nbsp;0x07C93&nbsp;&nbsp;&nbsp;&nbsp;HUD camera lookup table<br />
0x07C94&nbsp;&nbsp;&nbsp;&nbsp;0x07D07&nbsp;&nbsp;&nbsp;&nbsp;Some unused dialog-encoded text<br />
0x07D08&nbsp;&nbsp;&nbsp;&nbsp;0x07D33&nbsp;&nbsp;&nbsp;&nbsp;Unused text lookup table<br />
0x07D34&nbsp;&nbsp;&nbsp;&nbsp;0x0FFC7&nbsp;&nbsp;&nbsp;&nbsp;Dialog text<br />
0x0FFC8&nbsp;&nbsp;&nbsp;&nbsp;0x10D13&nbsp;&nbsp;&nbsp;&nbsp;Dialog lookup table<br />
0x10D14&nbsp;&nbsp;&nbsp;&nbsp;0x10F67&nbsp;&nbsp;&nbsp;&nbsp;Level names text<br />
0x10F68&nbsp;&nbsp;&nbsp;&nbsp;0x10FD3&nbsp;&nbsp;&nbsp;&nbsp;Level names lookup table<br />
0x10FD4&nbsp;&nbsp;&nbsp;&nbsp;0x1192B&nbsp;&nbsp;&nbsp;&nbsp;Act names text<br />
0x1192C&nbsp;&nbsp;&nbsp;&nbsp;0x11ABF&nbsp;&nbsp;&nbsp;&nbsp;Act names lookup table<br />
0x11AC0&nbsp;&nbsp;&nbsp;&nbsp;0x120B7&nbsp;&nbsp;&nbsp;&nbsp;F3D display lists and vertices<br />
0x120B8&nbsp;&nbsp;&nbsp;&nbsp;0x172B7&nbsp;&nbsp;&nbsp;&nbsp;Shadow, transition, other textures <br />
0x172B8&nbsp;&nbsp;&nbsp;&nbsp;0x172CF&nbsp;&nbsp;&nbsp;&nbsp;Unused. Looks like lighting parameters<br />
0x172D0&nbsp;&nbsp;&nbsp;&nbsp;0x178BF&nbsp;&nbsp;&nbsp;&nbsp;Matrices, F3D display lists, vertices<br />
0x178C0&nbsp;&nbsp;&nbsp;&nbsp;0x18A0D&nbsp;&nbsp;&nbsp;&nbsp;Paintings mesh vertices, triangles</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Interesting Finds</span></span><br />
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.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>db "STAGE SELECT&#92;n"...</code></div></div>I dug into the (J) ROM and found the same messages at offset 0x87E4 and 0x883C.<br />
<a href="https://i.imgur.com/GhNIOG5.png" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.imgur.com/GhNIOG5.png" width="640" height="223" alt="[Image: GhNIOG5.png]" class="mycode_img" /></a><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>STAGE SELECT<br />
つづける?<br />
1 マウンテン<br />
2 ファイアーバブル<br />
3 スノースライダー<br />
4 ウォーターランド<br />
クッパ１ごう<br />
もどる<br />
<br />
PAUSE<br />
つづける?<br />
やめる?</code></div></div><br />
Translations (thanks to Rena, jrra, and Fendoroid):<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>STAGE SELECT<br />
Continue?<br />
1 Mountain<br />
2 Fire bubble<br />
3 Snow slide<br />
4 Water land<br />
Bowser number 1<br />
Back<br />
<br />
PAUSE<br />
Continue?<br />
Quit?</code></div></div><br />
Japanese dialog font table:<br />
<img src="https://i.imgur.com/EvquL3M.png" alt="[Image: EvquL3M.png]" class="mycode_img" /><br />
<br />
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.<br />
<img src="https://i.imgur.com/HaPGZ0M.png" alt="[Image: HaPGZ0M.png]" class="mycode_img" /><br />
<br />
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.<br />
<img src="https://i.imgur.com/bSPmWLT.png" alt="[Image: bSPmWLT.png]" class="mycode_img" /><br />
<br />
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.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>178C0-178C1: u16 vertex count (0x009D=157)<br />
178C2-17C6F: i16 x, y, z vertices (157*6 bytes)<br />
17C70-17C71: u16 triangle count (0x0108=264)<br />
17C72-182A1: u16 3x triangle indexes (264*6 bytes)<br />
182A2-18A0D: triangle indexes</code></div></div><img src="https://i.imgur.com/E06Ma4k.png" width="130" height="130" alt="[Image: E06Ma4k.png]" class="mycode_img" /><br />
<br />
As a test, I compressed the top and bottom triangles and expanded the middle ones as shown. Looks pretty bad in game:<br />
<img src="https://i.imgur.com/hdOUVlQ.png" width="130" height="130" alt="[Image: hdOUVlQ.png]" class="mycode_img" /><img src="https://i.imgur.com/pPCBWHD.gif" alt="[Image: pPCBWHD.gif]" class="mycode_img" /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://hack64.net/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8" target="_blank" title="">sm64.segment02.zip</a> (Size: 212.41 KB / Downloads: 1351)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Segment 02 in SM64 contains the font textures (HUD, dialog, credits), transition textures, font tables, dialog text, level names, and act names.  Documentation is also on the <a href="https://hack64.net/wiki/doku.php?id=super_mario_64:segment_2" target="_blank" rel="noopener" class="mycode_url">SM64 Segment 2 wiki page</a> 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 <a href="https://github.com/Kingcom/armips" target="_blank" rel="noopener" class="mycode_url">armips</a> assembler.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Start&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;&nbsp;&nbsp;&nbsp;Description<br />
0x00000&nbsp;&nbsp;&nbsp;&nbsp;0x049FF&nbsp;&nbsp;&nbsp;&nbsp;Large font and HUD textures<br />
0x04A00&nbsp;&nbsp;&nbsp;&nbsp;0x058FF&nbsp;&nbsp;&nbsp;&nbsp;Credits font textures<br />
0x05900&nbsp;&nbsp;&nbsp;&nbsp;0x06FFF&nbsp;&nbsp;&nbsp;&nbsp;Small dialog font textures<br />
0x07000&nbsp;&nbsp;&nbsp;&nbsp;0x076FF&nbsp;&nbsp;&nbsp;&nbsp;HUD camera textures<br />
0x07700&nbsp;&nbsp;&nbsp;&nbsp;0x077E7&nbsp;&nbsp;&nbsp;&nbsp;HUD lookup table<br />
0x077E8&nbsp;&nbsp;&nbsp;&nbsp;0x07BE7&nbsp;&nbsp;&nbsp;&nbsp;Small dialog font lookup table<br />
0x07BE8&nbsp;&nbsp;&nbsp;&nbsp;0x07C7B&nbsp;&nbsp;&nbsp;&nbsp;Credits font lookup table<br />
0x07C7C&nbsp;&nbsp;&nbsp;&nbsp;0x07C93&nbsp;&nbsp;&nbsp;&nbsp;HUD camera lookup table<br />
0x07C94&nbsp;&nbsp;&nbsp;&nbsp;0x07D07&nbsp;&nbsp;&nbsp;&nbsp;Some unused dialog-encoded text<br />
0x07D08&nbsp;&nbsp;&nbsp;&nbsp;0x07D33&nbsp;&nbsp;&nbsp;&nbsp;Unused text lookup table<br />
0x07D34&nbsp;&nbsp;&nbsp;&nbsp;0x0FFC7&nbsp;&nbsp;&nbsp;&nbsp;Dialog text<br />
0x0FFC8&nbsp;&nbsp;&nbsp;&nbsp;0x10D13&nbsp;&nbsp;&nbsp;&nbsp;Dialog lookup table<br />
0x10D14&nbsp;&nbsp;&nbsp;&nbsp;0x10F67&nbsp;&nbsp;&nbsp;&nbsp;Level names text<br />
0x10F68&nbsp;&nbsp;&nbsp;&nbsp;0x10FD3&nbsp;&nbsp;&nbsp;&nbsp;Level names lookup table<br />
0x10FD4&nbsp;&nbsp;&nbsp;&nbsp;0x1192B&nbsp;&nbsp;&nbsp;&nbsp;Act names text<br />
0x1192C&nbsp;&nbsp;&nbsp;&nbsp;0x11ABF&nbsp;&nbsp;&nbsp;&nbsp;Act names lookup table<br />
0x11AC0&nbsp;&nbsp;&nbsp;&nbsp;0x120B7&nbsp;&nbsp;&nbsp;&nbsp;F3D display lists and vertices<br />
0x120B8&nbsp;&nbsp;&nbsp;&nbsp;0x172B7&nbsp;&nbsp;&nbsp;&nbsp;Shadow, transition, other textures <br />
0x172B8&nbsp;&nbsp;&nbsp;&nbsp;0x172CF&nbsp;&nbsp;&nbsp;&nbsp;Unused. Looks like lighting parameters<br />
0x172D0&nbsp;&nbsp;&nbsp;&nbsp;0x178BF&nbsp;&nbsp;&nbsp;&nbsp;Matrices, F3D display lists, vertices<br />
0x178C0&nbsp;&nbsp;&nbsp;&nbsp;0x18A0D&nbsp;&nbsp;&nbsp;&nbsp;Paintings mesh vertices, triangles</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Interesting Finds</span></span><br />
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.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>db "STAGE SELECT&#92;n"...</code></div></div>I dug into the (J) ROM and found the same messages at offset 0x87E4 and 0x883C.<br />
<a href="https://i.imgur.com/GhNIOG5.png" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.imgur.com/GhNIOG5.png" width="640" height="223" alt="[Image: GhNIOG5.png]" class="mycode_img" /></a><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>STAGE SELECT<br />
つづける?<br />
1 マウンテン<br />
2 ファイアーバブル<br />
3 スノースライダー<br />
4 ウォーターランド<br />
クッパ１ごう<br />
もどる<br />
<br />
PAUSE<br />
つづける?<br />
やめる?</code></div></div><br />
Translations (thanks to Rena, jrra, and Fendoroid):<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>STAGE SELECT<br />
Continue?<br />
1 Mountain<br />
2 Fire bubble<br />
3 Snow slide<br />
4 Water land<br />
Bowser number 1<br />
Back<br />
<br />
PAUSE<br />
Continue?<br />
Quit?</code></div></div><br />
Japanese dialog font table:<br />
<img src="https://i.imgur.com/EvquL3M.png" alt="[Image: EvquL3M.png]" class="mycode_img" /><br />
<br />
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.<br />
<img src="https://i.imgur.com/HaPGZ0M.png" alt="[Image: HaPGZ0M.png]" class="mycode_img" /><br />
<br />
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.<br />
<img src="https://i.imgur.com/bSPmWLT.png" alt="[Image: bSPmWLT.png]" class="mycode_img" /><br />
<br />
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.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>178C0-178C1: u16 vertex count (0x009D=157)<br />
178C2-17C6F: i16 x, y, z vertices (157*6 bytes)<br />
17C70-17C71: u16 triangle count (0x0108=264)<br />
17C72-182A1: u16 3x triangle indexes (264*6 bytes)<br />
182A2-18A0D: triangle indexes</code></div></div><img src="https://i.imgur.com/E06Ma4k.png" width="130" height="130" alt="[Image: E06Ma4k.png]" class="mycode_img" /><br />
<br />
As a test, I compressed the top and bottom triangles and expanded the middle ones as shown. Looks pretty bad in game:<br />
<img src="https://i.imgur.com/hdOUVlQ.png" width="130" height="130" alt="[Image: hdOUVlQ.png]" class="mycode_img" /><img src="https://i.imgur.com/pPCBWHD.gif" alt="[Image: pPCBWHD.gif]" class="mycode_img" /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://hack64.net/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8" target="_blank" title="">sm64.segment02.zip</a> (Size: 212.41 KB / Downloads: 1351)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SM64 ROM Manager (Info & Download)]]></title>
			<link>https://hack64.net/Thread-SM64-ROM-Manager-Info-Download</link>
			<pubDate>Fri, 13 Apr 2018 17:35:10 +0000</pubDate>
			<guid isPermaLink="false">https://hack64.net/Thread-SM64-ROM-Manager-Info-Download</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size">SM64 ROM Manager</span></div>
<div style="text-align: center;" class="mycode_align">Developed by Pilzinsel64</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Download:</span></span></span></div>
<div style="text-align: center;" class="mycode_align"><a href="https://pilzinsel64.de/sm64-rom-manager" target="_blank" rel="noopener" class="mycode_url">All Downloads available on my website</a></div>
<br />
<div style="text-align: left;" class="mycode_align">The SM64 ROM Manager is a brand new all-in-one tool for SM64 Hacking!</div>
<div style="text-align: left;" class="mycode_align">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!<br />
<br />
I've spent a lot my of time in developing this program, which is very limited.</div>
<br />
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.<br />
<br />
<div style="text-align: left;" class="mycode_align">Bug fixes and small improvements I will publish ASAP as small updates (third number of version).</div>
<div style="text-align: left;" class="mycode_align">New features comes with big feature updates (second number of version).</div>
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Here is a list of things that are already finished:</span></span></span></div><ul class="mycode_list">
</li>
<li><span style="font-size: x-large;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Level Manager</span></span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Create and remove Levels easily.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Add and remove areas in your levels easily <span style="font-size: small;" class="mycode_size">(with <span style="font-size: small;" class="mycode_size">up to <span style="font-weight: bold;" class="mycode_b">8 areas per level</span>).</span></span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Change the level ID easily (if the level is replacing level 1, you can easily change that to e.g. Level 2).</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Set up many level dedicated settings every time.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Set up many area dedicated settings every time.</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Select objects banks for your level <span style="font-weight: bold;" class="mycode_b">(Optional)</span>.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Import and Replace Area Modes</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Export Level Model & Collision</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Export Object Models</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">One-0xE-Bank-Per-Area</span></span></span><ul class="mycode_list"></li>
<li>This allows you to move the model size limit from per-level to per-area.</li></ul>
<ul class="mycode_list"></li>
<li>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.</li></ul>
<ul class="mycode_list"></li>
<li>Down in this post, I explained the system of it, so the developer can add support for Levels with this system.</li></ul>
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Very fast</span> Fast3D-Converter<br />
Supports over 40 different 3D File formats</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Very dynamically auto-generated levelscripts and Bank 0xE</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Water and fog boxes</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2D Camera per Area:</span> Select Camera Preset 0xE and you can switch between 3D and 2D Camera.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Scrolling Textures</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Choose Level BG: Custom, original Image or no background</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Choose Area BG: Use Level BG or use a clear color</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">...</span></span><br />
</li></ul>
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u"><span style="font-size: small;" class="mycode_size">Level Editor</span></span></span><span style="font-size: small;" class="mycode_size"> <span style="font-style: italic;" class="mycode_i">(included in the Level Manager)</span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Edit your custom levels using the area editor.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Open it from the Level Manager by double-clicking on the level or the area you want to open.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Add and remove objects to your current area (more than 300 objects per area, can be extendable)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Add and remove warps to your current area (more than enough for your needs)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Support for <a href="https://www.youtube.com/watch?v=dO2YQsQ4m5g" target="_blank" rel="noopener" class="mycode_url">More Object Patch by Kaze Emanuar</a>.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">History-Feauture (Undo/Redo)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">...</span><br />
</li></ul>
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Music Manager</span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Enable or disable "Extended Music" hack.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Rename sequences.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Change NInst set of a sequence.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Import Sequences (.m64)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Export Sequences (.m64, .mid)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Add unlimited number of new sequences (the game's maximum is 127)</span><br />
</li></ul>
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Model Converter</span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Import over 40 different model formats</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Select full colors instead of grayscale fror Shading</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Scale your model using decimal values</span><br />
</li></ul>
</li>
<li><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: small;" class="mycode_size">Text Manager</span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Edit all texts and parameters in dialogs table</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Edit all level names</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Edit all act names</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Edit Peach's dialogue and credits.</span></span><br />
</li></ul>
</li>
<li><span style="font-size: small;" class="mycode_size">Custom Model Importer</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Patches & Tweaks</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Path Editor</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Item Box Content Editor</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Star Position Editor</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">HUD Options</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">RGB Editor</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Coin properties</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Tweaks</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Global/Local Custom Model Bank</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Global Behavior Bank</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Custom Objects Manager</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Custom ASM-Code Bank (for custom Behaviors)</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">...</span></span><br />
</li></ul>
<hr class="mycode_hr" />
<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u"><span style="font-size: x-large;" class="mycode_size">FAQ and Information:</span></span></span></div>
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-style: italic;" class="mycode_i"><span style="font-weight: bold;" class="mycode_b">"Can I use my SM64 Editor made ROM with this tool?"</span></span><span style="font-size: small;" class="mycode_size"><br />
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.</span></span><br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">But there is an experimental way to import your levels to a new ROM.</span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Just open a new ROM and goto "Level Manager". Click the arrow on the left of "New Level" and click "Import Level ..".</span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">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.</span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="font-style: italic;" class="mycode_i">"What happens if I edit the levelscript, geolayout or displaylist?"</span></span><br />
<span style="font-size: small;" class="mycode_size">Nothing. The SM64 ROM Manager reads the edited script and keeps the changes.</span></span></span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Note: After you changed something on the ROM outside the ROM Manager, you need to reload your ROM .</span></span></span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">"Where are the Objects/Warps located"?</span></span></span><br />
If the <span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">One-0xE-Bank-System is enabled, then t</span></span></span></span></span></span></span></span>he 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!<br />
If the <span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">One-0xE-Bank-System is disabled, then they are located in Bank 0x19 directly in the levelscript.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The One-0xE-Bank System explained:</span></span></span></span><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><br />
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 <span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">One-0xE-Bank-System</span></span></span></span></span></span></span></span> is enabled. Otherwise, the 0xE Bank is per Level <span style="font-style: italic;" class="mycode_i">(as known from the SM64 Editor)</span>.<br />
</span></span></span></span></span></span></span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Please note: The <span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">One-0xE-Bank-System <span style="font-weight: bold;" class="mycode_b">is not supported</span> in SM64 Editor Levels (in converted ROMs).</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-size: small;" class="mycode_size"><span style="font-style: italic;" class="mycode_i"><span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">"My Textures are offset a bit. Is it a bug?"</span></span></span></span><br />
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.<br />
Read <a href="https://github.com/gonetz/GLideN64/issues/2097" target="_blank" rel="noopener" class="mycode_url">here</a> an issue on GLideN64 plugin repository.<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="font-style: italic;" class="mycode_i">Any more questions? Any Errors/Issues? Any ideas or suggestions?</span></span></span></span></span><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><br />
Let me know!</span></span></span></span></span></span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Ask questions</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Explain errors in detail</span><br />
</li></ul>
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Bug Reports & Feature Requests:</span></span></span></div>
<br />
<span style="font-size: small;" class="mycode_size">For Bug Reports please fill out <a href="https://pilzinsel64.com/pilzcloud/apps/forms/ofHSSw92E5sMBPqH" target="_blank" rel="noopener" class="mycode_url">this forular</a>.</span><br />
<span style="font-size: small;" class="mycode_size">For Feature Requests please fill out <a href="https://pilzinsel64.com/pilzcloud/apps/forms/TxpHfJw9iwD6E7aS" target="_blank" rel="noopener" class="mycode_url">this formular</a>.</span><br />
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Credits:</span></span></span></div>
<ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Big thanks to <span style="font-weight: bold;" class="mycode_b">Kaze Emanuar</span> for coding some useful ASM codes, answering my questions and motivating me.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Also a very big thanks to all who supported me and believed in my new tool, which motivated me a lot.</span><br />
</li></ul>
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Links:</span></span></span></span></div>
<br />
<div style="text-align: center;" class="mycode_align"><a href="https://pilzinsel64.com" target="_blank" rel="noopener" class="mycode_url">My Website</a></div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i"><span style="font-size: x-small;" class="mycode_size">On my website, you will find the changelog and download.</span></span></div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i"><span style="font-size: x-small;" class="mycode_size">Other tools that I have made for SM64 Hacking can be downloaded on my site.</span></span></div>
<div style="text-align: center;" class="mycode_align"><a href="https://www.youtube.com/channel/UCVGuVoCiRE01CqOW0YvkT7w" target="_blank" rel="noopener" class="mycode_url">YouTube</a></div>
<div style="text-align: center;" class="mycode_align"><span style="font-size: x-small;" class="mycode_size">Subscribe to my channel to get information about updates or new previews.</span></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size">SM64 ROM Manager</span></div>
<div style="text-align: center;" class="mycode_align">Developed by Pilzinsel64</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Download:</span></span></span></div>
<div style="text-align: center;" class="mycode_align"><a href="https://pilzinsel64.de/sm64-rom-manager" target="_blank" rel="noopener" class="mycode_url">All Downloads available on my website</a></div>
<br />
<div style="text-align: left;" class="mycode_align">The SM64 ROM Manager is a brand new all-in-one tool for SM64 Hacking!</div>
<div style="text-align: left;" class="mycode_align">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!<br />
<br />
I've spent a lot my of time in developing this program, which is very limited.</div>
<br />
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.<br />
<br />
<div style="text-align: left;" class="mycode_align">Bug fixes and small improvements I will publish ASAP as small updates (third number of version).</div>
<div style="text-align: left;" class="mycode_align">New features comes with big feature updates (second number of version).</div>
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Here is a list of things that are already finished:</span></span></span></div><ul class="mycode_list">
</li>
<li><span style="font-size: x-large;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Level Manager</span></span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Create and remove Levels easily.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Add and remove areas in your levels easily <span style="font-size: small;" class="mycode_size">(with <span style="font-size: small;" class="mycode_size">up to <span style="font-weight: bold;" class="mycode_b">8 areas per level</span>).</span></span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Change the level ID easily (if the level is replacing level 1, you can easily change that to e.g. Level 2).</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Set up many level dedicated settings every time.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Set up many area dedicated settings every time.</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Select objects banks for your level <span style="font-weight: bold;" class="mycode_b">(Optional)</span>.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Import and Replace Area Modes</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Export Level Model & Collision</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Export Object Models</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">One-0xE-Bank-Per-Area</span></span></span><ul class="mycode_list"></li>
<li>This allows you to move the model size limit from per-level to per-area.</li></ul>
<ul class="mycode_list"></li>
<li>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.</li></ul>
<ul class="mycode_list"></li>
<li>Down in this post, I explained the system of it, so the developer can add support for Levels with this system.</li></ul>
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Very fast</span> Fast3D-Converter<br />
Supports over 40 different 3D File formats</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Very dynamically auto-generated levelscripts and Bank 0xE</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Water and fog boxes</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2D Camera per Area:</span> Select Camera Preset 0xE and you can switch between 3D and 2D Camera.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Scrolling Textures</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Choose Level BG: Custom, original Image or no background</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Choose Area BG: Use Level BG or use a clear color</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">...</span></span><br />
</li></ul>
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u"><span style="font-size: small;" class="mycode_size">Level Editor</span></span></span><span style="font-size: small;" class="mycode_size"> <span style="font-style: italic;" class="mycode_i">(included in the Level Manager)</span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Edit your custom levels using the area editor.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Open it from the Level Manager by double-clicking on the level or the area you want to open.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Add and remove objects to your current area (more than 300 objects per area, can be extendable)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Add and remove warps to your current area (more than enough for your needs)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Support for <a href="https://www.youtube.com/watch?v=dO2YQsQ4m5g" target="_blank" rel="noopener" class="mycode_url">More Object Patch by Kaze Emanuar</a>.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">History-Feauture (Undo/Redo)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">...</span><br />
</li></ul>
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Music Manager</span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Enable or disable "Extended Music" hack.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Rename sequences.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Change NInst set of a sequence.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Import Sequences (.m64)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Export Sequences (.m64, .mid)</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Add unlimited number of new sequences (the game's maximum is 127)</span><br />
</li></ul>
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Model Converter</span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Import over 40 different model formats</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Select full colors instead of grayscale fror Shading</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Scale your model using decimal values</span><br />
</li></ul>
</li>
<li><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: small;" class="mycode_size">Text Manager</span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Edit all texts and parameters in dialogs table</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Edit all level names</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Edit all act names</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Edit Peach's dialogue and credits.</span></span><br />
</li></ul>
</li>
<li><span style="font-size: small;" class="mycode_size">Custom Model Importer</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Patches & Tweaks</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Path Editor</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Item Box Content Editor</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Star Position Editor</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">HUD Options</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">RGB Editor</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Coin properties</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Tweaks</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Global/Local Custom Model Bank</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Global Behavior Bank</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Custom Objects Manager</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Custom ASM-Code Bank (for custom Behaviors)</span></span><br />
</li>
<li><span style="font-size: small;" class="mycode_size"><span style="font-size: small;" class="mycode_size">...</span></span><br />
</li></ul>
<hr class="mycode_hr" />
<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u"><span style="font-size: x-large;" class="mycode_size">FAQ and Information:</span></span></span></div>
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-style: italic;" class="mycode_i"><span style="font-weight: bold;" class="mycode_b">"Can I use my SM64 Editor made ROM with this tool?"</span></span><span style="font-size: small;" class="mycode_size"><br />
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.</span></span><br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">But there is an experimental way to import your levels to a new ROM.</span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Just open a new ROM and goto "Level Manager". Click the arrow on the left of "New Level" and click "Import Level ..".</span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">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.</span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="font-style: italic;" class="mycode_i">"What happens if I edit the levelscript, geolayout or displaylist?"</span></span><br />
<span style="font-size: small;" class="mycode_size">Nothing. The SM64 ROM Manager reads the edited script and keeps the changes.</span></span></span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">Note: After you changed something on the ROM outside the ROM Manager, you need to reload your ROM .</span></span></span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">"Where are the Objects/Warps located"?</span></span></span><br />
If the <span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">One-0xE-Bank-System is enabled, then t</span></span></span></span></span></span></span></span>he 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!<br />
If the <span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">One-0xE-Bank-System is disabled, then they are located in Bank 0x19 directly in the levelscript.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The One-0xE-Bank System explained:</span></span></span></span><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><br />
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 <span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">One-0xE-Bank-System</span></span></span></span></span></span></span></span> is enabled. Otherwise, the 0xE Bank is per Level <span style="font-style: italic;" class="mycode_i">(as known from the SM64 Editor)</span>.<br />
</span></span></span></span></span></span></span></span><br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Please note: The <span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size">One-0xE-Bank-System <span style="font-weight: bold;" class="mycode_b">is not supported</span> in SM64 Editor Levels (in converted ROMs).</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-size: small;" class="mycode_size"><span style="font-style: italic;" class="mycode_i"><span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">"My Textures are offset a bit. Is it a bug?"</span></span></span></span><br />
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.<br />
Read <a href="https://github.com/gonetz/GLideN64/issues/2097" target="_blank" rel="noopener" class="mycode_url">here</a> an issue on GLideN64 plugin repository.<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="font-style: italic;" class="mycode_i">Any more questions? Any Errors/Issues? Any ideas or suggestions?</span></span></span></span></span><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><span style="font-size: medium;" class="mycode_size"><span style="font-size: small;" class="mycode_size"><br />
Let me know!</span></span></span></span></span></span></span></span><ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Ask questions</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Explain errors in detail</span><br />
</li></ul>
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Bug Reports & Feature Requests:</span></span></span></div>
<br />
<span style="font-size: small;" class="mycode_size">For Bug Reports please fill out <a href="https://pilzinsel64.com/pilzcloud/apps/forms/ofHSSw92E5sMBPqH" target="_blank" rel="noopener" class="mycode_url">this forular</a>.</span><br />
<span style="font-size: small;" class="mycode_size">For Feature Requests please fill out <a href="https://pilzinsel64.com/pilzcloud/apps/forms/TxpHfJw9iwD6E7aS" target="_blank" rel="noopener" class="mycode_url">this formular</a>.</span><br />
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Credits:</span></span></span></div>
<ul class="mycode_list">
</li>
<li><span style="font-size: small;" class="mycode_size">Big thanks to <span style="font-weight: bold;" class="mycode_b">Kaze Emanuar</span> for coding some useful ASM codes, answering my questions and motivating me.</span><br />
</li>
<li><span style="font-size: small;" class="mycode_size">Also a very big thanks to all who supported me and believed in my new tool, which motivated me a lot.</span><br />
</li></ul>
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Links:</span></span></span></span></div>
<br />
<div style="text-align: center;" class="mycode_align"><a href="https://pilzinsel64.com" target="_blank" rel="noopener" class="mycode_url">My Website</a></div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i"><span style="font-size: x-small;" class="mycode_size">On my website, you will find the changelog and download.</span></span></div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i"><span style="font-size: x-small;" class="mycode_size">Other tools that I have made for SM64 Hacking can be downloaded on my site.</span></span></div>
<div style="text-align: center;" class="mycode_align"><a href="https://www.youtube.com/channel/UCVGuVoCiRE01CqOW0YvkT7w" target="_blank" rel="noopener" class="mycode_url">YouTube</a></div>
<div style="text-align: center;" class="mycode_align"><span style="font-size: x-small;" class="mycode_size">Subscribe to my channel to get information about updates or new previews.</span></div>]]></content:encoded>
		</item>
	</channel>
</rss>