SDLPAL 3DS: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox-3DS-Homebrews
{{Infobox 3DS Homebrews
| title = SDLPAL
|title=SDLPAL
| image = https://dlhb.gamebrew.org/3dshomebrew/SDLPAL.jpg|250px
|image=Sdlpal5.png
| type = Other Apps
|description=Port of The Legend of Sword and Fairy to the 3DS.
| version=v1.1
|author=SDLPAL Team
| lastupdated = 2017/02/18
|lastupdated=2021/02/14
| licence = Mixed
|type=Role playing
| author = ZephRay
|version=2.0
| website = https://github.com/sdlpal/sdlpal
|license=GPL-3.0
| download = https://dlhb.gamebrew.org/3dshomebrew/Sdlpalv2.0.2021.0214.7z
|download=https://dlhb.gamebrew.org/3dshomebrews/sdlpal.7z SDLPAL & English Patch
| source = https://github.com/sdlpal/sdlpal
|website=https://sdlpal.github.io/sdlpal
|source=https://github.com/sdlpal/sdlpal
}}
}}
<youtube>swZp8xbD2YI</youtube>
SDLPAL is a SDL-based open-source cross-platform reimplementation of the classic Chinese RPG game The Legend of Sword and Fairy (Simplified Chinese: 仙剑奇侠传, Traditional Chinese: 仙劍奇俠傳, also known as Chinese Paladin, or PAL for short). It is availble in both Chinese and non-official English.


== SDLPAL ==
This port is created by Wei Mingzhi in 2009 and has been taken over by the SDLPAL development team. Many of the ideas of this program are based on documents from [https://github.com/palxex/palresearch PAL Research Project], and portions of the code are based on the work done by Baldur and [https://github.com/louyihua louyihua].


'''''SDLPAL''''' is an SDL-based open-source cross-platform reimplementation of the classic Chinese RPG game ''Xiān jiàn Qí Xiá Zhuàn (Simplified Chinese: 仙剑奇侠传, Traditional Chinese: 仙劍奇俠傳)'' (also known as ''Chinese Paladin'' or ''Legend of Sword and Fairy'', or ''PAL'' for short).
Note that this program does not include any code or data files of the original game, which are proprietary and copyrighted by SoftStar Inc.


[https://play.google.com/store/apps/details?id=com.sdlpal.sdlpal Google Play]
==Installation==
'''Note:''' You must obtain the data files from a licensed copy of the game in order to run it.


If you would like to get the nightly build from Google Play Store, [https://play.google.com/apps/testing/com.sdlpal.sdlpal please enroll] (WARNING: might be unstable).
Copy the CIA file to your SD card, then create a new folder named sdlpal in 3ds folder of your SD card.


'''[https://sdlpal.github.io/demo/sdlpal.html Try the online demo for now!]'''
Extract the game data files to the sdlpal folder (except for 2 folders and the AVI files, they are not needed).


The development team has built a web-based demo version of SDLPAL on github pages via Emscripten, which you can try anytime by clicking the above link. It should work well on most morden browsers (e.g., Google Chrome, Microsoft Edge, Safari, …), but there may still be problems on some browsers. Before you can enjoy your game journey, please prepare a zipped file containing the game resource data.
Copy the sdlpal.cfg to the sdlpal folder just created (delete the .example at the end of the file name), so you should have sdmc:/3ds/sdlpal/sdlpal.cfg.


== LICENSE ==
Open sdlpal.cfg, change CODEPAGE=0 to CODEPAGE=1 (delete the # in front of the line to enable it).


SDLPAL is originally created by [https://github.com/CecilHarvey Wei Mingzhi] from 2009. Now it is owned by the SDLPAL development team. Please see [[AUTHORS|AUTHORS]] for full author list.
For n3ds/o3ds:
* If you are using n3DS, turn on CPU+L2 boost in your CFW menu.
* If you are using o3DS, open sdlpal.cfg, change both STEREO and USESURROUNDOPL to 0, lower both SAMPLERATE and OPLSAMPLERATE to 22050.


<pre>Copyright (c) 2009-2011, Wei Mingzhi &lt;whistler_wmz@users.sf.net&gt;.
You can now install the CIA file and play the game in Chinese. To apply the [http://www.romhacking.net/translations/2441 English patch] (included):
Copyright (c) 2011-2018, SDLPAL development team.
* Extract everything except sdlpal.cfg in the win directory to the sdlpal directory of the SD card.
All rights reserved.</pre>
* Overwrite m.msg, sss.mkf and word.dat, add m_chs.slf and m_eng.slf.
SDLPAL is distributed under the terms of GNU General Public License, version 3 as published by the Free Software Foundation. See [[LICENSE|LICENSE]] for details.
* Open sdlpal.cfg and edit this line MESSAGEFILENAME=./m_eng.slf.


Many of the ideas of this program are based on documents from [https://github.com/palxex/palresearch PAL Research Project], and portions of the code are based on the work done by Baldur and [https://github.com/louyihua louyihua].
==User guide==
===FAQ===
Please see https://github.com/sdlpal/sdlpal/wiki/FAQ_CHS (Chinese).


This program made extensive use of the following libraries:
==Controls==
* [http://www.libsdl.org/ SDL]
D-Pad/C-Pad - Move, Select
* [http://www.libsdl.org/projects/SDL_mixer/ SDL_mixer]
* [http://www.underbit.com/products/mad/ libmad]
* [http://www.vorbis.com/ libogg &amp; libvorbis]
* [https://www.opus-codec.org/ libopus &amp; opusfile]
* [http://www.fltk.org FLTK]
* [https://github.com/schellingb/TinySoundFont TinySoundFont]
* OPL player from [http://adplug.sourceforge.net/ Adplug]
* OPL emulation cores from [http://www.dosbox.com DOSBOX project], [http://mamedev.org/ MAME project] and [https://github.com/chocolate-doom/chocolate-doom Chocolate Doom project]
* Audio resampler from [https://www.foobar2000.org/components/view/foo_input_adplug foo_input_adplug]
* AVI player from [https://ffmpeg.org/ ffmpeg]
* Image decoder from [https://github.com/nothings/stb stb]


This program does '''NOT''' include any code or data files of the original game, which are proprietary and copyrighted by [http://www.softstar.com.tw/ SoftStar] Inc.
A/Start - Enter


== FAQ ==
B/Select - Menu


See [https://github.com/sdlpal/sdlpal/blob/wiki wiki]
L - Accelerate the game (not working on o3DS, up to maximum 3X of the speed so you can skip fight animation etc)


== Chat Room ==
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/sdlpal2.png
https://dlhb.gamebrew.org/3dshomebrews/sdlpal3.png


Want to chat with other members of the SDLPal community?
https://dlhb.gamebrew.org/3dshomebrews/sdlpal4.png
https://dlhb.gamebrew.org/3dshomebrews/sdlpal6.png


We have a Gitter Room which you can join below.
==Media==
'''SDLPAL 3DS Review (Chinese)''' ([https://www.youtube.com/watch?v=swZp8xbD2YI 充满游戏]) <br>
<youtube>swZp8xbD2YI</youtube>


[https://gitter.im/sdlpal/sdlpal Join the chat]
==Compatibility==
Compatible with both o3DS and n3DS.


== Building the game ==
Tested on Citra.


Currently, SDLPAL supports the following platforms: * Desktop platforms: ''Windows'' (both ''Windows Desktop'' and ''Universal Windows Platform''), ''Linux'' and ''macOS'' * Mobile platforms: ''Android'', ''iOS'' and ''Windows'' * Home consoles: ''3DS'', ''WII'', ''PSP'' and others (some of them are not actively maintained now)
==Changelog==
'''v2.0 2021/02/14'''
* Experimental release for 2021-02-14.


Before start building, you may find some inspiration from reading [https://github.com/sdlpal/sdlpal/blob/master/docs/.travis.yml Our travis scripts].
'''v1.1 2017/02/18'''
* Merged new functionality from [https://github.com/nbzwt/sdlpal/releases/tag/v1.1 mainline repository].


To build SDLPAL, there are three major steps you need to do: 1. Clone the source code from Github into your local folder using <code>git</code> or through corresponding GUI:
'''v1.0 2017/02/17'''
* Initial release, based on a extremely outdated version of sdlpal. Fully playable with Pal DOS resource file:


<source lang="shell">$ cd <parent-path-of-sdlpal>
==Credits==
$ git clone https://github.com/sdlpal/sdlpal.git</source>
Copyright (c) 2009-2011, [https://github.com/CecilHarvey Wei Mingzhi].
<ol start="2" style="list-style-type: decimal;">
<li>Update all the submodules used by SDLPAL using <code>git submodule</code> or through corresponding GUI:</li></ol>


<source lang="shell">$ cd <parent-path-of-sdlpal>/sdlpal
Copyright (c) 2011-2021, SDLPAL development team.
$ git submodule update --init --recursive</source>
<ol start="3" style="list-style-type: decimal;">
<li>Follow the platform-specific steps listed below.</li></ol>


== Windows ==
This program made extensive use of the following libraries:  
 
* [http://www.libsdl.org/ SDL]
=== Visual Studio ===
* [http://www.libsdl.org/projects/SDL_mixer/ SDL_mixer]
 
* [http://www.underbit.com/products/mad/ libmad]
To build SDLPAL as a Windows '''desktop''' app, you can use '''''Microsoft Visual Studio 2017''''' to open the solution file ''<code>sdlpal.sln</code>'' under the ''<code>win32</code>'' directory.
* [http://www.vorbis.com/ libogg &amp; libvorbis]
 
* [https://www.opus-codec.org/ libopus &amp; opusfile]
To build SDLPAL as a '''Universal Windows Platform''' app, you can use '''''Microsoft Visual Studio 2017''''' to open the solution file ''<code>SDLPal.UWP.sln</code>'' under the ''<code>winrt</code>'' directory.
* [http://www.fltk.org FLTK]
 
* [https://github.com/schellingb/TinySoundFont TinySoundFont]
=== MinGW ===
* OPL player from [http://adplug.sourceforge.net/ Adplug]
 
* OPL emulation cores from [http://www.dosbox.com DOSBOX project], [http://mamedev.org/ MAME project] and [https://github.com/chocolate-doom/chocolate-doom Chocolate Doom project]
To build SDLPAL as a Windows '''desktop''' app, you can also use '''''MinGW'''''. Steps for building under MinGW varies depends on the compiling environment you have:
* Audio resampler from [https://www.foobar2000.org/components/view/foo_input_adplug foo_input_adplug]
 
* AVI player from [https://ffmpeg.org/ ffmpeg]
* If you need to compile SDLPAL under '''Windows''' shell environment, please go to the root of the source code tree and type:
* Image decoder from [https://github.com/nothings/stb stb]
 
<pre class="cmd">C:\sdlpal&gt; cd win32
C:\sdlpal&gt; make -f Makefile.mingw</pre>
* If you need to compile SDLPAL under '''msys''' shell environment, please go to the root of the source code tree and type:
 
<source lang="bash">$ cd win32
$ make</source>
* If you need to cross-compile SDLPAL under '''Linux''' shell environment, please go to the root of the source code tree and type:
 
<source lang="bash">$ cd win32
$ # This builds a 32-bit executable.
$ make HOST=i686-w64-mingw32-
$ # This builds a 64-bit executable.
$ make HOST=x86_64-w64-mingw32-</source>
== Linux or Unix ==
 
To build the game, please go to the root of the source code tree and type:
 
<source lang="shell">$ cd unix
$ make</source>
You also need to have SDL 2.0 development files installed in the system. The compiled executable should be generated with the filename ''<code>sdlpal</code>'' at the current directory. By default, SDLPAL uses the FLTK library to provide setting GUI at launch. If you do not want to use the library, please define he macro <code>PAL_NO_LAUNCH_UI</code> in the <code>Makefile</code>. SDLPAL should also be able to compile and run under other Unix-like systems, however it’s not tested.
 
== macOS (OS X) ==
 
To compile, open ''<code>Pal.xcodeproj</code>'' with <code>Xcode</code>, and click Build. You need to have SDL framework installed at ''<code>/Library/Frameworks</code>''.
 
== iOS ==
 
To compile, please first install dependencies via CocoaPods following the above instruments, then open the project ''<code>ios/SDLPal/SDLPal.xcworkplace</code>'' with <code>Xcode</code>, and click Build.
 
<source lang="shell">$ cd iOS/SDLPAL
$ sudo gem install cocoapods # ONLY need do once on one machine
$ pod install # ONLY need do once in one repository</source>
== Android ==
 
To build the game, open the <code>android</code> directory through '''''Android Studio''''', and click <code>Make Project</code>.
 
* NOTE: <code>android/app/src/main/java/org/libsdl/app</code> is a link to <code>3rd/SDL/android-project/app/src/main/java/org/libsdl/app</code>. Deal with it properly if your git system does not create link automatically.
* NOTE: For Windows users, please put the repo in the root of a partition. A too long path may cause compilation to fail.
 
== Nintendo 3DS ==
 
To build the game, please go to the root of the source code tree and type:
 
<source lang="shell">cd 3ds
make
make cia</source>
You need to have ''DevkitPro ARM'' and ''SDL 1.2'' for 3DS portlib installed. Creating a CIA package is not required to play the game, but in order to to that, a seperate ''makerom'' tool is required. The compiled executable should be generated with the filename ''<code>sdlpal</code>'' at the current directory.
 
== Nintendo Wii ==
 
To build the game, please go to the root of the source code tree and type:
 
<source lang="shell">cd wii
make</source>
You need to have ''DevkitPro PPC'' and ''SDL 1.2'' for Wii portlib installed.
 
== Other platforms ==
 
To be written.
 
== Choosing the battle system ==
 
By default, SDLPAL builds a ''“classic”'' turn-based battle system which is designed to be 100% the same as the original game.
 
SDLPAL also provides a revised battle system ('''''deprecated''''' and will be removed in future) which is more exciting yet somewhat harder than the original game. If you prefer this battle system, please define the macro <code>ENABLE_REVISIED_BATTLE</code> in ''<code>Makefile</code>'' or in ''<code>common.h</code>'' and recompile the project.
 
== Running the game ==
 
The data files required for running the game are not included with the source package due to copyright issues, so you need to obtain them from a licensed game copy before you can run the game.
 
To run the game, copy all the files in the original game CD to a directory, then copy the built SDLPAL executable to the same directory, and run the executable.
 
Note that the filenames of data files should be all in lower-case under systems that use case-sensitive filesystems such as Linux or other Unix-like operating systems.
 
If you prefer using MIDI as background music source, please note that the MIDI playing feature is not yet complete under every supported platform. Currently, '''offical''' support is provided under ''Windows Desktop'', ''Universal Windows Platform'', ''Android'', ''iOS'' and ''macOS''. There is also a preliminary support for ''Linux'' that relys upon package ''timidity''. Other platforms do not support playing MIDI for now.
 
== Configuring the game ==
 
PAL has several variants using different and incompatible resource files, and SDLPAL supports several configuration options for supporting such variants. The default values are used to support the resources from original DOS version. If you want to change these configurations, you have two options: through the configuration GUI or by manipulating the configuration file ''<code>sdlpal.cfg</code>'' manually.
 
== GUI ==
 
The configuration GUI provides options for you to change the most common configuration options. If you launch SDLPAL for the first time, it will bring you to the configuration GUI by default. Once you have saved configurations from the GUI, the GUI will not to show again on subsequent launches. However, you have the opportunity to bring the GUI back on fatal game program errors or through the in-game system menu.
 
Currently, the configuration GUI is available under the following platforms: * Desktop platforms: ''Windows'' (both ''Windows Desktop'' and ''Universal Windows Platform'') and ''Linux'' * Mobile platforms: ''Android'', ''Windows'' and ''iOS''
 
Configuration GUIs for ''macOS'' is still unavailable for now and we welcome contributions to implement it.
 
== Manually ==
 
To set the configuration options manually, create a file named as ''<code>sdlpal.cfg</code>'' (make sure to use lower-case file name in case-sensitive filesystems) in the game directory created by the above step. Please refer to the [https://github.com/sdlpal/sdlpal/blob/master/docs/sdlpal.cfg.example example file] for format specfication.
 
== Reporting issues ==
 
If you find any issues of SDLPAL, please feel free to report them to the development team through Github’s issue tracking system using either English or Chinese.


== Contributing to the game ==
==External links==
* Official website - https://sdlpal.github.io/sdlpal
* Author's website (zephray) - https://www.zephray.me/post/sdlpal_3ds_port
* GitHub (SDLPAL team) - https://github.com/sdlpal/sdlpal
* GitHub (zephray) - https://github.com/zephray/sdlpal-old
* GitHub (weimzh) - https://github.com/weimzh/sdlpal
* GBAtemp - https://gbatemp.net/threads/release-the-legend-of-sword-and-fairy-sdlpal-a-classical-dos-rpg-port-to-3ds.461422


Any original code &amp; documentation contributions are welcomed as long as the contributed code &amp; documentation is licensed under GPL. You can use Github’s pull request system to submit your changes to the main repository here. But remember, as a step to keep the quality of code, you should write corresponding unit tests before your changes can be merged. The guidance of writting unit tests can be found [[tests|here]].
[[Category:3DS homebrew games]]
[[Category:Homebrew role playing games on 3DS]]

Latest revision as of 07:16, 5 February 2023

SDLPAL
Sdlpal5.png
General
AuthorSDLPAL Team
TypeRole playing
Version2.0
LicenseGPL-3.0
Last Updated2021/02/14
Links
SDLPAL & English Patch Download
Website
Source

SDLPAL is a SDL-based open-source cross-platform reimplementation of the classic Chinese RPG game The Legend of Sword and Fairy (Simplified Chinese: 仙剑奇侠传, Traditional Chinese: 仙劍奇俠傳, also known as Chinese Paladin, or PAL for short). It is availble in both Chinese and non-official English.

This port is created by Wei Mingzhi in 2009 and has been taken over by the SDLPAL development team. Many of the ideas of this program are based on documents from PAL Research Project, and portions of the code are based on the work done by Baldur and louyihua.

Note that this program does not include any code or data files of the original game, which are proprietary and copyrighted by SoftStar Inc.

Installation

Note: You must obtain the data files from a licensed copy of the game in order to run it.

Copy the CIA file to your SD card, then create a new folder named sdlpal in 3ds folder of your SD card.

Extract the game data files to the sdlpal folder (except for 2 folders and the AVI files, they are not needed).

Copy the sdlpal.cfg to the sdlpal folder just created (delete the .example at the end of the file name), so you should have sdmc:/3ds/sdlpal/sdlpal.cfg.

Open sdlpal.cfg, change CODEPAGE=0 to CODEPAGE=1 (delete the # in front of the line to enable it).

For n3ds/o3ds:

  • If you are using n3DS, turn on CPU+L2 boost in your CFW menu.
  • If you are using o3DS, open sdlpal.cfg, change both STEREO and USESURROUNDOPL to 0, lower both SAMPLERATE and OPLSAMPLERATE to 22050.

You can now install the CIA file and play the game in Chinese. To apply the English patch (included):

  • Extract everything except sdlpal.cfg in the win directory to the sdlpal directory of the SD card.
  • Overwrite m.msg, sss.mkf and word.dat, add m_chs.slf and m_eng.slf.
  • Open sdlpal.cfg and edit this line MESSAGEFILENAME=./m_eng.slf.

User guide

FAQ

Please see https://github.com/sdlpal/sdlpal/wiki/FAQ_CHS (Chinese).

Controls

D-Pad/C-Pad - Move, Select

A/Start - Enter

B/Select - Menu

L - Accelerate the game (not working on o3DS, up to maximum 3X of the speed so you can skip fight animation etc)

Screenshots

sdlpal2.pngsdlpal3.png

sdlpal4.pngsdlpal6.png

Media

SDLPAL 3DS Review (Chinese) (充满游戏)

Compatibility

Compatible with both o3DS and n3DS.

Tested on Citra.

Changelog

v2.0 2021/02/14

  • Experimental release for 2021-02-14.

v1.1 2017/02/18

v1.0 2017/02/17

  • Initial release, based on a extremely outdated version of sdlpal. Fully playable with Pal DOS resource file:

Credits

Copyright (c) 2009-2011, Wei Mingzhi.

Copyright (c) 2011-2021, SDLPAL development team.

This program made extensive use of the following libraries:

External links

Advertising: