ZSR Forums
August 11, 2020, 01:35:26 am *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: ZSR Forums are back - read only!
 
   Home   Help Search Members Login Register  
Pages: [1]
  Print  
Author Topic: N64 GameShark "Savestate" Codes (1.0 J/1.1 J Only)  (Read 1599 times)
Volvagia
Regular Guay

Posts: 25


Email
« on: October 20, 2015, 08:04:30 pm »

Primarily for 100% practice. Some issues (listed in this page) will be ironed out soon.

Pastebin for real-time updates:
http://pastebin.com/h6Kx8hK7

==================================
|       Ocarina of Time          |
|     N64 GameShark Codes        |
|       Codes by @Faschz         |
==================================

HOW TO USE:
=================================

To use these codes you will need a cart of the Japanese Ocarina of Time (either Version 1.0 or Version 1.1), Super Mario 64 (for resetting the GameShark) and a GameShark Version 3.3 - no lower version number of GameShark will work, only 3.3 will work with these codes.

If you have a GameShark already, put it in your N64, put Super Mario 64 ontop of it and turn it on and go to the Game Codes section towards the bottom of the options. Scroll through these codes until you find the one for Zelda and select it. You'll be prompted to turn off your console if you confirm you own the game and switch Mario with Ocarina of Time.

Doing so should boot the GameShark up like==================================
|       Ocarina of Time          |
|     N64 GameShark Codes        |
|       Codes by @Faschz         |
==================================

HOW TO USE:
=================================

To use these codes you will need a cart of the Japanese Ocarina of Time (either Version 1.0 or Version 1.1), Super Mario 64 (for resetting the GameShark) and a GameShark Version 3.3 - no lower version number of GameShark will work, only 3.3 will work with these codes.

If you have a GameShark already, put it in your N64, put Super Mario 64 ontop of it and turn it on and go to the Game Codes section towards the bottom of the options. Scroll through these codes until you find the one for Zelda and select it. You'll be prompted to turn off your console if you confirm you own the game and switch Mario with Ocarina of Time.

Doing so should boot the GameShark up like normal but with Ocarina of Time added ontop instead of Mario.

From here, you can add codes to the Games listing (You will need to add Ocarina of Time J to the listing yourself, Japanese Ocarina of Time is not listed here by default. Any reference to Ocarina of Time is to the American versions of the game and the codes will not work for the Japanese version unless you switch the master codes. It's recommended you make a new game listing.)

After you've added the codes and selected them (turned them on) you can boot the game with the codes on.

KNOWN ISSUES:
===================================

* Golden Skulltulas don't respawn
* Nabooru Knuckle doesn't respawn (You Get Stuck)
* Saving sometimes deletes a file (We're not sure what exactly causes it. If someone can reproduce it consistently please inform @Faschz on twitter.)
* Unique Entrance Cutscene (e.g: Deku tree opening) will only play once.
* Inventory, once set, e.g, getting Slingshot, is now in your menu even after reload area/dungeon.
* Game crashes if you press L without being paused (due to Inventory Editor)
* Required to hold L to browse the Inventory Editor or you activate other codes.

FAQ:
===================================

----------------------------------------------

Q: I pressed reset with OoT on the GameShark now my GameShark won't turn on again. How do I fix this?

A: When you turn this off or press the reset button often times the GameShark will not come back on again normally. To resolve this you need to press the reset button on the GameShark cartridge and put Mario back ontop of the unit and re-power on the system. This will cause the GameShark to go back to it's factory status. Simply repeat the standard process for loading OoT from here to get OoT to work again.

----------------------------------------------

Q: I have a code request or an issue with a code, who can I contact about this?

A: @Faschz (on Twitter) made most of these GameShark codes. You can ask him about queries.

Q: I have a question about the step process of this guide, who can I contact about this?

A: This pastebin was written by @Volvagia224 on twitter. You can contact me there.

-----------------------------------------------

Q: What do all the values mean in the Inventory Editor.

A: Please read this very detailed page: https://tcrf.net/Proto:The_Legend_of_Zelda:_Ocarina_of_Time_Master_Quest/Inventory_Editor

-----------------------------------------------

Q: The GameShark crashes when I press reset. How am I supposed to practice sections with save warping?

A: Press D-PAD up to go to the file select screen when you save. This is the alternative.

----------------------------------------------

Q: I have a 1.0 code that I need to work on 1.1 that currently doesn't, how do I work this out?

A: In hex: 1.0_address + 1C0 = 1.1_address

----------------------------------------------

OCARINA OF TIME (J) V1.0 CODES
===================================

Master Code
F10004E4 2400
EE000000 0000
 
Reload Last Loading Zone with D-Pad Down
D11C84B4 0400
801DA2B5 0014 <-- Reload
 
Title Screen with D-Pad Up
D01C84B4 0008
8011B92F 0002 <-- Title
D01C84B4 0008
801DA2B5 0014 <-- Reload
D01C84B4 0008
801DA2B4 0000 <-- Deku Default
 
D-Pad Left to set at Health to 3 Hearts
D01C84B4 0002
8111A600 0030
 
Destroy all Dungeon Flags
50004802 0000
8111A6A4 0000
8011A734 0040 <-- Water Temple Water level
50004F01 0000
8011A735 0000
 
Destroy all Dungeon (boss room) Flags
50007002 0000
8111A880 0000

Inventory Editor
D01C84B5 0020
801D8DD7 0002

A list of generic gameshark codes for Version 1.0 can be found here, for infinite ammo and such in specific equipment or other "useful" codes. The codes above are custom ones for practice purposes made by @Faschz:

http://www.hotcheats.com/legendofzeldaocarinaoftimegamesharkcheatsnintendo64.html

OCARINA OF TIME (J) V1.1 CODES
===================================

Master Code
F10004E4 2400
EE000000 0000

Reload Last Loading Zone with D-Pad Down
D11C8674 0400
801DA475 0014 <-- Reload
 
Title Screen with D-Pad Up
D01C8674 0008
8011BAEF 0002 <-- Title
D01C8674 0008
801DA475 0014 <-- Reload
D01C8674 0008
801DA474 0000 <-- Deku Default
 
D-Pad Left to set at 3 Hearts
D01C8674 0002
8111A7C0 0030
 
Destroy all Dungeon Flags
50004802 0000
8111A864 0000
8011A8F4 0040 <-- Water Temple Water level
50004F01 0000
8011A8F5 0000
 
Destroy all Dungeon (boss room) Flags
50007002 0000
8111AA40 0000

Inventory Editor
D01C8675 0020
801D8F97 0002

A list of generic gameshark codes for Version 1.1 can be found here, for infinite ammo and such in specific equipment or other "useful" codes. The codes above are custom ones for practice purposes made by @Faschz:

http://www.hotcheats.com/legendofzeldaocarinaoftimegamesharkcheatsv11nintendo64.html
« Last Edit: October 20, 2015, 11:49:06 pm by Volvagia » Logged
mzxrules
Admin
Ultimate Mega Guay

Posts: 901


Wrong warp expert


« Reply #1 on: November 11, 2015, 07:00:18 am »

The reason the save file is being deleted is due to the checksum test failing. When the game boots (during the spinning N logo sequence), all 6 save files are individually loaded into what I call the "sram" block in memory (i think), and the checksum is tested on the all the saves. If a code modifies any of the values within the "sram" block (which the health and dungeon flags codes do), it will invalidate the checksum and the save will be marked as invalid.

Second, these codes work for a US NTSC 1.0 and 1.1 carts. There's even a code that effectively converts NTSC 1.0/1.1 into the Japanese or US version... I don't know why Fasch didn't add that one.


Lastly, it'd be fairly trivial to convert this short list of codes to any version of Ocarina of Time, because all of the addresses reside within two relatively well known spaces in ram: the "sram" block, and the global context
Logged

Quote from:  Leigh Rogers
Braid
This is art because the music is classical music, and the graphics are done with a pen. The story is something about a woman. I could not understand much of this to be honest, which makes it even more likely to be an art.
Chain
Regular Guay

Posts: 42



Email
« Reply #2 on: November 19, 2015, 06:58:15 pm »

Would it be possible to make a code which sets your rupee value to the value of the wrong warp timer in the Deku tree? This way you could see the warp timer without using software like MHS.

I want to do some wrong warp testing in Deku but mupen is awful so if at all possible I'd like to avoid using it.
Logged
mzxrules
Admin
Ultimate Mega Guay

Posts: 901


Wrong warp expert


« Reply #3 on: November 21, 2015, 05:28:29 am »

I actually tried making a hack like this. The problem I had was that the rupee count wasn't being visibly updated fast enough to match up. This might not matter if you're using pause buffers/unload the blue warp, since it would give the display time to catch up.

Are you planning on testing on real hardware or something?
Logged

Quote from:  Leigh Rogers
Braid
This is art because the music is classical music, and the graphics are done with a pen. The story is something about a woman. I could not understand much of this to be honest, which makes it even more likely to be an art.
Chain
Regular Guay

Posts: 42



Email
« Reply #4 on: November 21, 2015, 11:11:13 am »

I want to do some testing on PJ64 since mupen buffering sucks and I might make a gecko code for VC since oob chu hovers crash on emulator but work on VC (I'm working on a setup for timerless deku to bongo ww)

If you still have the code could you post it please?
Logged
mzxrules
Admin
Ultimate Mega Guay

Posts: 901


Wrong warp expert


« Reply #5 on: November 22, 2015, 03:17:25 pm »

Ah. In that case (at least for the PJ64 testing bit) you are dumb, and you should feel dumb for not better researching the program you're using (scroll to the bottom).

But anyway, the proper way to hook on to Project 64 1.6 addresses with MHS is this:

  • Create a new address. The address set you set is unimportant, but CANNOT be 0.
  • Modify the address you just created, and click on the Normal Address tab
  • Check the use complex address bar, and insert the following into the textbox below it, replacing the 0 with an N64 address corrected for the emulator's endianness flip:
    • [project64.exe+D6A1C] + 0h
  • If the calculated complex address between the () is different from the address you set at step one, click back to the Main tab, and clear out the "Cur Val" field to prevent overwriting the value you want monitored
  • Click OK

Now to explain: the point of the [] is that they allow you to capture a 32 bit pointer. In Project 64 1.6, address D6A1C contains the pointer to the emulated n64 ram space, thus the [project64.exe+D6A1C]. The + 0h bit (which can be written as 0x0 if you want) you probably understand but for the people who don't it works like this:

Say you want to monitor the real N64 address 8011A5D0, or a cheat code like 8111A5D0. You would drop the 80/81 first, giving you 11A5D0. Then
  • If the value is a 4 byte value like a float or a long, your full complex address would be [project64.exe+D6A1C] + 11A5D0h
  • If the value is a 2 byte value like a short, your full complex address would be [project64.exe+D6A1C] + 11A5D2h
  • If the value is a byte value like a byte or char, your full complex address would be [project64.exe+D6A1C] + 11A5D3h

Complex addresses make it really easy to port mhs addresses to different emulators, since all you have to do is find and replace the [project64.exe+D6A1C] constant for the emulator you're porting the list to.
Logged

Quote from:  Leigh Rogers
Braid
This is art because the music is classical music, and the graphics are done with a pen. The story is something about a woman. I could not understand much of this to be honest, which makes it even more likely to be an art.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!