Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Majora Mask 3D Project Restoration 3DS: Difference between revisions

From GameBrew
(Created page with "{{Infobox 3DS homebrew | title = Majora Mask 3D Project Restoration | image = https://dlhb.gamebrew.org/3dshomebrew/majoras-mask.jpg|250px | type = Game Hacks | version = v1.5...")
 
No edit summary
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox 3DS homebrew
{{Infobox 3DS Homebrews
| title = Majora Mask 3D Project Restoration
|title=Majora Mask 3D Project Restoration
| image = https://dlhb.gamebrew.org/3dshomebrew/majoras-mask.jpg|250px
|image=Projectrestoration3ds2.png
| type = Game Hacks
|description=A Majoras Mask 3D patch that restores some mechanics from the original Majoras Mask.
| version = v1.5.5
|author=leoetlino
| licence = Mixed
|lastupdated=2022/01/02
| author = leoetlino
|type=Game Hacks
| website = https://github.com/leoetlino/project-restoration
|version=1.5.9
| download = https://dlhb.gamebrew.org/3dshomebrew/mm3d_project_restoration_v1.5.5.rar
|license=Mixed
| source = https://dlhb.gamebrew.org/3dshomebrew/mm3d_project_restoration_v1.5.5.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds.7z?k33p0fil35 1.5.9 & HD HUD
|website=https://restoration.zora.re
|source=https://github.com/leoetlino/project-restoration
}}
}}
<youtube>fJoSh9nrdYM</youtube>
Project Restoration is a patch for Majora's Mask 3D that restores some mechanics from the original game and adds quality-of-life improvements and fixes to make it more enjoyable.


# Project Restoration
==Features==
* Fixed Zora Link.
* Fixed Deku Link.
* Transformation masks usable with the D-Pad.
* More fluid Bomber's Notebook.
* Song of Time optional saving and tweaks.
* Improved bosses and Twinmold.
* Restored Ice Arrows.
* Button tweaks for controller players.
* Many other improvements.


A *Majora's Mask 3D* patch that restores some mechanics from the original *Majora's Mask*
==Installation==
and fixes some issues to make the game even more enjoyable.
The mod is compatible with all versions of the game (except the Korean release) and with existing saves.


**Note**: Some features make use of the new ZL/ZR buttons,
===Standard===
so playing on a New 3DS/2DS or Citra is recommended for a better experience.
To set up the patch, download it then open the .7z file with a tool like [https://www.7-zip.org 7-Zip]. Double-click on the folder that matches your game version to open it, but do not extract it yet.
* v110 - If you have MM3D 1.1 (game card with 1.1 preinstalled).
* v100 - For MM3D 1.0 (non-updated eShop or non-updated 1.0 gamecard).
* v100 - For MM3D 1.1 (updated eShop or updated 1.0 gamecard). Try v101 only if v100 doesn't work.
* The Korean version of the game is not supported. You will need to play on another version.


## Changes
'''For 3DS users:'''
* This guide assumes that you have a homebrewed 3DS with [[Luma3DS]] v10.1+. If this is not the case, follow [https://3ds.hacks.guide this guide] for help.
* Open the 3ds folder in the 7-Zip archive.
* Create the /luma/titles/TITLE_ID/ directory on your SD card (if it doesn't already exist). Replace TITLE_ID with:
** EUR - 0004000000125600
** USA - 0004000000125500
** JPN - 00040000000D6E00
* Copy code.bps and exheader.bin to that directory.
* Enable game patching in Luma's menu.


* **Zora Fast Swim**: Swim gracefully as a Zora without having to use magic
'''For Citra users:'''
* Fast swim is now the default way of swimming and no longer requires magic.
* Open the citra folder in the 7-Zip archive.
* Slow swim is still available. Press Up/Down on the D-Pad to *toggle* between fast swim and slow swim. You can also *hold* ZL to slow swim.
* Right click on the game in the game list and select Open Mods Location.
* Copy code.bps and exheader.bin to that directory.


* **Fixed Deku Hopping**: Hop on water as fast as in MM
===HD HUD===
* Deku Link's walk acceleration value was nerfed in MM3D (2.0 -> 0.6). As a possibly unintended consequence, this made hopping on lilypads very slow compared to the original even if you spin at the optimal time.
The HD HUD project is made for Citra users, it aims to redesign the game's interface and heads-up display to be more suitable for HD resolutions. You will find the following in the download:
* HD HUD v1.5.9-5 - From the [https://github.com/leoetlino/project-restoration/releases/download/v1.5.9/mm3d_project_restoration_plus_hd_hud_v1.5.9-5-g8bb2a7b.7z repository page].
* Layout archive - From [https://restoration.zora.re/hd-hud project restoration site].
* Layout archive (for Xbox users) - From [https://restoration.zora.re/hd-hud project restoration site].
* Texture - From [https://restoration.zora.re/hd-hud project restoration site].
* HD texture pack - From [https://restoration.zora.re/hd-hud project restoration site].


* **Fast Transform**: Transform without having to equip items for a more streamlined gameplay
'''Step 1:'''
* Three of the four D-Pad buttons are now used to fast transform (*Left*: Zora, *Up*: Goron, *Down*: Deku)
* Open HD HUD v1.5.9-5, double-click on the folder that matches your game version to open it, but do not extract it yet:
* This frees up as many as 3 buttons!
** v110 - If you have MM3D 1.1 (game card with 1.1 preinstalled).
** v100 - For MM3D 1.0 (non-updated eShop or non-updated 1.0 gamecard).
** v100 - For MM3D 1.1 (updated eShop or updated 1.0 gamecard). Try v101 only if v100 doesn't work.
* Then right click on the game in the game list and select Open Mods Location.
* Open the citra folder in the archive, then copy code.bps and exheader.bin to the Mod Location folder. Overwrite any existing file, if needed.


* **More Fluid Bomber's Notebook**: Less annoyingly slow popups and transitions
'''Step 2:'''
* The Bomber's Notebook screen now updates instantly when it's opened instead of waiting for 1.8 seconds just before starting the "new" text animation (!), followed by another 1.18s pause and another 1.56s delay until the main text box appears (!!).
* Extract either one of the layout archive in the Mods Location. Copy the romfs folder itself to the Mods Location.
* If you've followed the instructions correctly, you should see code.bps, exheader.bin and romfs (folder) in the Mods Location.


* **Song of Time Saving**: The Song of Time now optionally saves the game. Players will be greeted with the iconic *Dawn of the First Day* screen after loading a Song of Time save, just like in the original game.
'''Step 3:'''
* Right click on the game in the Citra game list and select Open Custom Texture Location. Put the texture and there.
* Enable custom textures in Citra (Emulation > Configure... > Graphics > Use Custom Textures).
* Optional, but highly recommended to also extract the HD texture pack in the Custom Texture Location. The textures come from the [https://github.com/DeathWrench/MM3DHD MM3DHD project] by DeathWrench and currently cover almost all of the game menus and Link's forms.


* **More Effective Inverted Song of Time**: Slow time to 1/3 speed (as in the original)
==User guide==
* Makes some glitchless challenge runs possible again.
If everything was set up correctly, a sound effect will be played right before the title screen, before the spinning mask appears.  
* Gives the player more time in a three-day cycle.


* **Improved Bosses**:
You can also tell if the patch was applied by checking whether the Start button opens the Bomber's Notebook (if you have it) and the Select button opens the Items menu.
* Removes the eyeballs from Odolwa, Goht and Gyorg.
* Balances Odolwa's AI and attacks to improve gameplay.
* Fixes a game bug that caused Odolwa to be invulnerable to attacks and block excessively.
* **Improved Twinmold**: Less tedious, less confusing
* Reduced the number of cycles to make it less repetitive.
* Red Twinmold no longer resets its hit counter every time it burrows back into the sand. As a result, the battle is much less confusing for new players.


* **Restored Ice Arrows**: Ice arrows that work in more locations
In order to use the new ZL/ZR buttons, the Circle Pad Pro must be enabled in MM3D's options, even if you are playing on a New 3DS.
* Ice arrows now work everywhere in Great Bay Temple, not just in Gyorg's room. This gives the player the freedom to experiment with ice arrows. Ice arrows also work in several other areas, just like in the original game.
* Removed the sparkling water effects as they were an insult to the player's intelligence.


* **Fast Arrow Switching**: Press ZL to quickly switch between arrow types (Normal/Fire/Ice/Light).
Patches are provided for all versions of the game. However, all versions other than v1.0 (v100) will be temporarily downgraded to ensure everything works fine.


* **Dedicated Physical Buttons** for more convenient access to items and menus
If you want faster aiming, copy code_faster_aim.bps instead of copying code.bps and rename the patch to code.bps.
* Open the *Items* menu by pressing START.
* The *Bomber's Notebook* is now mapped to SELECT.
* *Ocarina of Time*: ZR+A
* *Pictograph Box*: ZL
* *I*: ZR+X
* *II*: ZR+Y
* It is now possible to assign items to I and II with a single press.
* The Gears and Map menu can be opened with ZR+Start / ZR+Select respectively.
* For the ocarina screen, it is possible to switch between the instrument screen and the song list with Start/Select.
* Those are obviously optional and are primarily meant for Citra users.


* Other minor adjustments to improve the player's experience:
===Changes overview===
* Adjusted the speed of Stone Tower blocks for a more pleasant climbing experience.
* Fixed Zora Link.
* The moving platforms in Deku Palace and Woodfall Temple now actually always move.
** Swim gracefully like a Zora without having to use magic.
* The Bombers will no longer distract the player from a particular cutscene.
** Fast swim is the default way of swimming and no longer requires magic.
* The new Sheikah hint stone will also no longer distract the player during an important cutscene in the Clock Tower.
** Slow swim is still available. Press Up/Down on the D-Pad or ZL to toggle between fast swim and slow swim. You can also hold ZR to swim slowly.
* Captain Keeta now walks as fast as in the original game, which restores the challenge of the chasing mini-game.
* Link no longer plays the Elegy of Emptiness a second time after it's been played once. This makes Stone Tower a lot less tedious, considering it needs to be played 10+ times to beat Stone Tower Temple normally.
* For similar reasons, the Song of Soaring is only repeated once during a play session.
* Owl statues can now be activated by striking them with a sword.
* It is possible to control Goron Link rolling just like in the Nintendo 64 version: hold A and move to roll, release A to stop. The classic control scheme co-exists with the new one.
* Free camera mode can now be used more often, notably when targeting, talking or playing the ocarina.
* Link can now leave the Swordman's School during training if necessary to avoid wasting time.
* Fixed a game bug that caused the "heart container get" sound not to play after getting four heart pieces.
* Fixed a game bug that prevented the player from leaving free camera mode by targeting when Zora swimming or Goron rolling.
* Fixed a possible softlock during the Twinmold boss intro.


## Setup
* Fixed Deku Link (water hopping).
** Deku Link's acceleration reduction is reverted to fix the water hopping mechanic.
** As a side effect of the acceleration change, hopping was very slow in the unpatched game.


*Project Restoration* works on both the 3DS console (both eShop and game card) and on the Citra emulator.
* Fast Transform.
** Transform without having to equip items for a more streamlined gameplay.
** Use the D-Pad to transform (Left: Zora, Up: Goron, Down: Deku, ZR+Up: Fierce Deity)
** This frees up as many as 4 buttons.


First, **determine which version of the game you have**. Because *Project Restoration* works by patching game code and injecting new code, and because Grezzo has released three different versions of the game executable, it is essential that you figure out which version you have in order to use the appropriate Project Restoration patch for your situation.
* More Fluid Bomber's Notebook.
** Quicker popups and transitions.
** The Bomber's Notebook screen updates instantly instead of taking 5 seconds to pop up every time you get a quest update. It all adds up.


* If you have MM3D 1.0 (eShop or game card), you likely have v100 (FYI: v100 is the real, internal version number).
* Optional Song of Time Saving.
* If you have MM3D 1.1 on a game card and it came with 1.1 preinstalled, you likely have v110.
** For the classic Majora's Mask experience, you can optionally save the game after playing the Song of Time.  
* If you have MM3D 1.1 (eShop or 1.0 game card), then you likely have v101. However for the rest of the instructions you should first try the v100 patch. Only try v101 if v100 doesn't work.
** After loading a classic save, players will be greeted with the iconic Dawn of the First Day screen just like in the original game.


Using the incorrect patch will cause the console or Citra to abort and crash. If this happens, try the other two patches (after removing any file you copied to your SD/Citra folders while following this guide).
* Improved Bosses.
** Odolwa, Goht and Gyorg's giant eyeballs are gone. They didn't add much.
** Odolwa's AI and attacks are rebalanced to improve gameplay.
** A bug that caused Odolwa to be invulnerable to attacks and block excessively was fixed.
** This patch reduces the number of cycles to make it less repetitive.
** Red Twinmold no longer resets its hit counter every time it burrows back into the sand. This makes the boss battle much less confusing.


Now, download [the latest release of *Project Restoration*](https://github.com/leoetlino/project-restoration/releases) (**not** source code!) and open the 7z archive. Open the v100/v101/v110 folder in the archive and leave it open for the rest of the instructions.
* Restored Ice Arrows.
** Ice arrows work everywhere in Great Bay Temple, not just in Gyorg's room.
** This gives the player more freedom to experiment with ice arrows. They also work in several other areas outside the temple, just like in the original game.
** Removes the sparkling water effects as they are an insult to the player's intelligence.


Second, **determine your game's title ID**. Because the 3DS is a region-locked console, several versions of the game were released for different regions. Each of them has its own title ID.
* More Potent Inverted Song of Time (slow time to 1/3 speed just like the original).
** In Majora's Mask 3D, the ISoT only slows time to 1/2 speed rather than 1/3 - likely an oversight.
** This patch fixes the regression, making some glitchless challenge runs possible again and giving the player more time in a three-day cycle.


* For the European release: 0004000000125600
* Button Tweaks for Controller Players with optional bindings.
* For the American release: 0004000000125500
** (ZL) Switch arrows, Pictograph Box.
* For the Japanese release: 00040000000D6E00
** (ZR+A or D-Pad Right) Ocarina of Time.
** (ZR+X/Y) I/II item. Items can be assigned to I and II too.
** (Select) Items.
** (Start) Bomber's Notebook
** (ZR+Start) Gears.
** (ZR+Select) Map.
** (Start/Select) Switch between the instrument screen and the song list.


Keep both the version number and the title ID in mind, then follow the instructions for your platform (console or Citra) below.
* Streamlined gameplay.
** Link no longer plays the Elegy of Emptiness again after it's been played once. This makes Stone Tower less tedious.
** The Song of Soaring is only repeated once during a play session for similar reasons.
** The speed of Stone Tower blocks has been adjusted for a more pleasant climbing experience.
** Free camera mode can be used more often, notably when targeting, talking or playing the ocarina.


Please note that:
* Less handholding.
** The moving platforms in Deku Palace and Woodfall Temple now actually always move.
** Captain Keeta now walks as fast as in the original game, which restores the challenge of the chasing mini-game.
** Link can now leave the Swordman's School during training if necessary to avoid wasting time.
** The Bombers will no longer distract the player from a particular cutscene just to ensure you get their hints.
** The new Sheikah hint stone will also no longer distract the player during an important cutscene in the Clock Tower.


* If the patch is applied successfully, **a sound effect will be played** right before the title screen, even before the spinning mask appears.
* For the classic experience.
* In order to use the new ZL/ZR buttons, **the Circle Pad Pro must be enabled** in MM3D's options, even if you are playing on a New 3DS.
** Owl statues can be activated by striking them with a sword.
* This project only directly supports v100. All other versions of MM3D will be temporarily and automatically downgraded to 1.0 (v100) to ensure the code patches work.
**  It is possible to control Goron Link rolling just like in the Nintendo 64 version: hold A and move to roll, release A to stop.  
** The classic control scheme co-exists with the new one.


### Console
* Bug fixes.
** Fixes a game bug that caused the "heart container get" sound not to play after getting four heart pieces.
** Fixes a game bug that prevented the player from leaving free camera mode by targeting when Zora swimming or Goron rolling.
** Fixes a possible softlock during the Twinmold boss intro.
** Fixes a possible softlock when fighting Gyorg during phase 1.
** Fixes 2 other possible softlocks when fighting Gyorg during phase 2.


* If you are a first time Luma3DS user, follow [this guide](https://3ds.hacks.guide/).
===Troubleshooting===
* Download [my version of Luma3DS](https://github.com/leoetlino/Luma3DS/releases)\* and put the `boot.firm` file at the root of your SD card.
My 3DS crashes:
* [**Only** if you have ever copied boot.firm to your NAND] Also copy the new boot.firm to your NAND using a tool like godmode9.
* Delete any file you copied while following this guide and follow the instructions carefully again.
* [Enable game patching in Luma's menu](https://github.com/AuroraWright/Luma3DS/wiki/Optional-features).
* In particular, make sure that you have renamed exheader_legacy.bin to exheader.bin.
* Create the /luma/titles/`TITLE_ID`/ directory/folder on your SD card (if it doesn't already exist). Obviously, please replace `TITLE_ID` with the actual title ID.
* If you are absolutely sure you have followed the instructions correctly, try all three patch variants (v100/v101/v110) until one of them works.
* Copy **code.bps** to that directory.
* (If you want faster aiming, copy **code_faster_aim.bps** instead and rename the patch to code.bps.)
* Copy **exheader_legacy.bin** to that directory and rename the file to **exheader.bin**.


The relevant files on your SD card should look like this at the end:
Citra crashes:
* Delete any file you copied while following this guide and follow the instructions carefully again.
* If you are absolutely sure you have followed the instructions correctly, try all three patch variants (v100/v101/v110) until one of them works.
* You may also need to set the console region in Citra's settings manually.


* SD card root
The patch isn't applied:
* boot.firm
* Make sure that you put the patch files (code.bps and exheader.bin) into the right folder. Ensure that you are using the correct title ID for your game.
* [Folder] luma
* If you are playing on a 3DS console, check whether game patching is enabled.
* [Folder] titles
* [Folder] (the Title ID you determined earlier)
* code.bps
* exheader.bin


\* *Why is a fork necessary?* As of Jan 2020, the latest Luma3DS has a critical bug in the loader code and missing support for BPS patching. Both issues are fixed in the fork, and a fix for the former has been upstreamed. A [pull request](https://github.com/AuroraWright/Luma3DS/pull/1349) for BPS patch support has been submitted but not yet merged.
On Citra, after I press ZR, the button stays pressed permanently:
* That is caused by an incorrect controller mapping in Citra. It is not a Project Restoration issue.
* When mapping the controller, hold the trigger on your controller before attempting to map the button in Citra.


### Citra
===FAQ===
'''Q. Is such a patch available for Ocarina of Time 3D?'''


Note: Canary 1529+ is required until my [pull request](https://github.com/citra-emu/citra/pull/5036) for BPS patch support is merged.
As of October 2021, no. Author has neither the time nor the interest to work on a QoL patch for OoT3D. Not that OoT3D really needs to be patched anyway.  


* Open the folder containing your game file (3ds/cia/app).
'''Q. Hero mode?'''
* Assuming your game file is called `GAME_FILE.extension` (full name including the file extension), create a directory/folder with the path **`GAME_FILE.extension`.exefsdir** (if it doesn't already exist).
* Copy **code.bps** to that directory.
* If you want faster aiming, copy **code_faster_aim.bps** instead and rename the patch to code.bps.
* Copy **exheader.bin** to the folder containing your game file, then rename it to **`GAME_FILE.extension`.exheader**. It is **very important that you keep your game ROM's file extension, and also add '.exheader' at the end**!


**Example**: If your game is at /home/leo/games/3ds/zelda_mm.3ds, then:
Hero mode is somewhat out of the scope of this project.


* create /home/leo/games/3ds/zelda_mm.3ds.exefsdir
'''Q. Restored lighting? The bright colours ruin the atmosphere!'''
* copy **code.bps** to /home/leo/games/3ds/zelda_mm.3ds.exefsdir/**code.bps**
* copy **exheader.bin** and place the file in /home/leo/games/3ds/, calling it **zelda_mm.3ds.exheader** (note the double extension!)


**IMPORTANT: Read the instructions carefully again. It is all too common for people to make a mistake with file names.**
Project Restoration attempts to fix what regressed in MM3D by restoring original mechanics and adding QoL improvements.


* Example: If your game file is called _00000000.app_, the exefsdir folder and the exheader must be called _00000000.app.exefsdir_ and _00000000.app.exheader_ respectively.
Even colourful games can be dark, and in Majora's Mask the unique atmosphere mostly comes from the stunning storytelling and narrative.
* Example: If your game file is called _zelda_mm3d.cia_, the exefsdir folder and the exheader must be called _zelda_mm3d.cia.exefsdir_ and _zelda_mm3d.cia.exheader_ respectively.


The directory which contains your game file should look like this at the end:
'''Q. How do I update Project Restoration?'''


* [Folder] Containing directory
Simply follow the setup instructions again.
* yourgamefilenamehere.3ds
* yourgamefilenamehere.3ds.exheader
* [Folder] yourgamefilenamehere.3ds.exefsdir
* code.bps


## Rationale
For 3DS console users, you do not need to set up Luma3DS from scratch again.


### Zora swim
'''Q. How was this made?'''
In MM3D, swimming is a bit slower. It is possible to fast swim; however it now requires and consumes magic at a fast rate. Chateau Romani isn't a satisfactory workaround: it only becomes available after a bunch of quests and requires wasting most of the First Day, and even then it's still impossible to get rid of the constant buzzing sound that comes from using the barrier.


Besides, why would Zora Link need magic to swim like a Zora?
By reverse engineering the game to understand how it works (at least partially).


### Inverted Song of Time potency
For more details, you're encouraged to look at the source code.


The ISoT nerf might have been another unintended change.
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds3.png
https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds6.png


The in-game time is updated by adding a speed value and another value I'll call the extra speed to the time variable every frame. In MM, the time speed is usually 3 (units/frame) and the ISoT sets the extra speed to -2, resulting in a +1 effective speed (which means 1/3 speed). Because the time is updated every frame, in MM3D, the developers reduced the speed to 2 to compensate for the increased framerate. The ISoT was updated to set the speed to -1 instead of -2. However, that only gives players 1/2 speed.
https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds5.png
https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds4.png


I couldn't see any good reason to keep this change, so I reverted it.
https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds10.png
https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds8.png


### Twinmold
https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds9.png
https://dlhb.gamebrew.org/3dshomebrews/projectrestoration3ds7.png


The new Twinmold battle drags on for way too long. Spinning the main stick makes it faster, but that's not an obvious mechanic. Even with that trick, killing Red Twinmold still takes 3 long identical cycles!
==Media==
'''Project Restoration Mod Review - Majora's Mask 3D''' ([https://www.youtube.com/watch?v=_pbs7OTrnbo Fonald 3D]) <br>
<youtube>_pbs7OTrnbo</youtube>


Another issue is the addition of a hidden hit counter. 10 hits are required to stun Red or Blue Twinmold. This would have been acceptable if it weren't for the fact that Red Twinmold regularly burrows back into sand during phase 2
==Compatibility==
and the hit counter is silently reset every time that happens.
Project Restoration works with a real 3DS or Citra.  


This makes for a confusing experience the first time the player fights Twinmold,
Note that some features make use of the new ZL/ZR buttons, so playing on a New 3DS/2DS or Citra is recommended for a better experience.
as there is nothing in the game that indicates that the hit counter resets every time,
and it's still frustrating on subsequent playthroughs.


==Changelog==
'''v1.5.9 2022/01/02'''
* Several tweaks to the Elegy of Emptiness and Stone Tower were made to improve the user experience.
** The statue is now spawned faster and it is now impossible to step off floor switches before the statue has materialised.
** Stone Tower blocks now move at a less dizzying speed.
* ISG (Infinite Sword Glitch) was reimplemented.
* The console sound setting is now honoured; the game no longer forces surround mode.
* Fixed a softlock that could occur if an owl statue is hit immediately after playing the ocarina (#167).
* Fixed Link being able to transform into Goron Link while carrying Mystery or Moldy Milk.
* Fixed a rare, random crash that could occur if ZR was held during transitions.
* Fixed quick arrow swapping quirks when L targeting.


## About the project
'''v1.5.8 2020/04/25'''
* Fixed a possible softlock in the Bomber's Notebook.


*Project Restoration* was born out of frustration with some of the changes in the remaster (regarding Zora Link in particular), with the realisation that I might be able to have my cake and eat it too, and get the best out of the original and MM3D's massively improved graphics and small quality of life improvements.
'''v1.5.7 2020/04/25'''
* Fixed a softlock when fighting Gyorg during phase 2 (Thanks to Zelda Informer for the bug report).
* Fixed yet another softlock when fighting Gyorg during phase 2 (Yes, Grezzo's Gyorg is buggy).


I personally consider the project to be pretty much complete. The game is **playable with no game-breaking issues**, has been 100% completed several times by myself and others (now that the project is more than two months old!) and I have fixed everything I have most wanted to fix, so I probably will not be working on it very actively anymore. Future versions of *Project Restoration* will most likely only be bug fix releases, which may occasionally bring small new improvements.
'''v1.5.6 2020/04/05'''
* For consistency reasons, Red Twinmold now always requires 2 damage cycles.
* Fixed a possible softlock when fighting Gyorg during phase 1.
* Fixed a very rare crash when fighting Gyorg during phase 2.
* The Elegy of Emptiness statue spawn mini-cutscene is now automatically skipped to further streamline gameplay in Stone Tower.
* Re-added [https://www.zeldaspeedruns.com/mm3d/tech/mask-storage Mask Storage]. It had been accidentally removed when fast transform was added. Fast transform can now also be stored. Also re-added [https://www.zeldaspeedruns.com/mm/tech/ocarina-dive Ocarina Dive] for testing purposes.
* Controls:
** The Items screen is now opened with SELECT and the Bomber's Notebook with START for consistency with existing dialogue messages in the game.
** The Ocarina can now be used by pressing D-Pad Right (when Tatl is not trying to get the player's attention). The current shortcut (ZR+A) and the on-screen button still work.
** In Zora form, it is now more convenient to switch between fast swim and slow swim: use the D-Pad Up/Down or ZL (new). Hold ZR to slow down (this was previously done with ZL).
** Additional button controls for the Bomber's Notebook:
*** Switch between the Schedule (timeline) view and the Events view with Y.
*** Set or delete an alarm with X.
*** Open the map with SELECT.


### Project structure
[https://github.com/leoetlino/project-restoration/releases Release notes.]


* `source/` *Project Restoration*'s source code.
==External links==
* `build/`: build outputs.
* Official website - https://restoration.zora.re/#troubleshooting
* `common/`: small utilities.
* GitHub - https://github.com/leoetlino/project-restoration
* `game/`: implementation for the known parts of *Majora's Mask 3D*. Contains headers and some reimplementation of game functions.
* GitHub - https://github.com/leoetlino/project-restoration-site
* `rst/`: *Project Restoration* code.
* `v100/`, `v101/` and `v110/`: Version-specific data.
* `hooks.hks`: configuration for patches and hooks (for Magikoopa).
* `Version.cmake`: defines for *Project Restoration* code.
* `loader/`: Code loader (from [Magikoopa](https://github.com/RicBent/Magikoopa)).
 
Sometimes you will find *Project Restoration* extensions and new code under `source/game`. Those extensions will always be clearly labelled as such.
 
### Build instructions
 
* Put the original code.bin and exheader.bin in v100, v101 and v110.
* Run make_release.sh. You need git and Magikoopa in your PATH. **Currently, a [fork](https://github.com/leoetlino/Magikoopa) is required**.
* Generated code patches (code.bps) and patched exheaders can be found in `release/`.
 
PRs and help are welcome!

Latest revision as of 13:53, 6 July 2024

Majora Mask 3D Project Restoration
Projectrestoration3ds2.png
General
Authorleoetlino
TypeGame Hacks
Version1.5.9
LicenseMixed
Last Updated2022/01/02
Links
1.5.9 & HD HUD Download
Website
Source

Project Restoration is a patch for Majora's Mask 3D that restores some mechanics from the original game and adds quality-of-life improvements and fixes to make it more enjoyable.

Features

  • Fixed Zora Link.
  • Fixed Deku Link.
  • Transformation masks usable with the D-Pad.
  • More fluid Bomber's Notebook.
  • Song of Time optional saving and tweaks.
  • Improved bosses and Twinmold.
  • Restored Ice Arrows.
  • Button tweaks for controller players.
  • Many other improvements.

Installation

The mod is compatible with all versions of the game (except the Korean release) and with existing saves.

Standard

To set up the patch, download it then open the .7z file with a tool like 7-Zip. Double-click on the folder that matches your game version to open it, but do not extract it yet.

  • v110 - If you have MM3D 1.1 (game card with 1.1 preinstalled).
  • v100 - For MM3D 1.0 (non-updated eShop or non-updated 1.0 gamecard).
  • v100 - For MM3D 1.1 (updated eShop or updated 1.0 gamecard). Try v101 only if v100 doesn't work.
  • The Korean version of the game is not supported. You will need to play on another version.

For 3DS users:

  • This guide assumes that you have a homebrewed 3DS with Luma3DS v10.1+. If this is not the case, follow this guide for help.
  • Open the 3ds folder in the 7-Zip archive.
  • Create the /luma/titles/TITLE_ID/ directory on your SD card (if it doesn't already exist). Replace TITLE_ID with:
    • EUR - 0004000000125600
    • USA - 0004000000125500
    • JPN - 00040000000D6E00
  • Copy code.bps and exheader.bin to that directory.
  • Enable game patching in Luma's menu.

For Citra users:

  • Open the citra folder in the 7-Zip archive.
  • Right click on the game in the game list and select Open Mods Location.
  • Copy code.bps and exheader.bin to that directory.

HD HUD

The HD HUD project is made for Citra users, it aims to redesign the game's interface and heads-up display to be more suitable for HD resolutions. You will find the following in the download:

Step 1:

  • Open HD HUD v1.5.9-5, double-click on the folder that matches your game version to open it, but do not extract it yet:
    • v110 - If you have MM3D 1.1 (game card with 1.1 preinstalled).
    • v100 - For MM3D 1.0 (non-updated eShop or non-updated 1.0 gamecard).
    • v100 - For MM3D 1.1 (updated eShop or updated 1.0 gamecard). Try v101 only if v100 doesn't work.
  • Then right click on the game in the game list and select Open Mods Location.
  • Open the citra folder in the archive, then copy code.bps and exheader.bin to the Mod Location folder. Overwrite any existing file, if needed.

Step 2:

  • Extract either one of the layout archive in the Mods Location. Copy the romfs folder itself to the Mods Location.
  • If you've followed the instructions correctly, you should see code.bps, exheader.bin and romfs (folder) in the Mods Location.

Step 3:

  • Right click on the game in the Citra game list and select Open Custom Texture Location. Put the texture and there.
  • Enable custom textures in Citra (Emulation > Configure... > Graphics > Use Custom Textures).
  • Optional, but highly recommended to also extract the HD texture pack in the Custom Texture Location. The textures come from the MM3DHD project by DeathWrench and currently cover almost all of the game menus and Link's forms.

User guide

If everything was set up correctly, a sound effect will be played right before the title screen, before the spinning mask appears.

You can also tell if the patch was applied by checking whether the Start button opens the Bomber's Notebook (if you have it) and the Select button opens the Items menu.

In order to use the new ZL/ZR buttons, the Circle Pad Pro must be enabled in MM3D's options, even if you are playing on a New 3DS.

Patches are provided for all versions of the game. However, all versions other than v1.0 (v100) will be temporarily downgraded to ensure everything works fine.

If you want faster aiming, copy code_faster_aim.bps instead of copying code.bps and rename the patch to code.bps.

Changes overview

  • Fixed Zora Link.
    • Swim gracefully like a Zora without having to use magic.
    • Fast swim is the default way of swimming and no longer requires magic.
    • Slow swim is still available. Press Up/Down on the D-Pad or ZL to toggle between fast swim and slow swim. You can also hold ZR to swim slowly.
  • Fixed Deku Link (water hopping).
    • Deku Link's acceleration reduction is reverted to fix the water hopping mechanic.
    • As a side effect of the acceleration change, hopping was very slow in the unpatched game.
  • Fast Transform.
    • Transform without having to equip items for a more streamlined gameplay.
    • Use the D-Pad to transform (Left: Zora, Up: Goron, Down: Deku, ZR+Up: Fierce Deity)
    • This frees up as many as 4 buttons.
  • More Fluid Bomber's Notebook.
    • Quicker popups and transitions.
    • The Bomber's Notebook screen updates instantly instead of taking 5 seconds to pop up every time you get a quest update. It all adds up.
  • Optional Song of Time Saving.
    • For the classic Majora's Mask experience, you can optionally save the game after playing the Song of Time.
    • After loading a classic save, players will be greeted with the iconic Dawn of the First Day screen just like in the original game.
  • Improved Bosses.
    • Odolwa, Goht and Gyorg's giant eyeballs are gone. They didn't add much.
    • Odolwa's AI and attacks are rebalanced to improve gameplay.
    • A bug that caused Odolwa to be invulnerable to attacks and block excessively was fixed.
    • This patch reduces the number of cycles to make it less repetitive.
    • Red Twinmold no longer resets its hit counter every time it burrows back into the sand. This makes the boss battle much less confusing.
  • Restored Ice Arrows.
    • Ice arrows work everywhere in Great Bay Temple, not just in Gyorg's room.
    • This gives the player more freedom to experiment with ice arrows. They also work in several other areas outside the temple, just like in the original game.
    • Removes the sparkling water effects as they are an insult to the player's intelligence.
  • More Potent Inverted Song of Time (slow time to 1/3 speed just like the original).
    • In Majora's Mask 3D, the ISoT only slows time to 1/2 speed rather than 1/3 - likely an oversight.
    • This patch fixes the regression, making some glitchless challenge runs possible again and giving the player more time in a three-day cycle.
  • Button Tweaks for Controller Players with optional bindings.
    • (ZL) Switch arrows, Pictograph Box.
    • (ZR+A or D-Pad Right) Ocarina of Time.
    • (ZR+X/Y) I/II item. Items can be assigned to I and II too.
    • (Select) Items.
    • (Start) Bomber's Notebook
    • (ZR+Start) Gears.
    • (ZR+Select) Map.
    • (Start/Select) Switch between the instrument screen and the song list.
  • Streamlined gameplay.
    • Link no longer plays the Elegy of Emptiness again after it's been played once. This makes Stone Tower less tedious.
    • The Song of Soaring is only repeated once during a play session for similar reasons.
    • The speed of Stone Tower blocks has been adjusted for a more pleasant climbing experience.
    • Free camera mode can be used more often, notably when targeting, talking or playing the ocarina.
  • Less handholding.
    • The moving platforms in Deku Palace and Woodfall Temple now actually always move.
    • Captain Keeta now walks as fast as in the original game, which restores the challenge of the chasing mini-game.
    • Link can now leave the Swordman's School during training if necessary to avoid wasting time.
    • The Bombers will no longer distract the player from a particular cutscene just to ensure you get their hints.
    • The new Sheikah hint stone will also no longer distract the player during an important cutscene in the Clock Tower.
  • For the classic experience.
    • Owl statues can be activated by striking them with a sword.
    • It is possible to control Goron Link rolling just like in the Nintendo 64 version: hold A and move to roll, release A to stop.
    • The classic control scheme co-exists with the new one.
  • Bug fixes.
    • Fixes a game bug that caused the "heart container get" sound not to play after getting four heart pieces.
    • Fixes a game bug that prevented the player from leaving free camera mode by targeting when Zora swimming or Goron rolling.
    • Fixes a possible softlock during the Twinmold boss intro.
    • Fixes a possible softlock when fighting Gyorg during phase 1.
    • Fixes 2 other possible softlocks when fighting Gyorg during phase 2.

Troubleshooting

My 3DS crashes:

  • Delete any file you copied while following this guide and follow the instructions carefully again.
  • In particular, make sure that you have renamed exheader_legacy.bin to exheader.bin.
  • If you are absolutely sure you have followed the instructions correctly, try all three patch variants (v100/v101/v110) until one of them works.

Citra crashes:

  • Delete any file you copied while following this guide and follow the instructions carefully again.
  • If you are absolutely sure you have followed the instructions correctly, try all three patch variants (v100/v101/v110) until one of them works.
  • You may also need to set the console region in Citra's settings manually.

The patch isn't applied:

  • Make sure that you put the patch files (code.bps and exheader.bin) into the right folder. Ensure that you are using the correct title ID for your game.
  • If you are playing on a 3DS console, check whether game patching is enabled.

On Citra, after I press ZR, the button stays pressed permanently:

  • That is caused by an incorrect controller mapping in Citra. It is not a Project Restoration issue.
  • When mapping the controller, hold the trigger on your controller before attempting to map the button in Citra.

FAQ

Q. Is such a patch available for Ocarina of Time 3D?

As of October 2021, no. Author has neither the time nor the interest to work on a QoL patch for OoT3D. Not that OoT3D really needs to be patched anyway.

Q. Hero mode?

Hero mode is somewhat out of the scope of this project.

Q. Restored lighting? The bright colours ruin the atmosphere!

Project Restoration attempts to fix what regressed in MM3D by restoring original mechanics and adding QoL improvements.

Even colourful games can be dark, and in Majora's Mask the unique atmosphere mostly comes from the stunning storytelling and narrative.

Q. How do I update Project Restoration?

Simply follow the setup instructions again.

For 3DS console users, you do not need to set up Luma3DS from scratch again.

Q. How was this made?

By reverse engineering the game to understand how it works (at least partially).

For more details, you're encouraged to look at the source code.

Screenshots

projectrestoration3ds3.png projectrestoration3ds6.png

projectrestoration3ds5.png projectrestoration3ds4.png

projectrestoration3ds10.png projectrestoration3ds8.png

projectrestoration3ds9.png projectrestoration3ds7.png

Media

Project Restoration Mod Review - Majora's Mask 3D (Fonald 3D)

Compatibility

Project Restoration works with a real 3DS or Citra.

Note that some features make use of the new ZL/ZR buttons, so playing on a New 3DS/2DS or Citra is recommended for a better experience.

Changelog

v1.5.9 2022/01/02

  • Several tweaks to the Elegy of Emptiness and Stone Tower were made to improve the user experience.
    • The statue is now spawned faster and it is now impossible to step off floor switches before the statue has materialised.
    • Stone Tower blocks now move at a less dizzying speed.
  • ISG (Infinite Sword Glitch) was reimplemented.
  • The console sound setting is now honoured; the game no longer forces surround mode.
  • Fixed a softlock that could occur if an owl statue is hit immediately after playing the ocarina (#167).
  • Fixed Link being able to transform into Goron Link while carrying Mystery or Moldy Milk.
  • Fixed a rare, random crash that could occur if ZR was held during transitions.
  • Fixed quick arrow swapping quirks when L targeting.

v1.5.8 2020/04/25

  • Fixed a possible softlock in the Bomber's Notebook.

v1.5.7 2020/04/25

  • Fixed a softlock when fighting Gyorg during phase 2 (Thanks to Zelda Informer for the bug report).
  • Fixed yet another softlock when fighting Gyorg during phase 2 (Yes, Grezzo's Gyorg is buggy).

v1.5.6 2020/04/05

  • For consistency reasons, Red Twinmold now always requires 2 damage cycles.
  • Fixed a possible softlock when fighting Gyorg during phase 1.
  • Fixed a very rare crash when fighting Gyorg during phase 2.
  • The Elegy of Emptiness statue spawn mini-cutscene is now automatically skipped to further streamline gameplay in Stone Tower.
  • Re-added Mask Storage. It had been accidentally removed when fast transform was added. Fast transform can now also be stored. Also re-added Ocarina Dive for testing purposes.
  • Controls:
    • The Items screen is now opened with SELECT and the Bomber's Notebook with START for consistency with existing dialogue messages in the game.
    • The Ocarina can now be used by pressing D-Pad Right (when Tatl is not trying to get the player's attention). The current shortcut (ZR+A) and the on-screen button still work.
    • In Zora form, it is now more convenient to switch between fast swim and slow swim: use the D-Pad Up/Down or ZL (new). Hold ZR to slow down (this was previously done with ZL).
    • Additional button controls for the Bomber's Notebook:
      • Switch between the Schedule (timeline) view and the Events view with Y.
      • Set or delete an alarm with X.
      • Open the map with SELECT.

Release notes.

External links

Advertising: