kichikuou
bdb93bf7ed
Add SDL3 support alongside SDL2
...
Centralize the differences between SDL2 and SDL3 behind compatibility
interfaces and select the appropriate implementations with the
SYSTEM3_SDL_VERSION CMake option. The default is SDL2 except on Android,
which supports only SDL3.
2026-09-15 15:21:22 +09:00
kichikuou
630fec153c
Use scenario filename for debugger symbols
2026-09-09 11:18:16 +09:00
kichikuou
167bc54dc0
Add -fullscreen option
2026-08-17 09:04:06 +09:00
kichikuou
c8ef298c56
Add quit confirmation dialog
...
On Android, the back button opens the dialog.
2025-03-06 08:54:57 +09:00
kichikuou
c205806d7b
Fix header include paths
2025-02-08 12:55:14 +09:00
kichikuou
d12c1575e0
emscripten: Notify shell of game ID
2025-01-16 10:38:09 +09:00
kichikuou
ffe11c695e
Reorganize initialization error reporting
...
- Invalid game id -> sys_error() in GameId::GameId()
- Unknown crc32 -> SDL_ShowSimpleMessageBox() in GameId::GameId()
- Cannot open ADISK.DAT -> sys_error() in NACT::NACT()
2025-01-03 12:36:27 +09:00
kichikuou
7f7ff91439
GameId: Replace CRC32 with enum
...
This makes it possible to define games that do not have a CRC32.
2025-01-03 08:52:27 +09:00
kichikuou
d771352346
Fix typo
2025-01-02 21:32:19 +09:00
kichikuou
edb48f2513
Send warnings to DAP client
2025-01-02 16:53:27 +09:00
kichikuou
ddc790b268
Add error message when game files not found
2024-12-31 22:05:04 +09:00
kichikuou
909140f3bc
Add support for Debug Adapter Protocol
2024-12-28 14:09:56 +09:00
kichikuou
8883bd5d68
Add command line debugger
2024-12-28 14:09:53 +09:00
kichikuou
f8acad01d8
Move TexthookMode enum to config.h
2024-12-14 10:22:38 +09:00
kichikuou
4930154d45
Expose g_nact
2024-12-11 14:03:55 +09:00
kichikuou
e791af2a1e
Refactor window creation logic
2024-12-11 10:43:32 +09:00
kichikuou
9173742ffb
Introduce GameId class
2024-12-11 10:43:28 +09:00
kichikuou
e79f24d8b9
Replace NACT::fatal() with global sys_error()
2024-12-10 07:54:56 +09:00
kichikuou
8303f7c770
Refactor FILEIO
2024-12-08 15:06:00 +09:00
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