GithubHelp home page GithubHelp logo

sdlpal / sdlpal Goto Github PK

View Code? Open in Web Editor NEW
1.7K 1.7K 346.0 18.91 MB

SDL-based reimplementation of the classic Chinese-language RPG known as PAL.

Home Page: https://sdlpal.github.io/sdlpal

License: GNU General Public License v3.0

C 97.75% C++ 1.50% Makefile 0.10% Objective-C 0.22% Objective-C++ 0.05% Shell 0.01% Ruby 0.01% GDB 0.01% GLSL 0.07% JavaScript 0.04% HTML 0.02% Perl 0.05% Assembly 0.19%
c game rpg

sdlpal's Introduction

SDLPAL

GitHub CI AppVeyor Download

SDLPAL is an SDL-based cross-platform reimplementation of the classic Chinese RPG game known as PAL.

Check the link above for a Web-based demo of SDLPAL. It should work on most of modern browsers (e.g., Google Chrome, Mozilla Firefox, Safari, ...), but problems might exist on some browsers. Before you can enjoy the game, please prepare a zipped file containing the game resource data.

gitee镜像

**大陆地区用户如从GitHub下载代码存在困难,请使用gitee镜像 (每小时自动更新)。

LICENSE

SDLPAL was originally created by Wei Mingzhi from 2009. Now it is owned by the SDLPAL development team. Please see AUTHORS for full author list.

Copyright (c) 2009-2011, Wei Mingzhi <[email protected]>.
Copyright (c) 2011-2024, SDLPAL development team.
All rights reserved.

SDLPAL is distributed under the terms of GNU General Public License, version 3 as published by the Free Software Foundation. See LICENSE for details.

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.

This program made extensive use of the following libraries:

This program does NOT include any code or data files of the original game, which are proprietary and copyrighted by SoftStar Inc.

FAQ

See wiki

Building the game

Currently, SDLPAL supports the following platforms:

  • Desktop platforms: Windows (both Windows Desktop and Universal Windows Platform), GNU/Linux and macOS
  • Mobile platforms: Android, iOS and Windows
  • Home consoles: 3DS, WII, PSP and others (some of them are not actively maintained now)

Before start building, you may find some inspiration from reading Our travis scripts.

To build SDLPAL, there are three major steps you need to do:

  1. Clone the source code from GitHub into your local folder using git or through corresponding GUI:
$ cd <parent-path-of-sdlpal>
$ git clone https://github.com/sdlpal/sdlpal.git
  1. Update all the submodules used by SDLPAL using git submodule or through corresponding GUI:
$ cd <parent-path-of-sdlpal>/sdlpal
$ git submodule update --init --recursive
  1. Follow the platform-specific steps listed below.

Windows

Visual Studio

To build SDLPAL as a Windows desktop app, you can use Microsoft Visual Studio 2017 to open the solution file sdlpal.sln under the win32 directory.

To build SDLPAL as a Universal Windows Platform app, you can use Microsoft Visual Studio 2017 to open the solution file SDLPal.UWP.sln under the winrt directory.

MinGW

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:

  • If you need to compile SDLPAL under Windows shell environment, please go to the root of the source code tree and type:
C:\sdlpal> cd win32
C:\sdlpal> make -f Makefile.mingw
  • If you need to compile SDLPAL under msys shell environment, please go to the root of the source code tree and type:
$ cd win32
$ make
  • If you need to cross-compile SDLPAL under GNU/Linux shell environment, please go to the root of the source code tree and type:
$ 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-

GNU/Linux or Unix

To build the game, please go to the root of the source code tree and type:

$ cd unix
$ make

You also need to have SDL 2.0 development files installed in the system. The compiled executable should be generated with the filename sdlpal 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 PAL_NO_LAUNCH_UI in the Makefile. SDLPAL should also be able to compile and run under other Unix-like systems, however it's not tested.

macOS

To compile, open Pal.xcodeproj with Xcode, and click Build. You need to have SDL framework installed at /Library/Frameworks.

iOS

To compile, please first install dependencies via CocoaPods following the above instruments, then open the project ios/SDLPal/SDLPal.xcworkplace with Xcode, and click Build.

$ cd iOS/SDLPAL
$ sudo gem install cocoapods # ONLY need do once on one machine
$ pod install # ONLY need do once in one repository

Android

To build the game, open the android directory through Android Studio, and click Make Project.

  • NOTE: android/app/src/main/java/org/libsdl/app is a link to 3rd/SDL/android-project/app/src/main/java/org/libsdl/app. Deal with it properly if your git system does not create link automatically.

  • NOTE: For Windows users, please put the repo at the root of a disk partition. A 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:

cd 3ds
make
make cia

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 sdlpal at the current directory.

Nintendo Wii

To build the game, please go to the root of the source code tree and type:

cd wii
make

You need to have DevkitPro PPC and SDL 1.2 for Wii portlib installed.

Other platforms

To be written.

Running the game

The data files required for running the game are not included with the source package due to copyright issues. You need to obtain them from a licensed copy of the game 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 GNU/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 GNU/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 sdlpal.cfg 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 GNU/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 sdlpal.cfg (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 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

Any original code & documentation contributions are welcomed as long as the contributed code & 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 here.

sdlpal's People

Contributors

0x7c13 avatar cecilharvey avatar crispy-fried-chicken avatar liuzhier avatar louyihua avatar m-ht avatar opl3chipfan avatar palalexx avatar palmusicfan avatar palxex avatar shikisuen avatar soarqin avatar timgates42 avatar weimzh avatar wolfcon avatar zephray avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdlpal's Issues

当铺bug

最新build里,所有当铺都有两个bug(测试环境98柔情安卓)

  1. 出售物品价格的那个框会和上方的物品列表框互相挡住并导致闪烁(如果觉得我描述不清楚,可以自己测试看一下,移动光标时很明显一直在那里闪)
  2. 排在最后的一个物品被出售后光标不会自动移动到之前的一个物品上,而是直接消失,需要再次使用方向键移动光标才会再次出现
    希望尽快修复,谢谢

Fltk library

When I compile the source in Arch Linux, I find that the file in unix/unix.cpp use the fltk library
as <Fl/Fl.H> while the library in the system is FL/Fl.H. So the case is different. I create a symbolic
link in the unix directory as Fl -> /usr/include/FL to build the sdlpal without fault.

I don't know whether other distribution use the Fl. If it is only the Arch Linux, then it's a
small problem. But if it is a wider condition, you may change Fl to FL.

关于原版敌人2次攻击与我方手动防御的问题

qq 20180803165330

如图,原版中我方选择手动防御,在敌人结束攻击前会一直后退,当敌人结束攻击回到我方回合,被攻击者返回原坐标。

我方直接被击中或者自动格挡,人物都只是往后退一格,接着就回到原坐标。

SDLPAL中不管是手动防御或者是自动格挡、直接被击中,人物都只是往后退一格,接着就回到原坐标。

2次攻击:
原版里只要DATA中敌方的2次行动不为0(大部分2次行动的敌人都为1,拜月教主、长鞭苗女、苗人拳1、苗枪卒1、树妖为2) 则敌人必定攻击2次 ,如果此次战斗有2个敌人都是2次行动,且他们的行动顺序也是随机的,比如1221 1122 等等

SDLPAL里 DATA里不管是1还是2,敌人都不是必定攻击2次,而是有概率只攻击1次。

物品列表说明文字bug

当物品说明文字某一行长度达到32字节时(例如凤鸣刀的说明第一行等),第32个字节无法显示。也就是只能一排显示31字节。
但游戏中有多个道具的说明某一排会达到32字节。
理论上微调字符尺寸可以解决?
测试环境安卓98柔情

Do this project have midi working properly?

I have installed wildmidi, along with timidity++, soundfont, but still get no BGM, The game is working properly though, is it a problem of my computer or BGM is not implemented yet. Mine is Manjaro 17.0. Thank you in advance.

Multiple bugs when build with commit b78537e

Hi,

Built with commit b78537e in MSYS2,
1. No RIX music & sfx (both PalWIN & PalDOS)

2. Please restore the original title screen. (PalWIN only)
1

3. Fatal error on pressing '新的故事' (PalWIN only)
2

All of them is working with 170509 commit 17f2b88.

Regards.

Color Tone Problem on SDL2/macOS when not using sRGB profile

From PCem emulation of Win95 version, I found the color tone is notably difference from the sdlpal SDL2 version. Then I made more tests. Finally I found that there're two groups( no matter DOS/Win95 resource used ): one is PCem/dosbox, the other is palx/sdlpal/win95 perfect patch; the previous group seems more like the scene in my memories. Consider all the latter 3 uses the rgb*4 VGA palette conversation method, is it means there're a more precious method?
2018-02-17 11 56 51

关于中混乱后的一个小问题还有显示比例的问题

试了Releases中的两个版本glsl_test和v2.0.2017.1114,apk和win的都用过,共同的一个小bug是我方中了混乱后出现(不是太好描述,无意中发现的),比如ABC三个角色,B中了混乱,回合开始,A先行动解除了B的混乱,B第二个行动,自动攻击,C第三个行动,那么假如C在前一回合没有防御,这回合的指令(使用技能或者投掷物品就无效)变成了普通攻击;如果C是在B被解除混乱自动攻击之前进行行动的就没有问题。
有用早期的sdlpal试过,就不会出现这种情况,自己也在代码里找了看过了,不过没看出来是什么问题。
小问题,不过如果能处理看看就最好啦,还有glsl_test版本用起来分辨率一直是4:3,要不就不用保持纵横比,否则16:10这个是没用的,不知道现在修复了没有。

cannot reload the savefile

I used fedora 25 on my PC and I have tried sdlpal with an original DOS-version of Pal1, I can run the game smoothly, but the problem is that after I saved the game and then when I readed it ,it went to quit the game. I think I maybe have met a bug. what I should say is the number seemed much larger than normal in the save optionbar. after that I have tried to run the game with dosbox, It ran all in the right way. that means I can save and load rightly.

Game crash on text overflow when using SDL 1.2

When text overflows (which happens with the unofficial english translation) the game crashes with DivisionByZero in function SDL_SoftStretch.
The function SDL_SoftStretch (in SDL 1.2) crashes when the height or width of the source rectangle is zero.
This happens on text overflow in function VIDEO_UpdateScreen (in file video.c) on line:
SDL_SoftStretch(gpScreen, (SDL_Rect *)lpRect, gpScreenReal, &dstrect);

I fixed it by adding a check:
if ((dstrect.w != 0) && (dstrect.h != 0)) SDL_SoftStretch(gpScreen, (SDL_Rect *)lpRect, gpScreenReal, &dstrect);

(dstrect width and height is directly dependent on source rectangle width and height, so the check is valid)

Compiling issue under Windows

Compiling under Windows msys2 shell environment and getting this error:

$ make
[CC] ../adplug/fmopl.c
/bin/sh: sdl2-config: command not found
/bin/sh: gcc: command not found
make: *** [Makefile:38: ../adplug/fmopl.o] Error 127

'fmopl.o' file is missing in ../adplug/ directory

Steps:

  1. Followed the git instructions to clone sourcecode
  2. In msys2 before compiling,
    $ pacman -Syu
    $ pacman -Su
    $ pacman -S make
    $ pacman -S mingw-w64-i686-SDL2

pacman SDL2 instructions courtesy of PalMusicFan

Any ideas how to resolve it?

Thanks.

P.S. Encounter a similar error in unix/linux with 'unix' folder
make: *** [../adplug/adlibemu.o] Error 127

Problem reading names of picked up items

When an item is picked up, the name of the item is displayed. In the original DOS version, the name was displayed for a while and then disappeared without pressing any key. In sdlpal the name is displayed until a key is pressed. But when any key is pressed when displaying the name (for instance an arrow key), the name disappears really fast (because the pressed key is repeated) so I can't read the name of the item I picked up. The name disappears much faster than in the original DOS version.

Can this be fixed somehow ? Maybe setting a minimum time the name is displayed or allowing only kKeySearch and kKeyMenu to close the dialog with the name of the item ?

In 3DS build, g++ complain about implicit type conversion in mame OPL emulation

Error as follows:

c:\devkitpro\msys2\tmp\sdlpal\adplug\mame/ymf262.cpp.h:657:19: error: invalid conversion from 'int*' to 'int32_t*' {aka 'long int*'} [-fpermissive]
   slot->connect = &chip->chanout[slot->conn_enum - 1];
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\devkitpro\msys2\tmp\sdlpal\adplug\mame/ymf262.cpp.h:659:19: error: invalid conversion from 'int*' to 'int32_t*' {aka 'long int*'} [-fpermissive]
   slot->connect = &chip->phase_modulation;
                   ^~~~~~~~~~~~~~~~~~~~~~~

Can be fixed by adding -fpermissive to the CXXFLAGS, but I do not think this is the preferred solution here. Adding explicit type conversion would probably hurt other ports (on, e.g. 64 bit systems. Do we have any 16 bit or even 8 bit ports?)

KeepAspectRatio not works when EnableGLSL=1 on GL2/GLES2 platforms

Platforms that founded have the problem:

  • Old Android devices, that only supports OpenGL ES 2.0
  • ANGLE emulated GLES2 context, like UWP and most WebGL implementations on Windows
  • macOS, on official SDL2, or comment FORCE_OPENGL_CORE_PROFILE in video_glsl.c on current master ( official SDL2 disables requesting OpenGL Core Profile, and the SDLPal fork enabled it optionally and enforced it in current master; on Windows modern drivers, apps that requests GL2.1 - SDL default - will automatically get GL3/4 compatible profile context - base on hardware - that don't have this problem, but on macOS will get an actual GL2.1 context, so only macOS has the problem )

Steps to reproduce( on the above platforms ):

  1. EnableGLSL=1, KeepAspectRatio=1
  2. Set TextureWidth/Height to any aspect that not same as WindowWidth/Height implies( on mobile devices, the physical display size ), so black bars is expected
  3. open SDLPal, no black bar, the game content is expanded to full window.

Not sure where is the problem currently, anyone is welcome to fix it :)

Native MIDI implementation for Linux using ALSA sequencer

In the attachment is a native MIDI implementation for Linux (and only Linux) using ALSA sequencer.
native_midi.zip

Usable synth is detected automatically, but it can be overridden using MIDIUNIT environment variable.
It supports volume changes by adjusting the note velocity.
Add the parameter -lasound to LDFLAGS when compiling.

I played the whole game with it, so I'd say it's tested and works.

依然是物品栏的问题

感谢对我昨天提出问题的修复,我尝试编译了一下最新的版本,但是出现了若干新问题

  1. 所有物品的图片在物品栏下都偏右了,应该往左边几个像素 (不过昨天文字偏右的问题在最新build里倒是修好了,如果这两个东西有关系的话,可能要把他们分开来写代码了)
  2. 当铺环境下,金钱和售价框这两个图片感觉在光标移动时会出现反复叠加的情况。我看出来了,原因是那两个框都有下方阴影。一开始颜色很淡,移动一两次后变得很深。。所以应该是同一个图片多次叠加,加上透明效果造成的。可以的话这俩图片可以选择仅加载一次?或者刷新画面?个人觉得加载一次优于刷新画面。
  3. 依然是光标的逻辑,造成了以下几个问题。
    a. 当物品栏第一个物品是消耗品,且被用到数量为0时,光标消失
    b. 当物品栏的任何物品被消耗到0时,光标位置自动减少1,到了前一个物品那里。
    所以逻辑上应该修改如下
    如果光标位置的物品被消耗成0个,光标位置不变。但是,if光标位置是物品栏最后一个,光标位置减一。这个昨天我提到过XD
    期待修正,我将持续测试,谢谢

portrait screen mode for Android version

Hi There,

Just go back to the original version of sdlpal on google play, there is an option that we can run the game in portrait screen mode, which means that the upper half of the screen is the game, and the keypads at below.
The benefit from this mode is that... the screen resolution is lower, so the quality of the graphic is higher.
What's more, it is easier for many users to play and hold the mobile phone, or even with one hand only.
After that, the whole game screen is not obstricted by the keypads.

Can you please make it in Android version?

Thanks.

macOS下点击app报错bpf.mkf无法找到的fix.

在macOS下编译后,如果直接./Pal不会有错
但是点击app图标或者在别的路径执行Pal会报告错误。

错误的原因是通过"./"来访问资源文件的话如果Pal的工作路径不是Pal所在位置会导致无法定位。

解决方法是在main.c大约490行之后PAL_Init()之前加入代码:
495
496 //fix a bug on macOS
497
498 char *work_path = strdup(argv[0]);
499
500 int len = strlen(work_path);
501
502
503 while(--len) {
504 if(work_path[len] == '/') {
505 work_path[len] = '\0';
506 break;
507 }
508 }
509
510 //printf("work_path=%s\n", work_path);
511
512 chdir(work_path);
513
514
515 //
516 // Initialize everything
517 //
518 PAL_Init();

我预编译了一个版本:在我的(sudormroot)下的SDLPal-prebuild-macOS

MIDI output using WildMIDI library

In the attachment is an implementation of MIDI output using WildMIDI library.
midplay.zip

It uses the same interface as RIX, OGG, MP3 output.
It could be used by adding a new value to the Music configuration option or by adding a new configuration option which selects which MIDI output to use - this or native midi.
It was written against the release v2.0.2017.0523 and it's not adjusted to the latest code.

wingw 编译错误

C:\mingw\bin>make -f "F:\Temp\sdlpal-master\win32\Makefile.mingw"
[LD] sdlpal-mingw.exe
C:/mingw/bin/../lib/gcc/mingw32/5.1.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL2main
C:/mingw/bin/../lib/gcc/mingw32/5.1.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL2
collect2.exe: error: ld returned 1 exit status
F:\Temp\sdlpal-master\win32\Makefile.mingw:38: recipe for target 'sdlpal-mingw.exe' failed
mingw32-make: *** [sdlpal-mingw.exe] Error 1

背景音乐选择MP3/OGG有问题

如果背景音乐选择MP3/OGG,在游戏过程中读取进度(该进度为当前场景)则背景音乐会消失,离开当前场景(下一个场景如果还是播放当前音乐依然没有音乐)变正常。 读取的进度如果为其他场景没有这个问题。

In 3DS build, BIT() macro definition conflict with libctru

In the 3DS build, one macro definition in MAME OPL emulation would conflict with libctru (3DS standard library) and prevent the project being built:

In file included from c:\devkitpro\msys2\tmp\sdlpal\adplug\mame_opls.h:29,
                 from C:/devkitPro/msys2/tmp/sdlpal/3ds/../adplug/emuopls.cpp:44:
c:\devkitpro\msys2\tmp\sdlpal\adplug\mame/mame.h:40: warning: "BIT" redefined
 #define BIT( _INPUT_, _BIT_ ) ( ( _INPUT_) >> (_BIT_)) & 1

In file included from C:/devkitPro/libctru/include/3ds.h:12,
                 from ../pal_config.h:61,
                 from ../../common.h:176,
                 from c:\devkitpro\msys2\tmp\sdlpal\adplug\dosbox_opls.h:28,
                 from C:/devkitPro/msys2/tmp/sdlpal/3ds/../adplug/emuopls.cpp:43:
C:/devkitPro/libctru/include/3ds/types.h:47: note: this is the location of the previous definition
 #define BIT(n) (1U<<(n))

This can be solved by changing BIT to, for example, BIT_MAME. I can create a pull request but I want to ask first if this is the preferred fix to this problem, or there is any better solution to this.

Release v2.0.2017.0521 Queries

Hi,

  1. Is there a 32bit release for WIN in the release thread? Which one?
    Would like to package that in the next ENG translation release, rather than using a self-compiled one for authenticity & smaller file size. Self-compiled comes at 10MB.

  2. 'sdlpal.exe' in release thread does not show version on its window title like the mingw build.
    1

  3. Android - Is the below circled access really required?
    2

  • Not comfortable granting identity access to a game...

Regards.

建议设置3ds的makefile文件的 INCLUDES 变量

如果不设置此变量,会导致用devkitpro编译时找不到包含的头文件。如

$ make
rixplay.cpp
arm-none-eabi-g++ -MMD -MP -MF /e/3dswork/sdlpal-master/3ds/build/rixplay.d -g -Wall -O2 -mword-relocations -fomit-frame-pointer -ffunction-sections -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft -I/opt/devkitpro/libctru/include -I/opt/devkitpro/portlibs/armv6k/include -I/opt/devkitpro/portlibs/3ds/include -I/opt/devkitpro/libctru/include/SDL -I/opt/devkitpro/portlibs/armv6k/include/SDL -I/opt/devkitpro/portlibs/3ds/include/SDL -I/e/3dswork/sdlpal-master/3ds/build -DARM11 -D_3DS -D__3DS__ -D__N3DS__ -DPAL_HAS_PLATFORM_SPECIFIC_UTILS -I. -fno-rtti -fno-exceptions -std=gnu++14 -c /e/3dswork/sdlpal-master/3ds/../rixplay.cpp -o rixplay.o
In file included from e:\3dswork\sdlpal-master\global.h:26:0,
from E:/3dswork/sdlpal-master/3ds/../rixplay.cpp:24:
e:\3dswork\sdlpal-master\common.h:175:10: fatal error: pal_config.h: No such file or directory
#include "pal_config.h"
^~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [/opt/devkitpro/devkitARM/base_rules:80:rixplay.o] 错误 1
make: *** [Makefile:143:build] 错误 2

About Issue 68

Hi There,

Just tested that after the change of issue 68, also win95 version cannot use a key pressing to make the "get item" box disappeared, but we just need to wait for about 2 seconds for it to disappear itself.
Previously, we can simply press a button to make it disappeared.
So does it able to make it a difference between win95 and Dos version? Or it will be very much inconvenience..

Thanks.

A few layout problems.

  1. After choosing "旧的回忆", SAVE SLOTS stays even if player presses ESC.
  2. There is something wrong with update dialog rects.
    Please edit the WORDS Item No. 32 of the message file, like this:
    32=Improved
    Then, check Li Xiaoyao's Lv UP dialog rects, please.

Little Suggestions on Positions of the desc and images in item interface

Just refer to the previous comment of you guys, and had a carefully test, I just found that the positions like below are the most suitable ones, which are also seems the same as the original game.

Hopefully that the little changes below can be merged into your code, thank you.

line 3458 of script.c

	   int YBase = (wEventObjectID & PAL_ITEM_DESC_BOTTOM) ? 151 - gConfig.ScreenLayout.ExtraItemDescLines * 16 : 3;

line 232 of itemmenu.c

  • PAL_RLEBlitToSurface(bufImage, gpScreen, PAL_XY(8, 147 - iPictureYOffset));

[request] gradle build system support for android

Seems ant scripts has been removed in latest Android SDK tools for macOS, which is the current build system for SDLPal Android. Not sure whether it will happen to windows/linux version in future. Does anyone familiar with migration from ant to gradle build system?

File Picker crash on LineageOS/CM

Test env: Oneplus ONE(bacon), CM14.1, Android 7.1.2
Everytime I clicked the "Browse" button it pops up a picker view( which content is empty ), then after 0.1s crash and exit.
Below is the logcat log during the crash:
filepicker-crashlog.txt
CyanogenOS 13 Android 6.0.1 almost same.

LineageOS Loading Data Issue

i just found that when I am using lineageos 14.1, there is an issue on loading game data files.
I set the sdlpal folder under sdcard directory, and using the in-app settings to point the data directory to there, then it works. but after the session of sdlpal is killed or the phone is rebooted, though the in-app settings are still correct, it will return an error on opening data files. I need to redirect in sdlpal app (though nothing is changed) then save settings, and it work again. it happens every time and is confirmed not a random issue.
thanks.

Need help! I've got some troubles when compiling the game...

Hi I'm Chen. I've got some problems when I was trying to compile sdlpal under WIN10 64bit system using mingw32. I get into the folder win32 and type make -f Makefile.mingw, I will stuck here

In file included from ../common.h:38:0,
from ../main.h:25,
from ../text.c:27:
D:/CodeBlocks/MinGW/include/wchar.h:119:37: note: expected '__builtin_va_list' but argument is of type 'LPWSTR'
_CRTIMP int __cdecl __MINGW_NOTHROW vswprintf (wchar_t*, const wchar_t*, __VALIST);
^
../text.c:2023:15: error: too many arguments to function 'vswprintf'
cur_cnt = vswprintf(buffer, buffer_end - buffer, cur_fmt, apd);
^
In file included from ../common.h:38:0,
from ../main.h:25,
from ../text.c:27:
D:/CodeBlocks/MinGW/include/wchar.h:119:37: note: declared here
_CRTIMP int __cdecl __MINGW_NOTHROW vswprintf (wchar_t*, const wchar_t*, __VALIST);
^
In file included from ../common.h:44:0,
from ../main.h:25,
from ../text.c:27:
../text.c:1981:31: warning: 'WCHAR' is promoted to 'int' when passed through '...'
chr_buf[0] = va_arg(ap, WCHAR);
^
../text.c:1981:31: note: (so you should pass 'int' not 'WCHAR' to 'va_arg')
../text.c:1981:31: note: if this code is reached, the program will abort
Makefile.mingw:37: recipe for target '../text.o' failed
mingw32-make: *** [../text.o] Error 1

There are few warnings and errors. How can I fix this?
Thx! Best regards!

Bug of Repeat Function in Battle Mode

It is not a bug which can be seen every time inside the battle mode, and I only found it at the scenario as below.
When the team are inside SUOYAO TOWER, and Miss Zhao joined the team, and they dive into the bottom of the tower to destory the swords...
At that time, Miss Zhao is standing on the left side, Mr Li is in the middle, and Miss Lin is on the right.
When we use R key to repeat the magic skills of all the 3 guys used last roung, and if the MP of Miss Lin is not enough to use the magic skill, but Mr Li and Miss Zhao has enough MP to do so, only Miss Zhao can use the magic skill, and the other 2 will both use normal attack with their weapons.
I believe that the it will be that only Miss Lin to use the weapon attack, but the other 2 guys should use magic skills in the original game.
So could you please have a check?
The battle mode I tested was the classic one.
Thanks.

Application crashes possibly related to PAL_swprintf?

When an item is stolen, LEVEL UP, etc, the application crashes.

"Unhandled exception at 0x7734C6D1 in sdlpal.exe: 0xC00001A5: 偵測到無效的例外處理常式。 (parameters: 0x00000003)."

"Exception thrown: write access violation.
dest was 0x152F000.
If there is a handler for this exception, the program may be safely continued."

Environment:
VS2015, SDL2.0.5, Windows10.

Can't save on Android

Hello everyone!

I downloaded the sdlpal apk from the play store [https://play.google.com/store/apps/details?id=com.sdlpal.sdlpal ] and I can play [with the english patch], even I can load my previous saves from while I was playing on the pc, but the game won't let me save.

I used the 3 OPL emulators included with same luck.

Am I doing anything wrong?

Thanks for your time.

linux下无声

我编译后,放在98版本下,avi能播放,只是任何环境下都无声

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.