Merge pull request #606 from stenzek/android-sign
CI: Sign Android APK before uploading
This commit is contained in:
commit
7cf50e816d
|
@ -170,13 +170,27 @@ jobs:
|
|||
run: |
|
||||
cd android
|
||||
./gradlew assembleRelease
|
||||
mv app/build/outputs/apk/release/app-release-unsigned.apk ../duckstation-release-unsigned.apk
|
||||
|
||||
|
||||
- name: Sign APK
|
||||
uses: r0adkll/sign-android-release@v1
|
||||
with:
|
||||
releaseDirectory: android/app/build/outputs/apk/release
|
||||
signingKeyBase64: ${{ secrets.APK_SIGNING_KEY }}
|
||||
alias: ${{ secrets.APK_KEY_ALIAS }}
|
||||
keyStorePassword: ${{ secrets.APK_KEY_STORE_PASSWORD }}
|
||||
keyPassword: ${{ secrets.APK_KEY_PASSWORD }}
|
||||
|
||||
- name: Rename APK
|
||||
shell: bash
|
||||
run: |
|
||||
cd android
|
||||
mv app/build/outputs/apk/release/app-release-unsigned-signed.apk ../duckstation-android-aarch64.apk
|
||||
|
||||
- name: Upload APK
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: "android"
|
||||
path: "duckstation-release-unsigned.apk"
|
||||
path: "duckstation-android-aarch64.apk"
|
||||
|
||||
|
||||
create-release:
|
||||
|
@ -239,5 +253,5 @@ jobs:
|
|||
linux-x64-appimage-qt-zsync/duckstation-qt-x64.AppImage.zsync
|
||||
linux-libretro/duckstation_libretro.so.zip
|
||||
linux-libretro/duckstation_libretro_android_aarch64.so.zip
|
||||
android/duckstation-release-unsigned.apk
|
||||
android/duckstation-android-aarch64.apk
|
||||
|
||||
|
|
12
README.md
12
README.md
|
@ -49,7 +49,7 @@ Other features include:
|
|||
- SDL-compatible game controller (e.g. XB360/XBOne)
|
||||
|
||||
## Downloading and running
|
||||
Binaries of DuckStation for 64-bit Windows and 64-bit Linux (in AppImage format) are available via GitHub Releases and are automatically built with every commit/push. Binaries or packages distributed through other sources may be out of date and are not supported by the developer.
|
||||
Binaries of DuckStation for Windows 64-bit, x86_64 Linux x86_64 (in AppImage format), and Android ARMv8/AArch64 are available via GitHub Releases and are automatically built with every commit/push. Binaries or packages distributed through other sources may be out of date and are not supported by the developer.
|
||||
|
||||
### Windows
|
||||
|
||||
|
@ -83,14 +83,20 @@ To download:
|
|||
|
||||
A prebuilt APK is now available for Android. However, please keep in mind that the Android version is not yet feature complete, it is more of a preview of things to come. You will need a device running a 64-bit AArch64 userland (anything made in the last few years).
|
||||
|
||||
Download link: https://github.com/stenzek/duckstation/releases/download/latest/duckstation-release-unsigned.apk
|
||||
Download link: https://github.com/stenzek/duckstation/releases/download/latest/duckstation-android-aarch64.apk
|
||||
|
||||
The main limitations are:
|
||||
- No controller support, only on-screen controls.
|
||||
- User directory is currently hardcoded to /sdcard/duckstation. So BIOS files go in /sdcard/duckstation/bios.
|
||||
- User directory is currently hardcoded to `/sdcard/duckstation`. So BIOS files go in `/sdcard/duckstation/bios`.
|
||||
- Lack of options in menu when emulator is running.
|
||||
- Performance is currently lower than the desktop x86_64 counterpart.
|
||||
|
||||
To use:
|
||||
- Install and run the app for the first time.
|
||||
- This will create `/sdcard/duckstation`. Drop your BIOS files in `/sdcard/duckstation/bios`.
|
||||
- Add game directories by hitting the `+` icon and selecting a directory. Due to a bug you may need to restart the app for it to scan the directory.
|
||||
- Tap a game to start.
|
||||
|
||||
|
||||
### Title Information
|
||||
|
||||
|
|
|
@ -23,10 +23,12 @@
|
|||
</string-array>
|
||||
<string-array name="gpu_renderer_entries">
|
||||
<item>Hardware (OpenGL)</item>
|
||||
<item>Hardware (Vulkan)</item>
|
||||
<item>Software</item>
|
||||
</string-array>
|
||||
<string-array name="gpu_renderer_values">
|
||||
<item>OpenGL</item>
|
||||
<item>Vulkan</item>
|
||||
<item>Software</item>
|
||||
</string-array>
|
||||
<string-array name="settings_gpu_resolution_scale_entries">
|
||||
|
@ -65,4 +67,4 @@
|
|||
<item>15</item>
|
||||
<item>16</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
</resources>
|
||||
|
|
|
@ -2337,14 +2337,15 @@ void CDROM::DrawDebugWindow()
|
|||
if (m_reader.HasMedia())
|
||||
{
|
||||
const CDImage* media = m_reader.GetMedia();
|
||||
const auto [disc_minute, disc_second, disc_frame] = media->GetMSFPositionOnDisc();
|
||||
const auto [track_minute, track_second, track_frame] = media->GetMSFPositionInTrack();
|
||||
const CDImage::Position disc_position = CDImage::Position::FromLBA(m_current_lba);
|
||||
const CDImage::Position track_position = CDImage::Position::FromLBA(
|
||||
m_current_lba - media->GetTrackStartPosition(static_cast<u8>(media->GetTrackNumber())));
|
||||
|
||||
ImGui::Text("Filename: %s", media->GetFileName().c_str());
|
||||
ImGui::Text("Disc Position: MSF[%02u:%02u:%02u] LBA[%u]", disc_minute, disc_second, disc_frame,
|
||||
media->GetPositionOnDisc());
|
||||
ImGui::Text("Track Position: Number[%u] MSF[%02u:%02u:%02u] LBA[%u]", media->GetTrackNumber(), track_minute,
|
||||
track_second, track_frame, media->GetPositionInTrack());
|
||||
ImGui::Text("Disc Position: MSF[%02u:%02u:%02u] LBA[%u]", disc_position.minute, disc_position.second,
|
||||
disc_position.frame, disc_position.ToLBA());
|
||||
ImGui::Text("Track Position: Number[%u] MSF[%02u:%02u:%02u] LBA[%u]", media->GetTrackNumber(),
|
||||
track_position.minute, track_position.second, track_position.frame, track_position.ToLBA());
|
||||
ImGui::Text("Last Sector: %02X:%02X:%02X (Mode %u)", m_last_sector_header.minute, m_last_sector_header.second,
|
||||
m_last_sector_header.frame, m_last_sector_header.sector_mode);
|
||||
}
|
||||
|
|
|
@ -369,17 +369,25 @@ static std::array<retro_core_option_definition, 22> s_option_definitions = {{
|
|||
#endif
|
||||
},
|
||||
{"GPU.ResolutionScale",
|
||||
"Rendering Resolution Scale",
|
||||
"Scales internal rendering resolution by the specified multiplier. Larger values are slower. Some games require "
|
||||
"1x rendering resolution or they will have rendering issues.",
|
||||
{{"1", "1x (1024x512)"},
|
||||
{"2", "2x (2048x1024)"},
|
||||
{"3", "3x (3072x1536)"},
|
||||
{"4", "4x (4096x2048)"},
|
||||
{"5", "5x (5120x2160)"},
|
||||
{"6", "6x (6144x3072)"},
|
||||
{"7", "7x (7168x3584)"},
|
||||
{"8", "8x (8192x4096)"}},
|
||||
"Internal Resolution Scale",
|
||||
"Scales internal VRAM resolution by the specified multiplier. Larger values are slower. Some games require "
|
||||
"1x VRAM resolution or they will have rendering issues.",
|
||||
{{"1", "1x (1024x512 VRAM)"},
|
||||
{"2", "2x (2048x1024 VRAM)"},
|
||||
{"3", "3x (3072x1536 VRAM)"},
|
||||
{"4", "4x (4096x2048 VRAM)"},
|
||||
{"5", "5x (5120x2160 VRAM)"},
|
||||
{"6", "6x (6144x3072 VRAM)"},
|
||||
{"7", "7x (7168x3584 VRAM)"},
|
||||
{"8", "8x (8192x4096 VRAM)"},
|
||||
{"9", "9x (9216x4608 VRAM)"},
|
||||
{"10", "10x (10240x5120 VRAM)"},
|
||||
{"11", "11x (11264x5632 VRAM)"},
|
||||
{"12", "12x (12288x6144 VRAM)"},
|
||||
{"13", "13x (13312x6656 VRAM)"},
|
||||
{"14", "14x (14336x7168 VRAM)"},
|
||||
{"15", "15x (15360x7680 VRAM)"},
|
||||
{"16", "16x (16384x8192 VRAM)"}},
|
||||
"1"},
|
||||
{"GPU.TrueColor",
|
||||
"True Color Rendering",
|
||||
|
|
Loading…
Reference in New Issue