@@ -6,7 +6,7 @@ will work on either version of the ROM.
6
6
If you enjoy Dragon Warrior Randomizer, come join our
7
7
[ discord community] ( https://discord.gg/SmHeCkD ) !
8
8
9
- ## The randomizer has the following features: ##
9
+ ## The randomizer has the following features, and more : ##
10
10
11
11
#### Random overworld map generation ####
12
12
@@ -110,165 +110,134 @@ or more swamp on the overworld.
110
110
111
111
## Running the randomizer ##
112
112
113
- ##### Windows ## ###
113
+ ### Web Version ###
114
114
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.
117
118
118
- ##### Mac OSX ## ###
119
+ ### Desktop Installation ###
119
120
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 #####
125
122
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 .
128
125
129
- ##### Linux #####
126
+ #### Linux and Mac OSX #####
130
127
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 )
134
132
135
133
### Usage ###
136
134
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 `
140
138
button, or choose your own by entering it in the box. The ` Flags ` box is where
141
139
you 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.
173
145
174
146
## Compiling from source ##
147
+
175
148
If you'd prefer to compile your own version from source code, here are some
176
149
instructions.
177
150
178
- ##### Windows ## ###
151
+ ### Web-based or Electron version ###
179
152
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.
184
154
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 )
186
156
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 #####
190
158
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
196
160
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.
200
162
201
- ```
163
+ ``` bash
202
164
mkdir build
203
165
cd 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
206
168
```
207
169
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:
212
172
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
226
176
```
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 .
228
192
```
229
193
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/ )
231
197
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:
234
199
200
+ ``` sh
201
+ npm install yarn
202
+ yarn add electron-builder
235
203
```
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
240
210
```
241
211
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 .
244
214
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.
246
218
247
- Install emscripten from https://emscripten.org/docs/getting_started/downloads.html
219
+ #### Command Line #####
248
220
249
- Instructions for MacOS and linux:
250
- ``` bash
221
+ To build the command line application, you should only need ` cmake ` installed.
222
+
223
+ ``` sh
251
224
mkdir build
252
225
cd build
253
- cmake -DCMAKE_TOOLCHAIN_FILE=< path to emscripten> /libexec/cmake/Modules/Platform/Emscripten.cmake ..
254
- make dwrandomizer-cli
226
+ cmake .. && make
255
227
```
256
228
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 ) .
265
234
266
235
## FAQ ##
267
236
268
237
#### What is the "checksum" when generating a ROM? ####
269
238
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