50 Commits
Author SHA1 Message Date
kichikuou 3e32da1d37 Add SDL3 support alongside SDL2
Add optional SDL3 support while keeping SDL2 as the default. SDL3 builds
must be selected explicitly with the SYSTEM3_SDL_VERSION CMake option.

Centralize most SDL2/SDL3 API differences behind compatibility interfaces.
Audio playback uses a dedicated SDL3 backend based on SDL3 audio streams,
implemented separately in mako_sdl3.cpp.

Android and Nintendo Switch remain on SDL2 for now.
2026-09-16 08:44:23 +09:00
kichikuou 3ce86d3bde Update Visual Studio build instructions 2026-09-14 11:31:04 +09:00
kichikuou 167bc54dc0 Add -fullscreen option 2026-08-17 09:04:06 +09:00
kichikuou 6f5933adaf Replace SDL_mixer with dr_mp3/stb_vorbis + SDL audio
- MP3/OGG files are now decoded with dr_mp3 and stb_vorbis via the new
  MakoMusic backend.
- Merge src/win/mako.cpp into src/generic/mako.cpp: Windows now uses the
  same SDL audio path.
- A single SDL2 audio device mixes FM, BGM and PCM in its callback with
  SDL_MixAudioFormat.
- PCM plays through SDL_AudioStream.
- dr_mp3 and stb_vorbis are vendored under deps/ and included from
  mako_music.cpp. Warnings for that translation unit are silenced.
2026-08-03 17:09:59 +09:00
kichikuou 8b813e3631 Add Streamer Mode with -censor option
This introduces "Streamer Mode" to mosaic specified NSFW images, making
the game suitable for streaming or public viewing. This feature is
enabled via the '-censor <file>' command-line option, which takes a file
containing a list of image numbers to be filtered.
2025-11-09 12:08:25 +09:00
kichikuou 04deb9061a README.md: Add Compatibility section 2025-04-23 12:42:47 +09:00
kichikuou 4d61c84482 Move game compatibility table to game_compatibility.md 2025-04-13 08:59:41 +09:00
kichikuou 71bc53e9b1 README: Fix build instructions for MSYS2 2025-02-12 10:00:38 +09:00
kichikuou 839984653c Update README.md 2025-01-20 10:56:35 +09:00
kichikuou 33418f8cb5 AGS: Make VRAM 8 bits per pixel
Before this, the virtual VRAM was 32 bits per pixel, with each pixel
holding an 8-bit index color or 0x80RRGGBB. The latter was for Ayumi-
chan Monogatari Jisshaban, which has been unsupported since system3-sdl2
was forked from System3 for Win32.

This change removes the 0x80RRGGBB format and makes the virtual VRAM 8
bits per pixel.
2025-01-17 10:58:46 +09:00
kichikuou 9afb81ed7e README.md: Sort the game id list (roughly) alphabetically 2025-01-11 13:30:49 +09:00
kichikuou 4f4077a9c8 Add game IDs for unsupported titles 2025-01-11 11:47:19 +09:00
kichikuou 721679e387 README: Add rance2 and rance2_hint to the game ID table 2025-01-04 09:36:20 +09:00
kichikuou 1a53c50c75 Rework NACT command tracing
- Now tracing is not a build-time config but a runtime option (`-trace`)
- One command per line, so that traces are not mixed with other outputs
- Send traces to DAP client
- Fix garbled characters in non-SJIS environments
2025-01-02 16:53:01 +09:00
kichikuou ff530981ff Update README 2024-12-28 14:32:47 +09:00
kichikuou f26ce11fd9 README: Update note for toushin_hint 2024-12-08 13:35:17 +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 8da92f6856 README: Add notes column to game ID table for additional information 2024-12-03 11:32:46 +09:00
kichikuou e330a0dba6 Add warning message about game ID detection 2024-11-26 08:26:57 +09:00
kichikuou 480548191f Add -mididevice option 2024-08-17 08:50:22 +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 c1273bd3e3 README: Fix link to the wiki 2024-08-10 14:37:07 +09:00
kichikuou 6996482362 Move CMakeLists.txt to project root 2024-01-11 13:28:18 +09:00
kichikuou 73a7380a69 Switch Windows 64-bit MSYS2 build from mingw64 to ucrt64
This only affects CI, because our release binaries are MSVC builds.
2023-11-17 09:24:08 +09:00
kichikuou 093f4cf507 Improve documentations
With the help of ChatGPT.
2023-08-29 12:03:34 +09:00
kichikuou 8a196444ad Editorial changes 2022-10-29 08:26:50 +09:00
Adrian Graber a40d750b93 Add documentation for Switch build 2022-10-29 08:25:07 +09:00
kichikuou b1a2221f9f emscripten: Change build type from MinSizeRel to Release
It generates 2.5x faster code for ymfm.
2022-08-07 15:58:10 +09:00
kichikuou 6e7df30af7 Add system3.ini.example and update README.md 2021-09-26 10:52:57 +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 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 a127ec26ec README.md: Add instructions for MSVS build 2021-01-02 10:04:56 +09:00
kichikuou 2de55f9f4d Windows: FM sound support 2020-12-11 16:49:48 +09:00
kichikuou 8808dec847 README: Update build instructions 2020-12-05 14:08:03 +09:00
kichikuou 4b4053cf1e Add -fm command line option 2020-11-21 14:01:38 +09:00
kichikuou 893f716ef3 Add FM synthesizer support
This adds support for "real" FM sound that can be used instead of MIDI
sound. (Currently only available on platforms where SDL_mixer is used.)

The MakoFM class interprets AMUS.DAT to create a write sequence to the
OPNA registers, from which fmgen generates an audio stream.
2020-11-21 13:40:21 +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 b3019b97ea Update game_ids in README.md 2020-05-23 12:53:46 +09:00
kichikuou 245b69cc06 Update README.md
- SDL2_mixer is no longer needed in Windows
- Change --playlist example to mp3 (ogg cannot be used in Windows)
2020-05-16 17:52:14 +09:00
kichikuou f880eba7a4 Fix build instructions 2020-02-22 22:28:48 +09:00
kichikuou bb7636d54b Rewrite README.md 2020-02-22 17:35:05 +09:00
kichikuou a518eccc77 Update build instructions
Now SDL2_mixer is required.
2020-02-16 15:56:57 +09:00
kichikuou b6fd5c2962 Android: Add android/README.md 2020-01-02 13:13:14 +09:00
kichikuou 3c0fe94460 Update README 2019-09-16 10:30:35 +09:00
kichikuou ad05155e70 Update README.md 2019-08-18 17:35:28 +09:00
kichikuou 4a999c06f2 Update build instructions 2019-08-03 22:29:54 +09:00
kichikuou 5f70da92a9 Fix repo link 2018-02-03 10:01:40 +09:00
kichikuou 67cd1d7766 Update README 2017-05-21 10:54:14 +09:00
kichikuou 5ef035a660 Add README.md, remove vcproj files 2017-05-21 10:21:18 +09:00