Launcher.kt extracts given ZIP file to the internal storage, preserving
its directory structure.
Before this change, if the game files were in a subdirectory, an
xsystem35.gr file was generated containing the path to the game files.
However, with this method, .xsys35rc and some data files (such as map
files of Kaeru Nyo) could not be loaded.
After this change, Launcher.kt will no longer generate the xsystem35.gr
file. Instead, it records the directory where the game is located in
game_directory.txt, and specify that directory in -gamedir to launch
xsystem35.
Fixes#51.
Before this, line k of the playlist file corresponded to track k-1 on
Android. After this, line k corresponds to track k, which is consistent
with other platforms.
Playlists generated in previous versions of xsystem35-sdl2 will be
automatically converted.
The title.txt file is written when the MT command is used, however some
games (Daiakuji, AmbivalenZ, Ikenai Katsumi sensei) does not use the MT
command. As a result, these titles did not appear in the launcher.
This makes the launcher use the name of the ZIP archive when the game
was installed as the alternate item name if the MT command was not used.
This allows installation from some ZIPs distributed by AliceSoft
archives, in Android < 7.0.
Some other ZIPs have game files with SJIS names, so change the error
message depending on whether there's a decode error.
The installer writes xsystem35.gr file into the game root directory.
Now save files are created at `files/save` directory, which is outside
the game directory. This scheme is the same as Kichikuou on Web, so it
would make transferring save data between two easier.
Playlist is written to <gamedir>/playlist.txt during installation
("cdrom_device" in .xsys35rc is not used).
Files that match /(\d+)\.(wav|mp3|ogg)$/ are recognized as BGM files
(digits represent a track number). Note that this convention is the same
as Kichikuou on Web.
This adds a minimal launcher activity for the android app, which does
the followings:
- Opens a file chooser to let user select a zip file
- Extracts the zip into the app's internal storage
- Launches the SDL activity