Commit Graph
386 Commits
Author SHA1 Message Date
kichikuou 3d70d00bce Add unit test for gameresource.c android-0.2.2 2020-07-11 19:12:45 +09:00
kichikuou f2fbf54c32 Move registerGameFiles to xsystem35.c 2020-07-11 18:34:27 +09:00
kichikuou b4d2c0832e Clean up gameresource.c 2020-07-11 18:34:24 +09:00
kichikuou d777b18b55 Game Resource: Allow file names containing spaces 2020-07-11 18:23:39 +09:00
kichikuou 7b3efd9aaa Move *.gr reader code to gameresource.c 2020-07-11 18:22:05 +09:00
kichikuou 90eb139994 Merge pull request #17 from nunuhara/missing_font_fix
Fix segfault when non-existent font specified
2020-07-11 16:15:13 +09:00
Nunuhara Cabbage aa87e3e8c0 Fix segfault when non-existent font specified 2020-07-10 23:43:46 -07:00
kichikuou 1cd949f597 CMake: Fix X11 + SDL_mixer build
Stop using SDL2_FOUND to determine if SDL2 should be used or not,
because it may be defined as a side effect of
pkg_check_modules(SDL2_mixer).
2020-06-27 15:05:56 +09:00
kichikuou 426cdaa836 Fix compatibility issues around maximum index of array variables
The second argument of DC command specifies the maximum index of the new
array. That means, `DC _,n,_:` allocates an array of size n+1 (a[0] to
a[n]).

This patch makes sure various D commands work with a[n], and a[n] is
correctly saved and loaded.

Now loadSysVar() does not shrink array variables using the data count in
the save file, so that files saved by old xsystem35 binary can be safely
loaded. This also matches the behavior of System3.9.
2020-06-27 13:16:22 +09:00
kichikuou 8db5a9cd65 Implement text decoration type 4 and 10 2020-06-21 11:10:19 +09:00
kichikuou 47f82e87c5 Add guards against incomplete SJIS bytes 2020-06-21 09:49:13 +09:00
kichikuou 86470e543a Rework string variables
- strVar is now allocated as a vector of indefinite length buffers
  rather than a single contiguous buffer.
- Strings can be any length, but truncated to (strvar_len * 2) bytes
  when saved to a file, for backward compatibility.
- Now string commands treat 1-byte characters in the same way as System
  3.9. This potentially fixes bugs in English translated games.
2020-06-20 22:29:22 +09:00
kichikuou a23ce19433 Add tests for string variables (M commands)
xsystem35 does not pass yet.
2020-06-20 13:00:32 +09:00
kichikuou 1cf197513c Use const strings in message related functions 2020-06-20 10:53:38 +09:00
kichikuou 64c3c28336 CI: Run SDL2 and X11 builds on Linux 2020-06-20 10:52:35 +09:00
kichikuou 7309ed012f Make DspDeviceSync no-op in SDL graphics 2020-06-18 21:49:51 +09:00
kichikuou 515a92544b getCaliValue: Recover from out-of-bounds index access
Before this, array access caused stack underflow if the index was out of
range. After this, such index access will be evaluated to zero.
2020-06-14 22:43:17 +09:00
kichikuou 725b0ee6ab Prevent buffer overrun by DF command 2020-06-14 22:09:14 +09:00
kichikuou e17b447e73 Cleanup variable lookup code
No behavior changes.
2020-06-14 21:54:11 +09:00
kichikuou 6dbd31cdbc Add tests for array access 2020-06-14 21:48:52 +09:00
kichikuou a217df39b1 Fix compiler warnings on Windows
On Windows, jpeglib.h includes windows.h which defines several macros
that conflict with ours.
2020-06-14 14:23:40 +09:00
kichikuou 80266d6454 Support JPEG image format
JPEG images are not used in AliceSoft games, but supported since System3.6
version 3.23 and used in some third-party games (e.g. Graymerca).
2020-06-14 14:16:19 +09:00
kichikuou 2e17188f2b Fix DI command and add tests 2020-06-13 15:46:45 +09:00
kichikuou 37f4d847e5 Fix Windows build 2020-06-07 21:29:53 +09:00
kichikuou 43c6688ce7 CI updates
- Add Windows build
- Run Debug and Release builds on Linux
- Run CI against pull requests
2020-06-07 15:16:39 +09:00
kichikuou 09e89e794d Android: Version 0.2.1 android-0.2.1 2020-06-07 14:31:31 +09:00
kichikuou 3fd7a58544 Android: Use filtered scaling
This improves text readability, especially for the Mincho font.
2020-06-07 12:55:16 +09:00
kichikuou f0ccdcf40a Android: Use arhive filename as alternate launcher item name
The title.txt file is written when the MT command is used, however some
games (Daiakuji, AmbivalenZ, Ikenai Katsumi sensei) does not use the MT
command. As a result, these titles did not appear in the launcher.

This makes the launcher use the name of the ZIP archive when the game
was installed as the alternate item name if the MT command was not used.
2020-06-07 12:23:19 +09:00
kichikuou 1a6b7b33b9 Android: Compile SDL_mixer with ogg support
This enables voice playback in Escalayer.
2020-06-06 23:00:39 +09:00
kichikuou 7240971beb Fix SACT.MessageIsEmpty
This fixes a bug where message wasn't flushed before changing text
attributes.
2020-06-06 18:27:20 +09:00
kichikuou 250fbd30a0 Android: Version 0.2.0 android-0.2.0 2020-06-06 12:50:42 +09:00
kichikuou d3579186c6 Android: Populate BGM, WAI, BGI, Init, and SACT01 lines in xsystem35.gr 2020-06-06 12:30:14 +09:00
kichikuou 54dcd8c5fc Android: Compile SDL2_mixer with -DMUSIC_WAV
This is necessary to play BGM from ALD.
2020-06-06 12:22:35 +09:00
kichikuou 5c81929461 Android: Enable modules 2020-06-06 09:19:30 +09:00
kichikuou dbc15ca3b4 Re-enable NIGHTDLL module
To avoid symbol conflicts, this adds "nt_" prefix to sprite, sactcg, and
sactstring functions.
2020-06-04 22:50:46 +09:00
kichikuou 9a1f1c77a6 Static link DLL modules
We only support a fixed set of modules, so dynamic linking isn't really
necessary. This paves the way for running System3.9 games on more
platforms.

NIGHTDLL is temporarily disabled, because many symbols conflict with the
SACT module.
2020-06-04 19:56:05 +09:00
kichikuou 0fe5cb60a3 SACT: Add WaitVsync() in animation loops
So that sprite updates are reflected on the screen.
2020-05-31 09:58:18 +09:00
kichikuou 3e2c226866 Set default fonts load path to /fonts/ 2020-05-30 12:15:41 +09:00
kichikuou 0351f4cbcd Do not use tab characters in CMakeLists.txt 2020-05-30 09:33:01 +09:00
kichikuou f1eed8f2af Convert music.c and music_private.h to UTF-8
These files were removed at the time of the batch conversion to UTF-8,
and then re-added in EUC-JP encoding.
2020-05-29 23:15:47 +09:00
kichikuou 9020e5ab1d Remove .dir-locals.el and add .editorconfig 2020-05-29 23:15:17 +09:00
kichikuou 697c15854a Update emscripten to 1.39.16 2020-05-29 22:24:10 +09:00
kichikuou 70a03ff02f s2utbl.h: Map [82 f2] to U+3094 (HIRAGANA LETTER VU)
This character is used in Prostudent Good. (Although MTLc3m.ttf does not
have a glyph for it...)

This also makes the table const.
2020-05-10 22:26:04 +09:00
kichikuou d50e7ac150 CI: Run 'apt update' 2020-05-06 15:39:24 +09:00
kichikuou ea5776108a Fix voice playback in Escalayer
- Make sure muspcm_getpos() returns non-zero while playing
- Implement mus_wav_fadeout_start()
- Fix a bug of ssnd_waitkey()
2020-05-06 15:11:00 +09:00
kichikuou 8d72775daa Modules: Make debug messages less verbose 2020-05-04 23:02:05 +09:00
kichikuou 73216073af Android: Update SDL2 to 2.0.12 2020-03-13 16:22:44 +09:00
kichikuou 2d237079db Android: Bump version to 0.1.1 android-0.1.1 2020-02-24 14:13:27 +09:00
kichikuou dbb396ae7c Android: Skip zip entries with UTFDataFormatException
This allows installation from some ZIPs distributed by AliceSoft
archives, in Android < 7.0.

Some other ZIPs have game files with SJIS names, so change the error
message depending on whether there's a decode error.
2020-02-24 14:06:45 +09:00
kichikuou 638e96f894 Add GitHub workflows 2020-02-23 23:04:38 +09:00