Go Back   Project64 Forums > General Discussion > Open Discussion

Reply
 
Thread Tools Display Modes
  #1  
Old 24th March 2014, 08:25 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default Banjo-Tooie EEPROM Save Editor

Some people wanted a save editor for Banjo-Tooie to speed up some things. It is capable of doing a few things that GameShark cheat codes are not capable of (due to their lack of bit-precision access, without overwriting over flags when setting bytes), which seems important in this game's case due to Rareware's enjoyment of unaligned data storage, custom checksum security and save buffer swapping and destroying to throw code hackers off.

The release binaries currently cover both Win64 and Linux/Debian 64-bit. You need a 64-bit CPU to run this program unless you want to compile it yourself; with all the 64-bit bit-wise logic math going on computing Rareware's crazy checksums, I didn't see a point to bother including 32-bit binaries.

There is no graphical UI frontend to this program; feel free to make one if you want, even though the included batch script makes command-line execution equal to if not superior to the ease of throwing in a GUI.

Things which I did not have the time/patience to implement:
  • the secret multiplayer Jinjo character unlocked in the game's global settings, possibly some Stop 'N Swop beta stuff
  • precise, exact control over which jiggies were collected, instead of just 0 or all 90 of them (same thing for the 900 musical notes and learned moves bits, including Jamjars' moves you learn in Tooie as well as disabling/re-enabling old moves learned from Bottles in Kazooie)
  • trivial Boolean flag stuff, like did this or that character talk to you for the very first time yet
  • warp pads...should have implemented this to make navigation across the worlds much easier but did not have time to...but remember, open-source! :P
  • marking certain in-game cheat codes as either unlocked for in-game toggling or "heard of" and ready for entering in the Mayahem Temple code chamber, rather than just instantaneously enabling or disabling them through this save editor, which is currently the only method
  • probably other stuff not obvious enough for me to think of... (Game save data here has a lot of bits to check.)
For a full list of what IS supported or the syntax passed on the terminal to edit the save file, read the MANUAL text. The README text is just a documentation of the 128-byte global settings flags for general view (things like which mini-games, bosses and cinematic sequences have been unlocked for replay), not assistance with using the program.
Attached Files
File Type: 7z b7.7z (30.1 KB, 27 views)
Reply With Quote
  #2  
Old 24th March 2014, 08:26 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

I first started this program when someone named bryc hacked out the 32-bit checksum algorithm used by Banjo-Kazooie. He gave me some Nemu64 breakpoints and debugging tips for when I decided I would try to do the same thing as him, but for Banjo-Tooie's very, very slightly different 64-bit checksum algorithm. My implementation of Rareware's checksum technique was more literal, as I virtually wrote a MIPS CPU faker and some C-language functions to re-assemble what I got from the Nemu64 CPU running this game.
Reply With Quote
  #3  
Old 25th March 2014, 01:59 AM
RPGMaster's Avatar
RPGMaster RPGMaster is offline
Alpha Tester
Project Supporter
Super Moderator
 
Join Date: Dec 2013
Posts: 2,008
Default

Today I'll work on making a GUI. I really need to cut down on video games so this will be a good exercise for me to do . I can't be bothered with doing the actual work, so it'll just be a frontend of your program.

Lol I was going to attempt doing this in pure winapi, but after realizing the extra work I'd have to do, I said to myself "nvm" xD. Now the next big challenge will be figuring out how cram all the options using as little space as possible. I'll also have to figure out how to add the file explorer thing.

Edit: Here's the link to my frontend gui https://www.dropbox.com/s/z0yk140sgo...e%20Editor.zip .

Last edited by RPGMaster; 1st May 2014 at 08:21 AM.
Reply With Quote
  #4  
Old 25th March 2014, 02:11 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

Heh, the closest thing I've ever done to a GUI is Flash Player stuff. No idea how it works, but maybe to prioritize past the file explorer integration you could make the file path a simple text box for quickly specifying the directory, then later go back to add a button that uses a file explorer shell of some sort.

Obviously you can use whatever API you want. Maybe it's an ideal practice scenario for writing a GUI for something that's not complete (as a full-fledged save editor), in ways that you account for forward-extensibility with options that might get added in later versions. It might add to the challenge about how you lay out the space.
Reply With Quote
  #5  
Old 25th March 2014, 02:27 AM
RPGMaster's Avatar
RPGMaster RPGMaster is offline
Alpha Tester
Project Supporter
Super Moderator
 
Join Date: Dec 2013
Posts: 2,008
Default

Ya I know I can use a textbox for file directory. Right now I'm trying to figure out an ideal way to handle all the different variables. What I will do is use winapi and stdio. I might as well learn how to make user friendly GUI's since I normally just cheap out and do things like textbox for file directory.

Edit: Lol I must admit, adding all the items is time consuming. The reason I stated that GUI's were quick for me was because I never had a ton of checkboxes. Lol even though I've learned some new tricks for making GUI's quicker, it's still going to take a while (I like to make it look nice).

I did most of the GUI. I'll probably upload it on Wednesday. What is the minimum post count required before I can post links? I just want to make sure before I end up posting the link. Also I might skip a few features for now if you don't mind.

Last edited by RPGMaster; 25th March 2014 at 07:52 AM.
Reply With Quote
  #6  
Old 25th March 2014, 02:07 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

I like using stdio in plain or console stuff, but in Microsoft winapi stuff they try and make you use functions specific to Windows so you don't have too many dependencies or redundant ones (like msvcrxxx.dll where user32 would have done it, etc.). Still, in the initial design that's not important.

That's funny, I thought the minimum post count was like, <= 30 posts? I thought for sure you'd have enough by now. I guess Mr. zilmar couldn't help but change it again? Well you can always create a new post with the test, and delete the post yourself if it passes.
Reply With Quote
  #7  
Old 18th May 2014, 09:36 AM
retroben's Avatar
retroben retroben is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Jul 2013
Posts: 687
Default

Bump because of BS from advertising spammer.

So you need all of the jiggies and their events organized,correct?
Reply With Quote
  #8  
Old 18th May 2014, 09:45 AM
RPGMaster's Avatar
RPGMaster RPGMaster is offline
Alpha Tester
Project Supporter
Super Moderator
 
Join Date: Dec 2013
Posts: 2,008
Default

Ya, it would help if they were all organized. There's no rush though, since all of us are pretty busy at this point. I won't be able to update the GUI for a while, due to school and other tasks. It's not that I'm super busy, but I will have to learn more winapi before I'm able to add tabs and other nice features.
Reply With Quote
  #9  
Old 21st May 2014, 07:58 AM
retroben's Avatar
retroben retroben is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Jul 2013
Posts: 687
Default

I might be held up for quite some time until my Fire TV can get root access.
If all things lead up to another,then there is a small chance I can get PJ64 running on it through a distro'd Linux with the successor to Wine,meaning I can take care of things much more effectively in my own time.

Let the possible confusion begin?
Reply With Quote
  #10  
Old 18th March 2016, 04:39 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

Somebody just linked to this thread asking where to get a download of the pre-compiled application.

It's kind of a good question because zilmar's Apache server keeps screwing up the older attachments in these forum posts....

So, does anyone still have a copy of the b7.7z attachment on disk back when the OP's attachment still worked?
I know my home desktop computer a couple thousand miles away from here still has a copy. That was made back when I had Debian installed.
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 09:36 PM.


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