mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-09-11 15:22:58 +02:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb7426afa0 |
@@ -15,6 +15,11 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
gitTag:
|
||||
description: 'Tag to use for the AppStream release version (leave blank to detect it)'
|
||||
required: false
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -66,5 +71,5 @@ jobs:
|
||||
publish: ${{ inputs.publish || true }}
|
||||
fetchTags: true
|
||||
stableBuild: ${{ inputs.stableBuild || false }}
|
||||
gitTag: ${{ inputs.gitTag || '' }}
|
||||
secrets: inherit
|
||||
|
||||
|
||||
@@ -39,6 +39,10 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
gitTag:
|
||||
required: false
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
jobs:
|
||||
build_linux:
|
||||
@@ -64,6 +68,12 @@ jobs:
|
||||
shell: bash
|
||||
run: git config --global --add safe.directory "*"
|
||||
|
||||
- name: Prepare Flatpak tag
|
||||
shell: bash
|
||||
env:
|
||||
PCSX2_GIT_TAG: ${{ inputs.gitTag }}
|
||||
run: printf '%s\n' "$PCSX2_GIT_TAG" > .flatpak-git-tag
|
||||
|
||||
- name: Add stable release identifier file
|
||||
if: ${{ inputs.stableBuild == true || inputs.stableBuild == 'true' }}
|
||||
shell: bash
|
||||
|
||||
@@ -117,19 +117,14 @@ jobs:
|
||||
publish: ${{ github.event_name == 'workflow_dispatch' && inputs.is_prerelease == 'false' }} # prerelease builds are published by the cron job
|
||||
fetchTags: true
|
||||
stableBuild: ${{ inputs.is_prerelease == 'false' }}
|
||||
gitTag: ${{ needs.cut-release.outputs.new_tag }}
|
||||
secrets: inherit
|
||||
|
||||
# Windows
|
||||
build_windows_deps:
|
||||
if: github.repository == 'PCSX2/pcsx2'
|
||||
name: "Windows Dependencies"
|
||||
uses: ./.github/workflows/windows_deps_build.yml
|
||||
|
||||
build_windows_qt:
|
||||
if: github.repository == 'PCSX2/pcsx2'
|
||||
needs:
|
||||
- cut-release
|
||||
- build_windows_deps
|
||||
name: "Windows"
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
with:
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/bin/resources/icons/AppIconLarge.png\" \"${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/net.pcsx2.PCSX2.png\"",
|
||||
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/.github/workflows/scripts/linux/pcsx2-qt.desktop\" \"${FLATPAK_DEST}/share/applications/net.pcsx2.PCSX2.desktop\"",
|
||||
"desktop-file-edit --set-key=Icon --set-value=net.pcsx2.PCSX2 \"${FLATPAK_DEST}/share/applications/net.pcsx2.PCSX2.desktop\"",
|
||||
"${FLATPAK_BUILDER_BUILDDIR}/.github/workflows/scripts/linux/generate-metainfo.sh \"${FLATPAK_BUILDER_BUILDDIR}/net.pcsx2.PCSX2.metainfo.xml\"",
|
||||
"${FLATPAK_BUILDER_BUILDDIR}/.github/workflows/scripts/linux/generate-metainfo.sh \"${FLATPAK_BUILDER_BUILDDIR}/net.pcsx2.PCSX2.metainfo.xml\" \"$(cat \"${FLATPAK_BUILDER_BUILDDIR}/.flatpak-git-tag\")\"",
|
||||
"cat \"${FLATPAK_BUILDER_BUILDDIR}/net.pcsx2.PCSX2.metainfo.xml\"",
|
||||
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/net.pcsx2.PCSX2.metainfo.xml\" \"${FLATPAK_DEST}/share/metainfo/net.pcsx2.PCSX2.metainfo.xml\"",
|
||||
"mkdir -p \"${FLATPAK_DEST}/lib/ffmpeg\""
|
||||
|
||||
@@ -2,14 +2,17 @@
|
||||
|
||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
||||
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "Output file must be provided as a parameter"
|
||||
if [[ $# -lt 1 || $# -gt 2 ]]; then
|
||||
echo "Syntax: $0 <output file> [git tag]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
OUTFILE=$1
|
||||
GIT_DATE=$(git log -1 --pretty=%cd --date=iso8601)
|
||||
GIT_VERSION=$(git tag --points-at HEAD)
|
||||
GIT_VERSION=${2:-}
|
||||
if [[ -z "${GIT_VERSION}" ]]; then
|
||||
GIT_VERSION=$(git tag --points-at HEAD --sort=-version:refname | head -n 1)
|
||||
fi
|
||||
GIT_HASH=$(git rev-parse HEAD)
|
||||
|
||||
if [[ -z "${GIT_VERSION}" ]]; then
|
||||
@@ -41,4 +44,3 @@ cp "${SCRIPTDIR}"/pcsx2-qt.metainfo.xml.in "${OUTFILE}"
|
||||
sed -i -e "s/@GIT_VERSION@/${GIT_VERSION}/" "${OUTFILE}"
|
||||
sed -i -e "s/@GIT_DATE@/${GIT_DATE}/" "${OUTFILE}"
|
||||
sed -i -e "s/@GIT_HASH@/${GIT_HASH}/" "${OUTFILE}"
|
||||
|
||||
|
||||
@@ -9,10 +9,6 @@ on:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build_qt_deps:
|
||||
name: "Dependencies"
|
||||
uses: ./.github/workflows/windows_deps_build.yml
|
||||
|
||||
# MSBUILD
|
||||
lint_vs_proj_files:
|
||||
name: Lint VS Project Files
|
||||
@@ -25,7 +21,7 @@ jobs:
|
||||
run: .github\workflows\scripts\windows\validate-vs-filters.ps1
|
||||
|
||||
build_qt_sse4:
|
||||
needs: [build_qt_deps, lint_vs_proj_files]
|
||||
needs: lint_vs_proj_files
|
||||
name: "SSE4"
|
||||
if: github.repository != 'PCSX2/pcsx2' || github.event_name == 'pull_request'
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
@@ -37,7 +33,7 @@ jobs:
|
||||
secrets: inherit
|
||||
|
||||
build_qt_avx2:
|
||||
needs: [build_qt_deps, lint_vs_proj_files]
|
||||
needs: lint_vs_proj_files
|
||||
name: "AVX2"
|
||||
if: github.repository != 'PCSX2/pcsx2' || github.event_name == 'pull_request'
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
@@ -48,7 +44,6 @@ jobs:
|
||||
secrets: inherit
|
||||
|
||||
build_qt_cmake:
|
||||
needs: build_qt_deps
|
||||
name: "CMake"
|
||||
if: github.repository != 'PCSX2/pcsx2' || github.event_name == 'pull_request'
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
@@ -60,7 +55,7 @@ jobs:
|
||||
secrets: inherit
|
||||
|
||||
build_qt_clang_sse4:
|
||||
needs: [build_qt_deps, lint_vs_proj_files]
|
||||
needs: lint_vs_proj_files
|
||||
name: "SSE4"
|
||||
if: github.repository != 'PCSX2/pcsx2' || github.event_name == 'pull_request'
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
@@ -72,7 +67,7 @@ jobs:
|
||||
secrets: inherit
|
||||
|
||||
build_qt_clang_avx2:
|
||||
needs: [build_qt_deps, lint_vs_proj_files]
|
||||
needs: lint_vs_proj_files
|
||||
name: "AVX2"
|
||||
if: github.repository != 'PCSX2/pcsx2' || github.event_name == 'pull_request'
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
@@ -83,7 +78,6 @@ jobs:
|
||||
secrets: inherit
|
||||
|
||||
build_qt_cmake_clang:
|
||||
needs: build_qt_deps
|
||||
name: "CMake"
|
||||
if: github.repository != 'PCSX2/pcsx2' || github.event_name == 'pull_request'
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
name: ${{ inputs.jobName }}
|
||||
runs-on: ${{ inputs.os }}
|
||||
# Set some sort of timeout in the event of run-away builds. We are limited on concurrent jobs so, get rid of them.
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 90
|
||||
env:
|
||||
POWERSHELL_TELEMETRY_OPTOUT: 1
|
||||
|
||||
@@ -124,10 +124,15 @@ jobs:
|
||||
id: cache-deps
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
fail-on-cache-miss: true
|
||||
path: deps
|
||||
key: ${{ inputs.os }} ${{ inputs.platform }} deps ${{ hashFiles('.github/workflows/scripts/windows/build-dependencies.bat', '.github/workflows/scripts/common/*.patch') }}
|
||||
|
||||
- name: Build Dependencies
|
||||
if: steps.cache-deps.outputs.cache-hit != 'true'
|
||||
env:
|
||||
DEBUG: 0
|
||||
BUILD_FFMPEG: 1
|
||||
run: .github/workflows/scripts/windows/build-dependencies.bat
|
||||
|
||||
- name: Generate CMake
|
||||
if: inputs.configuration == 'CMake'
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
name: Windows Build Steps - Deps
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
os:
|
||||
required: false
|
||||
type: string
|
||||
default: windows-2025-vs2026
|
||||
platform:
|
||||
required: false
|
||||
type: string
|
||||
default: x64
|
||||
|
||||
jobs:
|
||||
build_windows_deps:
|
||||
name: "Cache Dependencies"
|
||||
runs-on: ${{ inputs.os }}
|
||||
# Set some sort of timeout in the event of run-away builds. We are limited on concurrent jobs so, get rid of them.
|
||||
timeout-minutes: 90
|
||||
env:
|
||||
POWERSHELL_TELEMETRY_OPTOUT: 1
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Check Dependencies
|
||||
id: cache-deps
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
lookup-only: true
|
||||
path: deps
|
||||
key: ${{ inputs.os }} ${{ inputs.platform }} deps ${{ hashFiles('.github/workflows/scripts/windows/build-dependencies.bat', '.github/workflows/scripts/common/*.patch') }}
|
||||
|
||||
- name: Build Dependencies
|
||||
if: steps.cache-deps.outputs.cache-hit != 'true'
|
||||
env:
|
||||
DEBUG: 0
|
||||
BUILD_FFMPEG: 1
|
||||
run: .github/workflows/scripts/windows/build-dependencies.bat
|
||||
@@ -7336,44 +7336,6 @@ SCKA-20027:
|
||||
halfPixelOffset: 2 # Aligns post effects.
|
||||
nativeScaling: 1 # Fixes post effects.
|
||||
textureInsideRT: 1 # Fixes post shuffles.
|
||||
patches:
|
||||
A3643EB1:
|
||||
content: |-
|
||||
comment=Rearranging COP2 ops to avoid macflag bad stuff.
|
||||
// Solves door problems, possibly other issues later on.
|
||||
patch=0,EE,0010bc88,word,48468800
|
||||
patch=0,EE,0010bc8c,word,4BEC682C
|
||||
patch=0,EE,0010bc94,word,4B8D617D
|
||||
patch=0,EE,0010bc98,word,4A0002FF
|
||||
patch=0,EE,0012a358,word,48468800
|
||||
patch=0,EE,0012a35c,word,4BEC682C
|
||||
patch=0,EE,0012a364,word,4B8D617D
|
||||
patch=0,EE,0012a368,word,4A0002FF
|
||||
patch=0,EE,0012a680,word,48468800
|
||||
patch=0,EE,0012a684,word,4BEC682C
|
||||
patch=0,EE,0012a68c,word,4B8D617D
|
||||
patch=0,EE,0012a690,word,4A0002FF
|
||||
patch=0,EE,0012aafc,word,48468800
|
||||
patch=0,EE,0012ab00,word,4BEC682C
|
||||
patch=0,EE,0012ab04,word,4B8D617D
|
||||
patch=0,EE,0012ab08,word,4A6D617C
|
||||
patch=0,EE,0012ab0c,word,4A0002FF
|
||||
patch=0,EE,001644cc,word,48468800
|
||||
patch=0,EE,001644d0,word,4BEC682C
|
||||
patch=0,EE,001644d8,word,4B8D617D
|
||||
patch=0,EE,001644dc,word,4A0002FF
|
||||
patch=0,EE,001ae958,word,48468800
|
||||
patch=0,EE,001ae95c,word,4BEC682C
|
||||
patch=0,EE,001ae960,word,4BED617D
|
||||
patch=0,EE,001ae968,word,4A0002FF
|
||||
patch=0,EE,001bd410,word,48588800
|
||||
patch=0,EE,001bd41c,word,4A5DEF40
|
||||
patch=0,EE,001bd62c,word,48588800
|
||||
patch=0,EE,001bd638,word,4A5DEF40
|
||||
patch=0,EE,001bd9cc,word,48588800
|
||||
patch=0,EE,001bd9d8,word,4A5DEF40
|
||||
patch=0,EE,001bdf90,word,48588800
|
||||
patch=0,EE,001bdf9c,word,4A5DEF40
|
||||
SCKA-20028:
|
||||
name: "이코 [PlayStation 2 BigHit Series]"
|
||||
name-en: "Ico [PlayStation 2 BigHit Series]"
|
||||
@@ -9458,7 +9420,7 @@ SCPS-15097:
|
||||
- "SCPS-55001"
|
||||
SCPS-15098:
|
||||
name: "Formula One 2005"
|
||||
name-sort: "ふぉーみゅら わん 2005"
|
||||
name-sort: "ふぉみゅらー わん 2005"
|
||||
name-en: "Formula One 2005"
|
||||
region: "NTSC-J"
|
||||
SCPS-15099:
|
||||
@@ -38039,7 +38001,7 @@ SLPM-62185:
|
||||
name-en: "Sangokushi VII"
|
||||
region: "NTSC-J"
|
||||
SLPM-62186:
|
||||
name: "GetBackers奪還屋 奪われた無限城"
|
||||
name: "ゲットバッカーズ奪還屋 奪われた無限城"
|
||||
name-sort: "げっとばっかーずだっかんや うばわれたむげんじょう"
|
||||
name-en: "Get Backers - The Stolen City of Infinite"
|
||||
region: "NTSC-J"
|
||||
@@ -38985,7 +38947,7 @@ SLPM-62375:
|
||||
name-en: "Simple 2000 Series Vol. 36 - The Musume Ikusei Simulation"
|
||||
region: "NTSC-J"
|
||||
SLPM-62376:
|
||||
name: "GetBackers奪還屋 奪還だヨ!全員集合!! [KONAMI The BEST]"
|
||||
name: "GetBackers奪還屋 奪還だョ!全員集合! [KONAMI The BEST]"
|
||||
name-sort: "げっとばっかーずだっかんや だっかんだよ!ぜんいんしゅうごう!! [KONAMI The BEST]"
|
||||
name-en: "Get Backers - All Members Gather [KONAMI The BEST]"
|
||||
region: "NTSC-J"
|
||||
@@ -41345,7 +41307,7 @@ SLPM-65014:
|
||||
- GoemonTlbHack
|
||||
SLPM-65015:
|
||||
name: "決戦II"
|
||||
name-sort: "けっせん2"
|
||||
name-sort: "けっせんII"
|
||||
name-en: "Kessen II"
|
||||
region: "NTSC-J"
|
||||
patches:
|
||||
@@ -41444,7 +41406,7 @@ SLPM-65030:
|
||||
region: "NTSC-J"
|
||||
SLPM-65031:
|
||||
name: "決戦&決戦II スーパーバリューセット [決戦Ⅱディスク]"
|
||||
name-sort: "けっせん&けっせん2 すーぱーばりゅーせっと [けっせん2でぃすく]"
|
||||
name-sort: "けっせん&けっせんII すーぱーばりゅーせっと [けっせん2でぃすく]"
|
||||
name-en: "Kesse & Kessen II Super Value Set [Kessen II Disc]"
|
||||
region: "NTSC-J"
|
||||
patches:
|
||||
@@ -42428,7 +42390,7 @@ SLPM-65207:
|
||||
region: "NTSC-J"
|
||||
SLPM-65208:
|
||||
name: "ポップンミュージック 7"
|
||||
name-sort: "ぽっぷんみゅーじっく07"
|
||||
name-sort: "ぽっぷんみゅーじっく 7"
|
||||
name-en: "Pop'n music 7"
|
||||
region: "NTSC-J"
|
||||
SLPM-65209:
|
||||
@@ -43131,7 +43093,7 @@ SLPM-65315:
|
||||
compat: 5
|
||||
SLPM-65316:
|
||||
name: "ポップンミュージック 8"
|
||||
name-sort: "ぽっぷんみゅーじっく08"
|
||||
name-sort: "ぽっぷんみゅーじっく 8"
|
||||
name-en: "Pop'n music 8"
|
||||
region: "NTSC-J"
|
||||
SLPM-65317:
|
||||
@@ -44248,7 +44210,7 @@ SLPM-65507:
|
||||
nativeScaling: 2 # Fixes post-processing intensity.
|
||||
SLPM-65508:
|
||||
name: "ポップンミュージック 9"
|
||||
name-sort: "ぽっぷんみゅーじっく09"
|
||||
name-sort: "ぽっぷんみゅーじっく 9"
|
||||
name-en: "Pop'n music 9"
|
||||
region: "NTSC-J"
|
||||
SLPM-65509:
|
||||
@@ -45747,13 +45709,13 @@ SLPM-65768:
|
||||
name-en: "Beatmania IIDX 8th Style"
|
||||
region: "NTSC-J"
|
||||
SLPM-65769:
|
||||
name: "ポップンミュージック10 コントローラセット"
|
||||
name-sort: "ぽっぷんみゅーじっく10 [こんとろーらせっと]"
|
||||
name: "pop'n music コントローラセット"
|
||||
name-sort: "ぽっぷんみゅーじっく [こんとろーらせっと]"
|
||||
name-en: "Pop'n music 10 [Controller Set]"
|
||||
region: "NTSC-J"
|
||||
SLPM-65770:
|
||||
name: "ポップンミュージック10"
|
||||
name-sort: "ぽっぷんみゅーじっく10"
|
||||
name: "ポップンミュージック 10"
|
||||
name-sort: "ぽっぷんみゅーじっく 10"
|
||||
name-en: "Pop'n music 10"
|
||||
region: "NTSC-J"
|
||||
SLPM-65771:
|
||||
@@ -47465,8 +47427,8 @@ SLPM-66064:
|
||||
name-en: "Tough Dark Fight"
|
||||
region: "NTSC-J"
|
||||
SLPM-66065:
|
||||
name: "ポップンミュージック11"
|
||||
name-sort: "ぽっぷんみゅーじっく11"
|
||||
name: "ポップンミュージック 11"
|
||||
name-sort: "ぽっぷんみゅーじっく 11"
|
||||
name-en: "Pop'n music 11"
|
||||
region: "NTSC-J"
|
||||
SLPM-66066:
|
||||
@@ -48242,12 +48204,12 @@ SLPM-66177:
|
||||
nativeScaling: 2 # Fixes post effects.
|
||||
SLPM-66178:
|
||||
name: "ポップンミュージック 7 [KONAMI The BEST]"
|
||||
name-sort: "ぽっぷんみゅーじっく07 [KONAMI The BEST]"
|
||||
name-sort: "ぽっぷんみゅーじっく 7 [KONAMI The BEST]"
|
||||
name-en: "Pop'n music 7 [KONAMI The BEST]"
|
||||
region: "NTSC-J"
|
||||
SLPM-66179:
|
||||
name: "ポップンミュージック 8 [KONAMI The BEST]"
|
||||
name-sort: "ぽっぷんみゅーじっく08 [KONAMI The BEST]"
|
||||
name-sort: "ぽっぷんみゅーじっく 8 [KONAMI The BEST]"
|
||||
name-en: "Pop'n music 8 [KONAMI The BEST]"
|
||||
region: "NTSC-J"
|
||||
SLPM-66180:
|
||||
@@ -48437,12 +48399,12 @@ SLPM-66208:
|
||||
region: "NTSC-J"
|
||||
SLPM-66209:
|
||||
name: "ポップンミュージック 9 [KONAMI The BEST]"
|
||||
name-sort: "ぽっぷんみゅーじっく09 [KONAMI The BEST]"
|
||||
name-sort: "ぽっぷんみゅーじっく 9 [KONAMI The BEST]"
|
||||
name-en: "Pop'n music 9 [KONAMI The BEST]"
|
||||
region: "NTSC-J"
|
||||
SLPM-66210:
|
||||
name: "ポップンミュージック10 [KONAMI The BEST]"
|
||||
name-sort: "ぽっぷんみゅーじっく10 [KONAMI The BEST]"
|
||||
name: "ポップンミュージック 10 [KONAMI The BEST]"
|
||||
name-sort: "ぽっぷんみゅーじっく 10 [KONAMI The BEST]"
|
||||
name-en: "Pop'n music 10 [KONAMI The BEST]"
|
||||
region: "NTSC-J"
|
||||
SLPM-66211:
|
||||
@@ -49145,8 +49107,8 @@ SLPM-66313:
|
||||
region: "NTSC-J"
|
||||
compat: 5
|
||||
SLPM-66314:
|
||||
name: "ポップンミュージック12 いろは"
|
||||
name-sort: "ぽっぷんみゅーじっく12 いろは"
|
||||
name: "ポップンミュージック 12 いろは"
|
||||
name-sort: "ぽっぷんみゅーじっく 12 いろは"
|
||||
name-en: "Pop'n music 12 Iroha"
|
||||
region: "NTSC-J"
|
||||
compat: 5
|
||||
@@ -50530,8 +50492,8 @@ SLPM-66532:
|
||||
name-en: "Mizu no Senritsu 2 - Hi no Kioku"
|
||||
region: "NTSC-J"
|
||||
SLPM-66533:
|
||||
name: "ポップンミュージック13 カーニバル"
|
||||
name-sort: "ぽっぷんみゅーじっく13 かーにばる"
|
||||
name: "ポップンミュージック 13 カーニバル"
|
||||
name-sort: "ぽっぷんみゅーじっく 13 かーにばる"
|
||||
name-en: "Pop'n music 13 Carnival"
|
||||
region: "NTSC-J"
|
||||
SLPM-66534:
|
||||
@@ -51851,8 +51813,8 @@ SLPM-66741:
|
||||
name-en: "Sentou Kokka Kai - Legend [Standard Edition]"
|
||||
region: "NTSC-J"
|
||||
SLPM-66742:
|
||||
name: "ポップンミュージック14 FEVER!"
|
||||
name-sort: "ぽっぷんみゅーじっく14 FEVER!"
|
||||
name: "ポップンミュージック 14 FEVER!"
|
||||
name-sort: "ぽっぷんみゅーじっく 14 FEVER!"
|
||||
name-en: "Pop'n music 14 FEVER!"
|
||||
region: "NTSC-J"
|
||||
compat: 5
|
||||
|
||||
@@ -1385,7 +1385,6 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000005e0400008e02000001010000,GPD Win Max 2 6800U Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000007d0400000540000000010000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000280400000140000000010000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000007d0400000740000000010000,Gravis Xterminator Force,a:a2,b:b2,x:b4,y:b5,back:b8,guide:b3,start:b9,leftstick:b0,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Linux,
|
||||
030000008f0e00000610000000010000,GreenAsia Electronics Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Linux,
|
||||
030000008f0e00001200000010010000,GreenAsia Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,
|
||||
0500000047532067616d657061640000,GS Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
@@ -1408,7 +1407,6 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000000d0f00001000000011010000,Hori Fightstick 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000ad1b000003f5000033050000,Hori Fightstick VX,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b8,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux,
|
||||
030000000d0f00004d00000011010000,Hori Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000000d0f0000fb00000011010000,Hori Hatsune Miku 39S,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,guide:b12,leftshoulder:b4,rightshoulder:b5,lefttrigger:b6,righttrigger:b7,leftstick:b10,rightstick:b11,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,platform:Linux,
|
||||
03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000000d0f00003801000011010000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Linux,
|
||||
030000000d0f00009200000011010000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
|
||||
|
||||
@@ -1202,21 +1202,6 @@ void MainWindow::updateDisplayRelatedActions(bool has_surface, bool render_to_ma
|
||||
QSignalBlocker blocker(m_ui.actionToolbarFullscreen);
|
||||
m_ui.actionToolbarFullscreen->setChecked(fullscreen);
|
||||
}
|
||||
|
||||
#ifdef __APPLE__
|
||||
if (render_to_main && fullscreen)
|
||||
{
|
||||
m_ui.toolBar->setVisible(false);
|
||||
m_ui.statusBar->setVisible(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ui.toolBar->setVisible(m_ui.actionViewToolbar->isChecked());
|
||||
m_ui.statusBar->setVisible(m_ui.actionViewStatusBar->isChecked());
|
||||
}
|
||||
m_ui.actionViewToolbar->setEnabled(!(render_to_main && fullscreen));
|
||||
m_ui.actionViewStatusBar->setEnabled(!(render_to_main && fullscreen));
|
||||
#endif
|
||||
}
|
||||
|
||||
void MainWindow::updateStatusBarWidgetVisibility()
|
||||
@@ -1391,12 +1376,6 @@ bool MainWindow::isRenderingFullscreen() const
|
||||
if (!MTGS::IsOpen() || !m_display_surface)
|
||||
return false;
|
||||
|
||||
#ifdef __APPLE__
|
||||
// When rendering to main, the main window is what goes fullscreen.
|
||||
if (isRenderingToMain())
|
||||
return isFullScreen();
|
||||
#endif
|
||||
|
||||
return m_display_surface->isFullScreen();
|
||||
}
|
||||
|
||||
@@ -1415,12 +1394,7 @@ bool MainWindow::shouldHideMainWindow() const
|
||||
{
|
||||
// NOTE: We can't use isRenderingToMain() here, because this happens post-fullscreen-switch.
|
||||
return (Host::GetBoolSettingValue("UI", "HideMainWindowWhenRunning", false) && !g_emu_thread->shouldRenderToMain()) ||
|
||||
#ifdef __APPLE__
|
||||
// macOS keeps fullscreen on the main window so don't hide it there.
|
||||
(g_emu_thread->shouldRenderToMain() && (g_emu_thread->isExclusiveFullscreen() || m_is_temporarily_windowed)) ||
|
||||
#else
|
||||
(g_emu_thread->shouldRenderToMain() && (isRenderingFullscreen() || g_emu_thread->isExclusiveFullscreen() || m_is_temporarily_windowed)) ||
|
||||
#endif
|
||||
Host::InNoGUIMode();
|
||||
}
|
||||
|
||||
@@ -2822,27 +2796,6 @@ std::optional<WindowInfo> MainWindow::acquireRenderWindow(bool recreate_window,
|
||||
return m_display_surface->getWindowInfo();
|
||||
}
|
||||
|
||||
#ifdef __APPLE__
|
||||
// Skip recreating when toggling fullscreen if we're still rendering to main.
|
||||
if (m_display_created && !recreate_window && is_rendering_to_main && render_to_main && !changing_surfaceless)
|
||||
{
|
||||
updateDisplayRelatedActions(true, true, fullscreen);
|
||||
|
||||
if (fullscreen)
|
||||
showFullScreen();
|
||||
else
|
||||
showNormal();
|
||||
|
||||
while (!m_is_closing && isFullScreen() != fullscreen)
|
||||
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
|
||||
updateDisplayWidgetCursor();
|
||||
m_display_surface->setFocus();
|
||||
updateWindowState();
|
||||
return m_display_surface->getWindowInfo();
|
||||
}
|
||||
#endif
|
||||
|
||||
destroyDisplayWidget(surfaceless);
|
||||
m_display_created = true;
|
||||
|
||||
@@ -2882,23 +2835,14 @@ void MainWindow::createDisplayWidget(bool fullscreen, bool render_to_main)
|
||||
{
|
||||
// If we're rendering to main and were hidden (e.g. coming back from fullscreen),
|
||||
// make sure we're visible before trying to add ourselves. Otherwise Wayland breaks.
|
||||
#ifdef __APPLE__
|
||||
// On macOS the main window itself goes fullscreen so it needs to be visible then too.
|
||||
if (render_to_main && !isVisible())
|
||||
#else
|
||||
if (!fullscreen && render_to_main && !isVisible())
|
||||
#endif
|
||||
{
|
||||
setVisible(true);
|
||||
QGuiApplication::sync();
|
||||
}
|
||||
|
||||
m_display_surface = new DisplaySurface();
|
||||
#ifdef __APPLE__
|
||||
if (!render_to_main)
|
||||
#else
|
||||
if (fullscreen || !render_to_main)
|
||||
#endif
|
||||
{
|
||||
#ifdef DISPLAY_SURFACE_WINDOW
|
||||
m_display_surface->setTitle(windowTitle());
|
||||
@@ -2914,11 +2858,7 @@ void MainWindow::createDisplayWidget(bool fullscreen, bool render_to_main)
|
||||
m_display_container = m_display_surface->createWindowContainer(getContentParent());
|
||||
}
|
||||
|
||||
#ifdef __APPLE__
|
||||
if (!render_to_main && (fullscreen || g_emu_thread->isExclusiveFullscreen()))
|
||||
#else
|
||||
if (fullscreen || g_emu_thread->isExclusiveFullscreen())
|
||||
#endif
|
||||
{
|
||||
// On Wayland, while move/restoreGeometry can't position the window, it can influence which screen they show up on.
|
||||
// Other platforms can position windows fine, but the only thing that matters here is the screen.
|
||||
@@ -2974,15 +2914,6 @@ void MainWindow::createDisplayWidget(bool fullscreen, bool render_to_main)
|
||||
|
||||
updateDisplayRelatedActions(true, render_to_main, fullscreen);
|
||||
|
||||
#ifdef __APPLE__
|
||||
if (render_to_main && fullscreen)
|
||||
{
|
||||
showFullScreen();
|
||||
while (!m_is_closing && !isFullScreen())
|
||||
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
}
|
||||
#endif
|
||||
|
||||
// We need the surface visible.
|
||||
QGuiApplication::sync();
|
||||
}
|
||||
@@ -3075,16 +3006,6 @@ void MainWindow::destroyDisplayWidget(bool show_game_list)
|
||||
if (!(m_display_surface->isFullScreen() || m_display_is_exclusive_fullscreen) && !isRenderingToMain())
|
||||
saveDisplayWindowGeometryToConfig();
|
||||
|
||||
#ifdef __APPLE__
|
||||
// Need to leave fullscreen before destroying otherwise we could get stuck in it.
|
||||
if (isRenderingToMain() && isFullScreen())
|
||||
{
|
||||
showNormal();
|
||||
while (isFullScreen())
|
||||
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (isRenderingToMain())
|
||||
{
|
||||
pxAssertRel(m_ui.mainContainer->indexOf(m_display_container) == 1, "Display widget in stack");
|
||||
|
||||
@@ -898,12 +898,7 @@ std::optional<WindowInfo> EmuThread::acquireRenderWindow(bool recreate_window)
|
||||
// Check if we're wanting to get exclusive fullscreen. This should be safe to read, since we're going to be calling from the GS thread.
|
||||
m_is_exclusive_fullscreen = m_is_fullscreen && GSWantsExclusiveFullscreen();
|
||||
const bool window_fullscreen = m_is_fullscreen && !m_is_exclusive_fullscreen;
|
||||
#ifdef __APPLE__
|
||||
// Fullscreen the main window instead of opening a separate one on macOS.
|
||||
const bool render_to_main = !m_is_exclusive_fullscreen && m_is_rendering_to_main;
|
||||
#else
|
||||
const bool render_to_main = !m_is_exclusive_fullscreen && !window_fullscreen && m_is_rendering_to_main;
|
||||
#endif
|
||||
|
||||
return emit onAcquireRenderWindowRequested(recreate_window, window_fullscreen, render_to_main, m_is_surfaceless);
|
||||
}
|
||||
|
||||
+4468
-6042
File diff suppressed because it is too large
Load Diff
+4972
-6547
File diff suppressed because it is too large
Load Diff
+3005
-3528
File diff suppressed because it is too large
Load Diff
+4468
-6042
File diff suppressed because it is too large
Load Diff
+4466
-6038
File diff suppressed because it is too large
Load Diff
+4468
-6042
File diff suppressed because it is too large
Load Diff
+4468
-6042
File diff suppressed because it is too large
Load Diff
+4431
-6007
File diff suppressed because it is too large
Load Diff
+8759
-10325
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5826,116 +5826,116 @@ Do you want to overwrite?</source>
|
||||
<context>
|
||||
<name>EmuThread</name>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1062"/>
|
||||
<location filename="../QtHost.cpp" line="1057"/>
|
||||
<source>No Image</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1084"/>
|
||||
<location filename="../QtHost.cpp" line="1079"/>
|
||||
<source>FPS: N/A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1084"/>
|
||||
<location filename="../QtHost.cpp" line="1079"/>
|
||||
<source>FPS: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1001"/>
|
||||
<location filename="../QtHost.cpp" line="996"/>
|
||||
<source>Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1010"/>
|
||||
<location filename="../QtHost.cpp" line="1005"/>
|
||||
<source>Slot: %1 | %2 | EE: %3% | GS: %4%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1038"/>
|
||||
<location filename="../QtHost.cpp" line="1033"/>
|
||||
<source>Volume: %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1040"/>
|
||||
<location filename="../QtHost.cpp" line="1035"/>
|
||||
<source>Volume: Muted</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1051"/>
|
||||
<location filename="../QtHost.cpp" line="1046"/>
|
||||
<source>Auto (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1064"/>
|
||||
<location filename="../QtHost.cpp" line="1059"/>
|
||||
<source>%1x%2 (%3x)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1077"/>
|
||||
<location filename="../QtHost.cpp" line="1072"/>
|
||||
<source>GPU: %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1091"/>
|
||||
<location filename="../QtHost.cpp" line="1086"/>
|
||||
<source>VPS: N/A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1091"/>
|
||||
<location filename="../QtHost.cpp" line="1086"/>
|
||||
<source>VPS: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1098"/>
|
||||
<location filename="../QtHost.cpp" line="1093"/>
|
||||
<source>Speed: %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1162"/>
|
||||
<location filename="../QtHost.cpp" line="1157"/>
|
||||
<source>Game: %1 (%2)
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1170"/>
|
||||
<location filename="../QtHost.cpp" line="1165"/>
|
||||
<source>Rich presence inactive or unsupported.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1174"/>
|
||||
<location filename="../QtHost.cpp" line="1169"/>
|
||||
<source>Game not loaded or no RetroAchievements available.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1611"/>
|
||||
<location filename="../QtHost.cpp" line="1631"/>
|
||||
<location filename="../QtHost.cpp" line="1639"/>
|
||||
<location filename="../QtHost.cpp" line="1673"/>
|
||||
<location filename="../QtHost.cpp" line="1606"/>
|
||||
<location filename="../QtHost.cpp" line="1626"/>
|
||||
<location filename="../QtHost.cpp" line="1634"/>
|
||||
<location filename="../QtHost.cpp" line="1668"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1611"/>
|
||||
<location filename="../QtHost.cpp" line="1606"/>
|
||||
<source>Failed to create HTTPDownloader.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1619"/>
|
||||
<location filename="../QtHost.cpp" line="1614"/>
|
||||
<source>Downloading %1...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1632"/>
|
||||
<location filename="../QtHost.cpp" line="1627"/>
|
||||
<source>Download failed with HTTP status code %1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1640"/>
|
||||
<location filename="../QtHost.cpp" line="1635"/>
|
||||
<source>Download failed: Data is empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1674"/>
|
||||
<location filename="../QtHost.cpp" line="1669"/>
|
||||
<source>Failed to write downloaded data to file '%1'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -18801,13 +18801,13 @@ Right click to clear binding</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1919"/>
|
||||
<location filename="../MainWindow.cpp" line="1980"/>
|
||||
<location filename="../MainWindow.cpp" line="1893"/>
|
||||
<location filename="../MainWindow.cpp" line="1954"/>
|
||||
<source>Change Disc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3567"/>
|
||||
<location filename="../MainWindow.cpp" line="3488"/>
|
||||
<source>Load State</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -19275,7 +19275,7 @@ Right click to clear binding</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.ui" line="1034"/>
|
||||
<location filename="../MainWindow.cpp" line="2023"/>
|
||||
<location filename="../MainWindow.cpp" line="1997"/>
|
||||
<source>Start Big Picture &Mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -19389,7 +19389,7 @@ Right click to clear binding</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.ui" line="1042"/>
|
||||
<location filename="../MainWindow.cpp" line="2024"/>
|
||||
<location filename="../MainWindow.cpp" line="1998"/>
|
||||
<source>Big Picture</source>
|
||||
<comment>In Toolbar</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -19464,8 +19464,8 @@ Right click to clear binding</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="859"/>
|
||||
<location filename="../MainWindow.cpp" line="1583"/>
|
||||
<location filename="../MainWindow.cpp" line="1628"/>
|
||||
<location filename="../MainWindow.cpp" line="1557"/>
|
||||
<location filename="../MainWindow.cpp" line="1602"/>
|
||||
<source>Do not show again</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -19505,363 +19505,363 @@ Are you sure you want to continue?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1465"/>
|
||||
<location filename="../MainWindow.cpp" line="1439"/>
|
||||
<source>WARNING: Memory Card Busy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1469"/>
|
||||
<location filename="../MainWindow.cpp" line="1443"/>
|
||||
<source>Your memory card is still saving data.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1470"/>
|
||||
<location filename="../MainWindow.cpp" line="1444"/>
|
||||
<source>WARNING: Shutting down now can <b>IRREVERSIBLY CORRUPT YOUR MEMORY CARD.</b><br><br>You are strongly advised to select 'No' and let the save finish.<br><br>Do you want to shutdown anyway and <b>IRREVERSIBLY CORRUPT YOUR MEMORY CARD</b>?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1572"/>
|
||||
<location filename="../MainWindow.cpp" line="1546"/>
|
||||
<source>Failed to Load State From Backup Slot %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1574"/>
|
||||
<location filename="../MainWindow.cpp" line="1548"/>
|
||||
<source>Failed to Load State From Slot %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1578"/>
|
||||
<location filename="../MainWindow.cpp" line="1552"/>
|
||||
<source>Failed to Load State</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1622"/>
|
||||
<location filename="../MainWindow.cpp" line="1596"/>
|
||||
<source>Failed to Save State To Slot %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1624"/>
|
||||
<location filename="../MainWindow.cpp" line="1598"/>
|
||||
<source>Failed to Save State</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1698"/>
|
||||
<location filename="../MainWindow.cpp" line="1672"/>
|
||||
<source>Confirm Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1701"/>
|
||||
<location filename="../MainWindow.cpp" line="1675"/>
|
||||
<source>Are you sure you want to shut down the virtual machine?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1703"/>
|
||||
<location filename="../MainWindow.cpp" line="1677"/>
|
||||
<source>Save State For Resume</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1809"/>
|
||||
<location filename="../MainWindow.cpp" line="2210"/>
|
||||
<location filename="../MainWindow.cpp" line="2676"/>
|
||||
<location filename="../MainWindow.cpp" line="2865"/>
|
||||
<location filename="../MainWindow.cpp" line="3388"/>
|
||||
<location filename="../MainWindow.cpp" line="3485"/>
|
||||
<location filename="../MainWindow.cpp" line="3504"/>
|
||||
<location filename="../MainWindow.cpp" line="3521"/>
|
||||
<location filename="../MainWindow.cpp" line="3543"/>
|
||||
<location filename="../MainWindow.cpp" line="3586"/>
|
||||
<location filename="../MainWindow.cpp" line="1783"/>
|
||||
<location filename="../MainWindow.cpp" line="2184"/>
|
||||
<location filename="../MainWindow.cpp" line="2650"/>
|
||||
<location filename="../MainWindow.cpp" line="2818"/>
|
||||
<location filename="../MainWindow.cpp" line="3309"/>
|
||||
<location filename="../MainWindow.cpp" line="3406"/>
|
||||
<location filename="../MainWindow.cpp" line="3425"/>
|
||||
<location filename="../MainWindow.cpp" line="3442"/>
|
||||
<location filename="../MainWindow.cpp" line="3464"/>
|
||||
<location filename="../MainWindow.cpp" line="3507"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1809"/>
|
||||
<location filename="../MainWindow.cpp" line="1783"/>
|
||||
<source>You must select a disc to change discs.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1840"/>
|
||||
<location filename="../MainWindow.cpp" line="1814"/>
|
||||
<source>Properties...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1856"/>
|
||||
<location filename="../MainWindow.cpp" line="1830"/>
|
||||
<source>Set Cover Image...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1860"/>
|
||||
<location filename="../MainWindow.cpp" line="1834"/>
|
||||
<source>Create Game Shortcut...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1863"/>
|
||||
<location filename="../MainWindow.cpp" line="1837"/>
|
||||
<source>Exclude From List</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1869"/>
|
||||
<location filename="../MainWindow.cpp" line="1843"/>
|
||||
<source>Reset Play Time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1873"/>
|
||||
<location filename="../MainWindow.cpp" line="1847"/>
|
||||
<source>Check Wiki Page</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1876"/>
|
||||
<location filename="../MainWindow.cpp" line="1850"/>
|
||||
<source>Open Memory Card Folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1882"/>
|
||||
<location filename="../MainWindow.cpp" line="1856"/>
|
||||
<source>Open Texture Dump/Replacement Folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1885"/>
|
||||
<location filename="../MainWindow.cpp" line="1859"/>
|
||||
<source>Open Video Capture Folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1891"/>
|
||||
<location filename="../MainWindow.cpp" line="1865"/>
|
||||
<source>Default Boot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1898"/>
|
||||
<location filename="../MainWindow.cpp" line="1872"/>
|
||||
<source>Fast Boot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1901"/>
|
||||
<location filename="../MainWindow.cpp" line="1875"/>
|
||||
<source>Full Boot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1906"/>
|
||||
<location filename="../MainWindow.cpp" line="1880"/>
|
||||
<source>Boot and Debug</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1930"/>
|
||||
<location filename="../MainWindow.cpp" line="1904"/>
|
||||
<source>Add Search Directory...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1939"/>
|
||||
<location filename="../MainWindow.cpp" line="1913"/>
|
||||
<source>Start File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1948"/>
|
||||
<location filename="../MainWindow.cpp" line="1922"/>
|
||||
<source>Start Disc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1965"/>
|
||||
<location filename="../MainWindow.cpp" line="1939"/>
|
||||
<source>Select Disc Image</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2109"/>
|
||||
<location filename="../MainWindow.cpp" line="2083"/>
|
||||
<source>Updater Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2115"/>
|
||||
<location filename="../MainWindow.cpp" line="2089"/>
|
||||
<source><p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2120"/>
|
||||
<location filename="../MainWindow.cpp" line="2094"/>
|
||||
<source>Automatic updating is not supported on the current platform.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2200"/>
|
||||
<location filename="../MainWindow.cpp" line="2174"/>
|
||||
<source>Confirm File Creation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2201"/>
|
||||
<location filename="../MainWindow.cpp" line="2175"/>
|
||||
<source>The pnach file '%1' does not currently exist. Do you want to create it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2210"/>
|
||||
<location filename="../MainWindow.cpp" line="2184"/>
|
||||
<source>Failed to create '%1'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2306"/>
|
||||
<location filename="../MainWindow.cpp" line="2280"/>
|
||||
<source>Input Recording Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2307"/>
|
||||
<location filename="../MainWindow.cpp" line="2281"/>
|
||||
<source>Failed to create file: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2329"/>
|
||||
<location filename="../MainWindow.cpp" line="2303"/>
|
||||
<source>Select a File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2330"/>
|
||||
<location filename="../MainWindow.cpp" line="2304"/>
|
||||
<source>Input Recording Files (*.p2m2)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2365"/>
|
||||
<location filename="../MainWindow.cpp" line="2339"/>
|
||||
<source>Input Playback Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2366"/>
|
||||
<location filename="../MainWindow.cpp" line="2340"/>
|
||||
<source>Failed to open file: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2452"/>
|
||||
<location filename="../MainWindow.cpp" line="2426"/>
|
||||
<source>Paused</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2640"/>
|
||||
<location filename="../MainWindow.cpp" line="2614"/>
|
||||
<source>Load State Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2640"/>
|
||||
<location filename="../MainWindow.cpp" line="2614"/>
|
||||
<source>Cannot load a save state without a running VM.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2664"/>
|
||||
<location filename="../MainWindow.cpp" line="2638"/>
|
||||
<source>The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2676"/>
|
||||
<location filename="../MainWindow.cpp" line="2650"/>
|
||||
<source>Cannot change from game to GS dump without shutting down first.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2865"/>
|
||||
<location filename="../MainWindow.cpp" line="2818"/>
|
||||
<source>Failed to get window info from widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2023"/>
|
||||
<location filename="../MainWindow.cpp" line="1997"/>
|
||||
<source>Stop Big Picture Mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2024"/>
|
||||
<location filename="../MainWindow.cpp" line="1998"/>
|
||||
<source>Exit Big Picture</source>
|
||||
<comment>In Toolbar</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3294"/>
|
||||
<location filename="../MainWindow.cpp" line="3215"/>
|
||||
<source>Game Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3294"/>
|
||||
<location filename="../MainWindow.cpp" line="3215"/>
|
||||
<source>Game properties is unavailable for the current game.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3346"/>
|
||||
<location filename="../MainWindow.cpp" line="3267"/>
|
||||
<source>Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3364"/>
|
||||
<location filename="../MainWindow.cpp" line="3285"/>
|
||||
<source>Select disc drive:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3388"/>
|
||||
<location filename="../MainWindow.cpp" line="3309"/>
|
||||
<source>This save state does not exist.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3401"/>
|
||||
<location filename="../MainWindow.cpp" line="3322"/>
|
||||
<source>Select Cover Image</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3418"/>
|
||||
<location filename="../MainWindow.cpp" line="3339"/>
|
||||
<source>Cover Already Exists</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3419"/>
|
||||
<location filename="../MainWindow.cpp" line="3340"/>
|
||||
<source>A cover image for this game already exists, do you wish to replace it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3414"/>
|
||||
<location filename="../MainWindow.cpp" line="3428"/>
|
||||
<location filename="../MainWindow.cpp" line="3434"/>
|
||||
<location filename="../MainWindow.cpp" line="3440"/>
|
||||
<location filename="../MainWindow.cpp" line="3335"/>
|
||||
<location filename="../MainWindow.cpp" line="3349"/>
|
||||
<location filename="../MainWindow.cpp" line="3355"/>
|
||||
<location filename="../MainWindow.cpp" line="3361"/>
|
||||
<source>Copy Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3428"/>
|
||||
<location filename="../MainWindow.cpp" line="3349"/>
|
||||
<source>Failed to remove existing cover '%1'</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3434"/>
|
||||
<location filename="../MainWindow.cpp" line="3355"/>
|
||||
<source>Failed to copy '%1' to '%2'</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3440"/>
|
||||
<location filename="../MainWindow.cpp" line="3361"/>
|
||||
<source>Failed to remove '%1'</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="2663"/>
|
||||
<location filename="../MainWindow.cpp" line="3449"/>
|
||||
<location filename="../MainWindow.cpp" line="2637"/>
|
||||
<location filename="../MainWindow.cpp" line="3370"/>
|
||||
<source>Confirm Reset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="1879"/>
|
||||
<location filename="../MainWindow.cpp" line="1853"/>
|
||||
<source>Open Snapshots Folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3401"/>
|
||||
<location filename="../MainWindow.cpp" line="3322"/>
|
||||
<source>All Cover Image Types (*.jpg *.jpeg *.png *.webp)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3414"/>
|
||||
<location filename="../MainWindow.cpp" line="3335"/>
|
||||
<source>You must select a different file to the current cover image.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3485"/>
|
||||
<location filename="../MainWindow.cpp" line="3406"/>
|
||||
<source>Failed to create snapshots directory '%1'
|
||||
|
||||
Opening default directory.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3561"/>
|
||||
<location filename="../MainWindow.cpp" line="3482"/>
|
||||
<source>Load Resume State</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3564"/>
|
||||
<location filename="../MainWindow.cpp" line="3485"/>
|
||||
<source>A resume save state was found for this game, saved at:
|
||||
|
||||
%1.
|
||||
@@ -19870,43 +19870,43 @@ Do you want to load this state, or start from a fresh boot?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3568"/>
|
||||
<location filename="../MainWindow.cpp" line="3489"/>
|
||||
<source>Fresh Boot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3569"/>
|
||||
<location filename="../MainWindow.cpp" line="3490"/>
|
||||
<source>Delete And Boot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3586"/>
|
||||
<location filename="../MainWindow.cpp" line="3507"/>
|
||||
<source>Failed to delete save state file '%1'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3644"/>
|
||||
<location filename="../MainWindow.cpp" line="3565"/>
|
||||
<source>Load State File...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3644"/>
|
||||
<location filename="../MainWindow.cpp" line="3565"/>
|
||||
<source>Load From File...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3647"/>
|
||||
<location filename="../MainWindow.cpp" line="3721"/>
|
||||
<location filename="../MainWindow.cpp" line="3568"/>
|
||||
<location filename="../MainWindow.cpp" line="3642"/>
|
||||
<source>Select Save State File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3692"/>
|
||||
<location filename="../MainWindow.cpp" line="3613"/>
|
||||
<source>Load Backup Slot %1 (%2)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../MainWindow.cpp" line="3709"/>
|
||||
<location filename="../MainWindow.cpp" line="3630"/>
|
||||
<source>%n save states deleted.</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
@@ -19914,12 +19914,12 @@ Do you want to load this state, or start from a fresh boot?</source>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3721"/>
|
||||
<location filename="../MainWindow.cpp" line="3642"/>
|
||||
<source>Save States (*.p2s)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3654"/>
|
||||
<location filename="../MainWindow.cpp" line="3575"/>
|
||||
<source>Delete Save States...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -19934,7 +19934,7 @@ Do you want to load this state, or start from a fresh boot?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3450"/>
|
||||
<location filename="../MainWindow.cpp" line="3371"/>
|
||||
<source>Are you sure you want to reset the play time for '%1' (%2)?
|
||||
|
||||
Your current play time is %3.
|
||||
@@ -19943,94 +19943,94 @@ This action cannot be undone.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3451"/>
|
||||
<location filename="../MainWindow.cpp" line="3372"/>
|
||||
<source>empty title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3452"/>
|
||||
<location filename="../MainWindow.cpp" line="3373"/>
|
||||
<source>no serial</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3504"/>
|
||||
<location filename="../MainWindow.cpp" line="3425"/>
|
||||
<source>Failed to create game texture directory '%1'
|
||||
|
||||
Opening default directory.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3521"/>
|
||||
<location filename="../MainWindow.cpp" line="3442"/>
|
||||
<source>Failed to open memory card directory.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3543"/>
|
||||
<location filename="../MainWindow.cpp" line="3464"/>
|
||||
<source>Failed to create game video capture directory '%1'
|
||||
|
||||
Opening default directory.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3647"/>
|
||||
<location filename="../MainWindow.cpp" line="3568"/>
|
||||
<source>Save States (*.p2s *.p2s.backup)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3664"/>
|
||||
<location filename="../MainWindow.cpp" line="3585"/>
|
||||
<source>Resume (%2)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3680"/>
|
||||
<location filename="../MainWindow.cpp" line="3601"/>
|
||||
<source>Load Slot %1 (%2)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3701"/>
|
||||
<location filename="../MainWindow.cpp" line="3709"/>
|
||||
<location filename="../MainWindow.cpp" line="3622"/>
|
||||
<location filename="../MainWindow.cpp" line="3630"/>
|
||||
<source>Delete Save States</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3702"/>
|
||||
<location filename="../MainWindow.cpp" line="3623"/>
|
||||
<source>Are you sure you want to delete all save states for %1?
|
||||
|
||||
The saves will not be recoverable.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3719"/>
|
||||
<location filename="../MainWindow.cpp" line="3640"/>
|
||||
<source>Save To File...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3739"/>
|
||||
<location filename="../MainWindow.cpp" line="3660"/>
|
||||
<source>Empty</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3741"/>
|
||||
<location filename="../MainWindow.cpp" line="3662"/>
|
||||
<source>Save Slot %1 (%2)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3801"/>
|
||||
<location filename="../MainWindow.cpp" line="3722"/>
|
||||
<source>Confirm Disc Change</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3802"/>
|
||||
<location filename="../MainWindow.cpp" line="3723"/>
|
||||
<source>Do you want to swap discs or boot the new image (via system reset)?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3803"/>
|
||||
<location filename="../MainWindow.cpp" line="3724"/>
|
||||
<source>Swap Disc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../MainWindow.cpp" line="3804"/>
|
||||
<location filename="../MainWindow.cpp" line="3725"/>
|
||||
<source>Reset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -22793,45 +22793,45 @@ Ejecting {2} and replacing it with {3}.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1142"/>
|
||||
<location filename="../QtHost.cpp" line="1137"/>
|
||||
<source>RA: Logged in as %1 (%2 pts, Casual: %3 pts). %4 unread messages.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1581"/>
|
||||
<location filename="../QtHost.cpp" line="1596"/>
|
||||
<location filename="../QtHost.cpp" line="1576"/>
|
||||
<location filename="../QtHost.cpp" line="1591"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1582"/>
|
||||
<location filename="../QtHost.cpp" line="1577"/>
|
||||
<source>An error occurred while deleting empty game settings:
|
||||
{}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1597"/>
|
||||
<location filename="../QtHost.cpp" line="1592"/>
|
||||
<source>An error occurred while saving game settings:
|
||||
{}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1756"/>
|
||||
<location filename="../QtHost.cpp" line="1751"/>
|
||||
<source>Controller {} connected.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1769"/>
|
||||
<location filename="../QtHost.cpp" line="1764"/>
|
||||
<source>System paused because controller {} was disconnected.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="1782"/>
|
||||
<location filename="../QtHost.cpp" line="1777"/>
|
||||
<source>Controller {} disconnected.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../QtHost.cpp" line="2025"/>
|
||||
<location filename="../QtHost.cpp" line="2020"/>
|
||||
<source>Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
+5463
-7034
File diff suppressed because it is too large
Load Diff
+4699
-6275
File diff suppressed because it is too large
Load Diff
+4568
-6142
File diff suppressed because it is too large
Load Diff
+4441
-6015
File diff suppressed because it is too large
Load Diff
+4394
-5968
File diff suppressed because it is too large
Load Diff
+4467
-6042
File diff suppressed because it is too large
Load Diff
+4486
-6048
File diff suppressed because it is too large
Load Diff
+4633
-6207
File diff suppressed because it is too large
Load Diff
+9650
-11095
File diff suppressed because it is too large
Load Diff
+4431
-6006
File diff suppressed because it is too large
Load Diff
+4374
-5950
File diff suppressed because it is too large
Load Diff
+4511
-6076
File diff suppressed because it is too large
Load Diff
+4494
-6068
File diff suppressed because it is too large
Load Diff
+4468
-6042
File diff suppressed because it is too large
Load Diff
+4384
-5960
File diff suppressed because it is too large
Load Diff
+4468
-6042
File diff suppressed because it is too large
Load Diff
+4469
-6041
File diff suppressed because it is too large
Load Diff
+8918
-10384
File diff suppressed because it is too large
Load Diff
+4468
-6042
File diff suppressed because it is too large
Load Diff
+4958
-6532
File diff suppressed because it is too large
Load Diff
+5178
-6753
File diff suppressed because it is too large
Load Diff
+4499
-6072
File diff suppressed because it is too large
Load Diff
+4468
-6042
File diff suppressed because it is too large
Load Diff
+4541
-6115
File diff suppressed because it is too large
Load Diff
+5482
-7059
File diff suppressed because it is too large
Load Diff
+10363
-11805
File diff suppressed because it is too large
Load Diff
+4473
-6047
File diff suppressed because it is too large
Load Diff
+4510
-6086
File diff suppressed because it is too large
Load Diff
+4471
-6045
File diff suppressed because it is too large
Load Diff
+4474
-6048
File diff suppressed because it is too large
Load Diff
+4559
-6133
File diff suppressed because it is too large
Load Diff
+4417
-5868
File diff suppressed because it is too large
Load Diff
@@ -1073,10 +1073,9 @@ bool GSDeviceMTL::Create(GSVSyncMode vsync_mode, bool allow_present_throttle)
|
||||
|
||||
// Init metal stuff
|
||||
m_fn_constants = MRCTransfer([MTLFunctionConstantValues new]);
|
||||
setFnConstantB(m_fn_constants, m_features.framebuffer_fetch, GSMTLConstantIndex_FRAMEBUFFER_FETCH);
|
||||
setFnConstantB(m_fn_constants, m_features.depth_feedback, GSMTLConstantIndex_DEPTH_FEEDBACK);
|
||||
setFnConstantB(m_fn_constants, m_dev.features.rov_requires_r32, GSMTLConstantIndex_ROV_NEEDS_R32);
|
||||
setFnConstantB(m_fn_constants, m_dev.features.broken_shader_depth, GSMTLConstantIndex_BROKEN_SHADER_DEPTH);
|
||||
setFnConstantB(m_fn_constants, m_features.framebuffer_fetch, GSMTLConstantIndex_FRAMEBUFFER_FETCH);
|
||||
setFnConstantB(m_fn_constants, m_features.depth_feedback, GSMTLConstantIndex_DEPTH_FEEDBACK);
|
||||
setFnConstantB(m_fn_constants, m_dev.features.rov_requires_r32, GSMTLConstantIndex_ROV_NEEDS_R32);
|
||||
|
||||
m_draw_sync_fence = MRCTransfer([m_dev.dev newFence]);
|
||||
[m_draw_sync_fence setLabel:@"Draw Sync Fence"];
|
||||
@@ -2351,9 +2350,6 @@ void GSDeviceMTL::RenderHW(GSHWDrawConfig& config)
|
||||
if (config.tex && (config.ds == config.tex || config.rt == config.tex))
|
||||
EndRenderPass(); // Barrier
|
||||
|
||||
if (m_dev.features.broken_shader_depth && (config.depth.ztst >= ZTST_GEQUAL || config.depth.zwe))
|
||||
config.ps.zfloor = true; // Depth must always go through shader (see tfx vs for comment with details)
|
||||
|
||||
size_t vertsize = config.nverts * sizeof(*config.verts);
|
||||
size_t idxsize = config.vs.UseFixedExpandIndexBuffer() ? 0 : (config.nindices * sizeof(*config.indices));
|
||||
Map allocation = Allocate(m_vertex_upload_buf, vertsize + idxsize);
|
||||
|
||||
@@ -37,7 +37,6 @@ struct GSMTLDevice
|
||||
bool rov : 1;
|
||||
bool rov_requires_rt : 1;
|
||||
bool rov_requires_r32 : 1;
|
||||
bool broken_shader_depth : 1;
|
||||
MetalVersion shader_version;
|
||||
int max_texsize;
|
||||
};
|
||||
|
||||
@@ -207,7 +207,7 @@ GSMTLDevice::GSMTLDevice(MRCOwned<id<MTLDevice>> dev)
|
||||
}
|
||||
else if ([name containsString:@"Apple"])
|
||||
{
|
||||
features.broken_shader_depth = true;
|
||||
// No special settings
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -228,9 +228,6 @@ GSMTLDevice::GSMTLDevice(MRCOwned<id<MTLDevice>> dev)
|
||||
if (char* env = getenv("MTL_ROV_WITH_RT"))
|
||||
features.rov_requires_rt = env[0] == '1' || env[0] == 'y' || env[0] == 'Y';
|
||||
|
||||
if (char* env = getenv("MTL_SHADER_DEPTH_WORKAROUND"))
|
||||
features.broken_shader_depth = env[0] == '1' || env[0] == 'y' || env[0] == 'Y';
|
||||
|
||||
features.max_texsize = GetMaxTextureSize(dev);
|
||||
|
||||
this->dev = std::move(dev);
|
||||
|
||||
@@ -166,7 +166,6 @@ enum GSMTLFnConstants
|
||||
GSMTLConstantIndex_FRAMEBUFFER_FETCH,
|
||||
GSMTLConstantIndex_DEPTH_FEEDBACK,
|
||||
GSMTLConstantIndex_ROV_NEEDS_R32,
|
||||
GSMTLConstantIndex_BROKEN_SHADER_DEPTH,
|
||||
GSMTLConstantIndex_FST,
|
||||
GSMTLConstantIndex_IIP,
|
||||
GSMTLConstantIndex_VS_POINT_SIZE,
|
||||
|
||||
@@ -14,7 +14,6 @@ constant uint SHUFFLE_READWRITE = 3;
|
||||
constant bool HAS_FBFETCH [[function_constant(GSMTLConstantIndex_FRAMEBUFFER_FETCH)]];
|
||||
constant bool DEPTH_FEEDBACK [[function_constant(GSMTLConstantIndex_DEPTH_FEEDBACK)]];
|
||||
constant bool ROV_NEEDS_R32 [[function_constant(GSMTLConstantIndex_ROV_NEEDS_R32)]];
|
||||
constant bool BROKEN_SHADER_DEPTH [[function_constant(GSMTLConstantIndex_BROKEN_SHADER_DEPTH)]];
|
||||
constant bool FST [[function_constant(GSMTLConstantIndex_FST)]];
|
||||
constant bool IIP [[function_constant(GSMTLConstantIndex_IIP)]];
|
||||
constant bool VS_POINT_SIZE [[function_constant(GSMTLConstantIndex_VS_POINT_SIZE)]];
|
||||
@@ -249,14 +248,6 @@ static MainVSOut vs_main_run(thread const MainVSIn& v, constant GSMTLMainVSUnifo
|
||||
if (VS_POINT_SIZE)
|
||||
out.point_size = cb.point_size.x;
|
||||
|
||||
// Apple GPUs use slightly different algorithms to calculate the Z they send to the shader vs the Z they use in hardware.
|
||||
// This breaks a lot of things (the most common is conservative depth rejecting pixels that should have depth equal to current depth but now don't).
|
||||
// Work around by always routing depth through the shader, and never using hardware depth values.
|
||||
// To allow us to continue to use [[depth(less)]] optimizations, add a bit in the VS and subtract it off in the FS,
|
||||
// so that "equal" depth doesn't ever fail a hardware depth test.
|
||||
if (BROKEN_SHADER_DEPTH)
|
||||
out.p.z += exp_min32;
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
@@ -1503,8 +1494,6 @@ struct PSMain
|
||||
{
|
||||
MainResult out = {};
|
||||
float input_z = in.p.z;
|
||||
if (BROKEN_SHADER_DEPTH)
|
||||
input_z -= 0x1p-32;
|
||||
if (PS_ZFLOOR)
|
||||
input_z = floor(input_z * 0x1p32) * 0x1p-32;
|
||||
|
||||
|
||||
@@ -339,8 +339,8 @@ void GSDrawScanline::CSetupPrim(const GSVertexSW* vertex, const u16* index, cons
|
||||
|
||||
for (int i = 0; i < vlen; i++)
|
||||
{
|
||||
VectorI r = (VectorI(dr * load_shift(i)) & mask16).pu32();
|
||||
VectorI b = (VectorI(db * load_shift(i)) & mask16).pu32();
|
||||
VectorI r = (VectorI(dr * load_shift(i)) & mask16).ps32();
|
||||
VectorI b = (VectorI(db * load_shift(i)) & mask16).ps32();
|
||||
|
||||
local.d[i].rb = r.upl16(b);
|
||||
}
|
||||
@@ -350,8 +350,8 @@ void GSDrawScanline::CSetupPrim(const GSVertexSW* vertex, const u16* index, cons
|
||||
|
||||
for (int i = 0; i < vlen; i++)
|
||||
{
|
||||
VectorI g = (VectorI(dg * load_shift(i)) & mask16).pu32();
|
||||
VectorI a = (VectorI(da * load_shift(i)) & mask16).pu32();
|
||||
VectorI g = (VectorI(dg * load_shift(i)) & mask16).ps32();
|
||||
VectorI a = (VectorI(da * load_shift(i)) & mask16).ps32();
|
||||
|
||||
local.d[i].ga = g.upl16(a);
|
||||
}
|
||||
|
||||
+1
-1
@@ -81,6 +81,6 @@ void SPU2writeDMA7Mem(u16* pMem, u32 size);
|
||||
extern u64 lClocks;
|
||||
|
||||
extern void CounterUpdate(u32 DMAICounter);
|
||||
extern void TimeUpdate(u64 cClocks);
|
||||
extern void TimeUpdate(u32 cClocks);
|
||||
extern void SPU2_FastWrite(u32 rmem, u16 value);
|
||||
|
||||
|
||||
@@ -314,7 +314,7 @@ __forceinline void CheckDMAProgress(int cid)
|
||||
static constexpr uint TickInterval = 768;
|
||||
static constexpr int SanityInterval = 4800;
|
||||
|
||||
__forceinline void TimeUpdate(u64 cClocks)
|
||||
__forceinline void TimeUpdate(u32 cClocks)
|
||||
{
|
||||
u32 dClocks = cClocks - lClocks;
|
||||
|
||||
|
||||
+1
-1
@@ -1694,7 +1694,7 @@ static __ri void _vuERLENG(VURegs* VU)
|
||||
|
||||
|
||||
static __ri float _vuCalculateEATAN(float inputvalue) {
|
||||
float eatanconst[9] = { 0.999999344348907f, -0.333298563957214f, 0.199465364217758f, -0.139085337519646f,
|
||||
float eatanconst[9] = { 0.999999344348907f, -0.333298563957214f, 0.199465364217758f, -0.13085337519646f,
|
||||
0.096420042216778f, -0.055909886956215f, 0.021861229091883f, -0.004054057877511f,
|
||||
0.785398185253143f };
|
||||
|
||||
|
||||
Reference in New Issue
Block a user