{"id":40987036,"url":"https://github.com/mcgrew/dwrandomizer","last_synced_at":"2026-01-22T07:34:55.949Z","repository":{"id":2685536,"uuid":"47136539","full_name":"mcgrew/dwrandomizer","owner":"mcgrew","description":"A randomizer for Dragon Warrior 1 for NES. Compatible with Windows, Mac OS, and Linux.","archived":false,"fork":false,"pushed_at":"2024-08-19T04:21:09.000Z","size":4290,"stargazers_count":95,"open_issues_count":38,"forks_count":27,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-08-19T05:32:22.074Z","etag":null,"topics":["gaming","nes","randomizer"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcgrew.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-11-30T18:05:25.000Z","updated_at":"2024-08-06T17:07:30.000Z","dependencies_parsed_at":"2024-08-17T22:45:05.754Z","dependency_job_id":null,"html_url":"https://github.com/mcgrew/dwrandomizer","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/mcgrew/dwrandomizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgrew%2Fdwrandomizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgrew%2Fdwrandomizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgrew%2Fdwrandomizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgrew%2Fdwrandomizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcgrew","download_url":"https://codeload.github.com/mcgrew/dwrandomizer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgrew%2Fdwrandomizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28658107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gaming","nes","randomizer"],"created_at":"2026-01-22T07:34:55.393Z","updated_at":"2026-01-22T07:34:55.938Z","avatar_url":"https://github.com/mcgrew.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dragon Warrior Randomizer #\n\nThis application is a randomizer for Dragon Warrior for NES. This randomizer\nwill work on either version of the ROM.\n\nIf you enjoy Dragon Warrior Randomizer, come join our\n[discord community](https://discord.gg/SmHeCkD)!\n\n## The randomizer has the following features, and more: ##\n\n#### Random overworld map generation ####\n\nA new overworld map is generated with each seed. Checks are used to make\nsure all towns and caves are accessible. On generated maps, the Rainbow Drop\nis used just outside Charlock to create a bridge over the moat.\n\n#### Randomizing chest contents ####\n\nChest contents throughout the game are randomized. Checks are used to ensure that\nquest items (Staff of Rain, Silver Harp, Stones of Sunlight) are not located in \nCharlock castle. Erdrick's Tablet is removed.\n\n#### Randomizing enemy attack patterns ####\n\nThis will give some enemies spells they did not originally have. This means you\ncould have a Red Slime with SLEEP, a Wizard with Fire Breath, or any other \ncombination!\n\n#### Randomizing enemy zones ####\n\nThe locations of enemies will be changed. Randomizer ensures that enemies near\nTantegel Castle are not too tough to defeat at low levels, but beyond that,\nanything goes.\n\n#### Random enemy stats, XP, and gold ####\n\nEnemy statisics (strength, agility, HP) can be randomized, as can the amount of\ngold and experience you receive from them.\n\n#### Boosting XP/gold drops ####\n\nEnemies will now give you more XP and Gold, in line with the SNES remake of the\ngame. XP and gold drops are limited to 255 due to game engine limitations.\n\n#### Lowering MP requirements ####\n\nMP requirements for spells are adjusted to be the same as those in the remake.\n\n#### Randomized weapon shops ####\n\nWeapon shop inventory will now be random. Every shop will have 5-6 random items.\n\n#### Random XP requirements ####\n\nExperience requirements to obtain a new level can be randomized.\n\n#### Random weapon prices ####\n\nWeapon prices can be randomized. This does not affect their capability.\n\n#### Shuffled \"searched for\" items ####\n\nThe Fairy Flute, Erdrick's Armor, and Erdrick's Token will now be shuffled, so\nfor example the token could be in Kol instead of the flute, and the armor on the\noverworld. Erdrick's Token or the Flute could also be in a random chest instead\nof on the ground. In addition, the item's location on the overworld is random. The\nNPC in Cantlin can tell you where it is.\n\n#### Randomized player attributes ####\n\nYour character's Strength, Agility, HP and MP are randomly generated.\n\n#### Randomized spell learning ####\n\nSpells learning is now randomized. Any spell can be learned anywhere from level 1 to\nlevel 16.\n\n#### Buffed HEAL and HURT ####\n\nThe HEAL spell has a range from 17-25. The HURT spell has a range from 9-16.\n\n#### Faster leveling ####\n\nThe number of experience points required for level ups can be adjusted with the\nfast leveling and very fast leveling options. These require 75% and 50% of the \nnormal requirements for the game, respectively.\n\n#### Cursed Princess mode ####\n\nGet Princess Gwaelin to take a cursed belt from your inventory when you bring\nher to the king to win the game. The game can also still be completed in the\nnormal manner.\n\n#### Three's Company mode ####\n\nBring Princess Gwaelin to the Dragonlord and agree to join him in ruling the\nworld to win in this mode. The game can also still be completed in the normal\nmanner.\n\n#### Alternate player sprites ####\n\nOver 60 alternate sprites to choose from for the main character.\n\n#### Other changes ####\nThe Death Necklace is always available in a chest. Putting it on gives you \n+10 attack power at the cost of 25% of your max HP and being cursed. The\nFighter's Ring works (+2 ATK). Other options include faster text, open Charlock\n(no Rainbow Drop required) shortened Charlock dungeon, disabling magic keys, \nor more swamp on the overworld.\n\n## Running the randomizer ##\n\n### Web Version ###\n\nThe easiest way to use the randomizer is via your web browser. Simply go to\n[https://dwrandomizer.com/release](https://dwrandomizer.com/release). This should\nwork on all major browsers.\n\n### Desktop Installation ###\n\n#### Windows #####\n\nSimply click on the executable in your file manager. On Windows, you may want to\nplace this somewhere easy to find, such as on the Desktop.\n\n#### Linux and Mac OSX #####\n\nOn Linux the application is available as a debian package, snap image, or AppImage.\nFor ArchLinux the package is available via the AUR. For Mac OS, there is currently\nno package provided as I don't have a way to build one, so you may have to do so\nyourself or use the [web-based version](https://dwrandomizer.com/release)\n\n### Usage ###\n\nOnce the application is running, simply select your Dragon Warrior ROM file by\nclicking the `ROM File` box, and choose an output directory. The `Seed` box will be pre-\nfilled with a random seed number. You can generate a new one with the `Random Seed`\nbutton, or choose your own by entering it in the box. The `Flags` box is where\nyou enter flags for the options you would like to use, or simply choose them with\nthe check boxes below. If you're not sure, click `Presets` to get a list of standard\npresets. Now click `Randomize`, and you should be prompted by your browser to \nselect a directory do save the file. If you do not get such a dialog, check your\n`Downloads` folder for the file. Simply run this using your favorite emulator\nor flash cart.\n\n## Compiling from source ##\n\nIf you'd prefer to compile your own version from source code, here are some\ninstructions.\n\n### Web-based or Electron version ###\n\nTo build this application, you will first need Emscripten.\n\n* Instructions for installing Emscripten can be found [here](https://emscripten.org/docs/getting_started/downloads.html)\n\n#### Emscripten #####\n\nInstall emscripten from https://emscripten.org/docs/getting_started/downloads.html\n\nInstructions for MacOS and linux. These *may* also work on Windows.\n\n```bash\nmkdir build\ncd build\ncmake -DCMAKE_TOOLCHAIN_FILE=\u003cpath to emscripten\u003e/cmake/Modules/Platform/Emscripten.cmake ..\nmake dwrandomizer-cli\n```\n\nYou'll then have the necessary files in the `release` directory, which\ncan be served via a local web server. For example:\n\n```sh\ncd release/\npython -m http.server\n```\n\nThen open a web browser to http://localhost:8000\n\n##### Electron #####\n\nFirst, complete the emscripten build instructions and copy the files from `build/release`\ninto the `electron` directory (or copy all of these files into a new directory).\nChange to that directory.\n\nSome Linux distributions contain a standalone electron in the package manager.\nThere may also be other ways to install this on other platforms.\nIn this case, you can simply run electron and pass in the electron directory.\n\n```sh\nelectron .\n```\n\nOtherwise, To build the electron version, you will need node.js, yarn, and electron-builder.\n\n* Instructions for installing node.js can be found [here](https://nodejs.org/en/download/)\n\nAfter that is complete, install yarn and electron-builder:\n\n```sh\nnpm install yarn\nyarn install\n```\n\nNext run electron-builder to build the application for the appropriate operating\nsystem:\n\n```sh\nnode_modules/.bin/electron-builder --windows --linux --macos\n```\n\nOn Windows, this should result in a executable in the `dist` directory. Copy it to\nsomewhere appropriate.\n\nOn Linux and Macos, the `dist` directory should contain a package you can install.\nThe linux build currently builds a debian package, a snap image and an AppImage.\nChoose the one you want to install.\n\n#### Command Line #####\n\nTo build the command line application, you should only need `cmake` installed.\n\n```sh\nmkdir build\ncd build\ncmake .. \u0026\u0026 make\n```\n\nThis should result in a command line executable present in the build directory.\nThe command line application is very barebones, but running without arguments will\ngive some help. There is currently no way to get the appropriate flagset argument\nvia this version, so you will have to obtain that elsewhere, such as the\n[web-based version](https://dwrandomizer.com/release).\n\n## FAQ ##\n\n#### What is the \"checksum\" when generating a ROM? ####\n\nThe program outputs a checksum at the bottom of the screen when generating a\nnew ROM. The checksum can be used to verify that 2 instances of the game are\nthe same, i.e. the input ROM is the same and the same seed and flags were used.\nThis is mostly useful for verifying ROMs in races, where normally all players\nplay the same randomized game.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcgrew%2Fdwrandomizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcgrew%2Fdwrandomizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcgrew%2Fdwrandomizer/lists"}