The Smogon / Pokémon Showdown! sprite repository.
This project depends on
- tup
- ImageMagick >= 7
- AdvPng (optional)
- OptiPNG (optional)
- pngquant (optional)
- pnpm
- node.js >= 13
- wine (optional)
- cwebp
Windows binaries of these dependencies can be found on the download pages of the sites listed above.
$ sudo apt install nodejs imagemagick advancecomp optipng pngquant wine webp
$ sudo npm install -g pnpm
Build tup from source:
$ sudo apt install build-essential pkg-config fuse3 libfuse3-dev libpcre3-dev
$ git clone git://github.com/gittup/tup.git
$ cd tup
$ ./bootstrap.sh
$ sudo cp tup /usr/local/bin/tup
$ sudo cp tup.1 /usr/local/share/man
You may have to build imagemagick from source to get version 7.
$ sudo apt install build-essential pkg-config libltdl-dev libperl-dev libpng-dev libjpeg-dev
$ wget https://imagemagick.org/download/ImageMagick.tar.gz
$ tar xf ImageMagick.tar.gz
$ cd ImageMagick-*
$ ./configure --with-modules --enable-shared --with-perl
$ sudo make -j install
$ sudo ldconfig /usr/local/lib
Using brew
on a macOS:
$ brew cask install osxfuse wine-stable
$ brew install tup imagemagick advancecomp optipng pngquant
Install dependencies once with pnpm install
. Then, to build:
$ tup
Build settings are configurable in tup.config
.
CONFIG_DEFAULT_OPTIPNG
: Command line to pass tooptipng
.CONFIG_DEFAULT_ADVPNG
: Command line to pass toadvpng
.CONFIG_DEFAULT_PNGQUANT
: Command line to pass topngquant
.
There are src-specific versions of these settings:
CONFIG_TRAINERS_<PROGRAM>
: Compression options fortrainers/
only.CONFIG_DEX_<PROGRAM>
: Compression options fordex/
only.CONFIG_MODELS_<PROGRAM>
: Compression options formodels/
only.CONFIG_SPRITESHEET_<PROGRAM>
: Compression options for spritesheets only.CONFIG_MINISPRITE_<PROGRAM>
: Compression options forminisprites/
only.
For example, these settings reflect the compression settings for the files chaos uploaded in src/
:
CONFIG_DEFAULT_OPTIPNG=-o7
CONFIG_DEFAULT_ADVPNG=-z4 -i5000
- Tup, like Git, tracks files, not directories. If you
readdir()
and forget to declare a dependency it won't catch it, like it would forread()
. You can work around this by having build toolsstat()
any filenames they acquire.
All code in this repository is licensed under the MIT License.
The sprites themselves are property of Nintendo / Game Freak / The Pokémon Company, though Black & White sprites for Pokémon from later generations were created by artists in the community. The license for these community-created sprites is still being determined and may change in the future, but in the meantime please talk to use first before using them.
The PMD sprites are from SpriteCollab. The exact list of contributors can be found in spritecollab_credit_names.txt
of this repository.