Welcome, Guest!

Here are some external resources you may find helpful
  • Hello, Guest.

    With the recent attacks against members, and lack of care towards their mental health we have started a fundraiser to help fund the life saving charity the Samaritans. Without their support and efforts many people we know wouldn't be alive.

    If you're able to help, you can donate via our fundraiser on GoFundMe Link

    Thank you.

D43E01 (Gamecube) N64 Zelda Emulator Hack Request

60fpshacksrock

Registered
Registered
Joined
Dec 23, 2020
Messages
6
Reaction score
0
Points
1
AG User Name
?
AG Join Date
2014
I was wondering if someone has maybe hacked, or could hack the emulator itself for several things.

1. Force SRAM to be used (or maybe a save type modifier to allow switching also to FlashRAM)
2. Force expansion pack always on

Reasons for these are for ROM hacks, in particular Ocarina of time hacks that use the expansion pack but can't save.
The reason they can't save is because to get them to work you have to change the ROM ID to NZSE to enable the
expansion pack. The problem though is that doing this enables FlashRAM.
 
Last edited:

stuntpenguin

2021 Donator
2021 Donator
Registered
Joined
Dec 6, 2020
Messages
21
Reaction score
22
Points
3
AG User Name
stuntpenguin
AG Join Date
2009
Can I get a rundown for the uninitiated?

Nintendo essentially wrote a 64 emulator for some Zelda (64) game. This emulator was for GameCube and supported one game. IIRC this was hacked on a bit and people found that other N64 ROMs would run to varying degrees of success. You are now hoping to extend this emulator's capabilities and run a hacked ROM?

As a bit of an aside, Donkey Kong 64 apparently required an expansion pack in the US because deadlines were approaching and there was a memory leak that couldn't be tracked down. I believe this bug was worked out by the time it hit the market in Japan. It would be neat to patch the bug and check out of the US version... I recall taking a crack at it several years ago. I digress.

So you want to run an "Ocarina of Time" mod? This was the original game supported by this emulator correct? Do you have a link to the patch? I'm a little confused as to if this is an expansion pack issue, saving issue, or something else. I wouldn't expect a mod to use too much additional memory. Almost certainly the mod doesn't change the saving mechanisms.

To diagnose this I'd like
  • Some kind of hash for the ROM this patch is meant to be applied to
  • The patch
I know that in the scene there are times where we can't exactly find the sum of the parts. Maybe this wording is confusing. Send me a direct message if you want.
 

60fpshacksrock

Registered
Registered
Joined
Dec 23, 2020
Messages
6
Reaction score
0
Points
1
AG User Name
?
AG Join Date
2014
Here is some info on the game in question: https://wiki.dolphin-emu.org/index.php?title=The_Legend_of_Zelda:_Ocarina_of_Time_Master_Quest

The thing is, is that it actually can run some Ocarina of Time hacks.

I'm not sure what you mean by a patch. What I'm asking for are codes to modify the emulator's DOL file.
For instance, if you have an ISO image of the game in question you can open it in Dolphin or another program
that supports GameCube ISO's. If you extract a file called "zlj_f.tgc" you can then use a tool call tgc2gcm to convert
it to an ISO/GCM and it can be booted that way therefore bypassing the menus. A tgc is sort of like a partition on disc.

Now if you open up your newly converted zlj_f.gcm or (zlj_f.iso) youopen up that image and see several files of which
one in particular named "urazle_f.n64" which is the Ocarina of Time Master Quest N64 ROM.

You can then use a tool to, and my preference is Apache3 by Sonix, to replace files inside disc images.
For example say a patch to compress the 64MB Master Quest Debug ROM down to 32MB. If you replace
the normal Master Quest ROM with the compressed debug ROM and try to boot it in Dolphin or Nintendont
it won't work. Open the compressed ROM in a hex editor and change the NZLE ID (offset 0x3B) to NZSE and it will boot
and you can play it but it won't save. If you want, here is a list to some .bps patches. https://krikzz.com/forum/index.php?topic=5161.0

Speaking of RAM usage and save type, it does indeed change depending on the ROM ID. If you replace it with
Majora's Mask it enables the expansion pack and changes the save type to FlashRAM, thus allowing the
the debug ROM or other Ocarina hacks that require the extra RAM to work. When you save and it detects
the save data it will show a menu telling when it's saving and when its done, provided that the game uses
the save type that it expects. When you run something like the debug ROM on first boot, without a save
file on the GC memcard, it will ask you if you would like to create a save, you choose yes and it will say
"A save file is being created" and does create a save. Then when you go in-game and select save you get
no menu telling you that its saving because the the Debug ROM uses, like the original game uses SRAM
and since you changed it to Majora's mask's ROM ID it wont save. You can stop the game and boot it
again and although it wont ask for save this time you will see when you go to the game's save file menu it will be empty.
This below is what it shows when it detects the save:
.D43E01.png


If you have any more questions I will be glad to try and help answer them. And thanks for interest in this subject. I wasn't sure if
anyone would have much interest in this. As a side note if you browse the dol file in a hex editor you will see other popular N64 games in there.
I think Nintendo was either testing them or maybe was planning an N64 compilation for GameCube. Some popular titles in there
include, but unfortunately doesn't work such as the Mario Party games and Paper Mario to name a few.

Another thing I forgot to mention, the controls. They also change depending on what ROM
is running. If a Zelda game is running the Z and L buttons are swapped whereas if you
replace the ROM with Mario 64 the Z and L are not swapped. Also yes it saves with Mario 64, changing tthe
save type to EEPROM.
 
Last edited:
Top