SDL-based reimplementation of the classic Chinese-language RPG known as PAL.
SDL-based reimplementation of the classic Chinese-language RPG known as PAL.
SDLPAL is an SDL-based cross-platform reimplementation of the classic Chinese RPG Legend of Sword and Fairy (also known as PAL).
Check the link above for a web-based demo of SDLPAL. It should work on most modern browsers (e.g., Google Chrome, Mozilla Firefox, Safari), though compatibility issues may exist on some platforms. To play, please prepare a ZIP file containing the original game resource data.
If you experience difficulties downloading code from GitHub in mainland China, please use our Gitee mirror (updated hourly).
SDLPAL was originally created by Wei Mingzhi. It is now maintained by the SDLPAL development team. Please see AUTHORS for the full list of contributors.
Copyright (c) 2009-2011, Wei Mingzhi <[email protected]>.
Copyright (c) 2011-2026, SDLPAL development team.
All rights reserved.
SDLPAL is distributed under the terms of the GNU General Public License, version 3, as published by the Free Software Foundation. See LICENSE for details.
Many concepts in this program are based on documents from the PAL Research Project, and portions of the code are based on work by Baldur and louyihua.
This program makes extensive use of the following libraries:
This program does NOT include any code or data files from the original game, which are proprietary and copyrighted by SoftStar Inc.
We recommend purchasing the original game from Steam to obtain the required data files.
Please refer to the Wiki.
SDLPAL currently supports the following platforms:
For build environment inspiration, you can review our CI scripts.
$ git clone https://github.com/sdlpal/sdlpal.git
$ cd sdlpal
$ git submodule update --init --recursive
win32/sdlpal.sln in Visual Studio 2017 or later.winrt/SDLPal.UWP.sln.cd win32 && make -f Makefile.mingwcd win32 && makecd win32 && make HOST=i686-w64-mingw32- (or x86_64 for 64-bit).Run cd unix && make. Ensure SDL 2.0 development files are installed. The executable sdlpal will be generated in the current directory. By default, it uses FLTK for the launch GUI; to disable this, define PAL_NO_LAUNCH_UI in the Makefile.
Open Pal.xcodeproj with Xcode and build. Ensure the SDL framework is installed in /Library/Frameworks.
Install dependencies via CocoaPods, then open ios/SDLPal/SDLPal.xcworkspace in Xcode.
$ cd iOS/SDLPAL
$ pod install
Open the android directory in Android Studio and select Make Project.
android/app/src/main/java/org/libsdl/app is a symlink. Ensure your Git client handles symbolic links correctly.Resource files are not included. You must copy the original game data files into a directory, place the built SDLPAL executable in that same directory, and then run it.
Important: On case-sensitive filesystems (like Linux/macOS), ensure all game data filenames are in lower-case.
MIDI support varies by platform. It is officially supported on Windows, Android, iOS, and macOS. GNU/Linux support is preliminary and requires the timidity package. Other platforms do not currently support MIDI.
SDLPAL supports various versions of the original game through configuration.
sdlpal.cfg file in the game directory. Refer to sdlpal.cfg.example for the format.No open issues yet, or sync has not completed.