This application is a randomizer for Dragon Warrior 1 for NES. This randomizer will work on either PRG0 or PRG1 ROMs.
Chest contents throughout the game are shuffled. Checks are used to ensure that quest items (Staff of Rain, Silver Harp, Stones of Sunlight) are not located in Charlock castle. Erdrick's Tablet is replaced with something more useful.
This will give some enemies spells they did not originally have. This means you could have a Red Slime with SLEEP or a Wizard with Fire Breath!
The locations of enemies will be changed. The randomizer ensures that you will not encounter powerful enemies too early, so you won't see a Red Dragon hanging around Tantegel, but you could see a Ghost.
Enemies will now give you more XP and Gold, more inline with the remake versions of the game. XP and gold drops are limited to 255 due to memory limitations.
Towns are randomized, so you could end up with Kol where Cantlin should be, or Hauksness right next to Tantegel!
Cave locations are randomized so that the cave entrance can lead to an unexpected dungeon. Charlock dungeon is left intact, as is the swamp cave entrance on the Rimuldar side to ensure you can get there.
MP requirements for spells are adjusted to be the same as those in the remakes.
Weapon shop inventory will now be random. Every shop will have 5-6 random items.
The Fairy Flute, Erdrick's Armor, and Erdrick's Token will now be shuffled, so for example the token could be in Kol instead of the flute, and the armor in the swamp. In addition, Erdrick's Token could now be in a random chest instead of on the ground.
Your character's Strength, Agility, HP and MP can now vary up to 20% from the original version.
Spells learning is now randomized. Spells will still be learned within 2 levels of the original. For instance, in Dragon Warrior, RADIANT is normally learned at level 9. It will now be learned somewhere between level 7 and level 11.
The HEAL spell will now have a range from 10-25 instead of 10-17.
REPEL will now be learned at level 8 instead of 15.
OUTSIDE doesn't always send you to where you'd expect it to, though it is predictable. It's not a bug, it's a feature. Kappa
Remember that if you are running this using Python instead of the exe, Python 2.x will not produce an identical file as Python 3.x. Even though this will run on both Python 2.7 and 3.x, The random number generator is different between the 2 versions. Remember this if you are using this for a race. The exe is built with Python 3.x, so it is recommended that you to use the 3.x version of Python.
If you have a ROM from the GoodNES set, you can just drag and drop the ROM file onto the exe. This will generate a new ROM in the same directory as the exe. If This doesn't work, you will need to run the application from a command prompt. The command would is:
dwrandomizer C:\path\to\dragon_warrior_rom.nes
See below for other command line options.
Run the python script from the command line:
python dwrandomizer.py /path/to/dragon_warrior_rom.nes
See below for other command line options.
filename The rom file to use for input
-h, --help show this help message and exit
-r, --remake Do not set enemy HP, XP/Gold drops and MP use up to
that of the remake. This will make grind times much
longer.
-c, --chests Do not randomize chest contents.
-f, --force Skip checksums and force randomization. This may
produce an invalid ROM if the incorrect file is used.
-l, --repel Do not move repel to level 8.
-p, --patterns Do not randomize enemy attack patterns.
-s SEED, --seed SEED Specify a seed to be used for randomization.
-t, --towns Do not randomize towns.
-w, --shops Do not randomize weapon shops.
-z, --zones Do not randomize enemy zones.
Special thanks to Ryan8bit for his Formula Guide, as this may not have been possible without it. Thanks to Zombero on Twitch for providing the Fighter's Ring patch and Zurkei on Twitch for helping me get the Window binary working.