Homebrew [Release]The Legend of Sword and Fairy (sdlpal) - A classical DOS RPG port to 3DS

Wenting

Member
OP
Newcomer
Joined
Feb 14, 2017
Messages
8
Trophies
0
Location
PA
Website
www.zephray.com
XP
79
Country
United States
aboutgame.jpg

Introduction from http://chinesepaladin.org/about:

XianJian QiXia Zhuan 仙劍奇俠傳 (also known as The Legend of Sword and Fairy and "PAL") is an action RPG created by Taiwan's Softstar Entertainment Inc. The game is considered by many as simply one of the best Chinese RPG ever created. Since its first release in 1995 (DOS Version), many new versions and sequels (including a prequel) were created. However, none could replace the breath-taking and tragic tale it was born from. Here, we meet our protagonist Li Xiaoyao; an aspiring martial artist and the lovely Zhao Ling'er, a charismatic Nuwa descendant.​

Now this game has been ported to Nintendo 3DS! In both Chinese and non-official English! This game is also on titledb. Compatible with both o3DS and n3DS.

Screenshots:
pal98-english-screenshot01.jpg

sdlpal-jpg.78540

Download:
Download latest release from github: https://github.com/nbzwt/sdlpal/releases
Source code available on github. This port is also merged into mainline sdlpal repository: https://github.com/sdlpal/sdlpal

Installation:
  1. Download sdlpal.3dsx and copy to your 3DS. (Or install the sdlpal.cia).
  2. Create a new folder called sdlpal in 3ds folder of your SD card.
  3. Copy the sdlpal.cfg to the sdlpal folder just created. (so you should have sdmc:/3ds/sdlpal/sdlpal.cfg)
  4. Download the offical PC game freeware (for Windows 98): http://update1.baiyou100.com/resource/Pal98rqp.zip
  5. Extract all the file to the sdlpal folder. (Actually, these AVI files and two folders are not needed, feel free not to copy them if you are running out of SD card space.)
  6. Open sdlpal.cfg, change CODEPAGE=0 to CODEPAGE=1
  7. If you are using new3DS, turn on CPU+L2 boost in your CFW menu.
    If you are using original 3DS, open sdlpal.cfg, change both STEREO and USESURROUNDOPL to 0, lower both SAMPLERATE and OPLSAMPLERATE to 22050.
  8. You are now good to play the game in Chinese. To play it in English, continue on. It's also a good idea to check if it works before continue.
  9. Download the english patch: http://www.romhacking.net/translations/2441/
  10. Extract everything except sdlpal.cfg in the win directory of the archive file to the sdlpal directory of the SD card. (so, overwrite m.msg, sss.mkf and word.dat, add m_chs.txt and m_eng.txt)
  11. Open sdlpal.cfg, append "MESSAGEFILENAME=./m_eng.txt" at bottom
  12. You are good to play it.

The installation is a little bit complicated due to the copyright issue. The game itself is release officially as a freeware, but I am not allowed to redistribute it, so you have to copy these resources files yourself.

How to play
The control is fairly easy, use DPAD or CPAD to move or select, A is enter and B is menu. You can also accelerate the game with L key (Sadly, almost no effect on o3DS, up to maximum 3X of the speed so you can skip fight animation etc.)

Getting stuck
Game related discussions can be found at http://chinesepaladin.org/phpBB/viewforum.php?f=3

Experiencing Issues with the program
Submit a new issue on the github, best in my own repo (nbzwt/sdlpal) instead of mainline repo (sdlpal/sdlpal).

Changelog
v1.1

Merged new functionality from mainline repository.
https://github.com/nbzwt/sdlpal/releases/tag/v1.1

v1.0
Initial release, based on a extremely outdated version of sdlpal. (I didn't figured out the main repo.) Fully playable with Pal DOS resource file:
https://github.com/nbzwt/sdlpal/releases/tag/v1.0
 

Wenting

Member
OP
Newcomer
Joined
Feb 14, 2017
Messages
8
Trophies
0
Location
PA
Website
www.zephray.com
XP
79
Country
United States
OH,仙剑奇侠传!!Any plan for 金庸群侠传 or 轩辕剑 枫之舞?
No plan yet. To my knowledge, "Xuan-Yuan Sword" don't have open source remake version (official or non-official). So, porting it to 3DS is virtually remaking these game with a new game engine... I just do not have time to do that. So, sorry. "Heroes of Jin Yong" do have a Pascal remake, but I am not familiar with that game, may be I would port it to C sometime... But most likely not, so don't expect that to happen.
Btw, please be aware that gbatemp doesn't quite allow discussion in foreign language, so better add english name of these titles next time.
 
Last edited by Wenting,

pdapanda

Well-Known Member
Member
Joined
Nov 19, 2014
Messages
728
Trophies
0
Age
29
XP
1,045
Country
Switzerland
No plan yet. To my knowledge, "Xuan-Yuan Sword" don't have open source remake version (official or non-official). So, porting it to 3DS is virtually remaking these game with a new game engine... I just do not have time to do that. So, sorry. "Heroes of Jin Yong" do have a Pascal remake, but I am not familiar with that game, may be I would port it to C sometime... But most likely not, so don't expect that to happen.
Btw, please be aware that gbatemp doesn't quite allow discussion in foreign language, so better add english name of these titles next time.
Oh,I found the Xuan-yuan Sword 2 spin off haven't been remade into sdl, actually what we have found across all the other platform is just a game running on Dosbox,
Thank you for your notice!

By the way, can Onescripter,which is able to emulate a lot of old fashioned electric novels,be ported to 3DS with the sdl lib?
 
Last edited by pdapanda,

bambookun

New Member
Newbie
Joined
Oct 12, 2013
Messages
3
Trophies
0
Age
30
XP
95
Country
Switzerland
I installed it but the game runs without any voice, so I checked your github page, it says" Audio resampler not working - set OPL samplerate equals to main samplerate.", I can only find two samplerate number in sdlpal.cfg and they are the same:
OPLSAMPLERATE=44100
SAMPLERATE=44100
Am I doing wrong?
 

pdapanda

Well-Known Member
Member
Joined
Nov 19, 2014
Messages
728
Trophies
0
Age
29
XP
1,045
Country
Switzerland
I installed it but the game runs without any voice, so I checked your github page, it says" Audio resampler not working - set OPL samplerate equals to main samplerate.", I can only find two samplerate number in sdlpal.cfg and they are the same:
OPLSAMPLERATE=44100
SAMPLERATE=44100
Am I doing wrong?
If you are using new3DS, turn on CPU+L2 boost in your CFW menu.
If you are using original 3DS, open sdlpal.cfg, change both STEREO and USESURROUNDOPL to 0, lower both SAMPLERATE and OPLSAMPLERATE to 22050.
 

bambookun

New Member
Newbie
Joined
Oct 12, 2013
Messages
3
Trophies
0
Age
30
XP
95
Country
Switzerland
I use luma3ds on my N3DS, and my cfw options about New 3DS CPU are : off() clock() l2() clock+l2(*), do I need to change the SAMPLERATE number?

--------------------- MERGED ---------------------------

I check the SDL release info based on the version this game uses, and find out SDL 1.2.15 doesn't support sound, so I'll just stop there.

"To Do List for SDL 1.2.15

- Fix mouse/stylus support
- Complete Joystick support
- Add sound support
- Integrate 3ds main menu events handling in the SDL_events handling routine"
 

Wenting

Member
OP
Newcomer
Joined
Feb 14, 2017
Messages
8
Trophies
0
Location
PA
Website
www.zephray.com
XP
79
Country
United States
Excellent :D thanks :D i will install it later. :D i have heard a little about this game. :) i need to try it :D
I use luma3ds on my N3DS, and my cfw options about New 3DS CPU are : off() clock() l2() clock+l2(*), do I need to change the SAMPLERATE number?

--------------------- MERGED ---------------------------


I check the SDL release info based on the version this game uses, and find out SDL 1.2.15 doesn't support sound, so I'll just stop there.

"To Do List for SDL 1.2.15

- Fix mouse/stylus support
- Complete Joystick support
- Add sound support
- Integrate 3ds main menu events handling in the SDL_events handling routine"

This game used my own fork of SDL 1.2.15 which fixed these things, so this should not be a concern.

And correct, if you are using luma3ds and checked clock+l2, you do NOT need to change the SAMPLERATE number. Your configuration looks good to me.

So, now your problem is that your game runs and you can play it without ANY sound (BGM or sound effect), is that correct? If this is the case, first, simply try to reboot your 3DS with sound on and try again. This problem do occasionally happen.
If it doesn't help, I would recommend you to run DspDump in your HBL again. An outdated DspFirm could cause this.

--------------------- MERGED ---------------------------

Oh,I found the Xuan-yuan Sword 2 spin off haven't been remade into sdl, actually what we have found across all the other platform is just a game running on Dosbox,
Thank you for your notice!

By the way, can Onescripter,which is able to emulate a lot of old fashioned electric novels,be ported to 3DS with the sdl lib?

ONScripter is in my plan already. I just think that the screen resolution is too poor for many VNs... It would be much better if 3DS have a screen resolution like 640x480 or so.
 
Last edited by Wenting,

bambookun

New Member
Newbie
Joined
Oct 12, 2013
Messages
3
Trophies
0
Age
30
XP
95
Country
Switzerland
This game used my own fork of SDL 1.2.15 which fixed these things, so this should not be a concern.

And correct, if you are using luma3ds and checked clock+l2, you do NOT need to change the SAMPLERATE number. Your configuration looks good to me.

So, now your problem is that your game runs and you can play it without ANY sound (BGM or sound effect), is that correct? If this is the case, first, simply try to reboot your 3DS with sound on and try again. This problem do occasionally happen.
If it doesn't help, I would recommend you to run DspDump in your HBL again. An outdated DspFirm could cause this.


I try to use DSPDUMP but with the clock+l2 checked the HBL won't open, after turning off the cpu options in luma3ds I successfully ran the HBL and DSPDUMP, and the voice works fine now. Thank you for porting this game~~
 

GravitySuitCollector

Well-Known Member
Newcomer
Joined
Feb 7, 2017
Messages
76
Trophies
0
Location
Oregon
XP
50
Country
United States
Thanks. :) I got it up and running just fine in luma's homebrew channel implementation following your instructions, I think (I needed to get the DSP file for sound; once I did, it worked just fine). Now, I just need to play it.
 
General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://i.imgur.com/3tmWORg.jpeg