Commit Graph
137 Commits
Author SHA1 Message Date
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
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 15fc2f6c8e Merge rest2/ to res3/ 2020-02-22 18:27:01 +09:00
kichikuou 348dff7575 Add game table entry for Prostudent G omake
Use `-game prog_omake` to play it.
2020-02-22 16:15:51 +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 1f5449687f Clean up MAKO code 2020-02-16 15:57:05 +09:00
kichikuou 6bd6bca7dc Implement PCM sound with SDL_mixer 2020-02-16 13:36:01 +09:00
kichikuou 52313dd682 Emscripten: MIDI support 2020-02-16 11:09:32 +09:00
kichikuou 4ede5b1b4c Android: Play MIDI via temporary file
MediaPlayer in old versions of Android does not accept data: URL.
2020-02-16 10:28:29 +09:00
kichikuou 4aa5cc5bfd Android: MIDI support 2020-02-15 23:01:23 +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 51b65c84af MIDI playback with SDL_mixer
Instead of controlling MIDI device in real time, generate a data stream
in SMF format and feed it to SDL_mixer.
2020-02-15 17:27:34 +09:00
kichikuou 05a3c826f9 Refactor CMakeLists.txt 2020-02-11 11:09:26 +09:00