Commit Graph
39 Commits
Author SHA1 Message Date
kichikuou 4d913d83c2 Extract NACT_GakuenKing into a separate file 2026-08-17 10:28:26 +09:00
kichikuou 64e99b9235 Add headless scenario tests
Run a compiled System 1/2/3 scenarios with SDL's dummy video and audio
drivers, and report failures through the text hook and exit status.
2026-08-08 08:16:38 +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 55c9f61a30 MSVC: Update SDL2_ttf to 2.24.0 for CMake 4 compatibility 2026-06-22 13:27:46 +09:00
kichikuou 0461d95999 Suppress -Warray-bounds for ymfm
ymfm's fm_engine_base::output() contains OPL-specific rhythm code that
accesses m_operator[13]/[17], which is out-of-bounds when instantiated
for OPN (OPERATORS=12). The code is unreachable at runtime because
rhythm_enable() returns false for OPN, but newer clang (emscripten) flag
it statically.
2026-04-14 20:25:58 +09:00
kichikuou f04319b8b5 Version 1.7.2 2026-02-10 10:17:19 +09:00
kichikuou 852d82ef2c Version 1.7.1 2026-01-16 07:45:34 +09:00
kichikuou 300099be5e Version 1.7.0 2025-11-27 09:16:24 +09:00
kichikuou 8f36143ce5 Refactor CG destination handling 2025-11-11 09:11:44 +09:00
kichikuou 75e99d3fbc Version 1.6.2 2025-11-04 10:58:17 +09:00
kichikuou a819fafd56 Android/Windows: Update SDL to 2.32.10 2025-11-04 10:44:34 +09:00
kichikuou 6de68d7337 Windows: Add NOMINMAX compile definition 2025-06-20 08:21:35 +09:00
kichikuou fca8cb15a8 Version 1.6.1 2025-06-06 09:43:21 +09:00
kichikuou 734a77c1f0 Version 1.6.0 2025-04-26 08:17:51 +09:00
kichikuou 071c9bc062 emscripten: Export HEAPU8 and HEAP16
Used in Kichikou on Web shell.
2025-04-21 10:14:37 +09:00
kichikuou a7e1c5c32e Version 1.5.1 2025-03-23 14:31:30 +09:00
kichikuou 258f63e98c Android/Windows: Update SDL to 2.32.2 2025-03-06 10:50:18 +09:00
kichikuou 206ba0c961 Version 1.5.0 2025-01-20 11:03:38 +09:00
kichikuou 7cb5bc7426 MSYS2 build: Use static linking 2025-01-20 08:18:38 +09:00
kichikuou ccd06e4b84 Version 1.4.0 2025-01-04 16:26:50 +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 2b61798f99 CMake: FetchContent() nlohmann-json in MSVC build 2024-12-28 14:09:57 +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 9173742ffb Introduce GameId class 2024-12-11 10:43:28 +09:00
kichikuou 5483d1932f Introduce Scenario class 2024-12-09 14:44:37 +09:00
kichikuou 8b4b33d538 Emscripten: Use texthook suppression list 2024-12-06 13:15:00 +09:00
kichikuou e526cac55f Android/Windows: Update SDL libraries
- SDL2 2.30.6
- SDL2_ttf 2.22.0
- SDL2_mixer 2.8.0
2024-08-17 16:46:15 +09:00
kichikuou 7eb6641517 MSVC build: do not install RtMidi files 2024-08-17 15:35:10 +09:00
kichikuou be4aec4b02 Rename src/linux to src/generic
And now android uses src/generic/mako.cpp.
2024-08-16 10:38:56 +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 3a763412c9 Remove MIDI support on Android
This is in preparation for supporting real-time MIDI playback on other
platforms.
2024-08-15 16:51:32 +09:00
kichikuou 4b56057159 emscripten: Use EM_ASYNC_JS 2024-07-31 08:59:15 +09:00
kichikuou c071975bb9 emscripten: Use MODULARIZE=1 2024-07-30 12:30:43 +09:00
kichikuou cde49a4e5a Android/Windows: Upgrade SDL to 2.30.2 2024-04-07 21:46:36 +09:00
kichikuou a6538e32d7 emscripten: Simplify link options 2024-03-12 17:00:50 +09:00
kichikuou cffdfdcd94 Require CMake 3.14 or later
To use FetchContent_MakeAvailable.
2024-01-13 15:40:51 +09:00
kichikuou 31de10ae3b MSVC build: Use CMake scripts included in SDL2(_ttf) development package 2024-01-13 14:31:20 +09:00
kichikuou 6996482362 Move CMakeLists.txt to project root 2024-01-11 13:28:18 +09:00