Good day, Romhacking community.
I've been working on a LOT of small improvements for both Ocarina of Time/Majora's Mask Redux.
Ocarina of Time are mostly done by now, and Majora's Mask without a doubt has been the one that has the most effort put into it.
For Majora's Mask, I have already ported a lot of things over from the Gamecube and Japanese v1.0, and even some added features from MM 3D.
However, from the vast amount of changes I've done, I am currently stuck at the very last point I wanted to touch upon to finally finish all the changes I want to make for Majora's Mask, which is one done in Majora's Mask 3D.
This is why I'm asking for help on this last point, as I think this is the very last point that requires some MIPS assembly to get them to work for the hack I'm working on.
- 1) Ocarina item icon, item name and item description changes depending on Link's form (from Majora's Mask 3D)
One feature that Majora's Mask 3D had over original MM was that, when you use one of the transformation masks, the Ocarina of Time item completely changes to a new instrument depending on the form.
Deku Link changes the Ocarina to the Deku Pipes, Goron Link to Goron Drums, and Zora Link to Zora Guitar (or Guitar of Waves).
Actually, the original Japanese v1.0 release of Majora's Mask (N64) had unused icons for these instruments, which is where the following assets were taken from. I modified the Deku Pipes icon myself to make it look closer to the actual pipes used by Deku Link in-game.
What's important here is to:1)
Make the "Ocarina of Time" icon in Subscreen/HUD change to the new icon instrument icon depending on Link's form.2)
Make the "Ocarina of Time" item text (that shows up when you press A on the item at the Subscreen) change to the new instrument text depending on Link's form.Patch link:https://www.dropbox.com/s/o4w0vrf4mzryyo6/OcarinaInstruments.bps?dl=0
Apply over a Majora's Mask v1.0 US ROM:
Latest findings towards this (including a cheat code for testing) and instructions on how to decompress the ROM for hacking:https://www.romhacking.net/forum/index.php?topic=31054.msg399519#msg399519
Here's a PoC in-game with the Ocarina text, icon and name properly changed with my assets (text taken directly from Majora's Mask 3D):
Now with that said, here are two important notes to take into consideration:a)
From what I know, the Deku Nuts item seems to have some quirks in its code that could help for this implementation, as the Deku Nuts description changes depending on whether Link is in human or in Deku form, so this one could be used as the basis for the automatic description change between each form/instrument.b)
For the actual item switching, once the item icon has been changed to either of the unused items depending on form, the general/global item ID for the Slingshot/Blue Fire/Hylian Loach should be treated as Item ID $00 in-game. This is due to the game having hard-coded checks for certain events for this particular item ID. This could also help so the changed items behave as the ocarina as well.
As for the item text itself, is not as important, I already have the text implemented properly as you can see in the picture.
If anyone jumps in to help with this code, whoever decides to help could instead
work over the Slingshot, Blue Fire and Hylian Loach unused items for the instrument forms, as those are the ones I have replaced so far.
If someone wants to give this a try, post in this thread, or hit me up through PM for further details!
- 2) Alien Cutscene Cow nose ring (from Majora's Mask Japanese v1.0 ROM)
This one can be found at the Majora's Mask (J) v1.0 release.
The cow that shows up in the Alien abduction cutscene when you first talk to Romani (can be done on the 1st day on any cycle) has a nose ring, while in the US v1.0 release, the nose ring was removed.
I already tried porting over both the zactor and the overlay files from the Japanese release into the American one, but I seem to be missing or I'm oblivious to the precise MIPS opcode from the overlay actor to re-implement this properly.
Info on this change listed here:https://tcrf.net/The_Legend_of_Zelda:_Majora%27s_Mask/Program_Revision_Differences#Aliens_Cutscene
A Japanese v1.0 ROM of Majora's Mask can be used to track down the proper code for this change. My documentation on this:
For the Alien cutscene cow:
At 0x0107E200 and up to 0x0107FCA0 in a Decompressed v1.0 MM ROM, begins the zovl object "En_Invadepoh_Demo", which is the code for the Alien Invasion cutscene triggered by little Romani. From what I know, seems certain code in this overlay object needs to be modified for the cow's nose ring to show up in-game.
JAP v1.0 / USA v1.0
- 3) The Ikana Fairy Fountain shows up with green textures instead of yellow (Fixed in PAL release)
There is a bug in the USA release of Majora's Mask regarding the Ikana Fairy Fountain.
Both the Fountains at Snowhead and Ikana have the same green textures on the walls.
The PAL release of the game seems to have fixed this issue, as it seems the green colour overwrites the yellow of the room as soon as Link enters it.
For this, a PAL v1.0 ROM of Majora's Mask could be used for tracking down the fix.
USA v1.0 / PAL v1.0
This is basically the very last thing I have left to finally finish with all the Majora's Mask changes I wanted to make. For everything else, I already have proper documentation and I will be releasing all the assets with instructions and documentation on how to accomplish them, and even how to port them to other versions of Majora's Mask if desired
To anyone who is willing to lend a hand, I thank you in advance!