Update readme

This commit is contained in:
Struma 2021-02-24 01:06:08 -05:00 committed by Roza
parent e75c8747e1
commit c6b75f0248

View file

@ -4,49 +4,58 @@
This is a fork of mkxp intended to be a little more than just a barebones recreation of RPG Maker. The original goal was successfully running games based on Pokemon Essentials, which is notoriously dependent on Windows APIs. I'd consider that mission accomplished.
I'd highly recommend [checking the gitbook](https://roza-gb.gitbook.io/mkxp-z) for more information than this readme contains.
## Bindings
Bindings provide the glue code for an interpreted language environment to run game scripts in. mkxp-z focuses on MRI and as such the mruby and null bindings are not included.
### MRI
Website: https://www.ruby-lang.org/en/
Matz's Ruby Interpreter, also called CRuby, is the most widely deployed version of ruby. MRI 1.8.1 is what was used in RPG Maker XP, and 1.8.7 is the lowest that mkxp-z is prepared to let you go. 1.8.1 and 1.8.7 are for the most part identical, though there are a few differences that are ironed out in my fork of 1.8.7.
Matz's Ruby Interpreter, also called CRuby, is the most widely deployed version of ruby. MRI 1.8.1 is what was used in RPG Maker XP, and 1.8.7 is the lowest that mkxp-z is prepared to let you go.
Ruby versions 1.9.3 and 2.1 - 3.0 are also supported (and recommended for the capable).
This binding should support RGSS1, RGSS2 and RGSS3. Note that I've only tested the Ruby 1.8.7 bindings with RGSS1.
Ruby versions 1.9.3 and 2.1 - 3.0 are also supported, and running each platform's respective dependency makefile will build Ruby 3.
## Dependencies / Building
* libsigc++ 2.0
* PhysFS (latest hg)
* OpenAL
* SDL2*
* SDL2_image
* SDL2_ttf
* Ruby MRI (1.8.7, 1.9.3, 2.1-2.7, 3.0)
* vorbisfile
* pixman
* zlib
* openssl (for HTTPS, optional)
* Steamworks SDK (for Steam, optional)
* OpenGL/ES
For more detailed build instructions, refer to the linked gitbook.
mkxp-z employs the meson build system, so you'll need to install that beforehand.
Firstly, each platform has a set of tools and libraries that must be installed prior to building anything:
meson will use pkg-config to locate the respective include/library paths. If you installed any dependencies into non-standard prefixes, make sure to set `-Dpkg_config_path` accordingly when configuring the build. If pkgconfig cannot find a dependency, meson will attempt to use CMake scripts instead (if CMake is installed), followed by system installations/macOS frameworks.
+ *macOS (through Homebrew)*
Midi support is enabled by default and requires fluidsynth to be present at runtime (not needed for building); if mkxp can't find it at runtime, midi playback is disabled. It looks for `libfluidsynth.so.3` on Linux and `fluidsynth.dll` on Windows, so make sure to have one of these in your link path. If you still need fluidsynth to be hard linked at buildtime, use `-Dshared_fluid=true`. When building fluidsynth yourself, you can disable almost all options (audio drivers etc.) as they are not used. Note that upstream fluidsynth has support for sharing soundfont data between synthesizers (mkxp uses multiple synths), so if your memory usage is very high, you might want to try compiling fluidsynth from git master.
```sh
brew install libtool mm-common cmake automake autoconf pkg-config
```
+ *Windows (MSYS 64-Bit)*
```sh
# Assuming 64-bit
pacman -S git ruby base-devel mingw-w64-x86_64-cmake mingw-w64-x86_64-meson mingw-w64-x86_64-gcc mingw-w64-x86_64-libsigc++
```
+ *Linux (Ubuntu/Debian)*
```sh
sudo apt install git build-essential cmake meson autoconf automake mm-common libtool pkg-config ruby bison zlib1g-dev xorg-dev lib32z1 libasound2-dev libpulse-dev
```
If Meson complains about not being able to find OpenGL, you also need `libgl1-mesa-dev`. After having all the prerequisites, go to your platform's respective folder and run `make` (or `setup.command` on macOS).
Following that, you should be able to just build mkxp-z:
### macOS
Open the Xcode project, select the scheme you want (Universal and Apple Silicon options currently don't work with Intel Macs), and build.
### Windows/Linux
`source linux/vars.sh` or `source windows/vars.sh` depending on your platform, then run `meson build` and `ninja -C build`.
By default, mkxp switches into the directory where its binary is contained and then starts reading the configuration and resolving relative paths. In case this is undesired (eg. when the binary is to be installed to a system global, read-only location), it can be turned off by adding `-Dworkdir_current=true` to meson's build arguments.
**MRI-Binding**: Meson will use pkg-config to look for `ruby-X.Y.pc`, where `X` is the major version number and `Y` is the minor version number (e.g. `ruby-1.8.pc`). The version that will be searched for can be set with `-Dmri_version=X.Y`. `mri-version` is set to `3.0` by default.
## Supported image/audio formats
These depend on the SDL auxiliary libraries. For maximum RGSS compliance, build SDL2_image with png/jpg support.
To run mkxp, you should have a graphics card capable of at least **OpenGL 2.1** with an up-to-date driver installed.
**MRI-Binding**: Meson will use pkg-config to look for `ruby-X.Y.pc`, where `X` is the major version number and `Y` is the minor version number (e.g. `ruby-3.0.pc`). The version that will be searched for can be set with `-Dmri_version=X.Y`. `mri-version` is set to `3.0` by default.
## Platform-specific scripts