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: |
|
run: |
|
||||||
cd android
|
cd android
|
||||||
./gradlew assembleRelease
|
./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
|
- name: Upload APK
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v1
|
||||||
with:
|
with:
|
||||||
name: "android"
|
name: "android"
|
||||||
path: "duckstation-release-unsigned.apk"
|
path: "duckstation-android-aarch64.apk"
|
||||||
|
|
||||||
|
|
||||||
create-release:
|
create-release:
|
||||||
|
@ -239,5 +253,5 @@ jobs:
|
||||||
linux-x64-appimage-qt-zsync/duckstation-qt-x64.AppImage.zsync
|
linux-x64-appimage-qt-zsync/duckstation-qt-x64.AppImage.zsync
|
||||||
linux-libretro/duckstation_libretro.so.zip
|
linux-libretro/duckstation_libretro.so.zip
|
||||||
linux-libretro/duckstation_libretro_android_aarch64.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)
|
- SDL-compatible game controller (e.g. XB360/XBOne)
|
||||||
|
|
||||||
## Downloading and running
|
## 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
|
### 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).
|
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:
|
The main limitations are:
|
||||||
- No controller support, only on-screen controls.
|
- 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.
|
- Lack of options in menu when emulator is running.
|
||||||
- Performance is currently lower than the desktop x86_64 counterpart.
|
- 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
|
### Title Information
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,12 @@
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="gpu_renderer_entries">
|
<string-array name="gpu_renderer_entries">
|
||||||
<item>Hardware (OpenGL)</item>
|
<item>Hardware (OpenGL)</item>
|
||||||
|
<item>Hardware (Vulkan)</item>
|
||||||
<item>Software</item>
|
<item>Software</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="gpu_renderer_values">
|
<string-array name="gpu_renderer_values">
|
||||||
<item>OpenGL</item>
|
<item>OpenGL</item>
|
||||||
|
<item>Vulkan</item>
|
||||||
<item>Software</item>
|
<item>Software</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="settings_gpu_resolution_scale_entries">
|
<string-array name="settings_gpu_resolution_scale_entries">
|
||||||
|
@ -65,4 +67,4 @@
|
||||||
<item>15</item>
|
<item>15</item>
|
||||||
<item>16</item>
|
<item>16</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -2337,14 +2337,15 @@ void CDROM::DrawDebugWindow()
|
||||||
if (m_reader.HasMedia())
|
if (m_reader.HasMedia())
|
||||||
{
|
{
|
||||||
const CDImage* media = m_reader.GetMedia();
|
const CDImage* media = m_reader.GetMedia();
|
||||||
const auto [disc_minute, disc_second, disc_frame] = media->GetMSFPositionOnDisc();
|
const CDImage::Position disc_position = CDImage::Position::FromLBA(m_current_lba);
|
||||||
const auto [track_minute, track_second, track_frame] = media->GetMSFPositionInTrack();
|
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("Filename: %s", media->GetFileName().c_str());
|
||||||
ImGui::Text("Disc Position: MSF[%02u:%02u:%02u] LBA[%u]", disc_minute, disc_second, disc_frame,
|
ImGui::Text("Disc Position: MSF[%02u:%02u:%02u] LBA[%u]", disc_position.minute, disc_position.second,
|
||||||
media->GetPositionOnDisc());
|
disc_position.frame, disc_position.ToLBA());
|
||||||
ImGui::Text("Track Position: Number[%u] MSF[%02u:%02u:%02u] LBA[%u]", media->GetTrackNumber(), track_minute,
|
ImGui::Text("Track Position: Number[%u] MSF[%02u:%02u:%02u] LBA[%u]", media->GetTrackNumber(),
|
||||||
track_second, track_frame, media->GetPositionInTrack());
|
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,
|
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);
|
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
|
#endif
|
||||||
},
|
},
|
||||||
{"GPU.ResolutionScale",
|
{"GPU.ResolutionScale",
|
||||||
"Rendering Resolution Scale",
|
"Internal Resolution Scale",
|
||||||
"Scales internal rendering resolution by the specified multiplier. Larger values are slower. Some games require "
|
"Scales internal VRAM resolution by the specified multiplier. Larger values are slower. Some games require "
|
||||||
"1x rendering resolution or they will have rendering issues.",
|
"1x VRAM resolution or they will have rendering issues.",
|
||||||
{{"1", "1x (1024x512)"},
|
{{"1", "1x (1024x512 VRAM)"},
|
||||||
{"2", "2x (2048x1024)"},
|
{"2", "2x (2048x1024 VRAM)"},
|
||||||
{"3", "3x (3072x1536)"},
|
{"3", "3x (3072x1536 VRAM)"},
|
||||||
{"4", "4x (4096x2048)"},
|
{"4", "4x (4096x2048 VRAM)"},
|
||||||
{"5", "5x (5120x2160)"},
|
{"5", "5x (5120x2160 VRAM)"},
|
||||||
{"6", "6x (6144x3072)"},
|
{"6", "6x (6144x3072 VRAM)"},
|
||||||
{"7", "7x (7168x3584)"},
|
{"7", "7x (7168x3584 VRAM)"},
|
||||||
{"8", "8x (8192x4096)"}},
|
{"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"},
|
"1"},
|
||||||
{"GPU.TrueColor",
|
{"GPU.TrueColor",
|
||||||
"True Color Rendering",
|
"True Color Rendering",
|
||||||
|
|
Loading…
Reference in New Issue