kichikuou
0f4f5d2e0d
emscripten: Add function for switching FM / MIDI synthesizer
2020-11-23 16:27:08 +09:00
kichikuou
d6640b338a
MakoFM: optionally take ownership of music data buffer
2020-11-23 14:26:39 +09:00
kichikuou
b6a47d8db7
emscripten: FM sound support
2020-11-23 13:51:25 +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
f4f8b7d104
Fix use-after-free in MCIThread::close()
2020-10-26 18:39:43 +09:00
kichikuou
79b4efa63e
MIDI: Generate at least 60 seconds of MIDI data
2020-10-25 14:52:52 +09:00
kichikuou
17ef39abed
emscripten: Add SDL_Delay() to ASYNCIFY_REMOVE
...
This is safe because we use SDL_HINT_EMSCRIPTEN_ASYNCIFY = 0. This
significantly reduces the number of Asyncified functions and reduces the
wasm code size by 47kb.
2020-10-24 18:55:24 +09:00
kichikuou
c4c17854f9
MAKO: select_sound() sets title-dependent values in cd_track
...
Fixes #6 .
2020-10-24 18:15:11 +09:00
kichikuou
9ddbf01d23
Minor refactoring of MAKO
...
- Move select_sound() from NACT to MAKO
- Make cd_track private
2020-10-24 17:53:07 +09:00
kichikuou
01608c8fd5
Generate just right amount of MIDI data
...
Before this, MIDI data was generated until a fixed number of bytes was
reached. After this, MIDI data is generated for the duration of one
playback of the entire music, plus 1-second fade out.
2020-10-17 16:18:02 +09:00
kichikuou
bb9fc273ac
Windows: Move MCI operation to a background thread
...
MCI is very slow to open a MIDI file. Not to block the main thread for
hundreds of milliseconds, this moves MCI calls to a separate thread.
2020-10-17 15:59:28 +09:00
kichikuou
932df7e6a3
Windows: Adjust window size after adding menubar
2020-10-11 14:04:07 +09:00
kichikuou
9637701340
Windows: Implement reset menu command
...
A bit hacky but works.
2020-10-10 15:26:01 +09:00
kichikuou
da53cda5ab
Windows: Add menubar
...
This ressurects the window menubar that was in the original System3 for
Win32.
The reset feature is not implemented yet because it needs more work.
2020-10-10 15:26:01 +09:00
kichikuou
520b542fcc
Introduce NACT::on_syswmevent()
...
This is in preparation for adding more handlers for platform-specific
window messages (e.g. menu commands).
2020-10-10 15:26:01 +09:00
kichikuou
7f94312c58
Rename {initialize,release}_console to platform_{initialize,finalize}
...
So that other platform-specific setups (e.g. menus) can be done there.
2020-10-10 15:26:01 +09:00
kichikuou
47ac7a81aa
Android: Implement string length limit for input dialog
2020-09-06 12:55:14 +09:00
kichikuou
4229ca6910
emscripten: Introduce nact_emscripten.cpp
...
And use tvar_maxlen in text_dialog().
2020-09-06 11:46:42 +09:00
kichikuou
b5ef0791c5
Android: Implement text input dialog
2020-09-05 10:49:09 +09:00
kichikuou
3e6f63db95
Emscripten: Remove getMemory from EXTRA_EXPORTED_RUNTIME_METHODS
2020-08-08 14:30:22 +09:00
kichikuou
0e9bc5a10b
Allow virtual functions in NACT
...
This essentially reverts commit 7ffa8bc . With the new "ASYNCIFY_ADD"
emscripten option, we no longer need this workaround.
2020-08-08 12:16:39 +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
289aebd970
Add .editorconfig, reformat CMakeLists.txt
2020-05-30 09:58:33 +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
76b9a896a7
Windows: Static link MinGW libraries
...
This reduces the number of dependent DLLs. Note that SDL is still
dynamically linked.
2020-05-24 22:47:00 +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
b683924564
MDA loading on non-Windows platforms
...
- On Android, MDAs are now loaded from APK assets.
- On Mac/Linux, MDAs are now installed by 'make install', and loaded
from installation directory.
- MDAs and fonts are moved into a new toplevel directory, resources/.
2020-05-24 16:39:18 +09:00
kichikuou
47e86d9a05
Load MDA from resource on Windows
...
Fixes #1 .
2020-05-24 12:07:57 +09:00
kichikuou
aa5a8f3a52
Merge upstream changes: Merge the remaining nact_sys2 changes
...
Mostly mechanically merged, I haven't looked into individual changes in
detail.
2020-05-23 12:11:08 +09:00
kichikuou
d18f441722
Merge upstream changes: Merge the remaining nact_sys1 changes
...
- cmd_branch: Uses getw when skipping 2-byte objects
- cmd_y: Restructured, but functionally identical
2020-05-23 11:30:03 +09:00
kichikuou
eb24179d76
Merge upstream changes: Merge NACT-common changes
...
- Half-width kana characters are converted to full-width hiragana if
ags->draw_hankaku is false.
- tvars can now support 33 characters instead of 22.
2020-05-23 11:14:34 +09:00
kichikuou
5571061ac1
Merge upstream changes: Add wait after opening menu
...
This prevents mis-selection by key repeat etc.
2020-05-23 10:53:34 +09:00
kichikuou
cda1888ebc
Merge upstream changes: Prevent menu selection when cursor is out of window
...
This was introduced in System3-sdl2 71728db only for nact_sys3. TOTO took
this change and expanded for nact_sys1 and nact_sys2 as well.
2020-05-23 10:40:05 +09:00
kichikuou
49b4ac4053
Merge upstream changes: Merge AGS changes
...
- Added initial text / menu positions for newly-supported games
- convert_zenkaku and convert_hankaku are now public
- load_cg supports Ayumi Floppy
- VSP: A transparency value of 101 now ignores get_palette
2020-05-23 09:52:16 +09:00
kichikuou
c6fce5144b
Merge upstream changes: Add MDA files
...
These files are not actually used yet. (See issue #1 )
2020-05-22 22:17:37 +09:00
kichikuou
6d39b6feee
Merge upstream changes: Merge DRI changes
...
- Fail if file entry's size is 0
- load_mda() can now load MDA from subsequent disks.
2020-05-22 19:39:47 +09:00
kichikuou
657057fa64
Merge upstream changes: CRC32 updates
...
- Check CRC32 of both ADISK.DAT (storead as crc32_a) and BDISK.DAT (crc32_b)
- Update the CRC32 database adding more titles
2020-05-22 16:09:55 +09:00
kichikuou
e8d254328a
Merge upstream changes: Merge FILEIO changes
...
FILEIO has been updated to resolve relative paths inside FILEIO::Fopen(),
which has been already done in System3-sdl2.
FILEIO::Fgets() now uses a length param.
Callsites for these functions are also updated to reduce the diff from
upstream.
2020-05-22 12:04:36 +09:00
kichikuou
131707f9d8
Merge upstream changes: Improve error messages for unknown commands
...
Unlike the upstream, we use fatal() because it generates a message box
even if DEBUG_CONSOLE is disabled.
2020-05-22 09:32:04 +09:00
kichikuou
406a7fe106
Merge upstream changes: output_console() takes printf-style arguments
2020-05-21 23:24:54 +09:00
kichikuou
dadf0aa6b5
MIDI: Improve SMF generation
...
- Fade out in the last second
- Emit channel reset messages at the end
2020-05-17 14:13:40 +09:00
kichikuou
c8b3cd182c
Fix a bug of BGM loop in Windows
...
The info structure must be initialized with the SDL version before
calling SDL_GetWindowWMInfo.
2020-05-16 20:40:38 +09:00
kichikuou
dc3a031819
Move sys/mako.cpp to linux/mako.cpp
2020-05-16 19:34:03 +09:00
kichikuou
9f5f4e6843
Add Windows native implementaton of MAKO
...
The MIDI synthesizer bundled with SDL_Mixer doesn't sound as good as
Windows' built-in software synthesizer.
This adds Windows native implementation of MAKO as win/mako.cpp. It
plays MIDI by writing out SMF to a temporary file and play it with MCI.
CD emulation (--playlist) is also implemented using MCI.
The PCM implementation is copyed from TOTO's original Win32 impl.
This removes SDL_mixer dependency in Windows.
Fixes #1 .
2020-05-16 17:36:23 +09:00
kichikuou
e518f9e23e
Fix build and character encoding issues in Win32
2020-02-24 19:46:32 +09:00
kichikuou
7654f1a671
Fix character encoding in string literals
2020-02-24 19:38:12 +09:00
kichikuou
7a1cc2a483
Convert all Shift_JIS files to UTF-8
2020-02-24 18:06:38 +09:00
kichikuou
4ae7e9e7aa
Move SYSTEM1 initialization code to NACT_Sys1 constructor
2020-02-23 14:41:10 +09:00
kichikuou
7ffa8bc306
Avoid virtual functions in NACT
...
Since NACT functions call asynchronous operations and we use
ASYNCIFY_IGNORE_INDIRECT in emscripten.
2020-02-23 14:23:30 +09:00