51 Commits
Author SHA1 Message Date
kichikuou 0b04f5f334 Add texthook_suppress option
For suppressing text hook on specified scenario pages.
2024-12-06 10:24:36 +09:00
kichikuou 1e7a59f9cd Add texthook option
`-texthook print` prints text to console, and `-texthook copy`
automatically copies text to clipboard (for use with text hooker tools).

On Windows, copy mode can be toggled from the menu bar.
2024-12-04 16:33:50 +09:00
kichikuou e330a0dba6 Add warning message about game ID detection 2024-11-26 08:26:57 +09:00
kichikuou 41e69d7610 Real-time MIDI playback using RtMidi
Before this, MIDI playback was done by generating an SMF data stream,
which was then played using platform-specific methods (MCI on Windows,
MediaPlayer on Android, SDL_Mixer on other platforms). However, this
approach had an issue where the Y18 command (which reads loop counts and
markers) did not work correctly.

With this change, the MAKOMidi class now uses the RtMidi library to
control MIDI devices in real-time. This approach was used in the
original "System3 for win32", but has now been made cross-platform.

The dependency on RtMidi is optional. If RtMidi is not available at
build time or a MIDI device is unavailable at runtime, FM synthesis will
be used.
2024-08-16 10:11:41 +09:00
kichikuou 15b7236230 emscripten: Don't let SDL change document.title 2024-02-16 13:07:09 +09:00
kichikuou 30ca8b714b Reorganize flags for exit and restart
Pure refactoring, no user-visible changes.
2023-09-27 16:41:05 +09:00
kichikuou c3556c5213 Replace sprintf_s with snprintf 2023-04-15 09:16:14 +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 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
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 361e51085d Add timiditycfg setting 2022-10-29 08:25:07 +09:00
kichikuou 93b9cc0e1a Show system3-sdl2 version on window title bar 2022-08-07 21:40:41 +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
kichikuou 6ec42bbdfc Make window resizable 2021-08-14 13:28:56 +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 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 4351f21dc4 Make FILEIO::Fopen() case insensitive 2021-01-11 10:53:32 +09:00
kichikuou 56bb588ca7 Support building with Microsoft Visual Studio 2021-01-02 09:10:51 +09:00
kichikuou 297ce20a83 Warn if crc32 is unknown and -game is not specified 2020-12-30 22:22:18 +09:00
kichikuou 4b4053cf1e Add -fm command line option 2020-11-21 14:01:38 +09:00
kichikuou 9637701340 Windows: Implement reset menu command
A bit hacky but works.
2020-10-10 15:26:01 +09:00
kichikuou 81d66c4075 Enable text anti-aliasing by default
To disable it, use -noantialias command-line option.
2020-06-04 10:24:39 +09:00
kichikuou ac1bf0bac1 Update emscripten to 1.39.16
And add a fix for emscripten-core/emscripten#10746.
2020-05-28 19:27:51 +09:00
kichikuou a0af5ef10c Windows: Embed default font as a resource
After this, embedded MTLc3m.ttf is used unless the -fontfile option is
specified.
2020-05-24 22:01:32 +09:00
kichikuou e518f9e23e Fix build and character encoding issues in Win32 2020-02-24 19:46:32 +09:00
kichikuou d6aaf31b1a Change the semantics of -savedir option
Now trailing '@' is replaced with the game id.
2020-02-23 12:02:29 +09:00
kichikuou 20ba438300 Unify executables
Instead of building multiple executables using #ifdefs, create a single
executable (still called "system3") that can run all System1-3 games.
2020-02-22 16:15:47 +09:00
kichikuou 387c5febf2 Remove tchar.h shim 2020-02-16 15:57:05 +09:00
kichikuou 487bd49745 CD-DA BGM playback support with SDL_mixer
This adds -playlist command line option to specify a "playlist" file
which lists music files to be played instead of CD audio tracks.
The format of playlist file is the same as xsystem35's.
2020-02-15 17:27:37 +09:00
kichikuou 2d0619a19a Android: Store saved files under game-id/ subdirectory
This is to prevent overwriting saved files of other games, since System3
uses common save file names regardless of the game.
2020-02-10 13:09:07 +09:00
kichikuou 8615df6e12 Add -game option
This overrides the title detection by CRC. For example,

  system3 -game rance41

forces system3 to work in Rance 4.1 mode. See nact_crc32.cpp for
possible flag values. This is useful when running patched games.
2020-02-10 12:14:18 +09:00
kichikuou 55e6dde4f8 Android: Fix screen issues
- Create window as fullscreen
- Redraw screen after task resume
2020-02-09 21:47:07 +09:00
kichikuou f4ff96ac62 Android: Fix launcher to work with system3 files
Unlike xsystem35, directory structure in ZIP is not preserved.
2020-02-09 21:47:07 +09:00
kichikuou 358ea7b1a9 Android: Add simple launcher
This adds a minimal launcher activity for the android app, which does
the followings:

- Opens a file chooser to let user select a zip file
- Extracts the zip into the app's internal storage
- Launches the SDL activity
2019-12-31 21:17:39 +09:00
kichikuou e3c812da3a Android: Load fonts from assets
Now fonts/ directory is bundled in APK as assets. TTF_OpenFont() can
open files in Android assets, but cannot handle the "./" path prefix.
2019-12-31 21:17:36 +09:00
kichikuou 874f6bae5b Bundle MTLc3m.ttf 2019-12-27 14:57:54 +09:00
kichikuou e417118713 Add -fontfile option 2019-08-18 18:31:26 +09:00
kichikuou 8354b95413 Emscripten: set window title via xsystem35 shell 2019-07-29 08:47:52 +09:00
kichikuou 06dc8981c1 Don't let SDL handle the visibilitychange event 2019-05-13 22:31:05 +09:00
kichikuou 4b9556713a Add workaround for emscripten-ports/SDL2 #41 2017-05-03 17:41:03 +09:00
kichikuou 9e77696d2a Title format expected by the shell 2017-05-03 14:35:20 +09:00
kichikuou 4ae927ff5b Notify window size to the shell 2017-05-01 14:59:52 +09:00
kichikuou f680fb3e76 Add savedir option 2017-04-30 15:52:22 +09:00
kichikuou f35990d1a4 Prepend g_root in FILEIO 2017-04-30 15:05:03 +09:00
kichikuou 37b030b596 Implement text antialias 2017-04-30 11:37:27 +09:00
kichikuou 5a5c9b8e52 Call SDL_Quit() 2016-04-16 13:42:37 +09:00
kichikuou d0abebdf24 get_title returns UTF-8 string 2016-04-02 21:41:46 +09:00
kichikuou e988478d4d Remove global HINSTANCE 2016-04-02 21:31:28 +09:00
kichikuou 67557bb2bd Read files from current directory 2016-04-02 18:08:31 +09:00