Compare commits
6 Commits
Canary-1.2
...
ef78e1bf19
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef78e1bf19 | ||
|
|
8dd78b4fb7 | ||
|
|
2c9e59365d | ||
|
|
eba93a3d66 | ||
|
|
75a4403cf1 | ||
|
|
e47487902e |
12
.github/workflows/canary.yml
vendored
12
.github/workflows/canary.yml
vendored
@@ -111,12 +111,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
pushd publish_ava
|
pushd publish_ava
|
||||||
rm publish/libarmeilleure-jitsupport.dylib
|
rm publish/libarmeilleure-jitsupport.dylib
|
||||||
7z a ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
|
7z a ../release_output/ryujinx-canary-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
|
||||||
popd
|
popd
|
||||||
|
|
||||||
pushd publish_sdl2_headless
|
pushd publish_sdl2_headless
|
||||||
rm publish/libarmeilleure-jitsupport.dylib
|
rm publish/libarmeilleure-jitsupport.dylib
|
||||||
7z a ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
|
7z a ../release_output/sdl2-ryujinx-headless-canary-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
|
||||||
popd
|
popd
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
@@ -126,13 +126,13 @@ jobs:
|
|||||||
pushd publish_ava
|
pushd publish_ava
|
||||||
rm publish/libarmeilleure-jitsupport.dylib
|
rm publish/libarmeilleure-jitsupport.dylib
|
||||||
chmod +x publish/Ryujinx.sh publish/Ryujinx
|
chmod +x publish/Ryujinx.sh publish/Ryujinx
|
||||||
tar -czvf ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
|
tar -czvf ../release_output/ryujinx-canary-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
|
||||||
popd
|
popd
|
||||||
|
|
||||||
pushd publish_sdl2_headless
|
pushd publish_sdl2_headless
|
||||||
rm publish/libarmeilleure-jitsupport.dylib
|
rm publish/libarmeilleure-jitsupport.dylib
|
||||||
chmod +x publish/Ryujinx.sh publish/Ryujinx.Headless.SDL2
|
chmod +x publish/Ryujinx.sh publish/Ryujinx.Headless.SDL2
|
||||||
tar -czvf ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
|
tar -czvf ../release_output/sdl2-ryujinx-headless-canary-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
|
||||||
popd
|
popd
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
@@ -236,11 +236,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Publish macOS Ryujinx
|
- name: Publish macOS Ryujinx
|
||||||
run: |
|
run: |
|
||||||
./distribution/macos/create_macos_build_ava.sh . publish_tmp_ava publish_ava ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release
|
./distribution/macos/create_macos_build_ava_canary.sh . publish_tmp_ava publish_ava ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release
|
||||||
|
|
||||||
- name: Publish macOS Ryujinx.Headless.SDL2
|
- name: Publish macOS Ryujinx.Headless.SDL2
|
||||||
run: |
|
run: |
|
||||||
./distribution/macos/create_macos_build_headless.sh . publish_tmp_headless publish_headless ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release
|
./distribution/macos/create_macos_build_headless_canary.sh . publish_tmp_headless publish_headless ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release
|
||||||
|
|
||||||
- name: Pushing new release
|
- name: Pushing new release
|
||||||
uses: ncipollo/release-action@v1
|
uses: ncipollo/release-action@v1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
## Compilation
|
## Compilation
|
||||||
|
|
||||||
Building the project is for users that want to contribute code only.
|
Building the project is for advanced users.
|
||||||
If you wish to build the emulator yourself, follow these steps:
|
If you wish to build the emulator yourself, follow these steps:
|
||||||
|
|
||||||
### Step 1
|
### Step 1
|
||||||
@@ -20,4 +20,4 @@ Then type the following command: `dotnet build -c Release -o build`
|
|||||||
the built files will be found in the newly created build directory.
|
the built files will be found in the newly created build directory.
|
||||||
|
|
||||||
Ryujinx system files are stored in the `Ryujinx` folder.
|
Ryujinx system files are stored in the `Ryujinx` folder.
|
||||||
This folder is located in the user folder, which can be accessed by clicking `Open Ryujinx Folder` under the File menu in the GUI.
|
This folder is located in the user folder, which can be accessed by clicking `Open Ryujinx Folder` under the File menu in the GUI.
|
||||||
@@ -74,7 +74,7 @@ We use and recommend the following workflow:
|
|||||||
3. In your fork, create a branch off of main (`git checkout -b mybranch`).
|
3. In your fork, create a branch off of main (`git checkout -b mybranch`).
|
||||||
- Branches are useful since they isolate your changes from incoming changes from upstream. They also enable you to create multiple PRs from the same fork.
|
- Branches are useful since they isolate your changes from incoming changes from upstream. They also enable you to create multiple PRs from the same fork.
|
||||||
4. Make and commit your changes to your branch.
|
4. Make and commit your changes to your branch.
|
||||||
- [Build Instructions](https://github.com/GreemDev/Ryujinx/blob/master/COMPILING.md) explains how to build and test.
|
- [Build Instructions](https://github.com/GreemDev/Ryujinx#building) explains how to build and test.
|
||||||
- Commit messages should be clear statements of action and intent.
|
- Commit messages should be clear statements of action and intent.
|
||||||
6. Build the repository with your changes.
|
6. Build the repository with your changes.
|
||||||
- Make sure that the builds are clean.
|
- Make sure that the builds are clean.
|
||||||
@@ -83,7 +83,7 @@ We use and recommend the following workflow:
|
|||||||
- State in the description what issue or improvement your change is addressing.
|
- State in the description what issue or improvement your change is addressing.
|
||||||
- Check if all the Continuous Integration checks are passing. Refer to [Actions](https://github.com/GreemDev/Ryujinx/actions) to check for outstanding errors.
|
- Check if all the Continuous Integration checks are passing. Refer to [Actions](https://github.com/GreemDev/Ryujinx/actions) to check for outstanding errors.
|
||||||
8. Wait for feedback or approval of your changes from the core development team
|
8. Wait for feedback or approval of your changes from the core development team
|
||||||
- Details about the pull request [review procedure](docs/workflow/pr-guide.md).
|
- Details about the pull request [review procedure](docs/workflow/ci/pr-guide.md).
|
||||||
9. When the team members have signed off, and all checks are green, your PR will be merged.
|
9. When the team members have signed off, and all checks are green, your PR will be merged.
|
||||||
- The next official build will automatically include your change.
|
- The next official build will automatically include your change.
|
||||||
- You can delete the branch you used for making the change.
|
- You can delete the branch you used for making the change.
|
||||||
|
|||||||
114
distribution/macos/create_macos_build_ava_canary.sh
Executable file
114
distribution/macos/create_macos_build_ava_canary.sh
Executable file
@@ -0,0 +1,114 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$#" -lt 7 ]; then
|
||||||
|
echo "usage <BASE_DIR> <TEMP_DIRECTORY> <OUTPUT_DIRECTORY> <ENTITLEMENTS_FILE_PATH> <VERSION> <SOURCE_REVISION_ID> <CONFIGURATION> <EXTRA_ARGS>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$1"
|
||||||
|
mkdir -p "$2"
|
||||||
|
mkdir -p "$3"
|
||||||
|
|
||||||
|
BASE_DIR=$(readlink -f "$1")
|
||||||
|
TEMP_DIRECTORY=$(readlink -f "$2")
|
||||||
|
OUTPUT_DIRECTORY=$(readlink -f "$3")
|
||||||
|
ENTITLEMENTS_FILE_PATH=$(readlink -f "$4")
|
||||||
|
VERSION=$5
|
||||||
|
SOURCE_REVISION_ID=$6
|
||||||
|
CONFIGURATION=$7
|
||||||
|
EXTRA_ARGS=$8
|
||||||
|
|
||||||
|
if [ "$VERSION" == "1.1.0" ];
|
||||||
|
then
|
||||||
|
RELEASE_TAR_FILE_NAME=ryujinx-canary-$CONFIGURATION-$VERSION+$SOURCE_REVISION_ID-macos_universal.app.tar
|
||||||
|
else
|
||||||
|
RELEASE_TAR_FILE_NAME=ryujinx-canary-$VERSION-macos_universal.app.tar
|
||||||
|
fi
|
||||||
|
|
||||||
|
ARM64_APP_BUNDLE="$TEMP_DIRECTORY/output_arm64/Ryujinx.app"
|
||||||
|
X64_APP_BUNDLE="$TEMP_DIRECTORY/output_x64/Ryujinx.app"
|
||||||
|
UNIVERSAL_APP_BUNDLE="$OUTPUT_DIRECTORY/Ryujinx.app"
|
||||||
|
EXECUTABLE_SUB_PATH=Contents/MacOS/Ryujinx
|
||||||
|
|
||||||
|
rm -rf "$TEMP_DIRECTORY"
|
||||||
|
mkdir -p "$TEMP_DIRECTORY"
|
||||||
|
|
||||||
|
DOTNET_COMMON_ARGS=(-p:DebugType=embedded -p:Version="$VERSION" -p:SourceRevisionId="$SOURCE_REVISION_ID" --self-contained true $EXTRA_ARGS)
|
||||||
|
|
||||||
|
dotnet restore
|
||||||
|
dotnet build -c "$CONFIGURATION" src/Ryujinx
|
||||||
|
dotnet publish -c "$CONFIGURATION" -r osx-arm64 -o "$TEMP_DIRECTORY/publish_arm64" "${DOTNET_COMMON_ARGS[@]}" src/Ryujinx
|
||||||
|
dotnet publish -c "$CONFIGURATION" -r osx-x64 -o "$TEMP_DIRECTORY/publish_x64" "${DOTNET_COMMON_ARGS[@]}" src/Ryujinx
|
||||||
|
|
||||||
|
# Get rid of the support library for ARMeilleure for x64 (that's only for arm64)
|
||||||
|
rm -rf "$TEMP_DIRECTORY/publish_x64/libarmeilleure-jitsupport.dylib"
|
||||||
|
|
||||||
|
# Get rid of libsoundio from arm64 builds as we don't have a arm64 variant
|
||||||
|
# TODO: remove this once done
|
||||||
|
rm -rf "$TEMP_DIRECTORY/publish_arm64/libsoundio.dylib"
|
||||||
|
|
||||||
|
pushd "$BASE_DIR/distribution/macos"
|
||||||
|
./create_app_bundle.sh "$TEMP_DIRECTORY/publish_x64" "$TEMP_DIRECTORY/output_x64" "$ENTITLEMENTS_FILE_PATH"
|
||||||
|
./create_app_bundle.sh "$TEMP_DIRECTORY/publish_arm64" "$TEMP_DIRECTORY/output_arm64" "$ENTITLEMENTS_FILE_PATH"
|
||||||
|
popd
|
||||||
|
|
||||||
|
rm -rf "$UNIVERSAL_APP_BUNDLE"
|
||||||
|
mkdir -p "$OUTPUT_DIRECTORY"
|
||||||
|
|
||||||
|
# Let's copy one of the two different app bundle and remove the executable
|
||||||
|
cp -R "$ARM64_APP_BUNDLE" "$UNIVERSAL_APP_BUNDLE"
|
||||||
|
rm "$UNIVERSAL_APP_BUNDLE/$EXECUTABLE_SUB_PATH"
|
||||||
|
|
||||||
|
# Make it libraries universal
|
||||||
|
python3 "$BASE_DIR/distribution/macos/construct_universal_dylib.py" "$ARM64_APP_BUNDLE" "$X64_APP_BUNDLE" "$UNIVERSAL_APP_BUNDLE" "**/*.dylib"
|
||||||
|
|
||||||
|
if ! [ -x "$(command -v lipo)" ];
|
||||||
|
then
|
||||||
|
if ! [ -x "$(command -v llvm-lipo-14)" ];
|
||||||
|
then
|
||||||
|
LIPO=llvm-lipo
|
||||||
|
else
|
||||||
|
LIPO=llvm-lipo-14
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
LIPO=lipo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make the executable universal
|
||||||
|
$LIPO "$ARM64_APP_BUNDLE/$EXECUTABLE_SUB_PATH" "$X64_APP_BUNDLE/$EXECUTABLE_SUB_PATH" -output "$UNIVERSAL_APP_BUNDLE/$EXECUTABLE_SUB_PATH" -create
|
||||||
|
|
||||||
|
# Patch up the Info.plist to have appropriate version
|
||||||
|
sed -r -i.bck "s/\%\%RYUJINX_BUILD_VERSION\%\%/$VERSION/g;" "$UNIVERSAL_APP_BUNDLE/Contents/Info.plist"
|
||||||
|
sed -r -i.bck "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$SOURCE_REVISION_ID/g;" "$UNIVERSAL_APP_BUNDLE/Contents/Info.plist"
|
||||||
|
rm "$UNIVERSAL_APP_BUNDLE/Contents/Info.plist.bck"
|
||||||
|
|
||||||
|
# Now sign it
|
||||||
|
if ! [ -x "$(command -v codesign)" ];
|
||||||
|
then
|
||||||
|
if ! [ -x "$(command -v rcodesign)" ];
|
||||||
|
then
|
||||||
|
echo "Cannot find rcodesign on your system, please install rcodesign."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# NOTE: Currently require https://github.com/indygreg/apple-platform-rs/pull/44 to work on other OSes.
|
||||||
|
# cargo install --git "https://github.com/marysaka/apple-platform-rs" --branch "fix/adhoc-app-bundle" apple-codesign --bin "rcodesign"
|
||||||
|
echo "Using rcodesign for ad-hoc signing"
|
||||||
|
rcodesign sign --entitlements-xml-path "$ENTITLEMENTS_FILE_PATH" "$UNIVERSAL_APP_BUNDLE"
|
||||||
|
else
|
||||||
|
echo "Using codesign for ad-hoc signing"
|
||||||
|
codesign --entitlements "$ENTITLEMENTS_FILE_PATH" -f -s - "$UNIVERSAL_APP_BUNDLE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Creating archive"
|
||||||
|
pushd "$OUTPUT_DIRECTORY"
|
||||||
|
tar --exclude "Ryujinx.app/Contents/MacOS/Ryujinx" -cvf "$RELEASE_TAR_FILE_NAME" Ryujinx.app 1> /dev/null
|
||||||
|
python3 "$BASE_DIR/distribution/misc/add_tar_exec.py" "$RELEASE_TAR_FILE_NAME" "Ryujinx.app/Contents/MacOS/Ryujinx" "Ryujinx.app/Contents/MacOS/Ryujinx"
|
||||||
|
gzip -9 < "$RELEASE_TAR_FILE_NAME" > "$RELEASE_TAR_FILE_NAME.gz"
|
||||||
|
rm "$RELEASE_TAR_FILE_NAME"
|
||||||
|
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "Done"
|
||||||
111
distribution/macos/create_macos_build_headless_canary.sh
Executable file
111
distribution/macos/create_macos_build_headless_canary.sh
Executable file
@@ -0,0 +1,111 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$#" -lt 7 ]; then
|
||||||
|
echo "usage <BASE_DIR> <TEMP_DIRECTORY> <OUTPUT_DIRECTORY> <ENTITLEMENTS_FILE_PATH> <VERSION> <SOURCE_REVISION_ID> <CONFIGURATION> <EXTRA_ARGS>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$1"
|
||||||
|
mkdir -p "$2"
|
||||||
|
mkdir -p "$3"
|
||||||
|
|
||||||
|
BASE_DIR=$(readlink -f "$1")
|
||||||
|
TEMP_DIRECTORY=$(readlink -f "$2")
|
||||||
|
OUTPUT_DIRECTORY=$(readlink -f "$3")
|
||||||
|
ENTITLEMENTS_FILE_PATH=$(readlink -f "$4")
|
||||||
|
VERSION=$5
|
||||||
|
SOURCE_REVISION_ID=$6
|
||||||
|
CONFIGURATION=$7
|
||||||
|
EXTRA_ARGS=$8
|
||||||
|
|
||||||
|
if [ "$VERSION" == "1.1.0" ];
|
||||||
|
then
|
||||||
|
RELEASE_TAR_FILE_NAME=sdl2-ryujinx-headless-canary-$CONFIGURATION-$VERSION+$SOURCE_REVISION_ID-macos_universal.tar
|
||||||
|
else
|
||||||
|
RELEASE_TAR_FILE_NAME=sdl2-ryujinx-headless-canary-$VERSION-macos_universal.tar
|
||||||
|
fi
|
||||||
|
|
||||||
|
ARM64_OUTPUT="$TEMP_DIRECTORY/publish_arm64"
|
||||||
|
X64_OUTPUT="$TEMP_DIRECTORY/publish_x64"
|
||||||
|
UNIVERSAL_OUTPUT="$OUTPUT_DIRECTORY/publish"
|
||||||
|
EXECUTABLE_SUB_PATH=Ryujinx.Headless.SDL2
|
||||||
|
|
||||||
|
rm -rf "$TEMP_DIRECTORY"
|
||||||
|
mkdir -p "$TEMP_DIRECTORY"
|
||||||
|
|
||||||
|
DOTNET_COMMON_ARGS=(-p:DebugType=embedded -p:Version="$VERSION" -p:SourceRevisionId="$SOURCE_REVISION_ID" --self-contained true $EXTRA_ARGS)
|
||||||
|
|
||||||
|
dotnet restore
|
||||||
|
dotnet build -c "$CONFIGURATION" src/Ryujinx.Headless.SDL2
|
||||||
|
dotnet publish -c "$CONFIGURATION" -r osx-arm64 -o "$TEMP_DIRECTORY/publish_arm64" "${DOTNET_COMMON_ARGS[@]}" src/Ryujinx.Headless.SDL2
|
||||||
|
dotnet publish -c "$CONFIGURATION" -r osx-x64 -o "$TEMP_DIRECTORY/publish_x64" "${DOTNET_COMMON_ARGS[@]}" src/Ryujinx.Headless.SDL2
|
||||||
|
|
||||||
|
# Get rid of the support library for ARMeilleure for x64 (that's only for arm64)
|
||||||
|
rm -rf "$TEMP_DIRECTORY/publish_x64/libarmeilleure-jitsupport.dylib"
|
||||||
|
|
||||||
|
# Get rid of libsoundio from arm64 builds as we don't have a arm64 variant
|
||||||
|
# TODO: remove this once done
|
||||||
|
rm -rf "$TEMP_DIRECTORY/publish_arm64/libsoundio.dylib"
|
||||||
|
|
||||||
|
rm -rf "$OUTPUT_DIRECTORY"
|
||||||
|
mkdir -p "$OUTPUT_DIRECTORY"
|
||||||
|
|
||||||
|
# Let's copy one of the two different outputs and remove the executable
|
||||||
|
cp -R "$ARM64_OUTPUT/" "$UNIVERSAL_OUTPUT"
|
||||||
|
rm "$UNIVERSAL_OUTPUT/$EXECUTABLE_SUB_PATH"
|
||||||
|
|
||||||
|
# Make it libraries universal
|
||||||
|
python3 "$BASE_DIR/distribution/macos/construct_universal_dylib.py" "$ARM64_OUTPUT" "$X64_OUTPUT" "$UNIVERSAL_OUTPUT" "**/*.dylib"
|
||||||
|
|
||||||
|
if ! [ -x "$(command -v lipo)" ];
|
||||||
|
then
|
||||||
|
if ! [ -x "$(command -v llvm-lipo-14)" ];
|
||||||
|
then
|
||||||
|
LIPO=llvm-lipo
|
||||||
|
else
|
||||||
|
LIPO=llvm-lipo-14
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
LIPO=lipo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make the executable universal
|
||||||
|
$LIPO "$ARM64_OUTPUT/$EXECUTABLE_SUB_PATH" "$X64_OUTPUT/$EXECUTABLE_SUB_PATH" -output "$UNIVERSAL_OUTPUT/$EXECUTABLE_SUB_PATH" -create
|
||||||
|
|
||||||
|
# Now sign it
|
||||||
|
if ! [ -x "$(command -v codesign)" ];
|
||||||
|
then
|
||||||
|
if ! [ -x "$(command -v rcodesign)" ];
|
||||||
|
then
|
||||||
|
echo "Cannot find rcodesign on your system, please install rcodesign."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# NOTE: Currently require https://github.com/indygreg/apple-platform-rs/pull/44 to work on other OSes.
|
||||||
|
# cargo install --git "https://github.com/marysaka/apple-platform-rs" --branch "fix/adhoc-app-bundle" apple-codesign --bin "rcodesign"
|
||||||
|
echo "Using rcodesign for ad-hoc signing"
|
||||||
|
for FILE in "$UNIVERSAL_OUTPUT"/*; do
|
||||||
|
if [[ $(file "$FILE") == *"Mach-O"* ]]; then
|
||||||
|
rcodesign sign --entitlements-xml-path "$ENTITLEMENTS_FILE_PATH" "$FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "Using codesign for ad-hoc signing"
|
||||||
|
for FILE in "$UNIVERSAL_OUTPUT"/*; do
|
||||||
|
if [[ $(file "$FILE") == *"Mach-O"* ]]; then
|
||||||
|
codesign --entitlements "$ENTITLEMENTS_FILE_PATH" -f -s - "$FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Creating archive"
|
||||||
|
pushd "$OUTPUT_DIRECTORY"
|
||||||
|
tar --exclude "publish/Ryujinx.Headless.SDL2" -cvf "$RELEASE_TAR_FILE_NAME" publish 1> /dev/null
|
||||||
|
python3 "$BASE_DIR/distribution/misc/add_tar_exec.py" "$RELEASE_TAR_FILE_NAME" "publish/Ryujinx.Headless.SDL2" "publish/Ryujinx.Headless.SDL2"
|
||||||
|
gzip -9 < "$RELEASE_TAR_FILE_NAME" > "$RELEASE_TAR_FILE_NAME.gz"
|
||||||
|
rm "$RELEASE_TAR_FILE_NAME"
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "Done"
|
||||||
@@ -9,7 +9,7 @@ To merge pull requests, you must have write permissions in the repository.
|
|||||||
## Quick Code Review Rules
|
## Quick Code Review Rules
|
||||||
|
|
||||||
* Do not mix unrelated changes in one pull request. For example, a code style change should never be mixed with a bug fix.
|
* Do not mix unrelated changes in one pull request. For example, a code style change should never be mixed with a bug fix.
|
||||||
* All changes should follow the existing code style. You can read more about our code style at [docs/coding-style](../coding-guidelines/coding-style.md).
|
* All changes should follow the existing code style. You can read more about our code style at [docs/coding-guidelines](../coding-guidelines/coding-style.md).
|
||||||
* Adding external dependencies is to be avoided unless not doing so would introduce _significant_ complexity. Any dependency addition should be justified and discussed before merge.
|
* Adding external dependencies is to be avoided unless not doing so would introduce _significant_ complexity. Any dependency addition should be justified and discussed before merge.
|
||||||
* Use Draft pull requests for changes you are still working on but want early CI loop feedback. When you think your changes are ready for review, [change the status](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request) of your pull request.
|
* Use Draft pull requests for changes you are still working on but want early CI loop feedback. When you think your changes are ready for review, [change the status](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request) of your pull request.
|
||||||
* Rebase your changes when required or directly requested. Changes should always be commited on top of the upstream branch, not the other way around.
|
* Rebase your changes when required or directly requested. Changes should always be commited on top of the upstream branch, not the other way around.
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using Ryujinx.Common.Logging.Formatters;
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net.Mime;
|
||||||
|
|
||||||
namespace Ryujinx.Common.Logging.Targets
|
namespace Ryujinx.Common.Logging.Targets
|
||||||
{
|
{
|
||||||
@@ -69,9 +70,10 @@ namespace Ryujinx.Common.Logging.Targets
|
|||||||
}
|
}
|
||||||
|
|
||||||
string version = ReleaseInformation.Version;
|
string version = ReleaseInformation.Version;
|
||||||
|
string appName = ReleaseInformation.IsCanaryBuild ? "Ryujinx_Canary" : "Ryujinx";
|
||||||
|
|
||||||
// Get path for the current time
|
// Get path for the current time
|
||||||
path = Path.Combine(logDir.FullName, $"Ryujinx_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log");
|
path = Path.Combine(logDir.FullName, $"{appName}_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ namespace Ryujinx.UI.Common.Helper
|
|||||||
public static string LaunchPathArg { get; private set; }
|
public static string LaunchPathArg { get; private set; }
|
||||||
public static string LaunchApplicationId { get; private set; }
|
public static string LaunchApplicationId { get; private set; }
|
||||||
public static bool StartFullscreenArg { get; private set; }
|
public static bool StartFullscreenArg { get; private set; }
|
||||||
public static bool HideAvailableUpdates { get; private set; }
|
|
||||||
|
|
||||||
public static void ParseArguments(string[] args)
|
public static void ParseArguments(string[] args)
|
||||||
{
|
{
|
||||||
@@ -94,9 +93,6 @@ namespace Ryujinx.UI.Common.Helper
|
|||||||
|
|
||||||
OverrideHideCursor = args[++i];
|
OverrideHideCursor = args[++i];
|
||||||
break;
|
break;
|
||||||
case "--hide-updates":
|
|
||||||
HideAvailableUpdates = true;
|
|
||||||
break;
|
|
||||||
case "--software-gui":
|
case "--software-gui":
|
||||||
OverrideHardwareAcceleration = false;
|
OverrideHardwareAcceleration = false;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "إدارة المحتوى القابل للتنزيل لـ {0} ({1})",
|
"DlcWindowTitle": "إدارة المحتوى القابل للتنزيل لـ {0} ({1})",
|
||||||
"ModWindowTitle": "إدارة التعديلات لـ {0} ({1})",
|
"ModWindowTitle": "إدارة التعديلات لـ {0} ({1})",
|
||||||
"UpdateWindowTitle": "مدير تحديث العنوان",
|
"UpdateWindowTitle": "مدير تحديث العنوان",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "الغش متوفر لـ {0} [{1}]",
|
"CheatWindowHeading": "الغش متوفر لـ {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "Spiel-DLC verwalten",
|
"DlcWindowTitle": "Spiel-DLC verwalten",
|
||||||
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
||||||
"UpdateWindowTitle": "Spiel-Updates verwalten",
|
"UpdateWindowTitle": "Spiel-Updates verwalten",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "Cheats verfügbar für {0} [{1}]",
|
"CheatWindowHeading": "Cheats verfügbar für {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "Downloadable Content Manager",
|
"DlcWindowTitle": "Downloadable Content Manager",
|
||||||
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
||||||
"UpdateWindowTitle": "Διαχειριστής Ενημερώσεων Τίτλου",
|
"UpdateWindowTitle": "Διαχειριστής Ενημερώσεων Τίτλου",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "Διαθέσιμα Cheats για {0} [{1}]",
|
"CheatWindowHeading": "Διαθέσιμα Cheats για {0} [{1}]",
|
||||||
|
|||||||
@@ -767,8 +767,6 @@
|
|||||||
"XCITrimmerDeselectDisplayed": "Deselect Shown",
|
"XCITrimmerDeselectDisplayed": "Deselect Shown",
|
||||||
"XCITrimmerSortName": "Title",
|
"XCITrimmerSortName": "Title",
|
||||||
"XCITrimmerSortSaved": "Space Savings",
|
"XCITrimmerSortSaved": "Space Savings",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "Cheats Available for {0} [{1}]",
|
"CheatWindowHeading": "Cheats Available for {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "Administrar contenido descargable",
|
"DlcWindowTitle": "Administrar contenido descargable",
|
||||||
"ModWindowTitle": "Administrar Mods para {0} ({1})",
|
"ModWindowTitle": "Administrar Mods para {0} ({1})",
|
||||||
"UpdateWindowTitle": "Administrar actualizaciones",
|
"UpdateWindowTitle": "Administrar actualizaciones",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} nueva(s) actualización(es) agregada(s)",
|
"UpdateWindowUpdateAddedMessage": "{0} nueva(s) actualización(es) agregada(s)",
|
||||||
"UpdateWindowBundledContentNotice": "Las actualizaciones agrupadas no pueden ser eliminadas, solamente deshabilitadas.",
|
"UpdateWindowBundledContentNotice": "Las actualizaciones agrupadas no pueden ser eliminadas, solamente deshabilitadas.",
|
||||||
"CheatWindowHeading": "Cheats disponibles para {0} [{1}]",
|
"CheatWindowHeading": "Cheats disponibles para {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "נהל הרחבות משחק עבור {0} ({1})",
|
"DlcWindowTitle": "נהל הרחבות משחק עבור {0} ({1})",
|
||||||
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
||||||
"UpdateWindowTitle": "נהל עדכוני משחקים",
|
"UpdateWindowTitle": "נהל עדכוני משחקים",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "צ'יטים זמינים עבור {0} [{1}]",
|
"CheatWindowHeading": "צ'יטים זמינים עבור {0} [{1}]",
|
||||||
|
|||||||
@@ -767,8 +767,6 @@
|
|||||||
"XCITrimmerDeselectDisplayed": "Deselziona Visualizzati",
|
"XCITrimmerDeselectDisplayed": "Deselziona Visualizzati",
|
||||||
"XCITrimmerSortName": "Titolo",
|
"XCITrimmerSortName": "Titolo",
|
||||||
"XCITrimmerSortSaved": "Salvataggio Spazio",
|
"XCITrimmerSortSaved": "Salvataggio Spazio",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} aggiornamento/i aggiunto/i",
|
"UpdateWindowUpdateAddedMessage": "{0} aggiornamento/i aggiunto/i",
|
||||||
"UpdateWindowBundledContentNotice": "Gli aggiornamenti inclusi non possono essere eliminati, ma solo disattivati",
|
"UpdateWindowBundledContentNotice": "Gli aggiornamenti inclusi non possono essere eliminati, ma solo disattivati",
|
||||||
"CheatWindowHeading": "Trucchi disponibili per {0} [{1}]",
|
"CheatWindowHeading": "Trucchi disponibili per {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "DLC 管理",
|
"DlcWindowTitle": "DLC 管理",
|
||||||
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
||||||
"UpdateWindowTitle": "アップデート管理",
|
"UpdateWindowTitle": "アップデート管理",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "利用可能なチート {0} [{1}]",
|
"CheatWindowHeading": "利用可能なチート {0} [{1}]",
|
||||||
|
|||||||
@@ -767,8 +767,6 @@
|
|||||||
"XCITrimmerDeselectDisplayed": "표시됨 선택 취소",
|
"XCITrimmerDeselectDisplayed": "표시됨 선택 취소",
|
||||||
"XCITrimmerSortName": "타이틀",
|
"XCITrimmerSortName": "타이틀",
|
||||||
"XCITrimmerSortSaved": "공간 절약s",
|
"XCITrimmerSortSaved": "공간 절약s",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0}개의 새 업데이트가 추가됨",
|
"UpdateWindowUpdateAddedMessage": "{0}개의 새 업데이트가 추가됨",
|
||||||
"UpdateWindowBundledContentNotice": "번들 업데이트는 제거할 수 없으며, 비활성화만 가능합니다.",
|
"UpdateWindowBundledContentNotice": "번들 업데이트는 제거할 수 없으며, 비활성화만 가능합니다.",
|
||||||
"CheatWindowHeading": "{0} [{1}]에 사용 가능한 치트",
|
"CheatWindowHeading": "{0} [{1}]에 사용 가능한 치트",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "Menedżer Zawartości do Pobrania",
|
"DlcWindowTitle": "Menedżer Zawartości do Pobrania",
|
||||||
"ModWindowTitle": "Zarządzaj modami dla {0} ({1})",
|
"ModWindowTitle": "Zarządzaj modami dla {0} ({1})",
|
||||||
"UpdateWindowTitle": "Menedżer Aktualizacji Tytułu",
|
"UpdateWindowTitle": "Menedżer Aktualizacji Tytułu",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "Kody Dostępne dla {0} [{1}]",
|
"CheatWindowHeading": "Kody Dostępne dla {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "Gerenciador de DLC",
|
"DlcWindowTitle": "Gerenciador de DLC",
|
||||||
"ModWindowTitle": "Gerenciar Mods para {0} ({1})",
|
"ModWindowTitle": "Gerenciar Mods para {0} ({1})",
|
||||||
"UpdateWindowTitle": "Gerenciador de atualizações",
|
"UpdateWindowTitle": "Gerenciador de atualizações",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} nova(s) atualização(ões) adicionada(s)",
|
"UpdateWindowUpdateAddedMessage": "{0} nova(s) atualização(ões) adicionada(s)",
|
||||||
"UpdateWindowBundledContentNotice": "Atualizações incorporadas não podem ser removidas, apenas desativadas.",
|
"UpdateWindowBundledContentNotice": "Atualizações incorporadas não podem ser removidas, apenas desativadas.",
|
||||||
"CheatWindowHeading": "Cheats disponíveis para {0} [{1}]",
|
"CheatWindowHeading": "Cheats disponíveis para {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "Управление DLC для {0} ({1})",
|
"DlcWindowTitle": "Управление DLC для {0} ({1})",
|
||||||
"ModWindowTitle": "Управление модами для {0} ({1})",
|
"ModWindowTitle": "Управление модами для {0} ({1})",
|
||||||
"UpdateWindowTitle": "Менеджер обновлений игр",
|
"UpdateWindowTitle": "Менеджер обновлений игр",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "Доступные читы для {0} [{1}]",
|
"CheatWindowHeading": "Доступные читы для {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "จัดการ DLC ที่ดาวน์โหลดได้สำหรับ {0} ({1})",
|
"DlcWindowTitle": "จัดการ DLC ที่ดาวน์โหลดได้สำหรับ {0} ({1})",
|
||||||
"ModWindowTitle": "จัดการม็อดที่ดาวน์โหลดได้สำหรับ {0} ({1})",
|
"ModWindowTitle": "จัดการม็อดที่ดาวน์โหลดได้สำหรับ {0} ({1})",
|
||||||
"UpdateWindowTitle": "จัดการอัปเดตหัวข้อ",
|
"UpdateWindowTitle": "จัดการอัปเดตหัวข้อ",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} อัพเดตที่เพิ่มมาใหม่",
|
"UpdateWindowUpdateAddedMessage": "{0} อัพเดตที่เพิ่มมาใหม่",
|
||||||
"UpdateWindowBundledContentNotice": "แพ็คที่อัพเดตมาไม่สามารถลบทิ้งได้ สามารถปิดใช้งานได้เท่านั้น",
|
"UpdateWindowBundledContentNotice": "แพ็คที่อัพเดตมาไม่สามารถลบทิ้งได้ สามารถปิดใช้งานได้เท่านั้น",
|
||||||
"CheatWindowHeading": "สูตรโกงมีให้สำหรับ {0} [{1}]",
|
"CheatWindowHeading": "สูตรโกงมีให้สำหรับ {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "Oyun DLC'lerini Yönet",
|
"DlcWindowTitle": "Oyun DLC'lerini Yönet",
|
||||||
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
"ModWindowTitle": "Manage Mods for {0} ({1})",
|
||||||
"UpdateWindowTitle": "Oyun Güncellemelerini Yönet",
|
"UpdateWindowTitle": "Oyun Güncellemelerini Yönet",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "{0} için Hile mevcut [{1}]",
|
"CheatWindowHeading": "{0} için Hile mevcut [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "Менеджер вмісту для завантаження",
|
"DlcWindowTitle": "Менеджер вмісту для завантаження",
|
||||||
"ModWindowTitle": "Керувати модами для {0} ({1})",
|
"ModWindowTitle": "Керувати модами для {0} ({1})",
|
||||||
"UpdateWindowTitle": "Менеджер оновлення назв",
|
"UpdateWindowTitle": "Менеджер оновлення назв",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
|
||||||
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
|
||||||
"CheatWindowHeading": "Коди доступні для {0} [{1}]",
|
"CheatWindowHeading": "Коди доступні для {0} [{1}]",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "管理 {0} ({1}) 的 DLC",
|
"DlcWindowTitle": "管理 {0} ({1}) 的 DLC",
|
||||||
"ModWindowTitle": "管理 {0} ({1}) 的 MOD",
|
"ModWindowTitle": "管理 {0} ({1}) 的 MOD",
|
||||||
"UpdateWindowTitle": "游戏更新管理器",
|
"UpdateWindowTitle": "游戏更新管理器",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "{0} 个更新被添加",
|
"UpdateWindowUpdateAddedMessage": "{0} 个更新被添加",
|
||||||
"UpdateWindowBundledContentNotice": "捆绑的更新无法被移除,只可被禁用。",
|
"UpdateWindowBundledContentNotice": "捆绑的更新无法被移除,只可被禁用。",
|
||||||
"CheatWindowHeading": "适用于 {0} [{1}] 的金手指",
|
"CheatWindowHeading": "适用于 {0} [{1}] 的金手指",
|
||||||
|
|||||||
@@ -728,8 +728,6 @@
|
|||||||
"DlcWindowTitle": "管理 {0} 的可下載內容 ({1})",
|
"DlcWindowTitle": "管理 {0} 的可下載內容 ({1})",
|
||||||
"ModWindowTitle": "管理 {0} 的模組 ({1})",
|
"ModWindowTitle": "管理 {0} 的模組 ({1})",
|
||||||
"UpdateWindowTitle": "遊戲更新管理員",
|
"UpdateWindowTitle": "遊戲更新管理員",
|
||||||
"XCITrimmerTrim": "Trim",
|
|
||||||
"XCITrimmerUntrim": "Untrim",
|
|
||||||
"UpdateWindowUpdateAddedMessage": "已加入 {0} 個遊戲更新",
|
"UpdateWindowUpdateAddedMessage": "已加入 {0} 個遊戲更新",
|
||||||
"UpdateWindowBundledContentNotice": "附帶的遊戲更新只能被停用而無法被刪除。",
|
"UpdateWindowBundledContentNotice": "附帶的遊戲更新只能被停用而無法被刪除。",
|
||||||
"CheatWindowHeading": "可用於 {0} [{1}] 的密技",
|
"CheatWindowHeading": "可用於 {0} [{1}] 的密技",
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
|
|
||||||
public AboutWindowViewModel()
|
public AboutWindowViewModel()
|
||||||
{
|
{
|
||||||
Version = Program.Version;
|
Version = App.FullAppName + "\n" + Program.Version;
|
||||||
UpdateLogoTheme(ConfigurationState.Instance.UI.BaseStyle.Value);
|
UpdateLogoTheme(ConfigurationState.Instance.UI.BaseStyle.Value);
|
||||||
|
|
||||||
ThemeManager.ThemeChanged += ThemeManager_ThemeChanged;
|
ThemeManager.ThemeChanged += ThemeManager_ThemeChanged;
|
||||||
|
|||||||
@@ -383,7 +383,7 @@ namespace Ryujinx.Ava.UI.Windows
|
|||||||
await Dispatcher.UIThread.InvokeAsync(async () => await UserErrorDialog.ShowUserErrorDialog(UserError.NoKeys));
|
await Dispatcher.UIThread.InvokeAsync(async () => await UserErrorDialog.ShowUserErrorDialog(UserError.NoKeys));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ConfigurationState.Instance.CheckUpdatesOnStart && !CommandLineState.HideAvailableUpdates && Updater.CanUpdate())
|
if (ConfigurationState.Instance.CheckUpdatesOnStart && Updater.CanUpdate())
|
||||||
{
|
{
|
||||||
await this.BeginUpdateAsync()
|
await this.BeginUpdateAsync()
|
||||||
.ContinueWith(
|
.ContinueWith(
|
||||||
|
|||||||
@@ -296,7 +296,7 @@
|
|||||||
Margin="5"
|
Margin="5"
|
||||||
Click="Trim"
|
Click="Trim"
|
||||||
IsEnabled="{Binding CanTrim}">
|
IsEnabled="{Binding CanTrim}">
|
||||||
<TextBlock Text="{ext:Locale XCITrimmerTrim}" />
|
<TextBlock Text="Trim" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
Name="UntrimButton"
|
Name="UntrimButton"
|
||||||
@@ -304,7 +304,7 @@
|
|||||||
Margin="5"
|
Margin="5"
|
||||||
Click="Untrim"
|
Click="Untrim"
|
||||||
IsEnabled="{Binding CanUntrim}">
|
IsEnabled="{Binding CanUntrim}">
|
||||||
<TextBlock Text="{ext:Locale XCITrimmerUntrim}" />
|
<TextBlock Text="Untrim" />
|
||||||
</Button>
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel
|
<StackPanel
|
||||||
|
|||||||
Reference in New Issue
Block a user