Commit Graph
226 Commits
Author SHA1 Message Date
kichikuou cc75dd7c94 Convert linebreaks from CRLF to LF 2022-04-03 11:34:48 +09:00
kichikuou 08de113b8f MSVC build: Upgrade SDL and SDL_ttf
- SDL 2.0.20
- SDL_ttf 2.0.18
2022-01-22 10:02:11 +09:00
kichikuou 80ea44e3c6 Fix issues with reading system3.ini and playlist made on Windows
- Replace backslashes in pathnames with slashes
- Strip '\r' in playlist
2021-11-27 13:23:11 +09:00
kichikuou dc471399e5 Rewrite fade in / fade out implementation
Before this change, fade in and fade out was implemented using a
16-steps dithering pattern.

Now fading uses alpha-blending. It behaves like the PC98 version, where
fading was done by palette animation.

This reduces `sizeof(AGS)` by 1.2MB.
2021-11-20 17:09:17 +09:00
kichikuou ef8253c252 MSVC build: Update SDL2 to 2.0.16 2021-09-19 13:59:02 +09:00
kichikuou a0e46ce23b MSVC build: Statically link runtime library 2021-09-18 21:09:57 +09:00
kichikuou bc3580e4ef Implement MAKO::get_mark() for FM sound
It still does not work for MIDI.
2021-09-18 21:05:38 +09:00
kichikuou da91f10779 Allow overriding hard-coded strings by system3.ini
Some strings ("戻る" and "次のページ" in menu, character names in DPS)
are not included in game files but are hard-coded in the executable.

Now those strings can be overridden by adding [string] section to
system3.ini. For example, system3.ini for English translation of DPS
may look like this:

  [config]
  game  = dps
  title = D.P.S - Dream Program System

  [string]
  back        = Back
  next_page   = Next Page
  dps_custom  = Custom
  dps_linus   = Linus
  dps_katsumi = Katsumi
  dps_yumiko  = Yumiko
  dps_itsumi  = Itsumi
  dps_hitomi  = Hitomi
  dps_mariko  = Mariko
2021-09-11 13:20:48 +09:00
kichikuou cbf2a9c86f Report parse error of AG00.DAT 2021-09-09 21:06:15 +09:00
kichikuou 4004d39f22 Add "title" system3.ini option
So that translators don't need to change C++ code to localize game
titles.
2021-09-08 17:35:23 +09:00
kichikuou bce7f5e4c2 Improve system3.ini parser
- keys are case-insensitive
- spaces are allowed in values
2021-09-08 17:20:45 +09:00
kichikuou 72e00ff20d Add Chinese translation for text input dialog
From silas1037/system3-sdl2@4803ae3da7.
2021-09-06 18:28:07 +09:00
kichikuou 45f6e5cc74 Add Japanese and Simplified Chinese menu resource
The Chinese text was taken from https://github.com/silas1037/SysEng/.
2021-09-05 16:12:29 +09:00
kichikuou 4244fe63f5 Clean up win/resource.rc 2021-09-05 15:38:48 +09:00
kichikuou ccd99dab07 Apply character encoding conversion to hard-coded strings
This fixes an issue where menu items like "戻る" were garbled in Unicode
mode.
2021-09-05 15:10:22 +09:00
kichikuou f4799161a9 Fix encoding conversion in Windows text input dialog 2021-09-05 10:41:36 +09:00
kichikuou 7834004648 Fix unicode conversion on Android / Emscripten
This also moves functions in utfsjis.cpp to encoding.cpp.
2021-09-05 10:02:31 +09:00
kichikuou 14d0033db3 Add support for UTF-8 encoded scenario files
If `encoding = utf8` is specified in system3.ini, system3-sdl2 uses
UTF-8 as its multibyte character encoding. It will be used to run games
translated into non-(Japanese|English) languages.
2021-09-04 15:21:52 +09:00
kichikuou 92487ada06 Introduce Encoding class
It represents a multi-byte character encoding. Currently, SjisEncoding
is the only implementation of it.
2021-09-04 13:41:37 +09:00
kichikuou d3c89aa697 Do hankaku-zenkaku conversion after Unicode conversion
As a bonus, Unicode character literal syntax can be used now.
2021-09-04 10:42:16 +09:00
kichikuou ddd1be04ef Map gaiji to Unicode Private Use Area U+E000-U+E0BB 2021-09-04 10:33:19 +09:00
kichikuou 231523f9c5 Simplify FILEIO::Fgets()
Control characters do not overlap with SJIS second bytes, so no need to
special case multibyte characters.
2021-09-04 10:33:19 +09:00
kichikuou 55e2b3bd8c Redraw screen on SDL_WINDOWEVENT_EXPOSED
Fixes #17.
2021-09-01 20:35:52 +09:00
kichikuou d0e40c1c6d Fix a bug in M command + quoted string 2021-08-30 19:28:10 +09:00
kichikuou 201924f88c Fix escaping in quoted strings
Do not treat 0x5c as an escaping character if it is part of a multibyte
character.

Fixes #15.
2021-08-29 16:52:03 +09:00
kichikuou 1e04c03469 Add Language field to CRCTable struct 2021-08-28 13:40:25 +09:00
kichikuou 6ec42bbdfc Make window resizable 2021-08-14 13:28:56 +09:00
kichikuou c58d5b690a Fix mouse cursor movement in fullscreen mode
Ported from kichikuou/xsystem35-sdl2@91d30c9.
2021-08-14 13:18:42 +09:00
kichikuou 8f48093409 Update emscripten to 2.0.25 2021-07-14 18:29:50 +09:00
kichikuou af6da1f0c5 Fix incorrect warning while parsing system3.ini
Also fixes a typo in README.md.

Fixes #12.
2021-07-08 17:12:42 +09:00
kichikuou 98038a5c74 Do not use SDL_RWFromFile on Windows
It does not work in the MSVC build of SDL2 (although it works in
Mingw-w64's SDL2 package).

Fixes #11.
2021-07-08 17:08:20 +09:00
kichikuou 52eea935fe Android: Allow specifying custom fonts in system3.ini
Now custom font files specified in system3.ini (as relative paths from the
game directory) can be loaded correctly.
2021-06-06 22:08:07 +09:00
kichikuou 14f4c38d85 Load configurations from system3.ini
This corresponds to xsystem35's `.xsys35rc` file (but loaded only from
the game directory). The format is a subset of .ini file.

This will enable using custom fonts on Android / Web.
2021-06-06 22:04:16 +09:00
kichikuou 0f4984bef5 Introduce Config struct
For now, it's just a container for command line arguments.
2021-06-06 16:18:17 +09:00
kichikuou 34175d5a85 Add English translations for string constants 2021-03-18 09:38:13 +09:00
kichikuou 4c6d8d5f8b Support Y240 (hankaku mode) in System1 2021-03-18 09:38:13 +09:00
kichikuou 8417e7758a Skip SysEng's "new style" marker
It can be simply skipped, because SysEng's command set is a superset
of System1-3.
2021-03-18 09:38:13 +09:00
kichikuou 9a8ebbdcb0 Support SysEng's quoted message commands 2021-03-18 09:38:10 +09:00
kichikuou 20e06235d2 Add CRC32 for English translations of Little Vampire / Rance 4.x
Note that these are still in beta; CRC32s may change.
2021-03-17 20:47:01 +09:00
kichikuou 77d50780f8 Implement AGS::paint() 2021-01-23 10:51:05 +09:00
kichikuou db66e62b88 emscripten: Drop MIDI support
After kichikuou/web@c901b19, the web port only supports FM sound.
2021-01-17 17:37:58 +09:00
kichikuou cbb40d0b67 emscripten: minor refactoring
- Remove the use of EXPORTED_FUNCTIONS in favor of EMSCRIPTEN_KEEPALIVE
- SDL_Delay is no longer aliased to emscripten_sleep
2021-01-17 13:55:43 +09:00
kichikuou 8519bc1a55 Implement NACT::set_cursor() 2021-01-11 20:48:49 +09:00
kichikuou 4351f21dc4 Make FILEIO::Fopen() case insensitive 2021-01-11 10:53:32 +09:00
kichikuou 7f1d41ae61 Use SDL logging functions in ERROR/WARNING/NOTICE
They choose appropriate destination depending on the platform.
2021-01-09 11:07:41 +09:00
kichikuou 00df3274ac MSVC build: Build as a GUI executable 2021-01-02 14:16:39 +09:00
kichikuou 65aec8da58 Move all files in src/res3 to src/win
And rename Script1.rc to resource.rc.
2021-01-02 13:46:12 +09:00
kichikuou 1d3715580b MSVS build: Suppress warning C4244 (possible loss of data)
VC++ is picky about narrowing conversion. Let's ignore it instead of
scattering static_casts.
2021-01-02 13:22:36 +09:00
kichikuou 60a0b43831 Fix warnings in MSVS build 2021-01-02 10:45:38 +09:00
kichikuou 4621c13b75 Do not stack-allocate MAKOMidi
It causes stack overflow in MSVS build.
2021-01-02 10:04:59 +09:00