/aos_rando

Item randomizer for Castlevania: Aria of Sorrow

Primary LanguagePython

Castlevania Aria of Sorrow Item Randomizer
Version:    9
Date:       May 08, 2018
URL:        https://github.com/abyssonym/aos_rando
Contact:    https://twitter.com/abyssonym
            https://www.twitch.tv/abyssonym

--- ABOUT ---
    This is an item randomizer in the same vein as the LttP and Super Metroid item randomizers. Every seed should be beatable, but IANACE (I Am Not A Castlevania Expert).

--- FAQ ---
Q: How do I make/play a custom seed?
A: Type the secret code "custom" in the flags section of the randomizer. It will ask you for another filename. This is where you input the name of a custom seed file such as "custom_example.txt" or "custom_early_bat.txt". For detailed information on how to create a custom seed file of your own, see the file named "custom_template.txt".

Q: What is "Chaos Mode"?
A: "Chaos Mode" is the hard version of the randomizer, not to confused with Aria of Sorrow's "hard mode". To play Chaos Mode, type "chaos" when the randomizer asks for flags. Chaos Mode differs from the casual mode in a number of ways:
    - Chaos Mode may not be completeable without the use of tricks, such as precise jumps and damage boosts.
    - Chaos Mode is much more aggressively linear than casual mode. This refers to both game balance and area progression.
    - If a soul isn't necessary to complete the game, it may never appear. So, some seeds may not have backdash or hippogryph.
    - Please note that Chaos mode doesn't pull any punches. In a Skula-first run, you may find yourself in the Arena with very few resources.
    - Zips are NOT accounted for in Chaos mode, because I'm not very familiar with them. I may add another mode in the future that requires zips to complete.

Q: I equipped Flame Demon, Giant Bat, and Succubus, but the game won't let me progress! What's going on?
A: As of version 7, the souls you need to get the good ending are randomized. Find the Ancient Book items for hints on what those souls are.

Q: Do I have to farm enemy souls to get the good ending?
A: No, the required souls are hidden in the castle in soul statues. You never have to farm enemy souls.

Q: What about to get ability souls like double jump or backdash?
A: Those are all still in the game as pickups. You can get them all without ever farming enemy souls.

Q: What about rush souls, for getting past the waterfall?
A: There will be at least one rush soul obtainable without farming, too.

Q: Uh-oh, I got required souls from an enemy... does that mean I have to farm them?
A: No, an enemy can still drop them, but they are also hidden in statues. You never have to farm.

Q: What if I don't randomize items, just enemy souls? How do I get the good ending?
A: In that case, the appropriate enemies will drop their normal souls.

--- HOW TO USE ---
Running the randomizer:
    Windows users may use the executable file, "aos_rando.exe". Other users, please run "randomizer.py" using Python version 2.7.

Source rom file:
    This randomizer requires the North American or Japanese GBA rom "Castlevania: Aria of Sorrow" with the MD5 hash shown below.
    MD5 - e7470df4d241f73060d14437011b90ce (NA)
          146ae198a3d42a66733b9e0ef3ec11eb (J)

Flags:
    d  Randomize enemy souls and drops.
    i  Randomize item and ability locations.
    h  Randomize Hammer's shop.

Seed value:
    Input a seed value here, or leave it blank if you don't care.

Output files:
    The randomizer will output a new, randomized rom with the seed in the filename.

--- SECRET CODES ---
To use these codes, type the corresponding word when prompted to use your preferred flags.

chaos: A "hard mode" of sorts. Adds in some tricky jumps to the logic, and potentially removes some ability souls from the pool.
custom: Used for making custom seeds. An example is included in the main folder.
famine: Removes all healing items from the item pool.

nosoul: Self explanatory, all non progression souls are removed.
nodrop: Self explanatory, all monster drops, including their soul drop, are removed.
noshop: Self explanatory, Hammer sells you nothing.
oopsallsouls: Makes every item placed in world a soul drop, except for the soul books.

goodmoney: Stops random mimics from being placed in item locations.
vanillagraham: Preserves the vanilla soul requirements for the true good ending.
balance: Scales monster drops based off their original values.
noob: Exposes the entire map and turns on the peeping eye effect permanently.
statfix: Fixes the INT and LCK stats to do what they were intended to.
intboost: Increase the INT boosts on various equipment (recommended to use with "statfix" code).
wizard: Raises base MP regen and makes Wooden Golem and Rune Ring more effective.

guncula: Only weapons placed and found are guns (Handgun, Silver Gun, Positron Rifle).
fistula: Only weapons placed and found are fists (all the fist attachments).
assassin: Only weapons placed and found are knives and katanas.

Like this randomizer? Be sure to check out my other projects:
    FF6 Beyond Chaos Randomizer
        https://github.com/abyssonym/beyondchaos
    FF Tactics Rumble Chaos Crashdown Randomizer
        https://github.com/abyssonym/rumble_chaos_crashdown
    Breath of Fire 2 Painsong Randomizer
        https://github.com/abyssonym/painsong
    Chrono Trigger Eternal Nightmare Randomizer
        https://github.com/abyssonym/eternalnightmare
    Final Fantasy Mystic Quest Terrible Secret Randomizer
        https://github.com/abyssonym/terriblesecret
    Super Mario RPG Gentle Beauty and Raw Power Randomizer
        https://github.com/abyssonym/smrpg_gbarp
    FF5 Grand Cross Randomizer
        https://github.com/abyssonym/grand_cross
    FF4 Beyond Babil Ancient Cave Randomizer
        https://github.com/abyssonym/beyond_babil