@@ -6,7 +6,7 @@ will work on either version of the ROM.
66If you enjoy Dragon Warrior Randomizer, come join our
77[ discord community] ( https://discord.gg/SmHeCkD ) !
88
9- ## The randomizer has the following features: ##
9+ ## The randomizer has the following features, and more : ##
1010
1111#### Random overworld map generation ####
1212
@@ -110,165 +110,134 @@ or more swamp on the overworld.
110110
111111## Running the randomizer ##
112112
113- ##### Windows ## ###
113+ ### Web Version ###
114114
115- Simply click on the executable in your file manager. On Windows, you may want to
116- place this somewhere easy to find, such as on the Desktop.
115+ The easiest way to use the randomizer is via your web browser. Simply go to
116+ [ https://dwrandomizer.com/release ] ( https://dwrandomizer.com/release ) . This should
117+ work on all major browsers.
117118
118- ##### Mac OSX ## ###
119+ ### Desktop Installation ###
119120
120- On Mac OSX, DWRandomizer will require the installation of Qt5. I recommend
121- installing this via [ homebrew] ( https://brew.sh ) :
122- ```
123- brew install qt5
124- ```
121+ #### Windows #####
125122
126- The * .app * folder contained in the zip file may be placed inside the
127- Applications folder for easy access from Launchpad .
123+ Simply click on the executable in your file manager. On Windows, you may want to
124+ place this somewhere easy to find, such as on the Desktop .
128125
129- ##### Linux #####
126+ #### Linux and Mac OSX #####
130127
131- Qt5 is also required on Linux. This should be available in your package manager.
132- If you'd prefer not to install this, there is a command line version also
133- available in the download which does not require Qt.
128+ On Linux the application is available as a debian package, snap image, or AppImage.
129+ For ArchLinux the package is available via the AUR. For Mac OS, there is currently
130+ no package provided as I don't have a way to build one, so you may have to do so
131+ yourself or use the [ web-based version] ( https://dwrandomizer.com/release )
134132
135133### Usage ###
136134
137- Once the application is running, simply select your Dragon Warrior ROM file from
138- The ` ROM File ` box, and choose an output directory. The ` Seed ` box will be pre-
139- filled with a random seed number. You can generate a new one with the ` Random `
135+ Once the application is running, simply select your Dragon Warrior ROM file by
136+ clicking the ` ROM File ` box, and choose an output directory. The ` Seed ` box will be pre-
137+ filled with a random seed number. You can generate a new one with the ` Random Seed `
140138button, or choose your own by entering it in the box. The ` Flags ` box is where
141139you enter flags for the options you would like to use, or simply choose them with
142- the check boxes below. If you're not sure, click ` Defaults ` for the options most
143- players use. Next, choose your player sprite. ` Loto ` is the default original
144- sprite. There are other sprites to choose from, including sprites from other
145- famous games. Now click ` Randomize ` , and you should get a message saying your
146- ROM has been created. It will be in the directory you specified. Simply run this
147- using your favorite emulator or flash cart.
148-
149- ##### Options #####
150-
151- * Shuffle Chests & Search Items: Self-explanatory. Changes what are in chests and search locations.
152- * Random Weapon Shops: Randomizes what items are available in all weapon shops.
153- * Random Growth: Randomize the stat changes you receive on each level up.
154- * Random Spell Learning: Randomizes the level at which you learn each spell.
155- * Random Enemy Attacks: Enemy spells and abilities are randomized.
156- * Dragonlord form 2 may also have HEAL or SLEEP.
157- * Random Enemy Zones: Enemy locations are random.
158- * Random Enemy XP & Gold: Randomize the amount of XP and Gold received from enemies
159- * Random Weapon Prices: Weapon & armor prices are randomized.
160- * Random XP Requirements: Experience requirements for each level are randomized.
161- * Enable Menu Wrapping: Enable wrapping of the cursor from top to bottom in menus.
162- * Enable Death Necklace: Adds additional functionality to the Death Necklace. +10 ATK and -25% HP.
163- * Shuffle Music: Shuffles which tunes you hear in each location. Battle music is unchanged.
164- * Disable Music: Disables most game music. Battle music is not disabled, and music plays after an inn stay. These are known issues.
165- * Big Swamp: Makes approximately 75% of the overworld contain swamp tiles. Ouch!
166- * Fast Text: Speeds up all text in dialogs.
167- * Speed Hacks: Speeds up other aspects of the game (spells, fairy flute, death music, etc.)
168- * Open Charlock: No need to go around collecting items to make a bridge. Just walk right into Charlock!
169- * Short Charlock: Dragonlord skimped on the dungeon so you go straight to his throne room on entering Charlock.
170- * Don't Require Magic Keys: Doors will open without a key. The key shop owners have gone on strike.
171- * Cursed Princess: Make the princess take a cursed belt to win.
172- * Three's Company: Bring the princess to the Dragonlord and join him to win.
140+ the check boxes below. If you're not sure, click ` Presets ` to get a list of standard
141+ presets. Now click ` Randomize ` , and you should be prompted by your browser to
142+ select a directory do save the file. If you do not get such a dialog, check your
143+ ` Downloads ` folder for the file. Simply run this using your favorite emulator
144+ or flash cart.
173145
174146## Compiling from source ##
147+
175148If you'd prefer to compile your own version from source code, here are some
176149instructions.
177150
178- ##### Windows ## ###
151+ ### Web-based or Electron version ###
179152
180- The easiest way I've found * so far* to build dwrandomizer on Windows is using
181- Ubuntu in Windows Subsystem for Linux on Windows 10 along with the MXE
182- cross-compiler. Setting up this environment is rather involved, but I'll try
183- to cover it briefly.
153+ To build this application, you will first need Emscripten.
184154
185- First, set up [ Windows Subsystem for Linux ] ( https://docs.microsoft.com/en-us/windows/wsl/install-win10 )
155+ * Instructions for installing Emscripten can be found [ here ] ( https://emscripten.org/docs/getting_started/downloads.html )
186156
187- Next, download [ mxe] ( https://github.com/mxe/mxe ) into your Linux filesystem.
188- Install the needed dependencies and build it with qt5 support. This may take a
189- while to compile.
157+ #### Emscripten #####
190158
191- ```
192- apt update
193- apt -y install automake autopoint bison flex gperf intltool libgdk-pixbuf2.0-dev libtool-bin lzip make p7zip-full ruby unzip
194- make qt5
195- ```
159+ Install emscripten from https://emscripten.org/docs/getting_started/downloads.html
196160
197- After this completes, navigate to the ` dwrandomizer ` source directory in your
198- terminal and run the following (replacing ` /path/to/mxe ` with the path to the
199- mxe directory you just created):
161+ Instructions for MacOS and linux. These * may* also work on Windows.
200162
201- ```
163+ ``` bash
202164mkdir build
203165cd build
204- / path/to/mxe/usr/x86_64-w64-mingw32.static/qt5/bin/qmake ../dwrandomizer.pro
205- make
166+ cmake -DCMAKE_TOOLCHAIN_FILE= < path to emscripten > /cmake/Modules/Platform/Emscripten.cmake ..
167+ make dwrandomizer-cli
206168```
207169
208- This will compile dwrandomizer and the new executable should be in the release
209- directory.
210-
211- ##### Mac OSX #####
170+ You'll then have the necessary files in the ` release ` directory, which
171+ can be served via a local web server. For example:
212172
213- First, install Qt5 using homebrew.
214- ```
215- brew install qt5
216- ```
217- Now, download the randomizer source code and change to that directory.
218- ```
219- mkdir build
220- cd build
221- /usr/local/Cellar/qt5/5.9.1/bin/qmake ../dwrandomizer.pro
222- make
223- ```
224- The Qt version number may be different. This will create an app folder that you
225- can run from finder, or from the command line simply run
173+ ``` sh
174+ cd release/
175+ python -m http.server
226176```
227- dwrandomizer.app/Contents/MacOS/dwrandomizer
177+
178+ Then open a web browser to http://localhost:8000
179+
180+ ##### Electron #####
181+
182+ First, complete the emscripten build instructions and copy the files from ` build/release `
183+ into the ` electron ` directory (or copy all of these files into a new directory).
184+ Change to that directory.
185+
186+ Some Linux distributions contain a standalone electron in the package manager.
187+ There may also be other ways to install this on other platforms.
188+ In this case, you can simply run electron and pass in the electron directory.
189+
190+ ``` sh
191+ electron .
228192```
229193
230- ##### Linux #####
194+ Otherwise, To build the electron version, you will need node.js, yarn, and electron-builder.
195+
196+ * Instructions for installing node.js can be found [ here] ( https://nodejs.org/en/download/ )
231197
232- First, install Qt5 using your package manager. Download the randomizer source
233- code, then change to the directory containing the source code.
198+ After that is complete, install yarn and electron-builder:
234199
200+ ``` sh
201+ npm install yarn
202+ yarn add electron-builder
235203```
236- mkdir build
237- cd build
238- qmake ../dwrandomizer.pro
239- make
204+
205+ Next run electron-builder to build the application for the appropriate operating
206+ system:
207+
208+ ``` sh
209+ node_modules/.bin/electron-builder --windows --linux --macos
240210```
241211
242- Some compiling will happen, and that's it! you should have a working binary in
243- the current directory .
212+ On Windows, this should result in a executable in the ` dist ` directory. Copy it to
213+ somewhere appropriate .
244214
245- ##### Emscripten #####
215+ On Linux and Macos, the ` dist ` directory should contain a package you can install.
216+ The linux build currently builds a debian package, a snap image and an AppImage.
217+ Choose the one you want to install.
246218
247- Install emscripten from https://emscripten.org/docs/getting_started/downloads.html
219+ #### Command Line #####
248220
249- Instructions for MacOS and linux:
250- ``` bash
221+ To build the command line application, you should only need ` cmake ` installed.
222+
223+ ``` sh
251224mkdir build
252225cd build
253- cmake -DCMAKE_TOOLCHAIN_FILE=< path to emscripten> /libexec/cmake/Modules/Platform/Emscripten.cmake ..
254- make dwrandomizer-cli
226+ cmake .. && make
255227```
256228
257- You'll then have ` dwrandomizer-cli.wasm ` and ` dwrandomizer-cli.js ` files, which can be served along with the files in the
258- ` emscripten ` directory. For example, continuing from the same ` build ` directory as above:
259- ``` bash
260- cp ../emscripten/* .
261- python -m http.server
262- ```
263- Then open a web browser to http://localhost:8000
264-
229+ This should result in a command line executable present in the build directory.
230+ The command line application is very barebones, but running without arguments will
231+ give some help. There is currently no way to get the appropriate flagset argument
232+ via this version, so you will have to obtain that elsewhere, such as the
233+ [ web-based version] ( https://dwrandomizer.com/release ) .
265234
266235## FAQ ##
267236
268237#### What is the "checksum" when generating a ROM? ####
269238
270- The program outputs a checksum when generating a new ROM. The checksum
271- can be used to verify that 2 instances of the game are the same, e.g. the
272- input ROM is the same and the same seed and flags were used. This is
273- mostly useful for verifying ROMs in races, where normally all players play the
274- same randomized game.
239+ The program outputs a checksum at the bottom of the screen when generating a
240+ new ROM. The checksum can be used to verify that 2 instances of the game are
241+ the same, i.e. the input ROM is the same and the same seed and flags were used.
242+ This is mostly useful for verifying ROMs in races, where normally all players
243+ play the same randomized game.
0 commit comments