-
Notifications
You must be signed in to change notification settings - Fork 6
Installing A Release
Porytiles is on Homebrew! Homebrew is now the recommended way to install Porytiles. There are bottles for:
- Linux amd64
- Linux arm64
- macOS amd64
- macOS arm64
If you're a WSL or Linux user, you can use Homebrew. It's easy! Check the documentation here for more information.
Set up the Porytiles Homebrew tap via:
brew tap grunt-lucas/porytiles
Then you can install like:
brew install porytiles
To download updates, you can use the standard Homebrew flow:
brew update && brew upgrade porytiles
Porytiles is not yet available as an apt PPA,
but I am planning to look into this in the future.
If you don't have brew or don't want to install it,
you can still install Porytiles manually.
Your first step is to download the release for your desired platform.
Navigate to the Releases section.
Find the release you want to download.
Then simply download porytiles-linux-X.zip,
where X corresponds to the architecture of your system.
If you're not sure what your system architecture is,
it's probably amd64.
You can check the output of uname -m to determine your architecture.
Note
The Linux release for Porytiles is statically linked, so you do not need to install any additional libraries. Everything should work out of the box!
Navigate to the Releases section. Find the release you want to download. Go ahead and download the porytiles-macos-X.zip for the X that corresponds to your MacOS architecture. If you are using a newer Mac laptop (i.e. Apple silicon, M1, M2, etc) that's arm64. If you happen to have an older Intel Mac, never fear, just grab the amd64 release. You can run uname -m to check if you're unsure of your Mac's architecture.
Warning
While the MacOS Porytiles release statically links libpng and zlib, MacOS does not support static linking for the standard library. The MacOS Porytiles release is currently dynamically linked against your system's C++ standard library. You may run into problems if your system libraries are too old (a particular concern if you're using an Intel Mac). If you run into this problem, you have two options. Either 1) update your system libraries by downloading the latest MacOS developer tools or 2) build Porytiles from source with a new(ish) version of clang or gcc.
Unfortunately, Porytiles does not support pure Windows at this time. If you are on a Windows machine, I recommend setting up WSL2 to run Porytiles. Once you have WSL2 set up, you can follow the Linux and WSL2 instructions above. Alternatively, you could try building from source. I have heard that MinGW can compile Porytiles with a little massaging. I don't have plans to support Porytiles compilation on pure Windows, but I am open to a PR contribution if anyone is able to get it working.
Next, unzip the download folder. And finally, place the Porytiles executable somewhere on your system $PATH. If you're not sure what this means, just run the following command:
sudo cp ${DOWNLOADED_FOLDER}/porytiles /usr/local/bin
where ${DOWNLOADED_FOLDER} is the name of whichever release directory you downloaded and unzipped. This will copy the porytiles executable to /usr/local/bin, which is the default Linux directory for user-installed exectuables!
Tip
If you're seeing an error message saying cp: porytiles-linux-amd64/porytiles: No such file or directory or something similar, never fear. Your current working directory is not correct. If you don't know what this means, I highly recommend you pause and read through this command line tutorial for Linux. If you're on MacOS, check out this alternative tutorial. Porytiles is a CLI application, so basic familiarity with CLI principles will be key to your success. Please invest the time!
Now you can run:
porytiles --help
to confirm everything is working. Porytiles should print a lengthy help text to your terminal. If you see bash: porytiles: command not found or something similar, that means Porytiles is still not on your system $PATH. Please revisit the Installing The Release instructions above.
Decompiling A Secondary Tileset
Makefile Integration
Target Base Game and Fieldmap Overrides
Other Useful Options
Tileset Optimization