This library has been inspired both by Paulygon's password generator for The Legend of Zelda: Oracle of Seasons/Ages (referred to as the Oracle games from now on) and Amy Nagle (aka kabili207)'s zora-sharp library for C#. It can handle all three types of secrets in the games.
Let me explain. A secret is a password the Oracle games use to transfer data. There are three types of secrets :
- Game secrets : they allow a player who has finished one of the two games to continue the story in the other game.
- Ring secrets : once one of the two games is completed, Red Snake in the completed file will generate this kind of secret. It allows the player to transfer all their rings from one game to the other (for this to work, you need to talk to Red Snake in the non-completed file at least once).
- Memory secrets : during a linked game, exclusive NPCs will spawn on the map. Some of these NPCs can be interacted with to get a short secret to transfer to another NPC in the completed file. The latter NPC will then give the player another code to transfer back to the non-finished file to carry his bonus over. The player might be required to play a minigame before getting the return secret.
As you can see, secrets are pretty vital if you want to have the full experience in The Legend of Zelda: Oracle of Ages/Seasons. (which is why this library exists, duh).
- One class per secret type, with its own attributes and uses
- Reading and writing secrets of any type in both available game regions (Japan and US. Note that PAL releases use the same encoding as US cartridges)
- Easy to use
Don't worry! It's very simple! You just need to do the good old pip install pyzora
!
If you want to manually install the library with the source code, follow the steps below:
python3 -m pip install -r requirements.txt
- You're good to go!
Found a bug? Don't panic! Simply head towards the Issues section in this repository and describe your problem! A solution will be worked on as soon as possible afterwards.
Want to contribute? You can start by forking the project. Once you're done, open a pull request in the repository, and it'll be reviewed as soon as possible!