Apotris is a block stacking game for the Gameboy Advance! It features satisfying graphics, responsive controls and a large amount of customization so that you can tailor the game to your preferences! https://apotris.com
Go to file
2024-05-01 10:23:37 +00:00
.github Create FUNDING.yml 2022-10-22 18:18:16 +03:00
assets added soundbank building to meson 2024-04-20 19:16:41 +03:00
conversionScripts remaking UI 2023-04-20 22:26:07 +03:00
data updated finesse trainer move sprites 2024-04-24 17:23:15 +03:00
dist changed version tag for release 2024-04-25 22:26:06 +03:00
images changed readme image 2022-11-15 23:10:50 +02:00
include fixed crashing caused by song/volume edgecases 2024-04-28 19:25:11 +03:00
lib fixed windows packaging 2024-03-01 23:59:56 +02:00
license Add licenses for subprojects shipped with game 2024-04-08 19:55:13 -05:00
make Print memory usage on build 2024-01-25 13:41:26 -06:00
meson Add pkg-config to macOS 2024-04-23 14:59:26 +03:00
source Display BARS when option configured 2024-04-29 08:29:23 -05:00
sprites updated finesse trainer move sprites 2024-04-24 17:23:15 +03:00
subprojects changed portmaster SDL to dynamic linking 2024-04-26 17:44:05 +03:00
tools Add count-chan, everyone's favorite OpenMPT channel counter 2024-04-30 05:47:23 -05:00
.gitignore Add macOS files to gitignore 2024-03-22 17:52:55 -05:00
.gitlab-ci.yml updated added only on manual or scheduled rule to gitlab pipeline 2024-04-14 15:58:13 +03:00
.gitmodules Point submodules to organization 2024-04-26 17:37:29 -05:00
CONTRIBUTING.md Add CONTRIBUTING.md 2024-04-29 16:24:25 -05:00
convertAll.sh finished link scene & fixed skin editor saving 2023-08-06 21:14:16 +03:00
Dockerfile updated docker file to fix linux building 2024-04-20 20:57:26 +03:00
gitlab-ci.yml split build artifacts by platform 2024-03-03 14:54:27 +02:00
LICENSE.txt Move LICENSE to AGPL 2024-04-29 16:27:02 -05:00
Makefile added rgb30 platform specifics 2024-01-05 03:32:51 -05:00
meson.build Do not configure unconfigurable tests 2024-04-30 18:25:04 -05:00
meson.options renamed rgb30 includes, added portmaster meson option 2024-04-13 11:56:45 +03:00
README.md Merge remote-tracking branch 'origin/main' into ports 2024-04-26 13:03:58 +03:00

Apotris

https://apotris.com

You can find builds/releases at https://apotris.com/downloads

Apotris is a block stacking game for the Gameboy Advance! It features satisfying graphics, responsive controls and a large amount of customization so that you can tailor the game to your preferences!

Join the discord server for updates, beta releases, or to give me feedback!

Docker build

Want to bypass all the work and use a system shipped by the developers intended to build Apotris? Try the docker image:

First, install Docker for your system. Then get it running and open up a terminal:

# Download and log in to the Apotris builder docker image
docker run -it docker.io/library/akouzoukos/apotris bash
# OR Optional: build the image yourself
docker build -t apotris-builder . && docker run -it apotris-builder bash
# You are now in the docker image environment, use Ctrl+D or "exit" command to return to main OS

# Clone the latest sources
git clone --branch ports https://gitea.com/akouzoukos/apotris.git
# Enter source dir
cd apotris
# From here you can build one of the available targets

# GBA
meson setup --cross-file=meson/gba.ini build-gba && meson compile -C build-gba
# Windows
meson setup --cross-file=meson/mingw.ini build-windows && meson compile -C build-windows
# Linux
meson setup build-linux && meson compile -C build-linux

# Built executables are now in the Docker environment's apotris/build-*/ folders

Meson build

Overview of requirements for most systems

As all the libraries and tools are compiled from source, the only things you need to have installed and in your PATH are:

  • meson (at least version 1.1.0 or later)
    • If your system has an out of date meson, install pip and run pip install meson to get the latest
  • git
  • A compiler for your system (cl.exe, gcc, etc.)
  • A compiler for the GBA (arm-none-eabi-gcc)
    • On Windows you can download the .exe installer for mingw-w64-i686-arm-none-eabi-gcc
    • On Ubuntu you really want to install what's here and follow this guide to use it. Make sure to symlink everything sudo ln -sf /usr/share/arm-gnu-toolchain-YOUR_VERSION/bin/* /usr/bin/
    • On macOS just brew install --cask gcc-arm-embedded

Windows dependencies

You will need to install:

  • Python 3
    • get the latest stable Windows installer for your platform
    • ensure you "add to PATH" when you run the installer (unless you know what you're doing otherwise)
  • Meson
    • Run pip install meson after installing Python to get meson
  • A Windows-native compiler and build tools
    • Strawberry Perl works out of the box, get the system installer to make it easiest

Windows specific instructions

For the GBA target, you will need to update the meson/gba.ini file to have the path to your ARM compiler:

[constants]
path = 'C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\13.2 Rel1\bin'
# ... rest of original file

You can avoid editing a file by setting this with a powershell command per-session

$env:PATH="$env:PATH;C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\13.2 Rel1\bin"

Ensure the version string and directory paths are correct for your installation. They may change with future updates.

Ubuntu 22.04+ and Windows (WSL) dependencies

For all Linux systems

Install the following packages:

sudo apt install build-essential git meson cmake 

also install mingw-w64 if you plan to cross compile for Windows

For Linux native builds

Install the following dependencies of SDL2:

sudo apt-get install build-essential git make \
  pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev \
  libaudio-dev libjack-dev libsndio-dev libx11-dev libxext-dev \
  libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev \
  libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \
  libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev libglew-dev

Compiling

Once you have everything, git clone or [download] this repository, then navigate to the directory in a terminal (or "command-line") window, and run the following command:

# Native build
meson setup build
ninja -C build

# GBA Build
meson setup --cross-file=meson/gba.ini build-gba
ninja -C build-gba

# MingW build (Windows using Linux, WSL, or macOS to build)
# Note: the following command is a really bad hack that probably has no consequences but is required
sudo ln -sf $(which x86_64-w64-mingw32-g++-posix) $(which x86_64-w64-mingw32-g++)
meson setup --cross-file=meson/mingw.ini build-mingw
ninja -C build-mingw

The built Apotris ROMs (.elf, .gba) will be in your build-gba directory.

The built Apotris executable and its required assets/ folder will be in your build directories for other builds.