Skip to content
Randomizer for Castlevania: SotN
Branch: master
Clone or download
Latest commit e10db02 May 24, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue template May 20, 2019
ecc-edc-recalc-js @ 011dc80 Use web worker May 1, 2019
presets Rename plandomizer to PresetBuilder and add all customization options. May 22, 2019
relics Rename plandomizer to PresetBuilder and add all customization options. May 22, 2019
tools Add planned item locations, prologue rewards, starting equipment May 17, 2019
.gitignore Absorb frontend and item randomizer into this repo Apr 23, 2019
.gitmodules Absorb frontend and item randomizer into this repo Apr 23, 2019
CNAME Create CNAME Apr 25, 2019
LICENSE Initial commit Apr 1, 2019
README.md Bug fixes May 22, 2019
constants.js Rename plandomizer to PresetBuilder and add all customization options. May 22, 2019
enemies.js Add planned drops May 14, 2019
index.css Rename plandomizer to PresetBuilder and add all customization options. May 22, 2019
index.html Changelog May 23, 2019
index.js Adjust seed printing behavior on cli May 24, 2019
items.js Rename plandomizer to PresetBuilder and add all customization options. May 22, 2019
package-lock.json Version bump May 24, 2019
package.json Version bump May 24, 2019
randomize Absorb frontend and item randomizer into this repo Apr 23, 2019
randomize_items.js Rename plandomizer to PresetBuilder and add all customization options. May 22, 2019
randomize_relics.js Rename plandomizer to PresetBuilder and add all customization options. May 22, 2019
relics.js Add selector for built-in relic logic schemes. May 12, 2019
util.js Rename plandomizer to PresetBuilder and add all customization options. May 22, 2019
worker.js Bug fixes May 22, 2019

README.md

SotN Randomizer

This is a romhacking tool to randomize some things about Castlevania: Symphony of the Night.

Browser

https://sotn.io

CLI

$ git clone https://github.com/3snowp7im/SotN-Randomizer
$ cd SotN-Randomizer
$ git submodule update --init
$ npm install

Usage

To randomize your disc image, just pass in the path to your .bin file using the --bin option. This will use the current time as the seed:

$ ./randomize -b sotn.bin

You can print the seed used with the --verbose flag:

$ ./randomize -vb sotn.bin

The more --verbose flags you include, the more information about the randomization gets printed:

$ ./randomize -vvvb sotn.bin

Seed URLs

If you plan on sharing a seed with others, the easiest way to use CLI is with the --race option and seed URLs. To use the current time as a seed and print its URL and starting equipment:

$ ./randomize -rb sotn.bin

To use a custom seed and print its URL and starting equipment:

$ ./randomize -rb sotn.bin -s myseed

To use a copied seed URL and print its starting equipment:

$ ./randomize -rb sotn.bin https://sotn.io/?3b7,myseed

The --race option implies a verbosity level of 2. You can override this by supplying your own --verbose flag(s):

$ ./randomize -vrb sotn.bin https://sotn.io/?3b7,myseed    # Less verbose
$ ./randomize -vvvrb sotn.bin https://sotn.io/?3b7,myseed  # More verbose

--check-vanilla

The --check-vanilla option will check your disc image for any non-vanilla values:

$ ./randomize -cvb sotn.bin

Note that --check-vanilla does not modify your disc image.

Dry running

The --check-vanilla option is the only action that requires a bin file. You can omit the --bin option from all other actions to perform a dry run.

To print starting equipment and relic locations for a URL without actually writing the randomizations to your disc image:

$ ./randomize -vvvr https://sotn.io/?3b7,myseed

Presets

Presets are scripts that generate different randomizations from those found in the default mode. When run, preset scripts output an options string that can be used with the randomize utility. To create your own preset, save a copy of presets/sample.js and modify its contents with your own customizations.

For example, you have created your preset and named it presets/mypreset.js. To create a URL that allows others to randomize their game using your customizations:

$ ./randomize -uo $(node presets/mypreset.js)
You can’t perform that action at this time.