Skip to content

Commit 183d126

Browse files
committed
Updated the build instructions in the README
1 parent e3a1430 commit 183d126

File tree

3 files changed

+87
-118
lines changed

3 files changed

+87
-118
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ if (CLEAR_UNUSED)
5858
add_definitions(-DCLEAR_ALL_UNUSED_DATA)
5959
endif()
6060

61-
# emscripten build command
61+
# emscripten build command (Archlinux)
6262
# cmake -DCMAKE_TOOLCHAIN_FILE=/usr/lib/emscripten/cmake/Modules/Platform/Emscripten.cmake ..
6363
if (EMSCRIPTEN)
6464
add_executable(dwrandomizer ${SOURCE_FILES})

README.md

Lines changed: 85 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ will work on either version of the ROM.
66
If 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`
140138
button, or choose your own by entering it in the box. The `Flags` box is where
141139
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.
173145

174146
## Compiling from source ##
147+
175148
If you'd prefer to compile your own version from source code, here are some
176149
instructions.
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
202164
mkdir build
203165
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
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
251224
mkdir build
252225
cd 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.

common/build.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
/* This file is generated by git */
2-
#define BUILD "654"
2+
#define BUILD "655"

0 commit comments

Comments
 (0)