Commit Graph
256 Commits
Author SHA1 Message Date
kichikuou 7f6a085f56 Scanline screen effect
It can be activated by the -scanline command line flag, system3.ini, or
the menubar on Windows. Effective especially for games with 200-line
screen mode, such as Little Vampire and Intruder.
2023-04-09 18:23:42 +09:00
kichikuou ec1dfbffcf Use non-square pixels for Gakuen Senki
Stretch 512 horizontal pixels to 582 pixels. This is the same pixel
aspect ratio used by WebMSX.

Also set SDL_HINT_RENDER_SCALE_QUALITY to "linear", to improve the
scaling quality.
2023-04-09 18:23:39 +09:00
kichikuou 24224e0d2b Merge some changes from SysEng 0.7 (for Gakuen Senki port) 2023-04-09 15:17:33 +09:00
kichikuou 32f4c0f945 Improve anti-aliasing quality of non-white text
By presetting palette.
2023-04-06 21:17:51 +09:00
kichikuou 6d6d5ca829 Reset RenderDrawColor after changing it for fading
Otherwise, the next SDL_RenderClear() will fill the screen with that
color, including areas outside the viewport.
2023-03-25 16:13:55 +09:00
kichikuou 431be235d6 Android: Add support for PCM sound
Now android/mako.cpp depends on SDL_mixer, and CD-DA is also played with
SDL_mixer.
2023-03-18 13:49:36 +09:00
kichikuou 236eb0b581 MSVC build: Update SDL2 and SDL2_ttf 2023-03-17 18:56:18 +09:00
kichikuou 2178c98a75 Apply K3 hack to the map area selection of Only You 2023-03-17 18:23:58 +09:00
kichikuou 31dcec6893 Emscripten: Support PCM sound 2023-03-17 15:55:41 +09:00
kichikuou be18e06e09 Fix MAKO::check_music()
This fixes infinite loop in the opening demo of Only You, waiting for
the end of the music.
2023-03-17 15:53:52 +09:00
kichikuou 425ddf3ea8 Bump version to 0.9.0 2023-03-03 11:14:09 +09:00
kichikuou 36cee9aff8 Treat touches outside the viewport as right-clicks
The old method to simulate right click (two-finger touch) still works.
2023-03-03 10:50:54 +09:00
kichikuou 2c2ea6d28b emscripten: Export _malloc 2023-02-25 15:58:12 +09:00
kichikuou 50120d32ce Update emscripten to 3.1.32 2023-02-25 15:06:26 +09:00
kichikuou 3a13f27dcf Add a hack to improve menu usability in Alice's Cottage 3
Some screens in Alice's Cottage 3 have menus implemented on the script
side. The script does not know the absolute position of the mouse
pointer (cursor movement is done by obtaining the relative movement
distance of the mouse), so the mouse pointer and the selected item were
often misaligned, and the cursor could not be moved by touch operation.

This adds a hack to the K3 command that emulates cursor movements by
absolute mouse pointer location.
2023-02-25 14:29:04 +09:00
Adrian Graber 05ff59cff2 Add Nintendo Switch support
- Bundle resources folder through romfs
- Added Switch-exclusive romfs init/exit code
- Add icon for NRO
- Add Switch-exclusive CMake code for NACP/NRO generation
- Add GitHub Actions Switch workflow
2022-10-29 08:25:07 +09:00
Adrian Graber 76a255619d Log fatal errors through SDL_LogError too 2022-10-29 08:25:07 +09:00
Adrian Graber 361e51085d Add timiditycfg setting 2022-10-29 08:25:07 +09:00
kichikuou bbb51f4912 Always enable GameController, and remove unused USE_JOY code 2022-10-27 20:03:47 +09:00
Adrian Graber 034ab8dd03 Implement GameController through SDL2 2022-10-27 20:02:02 +09:00
kichikuou 65aa76a337 Bump version to 0.8.0 2022-08-07 21:42:35 +09:00
kichikuou 93b9cc0e1a Show system3-sdl2 version on window title bar 2022-08-07 21:40:41 +09:00
kichikuou ad86883e42 MSVS, Android: Update SDL2 to 2.0.22 2022-08-07 21:32:31 +09:00
kichikuou 2f2e5f9aa7 Skip 400ms delay after opening menu if mouse movement is disabled
This removes the 400ms delay in NACT::wait_after_open_menu() if
automatic mouse movement is disabled, because there's less risk of
miss-clicking.
2022-08-07 18:12:18 +09:00
kichikuou 2f55371c10 Windows: Add a menu command to control automatic mouse movement 2022-08-07 17:36:13 +09:00
kichikuou 0c8903920a Switch FM sound emulator to ymfm 2022-08-07 15:55:07 +09:00
kichikuou 2cb0b2a2a2 Reuse SDL_Renderer after VM reset
Otherwise mouse input doesn't work after restart in emscripten port.
2022-06-26 15:00:23 +09:00
kichikuou 578a8bf095 Emscripten: Expose sys_restart() function 2022-06-26 14:56:23 +09:00
Nunuhara Cabbage b2907a9de8 Install font to resource directory 2022-06-04 12:36:52 +09:00
Xanardi 1d52d0d411 Fix MSVC2017 build error 2022-04-23 08:52:48 +09:00
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