Go Back   Project64 Forums > General Discussion > Open Discussion

Reply
 
Thread Tools Display Modes
  #61  
Old 17th April 2018, 01:14 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,260
Default

So! Ended up working on this utility again and added a couple new features.

Has anyone here gotten frustrated that you've played through the whole game, see less than 20 full hearts in Link's HUD, and cannot remember what heart piece you could have possibly missed? That's happened to me a few times...very frustrating. I think I've read a couple users outside of here who desperately were trying to remember what heart piece they missed and had to go back and get for completion.

So now, with the -v flag (no parameters necessary), you can get a full list of heart pieces and heart containers (in case you killed a boss and got their remains but somehow overlooked collecting the heart container for some reason) missing in your game save:


Yeah, it'll show other stuff as well, like the number of times you've saved your game with the Song of Time or by defeating Majora. (I'd have to double-check, but I think saving with owl statues also increments the times saved counter as well...not sure off hand.)

In the future I plan to also implement missing stray fairies detection. Sure, it's easy enough to use this save editor to load the game up with all 15 stray fairies for every temple you want, but just as we can be frustrated with not remembering what heart piece we missed, some of us who are genuinely trying to complete the game might want to save with an owl statue and have this tool print out which stray fairies they've forgotten. (Besides, unlike with heart pieces, the 1s and 0s of the stray fairy collections are contiguously stored in linear pairs of bits, which means each stray fairy has a fixed number that is the shift amount in that struct bitfield...makes me curious about documenting the internal ID numbers for stray fairy locations. I can already tell it doesn't match Nintendo Power's stray fairy numbers.)

Names of heart pieces I have just copied off of the naming in Nintendo Power's magazine for MM. I've tossed my old Prima Games strategy guide for the game many years ago and can't find an online copy, so I went with Nintendo Power. My preferred (and in my not-so-humble opinion, far superior) numbers of ordering the heart pieces are given first, followed by "(Nintendo Power ###)" at the end with the number you can look up in their magazine if you don't recognize the HP.

As an aside, I've also since implemented a new -W command switch for the 800-bit flags array of event-based stuff Link has done during the 3-day cycle. This includes infinite magic from drinking Chateau Romani, which is what the -W 115 true is for in the screenshot above. It gives Link infinite magic upon beginning the game. (Previously I had to accomplish this by putting Chateau Romani in Link's inventory with the save editor, but I think this saves an extra step and an empty bottle.)

For anyone curious, bit addresses of the heart pieces and storage of the names are all documented in the commit to source: https://github.com/cxd4/zs-flash/com...e77b4e4c086fdc
Reply With Quote
  #62  
Old 13th July 2018, 02:43 PM
Crash_ Crash_ is offline
Junior Member
 
Join Date: Jul 2018
Location: Homeless
Posts: 5
Default

Quote:
Originally Posted by HatCat View Post
So! Ended up working on this utility again and added a couple new features.

Has anyone here gotten frustrated that you've played through the whole game, see less than 20 full hearts in Link's HUD, and cannot remember what heart piece you could have possibly missed? That's happened to me a few times...very frustrating. I think I've read a couple users outside of here who desperately were trying to remember what heart piece they missed and had to go back and get for completion.

So now, with the -v flag (no parameters necessary), you can get a full list of heart pieces and heart containers (in case you killed a boss and got their remains but somehow overlooked collecting the heart container for some reason) missing in your game save:


Yeah, it'll show other stuff as well, like the number of times you've saved your game with the Song of Time or by defeating Majora. (I'd have to double-check, but I think saving with owl statues also increments the times saved counter as well...not sure off hand.)

In the future I plan to also implement missing stray fairies detection. Sure, it's easy enough to use this save editor to load the game up with all 15 stray fairies for every temple you want, but just as we can be frustrated with not remembering what heart piece we missed, some of us who are genuinely trying to complete the game might want to save with an owl statue and have this tool print out which stray fairies they've forgotten. (Besides, unlike with heart pieces, the 1s and 0s of the stray fairy collections are contiguously stored in linear pairs of bits, which means each stray fairy has a fixed number that is the shift amount in that struct bitfield...makes me curious about documenting the internal ID numbers for stray fairy locations. I can already tell it doesn't match Nintendo Power's stray fairy numbers.)

Names of heart pieces I have just copied off of the naming in Nintendo Power's magazine for MM. I've tossed my old Prima Games strategy guide for the game many years ago and can't find an online copy, so I went with Nintendo Power. My preferred (and in my not-so-humble opinion, far superior) numbers of ordering the heart pieces are given first, followed by "(Nintendo Power ###)" at the end with the number you can look up in their magazine if you don't recognize the HP.

As an aside, I've also since implemented a new -W command switch for the 800-bit flags array of event-based stuff Link has done during the 3-day cycle. This includes infinite magic from drinking Chateau Romani, which is what the -W 115 true is for in the screenshot above. It gives Link infinite magic upon beginning the game. (Previously I had to accomplish this by putting Chateau Romani in Link's inventory with the save editor, but I think this saves an extra step and an empty bottle.)

For anyone curious, bit addresses of the heart pieces and storage of the names are all documented in the commit to source:
God damn, you never get bored of this.
Reply With Quote
  #63  
Old 30th July 2018, 09:48 AM
buckchow buckchow is offline
Junior Member
 
Join Date: Mar 2018
Posts: 6
Default

Quote:
Originally Posted by HatCat View Post
And yeah, if you're adding this feature in just for yourself then that makes it a little easier to implement. One good thing about open-source.
I finally had time to get automatic inventory and button conversion working between the old (early Japan) and new (other) save versions. The new/additional code is attached (not full source files, sorry).

Adding -S will cause the inventory (0x0070-0x009F) and button assignments (0x004C-0x005B) to be converted to the opposite format.

To convert save slot 0 (file 1) from old -> new:
Code:
zs flash.fla -J true -S -J false
-J true = treat input as old format
-S = swap/convert old format to new format
-J false = set checksum calculation mode for new format

To convert save slot 0 (file 1) from new -> old:
Code:
zs flash.fla -S -J true
-S = swap/convert new format to old format
-J true = set checksum calculation mode for old format

To convert save slots 0 and 1 (file 1 and file 2) from new -> old:
Code:
zs flash.fla -S -J true "-@" 1 -J false -S -J true
-S = swap/convert new format to old format
-J true = set checksum calculation mode for old format
"-@" 1 = calculate checksum for slot 0 (file 1) and select slot 1 (file 2)
-J false = treat input as new format
-S = swap/convert new format to old format
-J true = set checksum calculation mode for old format

The order of the items on the command-line is essential so that the old/new mode is always set correctly.

Currently no attempt is made to change anything else like the name.

Hopefully somebody finds this useful.
Attached Files
File Type: zip zs_data changes.zip (1.2 KB, 1 views)
Reply With Quote
  #64  
Old 10th November 2018, 10:34 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,260
Default

Hey thanks for the patch buckchow, sorry I have not read this forum for so long to see you did one.

Just took a look at it and uploaded it to something more viewable you can find on GitHub. I'll decide what to do with it when I have time. Also anyone else feel free to submit patches or recommendations, if possible on GitHub. I'm much easier to reach there or on IRC--personally would not recommend a Discord server but to each their own.

I've taken an interest in the 3DS re-make of Zelda MM but have yet to investigate the save format.

Quote:
Originally Posted by Crash_ View Post
God damn, you never get bored of this.
Dude! Long time no see. Ordinarily I would say sorry to see that you are homeless now, except that as someone who voluntarily went homeless and started his life over from scratch...I can personally vouch for the ability to become extremely resourceful. I hope you experience what is needed to turn things around.

Last edited by HatCat; 10th November 2018 at 10:36 PM.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT. The time now is 04:18 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.