diff --git a/.ci/android.sh b/.ci/android.sh
index db3dac419..fc945e243 100755
--- a/.ci/android.sh
+++ b/.ci/android.sh
@@ -9,8 +9,14 @@ fi
cd src/android
chmod +x ./gradlew
-./gradlew assembleRelease
-./gradlew bundleRelease
+
+if [[ "$TARGET" == "googleplay" ]]; then
+ ./gradlew assembleGooglePlayRelease
+ ./gradlew bundleGooglePlayRelease
+else
+ ./gradlew assembleVanillaRelease
+ ./gradlew bundleVanillaRelease
+fi
ccache -s -v
diff --git a/.ci/docker.sh b/.ci/docker.sh
new file mode 100755
index 000000000..d4df835c4
--- /dev/null
+++ b/.ci/docker.sh
@@ -0,0 +1,17 @@
+#!/bin/bash -ex
+
+GITREV="`git show -s --format='%h'`" || true
+
+if [ "$GITHUB_REF_TYPE" = "tag" ]; then
+ TAG_NAME=$GITHUB_REF_NAME
+elif [[ -n $GITREV ]]; then
+ TAG_NAME=$GITREV
+else
+ TAG_NAME=unknown
+fi
+
+echo "Tag name is: $TAG_NAME"
+
+docker build -f docker/azahar-room/Dockerfile -t azahar-room:$TAG_NAME .
+mkdir -p build
+docker save azahar-room:$TAG_NAME > build/azahar-room-$TAG_NAME.dockerimage
diff --git a/.ci/linux.sh b/.ci/linux.sh
index 5b3521681..8cdf33abf 100755
--- a/.ci/linux.sh
+++ b/.ci/linux.sh
@@ -1,14 +1,16 @@
#!/bin/bash -ex
-if [ "$TARGET" = "appimage" ]; then
+if [[ "$TARGET" == "appimage"* ]]; then
# Compile the AppImage we distribute with Clang.
export EXTRA_CMAKE_FLAGS=(-DCMAKE_CXX_COMPILER=clang++
-DCMAKE_C_COMPILER=clang
-DCMAKE_LINKER=/etc/bin/ld.lld
-DENABLE_ROOM_STANDALONE=OFF)
- # Bundle required QT wayland libraries
- export EXTRA_QT_PLUGINS="waylandcompositor"
- export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
+ if [ "$TARGET" = "appimage-wayland" ]; then
+ # Bundle required QT wayland libraries
+ export EXTRA_QT_PLUGINS="waylandcompositor"
+ export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
+ fi
else
# For the linux-fresh verification target, verify compilation without PCH as well.
export EXTRA_CMAKE_FLAGS=(-DCITRA_USE_PRECOMPILED_HEADERS=OFF)
@@ -30,7 +32,7 @@ cmake .. -G Ninja \
ninja
strip -s bin/Release/*
-if [ "$TARGET" = "appimage" ]; then
+if [[ "$TARGET" == "appimage"* ]]; then
ninja bundle
# TODO: Our AppImage environment currently uses an older ccache version without the verbose flag.
ccache -s
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 0d02dd2f0..7963badca 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -22,12 +22,13 @@ jobs:
with:
name: source
path: artifacts/
+
linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
- target: ["appimage", "fresh"]
+ target: ["appimage", "appimage-wayland", "fresh"]
container:
image: opensauce04/azahar-build-environment:latest
options: -u 1001
@@ -51,16 +52,21 @@ jobs:
- name: Build
run: ./.ci/linux.sh
- name: Move AppImage to artifacts directory
- if: ${{ matrix.target == 'appimage' }}
+ if: ${{ contains(matrix.target, 'appimage') }}
run: |
mkdir -p artifacts
mv build/bundle/*.AppImage artifacts/
+ - name: Rename AppImage
+ if: ${{ matrix.target == 'appimage-wayland' }}
+ run: |
+ mv artifacts/azahar.AppImage artifacts/azahar-wayland.AppImage
- name: Upload
- if: ${{ matrix.target == 'appimage' }}
+ if: ${{ contains(matrix.target, 'appimage') }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.OS }}-${{ env.TARGET }}
path: artifacts/
+
macos:
runs-on: ${{ (matrix.target == 'x86_64' && 'macos-15-intel') || 'macos-26' }}
strategy:
@@ -102,6 +108,7 @@ jobs:
with:
name: ${{ env.OS }}-${{ env.TARGET }}
path: artifacts/
+
macos-universal:
runs-on: macos-26
needs: macos
@@ -133,6 +140,7 @@ jobs:
with:
name: ${{ env.OS }}-${{ env.TARGET }}
path: artifacts/
+
windows:
runs-on: windows-latest
strategy:
@@ -210,54 +218,92 @@ jobs:
with:
name: ${{ env.OS }}-${{ env.TARGET }}
path: artifacts/
+
android:
runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ target: ["vanilla", "googleplay"]
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
CCACHE_COMPILERCHECK: content
CCACHE_SLOPPINESS: time_macros
OS: android
- TARGET: universal
+ TARGET: ${{ matrix.target }}
+ SHOULD_RUN: ${{ (matrix.target == 'vanilla' || github.ref_type == 'tag') }}
steps:
- uses: actions/checkout@v4
+ if: ${{ env.SHOULD_RUN == 'true' }}
with:
submodules: recursive
- name: Set up cache
+ if: ${{ env.SHOULD_RUN == 'true' }}
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
${{ env.CCACHE_DIR }}
- key: ${{ runner.os }}-android-${{ github.sha }}
+ key: ${{ runner.os }}-${{ env.OS }}-${{ matrix.target }}-${{ github.sha }}
restore-keys: |
- ${{ runner.os }}-android-
+ ${{ runner.os }}-${{ env.OS }}-${{ matrix.target }}-
- name: Set tag name
+ if: ${{ env.SHOULD_RUN == 'true' }}
run: |
if [[ "$GITHUB_REF_TYPE" == "tag" ]]; then
echo "GIT_TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
fi
echo $GIT_TAG_NAME
- - name: Deps
+ - name: Install tools
+ if: ${{ env.SHOULD_RUN == 'true' }}
run: |
sudo apt-get update -y
sudo apt-get install ccache apksigner -y
- name: Update Android SDK CMake version
+ if: ${{ env.SHOULD_RUN == 'true' }}
run: |
echo "y" | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "cmake;3.30.3"
- name: Build
+ if: ${{ env.SHOULD_RUN == 'true' }}
run: JAVA_HOME=$JAVA_HOME_17_X64 ./.ci/android.sh
env:
ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }}
- name: Pack
+ if: ${{ env.SHOULD_RUN == 'true' }}
run: ../../../.ci/pack.sh
working-directory: src/android/app
env:
UNPACKED: 1
- name: Upload
+ if: ${{ env.SHOULD_RUN == 'true' }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.OS }}-${{ env.TARGET }}
path: src/android/app/artifacts/
+
+ docker:
+ runs-on: ubuntu-latest
+ container:
+ image: docker:dind
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+ - name: Install tools
+ run: apk add bash
+ - name: Fix git ownership
+ run: git config --global --add safe.directory .
+ - name: Build Docker image
+ run: ./.ci/docker.sh
+ - name: Move Docker image to artifacts directory
+ run: |
+ mkdir -p artifacts
+ mv build/*.dockerimage artifacts/
+ - name: Upload
+ uses: actions/upload-artifact@v4
+ with:
+ name: docker
+ path: artifacts/
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 3651c93be..6000a682d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,9 @@ src/installer/*.exe
src/common/scm_rev.cpp
.travis.descriptor.json
+# Docker image files
+*.dockerimage
+
# Project/editor files
*.swp
*.kdev4
diff --git a/.gitmodules b/.gitmodules
index ed5d9f0f9..cb600a64c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -100,3 +100,6 @@
[submodule "spirv-headers"]
path = externals/spirv-headers
url = https://github.com/KhronosGroup/SPIRV-Headers
+[submodule "externals/xxHash"]
+ path = externals/xxHash
+ url = https://github.com/Cyan4973/xxHash.git
diff --git a/README.md b/README.md
index db4aa84f4..35616e343 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,9 @@


-
+
+
+

Azahar is an open-source 3DS emulator project based on Citra.
@@ -14,9 +16,11 @@ The goal of this project is to be the de-facto platform for future development.
### Windows
-Download the latest release from [Releases](https://github.com/azahar-emu/azahar/releases).
+Azahar is available as both an installer and a zip archive.
-If you are unsure of whether you want to use MSYS2 or MSVC, use MSYS2.
+Download the latest release in your preferred format from the [Releases](https://github.com/azahar-emu/azahar/releases) page.
+
+If you are unsure of whether you want to use MSVC or MSYS2, use MSYS2.
---
@@ -30,23 +34,30 @@ Alternatively, if you wish to download a build specifically for your Mac, you ca
- `macos-x86_64` for Intel Macs
---
+
### Android
-The recommended method of downloading Azahar on Android is via the Google Play store:
+
+There are two variants of Azahar available on Android, those being the Vanilla and Google Play builds.
+
+The Vanilla build is technically superior, as it uses an alternative method of file management which is faster, but isn't permitted on the Google Play store.
+
+For most users, we currently recommended downloading Azahar on Android via the Google Play Store for ease of accessibility:
-Alternatively, you can install the app using Obtainium:
+Alternatively, you can install the app using Obtainium, allowing you to use the Vanilla variant:
1. Download and install Obtainium from [here](https://github.com/ImranR98/Obtainium/releases) (use the file named `app-release.apk`)
2. Open Obtainium and click 'Add App'
3. Type `https://github.com/azahar-emu/azahar` into the 'App Source URL' section
4. Click 'Add'
-5. Click 'Install'
+5. Click 'Install', and select the preferred variant
If you wish, you can also simply install the latest APK from the [Releases](https://github.com/azahar-emu/azahar/releases) page.
Keep in mind that you will not recieve automatic updates when installing via the APK.
---
+
### Linux
The recommended format for using Azahar on Linux is the Flatpak available on Flathub:
@@ -55,6 +66,13 @@ The recommended format for using Azahar on Linux is the Flatpak available on Fla
Azahar is also available as an AppImage on the [Releases](https://github.com/azahar-emu/azahar/releases) page.
+There are two variants of the AppImage available, those being `azahar.AppImage` and `azahar-wayland.AppImage`.
+
+If you are unsure of which variant to use, we recommend using the default `azahar.AppImage`. This is because of upstream issues in the Wayland ecosystem which may cause problems when running the emulator (e.g. [#1162](https://github.com/azahar-emu/azahar/issues/1162)).
+
+Unless you explicitly require native Wayland support (e.g. you are running a system with no Xwayland), the non-Wayland variant is recommended.
+
+The Flatpak build of Azahar also has native Wayland support disabled by default. If you require native Wayland support, it can be enabled using [Flatseal](https://flathub.org/en/apps/com.github.tchx84.Flatseal).
# Build instructions
@@ -86,18 +104,23 @@ To do so, simply read https://github.com/azahar-emu/compatibility-list/blob/mast
Contributing compatibility data helps more accurately reflect the current capabilities of the emulator, so it would be highly appreciated if you could go through the reporting process after completing a game.
# Minimum requirements
+
Below are the minimum requirements to run Azahar:
### Desktop
+
```
Operating System: Windows 10 (64-bit), MacOS 13.4 (Ventura), or modern 64-bit Linux
-CPU: x86-64/ARM64 CPU (Windows for ARM not supported). Single core performance higher than 1,800 on Passmark
+CPU: x86-64/ARM64 CPU (Windows for ARM not supported).
+ Single core performance higher than 1,800 on Passmark.
+ SSE4.2 required on x86_64.
GPU: OpenGL 4.3 or Vulkan 1.1 support
Memory: 2GB of RAM. 4GB is recommended
```
### Android
+
```
-Operating System: Android 9.0+ (64-bit)
+Operating System: Android 10.0+ (64-bit)
CPU: Snapdragon 835 SoC or better
GPU: OpenGL ES 3.2 or Vulkan 1.1 support
Memory: 2GB of RAM. 4GB is recommended
@@ -110,6 +133,7 @@ We share public roadmaps for upcoming releases in the form of GitHub milestones.
You can find these at https://github.com/azahar-emu/azahar/milestones.
# Join the conversation
+
We have a community Discord server where you can chat about the project, keep up to date with the latest announcements, or coordinate emulator development.
-[](https://discord.gg/4ZjMpAp3M6)
+Join at https://discord.gg/4ZjMpAp3M6
diff --git a/dist/compatibility_list b/dist/compatibility_list
index a36decbe4..eadcdfb84 160000
--- a/dist/compatibility_list
+++ b/dist/compatibility_list
@@ -1 +1 @@
-Subproject commit a36decbe43d0e5a570ac3d3ba9a0b226dc832a17
+Subproject commit eadcdfb84b6f3b95734e867d99fe16a9e8db717f
diff --git a/dist/languages/ca_ES_valencia.ts b/dist/languages/ca_ES_valencia.ts
index bc138e02f..84a0b2b2c 100644
--- a/dist/languages/ca_ES_valencia.ts
+++ b/dist/languages/ca_ES_valencia.ts
@@ -296,8 +296,8 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.
- Emulation:
- Emulació:
+ Emulation
+
@@ -401,6 +401,7 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.
+ CameraCàmera
@@ -412,8 +413,8 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.
- Camera to configure:
- Configurar la càmera:
+ Camera to Configure
+
@@ -433,8 +434,8 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.
- Camera mode:
- Mode de càmera:
+ Camera mode
+
@@ -454,8 +455,8 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.
- Camera position:
- Posició de càmera:
+ Camera position
+
@@ -480,8 +481,8 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.
- Camera Image Source:
- Font de la imatge de la càmera:
+ Camera Image Source
+
@@ -500,8 +501,8 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.
- File:
- Fitxer:
+ File
+
@@ -514,11 +515,6 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.Select the system camera to use
Seleccione la cambra del sistema que serà usada
-
-
- Camera:
- Càmera:
- <Default>
@@ -532,8 +528,8 @@ Aixó banejarà el seu nom d'usuari de fòrum i la seua adreça IP.
- Flip:
- Rotació:
+ Flip
+
@@ -1022,7 +1018,7 @@ Desitja ignorar l'error i continuar?
Enable Linear Filtering
- Activar filtre linear
+
@@ -1086,8 +1082,8 @@ Desitja ignorar l'error i continuar?
- Reverse Side by Side
- De costat a costat invers
+ Side by Side Full Width
+
@@ -1137,7 +1133,7 @@ Desitja ignorar l'error i continuar?
Disable Right Eye Rendering
- Desactivar Renderitzat d'Ull Dret
+
@@ -1145,49 +1141,54 @@ Desitja ignorar l'error i continuar?
<html><head/><body><p>Desactivar Dibuixat d'Ull Dret</p><p>Desactiva el dibuixat de la imatge de l'ull dret quan no s'utilitza el mode estereoscòpic. Millora significativament el rendiment en alguns jocs, però pot causar parpelleig en uns altres.</p></body></html>
-
+
+ Swap Eyes
+
+
+
+ UtilityUtilitat
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Canvia les textures per fitxers PNG.</p><p>Les textures són carregades des de load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
- Usar textures personalitzades
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Bolca les textures a fitxers PNG.</p><p>Les textures són bolcades a load/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
- Bolcar Textures
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Càrrega totes les textures personalitzades en memòria en iniciar, en comptes de carregar-les quan l'aplicació les necessite.</p></body></html>
-
- Preload Custom Textures
- Precarregar Textures Personalitzades
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Càrrega les textures personalitzades de manera asíncrona amb els fils de fons per a reduir les aturades de càrrega</p></body></html>
-
- Async Custom Texture Loading
- Càrrega de Textures Personalitzades Asíncrona
+
+ Async custom texture loading
+
@@ -1244,13 +1245,13 @@ Desitja ignorar l'error i continuar?
- Set emulation speed:
- Establir la velocitat d'emulació:
+ Set emulation speed
+
- Emulation Speed:
- Velocitat d'Emulació:
+ Emulation Speed
+
@@ -1361,13 +1362,13 @@ Desitja ignorar l'error i continuar?
- SPIR-V Shader Generation
- Generació de Ombrejats SPIR-V
+ SPIR-V shader generation
+
- Disable GLSL -> SPIR-V Optimizer
- Desativar optimitzador GLSL -> SPIR-V
+ Disable GLSL -> SPIR-V optimizer
+
@@ -1386,8 +1387,8 @@ Desitja ignorar l'error i continuar?
- Enable Hardware Shader
- Activar Ombrejador de Hardware
+ Enable hardware shader
+
@@ -1396,8 +1397,8 @@ Desitja ignorar l'error i continuar?
- Accurate Multiplication
- Multiplicació Precisa
+ Accurate multiplication
+
@@ -1406,8 +1407,8 @@ Desitja ignorar l'error i continuar?
- Enable Shader JIT
- Activar Ombreig JIT
+ Enable shader JIT
+
@@ -1416,8 +1417,8 @@ Desitja ignorar l'error i continuar?
- Enable Async Shader Compilation
- Activar compilació de ombrejadors asíncrona
+ Enable async shader compilation
+
@@ -1426,8 +1427,8 @@ Desitja ignorar l'error i continuar?
- Enable Async Presentation
- Activar Presentació Asíncrona
+ Enable async presentation
+
@@ -1466,8 +1467,8 @@ Desitja ignorar l'error i continuar?
- Use Disk Shader Cache
- Usar Caché Emmagatzemada d'Ombrejadors
+ Use disk shader cache
+
@@ -1491,8 +1492,8 @@ Desitja ignorar l'error i continuar?
- Delay application render thread:
- Endarrerir fil de renderitzat:
+ Delay Application Render Thread
+
@@ -1980,13 +1981,13 @@ Desitja ignorar l'error i continuar?
- Swap Screens
- Intercanviar Pantalles
+ Swap screens
+
- Rotate Screens Upright
- Girar pantalles en vertical
+ Rotate screens upright
+
@@ -2102,8 +2103,8 @@ Desitja ignorar l'error i continuar?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Percentatge d'Opacitat de la Pantalla Inferior (només OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+
@@ -2450,8 +2451,8 @@ Desitja ignorar l'error i continuar?
- Use Virtual SD
- Usar SD Virtual
+ Use virtual SD card
+
@@ -2460,8 +2461,8 @@ Desitja ignorar l'error i continuar?
- Use Custom Storage
- Usar emmagatzematge personalitzat
+ Use custom storage location
+
@@ -2548,8 +2549,8 @@ les funcions en línia (si estan instal·lats)
- Region:
- Regió:
+ Region
+
@@ -2557,326 +2558,337 @@ les funcions en línia (si estan instal·lats)
Auto-elegir
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameNom d'usuari/a
-
+ BirthdayAniversari
-
+ JanuaryGener
-
+ FebruaryFebrer
-
+ MarchMarç
-
+ AprilAbril
-
+ MayMaig
-
+ JuneJuny
-
+ JulyJuliol
-
+ AugustAgost
-
+ SeptemberSetembre
-
+ OctoberOctubre
-
+ NovemberNovembre
-
+ DecemberDecembre
-
+ LanguageIdioma
-
+ Note: this can be overridden when region setting is auto-selectNota: pot ser sobreescrit quan la regió és seleccionada automàticament
-
+ Japanese (日本語)Japonés (日本語)
-
+ EnglishAnglés (English)
-
+ French (français)Francés (Français)
-
+ German (Deutsch)Alemany (Deutsch)
-
+ Italian (italiano)Italià (Italiano)
-
+ Spanish (español)Espanyol (Español)
-
+ Simplified Chinese (简体中文)Xinés Simplificat (简体中文)
-
+ Korean (한국어)Coreà (한국어)
-
+ Dutch (Nederlands)Neerlandés (Nederlands)
-
+ Portuguese (português)Portugués (Português)
-
+ Russian (Русский)Rus (Русский)
-
+ Traditional Chinese (正體中文)Xinés Tradicional (正體中文)
-
+ Sound output modeMode d'eixida de l'àudio
-
+ MonoMono
-
+ StereoEstéreo
-
+ SurroundEnvolvent
-
+ CountryPaís
-
+ ClockRellotge
-
+ System ClockRellotge del Sistema
-
+ Fixed TimeTemps Fixat
-
+ Startup timeTemps de l'Inici
-
+ yyyy-MM-ddTHH:mm:ssaaaa-mm-ddTHH:mm:ss
-
+ Offset timeTemps de compensació
-
+ daysdies
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksTicks de Sistema Inicials
-
+ RandomAleatoris
-
+ FixedFixades
-
+ Initial System Ticks OverrideSobreescriure Ticks de Sistema Inicials
-
+ Play CoinsMonedes de Joc
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>Nombre de passos per hora reportats pel podòmetro. Rang de 0 a 65.535.</p></body></html>
-
+ Pedometer Steps per HourPassos per hora del podòmetre
-
+ Run System Setup when Home Menu is launchedExecutar la Configuració de la consola quan s'execute el Menú HOME
-
+ Console ID:ID de Consola
-
-
+
+ RegenerateRegenerar
-
+ MAC:MAC:
-
- 3GX Plugin Loader:
- Carregador de complements 3GX:
+
+ 3GX Plugin Loader
+
-
+ Enable 3GX plugin loaderHabilitar el carregador de complements 3GX
-
+ Allow applications to change plugin loader statePermetre que les aplicacions canvien l'estat del carregador de plugins
-
+ Real Console Unique DataDades úniques de la consola real
-
+ Your real console is linked to Azahar.La teua consola real està enllaçada a Azahar.
-
+ UnlinkDesenllaçar
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseTriar
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.La configuració del sistema només està disponible quan l'aplicació no s'està executant.
@@ -3586,76 +3598,76 @@ les funcions en línia (si estan instal·lats)
Fitxer Sed (*.sed);;Tots els fitxers (*.*)
-
-
+
+ Console ID: 0x%1ID de Consola: 0x%1
-
-
+
+ MAC: %1MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?Substituirà la teua ID de consola 3DS actual per una nova. La teua ID actual no es podrà recuperar. Pot tenir efectes inesperats dins de les aplicacions. Podria fallar si utilitzes un fitxer de configuració obsolet. Continuar?
-
-
-
+
+
+ WarningAdvertència
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Això reemplaçarà la teua adreça MAC actual per una nova. No es recomana fer-ho si vas obtindre la direcció MAC de la teua consola real amb la ferramenta de configuració. Continuar?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?Esta acció desvincularà la teua consola real d'Azahar, amb les següents conseqüències:<ul><li>OTP, SecureInfo i LocalFriendCodeSeed seran eliminats de Azahar.</li><li>La teua llista d'amics es restablirà i es tancarà la sessió del teu compte NNID/PNID.</li><li>Els fitxers del sistema i els títols de la eshop obtinguts a través d'Azahar es tornaran inaccessibles fins que la mateixa consola es vincule novament mitjançant la ferramenta de configuració (les dades guardades no es perdran).</li></ul><br>Continuar?
-
+ Invalid country for configured regionPaís incorrecte per a la regió configurada
-
+ Invalid country for console unique dataPaís incorrecte per a les dades de consola únics
-
+ Status: LoadedEstat: Carregat
-
+ Status: Loaded (Invalid Signature)Estat: Carregat (Firma Invàlida)
-
+ Status: Loaded (Region Changed)Estat: Carregat (Canviat de Regió)
-
+ Status: Not FoundEstat: No Trobat
-
+ Status: InvalidEstat: Invàlid
-
+ Status: IO ErrorEstat: Error Entrada/Eixida
@@ -3771,13 +3783,13 @@ Mou els punts per a canviar la posició, o fes doble clic en les cel·les de la
- Interface language:
- Idioma de la Interfície
+ Interface Language
+
- Theme:
- Tema:
+ Theme
+
@@ -3786,8 +3798,8 @@ Mou els punts per a canviar la posició, o fes doble clic en les cel·les de la
- Icon Size:
- Grandària d'Icona:
+ Icon Size
+
@@ -3807,8 +3819,8 @@ Mou els punts per a canviar la posició, o fes doble clic en les cel·les de la
- Row 1 Text:
- Text de Fila 1:
+ Row 1 Text
+
@@ -3842,18 +3854,18 @@ Mou els punts per a canviar la posició, o fes doble clic en les cel·les de la
- Row 2 Text:
- Text de Fila 2:
+ Row 2 Text
+
- Hide Titles without Icon
- Ocultar Títols sense Icona
+ Hide titles without icon
+
- Single Line Mode
- Mode Una Línia
+ Single line mode
+
@@ -3862,8 +3874,8 @@ Mou els punts per a canviar la posició, o fes doble clic en les cel·les de la
- Show Advanced Frame Time Info
- Mostrar informació de fotogrames avançada
+ Show advanced frame time info
+
@@ -3945,12 +3957,12 @@ Mou els punts per a canviar la posició, o fes doble clic en les cel·les de la
DirectConnectWindow
-
+ ConnectingConnectant
-
+ ConnectConnectar
@@ -4070,497 +4082,511 @@ Per favor, comprove la instal·lació de FFmpeg usada per a la compilació.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedDispositius compatibles amb Vulkan no trobats.
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.L'inici de Vulkan va fallar durant l'inici.<br/>El teu GPU, o no suporta Vulkan 1.1, o no té els últims drivers gràfics.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.Velocitat actual del trànsit Artic. Valors més alts indiquen major càrrega de transferència.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.La velocitat d'emulació actual. Valors majors o menors de 100% indiquen que la velocitat d'emulació funciona més ràpida o lentament que en una 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.Els fotogrames per segon que està mostrant el joc. Variaran d'aplicació en aplicació i d'escena a escena.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.El temps que porta emular un fotograma de 3DS, sense tindre en compte el limitador de fotogrames, ni la sincronització vertical. Per a una emulació òptima, este valor no ha de superar els 16.67 ms.
-
+ MicroProfile (unavailable)MicroProfile (no disponible)
-
+ Clear Recent FilesNetejar Fitxers Recents
-
+ &Continue&Continuar
-
+ &Pause&Pausar
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar està executant una aplicació
-
-
+
+ Invalid App FormatFormat d'aplicació invàlid
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.El teu format d'aplicació no és vàlid.<br/>Per favor, seguix les instruccions per a tornar a bolcar les teues <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>cartutxos de joc</a> i/o <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>títols instal·lats</a>.
-
+ App CorruptedAplicació corrupta
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.La teua aplicació està corrupta. <br/>Per favor, seguix les instruccions per a tornar a bolcar les teues <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>cartutxos de joc</a> i/o <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>títols instal·lats</a>.
-
+ App EncryptedAplicació encriptada
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>La teua aplicació està encriptada. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Per favor visita el nostre blog per a més informació.</a>
-
+ Unsupported AppAplicació no suportada
-
+ GBA Virtual Console is not supported by Azahar.Consola Virtual de GBA no està suportada per Azahar.
-
-
+
+ Artic ServerArtic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!Error en carregar l'aplicació!
-
+ An unknown error occurred. Please see the log for more details.Un error desconegut ha ocorregut. Per favor, mira el log per a més detalls.
-
+ CIA must be installed before usageEl CIA ha d'estar instal·lat abans d'usar-se
-
+ Before using this CIA, you must install it. Do you want to install it now?Abans d'usar este CIA, has d'instal·lar-ho. Vols instal·lar-ho ara?
-
+ Quick LoadCàrrega Ràpida
-
+ Quick SaveGuardat Ràpid
-
-
+
+ Slot %1Ranura %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Guardat Ràpid - %1
-
+ Quick Load - %1Càrrega Ràpida - %1
-
+ Slot %1 - %2 %3Ranura %1 - %2 %3
-
+ Error Opening %1 FolderError en obrir la carpeta %1
-
-
+
+ Folder does not exist!La carpeta no existix!
-
+ Remove Play Time DataLlevar Dades de Temps de Joc
-
+ Reset play time?Reiniciar temps de joc?
-
-
-
-
+
+
+
+ Create ShortcutCrear drecera
-
+ Do you want to launch the application in fullscreen?Desitja llançar esta aplicació en pantalla completa?
-
+ Successfully created a shortcut to %1Drecera a %1 creat amb èxit
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Aixó crearà una drecera a la AppImage actual. Pot no funcionar bé si actualitzes. Continuar?
-
+ Failed to create a shortcut to %1Fallada en crear una drecera a %1
-
+ Create IconCrear icona
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.No es va poder crear un arxiu d'icona. La ruta "%1" no existix i no pot ser creada.
-
+ Dumping...Bolcant...
-
-
+
+ CancelCancel·lar
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.No es va poder bolcar el RomFS base.
Comprove el registre per a més detalls.
-
+ Error Opening %1Error en obrir %1
-
+ Select DirectorySeleccionar directori
-
+ PropertiesPropietats
-
+ The application properties could not be loaded.Les propietats de l'aplicació no han pogut ser carregades.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Executable 3DS(%1);;Tots els arxius(*.*)
-
+ Load FileCarregar Fitxer
-
-
+
+ Set Up System FilesConfigurar Fitxers del Sistema
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>Azahar necessita fitxers d'una consola real per poder utilitzar algunes de les seues funcions.<br>Pots obtindre els fitxers amb la <a href=https://github.com/azahar-emu/ArticSetupTool>ferramenta de configuració Azahar</a><br>Notes:<ul><li><b>Aquesta operació instal·larà fitxers únics de la consola a Azahar, no compartisques les teues carpetes d'usuari o nand<br>després de completar el procés de configuració!</b></li><li>Després de la configuració, Azahar s'enllaçarà a la consola que ha executat la ferramenta de configuració. Pots desvincular la<br>consola més tard des de la pestanya "Fitxers de sistema" del menú d'opcions de l'emulador.</li><li>No et connectes en línia amb Azahar i la consola 3DS al mateix temps després de configurar els arxius del sistema,<br>ja que això podria causar problemes.</li><li>La configuració de Old 3DS és necessària perquè funcione la configuració de New 3DS (configurar els dos modes és recomanat).</li><li>Els dos modes de configuració funcionaran independentment del model de la consola que execute la ferramenta de configuració.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:Introduïx la direcció de la ferramenta de configuració:
-
+ <br>Choose setup mode:<br>Tria mode de configuració:
-
+ (ℹ️) Old 3DS setup(ℹ️) Configuració Old 3DS
-
-
+
+ Setup is possible.La configuració és possible.
-
+ (⚠) New 3DS setup(⚠) Configuració New 3DS
-
+ Old 3DS setup is required first.La configuració Old 3DS es neccessaria abans.
-
+ (✅) Old 3DS setup(✅) Configuració Old 3DS
-
-
+
+ Setup completed.Configuració completada.
-
+ (ℹ️) New 3DS setup(ℹ️) Configuració New 3DS
-
+ (✅) New 3DS setup(✅) Configuració New 3DS
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?Els fitxers de sistema per al mode seleccionat ja estan configurats.
Vols reinstal·lar els arxius de totes maneres?
-
+ Load FilesCarregar Fitxers
-
+ 3DS Installation File (*.cia *.zcia)Fitxers d'Instalació de 3DS (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Tots els fitxers (*.*)
-
+ Connect to Artic BaseConnectar amb Artic Base
-
+ Enter Artic Base server address:Introduïx la direcció del servidor Artic Base
-
+ %1 has been installed successfully.%1 s'ha instal·lat amb èxit.
-
+ Unable to open FileNo es va poder obrir el Fitxer
-
+ Could not open %1No es va poder obrir %1
-
+ Installation abortedInstal·lació interrompuda
-
+ The installation of %1 was aborted. Please see the log for more detailsLa instal·lació de %1 ha sigut avortada.\n Per favor, mira el log per a més informació.
-
+ Invalid FileFitxer no vàlid
-
+ %1 is not a valid CIA%1 no és un CIA vàlid.
-
+ CIA EncryptedCIA encriptat
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>El teu fitxer CIA està encriptat. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Per favor visita el nostre blog per a més informació.</a>
-
+ Unable to find FileNo es pot trobar el Fitxer
-
+ Could not find %1No es va poder trobar %1
-
-
-
- Error compressing file
- Error al comprimir el fitxer
+
+
+
+
+ Z3DS Compression
+
-
- File compress operation failed, check log for details.
- Operació de compressió fallida, mira el registre per a més detalls.
+
+ Failed to compress some files, check log for details.
+
-
-
-
- Error decompressing file
- Error de descompressió del fitxer
+
+ Failed to decompress some files, check log for details.
+
-
- File decompress operation failed, check log for details.
- Operació de descompressió fallida, mira el registre per a més detalls.
+
+ All files have been compressed successfully.
+
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...Desinstal·lant '%1'...
-
+ Failed to uninstall '%1'.Va fallar la desinstal·lació de '%1'.
-
+ Successfully uninstalled '%1'.'%1' desinstal·lat amb èxit.
-
+ File not foundFitxer no trobat
-
+ File "%1" not foundFitxer "%1" no trobat
-
+ SavestatesEstats
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4569,86 +4595,86 @@ Use at your own risk!
Usa'ls sota el teu propi risc!
-
-
-
+
+
+ Error opening amiibo data fileError en obrir els fitxers de dades de l'Amiibo
-
+ A tag is already in use.Ja està en ús una etiqueta.
-
+ Application is not looking for amiibos.L'aplicació no està buscant amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Fitxer d'Amiibo (%1);; Tots els arxius (*.*)
-
+ Load AmiiboCarregar Amiibo
-
+ Unable to open amiibo file "%1" for reading.No es va poder obrir el fitxer amiibo "%1" per a la seua lectura.
-
+ Record MovieGravar Pel·lícula
-
+ Movie recording cancelled.Gravació de pel·lícula cancel·lada.
-
-
+
+ Movie SavedPel·lícula Guardada
-
-
+
+ The movie is successfully saved.Pel·lícula guardada amb èxit.
-
+ Application will unpauseL'aplicació es resumirà
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?L'aplicació es resumirà, i el següent fotograma serà capturat. Estàs d'acord?
-
+ Invalid Screenshot DirectoryDirectori de captures de pantalla no vàlid
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.No es pot crear el directori de captures de pantalla. La ruta de captures de pantalla torna al seu valor per omissió.
-
+ Could not load video dumperNo es va poder carregar el bolcador de vídeo
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4661,275 +4687,265 @@ Per a instal·lar FFmpeg en Azahar, polsa Obrir i tria el directori de FFmpeg.
Per a veure una guia sobre com instal·lar FFmpeg, polsa Ajuda.
-
- Load 3DS ROM File
- Carregar ROM de 3DS
+
+ Load 3DS ROM Files
+
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
- Fitxers ROM 3DS (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
+
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
- El fitxer seleccionat no és un ROM de 3DS compatible. Assegura't que has triat el fitxer correcte i que no estiga xifrat.
-
-
-
- The selected file is already compressed.
- El fitxer seleccionat ja està comprimit.
-
-
-
+ 3DS Compressed ROM File (*.%1)Fitxer ROM 3DS comprimit (*.%1)
-
+ Save 3DS Compressed ROM FileDesar fitxer 3DS comprimit
-
- Load 3DS Compressed ROM File
- Carregar fitxer 3DS comprimit
+
+ Select Output 3DS Compressed ROM Folder
+
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)Fitxer ROM 3DS comprimit (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
- El fitxer seleccionat no és un format de ROM 3DS comprimit compatible. Assegura't d'haver triat l'arxiu correcte.
-
-
-
- The selected file is already decompressed.
- El fitxer seleccionat ja està descomprimit.
-
-
-
+ 3DS ROM File (*.%1)Fitxer ROM 3DS (*.%1)
-
+ Save 3DS ROM FileDesar fitxer ROM 3DS
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectorySeleccionar Directori FFmpeg
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.Al directori de FFmpeg indicat li falta %1. Per favor, assegura't d'haver seleccionat el directori correcte.
-
+ FFmpeg has been sucessfully installed.FFmpeg ha sigut instal·lat amb èxit.
-
+ Installation of FFmpeg failed. Check the log file for details.La instal·lació de FFmpeg ha fallat. Comprova l'arxiu del registre per a més detalls.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.No es va poder començar a gravar vídeo.<br>Assegura't que el codificador de vídeo està configurat correctament.<br>Per a més detalls, observa el registre.
-
+ Recording %1Gravant %1
-
+ Playing %1 / %2Reproduint %1 / %2
-
+ Movie FinishedPel·lícula acabada
-
+ (Accessing SharedExtData)(Accedint al SharedExtData)
-
+ (Accessing SystemSaveData)(Accedint al SystemSaveData)
-
+ (Accessing BossExtData)(Accedint al BossExtData)
-
+ (Accessing ExtData)(Accedint al ExtData)
-
+ (Accessing SaveData)(Accedint al SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3Tràfic Artic: %1 %2%3
-
+ Speed: %1%Velocitat: %1%
-
+ Speed: %1% / %2%Velocitat: %1% / %2%
-
+ App: %1 FPSApp: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msFrame: %1 ms
-
+ VOLUME: MUTEVOLUM: SILENCI
-
+ VOLUME: %1%Volume percentage (e.g. 50%)VOLUM: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.Falta %1 . Per favor,<a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>bolca els teus arxius de sistema</a>.<br/>Continuar l'emulació pot resultar en penges i errors.
-
+ A system archiveUn fitxer del sistema
-
+ System Archive Not FoundEl fitxer del sistema no s'ha trobat
-
+ System Archive MissingFalta un Fitxer de Sistema
-
+ Save/load ErrorError de guardat/càrrega
-
+ Fatal ErrorError Fatal
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.Error fatal.<a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Mira el log</a>per a més detalls.<br/>Continuar l'emulació pot resultar en penges i errors.
-
+ Fatal Error encounteredError Fatal trobat
-
+ ContinueContinuar
-
+ Quit ApplicationTancar aplicació
-
+ OKAceptar
-
+ Would you like to exit now?Vols eixir ara?
-
+ The application is still running. Would you like to stop emulation?L'aplicació seguix en execució. Vols parar l'emulació?
-
+ Playback CompletedReproducció Completada
-
+ Movie playback completed.Reproducció de pel·lícula completada.
-
+ Update AvailableActualització disponible
-
+ Update %1 for Azahar is available.
Would you like to download it?L'actualització %1 d'Azahar ja està disponible.
Vols descarregar-la?
-
+ Primary WindowFinestra Primària
-
+ Secondary WindowFinestra Secundària
@@ -5035,175 +5051,190 @@ Vols descarregar-la?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>IMPORTANT: Els fitxers encriptats .3ds ja no són compatibles. Pot ser que siga necessari desencriptar-los o canviar-los de nom a .cci. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Més Informació.</a>
-
+ Don't show againNo tornar a mostrar
-
-
+
+ CompatibilityCompatibilitad
-
-
+
+ RegionRegió
-
-
+
+ File typeTipus de Fitxer
-
-
+
+ SizeGrandària
-
-
+
+ Play timeTemps de joc
-
+ FavoriteFavorit
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenObrir
-
+ Application LocationLocalització d'aplicacions
-
+ Save Data LocationLocalització de dades de guardat
-
+ Extra Data LocationLocalització de Dades Extra
-
+ Update Data LocationLocalització de dades d'actualització
-
+ DLC Data LocationLocalització de dades de DLC
-
+ Texture Dump LocationLocalització del bolcat de textures
-
+ Custom Texture LocationLocalització de les textures personalitzades
-
+ Mods LocationLocalització dels mods
-
+ Dump RomFSBolcar RomFS
-
+ Disk Shader CacheCaché de ombrejador de disc
-
+ Open Shader Cache LocationObrir ubicació de cache de ombrejador
-
+ Delete OpenGL Shader CacheEliminar cache d'ombreig de OpenGL
-
+ UninstallDesinstal·lar
-
+ EverythingTot
-
+ ApplicationAplicació
-
+ UpdateActualitzar
-
+ DLCDLC
-
+ Remove Play Time DataLlevar Dades de Temps de Joc
-
+ Create ShortcutCrear drecera
-
+ Add to DesktopAfegir a l'escriptori
-
+ Add to Applications MenuAfegir al Menú d'Aplicacions
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesPropietats
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5212,64 +5243,64 @@ This will delete the application if installed, as well as any installed updates
Aixó eliminarà l'aplicació si està instal·lada, així com també les actualitzacions i DLC instal·lades.
-
-
+
+ %1 (Update)%1 (Actualització)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Estàs segur de voler desinstal·lar '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?Estàs segur de voler desinstal·lar l'actualització de '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?Estàs segur de voler desinstal·lar tot el DLC de '%1'?
-
+ Scan SubfoldersEscanejar subdirectoris
-
+ Remove Application DirectoryEliminar directori d'aplicacions
-
+ Move UpMoure a dalt
-
+ Move DownMoure avall
-
+ Open Directory LocationObrir ubicació del directori
-
+ ClearReiniciar
-
+ NameNom
@@ -5277,77 +5308,77 @@ Aixó eliminarà l'aplicació si està instal·lada, així com també les a
GameListItemCompat
-
+ PerfectPerfecte
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.L'aplicació funciona impecablement, sense falles d'àudio ni gràfiques; totes les funcions provades funcionen com s'espera, sense necessitat de solucions alternatives.
-
+ GreatExcel·lent
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.L'aplicació funciona amb xicotetes fallades gràfiques o d'àudio i es pot jugar de principi a fi. Pot requerir algunes solucions alternatives.
-
+ OkayBé
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.L'aplicació funciona amb importants fallades gràfiques o d'àudio, però es pot jugar de principi a fi amb solucions alternatives.
-
+ BadMal
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.L'aplicació funciona, però presenta importants fallades gràfiques o d'àudio. No es pot avançar en unes certes àrees a causa de fallades, fins i tot amb solucions alternatives.
-
+ Intro/MenuIntro/Menú
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.L'aplicació no es pot jugar per complet a causa d'importants fallades gràfiques o d'àudio. No es pot avançar més enllà de la pantalla d'inici.
-
+ Won't BootNo inicia
-
+ The app crashes when attempting to startup.L'aplicació es bloqueja en intentar iniciar-se.
-
+ Not TestedSense provar
-
+ The app has not yet been tested.L'aplicació no s'ha provat encara.
@@ -5355,7 +5386,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listFaça doble clic per a agregar una nova carpeta a la llista d'aplicacions
@@ -5363,27 +5394,27 @@ Screen.
GameListSearchField
-
+ ofde
-
+ resultresultat
-
+ resultsresultats
-
+ Filter:Filtre:
-
+ Enter pattern to filterIntroduïx un patró per a filtrar
@@ -5711,87 +5742,87 @@ Screen.
Índex de Cicle:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Registres d'Adreça: %1, %2
-
+ Compare Result: %1, %2
Comparar Resultats: %1, %2
-
+ Static Condition: %1
Condició Estàtica: %1
-
+ Dynamic Conditions: %1, %2
Condicions Dinàmiques: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Paràmetres de Bucle: %1 (repeticions), %2 (inicialitzador), %3 (incremental), %4
-
+ Instruction offset: 0x%1Instrucció offset: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(última instrucció)
@@ -6092,32 +6123,32 @@ Missatge de depuració:
Contrasenya:
-
+ Room NameNom de la Sala
-
+ Preferred ApplicationAplicació preferida
-
+ HostHost
-
+ PlayersJugadors
-
+ RefreshingActualitzant
-
+ Refresh ListActualitzar Llista
@@ -7119,32 +7150,32 @@ Pot ser que haja deixat la sala.
%1 (0x%2)
-
+ Unsupported encrypted applicationAplicació cifrada no suportada
-
+ Invalid regionRegió no vàlida
-
+ Installed TitlesTítols Instal·lats
-
+ System TitlesTítols de Sistema
-
+ Add New Application DirectoryAgregar nova carpeta d'aplicacions
-
+ FavoritesFavorits
diff --git a/dist/languages/da_DK.ts b/dist/languages/da_DK.ts
index 60b8aba1e..fb88846ab 100644
--- a/dist/languages/da_DK.ts
+++ b/dist/languages/da_DK.ts
@@ -29,7 +29,7 @@
<html><head/><body><p><img src=":/icons/default/256x256/azahar.png"/></p></body></html>
-
+ <html><head/><body><p><img src=":/icons/default/256x256/azahar.png"/></p></body></html>
@@ -298,8 +298,8 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
- Emulation:
- Emulering:
+ Emulation
+ Emulering
@@ -403,6 +403,7 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
+ CameraKamera
@@ -414,8 +415,8 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
- Camera to configure:
- Konfigurer kamera:
+ Camera to Configure
+ Konfigurer kamera
@@ -435,8 +436,8 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
- Camera mode:
- Kameratilstand:
+ Camera mode
+ Kameratilstand
@@ -456,8 +457,8 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
- Camera position:
- Kameraposition:
+ Camera position
+ Kameraposition
@@ -482,8 +483,8 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
- Camera Image Source:
- Kilde til kameraets billede
+ Camera Image Source
+
@@ -502,8 +503,8 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
- File:
- Fil:
+ File
+
@@ -516,11 +517,6 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
Select the system camera to useVælg kamera fra systemet, der skal bruges
-
-
- Camera:
- Kamera:
- <Default>
@@ -534,8 +530,8 @@ Dette vil udelukke både deres forum-brugernavn og IP-adresse.
- Flip:
- Vending:
+ Flip
+
@@ -1024,7 +1020,7 @@ Vil du ignorere fejlen og fortsætte?
Enable Linear Filtering
- Aktiverer lineær filtrering
+
@@ -1088,8 +1084,8 @@ Vil du ignorere fejlen og fortsætte?
- Reverse Side by Side
- Omvendt side om side
+ Side by Side Full Width
+
@@ -1139,7 +1135,7 @@ Vil du ignorere fejlen og fortsætte?
Disable Right Eye Rendering
- Deaktiver højre øje-gengivelse
+
@@ -1147,48 +1143,53 @@ Vil du ignorere fejlen og fortsætte?
<html><head/><body><p>Deaktiver højre øje-gengivelse</p><p>Deaktiverer gengivelse af højre øje billede, når der ikke bruges stereoskopisk tilstand. Forbedrer ydeevnen betydeligt i nogle applikationer, men kan forårsage flimren i andre.</p></body></html>
-
+
+ Swap Eyes
+
+
+
+ UtilityVærktøj
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Erstat teksturer med PNG-filer.</p><p>Teksturer indlæses fra load/textures/[Titel ID]/.</p></body></html>
-
- Use Custom Textures
- Brug brugerdefinerede teksturer
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump textures
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom textures
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading
@@ -1246,12 +1247,12 @@ Vil du ignorere fejlen og fortsætte?
- Set emulation speed:
+ Set emulation speed
- Emulation Speed:
+ Emulation Speed
@@ -1363,12 +1364,12 @@ Vil du ignorere fejlen og fortsætte?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1388,8 +1389,8 @@ Vil du ignorere fejlen og fortsætte?
- Enable Hardware Shader
- Aktiver hardware-shader
+ Enable hardware shader
+
@@ -1398,8 +1399,8 @@ Vil du ignorere fejlen og fortsætte?
- Accurate Multiplication
- Akkurat multiplikation
+ Accurate multiplication
+
@@ -1408,8 +1409,8 @@ Vil du ignorere fejlen og fortsætte?
- Enable Shader JIT
- Aktiver shader-JIT
+ Enable shader JIT
+
@@ -1418,7 +1419,7 @@ Vil du ignorere fejlen og fortsætte?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1428,7 +1429,7 @@ Vil du ignorere fejlen og fortsætte?
- Enable Async Presentation
+ Enable async presentation
@@ -1468,7 +1469,7 @@ Vil du ignorere fejlen og fortsætte?
- Use Disk Shader Cache
+ Use disk shader cache
@@ -1493,7 +1494,7 @@ Vil du ignorere fejlen og fortsætte?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1982,12 +1983,12 @@ Vil du ignorere fejlen og fortsætte?
- Swap Screens
- Byt om på skærme
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2104,7 +2105,7 @@ Vil du ignorere fejlen og fortsætte?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2452,7 +2453,7 @@ Vil du ignorere fejlen og fortsætte?
- Use Virtual SD
+ Use virtual SD card
@@ -2462,7 +2463,7 @@ Vil du ignorere fejlen og fortsætte?
- Use Custom Storage
+ Use custom storage location
@@ -2549,8 +2550,8 @@ online features (if installed)
- Region:
-
+ Region
+ Region
@@ -2558,326 +2559,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameBrugernavn
-
+ BirthdayFødselsdag
-
+ JanuaryJanuar
-
+ FebruaryFebruar
-
+ MarchMarts
-
+ AprilApril
-
+ MayMaj
-
+ JuneJuni
-
+ JulyJuli
-
+ AugustAugust
-
+ SeptemberSeptember
-
+ OctoberOktober
-
+ NovemberNovember
-
+ DecemberDecember
-
+ LanguageSprog
-
+ Note: this can be overridden when region setting is auto-selectBemærk: Dette kan bliver overstyret når regionsindstillingen er sat til automatisk at vælge
-
+ Japanese (日本語)Japansk (日本語)
-
+ EnglishEngelsk
-
+ French (français)Fransk (français)
-
+ German (Deutsch)Tysk (Deutsch)
-
+ Italian (italiano)Italiensk (italiano)
-
+ Spanish (español)Spansk (español)
-
+ Simplified Chinese (简体中文)Forenklet kinesisk (简体中文)
-
+ Korean (한국어)Koreansk (한국어)
-
+ Dutch (Nederlands)Hollandsk (Nederlands)
-
+ Portuguese (português)Portugisisk (português)
-
+ Russian (Русский)Russisk (Русский)
-
+ Traditional Chinese (正體中文)Traditionel kinesisk (正體中文)
-
+ Sound output modeTilstand til lydoutput
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryLand
-
+ ClockTid
-
+ System ClockSystemtid
-
+ Fixed TimeFast tid
-
+ Startup timeOpstartstid
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:Konsol-id:
-
-
+
+ RegenerateGenerer nyt
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3587,76 +3599,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1Konsol-id: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningAdvarsel
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3771,13 +3783,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Grænsefladesprog:
+ Interface Language
+
- Theme:
- Tema:
+ Theme
+
@@ -3786,8 +3798,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- Ikonstørrelse
+ Icon Size
+
@@ -3807,8 +3819,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- Tekst på række 1:
+ Row 1 Text
+
@@ -3842,17 +3854,17 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- Tekst på række 2:
+ Row 2 Text
+
- Hide Titles without Icon
- Skjul titler uden ikon
+ Hide titles without icon
+
- Single Line Mode
+ Single line mode
@@ -3862,7 +3874,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3945,12 +3957,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingForbinder
-
+ ConnectForbind
@@ -4069,581 +4081,595 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Nuværende emuleringshastighed. Værdier højere eller lavere end 100% indikerer at emuleringen kører hurtigere eller langsommere end en 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Tid det tog at emulere en 3DS-skærmbillede, hastighedsbegrænsning og v-sync er tille talt med. For emulering med fuld hastighed skal dette højest være 16,67ms.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesRyd seneste filer
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usageCIA skal installeres før brug
-
+ Before using this CIA, you must install it. Do you want to install it now?Før du kan bruge denne CIA, skal den være installeret. Vil du installere den nu?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 FolderFejl ved åbning af %1-mappen
-
-
+
+ Folder does not exist!Mappen findes ikke!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...
-
-
+
+ CancelAnnuller
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.
-
+ Error Opening %1Fejl ved åbning af %1
-
+ Select DirectoryVælg mappe
-
+ Properties
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS-program (%1);;Alle filer (*.*)
-
+ Load FileIndlæs fil
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesIndlæs filer
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Alle filer (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 blev succesfuldt installeret.
-
+ Unable to open FileKunne ikke åbne filen
-
+ Could not open %1Kunne ikke åbne %1
-
+ Installation abortedInstallation afbrudt
-
+ The installation of %1 was aborted. Please see the log for more detailsInstallationen af %1 blev afbrudt. Se logfilen for flere detaljer.
-
+ Invalid FileUgyldig fil
-
+ %1 is not a valid CIA%1 er ikke en gyldig CIA
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.
-
+ File not foundFilen blev ikke fundet
-
+ File "%1" not foundFilen "%1" blev ikke fundet
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo-fil (%1);;Alle filer (*.*)
-
+ Load AmiiboIndlæs Amiibo
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieOptag film
-
+ Movie recording cancelled.Filmoptagelse afbrudt
-
-
+
+ Movie SavedFilm gemt
-
-
+
+ The movie is successfully saved.Filmen er succesfuldt blevet gemt.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4652,274 +4678,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Hastighed: %1%
-
+ Speed: %1% / %2%Hastighed: %1%/%2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msBillede: %1ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archive
-
+ System Archive Not FoundSystemarkiver blev ikke fundet
-
+ System Archive Missing
-
+ Save/load Error
-
+ Fatal ErrorAlvorlig fejl
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encountered
-
+ ContinueFortsæt
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Vil du afslutte nu?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedAfspilning færdig
-
+ Movie playback completed.Afspilning af filmen er færdig.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5025,239 +5041,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilityKompatibilitet
-
-
+
+ RegionRegion
-
-
+
+ File typeFiltype
-
-
+
+ SizeStørrelse
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ Properties
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan SubfoldersSkan undermapper
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory LocationÅbn mappens placering
-
+ ClearRyd
-
+ NameNavn
@@ -5265,77 +5296,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectPerfekt
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatGod
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayOkay
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadDårlig
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuIntro/menu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootKører ikke
-
+ The app crashes when attempting to startup.
-
+ Not TestedIkke testet
-
+ The app has not yet been tested.
@@ -5343,7 +5374,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5351,27 +5382,27 @@ Screen.
GameListSearchField
-
+ ofaf
-
+ resultresultat
-
+ resultsresultater
-
+ Filter:Filter:
-
+ Enter pattern to filterIndtast mønster til filtrering
@@ -5699,87 +5730,87 @@ Screen.
Cycle-indeks:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Adresseregistre: %1, %2
-
+ Compare Result: %1, %2
Sammenlign resultat: %1, %2
-
+ Static Condition: %1
Statisk betingelse: %1
-
+ Dynamic Conditions: %1, %2
Dynamisk betingelse: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Loopparametre: %1 (gentager), %2 (initialisering), %3 (interval), %4
-
+ Instruction offset: 0x%1Instruktionsoffset: 0x%1
-
+ -> 0x%2-> 0x%2
-
+ (last instruction)(sidste instruktion)
@@ -6078,32 +6109,32 @@ Debug Message:
Adgangskode:
-
+ Room NameRumnavn
-
+ Preferred Application
-
+ HostVært
-
+ PlayersSpillere
-
+ RefreshingGenopfrisker
-
+ Refresh ListGenopfrisk liste
@@ -6604,7 +6635,7 @@ Debug Message:
File:
- Fil:
+
@@ -6696,7 +6727,7 @@ Debug Message:
File:
- Fil:
+
@@ -7102,32 +7133,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionUgyldig region
-
+ Installed Titles
-
+ System Titles
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/de.ts b/dist/languages/de.ts
index 56ec17464..b579092ef 100644
--- a/dist/languages/de.ts
+++ b/dist/languages/de.ts
@@ -298,8 +298,8 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
- Emulation:
- Emulation:
+ Emulation
+ Emulation
@@ -403,6 +403,7 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
+ CameraKamera
@@ -414,8 +415,8 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
- Camera to configure:
- Zu konfigurierende Kamera:
+ Camera to Configure
+
@@ -435,8 +436,8 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
- Camera mode:
- Kameramodus:
+ Camera mode
+
@@ -456,8 +457,8 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
- Camera position:
- Kameraposition:
+ Camera position
+
@@ -482,8 +483,8 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
- Camera Image Source:
- Kamera-Bildquelle:
+ Camera Image Source
+
@@ -502,8 +503,8 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
- File:
- Datei:
+ File
+ Datei
@@ -516,11 +517,6 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
Select the system camera to useWähle die zu nutzende Systemkamera aus
-
-
- Camera:
- Kamera:
- <Default>
@@ -534,8 +530,8 @@ Dies bannt sowohl den Forum-Nutzernamen, als auch die IP-Adresse.
- Flip:
- Spiegelung:
+ Flip
+
@@ -1024,7 +1020,7 @@ Möchtest du den Fehler ignorieren und fortfahren?
Enable Linear Filtering
- Aktiviere lineare Filterung
+
@@ -1088,8 +1084,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Reverse Side by Side
- Invers Nebeneinander
+ Side by Side Full Width
+
@@ -1139,7 +1135,7 @@ Möchtest du den Fehler ignorieren und fortfahren?
Disable Right Eye Rendering
- Rendering für das rechte Auge deaktivieren
+
@@ -1147,49 +1143,54 @@ Möchtest du den Fehler ignorieren und fortfahren?
<html><head/><body><p>Deaktiviert die Darstellung des Bildes für das rechte Auge</p><p>Deaktiviert die Darstellung des Bildes für das rechte Auge, wenn der stereoskopische Modus nicht verwendet wird. Verbessert die Leistung in einigen Anwendungen erheblich, kann aber bei anderen Flackern verursachen. </p></body></html>
-
+
+ Swap Eyes
+
+
+
+ UtilityDienstprogramm
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Ersetze Texturen mit PNG-Dateien.</p><p>Texturen werden von „load/textures/[Title-ID]/“ geladen.</p></body></html>
-
- Use Custom Textures
- Benutzerdefinierte Texturen nutzen
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Dumpe Texturen als PNG-Datei.</p><p>Texturen werden unter „dump/textures/[Title-ID]/“ gedumpt.</p></body></html>
-
- Dump Textures
- Texturen dumpen
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Lädt alle benutzerdefinierten Texturen beim Start in den Speicher, anstatt sie erst zu laden wenn die Anwendung sie benötigt.</p></body></html>
-
- Preload Custom Textures
- Benutzerdefinierte Texturen im Voraus laden
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Lädt alle benutzerdefinierten Texturen asynchron mit Hintergrund-Threads, um das Stottern beim Laden zu reduzieren</p></body></html>
-
- Async Custom Texture Loading
- Benutzerdefinierte Texturen asynchron laden
+
+ Async custom texture loading
+
@@ -1246,13 +1247,13 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Set emulation speed:
- Emulationsgeschwindigkeit festlegen:
+ Set emulation speed
+
- Emulation Speed:
- Emulationsgeschwindigkeit:
+ Emulation Speed
+
@@ -1363,13 +1364,13 @@ Möchtest du den Fehler ignorieren und fortfahren?
- SPIR-V Shader Generation
- SPIR-V-Shader-Erzeugung
+ SPIR-V shader generation
+
- Disable GLSL -> SPIR-V Optimizer
- Deaktiviere GLSL -> SPIR-V Optimierer
+ Disable GLSL -> SPIR-V optimizer
+
@@ -1388,8 +1389,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Enable Hardware Shader
- Hardware-Shader aktivieren
+ Enable hardware shader
+
@@ -1398,8 +1399,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Accurate Multiplication
- Genaue Multiplikation
+ Accurate multiplication
+
@@ -1408,8 +1409,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Enable Shader JIT
- JIT-Shader aktivieren
+ Enable shader JIT
+
@@ -1418,8 +1419,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Enable Async Shader Compilation
- Aktiviere asynchrone Shader-Kompilierung
+ Enable async shader compilation
+
@@ -1428,8 +1429,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Enable Async Presentation
- Aktiviere asynchrone Präsentation
+ Enable async presentation
+
@@ -1468,8 +1469,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Use Disk Shader Cache
- Shader-Cache nutzen
+ Use disk shader cache
+
@@ -1493,8 +1494,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Delay application render thread:
- Verzögere Anwendungsrender-Thread:
+ Delay Application Render Thread
+
@@ -1982,13 +1983,13 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Swap Screens
- Bildschirme tauschen
+ Swap screens
+
- Rotate Screens Upright
- Bildschirme aufrecht rotieren
+ Rotate screens upright
+
@@ -2104,8 +2105,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Untere Bildschirmdeckkraft % (Nur OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+
@@ -2452,8 +2453,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Use Virtual SD
- Virtuelle SD-Karte benutzen
+ Use virtual SD card
+
@@ -2462,8 +2463,8 @@ Möchtest du den Fehler ignorieren und fortfahren?
- Use Custom Storage
- Benutzerdefinierten Speicher nutzen
+ Use custom storage location
+
@@ -2550,8 +2551,8 @@ Online-Funktionen (sofern installiert)
- Region:
- Region:
+ Region
+ Region
@@ -2559,326 +2560,337 @@ Online-Funktionen (sofern installiert)
Automatisch auswählen
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameNutzername
-
+ BirthdayGeburtstag
-
+ JanuaryJanuar
-
+ FebruaryFebruar
-
+ MarchMärz
-
+ AprilApril
-
+ MayMai
-
+ JuneJuni
-
+ JulyJuli
-
+ AugustAugust
-
+ SeptemberSeptember
-
+ OctoberOktober
-
+ NovemberNovember
-
+ DecemberDezember
-
+ LanguageSprache
-
+ Note: this can be overridden when region setting is auto-selectHinweis: Dies kann überschrieben werden, wenn als Region „Automatisch auswählen“ eingestellt wurde.
-
+ Japanese (日本語)Japanisch (日本語)
-
+ EnglishEnglisch
-
+ French (français)Französisch (français)
-
+ German (Deutsch)Deutsch (German)
-
+ Italian (italiano)Italienisch (italiano)
-
+ Spanish (español)Spanisch (español)
-
+ Simplified Chinese (简体中文)Vereinfachtes Chinesisch (简体中文)
-
+ Korean (한국어)Koreanisch (한국어)
-
+ Dutch (Nederlands)Niederländisch (Nederlands)
-
+ Portuguese (português)Portugiesisch (português)
-
+ Russian (Русский)Russisch (Русский)
-
+ Traditional Chinese (正體中文)Traditionelles Chinesisch (正體中文)
-
+ Sound output modeTonausgabemodus
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryLand
-
+ ClockUhr
-
+ System ClockSystemuhr
-
+ Fixed TimeFeste Zeit
-
+ Startup timeZum Start benötigte Zeit
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset timeVersetzte Zeit
-
+ daysTage
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksAnfängliche System-Ticks
-
+ RandomZufall
-
+ FixedFestgelegt
-
+ Initial System Ticks OverrideAnfängliche System-Ticks überschreiben
-
+ Play CoinsSpielemünzen
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>Die Anzahl der Schritte pro Stunde, die vom Schrittzähler gemeldet wird, liegt im Bereich von 0 bis 65.535</p></body></html>
-
+ Pedometer Steps per HourSchrittzähler-Schritte pro Stunde
-
+ Run System Setup when Home Menu is launchedSystemeinrichtung ausführen, wenn das HOME-Menü gestartet wird
-
+ Console ID:Konsolen-ID:
-
-
+
+ RegenerateWiederherstellen
-
+ MAC:MAC:
-
- 3GX Plugin Loader:
- 3GX-Plugin-Lader:
+
+ 3GX Plugin Loader
+
-
+ Enable 3GX plugin loader3GX-Plugin-Loader aktivieren
-
+ Allow applications to change plugin loader stateErlaube Anwendungen, den Status des Plug-In-Loaders zu ändern
-
+ Real Console Unique DataEinzigartige, echte Konsolendaten
-
+ Your real console is linked to Azahar.Deine echte Konsole ist mit Azahar verknüpft.
-
+ UnlinkVerknüpfung aufheben
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseAuswählen
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.Systemeinstellungen sind nur verfügbar, wenn Anwendungen nicht ausgeführt werden.
@@ -3588,76 +3600,76 @@ Online-Funktionen (sofern installiert)
Sed-Datei (*.sed)::Alle Dateien (*.*)
-
-
+
+ Console ID: 0x%1Konsolen-ID: 0x%1
-
-
+
+ MAC: %1MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?Dadurch wird deine aktuelle virtuelle 3DS-Konsolen-ID durch eine neue ersetzt. Deine aktuelle virtuelle 3DS-Konsolen-ID kann nicht wiederhergestellt werden. Dies kann unerwartete Auswirkungen auf Anwendungen haben. Dies kann fehlschlagen, wenn du eine veraltete Konfigurationsspeicherung verwendest. Fortfahren?
-
-
-
+
+
+ WarningWarnung
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Dadurch wird deine aktuelle MAC-Adresse durch eine neue ersetzt. Dies wird nicht empfohlen, wenn du die MAC-Adresse mithilfe des Setup-Tools von deiner echten Konsole erhalten hast. Fortfahren?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?Dadurch wird die Verknüpfung zwischen Azahar und deiner echten Konsole getrennt, was folgendes bedeutet:<br><ul><li>Dein OTP, SecureInfo und LocalFriendCodeSeed werden von Azahar entfernt.</li><li>Deine Freundesliste wird zurückgesetzt und du wirst aus deinem NNID/PNID Account abgemeldet.</li><li>Systemdateien und eShop-Titel, die durch Azahar erhalten wurden, werden unzugänglich, bis die Konsole wieder verknüpft wird (Speicherdaten gehen nicht verloren).</li></ul><br>Forfahren?
-
+ Invalid country for configured regionUngültiges Land für die eingestellte Region
-
+ Invalid country for console unique data
- Ungültiges Land für die einzigartigen Konsolendaten
+ Ungültiges Land für die konsolenspezifischen Daten
-
+ Status: LoadedStatus: Geladen
-
+ Status: Loaded (Invalid Signature)Status: Geladen (Ungültige Signatur)
-
+ Status: Loaded (Region Changed)Status: Geladen (Region geändert)
-
+ Status: Not FoundStatus: Nicht gefunden
-
+ Status: InvalidStatus: Ungültig
-
+ Status: IO ErrorStatus: I/O-Fehler
@@ -3773,13 +3785,13 @@ Ziehe Punkte, um ihre Position zu verändern, oder doppelklicke auf Zellen in de
- Interface language:
- Oberflächensprache
+ Interface Language
+
- Theme:
- Design:
+ Theme
+
@@ -3788,8 +3800,8 @@ Ziehe Punkte, um ihre Position zu verändern, oder doppelklicke auf Zellen in de
- Icon Size:
- Icongröße:
+ Icon Size
+
@@ -3809,8 +3821,8 @@ Ziehe Punkte, um ihre Position zu verändern, oder doppelklicke auf Zellen in de
- Row 1 Text:
- Zeile 1-Text:
+ Row 1 Text
+
@@ -3844,18 +3856,18 @@ Ziehe Punkte, um ihre Position zu verändern, oder doppelklicke auf Zellen in de
- Row 2 Text:
- Zeile 2-Text:
+ Row 2 Text
+
- Hide Titles without Icon
- Titel ohne Icon verbergen
+ Hide titles without icon
+
- Single Line Mode
- Einzeiliger Modus
+ Single line mode
+
@@ -3864,8 +3876,8 @@ Ziehe Punkte, um ihre Position zu verändern, oder doppelklicke auf Zellen in de
- Show Advanced Frame Time Info
- Zeige detaillierte Frame-Zeit Info
+ Show advanced frame time info
+
@@ -3947,12 +3959,12 @@ Ziehe Punkte, um ihre Position zu verändern, oder doppelklicke auf Zellen in de
DirectConnectWindow
-
+ ConnectingVerbindevorgang...
-
+ ConnectVerbunden
@@ -4072,497 +4084,511 @@ Bitte überprüfe deine FFmpeg-Installation, die für die Kompilierung verwendet
GMainWindow
-
+ No Suitable Vulkan Devices DetectedKeine geeigneten Vulkan-Geräte gefunden
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.Vulkan-Initialisierung beim Starten fehlgeschlagen.<br/>Deine Grafikkarte unterstützt möglicherweise „Vulkan 1.1“ nicht, oder ist nicht auf dem aktuellsten Stand.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.Aktuelle Artic Daten-Verkehrsgeschwindigkeit. Höhere Werte weisen auf größere Übertragungslasten hin.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Derzeitige Emulationsgeschwindigkeit. Werte höher oder niedriger als 100% zeigen, dass die Emulation schneller oder langsamer läuft als auf einem 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.Wie viele Bilder pro Sekunde die App aktuell anzeigt. Dies ist von App zu App und von Szene zu Szene unterschiedlich.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Die benötigte Zeit um ein 3DS-Einzelbild zu emulieren (V-Sync oder Bildratenbegrenzung nicht mitgezählt). Bei Echtzeitemulation sollte dieser Wert höchstens 16,67ms betragen.
-
+ MicroProfile (unavailable)MicroProfile (Nicht verfügbar)
-
+ Clear Recent FilesZuletzt verwendete Dateien zurücksetzen
-
+ &Continue&Fortsetzen
-
+ &Pause&Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar führt eine Anwendung aus
-
-
+
+ Invalid App FormatFalsches App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Dein App-Format wird nicht unterstützt. <br/>Bitte folge den Anleitungen um deine <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>Spielkarten</a> oder <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installierten Titel</a> erneut zu dumpen.
-
+ App CorruptedAnwendung beschädigt
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Deine App ist beschädigt. <br/>Folge bitte den Anleitungen um deine <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>Spielkarten</a> oder <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installierten Titel</a> erneut zu dumpen.
-
+ App EncryptedAnwendung verschlüsselt
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Deine App ist verschlüsselt. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Bitte lies unseren Blog für weitere Informationen.</a>
-
+ Unsupported AppNicht unterstützte Anwendung
-
+ GBA Virtual Console is not supported by Azahar.GBA Virtual Console wird nicht von Azahar unterstützt
-
-
+
+ Artic ServerArtic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!Fehler beim Laden der Anwendung!
-
+ An unknown error occurred. Please see the log for more details.Ein unbekannter Fehler ist aufgetreten. Mehr Details im Protokoll.
-
+ CIA must be installed before usageCIA muss vor der Benutzung installiert sein
-
+ Before using this CIA, you must install it. Do you want to install it now?Vor dem Nutzen dieser CIA muss sie installiert werden. Soll dies jetzt getan werden?
-
+ Quick LoadSchnellladen
-
+ Quick SaveSchnellspeichern
-
-
+
+ Slot %1Speicherplatz %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Schnellspeichern - %1
-
+ Quick Load - %1Schnellladen - %1
-
+ Slot %1 - %2 %3Speicherplatz %1 - %2 %3
-
+ Error Opening %1 FolderFehler beim Öffnen des Ordners %1
-
-
+
+ Folder does not exist!Ordner existiert nicht!
-
+ Remove Play Time DataSpielzeitdaten löschen
-
+ Reset play time?Spielzeit zurücksetzen
-
-
-
-
+
+
+
+ Create ShortcutVerknüpfung erstellen
-
+ Do you want to launch the application in fullscreen?Möchtest du die Anwendung in Vollbild starten?
-
+ Successfully created a shortcut to %1Es wurde erfolgreich eine Verknüpfung für %1 erstellt
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Dadurch wird eine Verknüpfung zum aktuellen AppImage erstellt. Dies funktioniert möglicherweise nicht mehr richtig, wenn du aktualisierst. Möchtest du fortfahren?
-
+ Failed to create a shortcut to %1Es konnte keine Verknüpfung für %1 erstellt werden
-
+ Create IconIcon erstellen
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.Es konnte kein Icon-Pfad erstellt werden. „%1“ existiert nicht, oder kann nicht erstellt werden.
-
+ Dumping...Dumpvorgang...
-
-
+
+ CancelAbbrechen
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Konnte Base-RomFS nicht dumpen.
Schau im Protokoll für weitere Informationen nach.
-
+ Error Opening %1Fehler beim Öffnen von %1
-
+ Select DirectoryVerzeichnis auswählen
-
+ PropertiesEigenschaften
-
+ The application properties could not be loaded.Die Anwendungseigenschaften konnten nicht geladen werden.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS Programmdatei (%1);;Alle Dateien (*.*)
-
+ Load FileDatei laden
-
-
+
+ Set Up System FilesSystemdateien einrichten
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>Azahar benötigt Konsolendaten und Firmware-Dateien von einer echten Konsole, um einige Funktionen nutzen zu können. <br>Du kannst solche Dateien mit dem <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Einrichtungs-Tool</a> einrichten.<br>Hinweise:<ul><li><b>Bei diesem Vorgang werden konsolenspezifische Dateien in Azahar installiert. Gib deine Benutzer- oder NAND-Ordner nicht frei, <br>nachdem der Einrichtungsvorgang durchgeführt wurde!</b></li><li>Während des Einrichtungsvorgangs verknüpft Azahar deine Konsole mit dem Einrichtungstool. Du kannst die Verknüpfung <br>jederzeit im „Systemdateien“-Reiter in den Emulatoreinstellungen trennen.</li><li>Gehe nicht zeitgleich mit deinem eigenen 3DS und Azahar online, <br>da dies sonst zu Problemen führen könnte.</li><li>Damit die New 3DS-Einrichtung funktioniert, ist zuerst eine Old 3DS-Einrichtung erforderlich (Es wird empfohlen, beides einzurichten).</li><li>Beide Setup-Modi funktionieren unabhängig vom Modell der Konsole, auf dem das Setup-Tool ausgeführt wird.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:Gib die Adresse des Azahar Artic Einrichtung-Tools ein:
-
+ <br>Choose setup mode:<br>Wähle den Einrichtungsmodus:
-
+ (ℹ️) Old 3DS setup(ℹ️) Old 3DS-Einrichtung
-
-
+
+ Setup is possible.Einrichtung ist möglich.
-
+ (⚠) New 3DS setup(⚠) New 3DS-Einrichtung
-
+ Old 3DS setup is required first.Du musst zuerst die Old 3DS-Einrichtung abschließen.
-
+ (✅) Old 3DS setup(✅) Old 3DS-Einrichtung
-
-
+
+ Setup completed.Einrichtung abgeschlossen
-
+ (ℹ️) New 3DS setup(ℹ️) New 3DS-Einrichtung
-
+ (✅) New 3DS setup(✅) New 3DS-Einrichtung
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?Die Systemdateien für den ausgewählten Modus sind bereits eingerichtet.
Die Dateien trotzdem neu installieren?
-
+ Load FilesDateien laden
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Alle Dateien (*.*)
-
+ Connect to Artic BaseVerbinde dich mit Artic-Base
-
+ Enter Artic Base server address:Gib die Artic-Base-Serveradresse ein
-
+ %1 has been installed successfully.%1 wurde erfolgreich installiert.
-
+ Unable to open FileDatei konnte nicht geöffnet werden
-
+ Could not open %1Konnte %1 nicht öffnen
-
+ Installation abortedInstallation abgebrochen
-
+ The installation of %1 was aborted. Please see the log for more detailsDie Installation von %1 wurde abgebrochen. Schaue im Protokoll für weitere Informationen nach
-
+ Invalid FileUngültige Datei
-
+ %1 is not a valid CIA%1 ist keine gültige CIA
-
+ CIA EncryptedCIA verschlüsselt
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Deine CIA Datei ist verschlüsselt. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Bitte lese unseren Blog für mehr Info.</a>
-
+ Unable to find FileDatei konnte nicht gefunden werden
-
+ Could not find %1%1 konnte nicht gefunden werden
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...'%1' wird deinstalliert…
-
+ Failed to uninstall '%1'.Deinstallation von '%1' fehlgeschlagen.
-
+ Successfully uninstalled '%1'.'%1' erfolgreich deinstalliert.
-
+ File not foundDatei nicht gefunden
-
+ File "%1" not foundDatei "%1" nicht gefunden
-
+ SavestatesSpeicherstände
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4571,86 +4597,86 @@ Use at your own risk!
Nutzung auf eigene Gefahr!
-
-
-
+
+
+ Error opening amiibo data fileFehler beim Öffnen der Amiibo-Datei
-
+ A tag is already in use.Eine Markierung wird schon genutzt.
-
+ Application is not looking for amiibos.Die Anwendung sucht keine Amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo-Datei (%1);; Alle Dateien (*.*)
-
+ Load AmiiboAmiibo wird geladen
-
+ Unable to open amiibo file "%1" for reading.Die Amiibo-Datei "%1" konnte nicht zum Lesen geöffnet werden.
-
+ Record MovieAufnahme starten
-
+ Movie recording cancelled.Aufnahme abgebrochen.
-
-
+
+ Movie SavedAufnahme gespeichert
-
-
+
+ The movie is successfully saved.Die Aufnahme wurde erfolgreich gespeichert.
-
+ Application will unpauseDie Anwendung wird fortgesetzt
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?Die Anwendung wird fortgesetzt und das nächste Bild wird aufgenommen. Ist das okay?
-
+ Invalid Screenshot DirectoryUngültiges Bildschirmfoto-Verzeichnis
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.Das angegebene Bildschirmfoto-Verzeichnis kann nicht erstellt werden. Der Bildschirmfotopfad wurde auf die Voreinstellung zurückgesetzt.
-
+ Could not load video dumperKonnte Video-Dumper nicht laden
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4663,275 +4689,265 @@ Um FFmpeg in Azahar zu installieren, klicke auf „Offnen“ und wähle dein FFm
Um eine Anleitung zur Installation von FFmpeg anzuzeigen, klicke auf „Hilfe“.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectoryWähle FFmpeg-Verzeichnis
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.Das angegebene FFmpeg-Verzeichnis fehlt %1. Bitte stelle sicher, dass du das richtige Verzeichnis ausgewählt hast.
-
+ FFmpeg has been sucessfully installed.FFmpeg wurde erfolgreich installiert.
-
+ Installation of FFmpeg failed. Check the log file for details.Installation von FFmpeg fehlgeschlagen. Prüfe die Protokolldatei für Details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.Video-Dump konnte nicht gestartet werden.<br>Bitte überprüfe, ob der Video-Encoder richtig eingestellt ist.<br>Schau im Protokoll für weitere Informationen nach.
-
+ Recording %1%1 wird aufgenommen
-
+ Playing %1 / %2%1 / %2 wird abgespielt
-
+ Movie FinishedAufnahme beendet
-
+ (Accessing SharedExtData)(Zugriff auf SharedExtData)
-
+ (Accessing SystemSaveData)(Zugriff auf SystemSaveData)
-
+ (Accessing BossExtData)(Zugriff auf BossExtData)
-
+ (Accessing ExtData)(Zugriff auf ExtData)
-
+ (Accessing SaveData)(Zugriff auf SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3Artic Traffic: %1 %2%3
-
+ Speed: %1%Geschwindigkeit: %1%
-
+ Speed: %1% / %2%Geschwindigkeit: %1% / %2%
-
+ App: %1 FPSApp: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msEinzelbild: %1 ms
-
+ VOLUME: MUTELAUTSTÄRKE: STUMM
-
+ VOLUME: %1%Volume percentage (e.g. 50%)LAUTSTÄRKE: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveEin Systemarchiv
-
+ System Archive Not FoundSystemarchiv nicht gefunden
-
+ System Archive MissingSystemarchiv fehlt
-
+ Save/load ErrorSpeichern/Laden Fehler
-
+ Fatal ErrorSchwerwiegender Fehler
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredAuf schwerwiegenden Fehler gestoßen
-
+ ContinueFortsetzen
-
+ Quit ApplicationBeende die Anwendung
-
+ OKO.K.
-
+ Would you like to exit now?Möchtest du die Anwendung jetzt verlassen?
-
+ The application is still running. Would you like to stop emulation?Die Anwendung läuft noch. Möchtest du die Emulation stoppen?
-
+ Playback CompletedWiedergabe abgeschlossen
-
+ Movie playback completed.Wiedergabe der Aufnahme abgeschlossen.
-
+ Update AvailableAktualisierung verfügbar
-
+ Update %1 for Azahar is available.
Would you like to download it?Für Azahar ist die Aktualisierung %1 verfügbar.
Soll es heruntergeladen werden?
-
+ Primary WindowHauptfenster
-
+ Secondary WindowZweifenster
@@ -5037,175 +5053,190 @@ Soll es heruntergeladen werden?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>WICHTIG: Verschlüsselte Dateien und .3ds-Dateien werden nicht mehr unterstützt. Eine Entschlüsselung und/oder Umbenennung in .cci kann erforderlich sein. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Erfahre mehr</a>
-
+ Don't show againNicht nochmal anzeigen
-
-
+
+ CompatibilityKompatibilität
-
-
+
+ RegionRegion
-
-
+
+ File typeDateiart
-
-
+
+ SizeGröße
-
-
+
+ Play timeSpielzeit
-
+ FavoriteFavorit
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenÖffnen
-
+ Application LocationAnwendungsspeicherort
-
+ Save Data LocationSpeicherdatenstandort
-
+ Extra Data LocationExtradatenstandort
-
+ Update Data LocationUpdatedaten-Verzeichnis
-
+ DLC Data LocationDLC-Verzeichnis
-
+ Texture Dump LocationTextur-Dump-Pfad
-
+ Custom Texture LocationBenutzerdefinierte-Texturen-Verzeichnis
-
+ Mods LocationMod-Verzeichnis
-
+ Dump RomFSRomFS dumpen
-
+ Disk Shader CacheShader-Cache
-
+ Open Shader Cache LocationShader-Cache-Standort öffnen
-
+ Delete OpenGL Shader CacheOpenGL-Shader-Cache löschen
-
+ UninstallDeinstallieren
-
+ EverythingAlles
-
+ ApplicationAnwendung
-
+ UpdateUpdate
-
+ DLCZusatzinhalte
-
+ Remove Play Time DataSpielzeitdaten entfernen
-
+ Create ShortcutVerknüpfung erstellen
-
+ Add to DesktopZum Desktop hinzufügen
-
+ Add to Applications MenuZum Anwendungsmenü hinzufügen
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesEigenschaften
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5214,64 +5245,64 @@ This will delete the application if installed, as well as any installed updates
Dadurch werden die Anwendung, sofern installiert, sowie alle installierten Updates oder DLCs gelöscht.
-
-
+
+ %1 (Update)%1 (Update)
-
-
+
+ %1 (DLC)%1 (Zusatzinhalt)
-
+ Are you sure you want to uninstall '%1'?Bist du sicher, dass du '%1' deinstallieren möchtest?
-
+ Are you sure you want to uninstall the update for '%1'?Bist du sicher, dass du das Update für '%1' deinstallieren möchtest?
-
+ Are you sure you want to uninstall all DLC for '%1'?Bist du sicher, dass du die Zusatzinhalte für '%1' deinstallieren möchtest?
-
+ Scan SubfoldersUnterordner scannen
-
+ Remove Application DirectoryAnwendungsverzeichnis entfernen
-
+ Move UpHoch bewegen
-
+ Move DownRunter bewegen
-
+ Open Directory LocationVerzeichnispfad öffnen
-
+ ClearLeeren
-
+ NameName
@@ -5279,79 +5310,79 @@ Dadurch werden die Anwendung, sofern installiert, sowie alle installierten Updat
GameListItemCompat
-
+ PerfectPerfekt
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.Die App funktioniert einwandfrei, ohne Audio- oder Grafikfehler, alle getesteten Funktionen funktionieren wie vorgesehen, ohne
jegliche Problemumgehungen.
-
+ GreatGut
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.Die App funktioniert mit kleineren Grafik- oder Audiofehlern und ist von Anfang bis Ende spielbar. Möglicherweise sind Problemumgehungen erforderlich.
-
+ OkayOkay
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.Die App funktioniert mit erheblichen Grafik- oder Audiofehlern, ist jedoch mit Problemumgehungen von Anfang bis Ende spielbar
-
+ BadSchlecht
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.Die App funktioniert, weist jedoch erhebliche Grafik- oder Audiofehler auf. Aufgrund von Störungen ist es nicht möglich, in bestimmten Bereichen Fortschritte zu machen
auch mit Workarounds.
-
+ Intro/MenuIntro/Menü
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.Die App ist aufgrund erheblicher Grafik- oder Audiofehler völlig unspielbar. Es ist nicht möglich, über den Startbildschirm hinauszugehen.
-
+ Won't BootStartet nicht
-
+ The app crashes when attempting to startup.Die Anwendung stürtzt beim Versuch zu starten ab
-
+ Not TestedNicht getestet
-
+ The app has not yet been tested.Die Anwendung wurde noch nicht getestet
@@ -5359,7 +5390,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listKlicke doppelt, um einen neuen Ordner zur Anwendungsliste hinzuzufügen
@@ -5367,27 +5398,27 @@ Screen.
GameListSearchField
-
+ ofvon
-
+ resultErgebnis
-
+ resultsErgebnisse
-
+ Filter:Filter:
-
+ Enter pattern to filterGib Wörter zum Filtern ein
@@ -5716,87 +5747,87 @@ Wenn nein, werden die aufgenommenen Daten verworfen.
Cycle-Index:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Adressenregister: %1, %2
-
+ Compare Result: %1, %2
Ergebnis vergleichen: %1, %2
-
+ Static Condition: %1
Statische Bedingung: %1
-
+ Dynamic Conditions: %1, %2
Dynamische Konditionen: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Schleifenparameter: %1 (repeats), %2 (initializer), %3 (increment), %4
-
+ Instruction offset: 0x%1Instruktionsverschiebung: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (letzte Instruktion)
@@ -6097,32 +6128,32 @@ Debug-Meldung:
Passwort:
-
+ Room NameRaumname
-
+ Preferred ApplicationBevorzugte Anwendung
-
+ HostHost
-
+ PlayersSpieler
-
+ RefreshingNeu Laden
-
+ Refresh ListListe aktualisieren
@@ -7125,32 +7156,32 @@ Vielleicht hat dieser Nutzer bereits den Raum verlassen.
%1 (0x%2)
-
+ Unsupported encrypted applicationNicht unterstützte verschlüsselte Anwendung
-
+ Invalid regionUngültige Region
-
+ Installed TitlesInstallierte Titel
-
+ System TitlesSystem-Titel
-
+ Add New Application DirectoryFüge ein neues Anwendungsverzeichnis hinzu
-
+ FavoritesFavoriten
diff --git a/dist/languages/el.ts b/dist/languages/el.ts
index 535612b86..a654c1e47 100644
--- a/dist/languages/el.ts
+++ b/dist/languages/el.ts
@@ -292,8 +292,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- Εξομοίωση:
+ Emulation
+ Εξομοίωση
@@ -397,6 +397,7 @@ This would ban both their forum username and their IP address.
+ CameraΚάμερα
@@ -408,8 +409,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- Κάμερα για διαμόρφωση:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- Τύπος κάμερας:
+ Camera mode
+
@@ -450,8 +451,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- Θέση κάμερας:
+ Camera position
+
@@ -476,8 +477,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- Πηγή εικόνας κάμερας:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ This would ban both their forum username and their IP address.
- File:
- Αρχείο:
+ File
+
@@ -510,11 +511,6 @@ This would ban both their forum username and their IP address.
Select the system camera to useΕπιλέξτε την κάμερα συστήματος προς χρήση
-
-
- Camera:
- Κάμερα:
- <Default>
@@ -528,8 +524,8 @@ This would ban both their forum username and their IP address.
- Flip:
- Αναστροφή:
+ Flip
+
@@ -1082,7 +1078,7 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1141,48 +1137,53 @@ Would you like to ignore the error and continue?
-
+
+ Swap Eyes
+
+
+
+ Utility
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom textures
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump textures
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom textures
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading
@@ -1240,13 +1241,13 @@ Would you like to ignore the error and continue?
- Set emulation speed:
+ Set emulation speed
- Emulation Speed:
- Ταχύτητα εξομοίωσης:
+ Emulation Speed
+
@@ -1357,12 +1358,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1382,8 +1383,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- Ενεργοποίηση shader υλικού
+ Enable hardware shader
+
@@ -1392,8 +1393,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- Ακριβής πολλαπλασιασμός
+ Accurate multiplication
+
@@ -1402,8 +1403,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- Ενεργοποίηση Shader JIT
+ Enable shader JIT
+
@@ -1412,7 +1413,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1422,7 +1423,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentation
@@ -1462,8 +1463,8 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
- Χρήση προσωρινής μνήμης shader δίσκου
+ Use disk shader cache
+
@@ -1487,7 +1488,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1976,12 +1977,12 @@ Would you like to ignore the error and continue?
- Swap Screens
- Εναλλαγή οθονών
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2098,7 +2099,7 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2446,8 +2447,8 @@ Would you like to ignore the error and continue?
- Use Virtual SD
- Χρήση εικονικής SD
+ Use virtual SD card
+
@@ -2456,7 +2457,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage location
@@ -2543,8 +2544,8 @@ online features (if installed)
- Region:
-
+ Region
+ Περιοχή
@@ -2552,326 +2553,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameΌνομα χρήστη
-
+ BirthdayΓενέθλια
-
+ JanuaryΙανουάριος
-
+ FebruaryΦεβρουάριος
-
+ MarchΜάρτιος
-
+ AprilΑπρίλιος
-
+ MayΜάιος
-
+ JuneΙούνιος
-
+ JulyΙούλιος
-
+ AugustΑύγουστος
-
+ SeptemberΣεπτέμβριος
-
+ OctoberΟκτώβριος
-
+ NovemberΝοέμβριος
-
+ DecemberΔεκέμβριος
-
+ LanguageΓλώσσα
-
+ Note: this can be overridden when region setting is auto-selectΣημείωση: αυτό μπορεί να παρακαμφθεί όταν επιλέγεται αυτόματα η περιοχή
-
+ Japanese (日本語)Ιαπωνικά (日本語)
-
+ EnglishΑγγλικά (English)
-
+ French (français)Γαλλικά (français)
-
+ German (Deutsch)Γερμανικά (Deutsch)
-
+ Italian (italiano)Ιταλικά (italiano)
-
+ Spanish (español)Ισπανικά (español)
-
+ Simplified Chinese (简体中文)Απλοποιημένα Κινεζικά (简体中文)
-
+ Korean (한국어)Κορεατικά (한국어)
-
+ Dutch (Nederlands)Ολλανδικά (Nederlands)
-
+ Portuguese (português)Πορτογαλικά (português)
-
+ Russian (Русский)Ρωσικά (Русский)
-
+ Traditional Chinese (正體中文)Παραδοσιακά Κινεζικά (正體中文)
-
+ Sound output modeΛειτουργία εξόδου ήχου
-
+ MonoΜονοφωνικό
-
+ StereoΣτερεοφωνικό
-
+ SurroundΠολυκάναλο
-
+ CountryΧώρα
-
+ ClockΡολόι
-
+ System ClockΡολόι συστήματος
-
+ Fixed TimeΚαθορισμένη ώρα
-
+ Startup timeΧρόνος εκκίνησης
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:ID κονσόλας:
-
-
+
+ RegenerateΕπαναδημιουργία
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3581,76 +3593,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1ID κονσόλας: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningΠροειδοποίηση
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3766,13 +3778,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Γλώσσα περιβάλλοντος:
+ Interface Language
+
- Theme:
- Θέμα:
+ Theme
+
@@ -3781,8 +3793,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- Μέγεθος εικονιδίων:
+ Icon Size
+
@@ -3802,8 +3814,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- Κείμενο σειράς 1:
+ Row 1 Text
+
@@ -3837,18 +3849,18 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- Κείμενο σειράς 2:
+ Row 2 Text
+
- Hide Titles without Icon
- Απόκρυψη τίτλων χωρίς εικονίδιο
+ Hide titles without icon
+
- Single Line Mode
- Λειτουργία ενιαίας γραμμής
+ Single line mode
+
@@ -3857,7 +3869,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3940,12 +3952,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingΣύνδεση
-
+ ConnectΣύνδεση
@@ -4064,582 +4076,596 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Η ταχύτητα της προσομοίωσης. Ταχύτητες μεγαλύτερες ή μικρότερες από 100% δείχνουν ότι η προσομοίωση λειτουργεί γρηγορότερα ή πιο αργά από ένα 3DS αντίστοιχα.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Ο χρόνος που χρειάζεται για την εξομοίωση ενός καρέ 3DS, χωρίς να υπολογίζεται ο περιορισμός καρέ ή το v-sync. Για εξομοίωση σε πλήρη ταχύτητα, αυτό θα πρέπει να είναι το πολύ 16.67 ms.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesΑπαλοιφή πρόσφατων αρχείων
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.Προέκυψε άγνωστο σφάλμα. Παρακαλώ δείτε το αρχείο καταγραφής για περισσότερες λεπτομέρειες.
-
+ CIA must be installed before usageΤο CIA πρέπει να εγκατασταθεί πριν από τη χρήση
-
+ Before using this CIA, you must install it. Do you want to install it now?Πριν από τη χρήση αυτού του CIA, πρέπει να το εγκαταστήσετε. Θέλετε να το εγκαταστήσετε τώρα;
-
+ Quick Load
-
+ Quick SaveΓρήγορη Αποθήκευση
-
-
+
+ Slot %1Θέση %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 FolderΣφάλμα ανοίγματος %1 φακέλου
-
-
+
+ Folder does not exist!Ο φάκελος δεν υπάρχει!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create IconΔημηουργία Εικονιδίου
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...Αποτύπωση...
-
-
+
+ CancelΑκύρωση
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.Δεν ήταν δυνατή η αποτύπωση του βασικού RomFS.
Ανατρέξτε στο αρχείο καταγραφής για λεπτομέρειες.
-
+ Error Opening %1Σφάλμα ανοίγματος του «%1»
-
+ Select DirectoryΕπιλογή καταλόγου
-
+ PropertiesΙδιότητες
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Εκτελέσιμο 3DS (%1);;Όλα τα αρχεία (*.*)
-
+ Load FileΦόρτωση αρχείου
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesΦόρτωση αρχείων
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Όλα τα αρχεία (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.Το «%1» εγκαταστάθηκε επιτυχώς.
-
+ Unable to open FileΔεν είναι δυνατό το άνοιγμα του αρχείου
-
+ Could not open %1Δεν ήταν δυνατό το άνοιγμα του «%1»
-
+ Installation abortedΗ εγκατάσταση ακυρώθηκε
-
+ The installation of %1 was aborted. Please see the log for more detailsΗ εγκατάσταση του «%1» ακυρώθηκε. Παρακαλώ δείτε το αρχείο καταγραφής για περισσότερες λεπτομέρειες
-
+ Invalid FileΜη έγκυρο αρχείο
-
+ %1 is not a valid CIAΤο «%1» δεν είναι έγκυρο CIA
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.
-
+ File not foundΤο αρχείο δεν βρέθηκε
-
+ File "%1" not foundΤο αρχείο «%1» δεν βρέθηκε
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Αρχείο Amiibo (%1);; Όλα τα αρχεία (*.*)
-
+ Load AmiiboΦόρτωση Amiibo
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieΕγγραφή βίντεο
-
+ Movie recording cancelled.Η εγγραφή βίντεο ακυρώθηκε.
-
-
+
+ Movie SavedΤο βίντεο αποθηκεύτηκε
-
-
+
+ The movie is successfully saved.Το βίντεο αποθηκεύτηκε επιτυχώς.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4648,274 +4674,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1Εγγραφή %1
-
+ Playing %1 / %2Αναπαραγωγή %1 / %2
-
+ Movie FinishedΤο βίντεο τελείωσε
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Ταχύτητα: %1%
-
+ Speed: %1% / %2%Ταχύτητα: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msΚαρέ: %1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveΈνα αρχείο συστήματος
-
+ System Archive Not FoundΔεν βρέθηκε αρχείο συστήματος
-
+ System Archive MissingΑπουσία αρχείου συστήματος
-
+ Save/load ErrorΣφάλμα αποθήκευσης/φόρτωσης
-
+ Fatal ErrorΚρίσιμο σφάλμα
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredΠροέκυψε κρίσιμο σφάλμα
-
+ ContinueΣυνέχεια
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Θέλετε να κλείσετε το πρόγραμμα τώρα;
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedΗ αναπαραγωγή ολοκληρώθηκε
-
+ Movie playback completed.Η αναπαραγωγή βίντεο ολοκληρώθηκε.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5021,239 +5037,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilityΣυμβατότητα
-
-
+
+ RegionΠεριοχή
-
-
+
+ File typeΤύπος αρχείου
-
-
+
+ SizeΜέγεθος
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenΆνοιγμα
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFSΑποτύπωση RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesΙδιότητες
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan SubfoldersΣάρωση υποφακέλων
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory LocationΆνοιγμα τοποθεσίας καταλόγου
-
+ ClearΑπαλοιφή
-
+ NameΌνομα
@@ -5261,77 +5292,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectΤέλειο
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatΠολύ καλή
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayΕντάξει
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadΚακή
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuΕκκίνηση/Μενού
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootΔεν εκκινείται
-
+ The app crashes when attempting to startup.
-
+ Not TestedΔεν έχει δοκιμαστεί
-
+ The app has not yet been tested.
@@ -5339,7 +5370,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5347,27 +5378,27 @@ Screen.
GameListSearchField
-
+ ofαπό
-
+ resultαποτέλεσμα
-
+ resultsαποτελέσματα
-
+ Filter:Φίλτρο:
-
+ Enter pattern to filterΕισαγάγετε μοτίβο για φιλτράρισμα
@@ -5695,87 +5726,87 @@ Screen.
Ευρετήριο κύκλου:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Καταχωρητές διευθύνσεων: %1, %2
-
+ Compare Result: %1, %2
Σύγκριση αποτελέσματος: %1, %2
-
+ Static Condition: %1
Στατική συνθήκη: %1
-
+ Dynamic Conditions: %1, %2
Δυναμικές συνθήκες: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Παράμετροι βρόχου: %1 (επαναλήψεις), %2 (αρχικοποίηση), %3 (αύξηση), %4
-
+ Instruction offset: 0x%1Μετατόπιση οδηγιών: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (τελευταία οδηγία)
@@ -6075,32 +6106,32 @@ Debug Message:
Κωδικός πρόσβασης:
-
+ Room NameΌνομα δωματίου
-
+ Preferred Application
-
+ HostΔιαχειριστής
-
+ PlayersΠαίκτες
-
+ RefreshingΑνανέωση
-
+ Refresh ListΑνανέωση λίστας
@@ -7099,32 +7130,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionΜη έγκυρη περιοχή
-
+ Installed TitlesΕγκατεστημένοι τίτλοι
-
+ System TitlesΤίτλοι συστήματος
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/es_ES.ts b/dist/languages/es_ES.ts
index a8126d7c9..58c79ebbc 100644
--- a/dist/languages/es_ES.ts
+++ b/dist/languages/es_ES.ts
@@ -298,8 +298,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- Emulación:
+ Emulation
+ Emulación
@@ -403,6 +403,7 @@ This would ban both their forum username and their IP address.
+ CameraCámara
@@ -414,8 +415,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- Configurar la cámara:
+ Camera to Configure
+ Configurar la cámara
@@ -435,8 +436,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- Modo de cámara:
+ Camera mode
+ Modo de cámara
@@ -456,8 +457,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- Posición de cámara:
+ Camera position
+ Posición de cámara
@@ -482,8 +483,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- Fuente de la Imagen de la Cámara:
+ Camera Image Source
+ Fuente de la Imagen de la Cámara
@@ -502,8 +503,8 @@ This would ban both their forum username and their IP address.
- File:
- Archivo:
+ File
+ Archivo
@@ -516,11 +517,6 @@ This would ban both their forum username and their IP address.
Select the system camera to useSeleccione la cámara del sistema que será usada
-
-
- Camera:
- Cámara:
- <Default>
@@ -534,8 +530,8 @@ This would ban both their forum username and their IP address.
- Flip:
- Rotación:
+ Flip
+ Rotación
@@ -1088,8 +1084,8 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
- De lado a lado inverso
+ Side by Side Full Width
+ De lado a lado ancho completo
@@ -1147,48 +1143,53 @@ Would you like to ignore the error and continue?
<html><head/><body><p>Desactivar Dibujado de Ojo Derecho</p><p>Desactiva el dibujado de la imagen del ojo derecho cuando no se utiliza el modo estereoscópico. Mejora significativamente el rendimiento en algunos juegos, pero puede causar parpadeo en otros.</p></body></html>
-
+
+ Swap Eyes
+ Intercambiar Ojos
+
+
+ UtilityUtilidad
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Cambia las texturas por archivos PNG.</p><p>Las texturas son cargadas desde load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom texturesUsar texturas personalizadas
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Vuelca las texturas a archivos PNG.</p><p>Las texturas son volcadas a dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump texturesVolcar texturas
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Carga todas las texturas personalizadas en memoria al iniciar, en vez de cargarlas cuando la aplicación las necesite.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom texturesPrecargar texturas personalizadas
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Carga las texturas personalizadas de manera asíncrona con los hilos de fondo para reducir los parones de carga</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loadingCarga de Texturas Personalizadas Asíncrona
@@ -1246,13 +1247,13 @@ Would you like to ignore the error and continue?
- Set emulation speed:
- Establecer la velocidad de emulación:
+ Set emulation speed
+ Establecer la velocidad de emulación
- Emulation Speed:
- Velocidad de Emulación:
+ Emulation Speed
+ Velocidad de Emulación
@@ -1363,13 +1364,13 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
+ SPIR-V shader generationGeneración de Sombreados SPIR-V
- Disable GLSL -> SPIR-V Optimizer
- Desactivar optimizador GLSL -> SPIR-V
+ Disable GLSL -> SPIR-V optimizer
+ Desactivar GLSL -> SPIR-V optimizador
@@ -1388,7 +1389,7 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
+ Enable hardware shaderActivar Sombreador de Hardware
@@ -1398,7 +1399,7 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
+ Accurate multiplicationMultiplicación Precisa
@@ -1408,7 +1409,7 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
+ Enable shader JITActivar Sombreado JIT
@@ -1418,7 +1419,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilationActivar Compilación de Sombreados Asíncrona
@@ -1428,7 +1429,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentationActivar Presentación Asíncrona
@@ -1468,7 +1469,7 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
+ Use disk shader cacheUsar Caché Almacenada de Sombreadores
@@ -1493,7 +1494,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render ThreadDemorar el hilo de ejecución de renderizado:
@@ -1982,12 +1983,12 @@ Would you like to ignore the error and continue?
- Swap Screens
+ Swap screensIntercambiar pantallas
- Rotate Screens Upright
+ Rotate screens uprightRotar pantallas en vertical
@@ -2104,8 +2105,8 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Porcentaje de Opacidad de la Pantalla Inferior (sólo OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+ <html><head/><body><p>Porcentaje de Opacidad de la Pantalla Inferior %</p></body></html>
@@ -2452,8 +2453,8 @@ Would you like to ignore the error and continue?
- Use Virtual SD
- Usar SD Virtual
+ Use virtual SD card
+ Usar tarjeta SD Virtual
@@ -2462,7 +2463,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage locationUsar almacenamiento personalizado
@@ -2550,8 +2551,8 @@ las funciones en línea (si están instalados)
- Region:
- Región:
+ Region
+ Región
@@ -2559,326 +2560,337 @@ las funciones en línea (si están instalados)
Auto-elegir
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameNombre
-
+ BirthdayCumpleaños
-
+ JanuaryEnero
-
+ FebruaryFebrero
-
+ MarchMarzo
-
+ AprilAbril
-
+ MayMayo
-
+ JuneJunio
-
+ JulyJulio
-
+ AugustAgosto
-
+ SeptemberSeptiembre
-
+ OctoberOctubre
-
+ NovemberNoviembre
-
+ DecemberDiciembre
-
+ LanguageIdioma
-
+ Note: this can be overridden when region setting is auto-selectNota: puede ser sobreescrito cuando la región es auto-seleccionada
-
+ Japanese (日本語)Japonés (日本語)
-
+ EnglishInglés (English)
-
+ French (français)Francés (français)
-
+ German (Deutsch)Alemán (Deutsch)
-
+ Italian (italiano)Italiano (italiano)
-
+ Spanish (español)Español
-
+ Simplified Chinese (简体中文)Chino Simplificado (简体中文)
-
+ Korean (한국어)Coreano (한국어)
-
+ Dutch (Nederlands)Neerlandés (Nederlands)
-
+ Portuguese (português)Portugués (português)
-
+ Russian (Русский)Ruso (Русский)
-
+ Traditional Chinese (正體中文)Chino Tradicional (正體中文)
-
+ Sound output modeModo de salida del audio
-
+ MonoMono
-
+ StereoEstéreo
-
+ SurroundEnvolvente
-
+ CountryPaís
-
+ ClockReloj
-
+ System ClockReloj del Sistema
-
+ Fixed TimeTiempo Fijado
-
+ Startup timeTiempo del Inicio
-
+ yyyy-MM-ddTHH:mm:ssaaaa-mm-ddTHH:mm:ss
-
+ Offset timeTiempo de compensación
-
+ daysdías
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksTicks de Sistema Iniciales
-
+ RandomAleatorias
-
+ FixedFijadas
-
+ Initial System Ticks OverrideSobreescribir Ticks de Sistema Iniciales
-
+ Play CoinsMonedas de Juego
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>Cantidad de pasos por hora determinadas por el podómetro. Van desde 0 a 65,535.</p></body></html>
-
+ Pedometer Steps per HourPasos por hora del Podómetro
-
+ Run System Setup when Home Menu is launchedEjecutar la Configuración de la consola cuando se ejecute el Menú Home
-
+ Console ID:ID de Consola:
-
-
+
+ RegenerateRegenerar
-
+ MAC:Dirección MAC:
-
- 3GX Plugin Loader:
- Cargador de complementos 3GX:
+
+ 3GX Plugin Loader
+ Cargador de complementos 3GX
-
+ Enable 3GX plugin loaderHabilitar el cargador de complementos 3GX
-
+ Allow applications to change plugin loader statePermitir que los juegos cambien el estado del cargador de plugins.
-
+ Real Console Unique DataDatos únicos de la consola real
-
+ Your real console is linked to Azahar.Tu consola real está enlazada a Azahar.
-
+ UnlinkDesenlazar
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseElegir
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.La configuración del sistema solo está disponible cuando la aplicación no se está ejecutando.
@@ -3588,76 +3600,76 @@ las funciones en línea (si están instalados)
Archivo Sed (*.sed);;Todos los archivos (*.*)
-
-
+
+ Console ID: 0x%1ID de Consola: 0x%1
-
-
+
+ MAC: %1Dirección MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?Esto reemplazará tu ID de consola de 3DS virtual por una nueva. Tu ID actual será irrecuperable. Esto puede tener efectos inesperados en determinadas aplicaciones. Si usas un archivo de configuración obsoleto, esto podría fallar. ¿Desea continuar?
-
-
-
+
+
+ WarningAdvertencia
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Esto reemplazará tu dirección MAC actual por una nueva. No se recomienda hacerlo si obtuviste la dirección MAC de tu consola real con la herramienta de configuración. ¿Continuar?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?Esta acción desvinculará tu consola real de Azahar, con las siguientes consecuencias:<ul><li>OTP, SecureInfo y LocalFriendCodeSeed serán eliminados de Azahar.</li><li>Tu lista de amigos se restablecerá y se cerrará la sesión de tu cuenta NNID/PNID.</li><li>Los archivos del sistema y los títulos de la eshop obtenidos a través de Azahar se volverán inaccesibles hasta que la misma consola se vincule nuevamente mediante la herramienta de configuración (los datos guardados no se perderán).</li></ul><br>¿Continuar?
-
+ Invalid country for configured regionPaís incorrecto para la región configurada
-
+ Invalid country for console unique dataPaís incorrecto para los datos de consola únicos
-
+ Status: LoadedEstado: Cargado
-
+ Status: Loaded (Invalid Signature)Estado: Cargado (Firma Inválida)
-
+ Status: Loaded (Region Changed)Estado: Cargado (Cambiado de Región)
-
+ Status: Not FoundEstado: No Encontrado
-
+ Status: InvalidEstado: Inválido
-
+ Status: IO ErrorEstado: Error E/S
@@ -3773,13 +3785,13 @@ Mueve los puntos para cambiar la posición, o haz doble click en las celdas de l
- Interface language:
+ Interface LanguageIdioma de la Interfaz
- Theme:
- Tema:
+ Theme
+ Tema
@@ -3788,8 +3800,8 @@ Mueve los puntos para cambiar la posición, o haz doble click en las celdas de l
- Icon Size:
- Tamaño de Icono:
+ Icon Size
+ Tamaño de Icono
@@ -3809,8 +3821,8 @@ Mueve los puntos para cambiar la posición, o haz doble click en las celdas de l
- Row 1 Text:
- Texto de Fila 1:
+ Row 1 Text
+ Texto de Fila 1
@@ -3844,17 +3856,17 @@ Mueve los puntos para cambiar la posición, o haz doble click en las celdas de l
- Row 2 Text:
- Texto de Fila 2:
+ Row 2 Text
+ Texto de Fila 2
- Hide Titles without Icon
+ Hide titles without iconOcultar Títulos sin Icono
- Single Line Mode
+ Single line modeModo Una Línea
@@ -3864,7 +3876,7 @@ Mueve los puntos para cambiar la posición, o haz doble click en las celdas de l
- Show Advanced Frame Time Info
+ Show advanced frame time infoMostrar información de fotogramas avanzada
@@ -3947,12 +3959,12 @@ Mueve los puntos para cambiar la posición, o haz doble click en las celdas de l
DirectConnectWindow
-
+ ConnectingConectando
-
+ ConnectConectar
@@ -4072,497 +4084,511 @@ Por favor, compruebe la instalación de FFmpeg usada para la compilación.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedDispositivos compatibles con Vulkan no encontrados.
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.El inicio de Vulkan falló durante el inicio.<br/>Tu GPU, o no soporta Vulkan 1.1, o no tiene los últimos drivers gráficos.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.La velocidad de tráfico actual de Artic. Los valores altos indican una carga mayor de transferencia.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.La velocidad de emulación actual. Valores mayores o menores de 100% indican que la velocidad de emulación funciona más rápida o lentamente que en una 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.Los fotogramas por segundo que está mostrando el juego. Variarán de aplicación en aplicación y de escena a escena.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.El tiempo que lleva emular un fotograma de 3DS, sin tener en cuenta el limitador de fotogramas, ni la sincronización vertical. Para una emulación óptima, este valor no debe superar los 16.67 ms.
-
+ MicroProfile (unavailable)MicroProfile (no disponible)
-
+ Clear Recent FilesLimpiar Archivos Recientes
-
+ &Continue&Continuar
-
+ &Pause&Pausar
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar está ejecutando una aplicación
-
-
+
+ Invalid App FormatFormato de aplicación inválido
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Tu formato de aplicación no es válido.<br/>Por favor, sigue las instrucciones para volver a volcar tus <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>cartucho de juego</a> y/o <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>títulos instalados</a>.
-
+ App CorruptedAplicación corrupta
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Tu aplicación está corrupta. <br/>Por favor, sigue las instrucciones para volver a volcar tus <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>cartuchos de juego</a> y/o <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>títulos instalados</a>.
-
+ App EncryptedAplicación encriptada
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Tu aplicación está encriptada. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Por favor visita nuestro blog para más información.</a>
-
+ Unsupported AppAplicación no soportada
-
+ GBA Virtual Console is not supported by Azahar.Consola Virtual de GBA no está soportada por Azahar.
-
-
+
+ Artic ServerServidor Artic
-
+
+ Invalid system mode
+ Modo de sistema no válido
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!¡Error al cargar la aplicación!
-
+ An unknown error occurred. Please see the log for more details.Un error desconocido ha ocurrido. Por favor, mira el log para más detalles.
-
+ CIA must be installed before usageEl CIA debe estar instalado antes de usarse
-
+ Before using this CIA, you must install it. Do you want to install it now?Antes de usar este CIA, debes instalarlo. ¿Quieres instalarlo ahora?
-
+ Quick LoadCarga Rápida
-
+ Quick SaveGuardado Rápido
-
-
+
+ Slot %1Ranura %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Guardado Rápido - %1
-
+ Quick Load - %1Carga Rápida - %1
-
+ Slot %1 - %2 %3Ranura %1 - %2 %3
-
+ Error Opening %1 FolderError al abrir la carpeta %1
-
-
+
+ Folder does not exist!¡La carpeta no existe!
-
+ Remove Play Time DataQuitar Datos de Tiempo de Juego
-
+ Reset play time?¿Reiniciar tiempo de juego?
-
-
-
-
+
+
+
+ Create ShortcutCrear atajo
-
+ Do you want to launch the application in fullscreen?¿Desea lanzar esta aplicación en pantalla completa?
-
+ Successfully created a shortcut to %1Atajo a %1 creado con éxito
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Ésto creará un atajo a la AppImage actual. Puede no funcionar bien si actualizas. ¿Continuar?
-
+ Failed to create a shortcut to %1Fallo al crear un atajo a %1
-
+ Create IconCrear icono
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.No se pudo crear un archivo de icono. La ruta "%1" no existe y no puede ser creada.
-
+ Dumping...Volcando...
-
-
+
+ CancelCancelar
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.No se pudo volcar el RomFS base.
Compruebe el registro para más detalles.
-
+ Error Opening %1Error al abrir %1
-
+ Select DirectorySeleccionar directorio
-
+ PropertiesPropiedades
-
+ The application properties could not be loaded.No se pudieron cargar las propiedades de la aplicación.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Ejecutable 3DS(%1);;Todos los archivos(*.*)
-
+ Load FileCargar Archivo
-
-
+
+ Set Up System FilesConfigurar Archivos de Sistema
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>Azahar necesita archivos de una consola real para poder utilizar algunas de sus funciones.<br>Puedes obtener los archivos con la <a href=https://github.com/azahar-emu/ArticSetupTool>herramienta de configuración Artic</a><br>Notas:<ul><li><b>Esta operación instalará archivos únicos de la consola en Azahar, ¡no compartas las carpetas de usuario ni nand<br>después de realizar el proceso de configuración!</b></li><li>Tras la configuración, Azahar se enlazará a la consola que ha ejecutado la herramienta de configuración. Puedes desvincular la<br>consola más tarde desde la pestaña "Archivos de sistema" del menú de opciones del emulador.</li><li>No te conectes en línea con Azahar y la consola 3DS al mismo tiempo después de configurar los archivos del sistema,<br>ya que esto podría causar problemas.</li><li>Se necesita la configuración de Old 3DS para que funcione la configuración de New 3DS (configurar ambos modos es recomendado).</li><li>Ambos modos de configuración funcionarán independientemente del modelo de la consola que ejecute la herramienta de configuración.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:Introduce la dirección de la herramienta de configuración Artic
-
+ <br>Choose setup mode:<br>Elige el modo de configuración:
-
+ (ℹ️) Old 3DS setup(ℹ️) Configuración Old 3DS
-
-
+
+ Setup is possible.La configuración es posible.
-
+ (⚠) New 3DS setup(⚠) Configuración New 3DS
-
+ Old 3DS setup is required first.La configuración Old 3DS es necesaria primero.
-
+ (✅) Old 3DS setup(✅) Configuración Old 3DS
-
-
+
+ Setup completed.Configuración completa.
-
+ (ℹ️) New 3DS setup(ℹ️) Configuración New 3DS
-
+ (✅) New 3DS setup(✅) Configuración New 3DS
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?Los archivos de sistema para el modo seleccionado ya están configurados.
¿Desea reinstalar los archivos de todas formas?
-
+ Load FilesCargar archivos
-
+ 3DS Installation File (*.cia *.zcia)Archivo de Instalación de 3DS (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Todos los archivos (*.*)
-
+ Connect to Artic BaseConectar a Artic Base
-
+ Enter Artic Base server address:Introduce la dirección del servidor Artic Base
-
+ %1 has been installed successfully.%1 ha sido instalado con éxito.
-
+ Unable to open FileNo se pudo abrir el Archivo
-
+ Could not open %1No se pudo abrir %1
-
+ Installation abortedInstalación interrumpida
-
+ The installation of %1 was aborted. Please see the log for more detailsLa instalación de %1 ha sido cancelada. Por favor, consulte los registros para más información.
-
+ Invalid FileArchivo no válido
-
+ %1 is not a valid CIA%1 no es un archivo CIA válido
-
+ CIA EncryptedCIA encriptado
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Tu archivo CIA está encriptado. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Por favor visita nuestro blog para más información.</a>
-
+ Unable to find FileNo puede encontrar el archivo
-
+ Could not find %1No se pudo encontrar %1
-
-
-
- Error compressing file
- Error al comprimir el archivo
+
+
+
+
+ Z3DS Compression
+ Compresión Z3DS
-
- File compress operation failed, check log for details.
- Operación de compresión fallida, mira el registro para más detalles.
+
+ Failed to compress some files, check log for details.
+ No se pudieron comprimir algunos archivos, mira el registro para más detalles.
-
-
-
- Error decompressing file
- Error de descompresión de archivo
+
+ Failed to decompress some files, check log for details.
+ No se pudieron descomprimir algunos archivos, mira el registro para más detalles.
-
- File decompress operation failed, check log for details.
- Operación de descompresión fallida, mira el registro para más detalles.
+
+ All files have been compressed successfully.
+ Todos los archivos ya comprimido con éxtio.
-
+
+ All files have been decompressed successfully.
+ Todos los archivos ya descompresión con éxtio.
+
+
+ Uninstalling '%1'...Desinstalando '%1'...
-
+ Failed to uninstall '%1'.Falló la desinstalación de '%1'.
-
+ Successfully uninstalled '%1'.'%1' desinstalado con éxito.
-
+ File not foundArchivo no encontrado
-
+ File "%1" not foundArchivo "%1" no encontrado
-
+ SavestatesEstados
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4571,86 +4597,86 @@ Use at your own risk!
¡Úsalos bajo tu propio riesgo!
-
-
-
+
+
+ Error opening amiibo data fileError al abrir los archivos de datos del Amiibo
-
+ A tag is already in use.Ya está en uso una etiqueta.
-
+ Application is not looking for amiibos.La aplicación no está buscando amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Archivo de Amiibo(%1);; Todos los archivos (*.*)
-
+ Load AmiiboCargar Amiibo
-
+ Unable to open amiibo file "%1" for reading.No se pudo abrir el archivo del amiibo "%1" para su lectura.
-
+ Record MovieGrabar Película
-
+ Movie recording cancelled.Grabación de película cancelada.
-
-
+
+ Movie SavedPelícula Guardada
-
-
+
+ The movie is successfully saved.Película guardada con éxito.
-
+ Application will unpauseLa aplicación se despausará
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?La aplicación se despausará, y el siguiente fotograma será capturado. ¿Estás de acuerdo?
-
+ Invalid Screenshot DirectoryDirectorio de capturas de pantalla no válido
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.No se puede crear el directorio de capturas de pantalla. La ruta de capturas de pantalla vuelve a su valor por defecto.
-
+ Could not load video dumperNo se pudo cargar el volcador de vídeo
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4663,275 +4689,265 @@ Para instalar FFmpeg en Azahar, pulsa Abrir y elige el directorio de FFmpeg.
Para ver una guía sobre cómo instalar FFmpeg, pulsa Ayuda.
-
- Load 3DS ROM File
+
+ Load 3DS ROM FilesCargar ROM de 3DS
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
- Archivos ROM 3DS (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
+ Archivos ROM 3DS (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
- El archivo seleccionado no es un ROM de 3DS compatible. Asegúrate de que has elegido el archivo correcto y que no esté cifrado.
-
-
-
- The selected file is already compressed.
- El archivo seleccionado ya está comprimido.
-
-
-
+ 3DS Compressed ROM File (*.%1)Archivo ROM 3DS comprimido (*.%1)
-
+ Save 3DS Compressed ROM FileGuardar archivo 3DS comprimido
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
+ Seleccione la carpeta de salida comprimida del ROM 3DS
+
+
+
+ Load 3DS Compressed ROM FilesCargar archivo 3DS comprimido
-
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)Archivo ROM 3DS comprimido (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
- El archivo seleccionado no es un formato de ROM 3DS comprimido compatible. Asegúrese de haber elegido el archivo correcto.
-
-
-
- The selected file is already decompressed.
- El archivo seleccionado ya está descomprimido.
-
-
-
+ 3DS ROM File (*.%1)Archivo ROM 3DS (*.%1)
-
+ Save 3DS ROM FileGuardar archivo ROM 3DS
-
+
+ Select Output 3DS ROM Folder
+ Seleccione la carpeta de salida del ROM 3DS
+
+
+ Select FFmpeg DirectorySeleccionar Directorio FFmpeg
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.Al directorio de FFmpeg indicado le falta %1. Por favor, asegúrese de haber seleccionado el directorio correcto.
-
+ FFmpeg has been sucessfully installed.FFmpeg ha sido instalado con éxito.
-
+ Installation of FFmpeg failed. Check the log file for details.La instalación de FFmpeg ha fallado. Compruebe el archivo del registro para más detalles.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.No se pudo empezar a grabar vídeo.<br>Asegúrese de que el encodeador de vídeo está configurado correctamente.<br>Para más detalles, observe el registro.
-
+ Recording %1Grabando %1
-
+ Playing %1 / %2Reproduciendo %1 / %2
-
+ Movie FinishedPelícula terminada
-
+ (Accessing SharedExtData)(Accediendo al SharedExtData)
-
+ (Accessing SystemSaveData)(Accediendo al SystemSaveData)
-
+ (Accessing BossExtData)(Accediendo al BossExtData)
-
+ (Accessing ExtData)(Accediendo al ExtData)
-
+ (Accessing SaveData)(Accediendo al SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3Tráfico Artic: %1 %2%3
-
+ Speed: %1%Velocidad: %1%
-
+ Speed: %1% / %2%Velocidad: %1% / %2%
-
+ App: %1 FPSApp: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msFrame: %1 ms
-
+ VOLUME: MUTEVOLUMEN: SILENCIO
-
+ VOLUME: %1%Volume percentage (e.g. 50%)VOLUMEN: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.Falta %1. Por favor,<a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>vuelca tus archivos de sistema</a>.<br/>Continuar la emulación puede resultar en cuelgues y errores.
-
+ A system archiveUn archivo de sistema
-
+ System Archive Not FoundArchivo de Sistema no encontrado
-
+ System Archive MissingFalta un Archivo de Sistema
-
+ Save/load ErrorError de guardado/carga
-
+ Fatal ErrorError Fatal
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.Ha ocurrido un error fatal.<a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Mira el log</a>para más detalles.<br/>Continuar la emulación puede resultar en cuelgues y errores.
-
+ Fatal Error encounteredError Fatal encontrado
-
+ ContinueContinuar
-
+ Quit ApplicationCerrar aplicación
-
+ OKAceptar
-
+ Would you like to exit now?¿Quiere salir ahora?
-
+ The application is still running. Would you like to stop emulation?La aplicación sigue en ejecución. ¿Quiere parar la emulación?
-
+ Playback CompletedReproducción Completada
-
+ Movie playback completed.Reproducción de película completada.
-
+ Update AvailableActualización disponible
-
+ Update %1 for Azahar is available.
Would you like to download it?La actualización %1 de Azahar está disponible.
¿Quieres descargarla?
-
+ Primary WindowVentana Primaria
-
+ Secondary WindowVentana Secundaria
@@ -5037,175 +5053,190 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>IMPORTANTE: Los archivos cifrados y .3ds ya no son compatibles. Puede que sea necesario descifrarlos o renombrarlos a .cci. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Más Información</a>
-
+ Don't show againNo volver a mostrar
-
-
+
+ CompatibilityCompatibilidad
-
-
+
+ RegionRegión
-
-
+
+ File typeTipo de Archivo
-
-
+
+ SizeTamaño
-
-
+
+ Play timeTiempo de juego
-
+ FavoriteFavorito
-
+
+ Eject Cartridge
+ Expulsar Cartucho
+
+
+
+ Insert Cartridge
+ Insertar Cartucho
+
+
+ OpenAbrir
-
+ Application LocationLocalización de aplicaciones
-
+ Save Data LocationLocalización de datos de guardado
-
+ Extra Data LocationLocalización de Datos Extra
-
+ Update Data LocationLocalización de datos de actualización
-
+ DLC Data LocationLocalización de datos de DLC
-
+ Texture Dump LocationLocalización del volcado de texturas
-
+ Custom Texture LocationLocalización de las texturas personalizadas
-
+ Mods LocationLocalización de los mods
-
+ Dump RomFSVolcar RomFS
-
+ Disk Shader CacheCaché de sombreador de disco
-
+ Open Shader Cache LocationAbrir ubicación de caché de sombreador
-
+ Delete OpenGL Shader CacheEliminar caché de sombreado de OpenGL
-
+ UninstallDesinstalar
-
+ EverythingTodo
-
+ ApplicationAplicación
-
+ UpdateActualización
-
+ DLCDLC
-
+ Remove Play Time DataQuitar Datos de Tiempo de Juego
-
+ Create ShortcutCrear atajo
-
+ Add to DesktopAñadir al Escritorio
-
+ Add to Applications MenuAñadir al Menú Aplicación
-
+
+ Stress Test: App Launch
+ Prueba de estrés: lanzamiento de la aplicación
+
+
+ PropertiesPropiedades
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5214,64 +5245,64 @@ This will delete the application if installed, as well as any installed updates
Ésto eliminará la aplicación si está instalada, así como también las actualizaciones y DLC instaladas.
-
-
+
+ %1 (Update)%1 (Actualización)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?¿Estás seguro de querer desinstalar '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?¿Estás seguro de querer desinstalar la actualización de '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?¿Estás seguro de querer desinstalar todo el DLC de '%1'?
-
+ Scan SubfoldersEscanear subdirectorios
-
+ Remove Application DirectoryQuitar carpeta de aplicaciones
-
+ Move UpMover arriba
-
+ Move DownMover abajo
-
+ Open Directory LocationAbrir ubicación del directorio
-
+ ClearReiniciar
-
+ NameNombre
@@ -5279,77 +5310,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectPerfecto
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.La aplicación funciona sin errores gráficos o de audio. Todas las funciones probadas funcionan según lo previso sin necesidad de soluciones alternativas.
-
+ GreatExcelente
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.La aplicación funciona con pequeños errores gráficos o de audio y es jugable de principio a fin. Puede necesitar soluciones alternativas.
-
+ OkayBien
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.La aplicación funciona con grandes errores gráficos o de audio, pero es jugable de principio a fin con soluciones alternativas.
-
+ BadMal
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.La aplicación funciona, pero con grandes errores gráficos o de audio. No es posible continuar tras ciertos puntos debido a errores, incluso con soluciones alternativas.
-
+ Intro/MenuIntro/Menú
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.La aplicación es completamente inutilizable debido a grandes errores gráficos o de audio. No es posible continuar tras la pantalla de título.
-
+ Won't BootNo inicia
-
+ The app crashes when attempting to startup.La aplicación se cae cuando se intenta iniciar.
-
+ Not TestedSin probar
-
+ The app has not yet been tested.La aplicación no ha sido probada.
@@ -5357,7 +5388,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listHaz doble click para añadir una nueva carpeta a la lista de aplicaciones
@@ -5365,27 +5396,27 @@ Screen.
GameListSearchField
-
+ ofde
-
+ resultresultado
-
+ resultsresultados
-
+ Filter:Filtro:
-
+ Enter pattern to filterIntroduzca un patrón para filtrar
@@ -5713,87 +5744,87 @@ Screen.
Índice de Ciclo:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Registros de Dirección: %1, %2
-
+ Compare Result: %1, %2
Comparar Resultados: %1, %2
-
+ Static Condition: %1
Condición Estática: %1
-
+ Dynamic Conditions: %1, %2
Condiciones Dinámicas: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Parámetros de Bucle: %1 (repeticiones), %2 (inicializador), %3 (incremental), %4
-
+ Instruction offset: 0x%1Instrucción offset: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(última instrucción)
@@ -6094,32 +6125,32 @@ Mensaje de depuración:
Contraseña:
-
+ Room NameNombre de Sala
-
+ Preferred ApplicationAplicación preferida
-
+ HostHost
-
+ PlayersJugadores
-
+ RefreshingActualizando
-
+ Refresh ListActualizar Lista
@@ -7121,32 +7152,32 @@ Puede que haya dejado la sala.
%1 (0x%2)
-
+ Unsupported encrypted applicationAplicación encriptada no soportada
-
+ Invalid regionRegión no válida
-
+ Installed TitlesTítulos Instalados
-
+ System TitlesTítulos de Sistema
-
+ Add New Application DirectoryAgregar nueva carpeta de aplicaciones
-
+ FavoritesFavoritos
diff --git a/dist/languages/fi.ts b/dist/languages/fi.ts
index bfb6784e1..dcb76676e 100644
--- a/dist/languages/fi.ts
+++ b/dist/languages/fi.ts
@@ -292,8 +292,8 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.
- Emulation:
- Emulaatio:
+ Emulation
+ Emulaatio
@@ -397,6 +397,7 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.
+ CameraKamera
@@ -408,8 +409,8 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.
- Camera to configure:
- Kamera jota määritellään:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.
- Camera mode:
- Kameratila:
+ Camera mode
+
@@ -450,8 +451,8 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.
- Camera position:
- Kameran sijainti:
+ Camera position
+
@@ -476,8 +477,8 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.
- Camera Image Source:
- Kameran kuvalähde:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.
- File:
- Tiedosto:
+ File
+
@@ -510,11 +511,6 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.Select the system camera to use
Valitse laitteen kamera, jota käytetään
-
-
- Camera:
- Kamera:
- <Default>
@@ -528,8 +524,8 @@ Tämä antaa porttikiellon heidän käyttäjänimelleen ja IP-osoitteelleen.
- Flip:
- Kääntö:
+ Flip
+
@@ -1081,7 +1077,7 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1140,48 +1136,53 @@ Would you like to ignore the error and continue?
-
+
+ Swap Eyes
+
+
+
+ Utility
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom textures
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump textures
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom textures
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading
@@ -1239,12 +1240,12 @@ Would you like to ignore the error and continue?
- Set emulation speed:
+ Set emulation speed
- Emulation Speed:
+ Emulation Speed
@@ -1356,12 +1357,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1381,8 +1382,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- Aktivoi Laitteistovarjostin
+ Enable hardware shader
+
@@ -1391,8 +1392,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- Tarkka Kertominen
+ Accurate multiplication
+
@@ -1401,8 +1402,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- Aktivoi JIT-Varjostin
+ Enable shader JIT
+
@@ -1411,7 +1412,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1421,7 +1422,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentation
@@ -1461,7 +1462,7 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
+ Use disk shader cache
@@ -1486,7 +1487,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1975,12 +1976,12 @@ Would you like to ignore the error and continue?
- Swap Screens
- Vaihda näytöt
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2097,7 +2098,7 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2445,7 +2446,7 @@ Would you like to ignore the error and continue?
- Use Virtual SD
+ Use virtual SD card
@@ -2455,7 +2456,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage location
@@ -2542,8 +2543,8 @@ online features (if installed)
- Region:
-
+ Region
+ Alue
@@ -2551,326 +2552,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameKäyttäjänimi
-
+ BirthdaySyntymäpäivä
-
+ JanuaryTammikuu
-
+ FebruaryHelmikuu
-
+ MarchMaaliskuu
-
+ AprilHuhtikuu
-
+ MayToukokuu
-
+ JuneKesäkuu
-
+ JulyHeinäkuu
-
+ AugustElokuu
-
+ SeptemberSyyskuu
-
+ OctoberLokakuu
-
+ NovemberMarraskuu
-
+ DecemberJoulukuu
-
+ LanguageKieli
-
+ Note: this can be overridden when region setting is auto-selectHuom: tämä voidaan korvata jos alueasetukset ovat automaattiset
-
+ Japanese (日本語)Japani (日本語)
-
+ EnglishEnglanti
-
+ French (français)Ranska (français)
-
+ German (Deutsch)Saksa (Deutsch)
-
+ Italian (italiano)Italia (italiano)
-
+ Spanish (español)Espanja (español)
-
+ Simplified Chinese (简体中文)Yksinkertaistettu Kiina (简体中文)
-
+ Korean (한국어)Korea (한국어)
-
+ Dutch (Nederlands)Hollanti (Nederlands)
-
+ Portuguese (português)Portugali (português)
-
+ Russian (Русский)Venäjä (Русский)
-
+ Traditional Chinese (正體中文)Tavallinen Kiina (正體中文)
-
+ Sound output modeÄänen ulostulotila
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryMaa
-
+ ClockKello
-
+ System ClockJärjestelmän Kello
-
+ Fixed TimeYksittäinen Aika
-
+ Startup timeAloitusaika
-
+ yyyy-MM-ddTHH:mm:ssvvvv-KK-ppATT:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:Konsolin Tunnus:
-
-
+
+ RegenerateUudista
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3580,76 +3592,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1Konsolin Tunnus: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningVaroitus
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3764,13 +3776,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Käyttöliittymän kieli:
+ Interface Language
+
- Theme:
- Teema:
+ Theme
+
@@ -3779,8 +3791,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- Kuvakkeen koko:
+ Icon Size
+
@@ -3800,8 +3812,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- Rivin 1 Teksti:
+ Row 1 Text
+
@@ -3835,17 +3847,17 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- Rivin 2 Teksti:
+ Row 2 Text
+
- Hide Titles without Icon
- Piilota pelit ilman kuvakkeita
+ Hide titles without icon
+
- Single Line Mode
+ Single line mode
@@ -3855,7 +3867,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3938,12 +3950,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingYhdistetään
-
+ ConnectYhdistä
@@ -4062,581 +4074,595 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Nykyinen emulaationopeus. Arvot yli tai ali 100% osoittavat, että emulaatio on nopeampi tai hitaampi kuin 3DS:än nopeus.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.
-
+ MicroProfile (unavailable)
-
+ Clear Recent Files
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usageCIA pitää asenaa ennen käyttöä
-
+ Before using this CIA, you must install it. Do you want to install it now?Ennen, kun voit käyttää tätä CIA:aa, sinun täytyy asentaa se. Haluatko asentaa sen nyt?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 FolderVirhe Avatessa %1 Kansio
-
-
+
+ Folder does not exist!Kansio ei ole olemassa!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...
-
-
+
+ CancelPeruuta
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.
-
+ Error Opening %1Virhe avatessa %1
-
+ Select DirectoryValitse hakemisto
-
+ Properties
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.
-
+ Load FileLataa tiedosto
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesLataa tiedostoja
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Kaikki tiedostot (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 asennettiin onnistuneesti.
-
+ Unable to open FileTiedostoa ei voitu avata
-
+ Could not open %1Ei voitu avata %1
-
+ Installation abortedAsennus keskeytetty
-
+ The installation of %1 was aborted. Please see the log for more details
-
+ Invalid FileSopimaton Tiedosto
-
+ %1 is not a valid CIA%1 ei ole sopiva CIA-tiedosto
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.
-
+ File not foundTiedostoa ei löytynyt
-
+ File "%1" not foundTiedosto "%1" ei löytynyt.
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo tiedosto (%1);; Kaikki tiedostot (*.*)
-
+ Load AmiiboLataa Amiibo
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieTallenna Video
-
+ Movie recording cancelled.
-
-
+
+ Movie Saved
-
-
+
+ The movie is successfully saved.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4645,274 +4671,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Nopeus: %1%
-
+ Speed: %1% / %2%Nopeus %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msKuvaruutu: %1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archive
-
+ System Archive Not Found
-
+ System Archive Missing
-
+ Save/load Error
-
+ Fatal Error
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encountered
-
+ ContinueJatka
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Haluatko poistua nyt?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback Completed
-
+ Movie playback completed.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5018,239 +5034,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilityYhteensopivuus
-
-
+
+ RegionAlue
-
-
+
+ File typeTiedoston tyyppi
-
-
+
+ SizeKoko
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ Properties
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan Subfolders
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory LocationAvaa hakemiston sijainti
-
+ ClearTyhjennä
-
+ NameNimi
@@ -5258,77 +5289,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectTäydellinen
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatMahtava
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayHyvä
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadHuono
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuIntro/Menu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootEi Käynnisty
-
+ The app crashes when attempting to startup.
-
+ Not TestedEi Testattu
-
+ The app has not yet been tested.
@@ -5336,7 +5367,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5344,27 +5375,27 @@ Screen.
GameListSearchField
-
+ of
-
+ result
-
+ results
-
+ Filter:Suodatin:
-
+ Enter pattern to filter
@@ -5692,77 +5723,77 @@ Screen.
-
+ SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
-
+ Compare Result: %1, %2
-
+ Static Condition: %1
-
+ Dynamic Conditions: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
-
+ Instruction offset: 0x%1
-
+ -> 0x%2
-
+ (last instruction)
@@ -6061,32 +6092,32 @@ Debug Message:
Salasana:
-
+ Room NameHuoneen nimi
-
+ Preferred Application
-
+ HostIsäntä
-
+ PlayersPelaajia
-
+ RefreshingPäivitetään
-
+ Refresh ListPäivitä lista
@@ -6587,7 +6618,7 @@ Debug Message:
File:
- Tiedosto:
+
@@ -6679,7 +6710,7 @@ Debug Message:
File:
- Tiedosto:
+
@@ -7084,32 +7115,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionVirheellinen alue
-
+ Installed TitlesAsennetut pelit
-
+ System Titles
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/fr.ts b/dist/languages/fr.ts
index 04532a45d..976c6e984 100644
--- a/dist/languages/fr.ts
+++ b/dist/languages/fr.ts
@@ -298,8 +298,8 @@ Cela bannira à la fois son nom du forum et son adresse IP.
- Emulation:
- Émulation :
+ Emulation
+ Émulation
@@ -403,6 +403,7 @@ Cela bannira à la fois son nom du forum et son adresse IP.
+ CameraCaméra
@@ -414,8 +415,8 @@ Cela bannira à la fois son nom du forum et son adresse IP.
- Camera to configure:
- Caméra à configurer :
+ Camera to Configure
+
@@ -435,8 +436,8 @@ Cela bannira à la fois son nom du forum et son adresse IP.
- Camera mode:
- Mode de la caméra :
+ Camera mode
+
@@ -456,8 +457,8 @@ Cela bannira à la fois son nom du forum et son adresse IP.
- Camera position:
- Position de la caméra :
+ Camera position
+
@@ -482,8 +483,8 @@ Cela bannira à la fois son nom du forum et son adresse IP.
- Camera Image Source:
- Source de l'image de la caméra :
+ Camera Image Source
+
@@ -502,8 +503,8 @@ Cela bannira à la fois son nom du forum et son adresse IP.
- File:
- Fichier :
+ File
+ Fichier
@@ -516,11 +517,6 @@ Cela bannira à la fois son nom du forum et son adresse IP.
Select the system camera to useChoisissez la caméra système à utiliser
-
-
- Camera:
- Caméra :
- <Default>
@@ -534,8 +530,8 @@ Cela bannira à la fois son nom du forum et son adresse IP.
- Flip:
- Basculement :
+ Flip
+
@@ -1024,7 +1020,7 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
Enable Linear Filtering
- Activer le filtrage linéaire
+
@@ -1088,8 +1084,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Reverse Side by Side
- Côte à côte inversé
+ Side by Side Full Width
+
@@ -1139,7 +1135,7 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
Disable Right Eye Rendering
- Désactiver le rendu de l'œil droit
+
@@ -1147,49 +1143,54 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
<html><head/><body><p>Désactiver le rendu de l'œil droit</p><p>Désactive le rendu de l'œil droit lorsque le mode stéréoscopique n'est pas utilisé. Améliore considérablement les performances dans certaines applications, mais peut provoquer un scintillement dans d'autres.</p></body></html>
-
+
+ Swap Eyes
+
+
+
+ UtilityUtilitaires
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Remplace les textures par des fichiers PNG.</p><p>Les textures sont chargées depuis load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
- Utiliser des textures personnalisées
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Extrait les textures en fichiers PNG.</p><p>Les textures sont extraites vers dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
- Exporter les textures
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Charge toutes les textures personnalisées en mémoire au démarrage, au lieu de les charger lorsque l'application en a besoin.</p></body></html>
-
- Preload Custom Textures
- Précharger des textures personnalisées
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head><body><p>Chargez les textures personnalisées de manière asynchrone avec des threads d’arrière-plan pour réduire le retard de chargement </p></body></head></html>
-
- Async Custom Texture Loading
- Chargement asynchrone des textures personnalisées
+
+ Async custom texture loading
+
@@ -1246,13 +1247,13 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Set emulation speed:
- Définir la vitesse d'émulation :
+ Set emulation speed
+
- Emulation Speed:
- Vitesse d'émulation :
+ Emulation Speed
+
@@ -1363,13 +1364,13 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- SPIR-V Shader Generation
- Génération de shaders SPIR-V
+ SPIR-V shader generation
+
- Disable GLSL -> SPIR-V Optimizer
- Désactiver l'optimiseur GLSL -> SPIR-V
+ Disable GLSL -> SPIR-V optimizer
+
@@ -1388,8 +1389,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Enable Hardware Shader
- Activer le nuanceur matériel
+ Enable hardware shader
+
@@ -1398,8 +1399,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Accurate Multiplication
- Multiplication précise
+ Accurate multiplication
+
@@ -1408,8 +1409,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Enable Shader JIT
- Activer le nuanceur JIT
+ Enable shader JIT
+
@@ -1418,8 +1419,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Enable Async Shader Compilation
- Activer la compilation asynchrone des shaders
+ Enable async shader compilation
+
@@ -1428,8 +1429,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Enable Async Presentation
- Activer la présentation asynchrone
+ Enable async presentation
+
@@ -1468,8 +1469,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Use Disk Shader Cache
- Utiliser le cache de shaders sur disque
+ Use disk shader cache
+
@@ -1493,8 +1494,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Delay application render thread:
- Délai du thread de rendu de l'application :
+ Delay Application Render Thread
+
@@ -1982,13 +1983,13 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Swap Screens
- Permuter les écrans
+ Swap screens
+
- Rotate Screens Upright
- Rotation des écrans vers le haut
+ Rotate screens upright
+
@@ -2104,8 +2105,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>% d'opacité de l'écran inférieur (OpenGL uniquement)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+
@@ -2452,8 +2453,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Use Virtual SD
- Utiliser une carte SD virtuelle
+ Use virtual SD card
+
@@ -2462,8 +2463,8 @@ Souhaitez vous ignorer l'erreur et poursuivre ?
- Use Custom Storage
- Utiliser le stockage personnalisé
+ Use custom storage location
+
@@ -2550,8 +2551,8 @@ les fonctionnalités en ligne (si installés)
- Region:
- Région :
+ Region
+ Région
@@ -2559,326 +2560,337 @@ les fonctionnalités en ligne (si installés)
Sélection automatique
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameNom d'utilisateur
-
+ BirthdayDate de naissance
-
+ JanuaryJanvier
-
+ FebruaryFévrier
-
+ MarchMars
-
+ AprilAvril
-
+ MayMai
-
+ JuneJuin
-
+ JulyJuillet
-
+ AugustAoût
-
+ SeptemberSeptembre
-
+ OctoberOctobre
-
+ NovemberNovembre
-
+ DecemberDécembre
-
+ LanguageLangue
-
+ Note: this can be overridden when region setting is auto-selectNote : ceci peut être remplacé quand le paramètre de région est défini sur Automatique
-
+ Japanese (日本語)Japonais (日本語)
-
+ EnglishAnglais (English)
-
+ French (français)Français
-
+ German (Deutsch)Allemand (Deutsch)
-
+ Italian (italiano)Italien (italiano)
-
+ Spanish (español)Espagnol (español)
-
+ Simplified Chinese (简体中文)Chinois simplifié (简体中文)
-
+ Korean (한국어)Coréen (한국어)
-
+ Dutch (Nederlands)Néerlandais (Nederlands)
-
+ Portuguese (português)Portugais (português)
-
+ Russian (Русский)Russe (Русский)
-
+ Traditional Chinese (正體中文)Chinois traditionnel (正體中文)
-
+ Sound output modeMode de sortie audio
-
+ MonoMono
-
+ StereoStéréo
-
+ SurroundSurround
-
+ CountryPays
-
+ ClockHorloge
-
+ System ClockHorloge système
-
+ Fixed TimeTemps fixe
-
+ Startup timeHeure au démarrage
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset timeDécalage horaire
-
+ daysjours
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksTicks systèmes initiaux
-
+ RandomAléatoire
-
+ FixedFixe
-
+ Initial System Ticks OverrideRemplacement des ticks systèmes initiaux
-
+ Play CoinsPièces de jeu
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body></p>Nombre de pas par heure reporté par le podomètre. Sur une échelle de 0 à 65 535.</p></body></html>
-
+ Pedometer Steps per HourPas de podomètre par heure
-
+ Run System Setup when Home Menu is launchedExécuter la configuration du système lorsque le menu home est lancé
-
+ Console ID:ID de la console :
-
-
+
+ RegenerateRegénérer
-
+ MAC:MAC :
-
- 3GX Plugin Loader:
- 3GX Plugin Loader :
+
+ 3GX Plugin Loader
+
-
+ Enable 3GX plugin loaderActiver le 3GX Plugin Loader
-
+ Allow applications to change plugin loader statePermettre aux applications de modifier l'état du Plugin Loader
-
+ Real Console Unique DataDonnées uniques d'une vraie console
-
+ Your real console is linked to Azahar.Votre console réelle est liée à Azahar.
-
+ UnlinkDissocier
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseChoisir
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.Les paramètres du système ne sont disponibles que lorsque les applications ne sont pas en cours d'exécution.
@@ -3588,76 +3600,76 @@ les fonctionnalités en ligne (si installés)
Fichier Sed (*.sed);;Tous les fichiers (*.*)
-
-
+
+ Console ID: 0x%1Console ID : 0x%1
-
-
+
+ MAC: %1MAC : %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?Cela remplacera l'ID actuel de votre console virtuelle 3DS par un nouveau. L'ID actuel de votre console virtuelle 3DS ne pourra pas être récupéré. Cela pourrait avoir des effets inattendus sur certaines applications. L'opération peut échouer si vous utilisez une sauvegarde de configuration obsolète. Continuer ?
-
-
-
+
+
+ WarningAvertissement
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Cela remplacera votre adresse MAC actuelle par une nouvelle. Il n'est pas recommandé de faire cela si vous avez récupéré l'adresse MAC depuis votre console réelle à l'aide de l'outil de configuration. Continuer ?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?Cette action désassociera votre console réelle d'Azahar, avec les conséquences suivantes :<br><ul><li>Votre OTP, SecureInfo et LocalFriendCodeSeed seront supprimés d'Azahar.</li><li>Votre liste d'amis sera réinitialisée et vous serez déconnecté de votre compte NNID/PNID.</li><li>Les fichiers système et les titres de l'eShop obtenus via Azahar deviendront inaccessibles jusqu'à ce que la même console soit à nouveau connectée (les données sauvegardées ne seront pas perdues).</li></ul><br>Continuer ?
-
+ Invalid country for configured regionPays invalide pour la région configurée
-
+ Invalid country for console unique dataPays invalide pour les données uniques de la console
-
+ Status: LoadedStatut : Chargé
-
+ Status: Loaded (Invalid Signature)Statut : Chargé (signature invalide)
-
+ Status: Loaded (Region Changed)Statut : Chargé (région modifiée)
-
+ Status: Not FoundStatut : Introuvable
-
+ Status: InvalidStatut : invalide
-
+ Status: IO ErrorStatut : Erreur d'E/S
@@ -3773,13 +3785,13 @@ Glissez les points pour modifier la position, ou double-cliquez les cellules pou
- Interface language:
- Langue de l'interface :
+ Interface Language
+
- Theme:
- Thème :
+ Theme
+
@@ -3788,8 +3800,8 @@ Glissez les points pour modifier la position, ou double-cliquez les cellules pou
- Icon Size:
- Talle de l'icône :
+ Icon Size
+
@@ -3809,8 +3821,8 @@ Glissez les points pour modifier la position, ou double-cliquez les cellules pou
- Row 1 Text:
- Texte de la ligne 1 :
+ Row 1 Text
+
@@ -3844,18 +3856,18 @@ Glissez les points pour modifier la position, ou double-cliquez les cellules pou
- Row 2 Text:
- Texte de la ligne 2 :
+ Row 2 Text
+
- Hide Titles without Icon
- Masquer les titres sans icône
+ Hide titles without icon
+
- Single Line Mode
- Mode simple ligne
+ Single line mode
+
@@ -3864,8 +3876,8 @@ Glissez les points pour modifier la position, ou double-cliquez les cellules pou
- Show Advanced Frame Time Info
- Afficher les informations avancées sur le temps d'image
+ Show advanced frame time info
+
@@ -3947,12 +3959,12 @@ Glissez les points pour modifier la position, ou double-cliquez les cellules pou
DirectConnectWindow
-
+ ConnectingConnexion en cours
-
+ ConnectConnecter
@@ -4072,497 +4084,511 @@ Veuillez vérifier votre installation FFmpeg utilisée pour la compilation.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedAucun périphérique Vulkan adapté détecté
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.L'initialisation de Vulkan a échoué au démarrage.<br/>Votre GPU pourrait ne pas prendre en charge Vulkan 1.1, ou vous pourriez ne pas avoir le pilote graphique le plus récent.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.Vitesse actuelle du trafic Artic. Des valeurs plus élevées indiquent des charges de transfert plus importantes.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Vitesse actuelle d'émulation. Les valeurs supérieures ou inférieures à 100% indiquent que l'émulation est plus rapide ou plus lente qu'une 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.Nombre d'images par seconde affichées par l'application. Cela varie d'une application à l'autre et d'une scène à l'autre.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Temps nécessaire pour émuler une trame 3DS, sans compter la limitation de trame ou la synchronisation verticale V-Sync. Pour une émulation à pleine vitesse, cela ne devrait pas dépasser 16,67 ms.
-
+ MicroProfile (unavailable)MicroProfile (indisponible)
-
+ Clear Recent FilesEffacer les fichiers récents
-
+ &Continue&Continuer
-
+ &Pause&Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar exécute une application
-
-
+
+ Invalid App FormatFormat d'application invalide
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Le format de votre application n'est pas pris en charge.<br/> Veuillez suivre les guides pour extraire à nouveau vos <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>cartouches de jeu</a> ou les <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>titres installés</a>.
-
+ App CorruptedApplication corrompue
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Votre application est corrompue. <br/>Veuillez suivre les guides pour récupérer vos <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>cartouches de jeux</a> ou les <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>titres installés</a>.
-
+ App EncryptedApplication encryptée
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Votre application est encryptée. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Consultez notre blog pour plus d'informations.</a>
-
+ Unsupported AppApplication non supportée
-
+ GBA Virtual Console is not supported by Azahar.La console virtuelle de la GBA n'est pas prise en charge par Azahar.
-
-
+
+ Artic ServerServeur Artic
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!Erreur lors du chargement de l'application !
-
+ An unknown error occurred. Please see the log for more details.Une erreur inconnue s'est produite. Veuillez consulter le journal pour plus de détails.
-
+ CIA must be installed before usageCIA doit être installé avant utilisation
-
+ Before using this CIA, you must install it. Do you want to install it now?Avant d'utiliser ce CIA, vous devez l'installer. Voulez-vous l'installer maintenant ?
-
+ Quick LoadChargement rapide
-
+ Quick SaveSauvegarde rapide
-
-
+
+ Slot %1Emplacement %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Sauvegarde rapide - %1
-
+ Quick Load - %1Chargement rapide - %1
-
+ Slot %1 - %2 %3Emplacement %1 - %2 %3
-
+ Error Opening %1 FolderErreur lors de l'ouverture du dossier %1
-
-
+
+ Folder does not exist!Le répertoire n'existe pas !
-
+ Remove Play Time DataRetirer les données de temps de jeu ?
-
+ Reset play time?Réinitialiser le temps de jeu ?
-
-
-
-
+
+
+
+ Create ShortcutCréer un raccourci
-
+ Do you want to launch the application in fullscreen?Voulez-vous lancer l'application en plein écran ?
-
+ Successfully created a shortcut to %1Création réussie d'un raccourci vers %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Cela créera un raccourci vers l'AppImage actuelle. Il se peut que cela ne fonctionne pas bien si vous effectuez une mise à jour. Poursuivre ?
-
+ Failed to create a shortcut to %1Échec de la création d'un raccourci vers %1
-
+ Create IconCréer icône
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.Impossible de créer le fichier icône. Le chemin "%1" n'existe pas et ne peut pas être créé.
-
+ Dumping...Extraction...
-
-
+
+ CancelAnnuler
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Impossible d'extraire les RomFS de base.
Référez-vous aux logs pour plus de détails.
-
+ Error Opening %1Erreur lors de l'ouverture de %1
-
+ Select DirectorySélectionner un répertoire
-
+ PropertiesPropriétés
-
+ The application properties could not be loaded.Les propriétés de l'application n'ont pas pu être chargées.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Exécutable 3DS (%1);;Tous les fichiers (*.*)
-
+ Load FileCharger un fichier
-
-
+
+ Set Up System FilesConfigurer les fichiers système
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>Azahar a besoin des données et des fichiers de firmware propres à une console réelle pour pouvoir utiliser certaines de ses fonctionnalités.<br>Ces fichiers et données peuvent être configurés à l'aide de l'outil <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool.</a><br>Notes :<ul><li><b>Cette opération installera des données uniques à la console Azahar. Ne partagez pas vos dossiers utilisateur ou nand <br>après avoir effectué le processus d'installation !</b></li><li>Pendant le processus d'installation, Azahar se connectera à la console exécutant l'outil d'installation. Vous pourrez ensuite déconnecter la <br>console à partir de l'onglet Système dans le menu de configuration de l'émulateur.</li><li>Ne vous connectez pas à Internet avec Azahar et votre console 3DS en même temps après avoir configuré les fichiers système,<br> car cela pourrait causer des problèmes.</li><li>La configuration de l'ancienne 3DS est nécessaire pour que la configuration de la nouvelle 3DS fonctionne (il est recommandé d'effectuer les deux modes de configuration).</li><li>Les deux modes de configuration fonctionnent quel que soit le modèle de console sur lequel l'outil de configuration est exécuté.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:Entrer l'adresse de l'outil de configuration Artic d'Azahar :
-
+ <br>Choose setup mode:<br>Choisissez le mode de configuration :
-
+ (ℹ️) Old 3DS setup(ℹ️) Configuration Old 3DS
-
-
+
+ Setup is possible.La configuration est possible.
-
+ (⚠) New 3DS setup(⚠) Configuration New 3DS
-
+ Old 3DS setup is required first.La configuration Old 3DS est requise d'abord.
-
+ (✅) Old 3DS setup(✅) Configuration Old 3DS
-
-
+
+ Setup completed.Configuration terminée.
-
+ (ℹ️) New 3DS setup(ℹ️) Configuration New 3DS
-
+ (✅) New 3DS setup(✅) Configuration New 3DS
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?Les fichiers système pour le mode sélectionné sont déjà configurés.
Voulez-vous les réinstaller quand même ?
-
+ Load FilesCharger des fichiers
-
+ 3DS Installation File (*.cia *.zcia)Fichier d'installation 3DS (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Tous les fichiers (*.*)
-
+ Connect to Artic BaseSe connecter à Artic Base
-
+ Enter Artic Base server address:Entrez l'adresse du serveur Artic Base :
-
+ %1 has been installed successfully.%1 a été installé avec succès.
-
+ Unable to open FileImpossible d'ouvrir le fichier
-
+ Could not open %1Impossible d'ouvrir %1
-
+ Installation abortedInstallation annulée
-
+ The installation of %1 was aborted. Please see the log for more detailsL'installation de %1 a été interrompue. Veuillez consulter les logs pour plus de détails.
-
+ Invalid FileFichier invalide
-
+ %1 is not a valid CIA%1 n'est pas un CIA valide
-
+ CIA EncryptedCIA chiffré
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Votre fichier CIA est chiffré.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Consultez notre blog pour plus d'informations.</a>
-
+ Unable to find FileImpossible de trouver le fichier
-
+ Could not find %1Impossible de trouver %1
-
-
-
- Error compressing file
- Erreur lors de la compression du fichier
+
+
+
+
+ Z3DS Compression
+
-
- File compress operation failed, check log for details.
- L'opération de compression du fichier a échoué, consultez le journal pour plus de détails.
+
+ Failed to compress some files, check log for details.
+
-
-
-
- Error decompressing file
- Erreur lors de la décompression du fichier
+
+ Failed to decompress some files, check log for details.
+
-
- File decompress operation failed, check log for details.
- L'opération de décompression du fichier a échoué, consultez le journal pour plus de détails.
+
+ All files have been compressed successfully.
+
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...Désinstallation de '%1'...
-
+ Failed to uninstall '%1'.Échec de la désinstallation de '%1'.
-
+ Successfully uninstalled '%1'.Désinstallation de '%1' réussie.
-
+ File not foundFichier non trouvé
-
+ File "%1" not foundLe fichier "%1" n'a pas été trouvé
-
+ SavestatesPoints de récupération
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4571,86 +4597,86 @@ Use at your own risk!
À utiliser à vos risques et périls !
-
-
-
+
+
+ Error opening amiibo data fileErreur d'ouverture du fichier de données amiibo
-
+ A tag is already in use.Un tag est déjà en cours d'utilisation.
-
+ Application is not looking for amiibos.L'application ne recherche pas d'amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Fichier Amiibo (%1);; Tous les fichiers (*.*)
-
+ Load AmiiboCharger un Amiibo
-
+ Unable to open amiibo file "%1" for reading.Impossible d'ouvrir le fichier amiibo "%1" pour le lire.
-
+ Record MovieEnregistrer une vidéo
-
+ Movie recording cancelled.Enregistrement de la vidéo annulé.
-
-
+
+ Movie SavedVidéo enregistrée
-
-
+
+ The movie is successfully saved.La vidéo a été enregistrée avec succès.
-
+ Application will unpauseL'application sera rétablie.
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?L'application sera rétablie et l'image suivante sera capturée. Cela vous convient-il ?
-
+ Invalid Screenshot DirectoryRépertoire des captures d'écran invalide
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.Création du répertoire des captures d'écran spécifié impossible. Le chemin d'accès vers les captures d'écran est réinitialisé à sa valeur par défaut.
-
+ Could not load video dumperImpossible de charger le module de capture vidéo.
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4663,275 +4689,265 @@ Pour installer FFmpeg sur Azahar, appuyez sur Ouvrir et sélectionnez votre rép
Pour afficher un guide sur l'installation de FFmpeg, appuyez sur Aide.
-
- Load 3DS ROM File
- Charger le fichier ROM 3DS
+
+ Load 3DS ROM Files
+
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
- Fichiers ROM 3DS (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
+
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
- Le fichier sélectionné n'est pas au format ROM 3DS compatible. Assurez-vous d'avoir choisi le bon fichier et qu'il n'est pas crypté.
-
-
-
- The selected file is already compressed.
- Le fichier sélectionné est déjà compressé.
-
-
-
+ 3DS Compressed ROM File (*.%1)Fichier ROM compressé 3DS (*.%1)
-
+ Save 3DS Compressed ROM FileEnregistrer le fichier ROM compressé 3DS
-
- Load 3DS Compressed ROM File
- Charger le fichier ROM compressé 3DS
+
+ Select Output 3DS Compressed ROM Folder
+
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)Fichiers ROM compressés 3DS (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
- Le fichier sélectionné n'est pas au format ROM 3DS compressé compatible. Assurez-vous d'avoir choisi le bon fichier.
-
-
-
- The selected file is already decompressed.
- Le fichier sélectionné est déjà décompressé.
-
-
-
+ 3DS ROM File (*.%1)Fichier ROM 3DS (*.%1)
-
+ Save 3DS ROM FileEnregistrer le fichier ROM 3DS
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectorySélectionnez le répertoire FFmpeg.
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.Le répertoire FFmpeg fourni manque %1. Assurez-vous d'avoir sélectionné le répertoire correct.
-
+ FFmpeg has been sucessfully installed.FFmpeg a été installé avec succès.
-
+ Installation of FFmpeg failed. Check the log file for details.L'installation de FFmpeg a échoué. Consultez le fichier journal pour plus de détails.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.Impossible de lancer le dump vidéo.<br>Veuillez vous assurer que l'encodeur vidéo est configuré correctement.<br>Reportez-vous au logs pour plus de détails.
-
+ Recording %1Enregistrement %1
-
+ Playing %1 / %2Lecture de %1 / %2
-
+ Movie FinishedVidéo terminée
-
+ (Accessing SharedExtData)(Accès à SharedExtData)
-
+ (Accessing SystemSaveData)(Accès à SystemSaveData)
-
+ (Accessing BossExtData)(Accès à BossExtData)
-
+ (Accessing ExtData)(Accès à ExtData)
-
+ (Accessing SaveData)(Accès à SaveData)
-
+ MB/sMo/s
-
+ KB/sKo/s
-
+ Artic Traffic: %1 %2%3Trafic Artic : %1 %2%3
-
+ Speed: %1%Vitesse : %1%
-
+ Speed: %1% / %2%Vitesse : %1% / %2%
-
+ App: %1 FPSApp: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)Frame: %1 ms (CPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msTrame : %1 ms
-
+ VOLUME: MUTEVOLUME : MUET
-
+ VOLUME: %1%Volume percentage (e.g. 50%)VOLUME : %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.%1 est manquant. Veuillez <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>vider les archives de votre système</a>. <br/>La poursuite de l'émulation peut entraîner des plantages et des bogues.
-
+ A system archiveUne archive système
-
+ System Archive Not FoundArchive système non trouvée
-
+ System Archive MissingArchive système absente
-
+ Save/load ErrorErreur de sauvegarde/chargement
-
+ Fatal ErrorErreur fatale
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.Une erreur fatale s'est produite. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Consultez le journal</a> pour plus de détails.<br/> La poursuite de l'émulation peut entraîner des plantages et des bogues.
-
+ Fatal Error encounteredUne erreur fatale s'est produite
-
+ ContinueContinuer
-
+ Quit ApplicationQuitter l'application
-
+ OKOK
-
+ Would you like to exit now?Voulez-vous quitter maintenant ?
-
+ The application is still running. Would you like to stop emulation?L'application est toujours en cours d'exécution. Voulez-vous arrêter l'émulation ?
-
+ Playback CompletedLecture terminée
-
+ Movie playback completed.Lecture de la vidéo terminée.
-
+ Update AvailableMise à jour disponible
-
+ Update %1 for Azahar is available.
Would you like to download it?La mise à jour %1 pour Azahar est disponible.
Souhaitez-vous la télécharger ?
-
+ Primary WindowFenêtre principale
-
+ Secondary WindowFenêtre secondaire
@@ -5037,175 +5053,190 @@ Souhaitez-vous la télécharger ?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>IMPORTANT : Les fichiers encryptés et les fichiers .3ds ne sont plus pris en charge. Il peut être nécessaire de les décrypter et/ou de les renommer en .cci. <a href='https://azahar-emu.org/blog/game-loading-changes/'>En savoir plus.</a>
-
+ Don't show againNe pas montrer à nouveau
-
-
+
+ CompatibilityCompatibilité
-
-
+
+ RegionRégion
-
-
+
+ File typeType de fichier
-
-
+
+ SizeTaille
-
-
+
+ Play timeTemps de jeu
-
+ FavoriteFavori
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenOuvrir
-
+ Application LocationChemin de l'application
-
+ Save Data LocationChemin des données de sauvegarde
-
+ Extra Data LocationChemin des données additionnelles
-
+ Update Data LocationChemin des données de mise à jour
-
+ DLC Data LocationChemin des données de DLC
-
+ Texture Dump LocationChemin d'extraction de textures
-
+ Custom Texture LocationChemin des textures personnalisées
-
+ Mods LocationEmplacement des Mods
-
+ Dump RomFSExtraire RomFS
-
+ Disk Shader CacheCache de shader de disque
-
+ Open Shader Cache LocationOuvrir l'emplacement du cache de shader
-
+ Delete OpenGL Shader CacheSupprimer le cache de shader OpenGL
-
+ UninstallDésinstaller
-
+ EverythingTout
-
+ ApplicationApplication
-
+ UpdateMise à jour
-
+ DLCDLC
-
+ Remove Play Time DataRetirer les données de temps de jeu
-
+ Create ShortcutCréer un raccourci
-
+ Add to DesktopAjouter au bureau
-
+ Add to Applications MenuAjouter au menu d'applications
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesPropriétés
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5214,64 +5245,64 @@ This will delete the application if installed, as well as any installed updates
Cela supprimera l'application si elle est installée, ainsi que toutes ses mises à jour et DLCs.
-
-
+
+ %1 (Update)%1 (Mise à jour)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Êtes-vous sûr de vouloir désinstaller '%1' ?
-
+ Are you sure you want to uninstall the update for '%1'?Êtes-vous sûr de vouloir désinstaller la mise à jour de '%1' ?
-
+ Are you sure you want to uninstall all DLC for '%1'?Êtes-vous sûr de vouloir désinstaller le DLC de '%1' ?
-
+ Scan SubfoldersScanner les sous-dossiers
-
+ Remove Application DirectorySupprimer le répertoire d'applications
-
+ Move UpDéplacer en haut
-
+ Move DownDéplacer en bas
-
+ Open Directory LocationOuvrir l'emplacement de ce répertoire
-
+ ClearEffacer
-
+ NameNom
@@ -5279,82 +5310,82 @@ Cela supprimera l'application si elle est installée, ainsi que toutes ses
GameListItemCompat
-
+ PerfectParfait
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.L'application fonctionne parfaitement, sans problème audio ou graphique, et toutes les fonctionnalités testées fonctionnent comme prévu sans qu'aucune solution.
de contournement ne soit nécessaire.
-
+ GreatBien
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.L'application fonctionne avec quelques glitches graphiques et/ou audios et est jouable du début à la fin. Peut demander quelques
contournements.
-
+ OkayOk
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.L'application fonctionne avec des glitches graphiques et/ou audios majeurs, mais l'appli est jouable du début à la fin avec
des contournements.
-
+ BadMauvais
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.L'appli fonctionne, mais avec des glitches graphiques et/ou audios majeurs. Difficile de progresser dans des endroits spécifiques à cause des glitches
même avec des contournements.
-
+ Intro/MenuIntro/Menu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.L'appli est complètement injouable à cause des glitches audios et graphiques majeurs. Difficile de progresser après l'écran
de démarrage.
-
+ Won't BootNe se lance pas
-
+ The app crashes when attempting to startup.L'application plante au démarrage.
-
+ Not TestedNon testé
-
+ The app has not yet been tested.L'appli n'a pas été testée. Référez-vous aux versions américaines pour voir les potentiels tests effectués !
@@ -5362,7 +5393,7 @@ de démarrage.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listDouble-cliquez pour ajouter un nouveau dossier à la liste des applications.
@@ -5370,27 +5401,27 @@ de démarrage.
GameListSearchField
-
+ ofsur
-
+ resultrésultat
-
+ resultsrésultats
-
+ Filter:Filtre :
-
+ Enter pattern to filterEntrer le motif de filtrage
@@ -5718,87 +5749,87 @@ de démarrage.
Index du cycle :
-
+ SRC1: %1, %2, %3, %4
SRC1 : %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2 : %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3 : %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN : %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT : %1, %2, %3, %4
-
+ Address Registers: %1, %2
Adresse des Registres : %1, %2
-
+ Compare Result: %1, %2
Comparer le résultat : %1, %2
-
+ Static Condition: %1
Condition Statique : %1
-
+ Dynamic Conditions: %1, %2
Conditions Dynamiques : %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Paramètres de la boucle : %1 (répétitions), %2 (initialisation), %3 (incrémentation), %4
-
+ Instruction offset: 0x%1Instruction offset : 0x%1
-
+ -> 0x%2-> 0x%2
-
+ (last instruction)(instruction précédente)
@@ -6099,32 +6130,32 @@ Message de débogage :
Mot de passe :
-
+ Room NameNom du salon
-
+ Preferred ApplicationApplication favorite
-
+ HostHôte
-
+ PlayersJoueurs
-
+ RefreshingActualisation
-
+ Refresh ListActualiser la liste
@@ -7126,32 +7157,32 @@ Il a peut-être quitté la salon.
%1 (0x%2)
-
+ Unsupported encrypted applicationApplication chiffrée non supportée
-
+ Invalid regionRégion Invalide
-
+ Installed TitlesTitres installés
-
+ System TitlesTitres système
-
+ Add New Application DirectoryAjouter un nouvel emplacement d'applications
-
+ FavoritesFavorites
diff --git a/dist/languages/hu_HU.ts b/dist/languages/hu_HU.ts
index 0d18a05a7..498f826c8 100644
--- a/dist/languages/hu_HU.ts
+++ b/dist/languages/hu_HU.ts
@@ -290,8 +290,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- Emuláció:
+ Emulation
+ Emuláció
@@ -395,6 +395,7 @@ This would ban both their forum username and their IP address.
+ CameraKamera
@@ -406,8 +407,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- Konfigurálandó kamera:
+ Camera to Configure
+
@@ -427,8 +428,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- Kamera mód:
+ Camera mode
+
@@ -448,8 +449,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- Kamera pozíció:
+ Camera position
+
@@ -474,8 +475,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- Kamera Kép Forrása:
+ Camera Image Source
+
@@ -494,8 +495,8 @@ This would ban both their forum username and their IP address.
- File:
- Fájl:
+ File
+
@@ -508,11 +509,6 @@ This would ban both their forum username and their IP address.
Select the system camera to useVálaszd ki a használandó rendszerkamerát
-
-
- Camera:
- Kamera:
- <Default>
@@ -526,8 +522,8 @@ This would ban both their forum username and their IP address.
- Flip:
- Forgatás:
+ Flip
+
@@ -1080,7 +1076,7 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1139,48 +1135,53 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
-
+
+ Swap Eyes
+
+
+
+ UtilitySegédprogramok
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
- Egyéni textúrák használata
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
- Textúrák kimentése
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
- Egyéni textúrák előtöltése
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading
@@ -1238,13 +1239,13 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Set emulation speed:
- Emuláció sebességének beállítása:
+ Set emulation speed
+
- Emulation Speed:
- Emuláció sebessége:
+ Emulation Speed
+
@@ -1355,12 +1356,12 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1380,8 +1381,8 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Enable Hardware Shader
- Hardver Shader Bekapcsolása
+ Enable hardware shader
+
@@ -1390,8 +1391,8 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Accurate Multiplication
- Pontos Szorzás
+ Accurate multiplication
+
@@ -1400,8 +1401,8 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Enable Shader JIT
- Shader JIT Bekapcsolása
+ Enable shader JIT
+
@@ -1410,7 +1411,7 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1420,8 +1421,8 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Enable Async Presentation
- Aszinkron prezentálás engedélyezése
+ Enable async presentation
+
@@ -1460,7 +1461,7 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Use Disk Shader Cache
+ Use disk shader cache
@@ -1485,7 +1486,7 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1974,12 +1975,12 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Swap Screens
- Képernyők Cseréje
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2096,7 +2097,7 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2444,8 +2445,8 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Use Virtual SD
- Virtuális SD használata
+ Use virtual SD card
+
@@ -2454,8 +2455,8 @@ Szeretnéd figyelmen kívül hagyni a hibát, és folytatod?
- Use Custom Storage
- Egyéni tárhely használata
+ Use custom storage location
+
@@ -2541,8 +2542,8 @@ online features (if installed)
- Region:
-
+ Region
+ Régió
@@ -2550,326 +2551,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameFelhasználónév
-
+ BirthdaySzületésnap
-
+ JanuaryJanuár
-
+ FebruaryFebruár
-
+ MarchMárcius
-
+ AprilÁprilis
-
+ MayMájus
-
+ JuneJúnius
-
+ JulyJúlius
-
+ AugustAugusztus
-
+ SeptemberSzeptember
-
+ OctoberOktóber
-
+ NovemberNovember
-
+ DecemberDecember
-
+ LanguageNyelv
-
+ Note: this can be overridden when region setting is auto-selectMegjegyzés: Ez felülírható ha a régió auto-kiválasztásra van beállítva
-
+ Japanese (日本語)Japán (日本語)
-
+ EnglishEnglish
-
+ French (français)Francia (français)
-
+ German (Deutsch)Német (Deutsch)
-
+ Italian (italiano)Italian (Italiano)
-
+ Spanish (español)Spanyol (español)
-
+ Simplified Chinese (简体中文)Egyszerűsített Kínai (简体中文)
-
+ Korean (한국어)Koreai (한국어)
-
+ Dutch (Nederlands)Holland (Nederlands)
-
+ Portuguese (português)Portugál (português)
-
+ Russian (Русский)Russian (Русский)
-
+ Traditional Chinese (正體中文)Hagyományos Kínai (正體中文)
-
+ Sound output modeHang kimeneteli mód
-
+ MonoMonó
-
+ StereoSztereó
-
+ SurroundSurround
-
+ CountryOrszág
-
+ ClockÓra
-
+ System ClockRendszeróra
-
+ Fixed TimeFix idő
-
+ Startup time
-
+ yyyy-MM-ddTHH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ RandomVéletlenszerű
-
+ FixedFix
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:Konzol ID:
-
-
+
+ RegenerateRegenerálás
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3579,76 +3591,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1Konzol ID: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningFigyelem
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3763,13 +3775,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Kezelőfelület nyelve:
+ Interface Language
+
- Theme:
- Téma:
+ Theme
+
@@ -3778,8 +3790,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- Ikonméret:
+ Icon Size
+
@@ -3799,8 +3811,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- 1. sor szövege:
+ Row 1 Text
+
@@ -3834,17 +3846,17 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- 2. sor szövege:
+ Row 2 Text
+
- Hide Titles without Icon
- Ikon nélküli játékok elrejtése
+ Hide titles without icon
+
- Single Line Mode
+ Single line mode
@@ -3854,7 +3866,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3937,12 +3949,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingKapcsolódás
-
+ ConnectKapcsolás
@@ -4061,581 +4073,595 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Jelenlegi emulációs sebesség. A 100%-nál nagyobb vagy kisebb értékek azt mutatják, hogy az emuláció egy 3DS-nél gyorsabban vagy lassabban fut.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Mennyi idő szükséges egy 3DS képkocka emulálásához, képkocka-limit vagy V-Syncet leszámítva. Teljes sebességű emulációnál ez maximum 16.67 ms-nek kéne lennie.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesLegutóbbi fájlok törlése
-
+ &Continue&Folytatás
-
+ &Pause&Szünet
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usage
-
+ Before using this CIA, you must install it. Do you want to install it now?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1Foglalat %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3Foglalat %1 - %2 %3
-
+ Error Opening %1 FolderHiba %1 Mappa Megnyitásában
-
-
+
+ Folder does not exist!A mappa nem létezik!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...Kimentés...
-
-
+
+ CancelMégse
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.
-
+ Error Opening %1Hiba Indulás %1
-
+ Select DirectoryKönyvtár Kiválasztása
-
+ PropertiesTulajdonságok
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS állományok (%1);;Minden fájl (*.*)
-
+ Load FileFájl Betöltése
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesFájlok Betöltése
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Minden fájl (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 sikeresen fel lett telepítve.
-
+ Unable to open FileA fájl megnyitása sikertelen
-
+ Could not open %1Nem lehet megnyitni: %1
-
+ Installation abortedTelepítés megszakítva
-
+ The installation of %1 was aborted. Please see the log for more details%1 telepítése meg lett szakítva. Kérjük olvasd el a naplót több részletért.
-
+ Invalid FileIsmeretlen Fájl
-
+ %1 is not a valid CIA%1 nem érvényes CIA
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find FileA fájl nem található
-
+ Could not find %1%1 nem található
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...'%1' eltávolítása...
-
+ Failed to uninstall '%1'.'%1' eltávolítása sikertelen.
-
+ Successfully uninstalled '%1'.'%1' sikeresen eltávolítva.
-
+ File not foundA fájl nem található
-
+ File "%1" not foundFájl "%1" nem található
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo fájl (%1);; Minden fájl (*.*)
-
+ Load AmiiboAmiibo betöltése
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieFilm felvétele
-
+ Movie recording cancelled.Filmfelvétel megszakítva.
-
-
+
+ Movie SavedFilm mentve
-
-
+
+ The movie is successfully saved.A film sikeresen mentve.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4644,274 +4670,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectoryFFmpeg könyvtár kiválasztása
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.FFmpeg sikeresen telepítve.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1Felvétel %1
-
+ Playing %1 / %2Lejátszás %1 / %2
-
+ Movie FinishedFilm befejezve
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Sebesség: %1%
-
+ Speed: %1% / %2%Sebesség: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msKépkocka: %1 ms
-
+ VOLUME: MUTEHANGERŐ: NÉMÍTVA
-
+ VOLUME: %1%Volume percentage (e.g. 50%)HANGERŐ: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveEgy rendszerarchívum
-
+ System Archive Not FoundRendszerarchívum Nem Található
-
+ System Archive Missing
-
+ Save/load ErrorMentési/betöltési hiba
-
+ Fatal ErrorKritikus Hiba
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredVégzetes hiba lépett fel
-
+ ContinueFolytatás
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Szeretnél most kilépni?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback Completed
-
+ Movie playback completed.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary WindowElsődleges ablak
-
+ Secondary WindowMásodlagos ablak
@@ -5017,239 +5033,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilityKompatibilitás
-
-
+
+ RegionRégió
-
-
+
+ File typeFájltípus
-
-
+
+ SizeMéret
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenMegnyitás
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFSRomFS kimentése
-
+ Disk Shader CacheLemez árnyékoló-gyorsítótár
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader CacheOpenGL árnyékoló gyorsítótár törlése
-
+ UninstallEltávolítás
-
+ EverythingMinden
-
+ Application
-
+ UpdateFrissítés
-
+ DLCDLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesTulajdonságok
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)%1 (frissítés)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Biztosan törölni szeretnéd: '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?Biztosan törölni szeretnéd a(z) '%1' frissítését?
-
+ Are you sure you want to uninstall all DLC for '%1'?Biztosan törölni szeretnéd a(z) '%1' összes DLC-jét?
-
+ Scan SubfoldersAlmappák szkennelése
-
+ Remove Application Directory
-
+ Move UpFeljebb mozgatás
-
+ Move DownLejjebb mozgatás
-
+ Open Directory Location
-
+ ClearTörlés
-
+ NameNév
@@ -5257,77 +5288,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectTökéletes
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ Great
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayRendben
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadRossz
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuIntro/Menü
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootNem indul
-
+ The app crashes when attempting to startup.
-
+ Not TestedNem tesztelt
-
+ The app has not yet been tested.
@@ -5335,7 +5366,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5343,27 +5374,27 @@ Screen.
GameListSearchField
-
+ of
-
+ resulteredmény
-
+ resultseredmény
-
+ Filter:Szürő:
-
+ Enter pattern to filterAdj meg egy mintát a szűréshez
@@ -5691,87 +5722,87 @@ Screen.
Ciklus Index:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Címregisztrációk: %1, %2
-
+ Compare Result: %1, %2
Eredmény Összehasonlítása: %1, %2
-
+ Static Condition: %1
Statikus Állapot: %1
-
+ Dynamic Conditions: %1, %2
Dinamikus Állapotok: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Loop Paraméterek: %1 (ismétlések), %2 (inicializáló), %3 (lépés), %4
-
+ Instruction offset: 0x%1Instrukció eltolás: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(utolsó instrukció)
@@ -6071,32 +6102,32 @@ Debug Message:
Jelszó:
-
+ Room NameSzoba Neve
-
+ Preferred Application
-
+ HostGazda
-
+ PlayersJátékosok
-
+ RefreshingFrissítés
-
+ Refresh ListLista Frissítése
@@ -7094,32 +7125,32 @@ They may have left the room.
%1 (0x%2)
-
+ Unsupported encrypted application
-
+ Invalid regionÉrvénytelen régió
-
+ Installed TitlesTelepített játékok
-
+ System TitlesRendszercímek
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/id.ts b/dist/languages/id.ts
index 525b71684..9eea441bb 100644
--- a/dist/languages/id.ts
+++ b/dist/languages/id.ts
@@ -292,8 +292,8 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
- Emulation:
- Emulasi:
+ Emulation
+ Emulasi
@@ -397,6 +397,7 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
+ CameraKamera
@@ -408,8 +409,8 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
- Camera to configure:
- Kamera yang diatur:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
- Camera mode:
- Mode kamera:
+ Camera mode
+
@@ -450,8 +451,8 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
- Camera position:
- Posisi kamera:
+ Camera position
+
@@ -476,8 +477,8 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
- Camera Image Source:
- Sumber Gambar Kamera:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
- File:
- File:
+ File
+
@@ -510,11 +511,6 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
Select the system camera to usePilih kamera sistem untuk digunakan
-
-
- Camera:
- Kamera:
- <Default>
@@ -528,8 +524,8 @@ Ini akan mem-banned nama pengguna dan alamat IP mereka
- Flip:
- Balik:
+ Flip
+
@@ -1082,7 +1078,7 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1141,48 +1137,53 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
-
+
+ Swap Eyes
+
+
+
+ Utility
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom textures
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump textures
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom textures
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading
@@ -1240,13 +1241,13 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Set emulation speed:
+ Set emulation speed
- Emulation Speed:
- Kecepatan Emulasi:
+ Emulation Speed
+
@@ -1357,12 +1358,12 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1382,8 +1383,8 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Enable Hardware Shader
- Gunakan Hardware Shader
+ Enable hardware shader
+
@@ -1392,8 +1393,8 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Accurate Multiplication
- Penggandaan Akurat
+ Accurate multiplication
+
@@ -1402,8 +1403,8 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Enable Shader JIT
- Aktifkan Shader JIT
+ Enable shader JIT
+
@@ -1412,7 +1413,7 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1422,7 +1423,7 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Enable Async Presentation
+ Enable async presentation
@@ -1462,8 +1463,8 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Use Disk Shader Cache
- Gunakan Disk Shader Cache
+ Use disk shader cache
+
@@ -1487,7 +1488,7 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1976,12 +1977,12 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Swap Screens
- Layar Swap
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2098,7 +2099,7 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2446,8 +2447,8 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Use Virtual SD
- Gunakan Kartu SD virtual
+ Use virtual SD card
+
@@ -2456,7 +2457,7 @@ Apakah Anda ingin mengabaikan kesalahan dan melanjutkan?
- Use Custom Storage
+ Use custom storage location
@@ -2543,7 +2544,7 @@ online features (if installed)
- Region:
+ Region
@@ -2552,326 +2553,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameNama User
-
+ BirthdayUlang tahun
-
+ JanuaryJanuari
-
+ FebruaryFebruari
-
+ MarchMaret
-
+ AprilApril
-
+ MayMei
-
+ JuneJuni
-
+ JulyJuli
-
+ AugustAgustus
-
+ SeptemberSeptember
-
+ OctoberOktober
-
+ NovemberNovember
-
+ DecemberDesember
-
+ LanguageBahasa
-
+ Note: this can be overridden when region setting is auto-selectCatatan: ini bisa di lewati bila pengaturan region-nya otomatis di pilih
-
+ Japanese (日本語)Jepang (日本語)
-
+ EnglishInggris
-
+ French (français)Prancis (français)
-
+ German (Deutsch)Jerman (Deutsch)
-
+ Italian (italiano)Itali (italiano)
-
+ Spanish (español)Spanyol (español)
-
+ Simplified Chinese (简体中文)Cina Yang Di Sederhanakan (简体中文)
-
+ Korean (한국어)Korea (한국어)
-
+ Dutch (Nederlands)Belanda (Nederlands)
-
+ Portuguese (português)Portugis (português)
-
+ Russian (Русский)Rusia (Русский)
-
+ Traditional Chinese (正體中文)Cina Tradisional (正體中文)
-
+ Sound output modeMode output suara
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryNegara
-
+ ClockJam
-
+ System ClockJam Sistem
-
+ Fixed TimeWaktu Tetap
-
+ Startup timeWaktu Mulai
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:ID Konsol:
-
-
+
+ RegeneratePerbaharui
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3581,76 +3593,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1ID Konsol: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningPeringatan
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3765,13 +3777,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Bahasa Antarmuka:
+ Interface Language
+
- Theme:
- Tema:
+ Theme
+
@@ -3780,8 +3792,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- Ukuran Ikon:
+ Icon Size
+
@@ -3801,8 +3813,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- Teks Barisan 1:
+ Row 1 Text
+
@@ -3836,18 +3848,18 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- Teks Barisan 2:
+ Row 2 Text
+
- Hide Titles without Icon
- Sembunyikan Judul tanpa Ikon
+ Hide titles without icon
+
- Single Line Mode
- Mode Satu Baris
+ Single line mode
+
@@ -3856,7 +3868,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3939,12 +3951,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingMenghubungkan
-
+ ConnectHubungkan
@@ -4063,581 +4075,595 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Kecepatan emulasi saat ini. Nilai yang lebih tinggi atau lebih rendah dari 100% menunjukan emulasi berjalan lebih cepat atau lebih lambat dari 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Waktu yang dibutuhkan untuk mengemulasi frame 3DS, tidak menghitung pembatasan frame atau v-sync. setidaknya emulasi yang tergolong kecepatan penuh harus berada setidaknya pada 16.67 ms.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesBersihkan Berkas File Terbaru
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usageCIA harus di install terlebih dahulu sebelum bisa di gunakan
-
+ Before using this CIA, you must install it. Do you want to install it now?Sebelum memakai CIA ini kau harus memasangnya terlebih dahulu. Apa anda ingin menginstallnya sekarang?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 FolderKesalahan Dalam Membuka Folder %1
-
-
+
+ Folder does not exist!Folder tidak ada!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...
-
-
+
+ CancelBatal
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.
-
+ Error Opening %1Kesalahan Dalam Membuka %1
-
+ Select DirectoryPilih Direktori
-
+ PropertiesProperti
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.
-
+ Load FileMuat File
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesMuat berkas
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Semua File (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 telah terinstall.
-
+ Unable to open FileTidak dapat membuka File
-
+ Could not open %1Tidak dapat membuka %1
-
+ Installation abortedInstalasi dibatalkan
-
+ The installation of %1 was aborted. Please see the log for more detailsInstalasi %1 dibatalkan. Silahkan lihat file log untuk info lebih lanjut.
-
+ Invalid FileFile yang tidak valid
-
+ %1 is not a valid CIA%1 bukan CIA yang valid
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...Mencopot Pemasangan '%1'...
-
+ Failed to uninstall '%1'.Gagal untuk mencopot pemasangan '%1%.
-
+ Successfully uninstalled '%1'.
-
+ File not foundFile tidak ditemukan
-
+ File "%1" not foundFile "%1" tidak ditemukan
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)
-
+ Load AmiiboMuat Amiibo
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieRekam Video
-
+ Movie recording cancelled.Perekaman Video Di Batalkan.
-
-
+
+ Movie SavedVideo Di Simpan
-
-
+
+ The movie is successfully saved.Video telah berhasil di simpan.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4646,274 +4672,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Kecepatan: %1%
-
+ Speed: %1% / %2%Kelajuan: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msFrame: %1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveSebuah arsip sistem
-
+ System Archive Not FoundArsip Sistem Tidak Ditemukan
-
+ System Archive MissingArsip sistem tidak ada
-
+ Save/load Error
-
+ Fatal ErrorFatal Error
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredGalat fatal terjadi
-
+ ContinueLanjut
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Apakah anda ingin keluar sekarang?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedPemutaran Kembali Telah Selesai
-
+ Movie playback completed.Pemutaran kembali video telah selesai.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5019,239 +5035,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ Compatibility
-
-
+
+ Region
-
-
+
+ File type
-
-
+
+ Size
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenBuka
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesProperti
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan SubfoldersPindai Subfolder
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory LocationBuka Lokasi Penyimpanan
-
+ ClearBersihkan
-
+ NameNama
@@ -5259,77 +5290,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectSempurna
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatHebat
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkaySetuju
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadBuruk
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuIntro/Menu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootTidak Mau Memulai
-
+ The app crashes when attempting to startup.
-
+ Not TestedBelum Di Uji
-
+ The app has not yet been tested.
@@ -5337,7 +5368,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5345,27 +5376,27 @@ Screen.
GameListSearchField
-
+ ofdari
-
+ resulthasil
-
+ resultshasil
-
+ Filter:Saringan:
-
+ Enter pattern to filterMasukkan pola untuk menyaring
@@ -5693,87 +5724,87 @@ Screen.
Indeks Siklus:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Register Alamat: %1, %2
-
+ Compare Result: %1, %2
Bandingkan Hasil: %1, %2
-
+ Static Condition: %1
Kondisi Statis: %1
-
+ Dynamic Conditions: %1, %2
Kondisi Dinamis: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Parameter Pengulangan: %1 (pengulangan), %2 (penginisialisasi), %3 (tambahan), %4
-
+ Instruction offset: 0x%1Instruksi offset: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (instruksi terakhir)
@@ -6072,32 +6103,32 @@ Debug Message:
Kata Sandi:
-
+ Room NameNama Ruangan
-
+ Preferred Application
-
+ HostHost
-
+ PlayersPemain
-
+ RefreshingMenyegarkan
-
+ Refresh ListSegarkan Daftar
@@ -6598,7 +6629,7 @@ Debug Message:
File:
- File:
+
@@ -6690,7 +6721,7 @@ Debug Message:
File:
- File:
+
@@ -7095,32 +7126,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionRegion Tidak Valid
-
+ Installed Titles
-
+ System Titles
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/it.ts b/dist/languages/it.ts
index dd5648fad..dae104c79 100644
--- a/dist/languages/it.ts
+++ b/dist/languages/it.ts
@@ -298,8 +298,8 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
- Emulation:
- Emulazione:
+ Emulation
+ Emulazione
@@ -329,7 +329,7 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
This post-processing effect adjusts audio speed to match emulation speed and helps prevent audio stutter. This however increases audio latency.
- Questo effetto di post-processing permette di far combaciare la velocità dell'emulazione con quella dell'audio per prevenire lo stutter. Questo però aumenta la latenza dell'audio.
+ Questo effetto di post-processing permette di far combaciare la velocità dell'emulazione con quella dell'audio per prevenire scatti. Tuttavia, ciò aumenta la latenza dell'audio.
@@ -403,6 +403,7 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
+ CameraFotocamera
@@ -414,8 +415,8 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
- Camera to configure:
- Fotocamera da configurare:
+ Camera to Configure
+ Fotocamera da configurare
@@ -435,8 +436,8 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
- Camera mode:
- Modalità della fotocamera:
+ Camera mode
+ Modalità fotocamera
@@ -456,8 +457,8 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
- Camera position:
- Posizione della fotocamera:
+ Camera position
+ Posizione fotocamera
@@ -482,8 +483,8 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
- Camera Image Source:
- Fonte dell'immagine della fotocamera:
+ Camera Image Source
+ Sorgente fotocamera
@@ -502,8 +503,8 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
- File:
- File:
+ File
+ File
@@ -516,11 +517,6 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.Select the system camera to use
Seleziona la fotocamera di sistema da utilizzare
-
-
- Camera:
- Fotocamera:
- <Default>
@@ -534,8 +530,8 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.
- Flip:
- Rotazione:
+ Flip
+ Capovolgi
@@ -737,7 +733,7 @@ Desideri ignorare l'errore e continuare?
Flush log output on every message
- Pulisci l'output del log ad ogni messaggio
+ Svuota l'output del log ad ogni messaggio
@@ -1088,8 +1084,8 @@ Desideri ignorare l'errore e continuare?
- Reverse Side by Side
- Affiancato invertito
+ Side by Side Full Width
+ Affiancato a larghezza intera
@@ -1147,48 +1143,53 @@ Desideri ignorare l'errore e continuare?
<html><head/><body><p>Disabilita il rendering dell'occhio destro</p><p>Disabilita il rendering dell'immagine dell'occhio destro quando la modalità steroscopica non è attiva. Migliora enormemente le prestazioni in alcune applicazioni, ma può causare flickering in altre.</p></body></html>
-
+
+ Swap Eyes
+ Inverti occhi
+
+
+ UtilityUtilità
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Sostituisci le texture con file PNG.</p><p>Le texture verranno caricate dalla cartella load/textures/[ID titolo]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom texturesUsa texture personalizzate
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Estrai le texture su file PNG.</p><p>Le texture verranno estratte nella cartella dump/textures/[ID titolo]/.</p></body></html>
-
- Dump Textures
+
+ Dump texturesEstrai texture
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Carica tutte le texture personalizzate in memoria all'avvio, invece di caricarle quando l'applicazione ne ha bisogno.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom texturesPrecarica texture personalizzate
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Carica le texture personalizzate in maniera asincrona usando dei thread in background per ridurre gli scatti causati dal loro caricamento.</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loadingCaricamento asincrono delle texture personalizzate
@@ -1222,7 +1223,7 @@ Desideri ignorare l'errore e continuare?
Hide mouse on inactivity
- Nascondi il puntatore quando inattivo
+ Nascondi il mouse in caso di inattività
@@ -1246,13 +1247,13 @@ Desideri ignorare l'errore e continuare?
- Set emulation speed:
- Imposta la velocità di emulazione:
+ Set emulation speed
+ Imposta la velocità di emulazione
- Emulation Speed:
- Velocità di emulazione:
+ Emulation Speed
+ Velocità di emulazione
@@ -1363,18 +1364,18 @@ Desideri ignorare l'errore e continuare?
- SPIR-V Shader Generation
+ SPIR-V shader generationGenerazione shader SPIR-V
- Disable GLSL -> SPIR-V Optimizer
- Disabilita GLSL -> Ottimizzatore SPIR-V
+ Disable GLSL -> SPIR-V optimizer
+ Disabilita ottimizzazione GLSL -> SPIR-V<html><head/><body><p>Disables the SPIR-V optimization pass, reducing stuttering considerably while barely affecting performance.</p></body></html>
- <html><head/><body><p>Disabilita il passaggio di ottimizzazione SPIR-V, riducendo considerevolmente lo strutter influenzando minimamente le prestazioni.</p></body></html>
+ <html><head/><body><p>Disabilita il passaggio di ottimizzazione SPIR-V, riducendo considerevolmente gli scatti con un impatto minimo sulle prestazioni.</p></body></html>
@@ -1388,7 +1389,7 @@ Desideri ignorare l'errore e continuare?
- Enable Hardware Shader
+ Enable hardware shaderAbilita shader hardware
@@ -1398,7 +1399,7 @@ Desideri ignorare l'errore e continuare?
- Accurate Multiplication
+ Accurate multiplicationMoltiplicazione accurata
@@ -1408,7 +1409,7 @@ Desideri ignorare l'errore e continuare?
- Enable Shader JIT
+ Enable shader JITAbilita shader JIT
@@ -1418,7 +1419,7 @@ Desideri ignorare l'errore e continuare?
- Enable Async Shader Compilation
+ Enable async shader compilationAbilita la compilazione asincrona degli shader
@@ -1428,7 +1429,7 @@ Desideri ignorare l'errore e continuare?
- Enable Async Presentation
+ Enable async presentationAbilita la presentazione asincrona
@@ -1468,7 +1469,7 @@ Desideri ignorare l'errore e continuare?
- Use Disk Shader Cache
+ Use disk shader cacheUtilizza la cache degli shader su disco
@@ -1493,8 +1494,8 @@ Desideri ignorare l'errore e continuare?
- Delay application render thread:
- Ritarda il thread di render dell'applicazione:
+ Delay Application Render Thread
+ Ritarda il thread di render dell'applicazione
@@ -1982,12 +1983,12 @@ Desideri ignorare l'errore e continuare?
- Swap Screens
+ Swap screensInverti schermi
- Rotate Screens Upright
+ Rotate screens uprightRuota schermi in verticale
@@ -2104,8 +2105,8 @@ Desideri ignorare l'errore e continuare?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Opacità dello schermo inferiore in % (solo OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+ <html><head/><body><p>Opacità dello schermo inferiore %</p></body></html>
@@ -2277,7 +2278,7 @@ Desideri ignorare l'errore e continuare?
<a href='https://web.archive.org/web/20240301211230/https://citra-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input'><span style="text-decoration: underline; color:#039be5;">Learn More</span></a>
- <a href='https://web.archive.org/web/20240301211230/https://citra-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input'><span style="text-decoration: underline; color:#039be5;">Ulteriori Informazioni</span></a>
+ <a href='https://web.archive.org/web/20240301211230/https://citra-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input'><span style="text-decoration: underline; color:#039be5;">Ulteriori informazioni</span></a>
@@ -2452,8 +2453,8 @@ Desideri ignorare l'errore e continuare?
- Use Virtual SD
- Usa la SD virtuale
+ Use virtual SD card
+ Usa la scheda SD virtuale
@@ -2462,8 +2463,8 @@ Desideri ignorare l'errore e continuare?
- Use Custom Storage
- Usa l'archiviazione personalizzata
+ Use custom storage location
+ Usa percorso personalizzato
@@ -2549,8 +2550,8 @@ online features (if installed)
- Region:
- Regione:
+ Region
+ Regione
@@ -2558,326 +2559,337 @@ online features (if installed)
Seleziona automaticamente
-
+
+ Apply region free patch to
+installed applications.
+ Applica la patch region-free alle applicazioni installate.
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+ Corregge la regione delle applicazioni installate per renderle region-free, in modo che vengano sempre visualizzate nel menù Home.
+
+
+ UsernameNome utente
-
+ BirthdayCompleanno
-
+ JanuaryGennaio
-
+ FebruaryFebbraio
-
+ MarchMarzo
-
+ AprilAprile
-
+ MayMaggio
-
+ JuneGiugno
-
+ JulyLuglio
-
+ AugustAgosto
-
+ SeptemberSettembre
-
+ OctoberOttobre
-
+ NovemberNovembre
-
+ DecemberDicembre
-
+ LanguageLingua
-
+ Note: this can be overridden when region setting is auto-selectNota: questa impostazione può essere sovrascritta quando le impostazioni regionali sono su Selezione automatica
-
+ Japanese (日本語)Giapponese (日本語)
-
+ EnglishEnglish
-
+ French (français)Francese (Français)
-
+ German (Deutsch)Tedesco (Deutsch)
-
+ Italian (italiano)Italiano
-
+ Spanish (español)Spagnolo (Español)
-
+ Simplified Chinese (简体中文)Cinese semplificato (简体中文)
-
+ Korean (한국어)Coreano (한국어)
-
+ Dutch (Nederlands)Olandese (Nederlands)
-
+ Portuguese (português)Portoghese (Português)
-
+ Russian (Русский)Russo (Русский)
-
+ Traditional Chinese (正體中文)Cinese tradizionale (正體中文)
-
+ Sound output modeModalità di output del suono
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ Country
- Nazione
+ Stato
-
+ ClockOrario
-
+ System ClockOrario del sistema
-
+ Fixed TimeOrario fisso
-
+ Startup timeOra di avvio
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset timeOffset Orario
-
+ days giorni
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksTick di sistema iniziali
-
+ RandomCasuale
-
+ Fixed
- Fissato
+ Fisso
-
+ Initial System Ticks OverrideSovrascrittura dei Tick di sistema iniziali
-
+ Play CoinsMonete di gioco
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
- <html><head/><body><p>Numero di passi per ogni ora contati dal contapassi. Range da 0 a 65.535.</p></body></html>
+ <html><head/><body><p>Numero di passi per ogni ora contati dal contapassi. Intervallo da 0 a 65.535.</p></body></html>
-
+ Pedometer Steps per HourPassi contapassi per ogni ora
-
+ Run System Setup when Home Menu is launched
- Esegui il Setup del Sistema quando l'Home Menu viene avviato.
+ Esegui la configurazione del sistema quando il menù Home viene avviato
-
+ Console ID:ID Console:
-
-
+
+ RegenerateRigenera
-
+ MAC:MAC:
-
- 3GX Plugin Loader:
- Caricamento plugin 3GX:
+
+ 3GX Plugin Loader
+ Caricamento dei plugin 3GX
-
+ Enable 3GX plugin loaderAbilita il caricamento dei plugin 3GX
-
+ Allow applications to change plugin loader statePermetti alle applicazioni di cambiare lo stato del plugin loader
-
+ Real Console Unique DataDati univoci della console fisica
-
+ Your real console is linked to Azahar.La tua console fisica è collegata con Azahar.
-
+ UnlinkScollega
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseScegli
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.Le impostazioni di sistema sono disponibili solo quando non ci sono applicazioni in esecuzione.
@@ -3587,76 +3599,76 @@ online features (if installed)
File sed (*.sed);;Tutti i file (*.*)
-
-
+
+ Console ID: 0x%1ID console: 0x%1
-
-
+
+ MAC: %1MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?L'attuale ID della console 3DS virtuale verrà sostituito con uno nuovo e non potrà più essere recuperato. Ciò potrebbe avere degli effetti inaspettati in alcune applicazioni. Questo processo potrebbe fallire se usi un salvataggio della configurazione obsoleto. Vuoi continuare?
-
-
-
+
+
+ WarningAttenzione
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Il tuo indirizzo MAC attuale verrà sostituito con uno nuovo. È sconsigliato procedere se hai ottenuto l'indirizzo MAC dalla tua console fisica usando lo strumento di configurazione. Vuoi continuare?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?Questa azione scollegherà la tua console reale da Azahar, con le seguenti conseguenze:<br><ul><li>il tuo OTP, SecureInfo e LocalFriendCodeSeed verranno rimossi da Azahar.</li><li>La tua lista amici verrà reimpostata e verrai disconnesso dal tuo account NNID/PNID.</li><li>I file di sistema e i titoli eshop ottenuti tramite Azahar diventeranno inaccessibili finché la stessa console non verrà nuovamente collegata (i dati di salvataggio non andranno persi).</ul><br>Continuare?
-
+ Invalid country for configured regionNazione non valida per la regione configurata
-
+ Invalid country for console unique dataNazione non valida per i dati univoci della console
-
+ Status: LoadedStato: Caricato
-
+ Status: Loaded (Invalid Signature)Stato: Caricato (firma non valida)
-
+ Status: Loaded (Region Changed)Stato: Caricato (regione modificata)
-
+ Status: Not FoundStato: Non trovato
-
+ Status: InvalidStato: Non valido
-
+ Status: IO ErrorStato: Errore di I/O
@@ -3772,13 +3784,13 @@ Trascina i punti per cambiarne la posizione, o fai doppio clic sulla tabella per
- Interface language:
- Lingua dell'interfaccia:
+ Interface Language
+ Lingua dell'interfaccia
- Theme:
- Tema:
+ Theme
+ Tema
@@ -3787,8 +3799,8 @@ Trascina i punti per cambiarne la posizione, o fai doppio clic sulla tabella per
- Icon Size:
- Dimensione dell'icona:
+ Icon Size
+ Dimensione icona
@@ -3808,8 +3820,8 @@ Trascina i punti per cambiarne la posizione, o fai doppio clic sulla tabella per
- Row 1 Text:
- Testo riga 1:
+ Row 1 Text
+ Testo riga 1
@@ -3843,17 +3855,17 @@ Trascina i punti per cambiarne la posizione, o fai doppio clic sulla tabella per
- Row 2 Text:
- Testo riga 2:
+ Row 2 Text
+ Testo riga 2
- Hide Titles without Icon
- Nascondi giochi senza icona
+ Hide titles without icon
+ Nascondi titoli senza icona
- Single Line Mode
+ Single line modeModalità riga singola
@@ -3863,8 +3875,8 @@ Trascina i punti per cambiarne la posizione, o fai doppio clic sulla tabella per
- Show Advanced Frame Time Info
- Mostra informazioni avanzate sul frame time
+ Show advanced frame time info
+ Mostra dettagli avanzati sul frame time
@@ -3946,12 +3958,12 @@ Trascina i punti per cambiarne la posizione, o fai doppio clic sulla tabella per
DirectConnectWindow
-
+ ConnectingConnessione in corso
-
+ ConnectConnetti
@@ -4071,497 +4083,511 @@ Verifica l'installazione di FFmpeg usata per la compilazione.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedImpossibile trovare un dispositivo compatibile con Vulkan.
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.L'inizializzazione di Vulkan ha fallito durante il boot. <br/>La tua GPU potrebbe non supportare Vulkan 1.1, oppure non hai i driver più recenti.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.Attuale velocità del traffico di Artic. Valori alti indicano carichi di trasferimento più grandi.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Velocità di emulazione corrente. Valori più alti o più bassi di 100% indicano che l'emulazione sta funzionando più velocemente o lentamente di un 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.Quanti frame al secondo l'app sta attualmente mostrando. Varierà da app ad app e da scena a scena.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Tempo necessario per emulare un fotogramma del 3DS, senza tenere conto del limite al framerate o del V-Sync. Per un'emulazione alla massima velocità, il valore non dovrebbe essere superiore a 16.67 ms.
-
+ MicroProfile (unavailable)MicroProfile (Non disponibile)
-
+ Clear Recent FilesElimina file recenti
-
+ &Continue&Continua
-
+ &Pause&Pausa
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar sta eseguendo un'applicazione
-
-
+
+ Invalid App FormatFormato App non valido
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Il formato dell'applicazione non è supportato. <br/>Segui la guida per effettuare il dump delle tue <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>schedine di gioco</a> o dei <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>titoli installati</a>.
-
+ App CorruptedApp corrotta
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.L'applicazione è corrotta. <br/>Segui la guida per effettuare il dump delle tue <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>schedine di gioco</a> o dei <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>titoli installati</a>.
-
+ App EncryptedApp criptata
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>L'applicazione è criptata. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Consulta il nostro blog per maggiori informazioni.</a>
-
+ Unsupported AppApp non supportata
-
+ GBA Virtual Console is not supported by Azahar.La GBA Virtual Console non è supportata da Azahar.
-
-
+
+ Artic ServerArtic Server
-
+
+ Invalid system mode
+ Modalità di sistema non valida
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+ Le applicazioni esclusive del New 3DS non possono essere caricate senza abilitare la modalità New 3DS.
+
+
+ Error while loading App!Errore nel caricamento dell'app!
-
+ An unknown error occurred. Please see the log for more details.Si è verificato un errore sconosciuto. Consulta il log per maggiori dettagli.
-
+ CIA must be installed before usageIl CIA deve essere installato prima dell'uso
-
+ Before using this CIA, you must install it. Do you want to install it now?Devi installare questo CIA prima di poterlo usare. Desideri farlo ora?
-
+ Quick LoadCarica salvataggio rapido
-
+ Quick SaveSalvataggio rapido
-
-
+
+ Slot %1Slot %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Salvataggio rapido (%1)
-
+ Quick Load - %1Carica salvataggio rapido (%1)
-
+ Slot %1 - %2 %3Slot %1 - %2 %3
-
+ Error Opening %1 FolderErrore nell'apertura della cartella %1
-
-
+
+ Folder does not exist!La cartella non esiste!
-
+ Remove Play Time DataRimuovi dati sul tempo di gioco
-
+ Reset play time?Reimpostare il tempo di gioco?
-
-
-
-
+
+
+
+ Create ShortcutCrea scorciatoia
-
+ Do you want to launch the application in fullscreen?Vuoi avviare l'applicazione a schermo intero?
-
+ Successfully created a shortcut to %1Scorciatoia creata con successo in %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Verrà creata una scorciatoia all'attuale AppImage, che potrebbe non funzionare correttamente in caso di aggiornamento. Vuoi continuare?
-
+ Failed to create a shortcut to %1Impossibile creare scorciatoia in %1
-
+ Create IconCrea icona
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.Impossibile creare file icona. La cartella "%1" non esiste e non può essere creato.
-
+ Dumping...Estrazione in corso...
-
-
+
+ CancelAnnulla
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Impossibile estrarre la RomFS base.
Consulta il log per i dettagli.
-
+ Error Opening %1Errore nell'apertura di %1
-
+ Select DirectorySeleziona cartella
-
+ PropertiesProprietà
-
+ The application properties could not be loaded.Impossibile caricare le proprietà dell'applicazione.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Eseguibile 3DS (%1);;Tutti i file (*.*)
-
+ Load FileCarica file
-
-
+
+ Set Up System FilesConfigura i file di sistema
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>Azahar necessita di dati univoci della console e di file firmware da una console reale per poter utilizzare alcune delle sue funzionalità.<br>Tali file e dati possono essere configurati con <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Note:<ul><li><b>questa operazione installerà dati univoci della console su Azahar, non condividere le cartelle utente o nand<br>dopo aver eseguito il processo di configurazione!</b></li><li>Durante il processo di configurazione, Azahar si collegherà alla console che esegue lo strumento di configurazione. È possibile scollegare la console in un secondo momento dalla scheda Sistema nel menu di configurazione dell'emulatore.</li><li>Non andare online con Azahar e con la console 3DS contemporaneamente dopo aver configurato i file di sistema,<br>poiché potrebbe causare problemi.</li><li>La vecchia configurazione 3DS è necessaria affinché la nuova configurazione 3DS funzioni (si consiglia di eseguire entrambe le modalità di configurazione).</li><li>Entrambe le modalità di configurazione funzioneranno indipendentemente dal modello della console che esegue lo strumento di configurazione.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:Inserisci l'indirizzo di Artic Setup Tool:
-
+ <br>Choose setup mode:<br>Scegli la modalità di configurazione:
-
+ (ℹ️) Old 3DS setup(ℹ️) Configurazione Old 3DS
-
-
+
+ Setup is possible.La configurazione è possibile.
-
+ (⚠) New 3DS setup(⚠) Configurazione New 3DS
-
+ Old 3DS setup is required first.È necessario eseguire prima la configurazione Old 3DS.
-
+ (✅) Old 3DS setup
- (✅) Confiurazione Old 3DS
+ (✅) Configurazione Old 3DS
-
-
+
+ Setup completed.Configurazione completata.
-
+ (ℹ️) New 3DS setup(ℹ️) Configurazione New 3DS
-
+ (✅) New 3DS setup(✅) Configurazione New 3DS
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?I file di sistema per la modalità selezionata sono già stati configurati.
Vuoi comunque reinstallarli?
-
+ Load FilesCarica file
-
+ 3DS Installation File (*.cia *.zcia)File di installazione 3DS (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Tutti i file (*.*)
-
+ Connect to Artic BaseConnettiti ad Artic Base
-
+ Enter Artic Base server address:Inserisci l'indirizzo del server Artic Base:
-
+ %1 has been installed successfully.%1 è stato installato con successo.
-
+ Unable to open FileImpossibile aprire il file
-
+ Could not open %1Impossibile aprire %1
-
+ Installation abortedInstallazione annullata
-
+ The installation of %1 was aborted. Please see the log for more detailsL'installazione di %1 è stata annullata. Visualizza il log per maggiori dettagli.
-
+ Invalid FileFile non valido
-
+ %1 is not a valid CIA%1 non è un CIA valido
-
+ CIA EncryptedFile CIA criptato
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Il file CIA è criptato. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Consulta il nostro blog per maggiori informazioni.</a>
-
+ Unable to find FileImpossibile trovare il file
-
+ Could not find %1Impossibile trovare %1
-
-
-
- Error compressing file
- Errore durante la compressione del file
+
+
+
+
+ Z3DS Compression
+ Compressione Z3DS
-
- File compress operation failed, check log for details.
- Compressione del file fallita, controlla i log per i dettagli.
+
+ Failed to compress some files, check log for details.
+ Impossibile comprimere alcuni file, controllare il log per i dettagli.
-
-
-
- Error decompressing file
- Errore durante la decompressione del file
+
+ Failed to decompress some files, check log for details.
+ Impossibile decomprimere alcuni file, controllare il log per i dettagli.
-
- File decompress operation failed, check log for details.
- Decompressione del file fallita, controlla i log per i dettagli.
+
+ All files have been compressed successfully.
+ Tutti i file sono stati compressi con successo.
-
+
+ All files have been decompressed successfully.
+ Tutti i file sono stati decompressi con successo.
+
+
+ Uninstalling '%1'...Disinstallazione di "%1" in corso...
-
+ Failed to uninstall '%1'.Errore nella disinstallazione di "%1".
-
+ Successfully uninstalled '%1'."%1" è stato disinstallato con successo.
-
+ File not foundFile non trovato
-
+ File "%1" not foundFile "%1" non trovato
-
+ SavestatesStati salvati
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4570,86 +4596,86 @@ Use at your own risk!
Usali a tuo rischio e pericolo.
-
-
-
+
+
+ Error opening amiibo data fileErrore durante l'apertura dell'amiibo.
-
+ A tag is already in use.Un tag è già in uso.
-
+ Application is not looking for amiibos.L'applicazione non sta cercando alcun amiibo.
-
+ Amiibo File (%1);; All Files (*.*)File Amiibo (%1);; Tutti i file (*.*)
-
+ Load AmiiboCarica Amiibo
-
+ Unable to open amiibo file "%1" for reading.Impossibile leggere il file amiibo "%1".
-
+ Record MovieRegistra filmato
-
+ Movie recording cancelled.Registrazione del filmato annullata.
-
-
+
+ Movie SavedFilmato salvato
-
-
+
+ The movie is successfully saved.Il filmato è stato salvato con successo.
-
+ Application will unpauseL'applicazione riprenderà
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?L'applicazione riprenderà, e il prossimo frame verrà catturato. Va bene?
-
+ Invalid Screenshot DirectoryCartella degli screenshot non valida
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.Non è stato possibile creare la cartella degli screenshot specificata. Il percorso a tale cartella è stato ripristinato al suo valore predefinito.
-
+ Could not load video dumperImpossibile caricare l'estrattore del video
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4662,275 +4688,265 @@ Per installare FFmpeg su Azahar, clicca su Apri e seleziona la cartella di FFmpe
Per istruzioni su come installare FFmpeg, clicca su Aiuto.
-
- Load 3DS ROM File
+
+ Load 3DS ROM FilesCarica file ROM 3DS
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)File ROM 3DS (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
- Il file selezionato non è un formato ROM 3DS compatibile. Assicurati di aver scelto il file giusto e che non sia crittografato.
-
-
-
- The selected file is already compressed.
- Il file selezionato è già compresso.
-
-
-
+ 3DS Compressed ROM File (*.%1)
- File ROM 3DS Compresso (*.%1)
+ File ROM 3DS compresso (*.%1)
-
+ Save 3DS Compressed ROM FileSalva file ROM 3DS compresso
-
- Load 3DS Compressed ROM File
- Carica file ROM 3DS compresso
+
+ Select Output 3DS Compressed ROM Folder
+ Seleziona la cartella di destinazione delle ROM 3DS compresse
-
+
+ Load 3DS Compressed ROM Files
+ Carica file ROM 3DS compressi
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
- File ROM 3DS Compresso (*.zcia *zcci *z3dsx *zcxi)
+ File ROM 3DS compresso (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
- Il file selezionato non è un formato ROM 3DS compresso compatibile. Assicurati di aver scelto il file giusto.
-
-
-
- The selected file is already decompressed.
- Il file selezionato è già compresso.
-
-
-
+ 3DS ROM File (*.%1)File ROM 3DS (*.%1)
-
+ Save 3DS ROM FileSalva file ROM 3DS
-
+
+ Select Output 3DS ROM Folder
+ Seleziona la cartella di destinazione delle ROM 3DS
+
+
+ Select FFmpeg DirectorySeleziona la cartella di installazione di FFmpeg.
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.La cartella di FFmpeg selezionata non contiene %1. Assicurati di aver selezionato la cartella corretta.
-
+ FFmpeg has been sucessfully installed.FFmpeg è stato installato con successo.
-
+ Installation of FFmpeg failed. Check the log file for details.Installazione di FFmpeg fallita. Consulta i file di log per maggiori dettagli.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.Impossibile iniziare il dumping video.<br> Assicurati che l'encoder video sia configurato correttamente. <br>Controlla il log per ulteriori dettagli.
-
+ Recording %1Registrazione in corso (%1)
-
+ Playing %1 / %2Riproduzione in corso (%1 / %2)
-
+ Movie FinishedFilmato terminato
-
+ (Accessing SharedExtData)(Accessing SharedExtData)
-
+ (Accessing SystemSaveData)(Accessing SystemSaveData)
-
+ (Accessing BossExtData)(Accessing BossExtData)
-
+ (Accessing ExtData)(Accessing ExtData)
-
+ (Accessing SaveData)(Accessing SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3Traffico Artic: %1 %2%3
-
+ Speed: %1%Velocità: %1%
-
+ Speed: %1% / %2%Velocità: %1% / %2%
-
+ App: %1 FPSApp: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msFrame: %1 ms
-
+ VOLUME: MUTEVOLUME: MUTO
-
+ VOLUME: %1%Volume percentage (e.g. 50%)VOLUME: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.%1 non trovato. <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>Estrai i tuoi archivi di sistema</a>.<br/>Proseguendo l'emulazione si potrebbero verificare arresti anomali e bug.
-
+ A system archiveUn archivio di sistema
-
+ System Archive Not FoundArchivio di sistema non trovato
-
+ System Archive MissingArchivio di sistema mancante
-
+ Save/load ErrorErrore di salvataggio/caricamento
-
+ Fatal ErrorErrore irreversibile
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.Si è verificato un errore fatale. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Controlla il log</a> per i dettagli.<br/>Continuare l'emulazione potrebbe causare arresti anomali e bug.
-
+ Fatal Error encounteredErrore irreversibile riscontrato
-
+ ContinueContinua
-
+ Quit ApplicationChiudi applicazione
-
+ OKOK
-
+ Would you like to exit now?Desideri uscire ora?
-
+ The application is still running. Would you like to stop emulation?L'applicazione è ancora in esecuzione. Vuoi arrestare l'emulazione?
-
+ Playback CompletedRiproduzione completata
-
+ Movie playback completed.Riproduzione del filmato completata.
-
+ Update AvailableAggiornamento disponibile
-
+ Update %1 for Azahar is available.
Would you like to download it?L'aggiornamento %1 di Azahar è disponibile.
Vuoi installarlo?
-
+ Primary WindowFinestra principale
-
+ Secondary WindowFinestra secondaria
@@ -5036,175 +5052,190 @@ Vuoi installarlo?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>IMPORTANTE: I file criptati e i file .3ds non sono più supportati. Potrebbe essere necessario decriptare o rinominare i file usando l'estensione .cci. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Scopri di più.</a>
-
+ Don't show againNon mostrare più
-
-
+
+ CompatibilityCompatibilità
-
-
+
+ RegionRegione
-
-
+
+ File typeTipo di file
-
-
+
+ SizeDimensione
-
-
+
+ Play timeTempo di gioco
-
+ FavoritePreferito
-
+
+ Eject Cartridge
+ Rimuovi schedina
+
+
+
+ Insert Cartridge
+ Inserisci schedina
+
+
+ OpenApri
-
+ Application LocationCartella dell'applicazione
-
+ Save Data LocationCartella dei dati di salvataggio
-
+ Extra Data LocationCartella dei dati aggiuntivi
-
+ Update Data LocationCartella dei dati di aggiornamento
-
+ DLC Data LocationCartella dei dati dei DLC
-
+ Texture Dump LocationCartella di estrazione delle texture
-
+ Custom Texture LocationCartella delle texture personalizzate
-
+ Mods LocationCartella delle mod
-
+ Dump RomFSEstrai la RomFS
-
+ Disk Shader CacheCache degli shader su disco
-
+ Open Shader Cache LocationApri la cartella della cache degli shader
-
+ Delete OpenGL Shader CacheElimina la cache degli shader OpenGL
-
+ UninstallDisinstalla
-
+ EverythingTutto
-
+ ApplicationApplicazione
-
+ UpdateAggiornamento
-
+ DLCDLC
-
+ Remove Play Time DataRimuovi dati sul tempo di gioco
-
+ Create ShortcutCrea scorciatoia
-
+ Add to DesktopAggiungi al desktop
-
+ Add to Applications MenuAggiungi al menù delle applicazioni
-
+
+ Stress Test: App Launch
+ Stress Test: Avvio dell'app
+
+
+ PropertiesProprietà
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5213,64 +5244,64 @@ This will delete the application if installed, as well as any installed updates
Se installata, l'applicazione verrà rimossa assieme ad eventuali aggiornamenti e DLC installati.
-
-
+
+ %1 (Update)%1 (Aggiornamento)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Sei sicuro di voler disinstallare '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?Sei sicuro di voler disinstallare l'aggiornamento di '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?Sei sicuro di voler disinstallare tutti i DLC di '%1'?
-
+ Scan SubfoldersScansiona le sottocartelle
-
+ Remove Application DirectoryRimuovi cartella delle applicazioni
-
+ Move UpSposta in alto
-
+ Move DownSposta in basso
-
+ Open Directory LocationApri cartella
-
+ ClearRipristina
-
+ NameNome
@@ -5278,82 +5309,82 @@ Se installata, l'applicazione verrà rimossa assieme ad eventuali aggiornam
GameListItemCompat
-
+ PerfectPerfetto
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.Il gioco funziona perfettamente senza alcun glitch audio o video, tutte le funzionalità testate funzionano come dovrebbero senza
la necessità di utilizzare alcun espediente.
-
+ GreatOttimo
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.L'app presenta alcuni glitch audio o video minori ed è possibile giocare dall'inizio alla fine.
Potrebbe richiedere l'utilizzo di alcuni espedienti.
-
+ OkayOkay
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.L'app presenta considerevoli glitch audio o video, ma è possibile giocare dall'inizio alla fine utilizzando
degli espedienti.
-
+ BadScadente
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.L'app funziona, ma presenta glitch audio e video considerevoli. Impossibile progredire in alcune aree a causa di alcuni glitch
anche usando espedienti.
-
+ Intro/MenuIntro/Menù
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.L'app è del tutto ingiocabile a causa di considerevoli glitch audio o video.
È impossibile proseguire oltre la schermata iniziale.
-
+ Won't BootNon si avvia
-
+ The app crashes when attempting to startup.L'app va in crash quando viene avviata.
-
+ Not TestedNon testato
-
+ The app has not yet been tested.L'app non è ancora stata testata.
@@ -5361,7 +5392,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listFai doppio clic per aggiungere una nuova cartella alla lista delle applicazioni
@@ -5369,27 +5400,27 @@ Screen.
GameListSearchField
-
+ ofdi
-
+ resultrisultato
-
+ resultsrisultati
-
+ Filter:Filtro:
-
+ Enter pattern to filterInserisci pattern per filtrare
@@ -5439,7 +5470,7 @@ Screen.
Region free
- Region free
+ Region-free
@@ -5717,87 +5748,87 @@ Screen.
Indice Ciclo:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Registri dell'indirizzo: %1, %2
-
+ Compare Result: %1, %2
Risultato del confronto: %1, %2
-
+ Static Condition: %1
Condizione statica: %1
-
+ Dynamic Conditions: %1, %2
Condizioni dinamiche: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Parametri loop: %1 (ripetute), %2 (inizializzatore), %3 (incremento), %4
-
+ Instruction offset: 0x%1Offset istruzione: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (ultima istruzione)
@@ -6098,32 +6129,32 @@ Messaggio di debug:
Password:
-
+ Room NameNome stanza
-
+ Preferred ApplicationApplicazioni preferite
-
+ HostHost
-
+ PlayersGiocatori
-
+ RefreshingAggiornamento in corso
-
+ Refresh ListAggiorna lista
@@ -6393,12 +6424,12 @@ Messaggio di debug:
Compress ROM File...
- File ROM compresso...
+ Comprimi file ROM...Decompress ROM File...
- File ROM decompresso...
+ Decomprimi file ROM...
@@ -6832,37 +6863,37 @@ Messaggio di debug:
Username is already in use or not valid. Please choose another.
- Il nome utente è già in uso, oppure non è valido. Scegline un altro.
+ Il nome utente è già in uso o non è valido. Scegline un altro.IP is not a valid IPv4 address.
- Questo indirizzo IPv4 non è valido.
+ L'IP non è un indirizzo IPv4 valido.Port must be a number between 0 to 65535.
- Il numero della porta dev'essere compreso tra 0 e 65535.
+ Il numero della porta deve essere compreso tra 0 e 65535.You must choose a Preferred Application to host a room. If you do not have any applications in your Applications list yet, add an applications folder by clicking on the plus icon in the Applications list.
- Devi scegliere un'applicazione preferita per poter ospitare una stanza. Se non hai ancora delle applicazioni nella lista delle applicazioni, aggiungi una cartella cliccando sull'icona + nella lista.
+ Devi scegliere un'applicazione preferita per poter ospitare una stanza. Se non hai ancora delle applicazioni in lista, aggiungi una cartella delle applicazioni cliccando sull'icona + nella lista.Unable to find an internet connection. Check your internet settings.
- Impossibile trovare una connessione ad Internet. Ricontrolla le tue impostazioni di rete.
+ Impossibile trovare una connessione ad Internet. Controlla le tue impostazioni di rete.Unable to connect to the host. Verify that the connection settings are correct. If you still cannot connect, contact the room host and verify that the host is properly configured with the external port forwarded.
- Impossibile connettersi all'host. Accertati che le impostazioni di connessione siano corrette. Se ancora non riesci a connetterti, contatta l'host della stanza per verificare che l'host abbia abilitato il forwarding delle porte.
+ Impossibile connettersi all'host. Assicurati che le impostazioni di connessione siano corrette. Se ancora non riesci a connetterti, contatta l'host della stanza per verificare che abbia abilitato il forwarding delle porte.Unable to connect to the room because it is already full.
- La stanza è piena.
+ Impossibile connettersi: la stanza è piena.
@@ -6872,7 +6903,7 @@ Messaggio di debug:
The host of the room has banned you. Speak with the host to unban you or try a different room.
- L'host della stanza ti ha bannato. Contatta l'host o connettiti ad un altra stanza.
+ L'host della stanza ti ha bannato. Contatta l'host o prova a connetterti a un altra stanza.
@@ -6882,7 +6913,7 @@ Messaggio di debug:
Incorrect password.
- Password sbagliata
+ Password errata.
@@ -6922,7 +6953,7 @@ Vai in Emulazione > Configura > Sistema per generarne un altro.
The user you are trying to kick/ban could not be found.
They may have left the room.
- L'utente che stai cercando di espellere/bannare non è stato trovato.
+ L'utente che stai cercando di espellere/bandire non è stato trovato.
Potrebbe aver lasciato la stanza.
@@ -7125,32 +7156,32 @@ Potrebbe aver lasciato la stanza.
%1 (0x%2)
-
+ Unsupported encrypted applicationApplicazione criptata non supportata
-
+ Invalid regionRegione non valida
-
+ Installed TitlesTitoli installati
-
+ System TitlesTitoli di sistema
-
+ Add New Application DirectoryAggiungi una nuova cartella delle applicazioni
-
+ FavoritesPreferiti
@@ -7453,7 +7484,7 @@ Se vuoi cancellare i file rimasti nella precedente cartella dei dati, puoi farlo
free
- free
+ libero
@@ -7461,7 +7492,7 @@ Se vuoi cancellare i file rimasti nella precedente cartella dei dati, puoi farlo
holding mutexes
- holding mutexes
+ mutex trattenuti
@@ -7510,7 +7541,7 @@ Se vuoi cancellare i file rimasti nella precedente cartella dei dati, puoi farlo
sleeping
- in sleep
+ in riposo
diff --git a/dist/languages/ja_JP.ts b/dist/languages/ja_JP.ts
index 6ac68b74f..bc55e1af0 100644
--- a/dist/languages/ja_JP.ts
+++ b/dist/languages/ja_JP.ts
@@ -298,8 +298,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- エミュレーション
+ Emulation
+ エミュレーション
@@ -403,6 +403,7 @@ This would ban both their forum username and their IP address.
+ Cameraカメラ設定
@@ -414,8 +415,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- 設定を行うカメラ
+ Camera to Configure
+
@@ -435,8 +436,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- カメラモード
+ Camera mode
+
@@ -456,8 +457,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- カメラの位置
+ Camera position
+
@@ -482,8 +483,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- カメラに表示する画像(映像)選択
+ Camera Image Source
+
@@ -502,8 +503,8 @@ This would ban both their forum username and their IP address.
- File:
- ファイル
+ File
+
@@ -516,11 +517,6 @@ This would ban both their forum username and their IP address.
Select the system camera to use使用するシステムカメラを選択
-
-
- Camera:
- カメラ
- <Default>
@@ -534,8 +530,8 @@ This would ban both their forum username and their IP address.
- Flip:
- フリップ効果
+ Flip
+
@@ -716,12 +712,12 @@ Would you like to ignore the error and continue?
Global Log Filter
- Global Log Filter
+ グローバルログフィルタRegex Log Filter
-
+ 正規表現ログフィルタ
@@ -1023,7 +1019,7 @@ Would you like to ignore the error and continue?
Enable Linear Filtering
- 線形フィルタリングを有効化
+
@@ -1078,7 +1074,7 @@ Would you like to ignore the error and continue?
Off
-
+ OFF
@@ -1087,28 +1083,28 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
+ Side by Side Full WidthAnaglyph
-
+ アナグリフInterlaced
-
+ インターレースReverse Interlaced
-
+ 逆インターレースDepth
-
+ 深度
@@ -1146,49 +1142,54 @@ Would you like to ignore the error and continue?
<html><head/><body><p>右目側の描写を無効にする</p><p>立体視モードでないとき、右目側の画像を描写するのを無効にします。いくつかのアプリケーションで大きくパフォーマンスが向上しますが、ちらつきが起こる可能性があります。</p></body></html>
-
+
+ Swap Eyes
+
+
+
+ Utilityユーティリティ
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>テクスチャをPNGファイルで置き換えます。</p><p>テクスチャは/load/textures/[Title ID]/から読み込まれます。</p></body></html>
-
- Use Custom Textures
- カスタムテクスチャを使用
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>PNGファイルにテクスチャを出力</p><p>テクスチャは dump/textures/[Title ID]/に出力されます。
-
- Dump Textures
- テクスチャをダンプ
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>カスタムテクスチャーをアプリケーションが使用するときでなく、起動時にメモリーにすべて読み込みます。</p></body></html>
-
- Preload Custom Textures
- カスタムテクスチャをプリロードする
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>バックグラウンドスレッドと同期してカスタムテクスチャを読み込み、ロード時のカクつきを軽減します。</p></body></html>
-
- Async Custom Texture Loading
- カスタムテクスチャーを非同期的に読み込む
+
+ Async custom texture loading
+
@@ -1245,18 +1246,18 @@ Would you like to ignore the error and continue?
- Set emulation speed:
- エミュレーション速度:
+ Set emulation speed
+
- Emulation Speed:
- エミュレーション速度
+ Emulation Speed
+ Turbo Speed Limit:
-
+ ターボ制限:
@@ -1362,12 +1363,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
- SPIR-V シェーダー生成
+ SPIR-V shader generation
+
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1387,8 +1388,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- ハードウェアシェーダーを有効化
+ Enable hardware shader
+
@@ -1397,8 +1398,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- Accurate Multiplication
+ Accurate multiplication
+
@@ -1407,8 +1408,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- シェーダーJITを有効化
+ Enable shader JIT
+
@@ -1417,8 +1418,8 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
- 非同期シェーダー処理を有効にする
+ Enable async shader compilation
+
@@ -1427,7 +1428,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentation
@@ -1467,8 +1468,8 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
- ディスクシェーダーキャッシュを使う
+ Use disk shader cache
+
@@ -1483,7 +1484,7 @@ Would you like to ignore the error and continue?
Use global
-
+ グローバルを使用します
@@ -1492,7 +1493,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1537,7 +1538,7 @@ Would you like to ignore the error and continue?
Toggle Turbo Mode
-
+ ターボトグル
@@ -1936,12 +1937,12 @@ Would you like to ignore the error and continue?
Screens
-
+ 画面Screen Layout
- 画面レイアウト
+ 画面構成
@@ -1951,12 +1952,12 @@ Would you like to ignore the error and continue?
Single Screen
- Single Screen
+ 単一画面Large Screen
- Large Screen
+ 大画面
@@ -1971,7 +1972,7 @@ Would you like to ignore the error and continue?
Hybrid Screen
-
+ ハイブリッド画面
@@ -1981,12 +1982,12 @@ Would you like to ignore the error and continue?
- Swap Screens
- スクリーンの上下を入れ替える
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -1997,12 +1998,12 @@ Would you like to ignore the error and continue?
Large Screen Proportion
-
+ 大画面比率Small Screen Position
-
+ 小画面の位置
@@ -2017,7 +2018,7 @@ Would you like to ignore the error and continue?
Bottom Right (default)
-
+ 右下(デフォルト)
@@ -2032,17 +2033,17 @@ Would you like to ignore the error and continue?
Bottom Left
-
+ 左下Above large screen
-
+ 大画面の上Below large screen
-
+ 大画面の下
@@ -2053,7 +2054,7 @@ Would you like to ignore the error and continue?
Top Screen
-
+ 上画面
@@ -2099,17 +2100,17 @@ Would you like to ignore the error and continue?
Bottom Screen
-
+ 下画面
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>下スクリーンの透明度(OpenGLのみ)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+ Single Screen Layout
-
+ 単一画面構成
@@ -2451,8 +2452,8 @@ Would you like to ignore the error and continue?
- Use Virtual SD
- 仮想SDを使う
+ Use virtual SD card
+
@@ -2461,7 +2462,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage location
@@ -2548,8 +2549,8 @@ online features (if installed)
- Region:
-
+ Region
+ 地域
@@ -2557,326 +2558,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ Usernameユーザーネーム
-
+ Birthday誕生日
-
+ January1月
-
+ February2月
-
+ March3月
-
+ April4月
-
+ May5月
-
+ June6月
-
+ July7月
-
+ August8月
-
+ September9月
-
+ October10月
-
+ November11月
-
+ December12月
-
+ Language言語
-
+ Note: this can be overridden when region setting is auto-select注:地域設定が自動選択の場合、この設定は無視されます。
-
+ Japanese (日本語)日本語 (Japanese)
-
+ English英語 (English)
-
+ French (français)フランス語 (Français)
-
+ German (Deutsch)ドイツ語 (Deutsch)
-
+ Italian (italiano)イタリア語 (Italiano)
-
+ Spanish (español)スペイン語 (Español)
-
+ Simplified Chinese (简体中文)簡体字中国語 (简体中文)
-
+ Korean (한국어)韓国語 (한국어)
-
+ Dutch (Nederlands)オランダ語 (Nederlands)
-
+ Portuguese (português)ポルトガル語 (Português)
-
+ Russian (Русский)ロシア語 (Русский)
-
+ Traditional Chinese (正體中文)繁体字中国語 (正體中文)
-
+ Sound output modeサウンド
-
+ Monoモノラル
-
+ Stereoステレオ
-
+ Surroundサラウンド
-
+ Country国
-
+ Clock時刻
-
+ System Clockシステムの時刻を使用
-
+ Fixed Time固定
-
+ Startup time起動時の時刻
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-dd THH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss時時:分分:秒秒
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>1時間あたりに歩数計が記録する歩数。0-65535の間で指定してください。</p></body></html>
-
+ Pedometer Steps per Hour1時間当たりの歩数計の歩数
-
+ Run System Setup when Home Menu is launchedホームメニューの起動時に初回セットアップを実行する
-
+ Console ID:コンソールID:
-
-
+
+ Regenerateコンソールの再作成
-
+ MAC:
-
- 3GX Plugin Loader:
- 3GXプラグインローダー:
+
+ 3GX Plugin Loader
+
-
+ Enable 3GX plugin loader3GXプラグインローダーを有効にする
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data本体に固有のデータ
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.
@@ -3586,76 +3598,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1コンソール ID: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ Warning警告
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3771,13 +3783,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- UIの言語
+ Interface Language
+
- Theme:
- テーマ
+ Theme
+
@@ -3786,8 +3798,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- アイコンサイズ
+ Icon Size
+
@@ -3807,8 +3819,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- 1行目の表示項目
+ Row 1 Text
+
@@ -3842,18 +3854,18 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- 2行目の表示項目
+ Row 2 Text
+
- Hide Titles without Icon
- アイコンのないタイトルを非表示
+ Hide titles without icon
+
- Single Line Mode
- シングルラインモード
+ Single line mode
+
@@ -3862,7 +3874,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3945,12 +3957,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ Connecting接続中...
-
+ Connect接続
@@ -4069,582 +4081,596 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.現在のエミュレーション速度です。100%以外の値は、エミュレーションが3DS実機より高速または低速で行われていることを表します。
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.3DSフレームをエミュレートするのにかかった時間です。フレームリミットや垂直同期の有効時にはカウントしません。フルスピードで動作させるには16.67ms以下に保つ必要があります。
-
+ MicroProfile (unavailable)
-
+ Clear Recent Files最近のファイルを消去
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>このアプリは暗号化されています。<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>ブログで詳細な情報を確認してください。</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.GBAバーチャルコンソールはAzaharではサポートされていません。
-
-
+
+ Artic ServerArtic Base
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.不明なエラーが発生しました. 詳細はログを参照してください.
-
+ CIA must be installed before usageCIAを使用前にインストールする必要有
-
+ Before using this CIA, you must install it. Do you want to install it now?CIAを使用するには先にインストールを行う必要があります。今すぐインストールしますか?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1スロット %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 Folderフォルダ %1 を開く際のエラー
-
-
+
+ Folder does not exist!フォルダが見つかりません!
-
+ Remove Play Time Dataプレイ時間のデータを削除
-
+ Reset play time?プレイ時間をリセットしますか?
-
-
-
-
+
+
+
+ Create Shortcutショートカットを作成する
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1%1にショートカットを作成しました。
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...ダンプ中...
-
-
+
+ Cancelキャンセル
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.ベースRomFSをダンプできませんでした。
詳細はログを参照してください。
-
+ Error Opening %1%1 を開く際のエラー
-
+ Select Directory3DSのROMがあるフォルダを選択
-
+ Propertiesプロパティ
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS実行ファイル (%1);;すべてのファイル (*.*)
-
+ Load Fileゲームファイルの読み込み
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load Filesファイルの読み込み
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)すべてのファイル (*.*)
-
+ Connect to Artic BaseArctic Baseに接続
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1が正常にインストールされました
-
+ Unable to open Fileファイルを開けません
-
+ Could not open %1%1を開くことができませんでした
-
+ Installation abortedインストール中止
-
+ The installation of %1 was aborted. Please see the log for more details %1のインストールは中断されました。詳細はログを参照してください
-
+ Invalid File無効なファイル
-
+ %1 is not a valid CIA%1は有効なCIAではありません
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find Fileファイルが見つかりません
-
+ Could not find %1%1を見つけられませんでした
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...'%1'をアンインストールしています
-
+ Failed to uninstall '%1'.'%1' をアンインストールできませんでした
-
+ Successfully uninstalled '%1'.
-
+ File not foundファイルなし
-
+ File "%1" not foundファイル%1が見つかりませんでした
-
+ Savestatesステートセーブ
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiiboファイル (%1);; すべてのファイル (*.*)
-
+ Load AmiiboAmiiboを読込
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record Movie操作を記録
-
+ Movie recording cancelled.操作の記録がキャンセルされました
-
-
+
+ Movie Saved保存成功
-
-
+
+ The movie is successfully saved.操作記録を保存しました
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4653,274 +4679,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%スピード:%1%
-
+ Speed: %1% / %2%スピード:%1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msフレーム:%1 ms
-
+ VOLUME: MUTE音量: ミュート
-
+ VOLUME: %1%Volume percentage (e.g. 50%)音量: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveシステムアーカイブ
-
+ System Archive Not Foundシステムアーカイブなし
-
+ System Archive Missingシステムアーカイブが見つかりません
-
+ Save/load Errorセーブ/ロード エラー
-
+ Fatal Error致命的なエラー
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encountered致命的なエラーが発生しました
-
+ Continue続行
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?今すぐ終了しますか?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback Completed再生完了
-
+ Movie playback completed.操作記録の再生が完了しました
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5026,239 +5042,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ Compatibility動作状況
-
-
+
+ Region地域
-
-
+
+ File typeファイルの種類
-
-
+
+ Sizeサイズ
-
-
+
+ Play timeプレイ時間
-
+ Favoriteお気に入り
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open開く
-
+ Application Locationアプリケーションの場所
-
+ Save Data Locationセーブデータの場所
-
+ Extra Data Location追加データの場所
-
+ Update Data Locationアップデートデータの場所
-
+ DLC Data LocationDLCデータの場所
-
+ Texture Dump Locationテクスチャのダンプ場所
-
+ Custom Texture Locationカスタムテクスチャの場所
-
+ Mods Locationモッドの場所
-
+ Dump RomFSRomFSをダンプ
-
+ Disk Shader Cacheディスクシェーダーキャッシュ
-
+ Open Shader Cache Locationシェーダーキャッシュの場所を開く
-
+ Delete OpenGL Shader CacheOpenGLシェーダーキャッシュを削除
-
+ Uninstallアンインストール
-
+ Everythingすべて
-
+ Application
-
+ Updateアップデート
-
+ DLCDLC
-
+ Remove Play Time Dataプレイ時間のデータを削除
-
+ Create Shortcutショートカットを作成する
-
+ Add to Desktopデスクトップ
-
+ Add to Applications Menuスタートメニューに追加
-
+
+ Stress Test: App Launch
+
+
+
+ Propertiesプロパティ
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?'%1'をアンインストールしますか?
-
+ Are you sure you want to uninstall the update for '%1'?'%1'のアップデートをアンインストールしますか?
-
+ Are you sure you want to uninstall all DLC for '%1'?'%1'のすべてのDLCを削除しますか?
-
+ Scan Subfoldersサブフォルダも検索
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory Locationフォルダの場所を開く
-
+ Clearクリア
-
+ Nameタイトル
@@ -5266,77 +5297,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ Perfectカンペキ
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ Greatサクサク
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ Okayソコソコ
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ Badガタガタ
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/Menuイントロ
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't Bootダメダメ
-
+ The app crashes when attempting to startup.
-
+ Not Tested未検証
-
+ The app has not yet been tested.
@@ -5344,7 +5375,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5352,27 +5383,27 @@ Screen.
GameListSearchField
-
+ of件ヒットしました
-
+ result件中
-
+ results件中
-
+ Filter:タイトル名でフィルタ
-
+ Enter pattern to filterゲームタイトルを入力
@@ -5700,87 +5731,87 @@ Screen.
Cycle Index:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Address Registers: %1, %2
-
+ Compare Result: %1, %2
Compare Result: %1, %2
-
+ Static Condition: %1
Static Condition: %1
-
+ Dynamic Conditions: %1, %2
Dynamic Conditions: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
-
+ Instruction offset: 0x%1Instruction offset: 0x%1
-
+ -> 0x%2-> 0x%2
-
+ (last instruction) (last instruction)
@@ -6080,32 +6111,32 @@ Debug Message:
パスワードを入力
-
+ Room Nameルーム名
-
+ Preferred Application
-
+ Hostホスト
-
+ Playersプレイヤー
-
+ Refreshing更新
-
+ Refresh Listリスト更新
@@ -6170,7 +6201,7 @@ Debug Message:
Small Screen Position
-
+ 小画面の位置
@@ -6435,7 +6466,7 @@ Debug Message:
Large Screen
- Large Screen
+ 大画面
@@ -6450,7 +6481,7 @@ Debug Message:
Hybrid Screen
-
+ ハイブリッド画面
@@ -6485,7 +6516,7 @@ Debug Message:
Bottom Left
-
+ 左下
@@ -6606,7 +6637,7 @@ Debug Message:
File:
- ファイル
+
@@ -6698,7 +6729,7 @@ Debug Message:
File:
- ファイル
+
@@ -7106,32 +7137,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid region無効な地域
-
+ Installed Titlesインストールされたタイトル
-
+ System Titlesシステムタイトル
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/ko_KR.ts b/dist/languages/ko_KR.ts
index c74d5e2f8..5515360a7 100644
--- a/dist/languages/ko_KR.ts
+++ b/dist/languages/ko_KR.ts
@@ -292,8 +292,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- 에뮬레이션:
+ Emulation
+ 에뮬레이션
@@ -397,6 +397,7 @@ This would ban both their forum username and their IP address.
+ Camera카메라
@@ -408,8 +409,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- 설정할 카메라:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- 카메라모드:
+ Camera mode
+
@@ -450,8 +451,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- 카메라 위치:
+ Camera position
+
@@ -476,8 +477,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- 카메라 이미지 소스:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ This would ban both their forum username and their IP address.
- File:
- 파일:
+ File
+
@@ -510,11 +511,6 @@ This would ban both their forum username and their IP address.
Select the system camera to use사용할 시스템 카메라 선택하기
-
-
- Camera:
- 카메라:
- <Default>
@@ -528,8 +524,8 @@ This would ban both their forum username and their IP address.
- Flip:
- 뒤집기:
+ Flip
+
@@ -1018,7 +1014,7 @@ Would you like to ignore the error and continue?
Enable Linear Filtering
- 리니어 필터링 활성화
+
@@ -1082,7 +1078,7 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1141,49 +1137,54 @@ Would you like to ignore the error and continue?
-
+
+ Swap Eyes
+
+
+
+ Utility도구
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>텍스처를 PNG 파일로 교체합니다.</p><p>텍스처는 load/textures/[Title ID]/에서 로드됩니다.</p></body></html>
-
- Use Custom Textures
- 사용자 정의 텍스처 사용
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>텍스처를 PNG 파일로 덤프합니다.</p><p>텍스처를 dump/textures/[Title ID]/에 덤프합니다.</p></body></html>
-
- Dump Textures
- 텍스처 덤프
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
- 사용자 지정 텍스처 미리 불러오기
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>로딩 끊김을 줄이기 위해 배경 스레드와 비동기식으로 사용자 지정 텍스처를 로드합니다.</p></body></html>
-
- Async Custom Texture Loading
- 비동기 커스텀 텍스처 로딩
+
+ Async custom texture loading
+
@@ -1240,13 +1241,13 @@ Would you like to ignore the error and continue?
- Set emulation speed:
- 에뮬레이션 속도 설정:
+ Set emulation speed
+
- Emulation Speed:
- 에뮬레이션 속도:
+ Emulation Speed
+
@@ -1357,12 +1358,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1382,8 +1383,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- 하드웨어 셰이더 활성화
+ Enable hardware shader
+
@@ -1392,8 +1393,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- 정확한 곱셈연산
+ Accurate multiplication
+
@@ -1402,8 +1403,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- 셰이더 JIT 활성화
+ Enable shader JIT
+
@@ -1412,7 +1413,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1422,7 +1423,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentation
@@ -1462,8 +1463,8 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
- 디스크 셰이더 캐시 사용
+ Use disk shader cache
+
@@ -1487,7 +1488,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1976,12 +1977,12 @@ Would you like to ignore the error and continue?
- Swap Screens
- 화면 바꾸기
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2098,7 +2099,7 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2446,8 +2447,8 @@ Would you like to ignore the error and continue?
- Use Virtual SD
- Virtual SD 사용
+ Use virtual SD card
+
@@ -2456,8 +2457,8 @@ Would you like to ignore the error and continue?
- Use Custom Storage
- 사용자 정의 저장공간 사용
+ Use custom storage location
+
@@ -2543,8 +2544,8 @@ online features (if installed)
- Region:
-
+ Region
+ 지역
@@ -2552,326 +2553,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ Username사용자 이름
-
+ Birthday생일
-
+ January1월
-
+ February2월
-
+ March3월
-
+ April4월
-
+ May5월
-
+ June6월
-
+ July7월
-
+ August8월
-
+ September9월
-
+ October10월
-
+ November11월
-
+ December12월
-
+ Language언어
-
+ Note: this can be overridden when region setting is auto-selectNote: 이 설정은 언어설정이 자동일경우 무시될수 있습니다
-
+ Japanese (日本語)일본어 (日本語)
-
+ English영어 (English)
-
+ French (français)프랑스어 (français)
-
+ German (Deutsch)독일어 (Deutsch)
-
+ Italian (italiano)이탈리아어 (italiano)
-
+ Spanish (español)스페인어 (español)
-
+ Simplified Chinese (简体中文)간체 (简体中文)
-
+ Korean (한국어)한국어
-
+ Dutch (Nederlands)네덜란드어 (Nederlands)
-
+ Portuguese (português)포르투갈어 (português)
-
+ Russian (Русский)러시아어 (Русский)
-
+ Traditional Chinese (正體中文)번체 (正體中文)
-
+ Sound output mode사운드 출력모드
-
+ Mono모노
-
+ Stereo스테레오
-
+ Surround서라운드
-
+ Country국가
-
+ Clock시계
-
+ System Clock시스템 시계
-
+ Fixed Time수정된 시간
-
+ Startup time시작 시간
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time오프셋 시간
-
+ days
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched홈 메뉴가 실행되면 시스템 설정 실행
-
+ Console ID:콘솔 ID:
-
-
+
+ Regenerate재생성
-
+ MAC:
-
- 3GX Plugin Loader:
- 3GX 플러그인 로더:
+
+ 3GX Plugin Loader
+
-
+ Enable 3GX plugin loader3GX 플러그인 로더 활성화
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3581,76 +3593,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1콘솔 ID: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ Warning경고
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3766,13 +3778,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- 인터페이스 언어:
+ Interface Language
+
- Theme:
- 테마:
+ Theme
+
@@ -3781,8 +3793,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- 아이콘 사이즈:
+ Icon Size
+
@@ -3802,8 +3814,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- 첫째행 텍스트:
+ Row 1 Text
+
@@ -3837,18 +3849,18 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- 둘째행 텍스트:
+ Row 2 Text
+
- Hide Titles without Icon
- 아이콘이 없는 제목 숨기기
+ Hide titles without icon
+
- Single Line Mode
- 한 줄 모드
+ Single line mode
+
@@ -3857,7 +3869,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3940,12 +3952,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ Connecting연결하는 중
-
+ Connect연결하기
@@ -4065,582 +4077,596 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.현재 에뮬레이션 속도. 100%보다 높거나 낮은 값은 에뮬레이션이 3DS보다 빠르거나 느린 것을 나타냅니다.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.3DS 프레임을 에뮬레이션 하는 데 걸린 시간, 프레임제한 또는 v-동기화를 카운트하지 않음. 최대 속도 에뮬레이션의 경우, 이는 최대 16.67 ms여야 합니다.
-
+ MicroProfile (unavailable)
-
+ Clear Recent Files최근 파일 삭제
-
+ &Continue계속(&C)
-
+ &Pause일시중지(&P)
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.알 수 없는 오류가 발생했습니다. 자세한 내용은 로그를 참조하십시오.
-
+ CIA must be installed before usageCIA를 사용하기 전에 설치되어야 합니다
-
+ Before using this CIA, you must install it. Do you want to install it now?이 CIA를 사용하기 전에 설치해야합니다. 지금 설치 하시겠습니까?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1슬롯 %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3슬롯 %1 - %2 %3
-
+ Error Opening %1 Folder%1 폴더 열기 오류
-
-
+
+ Folder does not exist!폴더가 존재하지 않습니다!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...덤프중...
-
-
+
+ Cancel취소
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.베이스 RomFS를 덤프 할 수 없습니다.
자세한 내용은 로그를 참조하십시오.
-
+ Error Opening %1%1 열기 오류
-
+ Select Directory디렉터리 선택하기
-
+ Properties속성
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS 실행파일 (%1);;모든파일 (*.*)
-
+ Load File파일 불러오기
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load Files파일 불러오기
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)모든파일 (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1가 성공적으로 설치되었습니다.
-
+ Unable to open File파일을 열 수 없음
-
+ Could not open %1%1을(를) 열 수 없음
-
+ Installation aborted설치 중단됨
-
+ The installation of %1 was aborted. Please see the log for more details%1의 설치가 중단되었습니다. 자세한 내용은 로그를 참조하십시오.
-
+ Invalid File올바르지 않은 파일
-
+ %1 is not a valid CIA%1은 올바른 CIA가 아닙니다
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File파일을 찾을 수 없음
-
+ Could not find %11을(를) 찾을 수 없습니다
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.
-
+ File not found파일을 찾을 수 없음
-
+ File "%1" not found"%1" 파일을 찾을 수 없음
-
+ Savestates상태저장(Savestates)
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data fileAmiibo 데이터 파일 열기 오류
-
+ A tag is already in use.태그가 이미 사용중입니다.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo 파일 (%1);; 모든파일 (*.*)
-
+ Load AmiiboAmiibo 불러오기
-
+ Unable to open amiibo file "%1" for reading.Amiibo 파일 "%1"을 읽을 수 없습니다.
-
+ Record Movie무비 녹화
-
+ Movie recording cancelled.무비 레코딩이 취소되었습니다.
-
-
+
+ Movie Saved무비 저장됨
-
-
+
+ The movie is successfully saved.무비가 성공적으로 저장되었습니다
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory올바르지 않은 스크린숏 디렉터리
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.지정된 스크린숏 디렉터리를 생성할 수 없습니다. 스크린숏 경로가 기본값으로 다시 설정됩니다.
-
+ Could not load video dumper비디오 덤퍼를 불러올 수 없습니다
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4649,274 +4675,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectoryFFmpeg 디렉토리 선택
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.제공된 FFmpeg 디렉토리에 %1이 없습니다. 올바른 디렉토리가 선택되었는지 확인하십시오.
-
+ FFmpeg has been sucessfully installed.FFmpeg가 성공적으로 설치되었습니다.
-
+ Installation of FFmpeg failed. Check the log file for details.FFmpeg 설치에 실패했습니다. 자세한 내용은 로그 파일을 확인하십시오.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1%1 녹화 중
-
+ Playing %1 / %2%1 / %2 재생 중
-
+ Movie Finished무비 완료됨
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%속도: %1%
-
+ Speed: %1% / %2%속도: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 ms프레임: %1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archive시스템 아카이브
-
+ System Archive Not Found시스템 아카이브를 찾을수 없습니다
-
+ System Archive Missing시스템 아카이브가 없습니다
-
+ Save/load Error저장하기/불러오기 오류
-
+ Fatal Error치명적인 오류
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encountered치명적인 오류가 발생했습니다
-
+ Continue계속
-
+ Quit Application
-
+ OK확인
-
+ Would you like to exit now?지금 종료하시겠습니까?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback Completed재생 완료
-
+ Movie playback completed.무비 재생 완료
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window첫번째 윈도우
-
+ Secondary Window두번째 윈도우
@@ -5022,239 +5038,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ Compatibility호환성
-
-
+
+ Region지역
-
-
+
+ File type파일 타입
-
-
+
+ Size크기
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open열기
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFSRomFS 덤프
-
+ Disk Shader Cache디스크 셰이더 캐시
-
+ Open Shader Cache Location셰이더 캐시 위치 열기
-
+ Delete OpenGL Shader CacheOpenGL 셰이더 캐시 삭제하기
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ Properties속성
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan Subfolders서브 디렉토리 스캔
-
+ Remove Application Directory
-
+ Move Up위로
-
+ Move Down 아래로
-
+ Open Directory Location디렉터리 위치 열기
-
+ Clear지우기
-
+ Name이름
@@ -5262,77 +5293,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ Perfect완벽함
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ Great좋음
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ Okay양호
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ Bad나쁨
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/Menu인트로/메뉴
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't Boot실행불가
-
+ The app crashes when attempting to startup.
-
+ Not Tested테스트되지 않음
-
+ The app has not yet been tested.
@@ -5340,7 +5371,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5348,27 +5379,27 @@ Screen.
GameListSearchField
-
+ of중의
-
+ result결과
-
+ results결과
-
+ Filter:필터:
-
+ Enter pattern to filter검색 필터 입력
@@ -5696,86 +5727,86 @@ Screen.
사이클 인덱스:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
주소 레지스터: %1, %2
-
+ Compare Result: %1, %2
비교 결과: %1, %2
-
+ Static Condition: %1
정적 조건: %1
-
+ Dynamic Conditions: %1, %2
동적 조건: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
루프 매개변수: %1(반복), %2(이니셜라이저), %3(증분), %4
-
+ Instruction offset: 0x%1인스트럭션 오프셋: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (마지막 명령어)
@@ -6075,32 +6106,32 @@ Debug Message:
비밀번호:
-
+ Room Name방 이름
-
+ Preferred Application
-
+ Host호스트
-
+ Players플레이어
-
+ Refreshing새로고침중
-
+ Refresh List목록 새로고침
@@ -7099,32 +7130,32 @@ They may have left the room.
%1 (0x%2)
-
+ Unsupported encrypted application
-
+ Invalid region올바르지 않은 지역
-
+ Installed Titles설치된 제목
-
+ System Titles시스템 제목
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/lt_LT.ts b/dist/languages/lt_LT.ts
index da7872ccc..9e5e6a55b 100644
--- a/dist/languages/lt_LT.ts
+++ b/dist/languages/lt_LT.ts
@@ -290,8 +290,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- Emuliacija:
+ Emulation
+ Emuliacija
@@ -395,6 +395,7 @@ This would ban both their forum username and their IP address.
+ CameraKamera
@@ -406,8 +407,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- Kamera, kurią konfigūruosite:
+ Camera to Configure
+
@@ -427,8 +428,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- Kameros režimas:
+ Camera mode
+
@@ -448,8 +449,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- Kameros pozicija:
+ Camera position
+
@@ -474,8 +475,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- Kameros įvestis:
+ Camera Image Source
+
@@ -494,8 +495,8 @@ This would ban both their forum username and their IP address.
- File:
- Failas:
+ File
+
@@ -508,11 +509,6 @@ This would ban both their forum username and their IP address.
Select the system camera to usePasirinkite, kurią sistemos kamerą naudoti
-
-
- Camera:
- Kamera:
- <Default>
@@ -526,8 +522,8 @@ This would ban both their forum username and their IP address.
- Flip:
- Apvertimas:
+ Flip
+
@@ -1079,7 +1075,7 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1138,48 +1134,53 @@ Would you like to ignore the error and continue?
-
+
+ Swap Eyes
+
+
+
+ Utility
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom textures
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump textures
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom textures
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading
@@ -1237,12 +1238,12 @@ Would you like to ignore the error and continue?
- Set emulation speed:
+ Set emulation speed
- Emulation Speed:
+ Emulation Speed
@@ -1354,12 +1355,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1379,8 +1380,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- Įjungti techninės įrangos šešėliuoklę
+ Enable hardware shader
+
@@ -1389,8 +1390,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- Tiksli multiplikacija
+ Accurate multiplication
+
@@ -1399,8 +1400,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- Įjungti šešėliuoklės JIT
+ Enable shader JIT
+
@@ -1409,7 +1410,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1419,7 +1420,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentation
@@ -1459,7 +1460,7 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
+ Use disk shader cache
@@ -1484,7 +1485,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1973,12 +1974,12 @@ Would you like to ignore the error and continue?
- Swap Screens
- Apkeisti ekranus
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2095,7 +2096,7 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2443,7 +2444,7 @@ Would you like to ignore the error and continue?
- Use Virtual SD
+ Use virtual SD card
@@ -2453,7 +2454,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage location
@@ -2540,8 +2541,8 @@ online features (if installed)
- Region:
-
+ Region
+ Regionas
@@ -2549,326 +2550,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameVartotojo vardas
-
+ BirthdayGimtadienis
-
+ JanuarySausio
-
+ FebruaryVasario
-
+ MarchKovo
-
+ AprilBalandžio
-
+ MayGegužės
-
+ JuneBirželio
-
+ JulyLiepos
-
+ AugustRugpjūčio
-
+ SeptemberRugsėjo
-
+ OctoberSpalio
-
+ NovemberLapkričio
-
+ DecemberGruodžio
-
+ LanguageKalba
-
+ Note: this can be overridden when region setting is auto-selectPastaba: šis nustatymas bus ignoruojamas jeigu regionas nustatytas į "Automatiškai pasirinkti"
-
+ Japanese (日本語)Japonų (日本語)
-
+ EnglishAnglų (English)
-
+ French (français)Prancūzų (français)
-
+ German (Deutsch)Vokiečių (Deutsch)
-
+ Italian (italiano)Italų (italiano)
-
+ Spanish (español)Ispanų (español)
-
+ Simplified Chinese (简体中文)Supaprastinta kinų (简体中文)
-
+ Korean (한국어)Korėjiečių (한국어)
-
+ Dutch (Nederlands)Olandų (Nederlands)
-
+ Portuguese (português)Portugalų (português)
-
+ Russian (Русский)Rusų (Русский)
-
+ Traditional Chinese (正體中文)Tradicinė kinų (正體中文)
-
+ Sound output modeGarso išvesties režimas
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundErdvinis
-
+ CountryŠalis
-
+ ClockLaikrodis
-
+ System ClockSistemos laikrodis
-
+ Fixed TimeNustatytas laikas
-
+ Startup timeUžkrovimo laikas
-
+ yyyy-MM-ddTHH:mm:ssmetai-MĖNESIAI-dienaTVALANDA:minutė:sekundė
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:Konsolės ID:
-
-
+
+ RegenerateRegeneruoti
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3578,76 +3590,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1Konsolės ID: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningĮspėjimas
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3762,13 +3774,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Sąsajos kalba:
+ Interface Language
+
- Theme:
- Tema:
+ Theme
+
@@ -3777,8 +3789,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- Žaidimo paveikslėlio dydis:
+ Icon Size
+
@@ -3798,8 +3810,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- 1 eilutės tekstas:
+ Row 1 Text
+
@@ -3833,17 +3845,17 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- 2 eilutės tekstas:
+ Row 2 Text
+
- Hide Titles without Icon
- Paslėpti programas be paveikslėlio
+ Hide titles without icon
+
- Single Line Mode
+ Single line mode
@@ -3853,7 +3865,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3936,12 +3948,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingJungiamasi
-
+ ConnectPrisijungti
@@ -4060,581 +4072,595 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Dabartinės emuliacijos greitis. Reikšmės žemiau ar aukščiau 100% parodo, kad emuliacija veikia greičiau ar lėčiau negu 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Laikas, kuris buvo sunaudotas atvaizduoti 1 3DS kadrą, neskaičiuojant FPS ribojimo ar V-Sync. Pilno greičio emuliacijai reikalinga daugiausia 16.67 ms reikšmė.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesPravalyti neseniai įkrautus failus
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usage
-
+ Before using this CIA, you must install it. Do you want to install it now?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 FolderKlaida atidarant %1 aplanką
-
-
+
+ Folder does not exist!Aplankas neegzistuoja!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...
-
-
+
+ CancelAtšaukti
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.
-
+ Error Opening %1Klaida atidarant %1
-
+ Select DirectoryPasirinkti katalogą
-
+ Properties
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS programa (%1);;Visi failai (*.*)
-
+ Load FileĮkrauti failą
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesĮkrauti failus
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Visi failai (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 buvo įdiegtas sėkmingai.
-
+ Unable to open FileNegalima atverti failo
-
+ Could not open %1Nepavyko atverti %1
-
+ Installation abortedInstaliacija nutraukta
-
+ The installation of %1 was aborted. Please see the log for more detailsFailo %1 instaliacija buvo nutraukta. Pasižiūrėkite į žurnalą dėl daugiau informacijos
-
+ Invalid FileKlaidingas failas
-
+ %1 is not a valid CIA%1 nėra tinkamas CIA
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.
-
+ File not foundFailas nerastas
-
+ File "%1" not foundFailas "%1" nerastas
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)„Amiibo“ failas (%1);; Visi failai (*.*)
-
+ Load AmiiboĮkrauti „Amiibo“
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieĮrašyti įvesčių vaizdo įrašą
-
+ Movie recording cancelled.Įrašo įrašymas nutrauktas.
-
-
+
+ Movie SavedĮrašas išsaugotas
-
-
+
+ The movie is successfully saved.Filmas sėkmingai išsaugotas.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4643,274 +4669,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Greitis: %1%
-
+ Speed: %1% / %2%Greitis: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msKadras: %1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archive
-
+ System Archive Not FoundSisteminis archyvas nerastas
-
+ System Archive Missing
-
+ Save/load Error
-
+ Fatal ErrorNepataisoma klaida
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encountered
-
+ ContinueTęsti
-
+ Quit Application
-
+ OKGerai
-
+ Would you like to exit now?Ar norite išeiti?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedAtkūrimas užbaigtas
-
+ Movie playback completed.Įrašo atkūrimas užbaigtas.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5016,239 +5032,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilitySuderinamumas
-
-
+
+ RegionRegionas
-
-
+
+ File typeFailo tipas
-
-
+
+ SizeDydis
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ Properties
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan SubfoldersIeškoti poaplankius
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory LocationAtidaryti katalogo vietą
-
+ ClearIšvalyti
-
+ NamePavadinimas
@@ -5256,77 +5287,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectTobulas
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatPuikus
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayGeras
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadBlogas
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuRodo tik pradžios ekraną
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootNepasileidžia
-
+ The app crashes when attempting to startup.
-
+ Not TestedNetestuota
-
+ The app has not yet been tested.
@@ -5334,7 +5365,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5342,27 +5373,27 @@ Screen.
GameListSearchField
-
+ ofiš
-
+ resultrezultatų
-
+ resultsrezultatai
-
+ Filter:Filtras:
-
+ Enter pattern to filterĮveskite raktinius žodžius filtravimui
@@ -5690,87 +5721,87 @@ Screen.
Rato indeksas:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Adreso registrai: %1, %2
-
+ Compare Result: %1, %2
Palyginti rezultatus: %1, %2
-
+ Static Condition: %1
Statinė sąlyga %1
-
+ Dynamic Conditions: %1, %2
Dinaminės sąlygos: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Ciklo parametrai: %1 (pasikartoja), %2 (inicijuoja), %3 (didina), %4
-
+ Instruction offset: 0x%1Instrukcijos ofsetas: 0x%1
-
+ -> 0x%2-> 0x%2
-
+ (last instruction)(paskutinė instrukcija)
@@ -6069,32 +6100,32 @@ Debug Message:
Slaptažodis:
-
+ Room NameServerio pavadinimas
-
+ Preferred Application
-
+ HostVartotojas
-
+ PlayersŽaidėjų skaičius
-
+ RefreshingAtnaujinama
-
+ Refresh ListAtnaujinti sąrašą
@@ -6595,7 +6626,7 @@ Debug Message:
File:
- Failas:
+
@@ -6687,7 +6718,7 @@ Debug Message:
File:
- Failas:
+
@@ -7092,32 +7123,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionKlaidingas regionas
-
+ Installed Titles
-
+ System Titles
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/nb.ts b/dist/languages/nb.ts
index c22a8c7ef..d54ecb936 100644
--- a/dist/languages/nb.ts
+++ b/dist/languages/nb.ts
@@ -292,8 +292,8 @@ Dette ville forby både deres brukernavn og IP-adressen.
- Emulation:
- Emulering:
+ Emulation
+ Emulering
@@ -397,6 +397,7 @@ Dette ville forby både deres brukernavn og IP-adressen.
+ CameraKamera
@@ -408,8 +409,8 @@ Dette ville forby både deres brukernavn og IP-adressen.
- Camera to configure:
- Konfigurer kamera:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ Dette ville forby både deres brukernavn og IP-adressen.
- Camera mode:
- Kameramodus:
+ Camera mode
+
@@ -450,8 +451,8 @@ Dette ville forby både deres brukernavn og IP-adressen.
- Camera position:
- Kamera posisjon:
+ Camera position
+
@@ -476,8 +477,8 @@ Dette ville forby både deres brukernavn og IP-adressen.
- Camera Image Source:
- Kamerabildekilde:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ Dette ville forby både deres brukernavn og IP-adressen.
- File:
- Fil:
+ File
+
@@ -510,11 +511,6 @@ Dette ville forby både deres brukernavn og IP-adressen.
Select the system camera to useVelg systemkameraet som skal brukes
-
-
- Camera:
- Kamera:
- <Default>
@@ -528,8 +524,8 @@ Dette ville forby både deres brukernavn og IP-adressen.
- Flip:
- Flip:
+ Flip
+
@@ -1081,7 +1077,7 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1140,48 +1136,53 @@ Would you like to ignore the error and continue?
-
+
+ Swap Eyes
+
+
+
+ Utility
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom textures
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump textures
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom textures
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading
@@ -1239,13 +1240,13 @@ Would you like to ignore the error and continue?
- Set emulation speed:
+ Set emulation speed
- Emulation Speed:
- Emulator Hastighet:
+ Emulation Speed
+
@@ -1356,12 +1357,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1381,8 +1382,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- Aktiver Maskinvare Gjengivelse
+ Enable hardware shader
+
@@ -1391,8 +1392,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- Nøyaktig Multiplikasjon
+ Accurate multiplication
+
@@ -1401,8 +1402,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- Aktiver Gjengivelse JIT
+ Enable shader JIT
+
@@ -1411,7 +1412,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1421,7 +1422,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentation
@@ -1461,7 +1462,7 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
+ Use disk shader cache
@@ -1486,7 +1487,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1975,12 +1976,12 @@ Would you like to ignore the error and continue?
- Swap Screens
- Bytt Skjerm
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2097,7 +2098,7 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2445,7 +2446,7 @@ Would you like to ignore the error and continue?
- Use Virtual SD
+ Use virtual SD card
@@ -2455,7 +2456,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage location
@@ -2542,8 +2543,8 @@ online features (if installed)
- Region:
-
+ Region
+ Region
@@ -2551,326 +2552,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameBrukernavn
-
+ BirthdayFødselsdag
-
+ JanuaryJanuar
-
+ FebruaryFebruar
-
+ MarchMars
-
+ AprilApril
-
+ MayMai
-
+ JuneJuni
-
+ JulyJuli
-
+ AugustAugust
-
+ SeptemberSeptember
-
+ OctoberOktober
-
+ NovemberNovember
-
+ DecemberDesember
-
+ LanguageSpråk
-
+ Note: this can be overridden when region setting is auto-selectMerk: dette kan overstyres når regioninnstillingen er automatisk valgt
-
+ Japanese (日本語)Japansk (日本語)
-
+ EnglishEngelsk
-
+ French (français)Fransk (français)
-
+ German (Deutsch)Tysk (Deutsch)
-
+ Italian (italiano)Italiensk (italiano)
-
+ Spanish (español)Spansk (español)
-
+ Simplified Chinese (简体中文)Enkel Kinesisk (简体中文)
-
+ Korean (한국어)Koreansk (한국어)
-
+ Dutch (Nederlands)Nederlandsk (Nederlands)
-
+ Portuguese (português)portugisisk (português)
-
+ Russian (Русский)Russisk (Русский)
-
+ Traditional Chinese (正體中文)Tradisjonell Kinesisk (正體中文)
-
+ Sound output modeLydutgangsmodus
-
+ MonoMono
-
+ StereoStero
-
+ SurroundSurround
-
+ CountryLand
-
+ ClockKlokke
-
+ System ClockSystem Klokke
-
+ Fixed TimeBestemt Tid
-
+ Startup timeOppstartstid
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:Konsoll ID:
-
-
+
+ RegenerateRegenerere
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3580,76 +3592,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1Konsoll ID: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningAdvarsel
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3765,13 +3777,13 @@ Dra punkter for å endre posisjon, eller dobbeltklikk på tabellceller for å re
- Interface language:
- Grensesnittspråk:
+ Interface Language
+
- Theme:
- Tema:
+ Theme
+
@@ -3780,8 +3792,8 @@ Dra punkter for å endre posisjon, eller dobbeltklikk på tabellceller for å re
- Icon Size:
- Ikon Størrelse:
+ Icon Size
+
@@ -3801,8 +3813,8 @@ Dra punkter for å endre posisjon, eller dobbeltklikk på tabellceller for å re
- Row 1 Text:
- Rad 1 tekst:
+ Row 1 Text
+
@@ -3836,18 +3848,18 @@ Dra punkter for å endre posisjon, eller dobbeltklikk på tabellceller for å re
- Row 2 Text:
- Rad 2 tekst:
+ Row 2 Text
+
- Hide Titles without Icon
- Skjul titler uten ikon
+ Hide titles without icon
+
- Single Line Mode
- Enkeltlinjemodus
+ Single line mode
+
@@ -3856,7 +3868,7 @@ Dra punkter for å endre posisjon, eller dobbeltklikk på tabellceller for å re
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3939,12 +3951,12 @@ Dra punkter for å endre posisjon, eller dobbeltklikk på tabellceller for å re
DirectConnectWindow
-
+ ConnectingKobler til
-
+ ConnectKoble til
@@ -4063,582 +4075,596 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Nåværende emuleringhastighet. Verdier høyere eller lavere enn 100% indikerer at emuleringen kjører raskere eller langsommere enn en 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Tid tatt for å emulere et 3DS bilde, gjelder ikke bildebegrensning eller V-Sync. For raskest emulering bør dette være høyst 16,67 ms.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesTøm nylige filer
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usageCIA må installeres før bruk
-
+ Before using this CIA, you must install it. Do you want to install it now?Før du bruker denne CIA, må du installere den. Vil du installere det nå?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1Spor %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 FolderFeil ved Åpning av %1 Mappe
-
-
+
+ Folder does not exist!Mappen eksistere ikke!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...Dumper...
-
-
+
+ CancelKanseller
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.Kunne ikke dumpe basen RomFS.
Se loggen for detaljer.
-
+ Error Opening %1Feil ved åpning av %1
-
+ Select DirectoryVelg Mappe
-
+ Properties
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS Executable (%1);;All Files (*.*)
-
+ Load FileLast Fil
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesLast Filer
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Alle Filer (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 Ble installert vellykket.
-
+ Unable to open FileKan ikke åpne Fil
-
+ Could not open %1Kunne ikke åpne %1
-
+ Installation abortedInstallasjon avbrutt
-
+ The installation of %1 was aborted. Please see the log for more detailsInstalleringen av %1 ble avbrutt. Vennligst se logg for detaljer
-
+ Invalid FileUgyldig Fil
-
+ %1 is not a valid CIA%1 er ikke en gyldig CIA
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.
-
+ File not foundFil ikke funnet
-
+ File "%1" not foundFil "%1" ble ikke funnet
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo File (%1);; All Files (*.*)
-
+ Load AmiiboLast inn Amiibo
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieTa Opp Video
-
+ Movie recording cancelled.Filmopptak avbrutt.
-
-
+
+ Movie SavedFilm Lagret
-
-
+
+ The movie is successfully saved.Filmen ble lagret vellykket.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4647,274 +4673,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Fart: %1%
-
+ Speed: %1% / %2%Fart: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msBilde: %1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveEt System Arkiv
-
+ System Archive Not FoundSystem Arkiv ikke funnet
-
+ System Archive MissingSystem Arkiv Mangler
-
+ Save/load ErrorLagre/laste inn Feil
-
+ Fatal ErrorFatal Feil
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredFatal Feil Oppstått
-
+ ContinueFortsett
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Vil du avslutte nå?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedAvspilling Fullført
-
+ Movie playback completed.Filmavspilling fullført.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5020,239 +5036,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilityKompatibilitet
-
-
+
+ RegionRegion
-
-
+
+ File typeFiltype
-
-
+
+ SizeStørrelse
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFSDump RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ Properties
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan SubfoldersSkann Undermapper
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory LocationFjern Mappe Plassering
-
+ Clear
-
+ NameNavn
@@ -5260,77 +5291,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectPerfekt
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatBra
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayOk
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadDårlig
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuIntro/Meny
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootVil ikke starte opp
-
+ The app crashes when attempting to startup.
-
+ Not TestedIkke Testet
-
+ The app has not yet been tested.
@@ -5338,7 +5369,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5346,27 +5377,27 @@ Screen.
GameListSearchField
-
+ ofav
-
+ resultResultat
-
+ resultsResultater
-
+ Filter:Filter:
-
+ Enter pattern to filterSkriv inn mønster for å filtrere
@@ -5694,87 +5725,87 @@ Screen.
Syklusindeks:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Adresse Register: %1, %2
-
+ Compare Result: %1, %2
Sammenlign Resultater: %1, %2
-
+ Static Condition: %1
Statisk Tilstand: %1
-
+ Dynamic Conditions: %1, %2
Dynamiske Betingelser: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
-
+ Instruction offset: 0x%1Instruksjons forskyvning: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (siste instruksjon)
@@ -6074,32 +6105,32 @@ Debug Message:
Passord:
-
+ Room NameRom Navn
-
+ Preferred Application
-
+ HostVert
-
+ PlayersSpillere
-
+ RefreshingOppdaterer
-
+ Refresh ListOppdaterer Liste
@@ -6600,7 +6631,7 @@ Debug Message:
File:
- Fil:
+
@@ -6692,7 +6723,7 @@ Debug Message:
File:
- Fil:
+
@@ -7098,32 +7129,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionUgyldig region
-
+ Installed TitlesInstallerte Tittler
-
+ System TitlesSystem Tittler
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/nl.ts b/dist/languages/nl.ts
index 715d75a5f..b1dbff138 100644
--- a/dist/languages/nl.ts
+++ b/dist/languages/nl.ts
@@ -292,8 +292,8 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
- Emulation:
- Emulatie:
+ Emulation
+ Emulatie
@@ -397,6 +397,7 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
+ CameraCamera
@@ -408,8 +409,8 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
- Camera to configure:
- Camera om te configureren:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
- Camera mode:
- Camera modus:
+ Camera mode
+
@@ -450,8 +451,8 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
- Camera position:
- Camera positie:
+ Camera position
+
@@ -476,8 +477,8 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
- Camera Image Source:
- Camera Afbeelding Bron:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
- File:
- Bestand:
+ File
+
@@ -510,11 +511,6 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
Select the system camera to useSelecteer systeem camera om te gebruiken
-
-
- Camera:
- Camera:
- <Default>
@@ -528,8 +524,8 @@ Dit zal hun Forum gebruikersnaam en IP adres verbannen.
- Flip:
- Omdraaing:
+ Flip
+
@@ -1018,7 +1014,7 @@ Wilt u de fout negeren en doorgaan?
Enable Linear Filtering
- Activeer lineaire filtering
+
@@ -1082,7 +1078,7 @@ Wilt u de fout negeren en doorgaan?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1141,49 +1137,54 @@ Wilt u de fout negeren en doorgaan?
-
+
+ Swap Eyes
+
+
+
+ UtilityUtility
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Vervang texturen met PNG-bestanden.</p><p>Texturen worden geladen vanuit load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
- Gebruik aangepaste texturen
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Dump texturen naar PNG-bestanden.</p><p>Texturen worden gedumpt naar dump/textures/[Title ID]/.
-
- Dump Textures
- Dump texturen
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
- Aangepaste texturen vooraf laden
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Aangepaste texturen asynchroon laden met achtergrondthreads om stotteren bij het laden te verminderen</p></body></html>
-
- Async Custom Texture Loading
- Async aangepaste texturen laden
+
+ Async custom texture loading
+
@@ -1240,13 +1241,13 @@ Wilt u de fout negeren en doorgaan?
- Set emulation speed:
- Emulatiesnelheid instellen:
+ Set emulation speed
+
- Emulation Speed:
- Emulatiesnelheid:
+ Emulation Speed
+
@@ -1357,12 +1358,12 @@ Wilt u de fout negeren en doorgaan?
- SPIR-V Shader Generation
- SPIR-V shadergeneratie
+ SPIR-V shader generation
+
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1382,8 +1383,8 @@ Wilt u de fout negeren en doorgaan?
- Enable Hardware Shader
- Activeer Hardware Shader
+ Enable hardware shader
+
@@ -1392,8 +1393,8 @@ Wilt u de fout negeren en doorgaan?
- Accurate Multiplication
- Nauwkeurige Vermenigvuldiging
+ Accurate multiplication
+
@@ -1402,8 +1403,8 @@ Wilt u de fout negeren en doorgaan?
- Enable Shader JIT
- Activeer Shader JIT
+ Enable shader JIT
+
@@ -1412,8 +1413,8 @@ Wilt u de fout negeren en doorgaan?
- Enable Async Shader Compilation
- Activeer Async shadercompilatie
+ Enable async shader compilation
+
@@ -1422,8 +1423,8 @@ Wilt u de fout negeren en doorgaan?
- Enable Async Presentation
- Activeer Async-presentatie
+ Enable async presentation
+
@@ -1462,8 +1463,8 @@ Wilt u de fout negeren en doorgaan?
- Use Disk Shader Cache
- Gebruik schijfshadercache
+ Use disk shader cache
+
@@ -1487,7 +1488,7 @@ Wilt u de fout negeren en doorgaan?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1976,13 +1977,13 @@ Wilt u de fout negeren en doorgaan?
- Swap Screens
- Wissel Schermen
+ Swap screens
+
- Rotate Screens Upright
- Draai Schermen Rechtop
+ Rotate screens upright
+
@@ -2098,8 +2099,8 @@ Wilt u de fout negeren en doorgaan?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Onderste Scherm Doorzichtigheid % (alleen OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+
@@ -2446,8 +2447,8 @@ Wilt u de fout negeren en doorgaan?
- Use Virtual SD
- Gebruik virtuele SD
+ Use virtual SD card
+
@@ -2456,8 +2457,8 @@ Wilt u de fout negeren en doorgaan?
- Use Custom Storage
- Gebruik aangepaste opslag
+ Use custom storage location
+
@@ -2543,8 +2544,8 @@ online features (if installed)
- Region:
-
+ Region
+ Regio
@@ -2552,326 +2553,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameGebruikersnaam
-
+ BirthdayGeboortedatum
-
+ Januaryjanuari
-
+ Februaryfebruari
-
+ Marchmaart
-
+ Aprilapril
-
+ Maymei
-
+ Junejuni
-
+ Julyjuli
-
+ Augustaugustus
-
+ Septemberseptember
-
+ Octoberoktober
-
+ Novembernovember
-
+ Decemberdecember
-
+ LanguageTaal
-
+ Note: this can be overridden when region setting is auto-selectOpmerking: dit kan overschreven worden wanneer regio instelling op automatisch selecteren staat
-
+ Japanese (日本語)Japans (日本語)
-
+ EnglishEngels
-
+ French (français)Frans (français)
-
+ German (Deutsch)Duits (Deutsch)
-
+ Italian (italiano)Italiaans (italiano)
-
+ Spanish (español)Spaans (español)
-
+ Simplified Chinese (简体中文)Versimpeld Chinees (简体中文)
-
+ Korean (한국어)Koreaans (한국어)
-
+ Dutch (Nederlands)Nederlands (Nederlands)
-
+ Portuguese (português)Portugees (português)
-
+ Russian (Русский)Russisch (Русский)
-
+ Traditional Chinese (正體中文)Traditioneel Chinees (正體中文)
-
+ Sound output modeGeluidsuitvoer modus
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryLand
-
+ ClockKlok
-
+ System ClockSysteemklok
-
+ Fixed TimeVaste tijd
-
+ Startup timeOpstarttijd
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset timeOffset tijd
-
+ days
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System Ticks
-
+ RandomWillekeurig
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launchedSysteeminstellingen opstarten wanneer het Home-menu wordt gestart
-
+ Console ID:Console ID:
-
-
+
+ RegenerateHerstellen
-
+ MAC:
-
- 3GX Plugin Loader:
- 3GX-pluginlader:
+
+ 3GX Plugin Loader
+
-
+ Enable 3GX plugin loaderActiveer 3GX-pluginlader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3581,76 +3593,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1Console ID: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningWaarschuwing
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3766,13 +3778,13 @@ Sleep punten om de positie te wijzigen of dubbelklik op tabelcellen om waarden t
- Interface language:
- Interfacetaal:
+ Interface Language
+
- Theme:
- Thema:
+ Theme
+
@@ -3781,8 +3793,8 @@ Sleep punten om de positie te wijzigen of dubbelklik op tabelcellen om waarden t
- Icon Size:
- Icoongrootte
+ Icon Size
+
@@ -3802,8 +3814,8 @@ Sleep punten om de positie te wijzigen of dubbelklik op tabelcellen om waarden t
- Row 1 Text:
- Rij 1 Tekst:
+ Row 1 Text
+
@@ -3837,18 +3849,18 @@ Sleep punten om de positie te wijzigen of dubbelklik op tabelcellen om waarden t
- Row 2 Text:
- Rij 2 Tekst:
+ Row 2 Text
+
- Hide Titles without Icon
- Verberg titels zonder icoon
+ Hide titles without icon
+
- Single Line Mode
- Enkelvoudige lijnmodus
+ Single line mode
+
@@ -3857,7 +3869,7 @@ Sleep punten om de positie te wijzigen of dubbelklik op tabelcellen om waarden t
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3940,12 +3952,12 @@ Sleep punten om de positie te wijzigen of dubbelklik op tabelcellen om waarden t
DirectConnectWindow
-
+ ConnectingVerbinden
-
+ ConnectVerbind
@@ -4065,582 +4077,596 @@ Controleer de FFmpeg-installatie die wordt gebruikt voor de compilatie.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedGeen geschikte Vulkan-apparaten gedetecteerd
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.Vulkan-initialisatie mislukt tijdens het opstarten.<br/>Uw GPU ondersteunt Vulkan 1.1 mogelijk niet of u hebt niet het nieuwste grafische stuurprogramma.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Huidige emulatiesnelheid. Waardes hoger of lager dan 100% geven aan dat de emulatie sneller of langzamer gaat dan een 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Tijd verstrekt om één 3DS frame te emuleren, zonder framelimitatie of V-Sync te tellen. Voor volledige snelheid emulatie zal dit maximaal 16.67 ms moeten zijn.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesWis recente bestanden
-
+ &Continue&Continue
-
+ &Pause&Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.Er heeft zich een onbekende fout voorgedaan. Raadpleeg het log voor meer informatie.
-
+ CIA must be installed before usageCIA moet worden geïnstalleerd voor gebruik
-
+ Before using this CIA, you must install it. Do you want to install it now?Voordat u deze CIA kunt gebruiken, moet u hem installeren. Wilt u het nu installeren?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1Slot %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3Slot %1 - %2 %3
-
+ Error Opening %1 FolderFout bij het openen van de map %1
-
-
+
+ Folder does not exist!Map bestaat niet!
-
+ Remove Play Time DataVerwijder speeltijd gegevens
-
+ Reset play time?Stel speeltijd opnieuw in?
-
-
-
-
+
+
+
+ Create ShortcutSnelkoppeling maken
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1Het maken van een snelkoppeling naar %1 was succesvol
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Dit zal een snelkoppeling naar het huidige AppImage aanmaken. Dit zal mogelijk niet meer werken als u deze software bijwerkt. Wilt u doorgaan?
-
+ Failed to create a shortcut to %1Kon geen snelkoppeling naar %1 aanmaken
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...Dumping...
-
-
+
+ CancelAnnuleren
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.Kon basis RomFS niet dumpen.
Raadpleeg het log voor meer informatie.
-
+ Error Opening %1Fout bij het openen van %1
-
+ Select DirectorySelecteer Folder
-
+ PropertiesEigenschappen
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS Executable (%1);;Alle bestanden (*.*)
-
+ Load FileLaad bestand
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesLaad Bestanden
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Alle bestanden (*.*)
-
+ Connect to Artic BaseVerbind met Artic Base
-
+ Enter Artic Base server address:Voer Artic Base server adres in:
-
+ %1 has been installed successfully.%1 is succesvol geïnstalleerd.
-
+ Unable to open FileKan bestand niet openen
-
+ Could not open %1Kan %1 niet openen
-
+ Installation abortedInstallatie onderbroken
-
+ The installation of %1 was aborted. Please see the log for more detailsDe installatie van %1 is afgebroken. Zie het logboek voor meer details
-
+ Invalid FileOngeldig bestand
-
+ %1 is not a valid CIA%1 is geen geldige CIA
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find FileBestand niet gevonden
-
+ Could not find %1Kon %1 niet vinden
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...'%1' aan het verwijderen...
-
+ Failed to uninstall '%1'.Kon niet '%1' verwijderen.
-
+ Successfully uninstalled '%1'.'%1' succesvol verwijderd.
-
+ File not foundBestand niet gevonden
-
+ File "%1" not foundBestand "%1" niet gevonden
-
+ SavestatesSavestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data fileFout bij het openen van het amiibo databestand
-
+ A tag is already in use.Er is al een tag in gebruik.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo Bestand (%1);; Alle Bestanden (*.*)
-
+ Load AmiiboLaad Amiibo
-
+ Unable to open amiibo file "%1" for reading.Kan amiibo-bestand "%1" niet openen om te worden gelezen.
-
+ Record MovieFilm opnemen
-
+ Movie recording cancelled.Filmopname geannuleerd.
-
-
+
+ Movie SavedFilm Opgeslagen
-
-
+
+ The movie is successfully saved.De film is met succes opgeslagen.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot DirectoryOngeldige schermafbeeldmap
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.Kan de opgegeven map voor schermafbeeldingen niet maken. Het pad voor schermafbeeldingen wordt teruggezet naar de standaardwaarde.
-
+ Could not load video dumperKan videodumper niet laden
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4649,274 +4675,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectorySelecteer FFmpeg map
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.De opgegeven FFmpeg directory ontbreekt %1. Controleer of de juiste map is geselecteerd.
-
+ FFmpeg has been sucessfully installed.FFmpeg is met succes geïnstalleerd.
-
+ Installation of FFmpeg failed. Check the log file for details.Installatie van FFmpeg is mislukt. Controleer het logbestand voor meer informatie.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1Opname %1
-
+ Playing %1 / %2Afspelen %1 / %2
-
+ Movie FinishedFilm Voltooid
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Snelheid: %1%
-
+ Speed: %1% / %2%Snelheid: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msFrame: %1 ms
-
+ VOLUME: MUTEVOLUME: STIL
-
+ VOLUME: %1%Volume percentage (e.g. 50%)VOLUME: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveEen systeemarchief
-
+ System Archive Not FoundSysteem archief niet gevonden
-
+ System Archive MissingSysteemarchief ontbreekt
-
+ Save/load ErrorOpslaan/Laad fout
-
+ Fatal ErrorFatale Fout
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredFatale fout opgetreden
-
+ ContinueDoorgaan
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Wilt u nu afsluiten?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedAfspelen voltooid
-
+ Movie playback completed.Film afspelen voltooid.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary WindowPrimaire venster
-
+ Secondary WindowSecundair venster
@@ -5022,239 +5038,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilityCompatibiliteit
-
-
+
+ RegionRegio
-
-
+
+ File typeBestandstype
-
-
+
+ SizeGrootte
-
-
+
+ Play timeGespeelde tijd
-
+ FavoriteFavoriet
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenOpen
-
+ Application LocationApplicatie Locatie
-
+ Save Data LocationOpgeslagen Gegevens Locatie
-
+ Extra Data LocationExtra Gegevens Locatie
-
+ Update Data LocationUpdategegevens Locatie
-
+ DLC Data LocationDLC Gegevens Locatie
-
+ Texture Dump LocationTextures Dump Locatie
-
+ Custom Texture LocationAangepaste Textures Locatie
-
+ Mods LocationMods Locatie
-
+ Dump RomFSDump RomFS
-
+ Disk Shader CacheSchijf Shader-cache
-
+ Open Shader Cache LocationShader-cache locatie openen
-
+ Delete OpenGL Shader CacheOpenGL Shader-cache verwijderen
-
+ UninstallVerwijder
-
+ EverythingAlles
-
+ Application
-
+ UpdateUpdate
-
+ DLCDLC
-
+ Remove Play Time DataVerwijder Speeltijd Gegevens
-
+ Create ShortcutMaak snelkoppeling
-
+ Add to DesktopVoeg toe aan Bureaublad
-
+ Add to Applications MenuVoeg to aan Applicatie Menu
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesEigenschappen
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)%1 (Update)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Weet u zeker dat u '%1' wilt verwijderen?
-
+ Are you sure you want to uninstall the update for '%1'?Weet u zeker dat u de update voor '%1' wilt verwijderen?
-
+ Are you sure you want to uninstall all DLC for '%1'?Weet u zeker dat u alle DLC voor '%1' wilt verwijderen?
-
+ Scan SubfoldersScan Submappen
-
+ Remove Application Directory
-
+ Move UpOmhoog
-
+ Move DownOmlaag
-
+ Open Directory LocationOpen map Locatie
-
+ ClearWissen
-
+ NameNaam
@@ -5262,77 +5293,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectPerfect
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatGeweldig
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayOké
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadSlecht
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuIntro/Menu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootStart Niet
-
+ The app crashes when attempting to startup.
-
+ Not TestedNiet Getest
-
+ The app has not yet been tested.
@@ -5340,7 +5371,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5348,27 +5379,27 @@ Screen.
GameListSearchField
-
+ ofvan de
-
+ resultresultaat
-
+ resultsresultaten
-
+ Filter:Filter:
-
+ Enter pattern to filterPatroon invoeren om te filteren
@@ -5696,87 +5727,87 @@ Screen.
Cyclus Index:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Adres Registers: %1, %2
-
+ Compare Result: %1, %2
Vergelijkings-resultaten: %1, %2
-
+ Static Condition: %1
Statische Toestand: %1
-
+ Dynamic Conditions: %1, %2
Dynamische Toestand: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Loop Parameters: %1 (Herhaaldelijk), %2 (Tot stand brengen), %3 (Ophoging), %4
-
+ Instruction offset: 0x%1Instructie verspringing: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (laatste instructie)
@@ -6076,32 +6107,32 @@ Debug Message:
Wachtwoord:
-
+ Room NameKamernaam
-
+ Preferred Application
-
+ HostHost
-
+ PlayersSpelers
-
+ RefreshingVernieuwen
-
+ Refresh ListLijst vernieuwen
@@ -7103,32 +7134,32 @@ Misschien hebben ze de kamer verlaten.
%1 (0x%2)
-
+ Unsupported encrypted application
-
+ Invalid regionOngeldige regio
-
+ Installed TitlesGeïnstalleerde titels
-
+ System TitlesSysteem titels
-
+ Add New Application Directory
-
+ FavoritesFavorieten
diff --git a/dist/languages/pl_PL.ts b/dist/languages/pl_PL.ts
index a865ee2d9..bf065eb52 100644
--- a/dist/languages/pl_PL.ts
+++ b/dist/languages/pl_PL.ts
@@ -298,8 +298,8 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
- Emulation:
- Emulacja:
+ Emulation
+ Emulacja
@@ -403,6 +403,7 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
+ CameraKamera
@@ -414,8 +415,8 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
- Camera to configure:
- Kamera do konfiguracji:
+ Camera to Configure
+ Konfiguracja Kamery
@@ -435,8 +436,8 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
- Camera mode:
- Tryb kamery:
+ Camera mode
+ Tryb Kamery:
@@ -456,8 +457,8 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
- Camera position:
- Położenie kamery:
+ Camera position
+ Pozycja Kamery
@@ -482,8 +483,8 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
- Camera Image Source:
- Źródło Obrazu Kamery:
+ Camera Image Source
+ Źródło Obrazu Kamery
@@ -502,8 +503,8 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
- File:
- Plik:
+ File
+ Plik
@@ -516,11 +517,6 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
Select the system camera to useWybierz kamerę, której chcesz użyć
-
-
- Camera:
- Kamera:
- <Default>
@@ -534,8 +530,8 @@ Spowodowałoby to zablokowanie zarówno nazwy użytkownika forum, jak i adresu I
- Flip:
- Obrót:
+ Flip
+ Obrót
@@ -1088,8 +1084,8 @@ Czy chcesz zignorować błąd i kontynuować?
- Reverse Side by Side
- Odwróć Obok Siebie
+ Side by Side Full Width
+ Obok Siebie na Pełną Szerokość
@@ -1139,7 +1135,7 @@ Czy chcesz zignorować błąd i kontynuować?
Disable Right Eye Rendering
- Wyłącz renderowanie prawego oka
+ Wyłącz Renderowanie Prawego Oka
@@ -1147,49 +1143,54 @@ Czy chcesz zignorować błąd i kontynuować?
<html><head/><body><p>Wyłącza renderowanie prawego oka</p><p>Wyłącza renderowanie obrazu dla prawego oka, gdy nie jest używany tryb stereoskopowy. Znacznie poprawia wydajność w niektórych grach, ale w innych grach może powodować migotanie obrazu.</p></body></html>
-
+
+ Swap Eyes
+ Zamiana Oczu
+
+
+ UtilityNarzędzia
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Zastępuje tekstury przez pliki PNG.</p><p>Tekstury są ładowane z pliku load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom texturesUżyj niestandardowych tekstur
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Zrzuca tekstury do plików PNG.</p><p>Tekstury są zrzucane do pliku dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump texturesZrzuć Tekstury
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Ładowanie wszystkich niestandardowych tekstur do pamięci podczas uruchamiania, zamiast ładowania ich, gdy wymaga tego aplikacja.</p></body></html>
-
- Preload Custom Textures
- Wczytaj niestandardowe tekstury
+
+ Preload custom textures
+ Wczytaj Customowe Tekstury
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Załaduj niestandardowe tekstury asynchronicznie za pomocą wątków w tle, aby zmniejszyć opóźnienia w ładowaniu.</p></body></html>
-
- Async Custom Texture Loading
- Asynchroniczne ładowanie własnych tekstur
+
+ Async custom texture loading
+ Asynchroniczne ładowanie customowych tekstur
@@ -1246,13 +1247,13 @@ Czy chcesz zignorować błąd i kontynuować?
- Set emulation speed:
- Ustaw prędkość emulacji:
+ Set emulation speed
+ Ustaw prędkość emulacji
- Emulation Speed:
- Szybkość emulowania:
+ Emulation Speed
+ Szybkość Emulacji
@@ -1363,12 +1364,12 @@ Czy chcesz zignorować błąd i kontynuować?
- SPIR-V Shader Generation
+ SPIR-V shader generationGenerowanie shaderów SPIR-V
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizerWyłącz optymalizator GLSL -> SPIR-V
@@ -1388,7 +1389,7 @@ Czy chcesz zignorować błąd i kontynuować?
- Enable Hardware Shader
+ Enable hardware shaderAktywuj Shader Sprzętowy
@@ -1398,7 +1399,7 @@ Czy chcesz zignorować błąd i kontynuować?
- Accurate Multiplication
+ Accurate multiplicationDokładne Mnożenie
@@ -1408,7 +1409,7 @@ Czy chcesz zignorować błąd i kontynuować?
- Enable Shader JIT
+ Enable shader JITAktywuj Shader JIT
@@ -1418,7 +1419,7 @@ Czy chcesz zignorować błąd i kontynuować?
- Enable Async Shader Compilation
+ Enable async shader compilationWłącz asynchroniczną kompilację shaderów
@@ -1428,7 +1429,7 @@ Czy chcesz zignorować błąd i kontynuować?
- Enable Async Presentation
+ Enable async presentationWłącz rejestr asynchroniczną
@@ -1468,7 +1469,7 @@ Czy chcesz zignorować błąd i kontynuować?
- Use Disk Shader Cache
+ Use disk shader cacheUżyj pamięci podręcznej shaderów na dysku
@@ -1493,8 +1494,8 @@ Czy chcesz zignorować błąd i kontynuować?
- Delay application render thread:
- Opóźnienie renderowania wątku aplikacji:
+ Delay Application Render Thread
+ Opóźnij renderowanie wątku aplikacji:
@@ -1982,12 +1983,12 @@ Czy chcesz zignorować błąd i kontynuować?
- Swap Screens
+ Swap screensZamień Ekrany
- Rotate Screens Upright
+ Rotate screens uprightObróć ekrany w pozycji pionowej
@@ -2104,8 +2105,8 @@ Czy chcesz zignorować błąd i kontynuować?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>% krycia dolnego ekranu (tylko OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+ <html><head/><body><p>krycia dolnego ekranu %</p></body></html>
@@ -2452,7 +2453,7 @@ Czy chcesz zignorować błąd i kontynuować?
- Use Virtual SD
+ Use virtual SD cardUżyj Wirtualnej karty SD
@@ -2462,8 +2463,8 @@ Czy chcesz zignorować błąd i kontynuować?
- Use Custom Storage
- Użyj niestandardowego przechowywania
+ Use custom storage location
+ Użyj customowej lokalizacji przechowywania
@@ -2550,8 +2551,8 @@ funkcji online (jeśli są zainstalowane)
- Region:
- Region:
+ Region
+ Region
@@ -2559,326 +2560,338 @@ funkcji online (jeśli są zainstalowane)
Wybór automatyczny
-
+
+ Apply region free patch to
+installed applications.
+ Zastosuj łatkę bez regionu
+do zainstalowanych aplikacji.
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+ Naprawia region zainstalowanych aplikacji, aby były one wolne od ograniczeń regionalnych, dzięki czemu zawsze pojawiają się w menu głównym.
+
+
+ UsernameNazwa Użytkownika
-
+ BirthdayUrodziny
-
+ JanuaryStyczeń
-
+ FebruaryLuty
-
+ MarchMarzec
-
+ AprilKwiecień
-
+ MayMaj
-
+ JuneCzerwiec
-
+ JulyLipiec
-
+ AugustSierpień
-
+ SeptemberWrzesień
-
+ OctoberPaździernik
-
+ NovemberListopad
-
+ DecemberGrudzień
-
+ LanguageJęzyk
-
+ Note: this can be overridden when region setting is auto-selectUwaga: może zostać nadpisane jeśli region jest ustawiony na "Wybór automatyczny"
-
+ Japanese (日本語)Japoński (日本語)
-
+ EnglishAngielski (English)
-
+ French (français)Francuzki (français)
-
+ German (Deutsch)Niemiecki (Deutsch)
-
+ Italian (italiano)Włoski (italiano)
-
+ Spanish (español)Hiszpański (español)
-
+ Simplified Chinese (简体中文)Chiński Uproszczony (简体中文)
-
+ Korean (한국어)Koreański (한국어)
-
+ Dutch (Nederlands)Niderlandzki (Nederlands)
-
+ Portuguese (português)Portugalski (português)
-
+ Russian (Русский)Rosyjski (Русский)
-
+ Traditional Chinese (正體中文)Chiński Tradycyjny (正體中文)
-
+ Sound output modeTryb wyjścia dźwięku
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryKraj
-
+ ClockZegar
-
+ System ClockZegar Systemowy
-
+ Fixed TimeStały Czas
-
+ Startup timeCzas Uruchomienia
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset timePrzesunięcie czasu
-
+ daysdni
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksStartowe tyknięcia systemu
-
+ RandomLosowe
-
+ FixedNaprawione
-
+ Initial System Ticks OverrideNadpisanie początkowych tyknięć systemu
-
+ Play CoinsMonety gry
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>Liczba kroków na godzinę podawana przez krokomierz. Wartość może wynosić od 0 do 65,535.
-
+ Pedometer Steps per HourLiczba kroków krokomierza na godzinę
-
+ Run System Setup when Home Menu is launchedUruchom ustawienia systemu po uruchomieniu Home Menu
-
+ Console ID:ID konsoli:
-
-
+
+ RegenerateRegeneruj
-
+ MAC:MAC:
-
- 3GX Plugin Loader:
- Moduł ładowania wtyczki 3GX:
+
+ 3GX Plugin Loader
+ Wtyczka 3GX Loader
-
+ Enable 3GX plugin loaderWłącz ładowanie wtyczki 3GX
-
+ Allow applications to change plugin loader stateZezwól aplikacjom na zmianę stanu programu ładującego wtyczki
-
+ Real Console Unique DataUnikalne Dane Rzeczywistej Konsoli
-
+ Your real console is linked to Azahar.Twoja rzeczywista konsola jest połączona z Azahar.
-
+ UnlinkOdłącz
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseWybierz
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.Ustawienia systemowe są dostępne tylko wtedy, gdy aplikacja nie jest uruchomiona
@@ -3588,76 +3601,76 @@ funkcji online (jeśli są zainstalowane)
Plik sed (*.sed);;Wszystkie pliki (*.*)
-
-
+
+ Console ID: 0x%1ID konsoli: 0x%1
-
-
+
+ MAC: %1MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?To zastąpi twojego obecnego wirtualnego 3DS. Odzyskanie twojego obecnego 3DS będzie niemożliwe. To może spowodować niespodziewane efekty w aplikacjach. Operacja może się nie powieść jeżeli korzystasz z przestarzałej konfiguracji zapisów aplikacji. Kontynuować?
-
-
-
+
+
+ WarningOstrzeżenie
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Spowoduje to zastąpienie bieżącego adresu MAC nowym. Nie zaleca się wykonywania tej czynności, jeśli adres MAC został uzyskany z rzeczywistej konsoli za pomocą narzędzia konfiguracyjnego. Kontynuować?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?Ta czynność spowoduje odłączenie twojej rzeczywistej konsoli od Azahar, z następującymi konsekwencjami: <br><ul><li>Twój OTP, SecureInfo i LocalFriendCodeSeed zostaną usunięte z Azahar.</li><li>Lista znajomych zostanie zresetowana, a użytkownik zostanie wylogowany z konta NNID/PNID.</li><li>Pliki systemowe i tytuły z eshopu uzyskane za pośrednictwem Azahar staną się niedostępne do czasu ponownego połączenia z tą samą konsolą (dane zapisu nie zostaną utracone).</li></ul><br>Kontynuować?
-
+ Invalid country for configured regionNieprawidłowy kraj dla skonfigurowanego regionu
-
+ Invalid country for console unique dataNieprawidłowy kraj dla unikalnych danych konsoli
-
+ Status: LoadedStatus: Wczytano
-
+ Status: Loaded (Invalid Signature)Status: Wczytano (Nieprawidłowy znak)
-
+ Status: Loaded (Region Changed)Status: Załadowano (Zmieniono region)
-
+ Status: Not FoundStatus: Nie znaleziono
-
+ Status: InvalidStatus: Nieprawidłowy
-
+ Status: IO ErrorStatus: Błąd IO
@@ -3773,12 +3786,12 @@ Przeciągnij punkty, aby zmienić ich położenie lub kliknij dwukrotnie pola ta
- Interface language:
+ Interface LanguageJęzyk Interfejsu
- Theme:
+ ThemeMotyw:
@@ -3788,7 +3801,7 @@ Przeciągnij punkty, aby zmienić ich położenie lub kliknij dwukrotnie pola ta
- Icon Size:
+ Icon SizeRozmiar Ikony:
@@ -3809,7 +3822,7 @@ Przeciągnij punkty, aby zmienić ich położenie lub kliknij dwukrotnie pola ta
- Row 1 Text:
+ Row 1 TextPierwszy wiersz tekstu:
@@ -3844,17 +3857,17 @@ Przeciągnij punkty, aby zmienić ich położenie lub kliknij dwukrotnie pola ta
- Row 2 Text:
+ Row 2 TextDrugi wiersz tekstu:
- Hide Titles without Icon
+ Hide titles without iconUkryj tytuły bez ikon
- Single Line Mode
+ Single line modeTryb jednoliniowy
@@ -3864,7 +3877,7 @@ Przeciągnij punkty, aby zmienić ich położenie lub kliknij dwukrotnie pola ta
- Show Advanced Frame Time Info
+ Show advanced frame time infoPokaż zaawansowane informacje o liczbie klatek
@@ -3947,12 +3960,12 @@ Przeciągnij punkty, aby zmienić ich położenie lub kliknij dwukrotnie pola ta
DirectConnectWindow
-
+ ConnectingŁączenie
-
+ ConnectPołączono
@@ -4072,497 +4085,511 @@ Sprawdź instalację FFmpeg używaną do kompilacji.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedNie wykryto odpowiednich urządzeń Vulkan
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.Podczas uruchamiania systemu uruchamianie Vulkan nie powiodło się.<br/>Twój procesor graficzny może nie obsługiwać Vulkan 1.1 lub nie masz najnowszego sterownika graficznego.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.Bieżąca prędkość ruchu Artic Base. Wyższe wartości oznaczają większe obciążenia transferowe.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Obecna szybkość emulacji. Wartości większe lub mniejsze niż 100 % oznaczają, że emulacja jest szybsza lub wolniejsza niż 3DS
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.Jak wiele klatek na sekundę aplikacja wyświetla w tej chwili. Ta wartość będzie się różniła między aplikacji, jak również między scenami w aplikacji.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Czas potrzebny do emulacji klatki 3DS, nie zawiera limitowania klatek oraz v-sync. Dla pełnej prędkości emulacji, wartość nie powinna przekraczać 16.67 ms.
-
+ MicroProfile (unavailable)MicroProfile (niedostępne)
-
+ Clear Recent FilesWyczyść Ostatnio Używane
-
+ &Continue&Kontynuuj
-
+ &Pause&Wstrzymaj
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar jest w trakcie uruchamiania aplikację
-
-
+
+ Invalid App FormatNieprawidłowy format aplikacji
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Twój format aplikacji nie jest obsługiwany.<br/>Postępuj zgodnie z instrukcjami, aby ponownie zrzucić <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>kartridże z grami</a> lub <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>zainstalowane tytuły</a>.
-
+ App CorruptedAplikacja jest uszkodzona
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Twoja aplikacja jest uszkodzona. <br/>Postępuj zgodnie z instrukcjami, aby ponownie zrzucić <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>kartridże z grami</a> lub <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>zainstalowane tytuły</a>.
-
+ App EncryptedAplikacja jest zaszyfrowana
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Twoja aplikacja jest zaszyfrowana. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Więcej informacji można znaleźć na naszym blogu.</a>
-
+ Unsupported AppNieobsługiwana aplikacja
-
+ GBA Virtual Console is not supported by Azahar.Wirtualnej konsola GBA nie są obsługiwana przez Azahar.
-
-
+
+ Artic ServerSerwer Artic
-
+
+ Invalid system mode
+ Nieprawidłowy moduł systemu
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+ Aplikacje dostępne wyłącznie na konsoli New 3DS nie mogą być uruchamiane bez włączenia trybu New 3DS.
+
+
+ Error while loading App!Błąd podczas ładowania aplikacji!
-
+ An unknown error occurred. Please see the log for more details.Wystąpił nieznany błąd. Więcej informacji można znaleźć w logu.
-
+ CIA must be installed before usageCIA musi być zainstalowana przed użyciem
-
+ Before using this CIA, you must install it. Do you want to install it now?Przed użyciem CIA należy ją zainstalować. Czy chcesz zainstalować ją teraz?
-
+ Quick LoadSzybkie wczytywanie
-
+ Quick SaveSzybkie zapisywanie
-
-
+
+ Slot %1Slot %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Szybkie zapisywanie - %1
-
+ Quick Load - %1Szybkie wczytywanie - %1
-
+ Slot %1 - %2 %3Slot %1 - %2 %3
-
+ Error Opening %1 FolderBłąd podczas otwierania folderu %1
-
-
+
+ Folder does not exist!Folder nie istnieje!
-
+ Remove Play Time DataUsuń dane czasu odtwarzania
-
+ Reset play time?Zresetować czas gry?
-
-
-
-
+
+
+
+ Create ShortcutUtwórz skrót
-
+ Do you want to launch the application in fullscreen?Czy chcesz uruchomić aplikacje na pełnym ekranie?
-
+ Successfully created a shortcut to %1Pomyślnie utworzono skrót do %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Spowoduje to utworzenie skrótu do bieżącego obrazu aplikacji. Może to nie działać dobrze po aktualizacji. Kontynuować?
-
+ Failed to create a shortcut to %1Nie udało się utworzyć skrótu do %1
-
+ Create IconStwórz ikonę
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.Nie można utworzyć pliku ikony. Ścieżka "%1" nie istnieje i nie można jej utworzyć.
-
+ Dumping...Zrzucanie...
-
-
+
+ CancelAnuluj
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Nie można zrzucić podstawowego RomFS.
Szczegółowe informacje można znaleźć w logu.
-
+ Error Opening %1Błąd podczas otwierania %1
-
+ Select DirectoryWybierz Folder
-
+ PropertiesWłaściwości
-
+ The application properties could not be loaded.Nie można wczytać właściwości aplikacji.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Pliki wykonywalne 3DS (%1);;Wszystkie pliki (*.*)
-
+ Load FileZaładuj Plik
-
-
+
+ Set Up System FilesKonfiguracja plików systemowych
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>Azahar potrzebuje plików z rzeczywistej konsoli, aby móc korzystać z niektórych jej funkcji.<br>Możesz uzyskać te pliki za pomocą <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Uwagi:<ul><li><b>Ta operacja zainstaluje unikalne pliki konsoli do Azahar, nie udostępniaj swoich folderów użytkownika lub nand<br>po wykonaniu procesu konfiguracji!</b></li><li>Podczas procesu konfiguracji Azahar połączy się z konsolą, na której uruchomione jest narzędzie instalacyjne.<br>Konsolę można później odłączyć w zakładce System w menu konfiguracji emulatora.</li><li>Nie korzystaj jednocześnie z Azahar i konsoli 3DS po skonfigurowaniu plików systemowych,<br>bo może to spowodować błędy. </li><li>Old 3DS jest wymagany do działania konfiguracji New 3DS (zalecane jest wykonanie obu tych konfiguracji).</li><li>Oba tryby konfiguracji będą działać niezależnie od modelu konsoli, na której uruchomiono narzędzie konfiguracyjne.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:Wprowadź adres narzędzia konfiguracyjnego Azahar Artic:
-
+ <br>Choose setup mode:<br>Wybierz tryb konfiguracji:
-
+ (ℹ️) Old 3DS setup(ℹ️) Konfiguracja Old 3DS
-
-
+
+ Setup is possible.Konfiguracja jest możliwa.
-
+ (⚠) New 3DS setup(⚠) Konfiguracja New 3DS
-
+ Old 3DS setup is required first.Najpierw wymagana jest konfiguracja Old 3DS.
-
+ (✅) Old 3DS setup(✅) Konfiguracja Old 3DS
-
-
+
+ Setup completed.Konfiguracja została zakończona.
-
+ (ℹ️) New 3DS setup(ℹ️) Konfiguracja New 3DS
-
+ (✅) New 3DS setup(✅) Konfiguracja New 3DS
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?Pliki systemowe dla wybranego trybu są już skonfigurowane.
Czy mimo to chcesz ponownie zainstalować pliki?
-
+ Load FilesZaładuj Pliki
-
+ 3DS Installation File (*.cia *.zcia)Plik Instalacyjny 3DS (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Wszystkie Pliki (*.*)
-
+ Connect to Artic BasePołącz z Artic Base
-
+ Enter Artic Base server address:Wprowadź adres serwera Artic Base:
-
+ %1 has been installed successfully.%1 został poprawnie zainstalowany.
-
+ Unable to open FileNie można otworzyć Pliku
-
+ Could not open %1Nie można otworzyć %1
-
+ Installation abortedInstalacja przerwana
-
+ The installation of %1 was aborted. Please see the log for more detailsInstalacja %1 została przerwana. Sprawdź logi, aby uzyskać więcej informacji.
-
+ Invalid FileNiepoprawny Plik
-
+ %1 is not a valid CIA%1 nie jest prawidłowym plikiem CIA
-
+ CIA EncryptedPlik CIA jest zaszyfrowany
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Twój plik CIA jest zaszyfrowany.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Więcej informacji można znaleźć na naszym blogu.</a>
-
+ Unable to find FileNie można odnaleźć pliku
-
+ Could not find %1Nie można odnaleźć %1
-
-
-
- Error compressing file
- Błąd podczas kompresowania pliku
+
+
+
+
+ Z3DS Compression
+ Kompresuj pliki Z3DS
-
- File compress operation failed, check log for details.
- Kompresja pliku nie powiodła się, sprawdź szczegóły w logu.
+
+ Failed to compress some files, check log for details.
+ Nie udało się skompresować niektórych plików, sprawdź log, aby uzyskać szczegółowe informacje.
-
-
-
- Error decompressing file
- Błąd podczas dekompresji pliku
+
+ Failed to decompress some files, check log for details.
+ Nie udało się rozpakować niektórych plików. Szczegółowe informacje można znaleźć w logu.
-
- File decompress operation failed, check log for details.
- Dekompresja pliku nie powiodła się, sprawdź szczegóły w logu.
+
+ All files have been compressed successfully.
+ Wszystkie pliki zostały pomyślnie skompresowane.
-
+
+ All files have been decompressed successfully.
+ Wszystkie pliki zostały pomyślnie zdekompresowane.
+
+
+ Uninstalling '%1'...Odinstalowywanie '%1'...
-
+ Failed to uninstall '%1'.Nie udało się odinstalować '%1'.
-
+ Successfully uninstalled '%1'.Pomyślnie odinstalowano '%1'.
-
+ File not foundNie znaleziono pliku
-
+ File "%1" not foundNie znaleziono pliku "%1"
-
+ SavestatesSavestate.y
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4571,86 +4598,86 @@ Use at your own risk!
Używaj na własne ryzyko!
-
-
-
+
+
+ Error opening amiibo data fileBłąd podczas otwierania pliku danych amiibo
-
+ A tag is already in use.Tag jest już używany.
-
+ Application is not looking for amiibos.Aplikacja nie szuka amiibo.
-
+ Amiibo File (%1);; All Files (*.*)Plik Amiibo (%1);; Wszystkie pliki (*.*)
-
+ Load AmiiboZaładuj Amiibo
-
+ Unable to open amiibo file "%1" for reading.Nie można otworzyć pliku amiibo "%1" do odczytu.
-
+ Record MovieNagraj Film
-
+ Movie recording cancelled.Nagrywanie zostało przerwane.
-
-
+
+ Movie SavedZapisano Film
-
-
+
+ The movie is successfully saved.Film został poprawnie zapisany.
-
+ Application will unpauseAplikacja zostanie wstrzymana
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?Aplikacja zostanie zatrzymana, a następna klatka zostanie przechwycona. Czy jest to w porządku?
-
+ Invalid Screenshot DirectoryNieprawidłowy katalog zrzutów ekranu
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.Nie można utworzyć określonego katalogu zrzutów ekranu. Ścieżka zrzutu ekranu zostanie przywrócona do wartości domyślnej.
-
+ Could not load video dumperNie można załadować zrzutu filmu
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4663,275 +4690,265 @@ Aby zainstalować FFmpeg do Azahar, naciśnij Otwórz i wybierz katalog FFmpeg.
Aby wyświetlić poradnik dotyczący instalacji FFmpeg, naciśnij Pomoc.
-
- Load 3DS ROM File
- Załaduj plik ROMu 3DS
+
+ Load 3DS ROM Files
+ Załaduj pliki ROMów 3DS
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
- Pliki ROMów 3DS (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
+ Pliki ROMów 3DS (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
- Wybrany plik nie jest kompatybilny z formatem ROMu 3DS. Upewnij się, że wybrałeś właściwy plik i że nie jest zaszyfrowany.
-
-
-
- The selected file is already compressed.
- Wybrany plik jest już skompresowany.
-
-
-
+ 3DS Compressed ROM File (*.%1)Skompresowany plik ROMu 3DS (*.%1)
-
+ Save 3DS Compressed ROM FileZapisz skompresowany plik ROMu 3DS
-
- Load 3DS Compressed ROM File
- Wczytaj skompresowany plik ROMu 3DS
+
+ Select Output 3DS Compressed ROM Folder
+ Wybierz folder wyjściowy skompresowanych plików ROMów 3DS
-
+
+ Load 3DS Compressed ROM Files
+ Wczytaj skompresowane pliki ROMów 3DS
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)Skompresowane pliki ROMów 3DS (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
- Wybrany plik nie jest kompatybilny ze skompresowanym formatem ROMu 3DS. Upewnij się, że wybrałeś właściwy plik.
-
-
-
- The selected file is already decompressed.
- Wybrany plik jest już zdekompresowany.
-
-
-
+ 3DS ROM File (*.%1)Plik ROMu 3DS (*.%1)
-
+ Save 3DS ROM FileZapisz plik ROMu 3DS
-
+
+ Select Output 3DS ROM Folder
+ Wybierz folder wyjściowy ROMów 3DS
+
+
+ Select FFmpeg DirectoryWybierz katalog FFmpeg
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.W podanym katalogu FFmpeg brakuje %1. Upewnij się, że wybrany został poprawny katalog.
-
+ FFmpeg has been sucessfully installed.FFmpeg został pomyślnie zainstalowany.
-
+ Installation of FFmpeg failed. Check the log file for details.Instalacja FFmpeg nie powiodła się. Sprawdź plik dziennika, aby uzyskać szczegółowe informacje.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.Nie można uruchomić zrzutu filmu.<br>Upewnij się, że koder filmu jest poprawnie skonfigurowany.<br>Szczegółowe informacje można znaleźć w logu.
-
+ Recording %1Nagrywanie %1
-
+ Playing %1 / %2Odtwarzanie %1 / %2
-
+ Movie FinishedFilm ukończony
-
+ (Accessing SharedExtData)(Uzyskiwanie dostępu do SharedExtData)
-
+ (Accessing SystemSaveData)(Uzyskiwanie dostępu do SystemSaveData)
-
+ (Accessing BossExtData)(Uzyskiwanie dostępu do BossExtData)
-
+ (Accessing ExtData)(Uzyskiwanie dostępu do ExtData)
-
+ (Accessing SaveData)(Uzyskiwanie dostępu do SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3Ruch Artic: %1 %2%3
-
+ Speed: %1%Prędkość: %1%
-
+ Speed: %1% / %2%Prędkość: %1% / %2%
-
+ App: %1 FPSAplikacja: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)Klatka: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msKlatka: %1 ms
-
+ VOLUME: MUTEGŁOŚNOŚĆ: WYCISZONA
-
+ VOLUME: %1%Volume percentage (e.g. 50%)GŁOŚNOŚĆ: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.Brakuje %1. Prosimy o <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>zrzucenie archiwów systemowych</a>.<br/>Dalsze korzystanie z emulacji może spowodować awarie i błędy.
-
+ A system archiveArchiwum systemu
-
+ System Archive Not FoundArchiwum Systemowe nie zostało odnalezione
-
+ System Archive MissingBrak archiwum systemu
-
+ Save/load ErrorBłąd zapisywania/wczytywania
-
+ Fatal ErrorKrytyczny Błąd
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.Wystąpił krytyczny błąd. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Sprawdź szczegóły w logu</a>.<br/>Dalsze korzystanie z emulacji może spowodować awarie i błędy.
-
+ Fatal Error encounteredWystąpił błąd krytyczny
-
+ ContinueKontynuuj
-
+ Quit ApplicationWyjdź z aplikacji
-
+ OKOK
-
+ Would you like to exit now?Czy chcesz teraz wyjść?
-
+ The application is still running. Would you like to stop emulation?Aplikacja jest nadal uruchomiona. Czy chcesz przerwać emulację?
-
+ Playback CompletedOdtwarzanie Zakończone
-
+ Movie playback completed.Odtwarzanie filmu zostało zakończone.
-
+ Update AvailableDostępna jest aktualizacja
-
+ Update %1 for Azahar is available.
Would you like to download it?Aktualizacja %1 dla Azahar jest dostępna.
Czy chcesz ją pobrać?
-
+ Primary WindowGłówne okno
-
+ Secondary WindowDodatkowe okno
@@ -5037,175 +5054,190 @@ Czy chcesz ją pobrać?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>WAŻNE: Zaszyfrowane pliki i pliki .3ds nie są już obsługiwane. Konieczne może być odszyfrowanie i/lub zmiana nazwy pliku na .cci. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Więcej informacji.</a>
-
+ Don't show againNie pokazuj tego ponownie
-
-
+
+ CompatibilityKompatybilność
-
-
+
+ RegionRegion
-
-
+
+ File typeTyp pliku
-
-
+
+ SizeRozmiar
-
-
+
+ Play timeCzas gry
-
+ FavoriteUlubione
-
+
+ Eject Cartridge
+ Wyjmij Kartridż
+
+
+
+ Insert Cartridge
+ Włóż Kartridż
+
+
+ OpenOtwórz
-
+ Application LocationLokalizacja aplikacji
-
+ Save Data LocationLokalizacja zapisywanych danych
-
+ Extra Data LocationLokalizacja dodatkowych danych
-
+ Update Data LocationZaktualizuj lokalizację danych
-
+ DLC Data LocationLokalizacja danych DLC
-
+ Texture Dump LocationLokalizacja zrzutu tekstur
-
+ Custom Texture LocationLokalizacja niestandardowych tekstur
-
+ Mods LocationLokalizacja modów
-
+ Dump RomFSZrzuć RomFS
-
+ Disk Shader CachePamięć podręczna shaderów na dysku
-
+ Open Shader Cache LocationOtwórz lokalizację pamięci podręcznej shaderów
-
+ Delete OpenGL Shader CacheUsuń pamięć podręczną shaderów OpenGL
-
+ UninstallOdinstaluj
-
+ EverythingWszystko
-
+ ApplicationAplikacja
-
+ UpdateAktualizacje
-
+ DLCDLC
-
+ Remove Play Time DataUsuń dane czasu gry
-
+ Create ShortcutUtwórz skrót
-
+ Add to DesktopDodaj do pulpitu
-
+ Add to Applications MenuDodaj do menu aplikacji
-
+
+ Stress Test: App Launch
+ Analiza wydajnościowa: uruchomienie aplikacji
+
+
+ PropertiesWłaściwości
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5214,64 +5246,64 @@ This will delete the application if installed, as well as any installed updates
Spowoduje to usunięcie aplikacji, jeśli jest zainstalowana, a także wszelkich zainstalowanych aktualizacji lub DLC.
-
-
+
+ %1 (Update)%1 (Aktualizacja)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Czy na pewno chcesz odinstalować '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?Czy na pewno chcesz odinstalować aktualizacje '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?Czy na pewno chcesz odinstalować DLC '%1'?
-
+ Scan SubfoldersPrzeszukaj Podkatalogi
-
+ Remove Application DirectoryUsuń Katalog Aplikacji
-
+ Move UpPrzesuń w górę
-
+ Move DownPrzesuń w dół
-
+ Open Directory LocationOtwórz lokalizację katalogu
-
+ ClearWyczyść
-
+ NameNazwa
@@ -5279,82 +5311,82 @@ Spowoduje to usunięcie aplikacji, jeśli jest zainstalowana, a także wszelkich
GameListItemCompat
-
+ PerfectIdealna
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.Aplikacja działa bez zarzutu, bez błędów graficznych lub dźwiękowych.
Nie potrzebuje żadnych obejść ani poprawek.
-
+ GreatŚwietna
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.Aplikacja działa z pomniejszymi błędami dźwiękowymi lub graficznymi, jest grywalna od początku do końca.
Może wymagać kilku obejść/poprawek.
-
+ OkayW porządku
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.Aplikacja działa z większymi błędami dźwiękowymi lub graficznymi, ale jest grywalna od początku do
końca. Może wymagać kilku obejść/poprawek.
-
+ BadZła
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.Gra działa z większymi błędami dźwiękowymi lub graficznymi. Niemożliwe jest
przejście konkretnych miejsc nawet z obejściami.
-
+ Intro/MenuIntro/Menu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.Gra jest całkowicie niegrywalna z uwagi na poważne błędy graficzne lub dźwiękowe.
Działa jedynie ekran startowy.
-
+ Won't BootNie uruchamia się
-
+ The app crashes when attempting to startup.Aplikacja zawiesza się przy próbie uruchomienia
-
+ Not TestedNieprzetestowana
-
+ The app has not yet been tested.Aplikacja nie została jeszcze przetestowana.
@@ -5362,7 +5394,7 @@ Działa jedynie ekran startowy.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listKliknij dwukrotnie, aby dodać nowy folder do listy aplikacji.
@@ -5370,27 +5402,27 @@ Działa jedynie ekran startowy.
GameListSearchField
-
+ ofz
-
+ resultwynik
-
+ resultswyniki
-
+ Filter:Filtr:
-
+ Enter pattern to filterWprowadź wzór filtra
@@ -5718,87 +5750,87 @@ Działa jedynie ekran startowy.
Indeks Cyklu:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Adresy Rejestrów: %1, %2
-
+ Compare Result: %1, %2
Porównanie Wyników: %1, %2
-
+ Static Condition: %1
Warunek Statyczny: %1
-
+ Dynamic Conditions: %1, %2
Warunki Dynamiczne: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Parametry Pętli: %1 (powtórzeń), %2 (inicjacji), %3 (inkrementacji), %4
-
+ Instruction offset: 0x%1Przesunięcie Instrukcji: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(ostatnia instrukcja)
@@ -6099,32 +6131,32 @@ Komunikat debugowania:
Hasło:
-
+ Room NameNazwa Pokoju
-
+ Preferred ApplicationPreferowana aplikacja
-
+ HostGospodarz
-
+ PlayersGraczy
-
+ RefreshingOdświeżanie
-
+ Refresh ListOdśwież Listę
@@ -7126,32 +7158,32 @@ Możliwe, że opuścił pokój.
%1 (0x%2)
-
+ Unsupported encrypted applicationNieobsługiwana zaszyfrowana aplikacja
-
+ Invalid regionNieprawidłowy region
-
+ Installed TitlesZainstalowane Gry
-
+ System TitlesTytuły systemowe
-
+ Add New Application DirectoryDodaj nowy katalog aplikacji
-
+ FavoritesUlubione
diff --git a/dist/languages/pt_BR.ts b/dist/languages/pt_BR.ts
index 3f246fee3..be0351091 100644
--- a/dist/languages/pt_BR.ts
+++ b/dist/languages/pt_BR.ts
@@ -29,7 +29,7 @@
<html><head/><body><p><img src=":/icons/default/256x256/azahar.png"/></p></body></html>
-
+ <html><head/><body><p><img src=":/icons/default/256x256/azahar.png"/></p></body></html>
@@ -298,8 +298,8 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
- Emulation:
- Emulação:
+ Emulation
+ Emulação
@@ -403,6 +403,7 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
+ CameraCâmera
@@ -414,8 +415,8 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
- Camera to configure:
- Câmera a configurar:
+ Camera to Configure
+ Câmera a configurar
@@ -435,8 +436,8 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
- Camera mode:
- Modo de câmera:
+ Camera mode
+ Modo da câmera
@@ -456,8 +457,8 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
- Camera position:
- Posição da câmera:
+ Camera position
+ Posição da câmera
@@ -482,8 +483,8 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
- Camera Image Source:
- Origem da imagem da câmera:
+ Camera Image Source
+ Origem da imagem da camêra
@@ -502,8 +503,8 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
- File:
- Arquivo:
+ File
+ Arquivo
@@ -516,11 +517,6 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
Select the system camera to useSelecione o tipo de câmera a ser utilizado
-
-
- Camera:
- Câmera:
- <Default>
@@ -534,8 +530,8 @@ Esta ação banirá tanto o seu nome de usuário do fórum como o seu endereço
- Flip:
- Espelhar imagem:
+ Flip
+ Flip
@@ -1024,7 +1020,7 @@ Gostaria de ignorar o erro e continuar?
Enable Linear Filtering
- Ativar filtragem linear
+ Ativar Filtragem Linear
@@ -1088,8 +1084,8 @@ Gostaria de ignorar o erro e continuar?
- Reverse Side by Side
- Inverter Lado a Lado
+ Side by Side Full Width
+ Lado a Lado (Largura Total)
@@ -1139,7 +1135,7 @@ Gostaria de ignorar o erro e continuar?
Disable Right Eye Rendering
- Desativar a renderização do olho direito
+ Desativar Renderização do Olho Direito
@@ -1147,49 +1143,54 @@ Gostaria de ignorar o erro e continuar?
<html><head/><body><p>Desativar a Renderização do Olho Direito</p><p>Desativa a renderização da imagem do olho direito quanto não estiver usando o modo. Melhora muito o desempenho em alguns aplicativos, mas pode causar piscadas em outros.</p></body></html>
-
+
+ Swap Eyes
+ Inverter Olhos
+
+
+ UtilityUtilidade
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Substitui as texturas por arquivos PNG.</p><p>As texturas são carregadas a partir de load/textures/[ID do título]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom texturesUsar texturas personalizadas
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Extrai as texturas em arquivos PNG.</p><p>As texturas são extraídas para dump/textures/[ID do título]/.</p></body></html>
-
- Dump Textures
+
+ Dump texturesExtrair texturas
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Carregar todas as texturas personalizadas na memória ao iniciar, em vez de carregá-las apenas quando o aplicativo exigir.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom texturesPré-carregar texturas personalizadas
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Carregue texturas personalizadas de maneira assíncrona com threads em segundo plano para reduzir o stutter do carregamento</p></body></html>
-
- Async Custom Texture Loading
- Carregamento Assíncrono de Textura Personalizada
+
+ Async custom texture loading
+ Carregamento assíncrono de texturas personalizadas
@@ -1246,13 +1247,13 @@ Gostaria de ignorar o erro e continuar?
- Set emulation speed:
- Definir velocidade da emulação:
+ Set emulation speed
+ Definir velocidade de emulação
- Emulation Speed:
- Velocidade da emulação:
+ Emulation Speed
+ Velocidade de Emulação
@@ -1363,13 +1364,13 @@ Gostaria de ignorar o erro e continuar?
- SPIR-V Shader Generation
- Geração de Sombreadores SPIR-V
+ SPIR-V shader generation
+ Geração de shaders SPIR-V
- Disable GLSL -> SPIR-V Optimizer
- Desativar GLSL -> Otimizador de SPIR-V
+ Disable GLSL -> SPIR-V optimizer
+ Desativar o otimizador GLSL → SPIR-V
@@ -1388,8 +1389,8 @@ Gostaria de ignorar o erro e continuar?
- Enable Hardware Shader
- Ativar shaders via hardware
+ Enable hardware shader
+ Ativar shader por hardware
@@ -1398,7 +1399,7 @@ Gostaria de ignorar o erro e continuar?
- Accurate Multiplication
+ Accurate multiplicationMultiplicação precisa
@@ -1408,8 +1409,8 @@ Gostaria de ignorar o erro e continuar?
- Enable Shader JIT
- Ativar JIT para shaders
+ Enable shader JIT
+ Ativar compilação assíncrona de shaders
@@ -1418,8 +1419,8 @@ Gostaria de ignorar o erro e continuar?
- Enable Async Shader Compilation
- Ativar a compilação assíncrona de shaders
+ Enable async shader compilation
+ Ativar compilação assíncrona de shaders
@@ -1428,7 +1429,7 @@ Gostaria de ignorar o erro e continuar?
- Enable Async Presentation
+ Enable async presentationAtivar apresentação assíncrona
@@ -1468,7 +1469,7 @@ Gostaria de ignorar o erro e continuar?
- Use Disk Shader Cache
+ Use disk shader cacheUsar cache de shaders em disco
@@ -1493,8 +1494,8 @@ Gostaria de ignorar o erro e continuar?
- Delay application render thread:
- Atrasar thread de renderização do aplicativo:
+ Delay Application Render Thread
+ Atrasar Thread de Renderização da Aplicação
@@ -1982,13 +1983,13 @@ Gostaria de ignorar o erro e continuar?
- Swap Screens
- Trocar Telas
+ Swap screens
+ Trocar telas
- Rotate Screens Upright
- Girar Verticalmente
+ Rotate screens upright
+ Rotacionar telas para a posição vertical
@@ -2104,8 +2105,8 @@ Gostaria de ignorar o erro e continuar?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>% de Opacidade da Tela Inferior (Apenas OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+ <html><head/><body><p>Opacidade da tela inferior %</p></body></html>
@@ -2277,7 +2278,7 @@ Gostaria de ignorar o erro e continuar?
<a href='https://web.archive.org/web/20240301211230/https://citra-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input'><span style="text-decoration: underline; color:#039be5;">Learn More</span></a>
-
+ <a href='https://web.archive.org/web/20240301211230/https://citra-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input'><span style="text-decoration: underline; color:#039be5;">Saiba Mais</span></a>
@@ -2452,8 +2453,8 @@ Gostaria de ignorar o erro e continuar?
- Use Virtual SD
- Usar SD virtual
+ Use virtual SD card
+ Usar cartão SD virtual
@@ -2462,7 +2463,7 @@ Gostaria de ignorar o erro e continuar?
- Use Custom Storage
+ Use custom storage locationUsar armazenamento personalizado
@@ -2496,12 +2497,12 @@ Gostaria de ignorar o erro e continuar?
Compress installed CIA content
-
+ Comprimir conteúdo CIA instaladoCompresses the content of CIA files when installed to the emulated SD card. Only affects CIA content which is installed while the setting is enabled.
-
+ Comprime o conteúdo dos arquivos CIA ao serem instalados no cartão SD emulado. Afeta apenas o conteúdo CIA instalado enquanto a opção estiver ativada.
@@ -2550,8 +2551,8 @@ os recursos online (se instalado)
- Region:
- Região:
+ Region
+ Região
@@ -2559,326 +2560,337 @@ os recursos online (se instalado)
Seleção automática
-
+
+ Apply region free patch to
+installed applications.
+ Aplicar patch de região livre os apps instalados.
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+ Aplica um patch de região livre aos aplicativos instalados, para que eles sempre apareçam no menu inicial.
+
+
+ UsernameNome de usuário
-
+ BirthdayAniversário
-
+ JanuaryJaneiro
-
+ FebruaryFevereiro
-
+ MarchMarço
-
+ AprilAbril
-
+ MayMaio
-
+ JuneJunho
-
+ JulyJulho
-
+ AugustAgosto
-
+ SeptemberSetembro
-
+ OctoberOutubro
-
+ NovemberNovembro
-
+ DecemberDezembro
-
+ LanguageIdioma
-
+ Note: this can be overridden when region setting is auto-selectNota: isso pode ser ignorado quando a configuração de região for seleção automática
-
+ Japanese (日本語)Japonês (日本語)
-
+ EnglishInglês (English)
-
+ French (français)Francês (français)
-
+ German (Deutsch)Alemão (Deutsch)
-
+ Italian (italiano)Italiano (italiano)
-
+ Spanish (español)Espanhol (español)
-
+ Simplified Chinese (简体中文)Chinês simplificado (简体中文)
-
+ Korean (한국어)Coreano (한국어)
-
+ Dutch (Nederlands)Neerlandês (Nederlands)
-
+ Portuguese (português)Português (Português)
-
+ Russian (Русский)Russo (Русский)
-
+ Traditional Chinese (正體中文)Chinês tradicional (正體中文)
-
+ Sound output modeModo de saída de som
-
+ MonoMono
-
+ StereoEstéreo
-
+ SurroundSurround
-
+ CountryPaís
-
+ ClockRelógio
-
+ System ClockRelógio do sistema
-
+ Fixed TimeHorário fixo
-
+ Startup timeHorário na inicialização
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset timeTempo de deslocamento
-
+ daysdias
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksTicks Iniciais do Sistema
-
+ RandomAleatório
-
+ FixedFixado
-
+ Initial System Ticks OverrideSubstituição Inicial de Ticks do Sistema
-
+ Play CoinsMoedas de Jogo
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>Número de passos por hora relatados pelo pedômetro. Na faixa de 0 a 65.535.</p></body></html>
-
+ Pedometer Steps per HourPassos do Pedômetro por Hora
-
+ Run System Setup when Home Menu is launchedExecutar configuração do sistema quando o Menu Inicial for aberto
-
+ Console ID:ID do console:
-
-
+
+ RegenerateGerar um novo
-
+ MAC:MAC:
-
- 3GX Plugin Loader:
- Carregador do plug-in 3GX:
+
+ 3GX Plugin Loader
+ Carregador de Plugins 3GX
-
+ Enable 3GX plugin loaderAtivar carregador do plug-in 3GX
-
+ Allow applications to change plugin loader statePermitir que os aplicativos alterem o estado do carregador de plug-ins
-
+ Real Console Unique DataDados exclusivos do console real
-
+ Your real console is linked to Azahar.Seu console real está vinculado ao Azahar.
-
+ UnlinkDesvincular
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseEscolha
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.As configurações do sistema só estarão disponíveis quando nenhum aplicativo estiver em execução.
@@ -3588,76 +3600,76 @@ os recursos online (se instalado)
Arquivo sed (*.sed);;Todos os arquivos (*.*)
-
-
+
+ Console ID: 0x%1ID do console: 0x%1
-
-
+
+ MAC: %1MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?Isso substituirá seu ID do console 3DS virtual atual por um novo. Seu ID do console 3DS virtual atual não poderá ser recuperado. Isso pode ter efeitos inesperados nos aplicativos. Poderão ocorrer falhas ao usar um arquivo salvo de configuração desatualizado. Deseja continuar?
-
-
-
+
+
+ WarningAlerta
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Isto substituirá seu endereço MAC atual por um novo. Não é recomendado fazer isso se você possuir o endereço MAC do seu console real usando esta ferramenta de configuração. Deseja continuar?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?Esta ação irá desvincular seu console real do Azahar, com as seguintes consequências:<br><ul><li>Seu OTP, SecureInfo e LocalFriendCodeSeed serão removidos do Azahar.</li><li>Sua lista de amigos será redefinida e sua sessão será finalizada em sua conta NNID/PNID.</li><li>Arquivos do sistema e títulos da eshop obtidos pelo Azahar se tornarão inacessíveis até que o mesmo console seja vinculado de novo (dados salvos não serão perdidos).</li></ul><br>Deseja continuar?
-
+ Invalid country for configured regionPaís inválido para a região selecionada
-
+ Invalid country for console unique dataPaís inválido para os dados exclusivos do console
-
+ Status: LoadedEstado: carregado
-
+ Status: Loaded (Invalid Signature)Estado: carregado (assinatura inválida)
-
+ Status: Loaded (Region Changed)Estado: carregado (região alterada)
-
+ Status: Not FoundEstado: não encontrado
-
+ Status: InvalidEstado: inválido
-
+ Status: IO ErrorEstado: erro de E/S
@@ -3731,12 +3743,12 @@ Arraste os pontos para alterar a posição ou clique duas vezes nas células da
Delete Profile
- Apagar perfil
+ Excluir PerfilDelete profile %1?
- Apagar perfil %1?
+ Excluir perfil %1?
@@ -3773,13 +3785,13 @@ Arraste os pontos para alterar a posição ou clique duas vezes nas células da
- Interface language:
- Idioma da interface:
+ Interface Language
+ Idioma da Interface
- Theme:
- Tema:
+ Theme
+ Tema
@@ -3788,8 +3800,8 @@ Arraste os pontos para alterar a posição ou clique duas vezes nas células da
- Icon Size:
- Tamanho do ícone:
+ Icon Size
+ Tamanho do ícone
@@ -3809,8 +3821,8 @@ Arraste os pontos para alterar a posição ou clique duas vezes nas células da
- Row 1 Text:
- Texto da 1ª linha:
+ Row 1 Text
+ Texto da linha 1
@@ -3844,17 +3856,17 @@ Arraste os pontos para alterar a posição ou clique duas vezes nas células da
- Row 2 Text:
- Texto da 2ª linha:
+ Row 2 Text
+ Texto da linha 2
- Hide Titles without Icon
+ Hide titles without iconOcultar títulos sem ícone
- Single Line Mode
+ Single line modeModo de linha única
@@ -3864,8 +3876,8 @@ Arraste os pontos para alterar a posição ou clique duas vezes nas células da
- Show Advanced Frame Time Info
- Mostrar informação avançada de tempo de quadro
+ Show advanced frame time info
+ Mostrar informações avançadas de tempo de frame
@@ -3947,12 +3959,12 @@ Arraste os pontos para alterar a posição ou clique duas vezes nas células da
DirectConnectWindow
-
+ ConnectingConectando
-
+ ConnectConectar
@@ -4072,497 +4084,511 @@ Por favor, verifique a instalação do FFmpeg usada para compilação.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedNenhum Dispositivo Vulkan Adequado Detectado
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.O Vulkan falhou durante sua inicialização.<br/>Sua GPU pode não suportar o Vulkan 1.1 ou você não possui o driver gráfico mais recente.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.Velocidade atual do tráfego do Artic. Valores mais altos indicam cargas de transferência maiores.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Velocidade atual de emulação. Valores maiores ou menores que 100% indicam que a emulação está funcionando mais rápida ou lentamente que num 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.Quantos quadros por segundo que o app está mostrando atualmente. Pode variar de app para app e cena para cena.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Tempo levado para emular um quadro do 3DS, sem considerar o limitador de taxa de quadros ou a sincronização vertical. Valores menores ou iguais a 16,67 ms indicam que a emulação está em velocidade plena.
-
+ MicroProfile (unavailable)Micro-perfil (indisponível)
-
+ Clear Recent FilesLimpar Arquivos Recentes
-
+ &Continue&Continuar
-
+ &Pause&Pausar
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar está executando um aplicativo
-
-
+
+ Invalid App FormatFormato de App inválido
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.O formato do seu app não é suportado.<br/>Siga os guias para reextrair seus <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>cartuchos de jogos</a> ou <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>títulos instalados</a>.
-
+ App CorruptedApp corrompido
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Seu app está corrompido. <br/>Siga os guias para reextrair seus <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>cartuchos de jogos</a> ou <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>títulos instalados</a>.
-
+ App EncryptedApp criptografado
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Seu app está criptografado. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Confira nosso blog para mais informações.</a>
-
+ Unsupported AppApp não suportado
-
+ GBA Virtual Console is not supported by Azahar.O Console Virtual de GBA não é suportado pelo Azahar.
-
-
+
+ Artic ServerServidor Artic
-
+
+ Invalid system mode
+ Modo de sistema inválido
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+ Aplicativos exclusivos do New 3DS não podem ser carregados sem ativar o modo New 3DS.
+
+
+ Error while loading App!Erro ao carregar o App!
-
+ An unknown error occurred. Please see the log for more details.Ocorreu um erro desconhecido. Verifique o registro para mais detalhes.
-
+ CIA must be installed before usageÉ necessário instalar o CIA antes de usar
-
+ Before using this CIA, you must install it. Do you want to install it now?É necessário instalar este CIA antes de poder usá-lo. Deseja instalá-lo agora?
-
+ Quick LoadCarregamento rápido
-
+ Quick SaveSalvamento rápido
-
-
+
+ Slot %1Espaço %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Salvamento rápido - %1
-
+ Quick Load - %1Carregamento rápido - %1
-
+ Slot %1 - %2 %3Espaço %1 - %2 %3
-
+ Error Opening %1 FolderErro ao abrir a pasta %1
-
-
+
+ Folder does not exist!A pasta não existe!
-
+ Remove Play Time DataRemover Dados de Tempo de Jogo
-
+ Reset play time?Redefinir tempo de jogo?
-
-
-
-
+
+
+
+ Create ShortcutCriar Atalho
-
+ Do you want to launch the application in fullscreen?Você gostaria de iniciar o aplicativo em tela cheia?
-
+ Successfully created a shortcut to %1Atalho para %1 criado com sucesso
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Isso criará um atalho para o AppImage atual. Isso pode não funcionar bem se você atualizar. Deseja continuar?
-
+ Failed to create a shortcut to %1Não foi possível criar um atalho para %1
-
+ Create IconCriar Ícone
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.Não foi possível criar o arquivo de ícone. O caminho "%1" não existe e não pode ser criado.
-
+ Dumping...Extraindo...
-
-
+
+ CancelCancelar
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Não foi possível extrair o RomFS base.
Consulte o registro para ver os detalhes.
-
+ Error Opening %1Erro ao abrir %1
-
+ Select DirectorySelecionar pasta
-
+ PropertiesPropriedades
-
+ The application properties could not be loaded.Não foi possível carregar as propriedades do aplicativo.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Executável do 3DS (%1);;Todos os arquivos (*.*)
-
+ Load FileCarregar arquivo
-
-
+
+ Set Up System FilesConfigurar arquivos do sistema
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>O Azahar precisa dos dados exclusivos do console e arquivos de firmware de um console real para que seja possível usar alguns de seus recursos.<br>Tais arquivos e dados podem ser configurados através da <a href=https://github.com/azahar-emu/ArticSetupTool>Ferramenta de Configuração Artic do Azahar</a><br>Notas:<ul><li><b>Esta operação instalará os dados exclusivos do console para o Azahar, não compartilhe sua pasta de usuário ou nand<br>depois de realizar este processo!</b></li><li>Enquanto estiver realizando o processo de configuração, o Azahar irá vincular-se ao console executando a ferramenta de configuração. Você poderá desvincular<br>o console mais tarde na aba Sistema no menu de configuração do emulador.</li><li>Não entre no online com ambos Azahar e seu console 3DS ao mesmo tempo depois de configurar os arquivos de sistema,<br>já que isso poderá causar problemas.</li><li>A configuração do Antigo 3DS é necessária para a configuração do Novo 3DS funcionar (realizar ambas as configurações é recomendado).</li><li>Ambos os modos de configuração irão funcionar independente do modelo do console executando a ferramenta de configuração.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:Digite o endereço da Ferramenta de Configuração Artic do Azahar:
-
+ <br>Choose setup mode:<br>Escolha o modo de configuração:
-
+ (ℹ️) Old 3DS setup(ℹ️) Configuração do Antigo 3DS
-
-
+
+ Setup is possible.É possível configurar.
-
+ (⚠) New 3DS setup(⚠) Configuração do Novo 3DS
-
+ Old 3DS setup is required first.A configuração do Antigo 3DS é requisitada primeiro.
-
+ (✅) Old 3DS setup(✅) Configuração do Antigo 3DS
-
-
+
+ Setup completed.Configuração concluída.
-
+ (ℹ️) New 3DS setup(ℹ️) Configuração do Novo 3DS
-
+ (✅) New 3DS setup(✅) Configuração do Novo 3DS
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?Os arquivos do sistema para o modo selecionado já foram configurados.
Reinstalar os arquivos mesmo assim?
-
+ Load FilesCarregar arquivos
-
+ 3DS Installation File (*.cia *.zcia)
-
+ Arquivo de Instalação 3DS (.cia .zcia)
-
-
-
+
+
+ All Files (*.*)Todos os arquivos (*.*)
-
+ Connect to Artic BaseConectar-se ao Artic Base
-
+ Enter Artic Base server address:Digite o endereço do servidor Artic Base:
-
+ %1 has been installed successfully.%1 foi instalado.
-
+ Unable to open FileNão foi possível abrir o arquivo
-
+ Could not open %1Não foi possível abrir %1
-
+ Installation abortedInstalação cancelada
-
+ The installation of %1 was aborted. Please see the log for more detailsA instalação de %1 foi interrompida. Consulte o registro para mais detalhes
-
+ Invalid FileArquivo inválido
-
+ %1 is not a valid CIA%1 não é um CIA válido
-
+ CIA EncryptedCIA criptografado
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Seu arquivo CIA está criptografado.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Confira nosso blog para mais informações.</a>
-
+ Unable to find FileNão foi possível localizar o arquivo
-
+ Could not find %1Não foi possível localizar %1
-
-
-
- Error compressing file
-
+
+
+
+
+ Z3DS Compression
+ Compressão Z3DS
-
- File compress operation failed, check log for details.
-
+
+ Failed to compress some files, check log for details.
+ Falha ao comprimir alguns arquivos. Verifique o log para mais detalhes.
-
-
-
- Error decompressing file
-
+
+ Failed to decompress some files, check log for details.
+ Falha ao descomprimir alguns arquivos. Verifique o log para mais detalhes.
-
- File decompress operation failed, check log for details.
-
+
+ All files have been compressed successfully.
+ Todos os arquivos foram comprimidos com sucesso.
-
+
+ All files have been decompressed successfully.
+ Todos os arquivos foram descomprimidos com sucesso.
+
+
+ Uninstalling '%1'...Desinstalando '%1'...
-
+ Failed to uninstall '%1'.Erro ao desinstalar '%1'.
-
+ Successfully uninstalled '%1'.'%1' desinstalado com sucesso.
-
+ File not foundArquivo não encontrado
-
+ File "%1" not foundArquivo "%1" não encontrado
-
+ SavestatesEstados salvos
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4571,86 +4597,86 @@ Use at your own risk!
Use por sua conta e risco!
-
-
-
+
+
+ Error opening amiibo data fileErro ao abrir arquivo de dados do amiibo
-
+ A tag is already in use.Uma tag já está em uso.
-
+ Application is not looking for amiibos.O aplicativo não está procurando por amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Arquivo do Amiibo (%1);; Todos os arquivos (*.*)
-
+ Load AmiiboCarregar Amiibo
-
+ Unable to open amiibo file "%1" for reading.Não foi possível abrir o arquivo amiibo "%1" para realizar a leitura.
-
+ Record MovieGravar passos
-
+ Movie recording cancelled.Gravação cancelada.
-
-
+
+ Movie SavedGravação salva
-
-
+
+ The movie is successfully saved.A gravação foi salva.
-
+ Application will unpauseO aplicativo será retomado
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?O aplicativo será retomado, e o próximo quadro será capturado. Tudo bem?
-
+ Invalid Screenshot DirectoryPasta inválida
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.Não é possível criar a pasta especificada. O caminho original foi restabelecido.
-
+ Could not load video dumperNão foi possível carregar o gravador de vídeo
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4663,275 +4689,265 @@ Para instalar o FFmpeg no Azahar, pressione Abrir e selecione seu diretório FFm
Para ver um guia sobre como instalar o FFmpeg, pressione Ajuda.
-
- Load 3DS ROM File
-
+
+ Load 3DS ROM Files
+ Carregar arquivos de ROM do 3DS
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
-
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
+ Arquivos de ROM do 3DS (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
-
-
-
- Save 3DS Compressed ROM File
-
-
-
-
- Load 3DS Compressed ROM File
-
-
-
-
- 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
-
-
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
+ Arquivo de ROM 3DS Comprimido (*.%1)
- The selected file is already decompressed.
-
+ Save 3DS Compressed ROM File
+ Salvar Arquivo de ROM 3DS Comprimido
-
+
+ Select Output 3DS Compressed ROM Folder
+ Selecionar Pasta de Saída das ROMs 3DS Comprimidas
+
+
+
+ Load 3DS Compressed ROM Files
+ Carregar Arquivos de ROM 3DS Comprimidos
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
+ Arquivos de ROM 3DS Comprimidos (*.zcia *.zcci .z3dsx .zcxi)
+
+
+ 3DS ROM File (*.%1)
-
+ Arquivo de ROM 3DS (*.%1)
-
+ Save 3DS ROM File
-
+ Salvar Arquivo de ROM 3DS
-
+
+ Select Output 3DS ROM Folder
+ Selecionar Pasta de Saída das ROMs 3DS
+
+
+ Select FFmpeg DirectorySelecione o Diretório FFmpeg
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.O diretório FFmpeg fornecido não foi encontrado %1. Por favor, certifique-se de que o diretório correto foi selecionado.
-
+ FFmpeg has been sucessfully installed.O FFmpeg foi instalado com sucesso.
-
+ Installation of FFmpeg failed. Check the log file for details.A instalação do FFmpeg falhou. Verifique o arquivo de log para obter detalhes.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.Não foi possível começar a gravação do vídeo.<br>Assegure-se que o codificador de vídeo está configurado corretamente.<br>Refira-se ao log para mais detalhes.
-
+ Recording %1Gravando %1
-
+ Playing %1 / %2Reproduzindo %1 / %2
-
+ Movie FinishedReprodução concluída
-
+ (Accessing SharedExtData)(Acessando SharedExtData)
-
+ (Accessing SystemSaveData)(Acessando SystemSaveData)
-
+ (Accessing BossExtData)(Accessando BossExtData)
-
+ (Accessing ExtData)(Acessando ExtData)
-
+ (Accessing SaveData)(Acessando SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3Tráfego do Artic: %1 %2%3
-
+ Speed: %1%Velocidade: %1%
-
+ Speed: %1% / %2%Velocidade: %1% / %2%
-
+ App: %1 FPSApp: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msQuadro: %1 ms
-
+ VOLUME: MUTEVOLUME: SILENCIADO
-
+ VOLUME: %1%Volume percentage (e.g. 50%)VOLUME: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ %1 está ausente. Por favor,<a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>faça a extração dos arquivos do sistema</a>. <br/>Continuar a emulação pode causar falhas e bugs.
-
+ A system archiveUm arquivo do sistema
-
+ System Archive Not FoundArquivo de sistema não encontrado
-
+ System Archive MissingArquivo de sistema em falta
-
+ Save/load ErrorErro ao salvar/carregar
-
+ Fatal ErrorErro fatal
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Ocorreu um erro fatal. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Verifique o log</a> para mais detalhes.<br/>Continuar a emulação pode causar falhas e bugs.
-
+ Fatal Error encounteredErro fatal encontrado
-
+ ContinueContinuar
-
+ Quit ApplicationSair do Aplicativo
-
+ OKOK
-
+ Would you like to exit now?Deseja sair agora?
-
+ The application is still running. Would you like to stop emulation?O aplicativo ainda está em execução. Deseja parar a emulação?
-
+ Playback CompletedReprodução concluída
-
+ Movie playback completed.Reprodução dos passos concluída.
-
+ Update AvailableAtualização disponível
-
+ Update %1 for Azahar is available.
Would you like to download it?A atualização %1 para o Azahar está disponível.
Você gostaria de baixá-la?
-
+ Primary WindowJanela Principal
-
+ Secondary WindowJanela Secundária
@@ -5037,175 +5053,190 @@ Você gostaria de baixá-la?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>IMPORTANTE: Arquivos criptografados e arquivos .3ds não são mais suportados. Talvez seja necessário descriptografá-los e/ou renomeá-los para .cci. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Saiba mais.</a>
-
+ Don't show again
- Não mostrar novamente
+ Não mostrar
-
-
+
+ CompatibilityCompatibilidade
-
-
+
+ RegionRegião
-
-
+
+ File typeTipo de arquivo
-
-
+
+ SizeTamanho
-
-
+
+ Play timeTempo de jogo
-
+ FavoriteFavorito
-
+
+ Eject Cartridge
+ Ejetar Cartucho
+
+
+
+ Insert Cartridge
+ Inserir Cartucho
+
+
+ OpenAbrir
-
+ Application LocationLocal do Aplicativo
-
+ Save Data LocationLocal de Dados Salvos
-
+ Extra Data LocationLocal de Dados Extras
-
+ Update Data LocationAtualizar Local dos Dados
-
+ DLC Data LocationLocal de Dados de DLC
-
+ Texture Dump LocationLocal de Dump de Texturas
-
+ Custom Texture LocationLocal de Texturas Personalizadas
-
+ Mods LocationDiretório de Mods
-
+ Dump RomFSExtrair RomFS
-
+ Disk Shader CacheCache de shaders em disco
-
+ Open Shader Cache LocationAbrir local do cache dos shaders
-
+ Delete OpenGL Shader CacheApagar cache de shaders do OpenGL
-
+ UninstallDesinstalar
-
+ EverythingTudo
-
+ ApplicationAplicativo
-
+ UpdateAtualização
-
+ DLCDLC
-
+ Remove Play Time DataRemover Dados de Tempo de Jogo
-
+ Create ShortcutCriar Atalho
-
+ Add to DesktopAdicionar à Área de Trabalho
-
+ Add to Applications MenuAdicionar ao Menu Iniciar
-
+
+ Stress Test: App Launch
+ Teste de Estresse: Inicialização de Aplicativos
+
+
+ PropertiesPropriedades
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5214,64 +5245,64 @@ This will delete the application if installed, as well as any installed updates
Isso irá deletar o aplicativo caso ele esteja instalado, assim como qualquer atualização ou DLC instalada.
-
-
+
+ %1 (Update)%1 (Atualização)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Tem certeza que quer desinstalar '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?Tem certeza que deseja desinstalar a atualização para '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?Tem certeza de que deseja desinstalar todas as DLCs de '%1'?
-
+ Scan SubfoldersExaminar Subpastas
-
+ Remove Application DirectoryRemover Diretório de Aplicativos
-
+ Move UpMover para cima
-
+ Move DownMover para baixo
-
+ Open Directory LocationAbrir local da pasta
-
+ ClearLimpar
-
+ NameNome
@@ -5279,82 +5310,82 @@ Isso irá deletar o aplicativo caso ele esteja instalado, assim como qualquer at
GameListItemCompat
-
+ PerfectPerfeito
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.O app funciona impecavelmente, sem nenhum problema de áudio ou nos gráficos. Todas as funcionalidades
testadas funcionam como deveriam, sem a necessidade de soluções alternativas.
-
+ GreatÓtimo
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.O app funciona com leves defeitos gráficos ou de áudio e é jogável do início ao fim. Pode exigir
algumas soluções alternativas.
-
+ OkayBom
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.O aplicativo funciona com graves defeitos gráficos ou de áudio, mas o app é jogável do início ao fim
com o uso de soluções alternativas.
-
+ BadRuim
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.O app funciona, só que com problemas significativos nos gráficos ou no áudio. Não é possível progredir em certas áreas
por conta de tais problemas, mesmo com soluções alternativas.
-
+ Intro/MenuIntro/menu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.É impossível executar o aplicativo devido a graves defeitos nos gráficos ou no áudio. Não é possível passar da
Tela Inicial.
-
+ Won't BootNão inicia
-
+ The app crashes when attempting to startup.O app trava ou fecha-se abruptamente ao tentar iniciá-lo.
-
+ Not TestedNão testado
-
+ The app has not yet been tested.O app ainda não foi testado.
@@ -5362,7 +5393,7 @@ Tela Inicial.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listClique duas vezes para adicionar uma pasta à lista de aplicativos
@@ -5370,27 +5401,27 @@ Tela Inicial.
GameListSearchField
-
+ ofde
-
+ resultresultado
-
+ resultsresultados
-
+ Filter:Filtro:
-
+ Enter pattern to filterInsira o padrão para filtrar
@@ -5718,87 +5749,87 @@ Tela Inicial.
Índice cíclico:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Registradores de endereço: %1, %2
-
+ Compare Result: %1, %2
Comparar resultado: %1, %2
-
+ Static Condition: %1
Condição estática: %1
-
+ Dynamic Conditions: %1, %2
Condições dinâmicas: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Parâmetros do ciclo: %1 (repetições), %2 (inicializador), %3 (incremento), %4
-
+ Instruction offset: 0x%1Offset de instrução: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(última instrução)
@@ -6099,32 +6130,32 @@ Mensagem de depuração:
Senha:
-
+ Room NameNome da sala
-
+ Preferred ApplicationAplicativo preferido
-
+ HostAnfitrião
-
+ PlayersJogadores
-
+ RefreshingAtualizando
-
+ Refresh ListAtualizar lista
@@ -6394,12 +6425,12 @@ Mensagem de depuração:
Compress ROM File...
-
+ Comprimindo Arquivo de ROM...Decompress ROM File...
-
+ Descomprimindo Arquivo de ROM...
@@ -7126,32 +7157,32 @@ Ele pode ter saído da sala.
%1 (0x%2)
-
+ Unsupported encrypted applicationAplicativo criptografado não suportado
-
+ Invalid regionRegião inválida
-
+ Installed TitlesTítulos instalados
-
+ System TitlesTítulos do sistema
-
+ Add New Application DirectoryAdicionar nova pasta de aplicativos
-
+ FavoritesFavoritos
diff --git a/dist/languages/ro_RO.ts b/dist/languages/ro_RO.ts
index 5d9a97cbc..0ec712c6d 100644
--- a/dist/languages/ro_RO.ts
+++ b/dist/languages/ro_RO.ts
@@ -292,8 +292,8 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.
- Emulation:
- Emulare:
+ Emulation
+ Emulare
@@ -397,6 +397,7 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.
+ CameraCameră
@@ -408,8 +409,8 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.
- Camera to configure:
- Camera pentru configurare:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.
- Camera mode:
- Mod cameră:
+ Camera mode
+
@@ -450,8 +451,8 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.
- Camera position:
- Poziție cameră:
+ Camera position
+
@@ -476,8 +477,8 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.
- Camera Image Source:
- Sursă de Imagine de la Cameră:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.
- File:
- Fișier:
+ File
+
@@ -510,11 +511,6 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.Select the system camera to use
Selectați camera de sistem pentru a utiliza
-
-
- Camera:
- Cameră:
- <Default>
@@ -528,8 +524,8 @@ Astfel vor fi banați din forum numele lor de utilizator și adresa IP.
- Flip:
- Rotație:
+ Flip
+
@@ -1018,7 +1014,7 @@ Doriți să ignorați eroarea și să continuați?
Enable Linear Filtering
- Aprinde Linear Filtering
+
@@ -1082,8 +1078,8 @@ Doriți să ignorați eroarea și să continuați?
- Reverse Side by Side
- Inversează Side by Side
+ Side by Side Full Width
+
@@ -1133,7 +1129,7 @@ Doriți să ignorați eroarea și să continuați?
Disable Right Eye Rendering
- Dezactivează randarea ochiului drept
+
@@ -1141,49 +1137,54 @@ Doriți să ignorați eroarea și să continuați?
-
+
+ Swap Eyes
+
+
+
+ UtilityUtilizare
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Înlocuiește texture cu fișierele PNG.</p><p>Texturele sunt încărcați din load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
- Folosește texturi personalizate
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Dump-eaza texturele în fișiere PNG.</p><p>Texturele erau dump-ate în dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
- Dump-eaza Texture
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
- Preîncarca Texturele Personalizate
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Încarcă texturele asincron cu background threads pentru a reduce încărcarea lentă</p></body></html>
-
- Async Custom Texture Loading
- Încărcare asincronă a texturelor personalizate
+
+ Async custom texture loading
+
@@ -1240,13 +1241,13 @@ Doriți să ignorați eroarea și să continuați?
- Set emulation speed:
- Setează viteza emulației:
+ Set emulation speed
+
- Emulation Speed:
- Viteza Emulării:
+ Emulation Speed
+
@@ -1357,12 +1358,12 @@ Doriți să ignorați eroarea și să continuați?
- SPIR-V Shader Generation
- SPIR-V Shader Generare
+ SPIR-V shader generation
+
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1382,8 +1383,8 @@ Doriți să ignorați eroarea și să continuați?
- Enable Hardware Shader
- Activează Hardware Shader
+ Enable hardware shader
+
@@ -1392,8 +1393,8 @@ Doriți să ignorați eroarea și să continuați?
- Accurate Multiplication
- Înmulțire Precisă
+ Accurate multiplication
+
@@ -1402,8 +1403,8 @@ Doriți să ignorați eroarea și să continuați?
- Enable Shader JIT
- Activează Shader-ul JIT
+ Enable shader JIT
+
@@ -1412,8 +1413,8 @@ Doriți să ignorați eroarea și să continuați?
- Enable Async Shader Compilation
- Activați compilarea Async Shader
+ Enable async shader compilation
+
@@ -1422,8 +1423,8 @@ Doriți să ignorați eroarea și să continuați?
- Enable Async Presentation
- Aprinde Async Presentation
+ Enable async presentation
+
@@ -1462,8 +1463,8 @@ Doriți să ignorați eroarea și să continuați?
- Use Disk Shader Cache
- Folosește Disk Shader Cache
+ Use disk shader cache
+
@@ -1487,7 +1488,7 @@ Doriți să ignorați eroarea și să continuați?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1976,13 +1977,13 @@ Doriți să ignorați eroarea și să continuați?
- Swap Screens
- Schimbă Ecranele
+ Swap screens
+
- Rotate Screens Upright
- Rotește Drept Ecranurile
+ Rotate screens upright
+
@@ -2098,8 +2099,8 @@ Doriți să ignorați eroarea și să continuați?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Opacitatea Ecranului de Jos % (Numai OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+
@@ -2446,8 +2447,8 @@ Doriți să ignorați eroarea și să continuați?
- Use Virtual SD
- Folosește SD Virtual
+ Use virtual SD card
+
@@ -2456,8 +2457,8 @@ Doriți să ignorați eroarea și să continuați?
- Use Custom Storage
- Folosește Storage Personalizat
+ Use custom storage location
+
@@ -2543,8 +2544,8 @@ online features (if installed)
- Region:
-
+ Region
+ Regiune
@@ -2552,326 +2553,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameNume de utilizator
-
+ BirthdayZi de naștere
-
+ JanuaryIanuarie
-
+ FebruaryFebruarie
-
+ MarchMartie
-
+ AprilAprilie
-
+ MayMai
-
+ JuneIunie
-
+ JulyIulie
-
+ AugustAugust
-
+ SeptemberSeptembrie
-
+ OctoberOctombrie
-
+ NovemberNoiembrie
-
+ DecemberDecembrie
-
+ LanguageLimbă
-
+ Note: this can be overridden when region setting is auto-selectAtenție: Acestea pot fi suprapuse când regiunea este pe selectare automată
-
+ Japanese (日本語)Japoneză (日本語)
-
+ EnglishEngleză
-
+ French (français)Franceză (français)
-
+ German (Deutsch)Germană (Deutsch)
-
+ Italian (italiano)Italiană (italiano)
-
+ Spanish (español)Spaniolă (español)
-
+ Simplified Chinese (简体中文)Chineză simplificată (简体中文)
-
+ Korean (한국어)Coreană (한국어)
-
+ Dutch (Nederlands)Olandeză (Nederlands)
-
+ Portuguese (português)Portugheză (português)
-
+ Russian (Русский)Rusă (Русский)
-
+ Traditional Chinese (正體中文)Chineză tradițională (正體中文)
-
+ Sound output modeMod ieșire sunet
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryȚară
-
+ ClockCeas
-
+ System ClockCeas de Sistem
-
+ Fixed TimeOră Fixă
-
+ Startup timeTimp de Pornire
-
+ yyyy-MM-ddTHH:mm:ssaaaa-LL-zzTOO:mm:ss
-
+ Offset timeOffset timp
-
+ days
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksBifele Inițiale de Sistem
-
+ RandomAleatoriu
-
+ FixedFixed
-
+ Initial System Ticks OverrideBifele Inițiale de Sistem Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launchedRulează System Setup când Home Menu este pornit
-
+ Console ID:ID Consolă:
-
-
+
+ RegenerateRegenerează
-
+ MAC:
-
- 3GX Plugin Loader:
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
+
-
+ Enable 3GX plugin loaderAprinde 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3581,76 +3593,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1ID Consolă: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningAtenționare
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3766,13 +3778,13 @@ Trageți puncte pentru a schimba poziția sau faceți dublu clic pe celulele tab
- Interface language:
- Limbaj de Interfață:
+ Interface Language
+
- Theme:
- Temă:
+ Theme
+
@@ -3781,8 +3793,8 @@ Trageți puncte pentru a schimba poziția sau faceți dublu clic pe celulele tab
- Icon Size:
- Mărime de Icoană:
+ Icon Size
+
@@ -3802,8 +3814,8 @@ Trageți puncte pentru a schimba poziția sau faceți dublu clic pe celulele tab
- Row 1 Text:
- Text din Rând 1:
+ Row 1 Text
+
@@ -3837,18 +3849,18 @@ Trageți puncte pentru a schimba poziția sau faceți dublu clic pe celulele tab
- Row 2 Text:
- Text din Rând 2:
+ Row 2 Text
+
- Hide Titles without Icon
- Ascunde Titluri fără Icoană
+ Hide titles without icon
+
- Single Line Mode
- Modul Liniei Unice
+ Single line mode
+
@@ -3857,7 +3869,7 @@ Trageți puncte pentru a schimba poziția sau faceți dublu clic pe celulele tab
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3940,12 +3952,12 @@ Trageți puncte pentru a schimba poziția sau faceți dublu clic pe celulele tab
DirectConnectWindow
-
+ ConnectingConectând
-
+ ConnectConectare
@@ -4065,582 +4077,596 @@ Vă rugăm să verificați instalarea FFmpeg utilizată pentru compilare.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedNu au fost detectate dispozitive Vulkan adecvate Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.Inițializarea Vulkan a eșuat în timpul pornirii.<br/>Este posibil ca GPU-ul dvs. să nu accepte Vulkan 1.1 sau să nu aveți cel mai recent driver grafic.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Viteza actuală de emulare. Valori mai mari sau mai mici de 100% indică cum emularea rulează mai repede sau mai încet decât un 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Timp luat pentru a emula un cadru 3DS, fără a pune în calcul limitarea de cadre sau v-sync. Pentru emulare la viteza maximă, această valoare ar trebui să fie maxim 16.67 ms.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesCurăță Fișiere Recente
-
+ &Continue&Continue
-
+ &Pause&Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.A apărut o eroare necunoscută. Vă rugăm să consultați jurnalul pentru mai multe detalii.
-
+ CIA must be installed before usageCIA-ul trebuie instalat înainte de uz
-
+ Before using this CIA, you must install it. Do you want to install it now?Înainte de a folosi acest CIA, trebuie să-l instalati. Doriți s-o faceți acum?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1Slot %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3Slot %1 - %2 %3
-
+ Error Opening %1 FolderEroare Deschizând Folderul %1
-
-
+
+ Folder does not exist!Folderul nu există!
-
+ Remove Play Time DataEliminați datele privind timpul petrecut
-
+ Reset play time?Resetați play time?
-
-
-
-
+
+
+
+ Create ShortcutCreează un Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1Shortcut-ul către %1 a fost creat cu succes
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Asta va crea un shortcut la AppImage-ul curent. Este posibilitate că nu va lucra normal dacă veți actualiza. Continuă?
-
+ Failed to create a shortcut to %1Nu s-a putut crea o comandă rapidă către %1
-
+ Create IconCreează un Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.Nu se poate crea fișierul de icon. Calea "%1" nu există și nu poate fi creat.
-
+ Dumping...Dumping...
-
-
+
+ CancelAnulare
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Nu s-a putut să facă dump-ul bazei RomFS.
Consultați log-urile pentru detalii.
-
+ Error Opening %1Eroare Deschizând %1
-
+ Select DirectorySelectează Directorul
-
+ PropertiesProprietăți
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Executabilă 3DS (%1);;Toate Fișierele (*.*)
-
+ Load FileÎncarcă Fișier
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesÎncarcă Fișiere
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Toate Fișierele (*.*)
-
+ Connect to Artic BaseConectează Arctic Base
-
+ Enter Artic Base server address:Introduceți adresa serverului Arctic Base:
-
+ %1 has been installed successfully.%1 a fost instalat cu succes.
-
+ Unable to open FileNu s-a putut deschide Fișierul
-
+ Could not open %1Nu s-a putut deschide %1
-
+ Installation abortedInstalare anulată
-
+ The installation of %1 was aborted. Please see the log for more detailsInstalarea lui %1 a fost anulată. Vă rugăm să vedeți log-ul pentru mai multe detalii.
-
+ Invalid FileFișier Invalid
-
+ %1 is not a valid CIA%1 nu este un CIA valid
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find FileNu se poate găsi Fișierul
-
+ Could not find %1%1 n-a fost găsit
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...Dezinstalarea '%1'...
-
+ Failed to uninstall '%1'.Dezinstalarea '%1' a eșuat.
-
+ Successfully uninstalled '%1'.'%1' era dezinstalat cu succes.
-
+ File not foundFișier negăsit
-
+ File "%1" not foundFișierul "%1" nu a fost găsit
-
+ SavestatesSavestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data fileEroare la deschiderea fișierului de date amiibo
-
+ A tag is already in use.Un tag deja este in folosire.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Fișier Amiibo (%1);; Toate Fișierele (*.*)
-
+ Load AmiiboÎncarcă Amiibo
-
+ Unable to open amiibo file "%1" for reading.Nu se poate deschide fișierul amiibo "%1" pentru citire.
-
+ Record MovieÎnregistrează Film
-
+ Movie recording cancelled.Înregistrarea filmului a fost anulată.
-
-
+
+ Movie SavedFilm Salvat
-
-
+
+ The movie is successfully saved.Filmul a fost salvat cu succes.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot DirectoryDirectoria Capturii de Ecran este Invalidă
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.Nu se poate crea directoria specificată a capturii de ecran. Calea capturii de ecran a fost setat implicit
-
+ Could not load video dumperDumperul video nu a putut fi încărcat
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4649,274 +4675,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectorySelectați Directoria FFmpeg
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.Directoria FFmpeg furnizată nu este prezentă %1. Vă rugăm să vă asigurați că ați selectat directoria corectă.
-
+ FFmpeg has been sucessfully installed.FFmpeg era instalat cu succes.
-
+ Installation of FFmpeg failed. Check the log file for details.Instalația FFmpeg a eșuat. Verificați log-urile pentru detalii.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1Înregistrarea %1
-
+ Playing %1 / %2Playing %1 / %2
-
+ Movie FinishedFilmul finisat
-
+ (Accessing SharedExtData)(Se accesează SharedExtData)
-
+ (Accessing SystemSaveData)(Se accesează SystemSaveData)
-
+ (Accessing BossExtData)(Se accesează BossExtData)
-
+ (Accessing ExtData)(Se accesează ExtData)
-
+ (Accessing SaveData)(Se accesează SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Viteză: %1%
-
+ Speed: %1% / %2%Viteză: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msCadru: %1 ms
-
+ VOLUME: MUTEVOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)VOLUME: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveArhivul sistemului
-
+ System Archive Not FoundFișier de Sistem Negăsit
-
+ System Archive MissingArhivul Sistemului nu este Prezent
-
+ Save/load ErrorEroare la salvare/încărcare
-
+ Fatal ErrorEroare Fatală
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredS-a Produs o Eroare Fatală
-
+ ContinueContinuă
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Doriți să ieșiți acum?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedRedare Finalizată
-
+ Movie playback completed.Redarea filmului a fost finalizată.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary WindowFereastră Primară
-
+ Secondary WindowFereastră Secundară
@@ -5022,239 +5038,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilityCompatibilitate
-
-
+
+ RegionRegiune
-
-
+
+ File typeTip de Fișier
-
-
+
+ SizeMărime
-
-
+
+ Play timeTimp de joacă
-
+ FavoriteFavorit
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenDeschide
-
+ Application LocationLocația Aplicației
-
+ Save Data LocationLocația Datelor Salvării
-
+ Extra Data LocationLocația Datelor Extra
-
+ Update Data LocationLocația Datelor de Actualizare
-
+ DLC Data LocationLocația Datelor DLC
-
+ Texture Dump LocationLocația Dump-ului de Texturi
-
+ Custom Texture LocationLocația Custom a Texturilor
-
+ Mods LocationLocația Modurilor
-
+ Dump RomFSDump RomFS
-
+ Disk Shader CacheDisk Shader Cache
-
+ Open Shader Cache LocationLocația Cache-ului de Open Shader
-
+ Delete OpenGL Shader CacheȘterge OpenGL Shader Cache
-
+ UninstallDezinstalează
-
+ EverythingTotul
-
+ Application
-
+ UpdateActualizare
-
+ DLCDLC
-
+ Remove Play Time DataȘterge Datele Timpului de Joacă
-
+ Create ShortcutCreează un Shortcut
-
+ Add to DesktopAdaugă pe desktop
-
+ Add to Applications MenuAdaugă în Meniul de Aplicații
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesProprietăți
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)%1 (Actualizare)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Sunteți siguri că doriți să dezinstalați '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?Sunteți siguri că doriți să dezinstalați actualizarea pentru '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?Sunteți siguri că doriți să dezinstalați toate DLC-urile pentru '%1'?
-
+ Scan SubfoldersScanează Subfolderele
-
+ Remove Application Directory
-
+ Move UpMută în Sus
-
+ Move DownMută în Jos
-
+ Open Directory LocationDeschide Locația Directorului
-
+ ClearȘterge
-
+ NameNume
@@ -5262,77 +5293,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectPerfect
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatGrozav
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayBun
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadRău
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuIntroducere/Meniu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootNu Pornește
-
+ The app crashes when attempting to startup.
-
+ Not TestedNetestat
-
+ The app has not yet been tested.
@@ -5340,7 +5371,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5348,27 +5379,27 @@ Screen.
GameListSearchField
-
+ ofde
-
+ resultrezultat
-
+ resultsrezultate
-
+ Filter:Filtru:
-
+ Enter pattern to filterIntroduceți un tipar de filtrare
@@ -5696,87 +5727,87 @@ Screen.
Index de Ciclu:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Registre de Adresă: %1, %2
-
+ Compare Result: %1, %2
Compară Rezultate: %1, %2
-
+ Static Condition: %1
Condiție Statică: %1
-
+ Dynamic Conditions: %1, %2
Condiții Dinamice: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Parametrii de Buclă: %1 (repetiții), %2 (inițializator), %3 (increment), %4
-
+ Instruction offset: 0x%1Offset de instrucțiuni: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(ultima instrucțiune)
@@ -6076,32 +6107,32 @@ Debug Message:
Parolă:
-
+ Room NameNume de Sală
-
+ Preferred Application
-
+ HostGazdă
-
+ PlayersJucători
-
+ RefreshingActualizând
-
+ Refresh ListActualizează Lista
@@ -7100,32 +7131,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionRegiune invalidă
-
+ Installed Titles
-
+ System Titles
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/ru_RU.ts b/dist/languages/ru_RU.ts
index 1dcb9ad96..2aa8f7a3e 100644
--- a/dist/languages/ru_RU.ts
+++ b/dist/languages/ru_RU.ts
@@ -298,8 +298,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- Эмуляция:
+ Emulation
+ Эмуляция
@@ -403,6 +403,7 @@ This would ban both their forum username and their IP address.
+ CameraКамера
@@ -414,8 +415,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- Настраиваемая камера:
+ Camera to Configure
+
@@ -435,8 +436,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- Режим камеры:
+ Camera mode
+
@@ -456,8 +457,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- Позиция камеры:
+ Camera position
+
@@ -482,8 +483,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- Источник отображения для камеры:
+ Camera Image Source
+
@@ -502,8 +503,8 @@ This would ban both their forum username and their IP address.
- File:
- Файл:
+ File
+
@@ -516,11 +517,6 @@ This would ban both their forum username and their IP address.
Select the system camera to useВыберите использование системной камеры
-
-
- Camera:
- Камера:
- <Default>
@@ -534,8 +530,8 @@ This would ban both their forum username and their IP address.
- Flip:
- Поворот изображения:
+ Flip
+
@@ -1024,7 +1020,7 @@ Would you like to ignore the error and continue?
Enable Linear Filtering
- Включить линейную фильтрацию
+
@@ -1088,8 +1084,8 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
- Рядом (в обратном порядке)
+ Side by Side Full Width
+
@@ -1139,7 +1135,7 @@ Would you like to ignore the error and continue?
Disable Right Eye Rendering
- Отключить отрисовку правого глаза
+
@@ -1147,49 +1143,54 @@ Would you like to ignore the error and continue?
<html><head/><body><p>Выключить отрисовку правого глаза</p><p>Отключает отрисовку изображения для правого глаза, когда не используется стереоскопический режим. В некоторых приложениях сильно повышает производительность, но в других может вызвать мелькание.</p></body></html>
-
+
+ Swap Eyes
+
+
+
+ UtilityИнструменты
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Заменить текстуры файлами PNG.</p><p>Текстуры загружаются из папки load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
- Использовать внешние текстуры
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Создать дамп текстур в виде файлов PNG.</p><p>Дамп текстур создаётся в папке dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
- Создать дамп текстур
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Загружать сразу все внешние текстуры в память при запуске вместо их подгрузки по мере востребованности приложением.</p></body></html>
-
- Preload Custom Textures
- Предзагрузка внешних текстур
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Загружать внешние текстуры асинхронно в фоновых потоках для снижения подвисаний при загрузке</p></body></html>
-
- Async Custom Texture Loading
- Асинхронная загрузка внешних текстур
+
+ Async custom texture loading
+
@@ -1246,13 +1247,13 @@ Would you like to ignore the error and continue?
- Set emulation speed:
- Установить скорость эмуляции:
+ Set emulation speed
+
- Emulation Speed:
- Скорость эмуляции:
+ Emulation Speed
+
@@ -1363,12 +1364,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
- Генерация шейдеров SPIR-V
+ SPIR-V shader generation
+
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1388,8 +1389,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- Включить аппаратный шейдер
+ Enable hardware shader
+
@@ -1398,8 +1399,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- Точное умножение
+ Accurate multiplication
+
@@ -1408,8 +1409,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- Включить JIT-компиляцию шейдеров
+ Enable shader JIT
+
@@ -1418,8 +1419,8 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
- Включить асинхронную компиляцию шейдеров
+ Enable async shader compilation
+
@@ -1428,8 +1429,8 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
- Включить асинхронную презентацию
+ Enable async presentation
+
@@ -1468,8 +1469,8 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
- Использовать кеш шейдеров на диске
+ Use disk shader cache
+
@@ -1493,8 +1494,8 @@ Would you like to ignore the error and continue?
- Delay application render thread:
- Задержка потока отрисовки приложения:
+ Delay Application Render Thread
+
@@ -1982,13 +1983,13 @@ Would you like to ignore the error and continue?
- Swap Screens
- Поменять экраны местами
+ Swap screens
+
- Rotate Screens Upright
- Повернуть экраны вертикально
+ Rotate screens upright
+
@@ -2104,8 +2105,8 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Процент прозрачности нижнего экрана (только OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+
@@ -2452,8 +2453,8 @@ Would you like to ignore the error and continue?
- Use Virtual SD
- Использовать виртуальную SD-карту
+ Use virtual SD card
+
@@ -2462,7 +2463,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage location
@@ -2549,8 +2550,8 @@ online features (if installed)
- Region:
- Регион:
+ Region
+ Регион
@@ -2558,326 +2559,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameИмя пользователя
-
+ BirthdayДата рождения
-
+ JanuaryЯнварь
-
+ FebruaryФевраль
-
+ MarchМарт
-
+ AprilАпрель
-
+ MayМай
-
+ JuneИюнь
-
+ JulyИюль
-
+ AugustАвгуст
-
+ SeptemberСентябрь
-
+ OctoberОктябрь
-
+ NovemberНоябрь
-
+ DecemberДекабрь
-
+ LanguageЯзык
-
+ Note: this can be overridden when region setting is auto-selectПримечание: этот параметр может быть переопределён, если включён параметр автовыбора региона
-
+ Japanese (日本語)Японский (日本語)
-
+ EnglishАнглийский (English)
-
+ French (français)Французский (français)
-
+ German (Deutsch)Немецкий (Deutsch)
-
+ Italian (italiano)Итальянский (italiano)
-
+ Spanish (español)Испанский (español)
-
+ Simplified Chinese (简体中文)Упрощённый китайский (简体中文)
-
+ Korean (한국어)Корейский (한국어)
-
+ Dutch (Nederlands)Голландский (Nederlands)
-
+ Portuguese (português)Португальский (português)
-
+ Russian (Русский)Русский
-
+ Traditional Chinese (正體中文)Традиционный китайский (正體中文)
-
+ Sound output modeРежим вывода звука
-
+ MonoМоно
-
+ StereoСтерео
-
+ SurroundОбъёмный
-
+ CountryСтрана
-
+ ClockЧасы
-
+ System ClockСистемные часы
-
+ Fixed TimeФиксированное время
-
+ Startup timeВремя запуска
-
+ yyyy-MM-ddTHH:mm:ssdd-MM-yyyyTHH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ RandomСлучайно
-
+ FixedСтатично
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:ID консоли:
-
-
+
+ RegenerateПересоздать
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3587,76 +3599,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1ID консоли: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningПредупреждение
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3774,13 +3786,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Язык интерфейса:
+ Interface Language
+
- Theme:
- Тема:
+ Theme
+
@@ -3789,8 +3801,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- Размер значков:
+ Icon Size
+
@@ -3810,8 +3822,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- Текст на 1-й строке:
+ Row 1 Text
+
@@ -3845,18 +3857,18 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- Текст на 2-й строке:
+ Row 2 Text
+
- Hide Titles without Icon
- Скрывать названия игр без значков
+ Hide titles without icon
+
- Single Line Mode
- Однострочный режим
+ Single line mode
+
@@ -3865,7 +3877,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3948,12 +3960,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingПодключение
-
+ ConnectПодключиться
@@ -4072,582 +4084,596 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Текущая скорость эмуляции. Значения выше или ниже 100% указывают на то, что эмуляция работает быстрее или медленнее, чем в 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Время, затрачиваемое на эмуляцию кадра 3DS, без учёта ограничения кадров или вертикальной синхронизации. Для полноскоростной эмуляции это значение должно быть не более 16,67 мс.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesОчистить последние файлы
-
+ &Continue&Продолжить
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.Azahar не поддерживает GBA Virtual Console.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.Произошла неизвестная ошибка. Подробную информацию см. в журнале.
-
+ CIA must be installed before usageПеред использованием необходимо установить CIA-файл
-
+ Before using this CIA, you must install it. Do you want to install it now?Перед использованием этого CIA-файла, необходимо его установить. Установить сейчас?
-
+ Quick LoadБыстрая загрузка
-
+ Quick SaveБыстрое сохранение
-
-
+
+ Slot %1Ячейка %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 FolderОшибка открытия папки %1
-
-
+
+ Folder does not exist!Папка не существует!
-
+ Remove Play Time Data
-
+ Reset play time?Сбросить игровое время?
-
-
-
-
+
+
+
+ Create ShortcutСоздать ярлык
-
+ Do you want to launch the application in fullscreen?Запускать приложение в полном экране?
-
+ Successfully created a shortcut to %1Успешно создан ярлык для %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1Не удалось создать ярлык для %1
-
+ Create IconСоздать иконку
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...Создание дампа...
-
-
+
+ CancelОтмена
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Не удалось создать дамп base RomFS.
Подробную информацию см. в журнале.
-
+ Error Opening %1Ошибка при открытии %1
-
+ Select DirectoryВыбрать каталог
-
+ PropertiesСвойства
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Исполняемый файл 3DS (%1);;Все файлы (*.*)
-
+ Load FileЗагрузка файла
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:Выберите режим установки:
-
+ (ℹ️) Old 3DS setup(ℹ️) Обычная 3DS
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup(⚠) New 3DS
-
+ Old 3DS setup is required first.Сначала требуется установка обычной 3DS.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesЗагрузка файлов
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Все файлы (*.*)
-
+ Connect to Artic BaseПодключиться к Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 был успешно установлен.
-
+ Unable to open FileНе удалось открыть файл
-
+ Could not open %1Не удалось открыть %1
-
+ Installation abortedУстановка прервана
-
+ The installation of %1 was aborted. Please see the log for more detailsУстановка %1 была прервана. Более подробную информацию см. в журнале.
-
+ Invalid FileНедопустимый файл
-
+ %1 is not a valid CIA%1 — недопустимый CIA-файл
-
+ CIA EncryptedCIA файл зашифрован
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find FileНе удалось найти файл
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
- Ошибра при разжатии файла
-
-
-
- File decompress operation failed, check log for details.
+
+ Failed to decompress some files, check log for details.
-
+
+ All files have been compressed successfully.
+
+
+
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...Удаление '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.Успешно удалён '%1'.
-
+ File not foundФайл не найден
-
+ File "%1" not foundФайл «%1» не найден
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Файл Amiibo (%1);; Все файлы (*.*)
-
+ Load AmiiboЗагрузка Amiibo
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieЗапись видеоролика
-
+ Movie recording cancelled.Запись видеоролика отменена.
-
-
+
+ Movie SavedСохранение видеоролика
-
-
+
+ The movie is successfully saved.Видеоролик сохранён успешно.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4656,274 +4682,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectoryВыберите каталог FFmpeg
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Скорость: %1%
-
+ Speed: %1% / %2%Скорость: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msКадр: %1 мс
-
+ VOLUME: MUTEГРОМКОСТЬ: ЗАГЛУШЕНО
-
+ VOLUME: %1%Volume percentage (e.g. 50%)ГРОМКОСТЬ: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveСистемный архив
-
+ System Archive Not FoundСистемный архив не найден
-
+ System Archive MissingНе удалось найти системный архив
-
+ Save/load ErrorОшибка сохранения/загрузки
-
+ Fatal ErrorНеустранимая ошибка
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredПроизошла неустранимая ошибка
-
+ ContinueПродолжить
-
+ Quit ApplicationЗакрыть Приложение
-
+ OKOK
-
+ Would you like to exit now?Выйти сейчас?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedВоспроизведение завершено
-
+ Movie playback completed.Воспроизведение видеоролика завершено.
-
+ Update AvailableДоступно обновление
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary WindowОсновной Экран
-
+ Secondary WindowДополнительный Экран
@@ -5029,239 +5045,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show againНе показывать снова
-
-
+
+ CompatibilityСовместимость
-
-
+
+ RegionРегион
-
-
+
+ File typeТип файла
-
-
+
+ SizeРазмер
-
-
+
+ Play timeИгровое время
-
+ FavoriteИзбранное
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenОткрыть
-
+ Application LocationПуть к приложению
-
+ Save Data LocationПуть к файлам сохранений
-
+ Extra Data Location
-
+ Update Data LocationПуть к файлам обновлений
-
+ DLC Data LocationПуть к файлам DLC
-
+ Texture Dump LocationПуть к файлам дампа текстур
-
+ Custom Texture LocationПуть к пользовательским текстурам
-
+ Mods LocationПуть к модификациям
-
+ Dump RomFSСоздать дамп RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ UninstallУдалить
-
+ EverythingВсё
-
+ ApplicationПриложение
-
+ UpdateОбновления
-
+ DLC
-
+ Remove Play Time Data
-
+ Create ShortcutСоздать ярлык
-
+ Add to DesktopДобавить на рабочий стол
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesСвойства
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan SubfoldersСканировать подпапки
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory LocationОткрыть расположение каталога
-
+ ClearОчистить
-
+ NameИмя
@@ -5269,77 +5300,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectОтлично
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatХорошо
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayУдовлетворительно
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadПлохо
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuВступительный видеоролик/меню
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootНе запускается
-
+ The app crashes when attempting to startup.
-
+ Not TestedНе проверялась
-
+ The app has not yet been tested.
@@ -5347,7 +5378,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5355,27 +5386,27 @@ Screen.
GameListSearchField
-
+ ofиз
-
+ resultрезультат
-
+ resultsрезультатов
-
+ Filter:Фильтр:
-
+ Enter pattern to filterВведите шаблон для фильтрации
@@ -5703,87 +5734,87 @@ Screen.
Индекс цикла:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Адресные регистры: %1, %2
-
+ Compare Result: %1, %2
Сравнить результат: %1, %2
-
+ Static Condition: %1
Статическое состояние: %1
-
+ Dynamic Conditions: %1, %2
Динамические состояния: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Параметры цикла: %1 (повторов), %2 (инициализатор), %3 (приращение), %4
-
+ Instruction offset: 0x%1Смещение инструкции: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(последняя инструкция)
@@ -6083,32 +6114,32 @@ Debug Message:
Пароль:
-
+ Room NameНазвание комнаты
-
+ Preferred Application
-
+ HostХост
-
+ PlayersИгроки
-
+ RefreshingОбновление
-
+ Refresh ListОбновить список
@@ -6609,7 +6640,7 @@ Debug Message:
File:
- Файл:
+
@@ -6701,7 +6732,7 @@ Debug Message:
File:
- Файл:
+
@@ -7107,32 +7138,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionНедопустимый регион
-
+ Installed TitlesНазвания установленных игр
-
+ System TitlesНазвания предустановленных игр
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/sv.ts b/dist/languages/sv.ts
index 1270227f5..5579f2aec 100644
--- a/dist/languages/sv.ts
+++ b/dist/languages/sv.ts
@@ -298,8 +298,8 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.
- Emulation:
- Emulering:
+ Emulation
+ Emulering
@@ -403,6 +403,7 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.
+ CameraKamera
@@ -414,8 +415,8 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.
- Camera to configure:
- Kamera att konfigurera:
+ Camera to Configure
+ Kamera att konfigurera
@@ -435,8 +436,8 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.
- Camera mode:
- Kameraläge:
+ Camera mode
+ Kameraläge
@@ -456,8 +457,8 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.
- Camera position:
- Kameraposition:
+ Camera position
+ Kameraposition
@@ -482,8 +483,8 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.
- Camera Image Source:
- Inmatningskälla för kamera:
+ Camera Image Source
+ Kamerabildskälla
@@ -502,8 +503,8 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.
- File:
- Fil:
+ File
+ Fil
@@ -516,11 +517,6 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.Select the system camera to use
Välj systemkameran att använda
-
-
- Camera:
- Kamera:
- <Default>
@@ -534,8 +530,8 @@ Detta skulle bannlysa både deras forumanvändarnamn och deras IP-adress.
- Flip:
- Vänd:
+ Flip
+ Vänd
@@ -1024,7 +1020,7 @@ Vill du ignorera felet och fortsätta?
Enable Linear Filtering
- Aktivera linjär filtering
+ Aktivera linjär filtrering
@@ -1088,8 +1084,8 @@ Vill du ignorera felet och fortsätta?
- Reverse Side by Side
- Omvänd sida vid sida
+ Side by Side Full Width
+ Sida vid sida full bredd
@@ -1139,7 +1135,7 @@ Vill du ignorera felet och fortsätta?
Disable Right Eye Rendering
- Avaktivera rendering för höger öga
+ Inaktivera rendering för höger öga
@@ -1147,48 +1143,53 @@ Vill du ignorera felet och fortsätta?
<html><head/><body><p>Inaktivera rendering av höger öga</p><p>Inaktiverar rendering av högerögats bild när stereoskopiskt läge inte används. Förbättrar prestandan avsevärt i vissa applikationer, men kan orsaka flimmer i andra.</p></body></html>
-
+
+ Swap Eyes
+ Byt ögon
+
+
+ UtilityVerktyg
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>Ersätt texturer med PNG- filer.</p><p>Texturer läses in från load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom texturesAnvänd anpassade texturer
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>Dumpa texturer till PNG-filer.</p><p>Texturer dumpas till dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump texturesDumpa texturer
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>Läs in alla anpassade texturer i minnet vid uppstart, istället för att läsa in dem när programmet kräver dem.</p></body></html>
-
- Preload Custom Textures
- Förinläs anpassade texturer
+
+ Preload custom textures
+ Förladda anpassade texturer
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>Läs in anpassade texturer asynkront med bakgrundstrådar för att minska inläsningsskakning</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loadingAsynkron inläsning av anpassade texturer
@@ -1246,13 +1247,13 @@ Vill du ignorera felet och fortsätta?
- Set emulation speed:
- Ställ in emuleringshastighet:
+ Set emulation speed
+ Ställ in emuleringshastighet
- Emulation Speed:
- Emuleringshastighet:
+ Emulation Speed
+ Emuleringshastighet
@@ -1363,13 +1364,13 @@ Vill du ignorera felet och fortsätta?
- SPIR-V Shader Generation
- SPIR-V Shader-generering
+ SPIR-V shader generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
- Inaktivera GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
+ Inaktivera GLSL -> SPIR-V-optimerare
@@ -1388,7 +1389,7 @@ Vill du ignorera felet och fortsätta?
- Enable Hardware Shader
+ Enable hardware shaderAktivera hårdvaru-shader
@@ -1398,7 +1399,7 @@ Vill du ignorera felet och fortsätta?
- Accurate Multiplication
+ Accurate multiplicationExakt multiplikation
@@ -1408,8 +1409,8 @@ Vill du ignorera felet och fortsätta?
- Enable Shader JIT
- Aktivera Shader JIT
+ Enable shader JIT
+ Aktivera shader JIT
@@ -1418,7 +1419,7 @@ Vill du ignorera felet och fortsätta?
- Enable Async Shader Compilation
+ Enable async shader compilationAktivera asynkron shader-kompilering
@@ -1428,8 +1429,8 @@ Vill du ignorera felet och fortsätta?
- Enable Async Presentation
- Aktivera asynkron presentation
+ Enable async presentation
+ Aktivera async-presentation
@@ -1468,8 +1469,8 @@ Vill du ignorera felet och fortsätta?
- Use Disk Shader Cache
- Använd disk shadercache
+ Use disk shader cache
+ Använd diskcache för shader
@@ -1493,8 +1494,8 @@ Vill du ignorera felet och fortsätta?
- Delay application render thread:
- Fördröj applikationens renderingstråd:
+ Delay Application Render Thread
+ Fördröj applikationsrenderingstråd
@@ -1982,13 +1983,13 @@ Vill du ignorera felet och fortsätta?
- Swap Screens
+ Swap screensVäxla skärmar
- Rotate Screens Upright
- Rotera skärmarna upprätt
+ Rotate screens upright
+ Rotera skärmar upprätt
@@ -2104,8 +2105,8 @@ Vill du ignorera felet och fortsätta?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Opacitet för nedre skärmen % (endast OpenGL)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+ <html><head/><body><p>Opacitet för nedre skärm %</p></body></html>
@@ -2452,8 +2453,8 @@ Vill du ignorera felet och fortsätta?
- Use Virtual SD
- Använd Virtual SD
+ Use virtual SD card
+ Använd virtuellt SD-kort
@@ -2462,8 +2463,8 @@ Vill du ignorera felet och fortsätta?
- Use Custom Storage
- Använd anpassad lagring
+ Use custom storage location
+ Använd anpassad lagringsplats
@@ -2550,8 +2551,8 @@ onlinefunktioner (om installerade)
- Region:
- Region:
+ Region
+ Region
@@ -2559,326 +2560,338 @@ onlinefunktioner (om installerade)
Välj automatiskt
-
+
+ Apply region free patch to
+installed applications.
+ Tillämpa regionsfri patch till
+installerade applikationer.
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+ Patchar regionen för installerade applikationer till att vara regionsfria så att de alltid visas på hemmenyn.
+
+
+ UsernameAnvändarnamn
-
+ BirthdayFödelsedag
-
+ JanuaryJanuari
-
+ FebruaryFebruari
-
+ MarchMars
-
+ AprilApril
-
+ MayMaj
-
+ JuneJuni
-
+ JulyJuli
-
+ AugustAugusti
-
+ SeptemberSeptember
-
+ OctoberOktober
-
+ NovemberNovember
-
+ DecemberDecember
-
+ LanguageSpråk
-
+ Note: this can be overridden when region setting is auto-selectObs: detta kan åsidosättas när regioninställningen är automatiskt vald
-
+ Japanese (日本語)Japanska (日本語)
-
+ EnglishEngelska
-
+ French (français)Franska (français)
-
+ German (Deutsch)Tyska (Deutsch)
-
+ Italian (italiano)Italienska (italiano)
-
+ Spanish (español)Spanska (español)
-
+ Simplified Chinese (简体中文)Förenklad kinesiska (简体中文)
-
+ Korean (한국어)Koreanska (한국어)
-
+ Dutch (Nederlands)Nederländska (Nederlands)
-
+ Portuguese (português)Portugisiska (português)
-
+ Russian (Русский)Ryska (Русский)
-
+ Traditional Chinese (正體中文)Traditionell kinesiska (正體中文)
-
+ Sound output modeLäge för ljudutmatning
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryLand
-
+ ClockKlocka
-
+ System ClockSystemklocka
-
+ Fixed TimeFast tid
-
+ Startup timeUppstartstid
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time
- Offset-tid
+ Tidsförskjutning
-
+ daysdagar
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System TicksInitiala systemticks
-
+ RandomSlumpmässig
-
+ FixedFast
-
+ Initial System Ticks OverrideÅsidosätt Initial System Ticks
-
+ Play CoinsSpelmynt
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>Antal steg per timme som rapporterats av stegmätaren. Intervall från 0 till 65,535.</p></body></html>
-
+ Pedometer Steps per HourStegmätare steg per timme
-
+ Run System Setup when Home Menu is launchedKör System Setup när Home Menu startas
-
+ Console ID:Konsol-ID:
-
-
+
+ RegenerateGenerera om
-
+ MAC:MAC:
-
- 3GX Plugin Loader:
- Inläsare för 3GX-insticksmodul:
+
+ 3GX Plugin Loader
+ 3GX-insticksläsare
-
+ Enable 3GX plugin loaderAktivera inläsare för 3GX-insticksmodul
-
+ Allow applications to change plugin loader stateTillåt applikationer att ändra tillståndet för inläsaren av insticksmoduler
-
+ Real Console Unique DataUnikt data från riktig konsoll
-
+ Your real console is linked to Azahar.Din riktiga konsoll är länkad till Azahar.
-
+ UnlinkKoppla bort
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseVälj
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.Systeminställningarna är endast tillgängliga när applikationer inte körs.
@@ -3588,76 +3601,76 @@ onlinefunktioner (om installerade)
Sed-fil (*.sed);;Alla filer (*.*)
-
-
+
+ Console ID: 0x%1Konsol-ID: 0x%1
-
-
+
+ MAC: %1MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?Detta kommer att ersätta ditt nuvarande virtuella 3DS-konsol-ID med ett nytt. Ditt nuvarande virtuella 3DS-konsol-ID kommer inte att kunna återställas. Detta kan ha oväntade effekter i applikationer. Detta kan misslyckas om du använder en föråldrad konfigurationssparning. Fortsätta?
-
-
-
+
+
+ WarningVarning
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Detta kommer att ersätta din nuvarande MAC-adress med en ny. Det är inte rekommenderat att göra detta om du fick MAC-adressen från din riktiga konsol med hjälp av installationsverktyget. Fortsätta?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?Denna åtgärd kommer att koppla bort din riktiga konsol från Azahar, med följande konsekvenser: <br><ul><li>Din OTP, SecureInfo och LocalFriendCodeSeed kommer att tas bort från Azahar. </li><li>Din vänlista kommer att återställas och du kommer att loggas ut från ditt NNID/PNID-konto.</li><li> Systemfiler och e-shop-titlar som erhållits via Azahar kommer att bli oåtkomliga tills samma konsol länkas igen (sparade data kommer inte att gå förlorade).</li></ul><br> Fortsätta?
-
+ Invalid country for configured regionOgiltigt land för konfigurerad region
-
+ Invalid country for console unique dataOgiltigt land för konsollunikt data
-
+ Status: LoadedStatus: Inläst
-
+ Status: Loaded (Invalid Signature)Status: Inläst (ogiltig signatur)
-
+ Status: Loaded (Region Changed)Status: Inläst (ändrad region)
-
+ Status: Not FoundStatus: Hittades inte
-
+ Status: InvalidStatus: Ogiltig
-
+ Status: IO ErrorStatus: In/ut-fel
@@ -3773,13 +3786,13 @@ Dra punkterna för att ändra position, eller dubbelklicka på tabellcellerna f
- Interface language:
- Gränssnittsspråk:
+ Interface Language
+ Gränssnittsspråk
- Theme:
- Tema:
+ Theme
+ Tema
@@ -3788,8 +3801,8 @@ Dra punkterna för att ändra position, eller dubbelklicka på tabellcellerna f
- Icon Size:
- Ikonstorlek:
+ Icon Size
+ Ikonstorlek
@@ -3809,8 +3822,8 @@ Dra punkterna för att ändra position, eller dubbelklicka på tabellcellerna f
- Row 1 Text:
- Rad 1-text:
+ Row 1 Text
+ Rad 1-text
@@ -3844,18 +3857,18 @@ Dra punkterna för att ändra position, eller dubbelklicka på tabellcellerna f
- Row 2 Text:
- Rad 2-text:
+ Row 2 Text
+ Rad 2-text
- Hide Titles without Icon
+ Hide titles without iconDölj titlar utan ikon
- Single Line Mode
- Enkel rad-läge
+ Single line mode
+ Enradigt läge
@@ -3864,8 +3877,8 @@ Dra punkterna för att ändra position, eller dubbelklicka på tabellcellerna f
- Show Advanced Frame Time Info
- Visa avancerad information om bildrutor
+ Show advanced frame time info
+ Visa avancerad bildtidsinformation
@@ -3947,12 +3960,12 @@ Dra punkterna för att ändra position, eller dubbelklicka på tabellcellerna f
DirectConnectWindow
-
+ ConnectingAnsluter
-
+ ConnectAnslut
@@ -4072,497 +4085,511 @@ Kontrollera din FFmpeg-installation som användes för kompilering.
GMainWindow
-
+ No Suitable Vulkan Devices DetectedInga lämpliga Vulkan-enheter upptäcktes
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.Vulkan-initialiseringen misslyckades under uppstarten.<br/>Din GPU kanske inte stöder Vulkan 1.1, eller så har du inte den senaste grafikdrivrutinen.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.Aktuell hastighet för Artic-trafiken. Högre värden indikerar större överföringslaster.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Aktuell emuleringshastighet. Värden som är högre eller lägre än 100% indikerar att emuleringen körs snabbare eller långsammare än 3DS.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.Hur många bilder per sekund som appen visar för närvarande. Detta varierar från app till app och från scen till scen.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Tidsåtgång för att emulera en 3DS-bildruta, utan att räkna med framelimiting eller v-sync. För emulering med full hastighet bör detta vara högst 16,67 ms.
-
+ MicroProfile (unavailable)MicroProfile (inte tillgänglig)
-
+ Clear Recent FilesTöm senaste filer
-
+ &Continue&Fortsätt
-
+ &Pause&Paus
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar kör en applikation
-
-
+
+ Invalid App FormatOgiltigt appformat
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Ditt appformat stöds inte.<br/>Följ anvisningarna för att återdumpa dina <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>spelkassetter</a> eller <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installerade titlar</a>.
-
+ App CorruptedAppen skadad
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.Din app är skadad. <br/>Följ guiderna för att återdumpa dina <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>spelkassetter</a> eller <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installerade titlar</a>.
-
+ App EncryptedApp krypterad
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Din app är krypterad. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Mer information finns på vår blogg.</a>
-
+ Unsupported AppApp som inte stöds
-
+ GBA Virtual Console is not supported by Azahar.GBA Virtual Console stöds inte av Azahar.
-
-
+
+ Artic ServerArtic-server
-
+
+ Invalid system mode
+ Ogiltigt systemläge
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+ Nya 3DS-exklusiva applikationer kan inte läsas in utan att aktivera Ny 3DS-läget.
+
+
+ Error while loading App!Fel vid inläsning av app!
-
+ An unknown error occurred. Please see the log for more details.Ett okänt fel har inträffat. Se loggen för mer information.
-
+ CIA must be installed before usageCIA måste installeras före användning
-
+ Before using this CIA, you must install it. Do you want to install it now?Innan du använder denna CIA måste du installera den. Vill du installera den nu?
-
+ Quick LoadSnabbinläsning
-
+ Quick SaveSnabbsparning
-
-
+
+ Slot %1Plats %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Snabbsparning - %1
-
+ Quick Load - %1Snabbinläsning - %1
-
+ Slot %1 - %2 %3Plats %1 - %2 %3
-
+ Error Opening %1 FolderFel vid öppning av mappen %1
-
-
+
+ Folder does not exist!Mappen finns inte!
-
+ Remove Play Time DataTa bort data om speltid
-
+ Reset play time?Återställ speltid?
-
-
-
-
+
+
+
+ Create ShortcutSkapa genväg
-
+ Do you want to launch the application in fullscreen?Vill du starta applikationen i helskärm?
-
+ Successfully created a shortcut to %1Skapade framgångsrikt en genväg till %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?Detta kommer att skapa en genväg till den aktuella AppImage. Detta kanske inte fungerar så bra om du uppdaterar. Fortsätta?
-
+ Failed to create a shortcut to %1Misslyckades med att skapa en genväg till %1
-
+ Create IconSkapa ikon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.Det går inte att skapa en ikonfil. Sökvägen "%1" finns inte och kan inte skapas.
-
+ Dumping...Dumpar...
-
-
+
+ CancelAvbryt
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Kunde inte dumpa RomFS-basen.
Se loggen för mer information.
-
+ Error Opening %1Fel vid öppning av %1
-
+ Select DirectoryVälj katalog
-
+ PropertiesEgenskaper
-
+ The application properties could not be loaded.Applikationsegenskaperna kunde inte läsas in.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.Körbar 3DS-fil (%1);;Alla filer (*.*)
-
+ Load FileLäs in fil
-
-
+
+ Set Up System FilesKonfigurera systemfiler
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>Azahar behöver konsolunika data och firmware-filer från en riktig konsol för att kunna använda vissa av dess funktioner. <br>Sådana filer och data kan konfigureras med <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool </a><br>Observera:<ul><li><b> Den här åtgärden installerar konsolunika data till Azahar, dela inte dina användar- eller nand-mappar<br> efter att du har utfört installationsprocessen!</b></li><li> Under installationsprocessen kommer Azahar att länkas till den konsol som kör installationsverktyget. Du kan koppla bort <br>konsolen senare från fliken System i emulatorns konfigurationsmeny. </li><li>Gå inte online med både Azahar och din 3DS-konsol samtidigt efter att du har konfigurerat systemfiler, <br>eftersom det kan orsaka problem.</li><li> En installation av den gamla 3DS:en behövs för att installationen av den nya 3DS:en ska fungera (vi rekommenderar att du gör båda installationslägena).</li><li> Båda installationslägena fungerar oavsett vilken konsolmodell som kör installationsverktyget.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:Ange adressen till Azahar Artic Setup Tool:
-
+ <br>Choose setup mode:<br>Välj konfigurationsläge:
-
+ (ℹ️) Old 3DS setup(ℹ️) Gammal 3DS-konfiguration
-
-
+
+ Setup is possible.Konfiguration är möjlig.
-
+ (⚠) New 3DS setup(⚠) Ny 3DS-konfiguration
-
+ Old 3DS setup is required first.Gammal 3DS-konfiguration krävs först.
-
+ (✅) Old 3DS setup(✅) Gammal 3DS-konfiguration
-
-
+
+ Setup completed.Konfigurationen är färdig.
-
+ (ℹ️) New 3DS setup(ℹ️) Ny 3DS-konfiguration
-
+ (✅) New 3DS setup(✅) Ny 3DS-konfiguration
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?Systemfilerna för det valda läget är redan konfigurerade.
Installera om filerna i alla fall?
-
+ Load FilesLäs in filer
-
+ 3DS Installation File (*.cia *.zcia)3DS-installationsfil (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Alla filer (*.*)
-
+ Connect to Artic BaseAnslut till Artic Base
-
+ Enter Artic Base server address:Ange Artic Base-serveradress:
-
+ %1 has been installed successfully.%1 har installerats.
-
+ Unable to open FileKunde inte öppna filen
-
+ Could not open %1Kunde inte öppna %1
-
+ Installation abortedInstallationen avbröts
-
+ The installation of %1 was aborted. Please see the log for more detailsInstallationen av %1 avbröts. Se loggen för mer information
-
+ Invalid FileOgiltig fil
-
+ %1 is not a valid CIA%1 är inte en giltig CIA
-
+ CIA EncryptedCIA-krypterad
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>Din CIA-fil är krypterad.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Kolla vår blogg för mer info</a>
-
+ Unable to find FileDet går inte att hitta filen
-
+ Could not find %1Kunde inte hitta %1
-
-
-
- Error compressing file
- Fel vid komprimering av fil
+
+
+
+
+ Z3DS Compression
+ Z3DS-komprimering
-
- File compress operation failed, check log for details.
- Komprimeringsåtgärden för filen misslyckades. Kontrollera loggen för detaljer.
+
+ Failed to compress some files, check log for details.
+ Misslyckades med att komprimera några filer. Kontrollera loggen.
-
-
-
- Error decompressing file
- Fel vid avkomprimering av fil
+
+ Failed to decompress some files, check log for details.
+ Misslyckades med att packa upp några filer. Kontrollera loggen.
-
- File decompress operation failed, check log for details.
- Dekomprimeringsåtgärden för filen misslyckades. Kontrollera loggen för detaljer.
+
+ All files have been compressed successfully.
+ Alla filer har komprimerats utan problem.
-
+
+ All files have been decompressed successfully.
+ Alla filer har packats upp utan problem.
+
+
+ Uninstalling '%1'...Avinstallation av "%1"...
-
+ Failed to uninstall '%1'.Misslyckades med att avinstallera "%1".
-
+ Successfully uninstalled '%1'.Avinstallationen av "%1" har lyckats.
-
+ File not foundFilen hittades inte
-
+ File "%1" not foundFilen "%1" hittades inte
-
+ SavestatesSparade tillstånd
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4571,86 +4598,86 @@ Use at your own risk!
Använd på egen risk!
-
-
-
+
+
+ Error opening amiibo data fileFel vid öppning av amiibo datafil
-
+ A tag is already in use.En tagg är redan i bruk.
-
+ Application is not looking for amiibos.Applikationen letar inte efter amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo-fil (%1);; Alla filer (*.*)
-
+ Load AmiiboLäs in Amiibo
-
+ Unable to open amiibo file "%1" for reading.Det gick inte att öppna amiibo-filen "%1" för läsning.
-
+ Record MovieSpela in film
-
+ Movie recording cancelled.Filminspelning avbruten.
-
-
+
+ Movie SavedFilmen sparades
-
-
+
+ The movie is successfully saved.Filmen sparades.
-
+ Application will unpauseApplikationen kommer att återupptas
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?Applikationen kommer att återupptas och nästa bildruta kommer att fångas. Är det här okej?
-
+ Invalid Screenshot DirectoryOgiltig katalog för skärmbilder
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.Det går inte att skapa angiven skärmbildskatalog. Sökvägen för skärmbilder återställs till sitt standardvärde.
-
+ Could not load video dumperKunde inte läsa in videodumpern
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4663,275 +4690,265 @@ För att installera FFmpeg till Azahar, tryck på Öppna och välj din FFmpeg-ka
Om du vill visa en guide om hur du installerar FFmpeg trycker du på Hjälp.
-
- Load 3DS ROM File
- Läs in 3DS ROM-fil
+
+ Load 3DS ROM Files
+ Läs in 3DS ROM-filer
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
- 3DS ROM-filer (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
+ 3DS ROM-filer (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
- Den valda filen är inte i ett kompatibelt 3DS ROM-format. Försäkra dig om att du har valt rätt fil och att den inte är krypterad.
-
-
-
- The selected file is already compressed.
- Den valda filen är redan komprimerad.
-
-
-
+ 3DS Compressed ROM File (*.%1)Komprimerad 3DS ROM-fil (*.%1)
-
+ Save 3DS Compressed ROM FileSpara komprimerad 3DS ROM-fil
-
- Load 3DS Compressed ROM File
- Läs in komprimerad 3DS ROM-fil
+
+ Select Output 3DS Compressed ROM Folder
+ Välj utdatamapp för 3DS-komprimerad ROM
-
+
+ Load 3DS Compressed ROM Files
+ Läs in 3DS-komprimerade ROM-filer
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)Komprimerade 3DS ROM-filer (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
- Den valda filen är inte i ett kompatibelt komprimerat 3DS ROM-format. Försäkra dig om att du har valt rätt fil.
-
-
-
- The selected file is already decompressed.
- Den valda filen är redan dekomprimerad.
-
-
-
+ 3DS ROM File (*.%1)3DS ROM-fil (*.%1)
-
+ Save 3DS ROM FileSpara 3DS ROM-fil
-
+
+ Select Output 3DS ROM Folder
+ Välj utdatamapp för 3DS ROM
+
+
+ Select FFmpeg DirectoryVälj FFmpeg-katalog
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.Den angivna FFmpeg-katalogen saknar %1. Kontrollera att rätt katalog har valts.
-
+ FFmpeg has been sucessfully installed.FFmpeg har installerats.
-
+ Installation of FFmpeg failed. Check the log file for details.Installationen av FFmpeg misslyckades. Kontrollera loggfilen för mer information.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.Det gick inte att starta videodumpningen.<br>Kontrollera att videokodaren är korrekt konfigurerad.<br>Se loggen för mer information.
-
+ Recording %1Spelar in %1
-
+ Playing %1 / %2Spelar %1 / %2
-
+ Movie FinishedFilmen är färdig
-
+ (Accessing SharedExtData)(Åtkomst till SharedExtData)
-
+ (Accessing SystemSaveData)(Åtkomst till SystemSaveData)
-
+ (Accessing BossExtData)(Åtkomst till BossExtData)
-
+ (Accessing ExtData)(Åtkomst till ExtData)
-
+ (Accessing SaveData)(Åtkomst till SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3Artic-trafik: %1 %2%3
-
+ Speed: %1%Hastighet: %1%
-
+ Speed: %1% / %2%Hastighet: %1% / %2%
-
+ App: %1 FPSApp: %1 bilder/s
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)Bildruta: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msBildruta: %1 ms
-
+ VOLUME: MUTEVOLYM: TYST
-
+ VOLUME: %1%Volume percentage (e.g. 50%)VOLYM: %1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.%1 saknas. <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>Dumpa dina systemarkiv</a>.<br/>Fortsatt emulering kan resultera i krascher och buggar.
-
+ A system archiveEtt systemarkiv
-
+ System Archive Not FoundSystemarkiv hittades inte
-
+ System Archive MissingSystemarkiv saknas
-
+ Save/load ErrorFel vid spara/läs in
-
+ Fatal ErrorÖdesdigert fel
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.Ett ödesdigert fel inträffade. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Kontrollera loggen</a> för detaljer.<br/>Fortsatt emulering kan resultera i krascher och buggar.
-
+ Fatal Error encounteredAllvarligt fel uppstod
-
+ ContinueFortsätt
-
+ Quit ApplicationAvsluta applikation
-
+ OKOk
-
+ Would you like to exit now?Vill du avsluta nu?
-
+ The application is still running. Would you like to stop emulation?Applikationen körs fortfarande. Vill du stoppa emuleringen?
-
+ Playback CompletedUppspelningen är färdig
-
+ Movie playback completed.Uppspelning av film slutförd.
-
+ Update AvailableUppdatering tillgänglig
-
+ Update %1 for Azahar is available.
Would you like to download it?Uppdatering %1 för Azahar finns tillgänglig.
Vill du hämta ner den?
-
+ Primary WindowPrimärt fönster
-
+ Secondary WindowSekundärt fönster
@@ -5037,175 +5054,190 @@ Vill du hämta ner den?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>VIKTIGT: Krypterade filer och .3ds-filer stöds inte längre. Dekryptering och/eller namnändring till .cci kan vara nödvändigt. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Läs mer om hur du gör.
-
+ Don't show againVisa inte igen
-
-
+
+ CompatibilityKompatibilitet
-
-
+
+ RegionRegion
-
-
+
+ File typeFiltyp
-
-
+
+ SizeStorlek
-
-
+
+ Play timeSpeltid
-
+ FavoriteFavorit
-
+
+ Eject Cartridge
+ Mata ut cartridge
+
+
+
+ Insert Cartridge
+ Mata in cartridge
+
+
+ OpenÖppna
-
+ Application LocationProgramplats
-
+ Save Data LocationPlats för sparat data
-
+ Extra Data LocationPlats för extradata
-
+ Update Data LocationPlats för uppdateringsdata
-
+ DLC Data LocationPlats för DLC-data
-
+ Texture Dump LocationPlats för texturdumpar
-
+ Custom Texture LocationPlats för anpassade texturer
-
+ Mods LocationPlats för mods
-
+ Dump RomFSDumpa RomFS
-
+ Disk Shader CacheDisk shadercache
-
+ Open Shader Cache LocationÖppna plats för shadercache
-
+ Delete OpenGL Shader CacheTa bort OpenGL-shadercache
-
+ UninstallAvinstallera
-
+ EverythingAllting
-
+ ApplicationApplikation
-
+ UpdateUppdatering
-
+ DLCDLC
-
+ Remove Play Time DataTa bort data för speltid
-
+ Create ShortcutSkapa genväg
-
+ Add to DesktopLägg till på skrivbordet
-
+ Add to Applications MenuLägg till i programmenyn
-
+
+ Stress Test: App Launch
+ Stresstest: Appstart
+
+
+ PropertiesEgenskaper
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5214,64 +5246,64 @@ This will delete the application if installed, as well as any installed updates
Detta kommer att radera programmet om det är installerat, samt alla installerade uppdateringar eller DLC.
-
-
+
+ %1 (Update)%1 (Uppdatering)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?Är du säker att du vill avinstallera "%1"?
-
+ Are you sure you want to uninstall the update for '%1'?Är du säker på att du vill avinstallera uppdateringen för "%1"?
-
+ Are you sure you want to uninstall all DLC for '%1'?Är du säker på att du vill avinstallera alla DLC för "%1"?
-
+ Scan SubfoldersSök igenom undermappar
-
+ Remove Application DirectoryTa bort applikationskatalog
-
+ Move UpFlytta upp
-
+ Move DownFlytta ner
-
+ Open Directory LocationÖppna katalogplats
-
+ ClearTöm
-
+ NameNamn
@@ -5279,82 +5311,82 @@ Detta kommer att radera programmet om det är installerat, samt alla installerad
GameListItemCompat
-
+ PerfectPerfekt
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.Appen fungerar felfritt utan ljud- eller grafiska problem, all testad funktionalitet fungerar som avsett utan
några temporära lösningar behövs.
-
+ GreatBra
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.Appen fungerar med mindre grafiska eller ljudmässiga problem och är spelbar från början till slut.
Kan kräva vissa temporära lösningar.
-
+ OkayOkej
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.Appen fungerar med större grafiska eller ljudmässiga problem, men appen är spelbar från början
till slut med temporära lösningar.
-
+ BadDåligt
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.Appen fungerar, men med stora grafiska eller ljudmässiga problem. Det går inte att göra framsteg inom vissa
områden på grund av problem även med temporära lösningar.
-
+ Intro/MenuIntro/Meny
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.Appen är helt ospelbar på grund av stora grafiska eller ljudmässiga fel. Det går inte att ta sig förbi
startskärmen.
-
+ Won't BootStartar inte
-
+ The app crashes when attempting to startup.Appen kraschar när den försöker starta upp.
-
+ Not TestedInte testat
-
+ The app has not yet been tested.Appen har ännu inte testats.
@@ -5362,7 +5394,7 @@ startskärmen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listDubbelklicka för att lägga till en ny mapp i applikationslistan
@@ -5370,27 +5402,27 @@ startskärmen.
GameListSearchField
-
+ ofav
-
+ resultresultat
-
+ resultsresultat
-
+ Filter:Filtrera:
-
+ Enter pattern to filterAnge mönster att filtrera
@@ -5662,7 +5694,7 @@ startskärmen.
Offset
- Offset
+ Förskjutning
@@ -5718,87 +5750,87 @@ startskärmen.
Cykelindex:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Adressregister: %1, %2
-
+ Compare Result: %1, %2
Jämför resultat: %1, %2
-
+ Static Condition: %1
Statiskt villkor: %1
-
+ Dynamic Conditions: %1, %2
Dynamiska villkor: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Loop-parametrar: %1 (upprepningar), %2 (initiering), %3 (ökning), %4
-
+ Instruction offset: 0x%1Instruktionsoffset: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (sista instruktionen)
@@ -6099,32 +6131,32 @@ Felsökningsmeddelande:
Lösenord:
-
+ Room NameRumsnamn
-
+ Preferred ApplicationFöredragen applikation
-
+ HostVärd
-
+ PlayersSpelare
-
+ RefreshingUppdaterar
-
+ Refresh ListUppdatera lista
@@ -6194,7 +6226,7 @@ Felsökningsmeddelande:
Multiplayer
- Flerspelare
+ Flera spelare
@@ -6294,7 +6326,7 @@ Felsökningsmeddelande:
FAQ
- FAQ
+ Frågor och svar
@@ -7126,32 +7158,32 @@ De kan ha lämnat rummet.
%1 (0x%2)
-
+ Unsupported encrypted applicationKrypterad applikation som inte stöds
-
+ Invalid regionOgiltig region
-
+ Installed TitlesInstallerade titlar
-
+ System TitlesSystemtitlar
-
+ Add New Application DirectoryLägg till ny applikationskatalog
-
+ FavoritesFavoriter
diff --git a/dist/languages/tr_TR.ts b/dist/languages/tr_TR.ts
index 4cef77759..91d0f42b8 100644
--- a/dist/languages/tr_TR.ts
+++ b/dist/languages/tr_TR.ts
@@ -16,7 +16,7 @@
Value
- Value
+ Değer
@@ -29,7 +29,7 @@
<html><head/><body><p><img src=":/icons/default/256x256/azahar.png"/></p></body></html>
-
+ <html><head/><body><p><img src=":/icons/default/256x256/azahar.png"/></p></body></html>
@@ -298,7 +298,7 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
- Emulation:
+ EmulationEmülasyon
@@ -403,6 +403,7 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
+ CameraKamera
@@ -414,8 +415,8 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
- Camera to configure:
- Yapılandırılacak kamera:
+ Camera to Configure
+ Yapılandırılacak Kamera
@@ -435,8 +436,8 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
- Camera mode:
- Kamera modu:
+ Camera mode
+ Kamera modu
@@ -456,8 +457,8 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
- Camera position:
- Kamera konumu:
+ Camera position
+ Kamera konumu
@@ -482,8 +483,8 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
- Camera Image Source:
- Kamera Görüntü Kaynağı:
+ Camera Image Source
+
@@ -502,8 +503,8 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
- File:
- Dosya:
+ File
+ Dosya
@@ -516,11 +517,6 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
Select the system camera to useKullanılacak sistem kamerasını seçin
-
-
- Camera:
- Kamera:
- <Default>
@@ -534,8 +530,8 @@ Bu onun hem forum kullanıcı adını hemde IP adresini yasaklar.
- Flip:
- Çevir:
+ Flip
+ Çevir
@@ -727,7 +723,7 @@ Hataya aldırmayıp devam etmek ister misiniz?
Show log output in console
-
+ Konsolda günlük çıktısını göster
@@ -1024,7 +1020,7 @@ Hataya aldırmayıp devam etmek ister misiniz?
Enable Linear Filtering
- Doğrusal Filtrelemeyi Etkinleştir
+
@@ -1088,8 +1084,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Reverse Side by Side
- Ters Yan Yana
+ Side by Side Full Width
+
@@ -1139,7 +1135,7 @@ Hataya aldırmayıp devam etmek ister misiniz?
Disable Right Eye Rendering
- Sağ Göz İşlemesini Devre Dışı Bırak
+
@@ -1147,49 +1143,54 @@ Hataya aldırmayıp devam etmek ister misiniz?
-
+
+ Swap Eyes
+
+
+
+ Utility
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
- Özel Dokuları Kullan
+
+ Use custom textures
+ Özel dokular kullan
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
+
+ Dump textures
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
- Özel Dokuları Önceden Yükle
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
- Asenkron Özel Doku Yükleme
+
+ Async custom texture loading
+
@@ -1246,13 +1247,13 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Set emulation speed:
- Emülasyon hızını ayarla:
+ Set emulation speed
+ Emülasyon hızını ayarla
- Emulation Speed:
- Emülasyon Hızı:
+ Emulation Speed
+ Emülasyon Hızı
@@ -1363,12 +1364,12 @@ Hataya aldırmayıp devam etmek ister misiniz?
- SPIR-V Shader Generation
- SPIR-V Gölgelendirici Oluşturma
+ SPIR-V shader generation
+ SPIR-V gölgelendirici oluşturma
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1388,8 +1389,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Enable Hardware Shader
- Donanımsal Shader'ı Etkinleştir
+ Enable hardware shader
+
@@ -1398,8 +1399,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Accurate Multiplication
- İsabetli Çoğaltma
+ Accurate multiplication
+
@@ -1408,8 +1409,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Enable Shader JIT
- Shader JIT'i etkinleştir
+ Enable shader JIT
+
@@ -1418,8 +1419,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Enable Async Shader Compilation
- Asenkron Gölgeleme Derlemesini Etkinleştir
+ Enable async shader compilation
+
@@ -1428,8 +1429,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Enable Async Presentation
- Asenkron Sunumu Etkinleştir
+ Enable async presentation
+ Asenkron sunumu etkinleştir
@@ -1468,7 +1469,7 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Use Disk Shader Cache
+ Use disk shader cache
@@ -1493,7 +1494,7 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1538,7 +1539,7 @@ Hataya aldırmayıp devam etmek ister misiniz?
Toggle Turbo Mode
-
+ Turbo Modu Aç/Kapat
@@ -1982,13 +1983,13 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Swap Screens
- Ekranları Değiştir
+ Swap screens
+ Ekranları değiştir
- Rotate Screens Upright
- Ekranları Yukarı Döndür
+ Rotate screens upright
+
@@ -2104,8 +2105,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- <html><head/><body><p>Alt Ekran Opaklığı % (Sadece OpenGL İçin</p></body></html>)
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+
@@ -2116,7 +2117,7 @@ Hataya aldırmayıp devam etmek ister misiniz?
Stretch
-
+ Gerdir
@@ -2365,7 +2366,7 @@ Hataya aldırmayıp devam etmek ister misiniz?
Filepath
-
+ Dosya yolu
@@ -2452,8 +2453,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Use Virtual SD
- Sanal SD'yi kullan
+ Use virtual SD card
+
@@ -2462,8 +2463,8 @@ Hataya aldırmayıp devam etmek ister misiniz?
- Use Custom Storage
- Özel Depolama Kullan
+ Use custom storage location
+
@@ -2549,8 +2550,8 @@ online features (if installed)
- Region:
- Bölge:
+ Region
+ Bölge
@@ -2558,326 +2559,337 @@ online features (if installed)
Otomatik seç
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameKullanıcı Adı
-
+ BirthdayDoğum Günü
-
+ JanuaryOcak
-
+ FebruaryŞubat
-
+ MarchMart
-
+ AprilNisan
-
+ MayMayıs
-
+ JuneHaziran
-
+ JulyTemmuz
-
+ AugustAğustos
-
+ SeptemberEylül
-
+ OctoberEkim
-
+ NovemberKasım
-
+ DecemberAralık
-
+ LanguageDil
-
+ Note: this can be overridden when region setting is auto-selectNot: Bölge ayarı otomatik seç ise bu geçersiz kılınabilir.
-
+ Japanese (日本語)Japonca (日本語)
-
+ Englishİngilizce
-
+ French (français)Fransızca (français)
-
+ German (Deutsch)Almanca (Deutsch)
-
+ Italian (italiano)İtalyanca (italiano)
-
+ Spanish (español)İspanyolca (español)
-
+ Simplified Chinese (简体中文)Basitleştirilmiş Çince (简体中文)
-
+ Korean (한국어)Korece (한국어)
-
+ Dutch (Nederlands)Felemenkçe (Nederlands)
-
+ Portuguese (português)Portekizce (português)
-
+ Russian (Русский)Rusça (Русский)
-
+ Traditional Chinese (正體中文)Geleneksel Çince (正體中文)
-
+ Sound output modeSes Çıkış Modu
-
+ MonoMono
-
+ StereoStereo
-
+ SurroundSurround
-
+ CountryÜlke
-
+ ClockSaat
-
+ System ClockSistem Saati
-
+ Fixed TimeSabit Zaman
-
+ Startup timeBaşlangıç Zamanı
-
+ yyyy-MM-ddTHH:mm:ssyyyy-AA-ggSS:dd:ss
-
+ Offset time
-
+ daysgünler
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ RandomRastgele
-
+ FixedSabit
-
+ Initial System Ticks Override
-
+ Play CoinsPlay Coin'leri
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>Adımsayar tarafından bildirilen saat başına adım sayısı. 0 ile 65,535 arasında değişir.</p></body></html>
-
+ Pedometer Steps per HourSaat Başına Adımsayar Adımları
-
+ Run System Setup when Home Menu is launchedHome menüsü açıldığında sistem kurulumunu başlat
-
+ Console ID:Konsol ID:
-
-
+
+ RegenerateYeniden Oluştur
-
+ MAC:MAC:
-
- 3GX Plugin Loader:
- 3GX Rklenti Yükleyici:
+
+ 3GX Plugin Loader
+
-
+ Enable 3GX plugin loader3GX Eklenti Yükleyicisini Etkinleştir
-
+ Allow applications to change plugin loader stateUygulamaların eklenti yükleyici durumunu değiştirmesine izin verin
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.Gerçek konsolunuz Azahar'a bağlandı.
-
+ UnlinkBağlantıyı Kes
-
+ OTPOTP
-
-
-
-
+
+
+
+ ChooseSeç
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.Sistem ayarlarına sadece uygulama çalışmıyorken erişilebilir.
@@ -3587,76 +3599,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1Konsol ID: 0x%1
-
-
+
+ MAC: %1MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?Bu, mevcut sanal 3DS konsol kimliğinizi yenisiyle değiştirecektir. Mevcut sanal 3DS konsol kimliğiniz kurtarılamayacaktır. Bu, uygulamalarında beklenmedik etkilere neden olabilir. Eski bir konfigürasyon kaydı kullanıyorsanız bu işlem başarısız olabilir. Devam etmek istiyor musunuz?
-
-
-
+
+
+ WarningUyarı
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?Bu, mevcut MAC adresinizi yenisiyle değiştirecektir. MAC adresini kurulum aracını kullanarak gerçek konsolunuzdan aldıysanız bunu yapmanız önerilmez. Yine de devam etmek ister misiniz?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured regionYapılandırılmış bölge için geçersiz ülke
-
+ Invalid country for console unique data
-
+ Status: LoadedDurum: Yüklendi
-
+ Status: Loaded (Invalid Signature)Durum: Yüklendi (Geçersiz İmza)
-
+ Status: Loaded (Region Changed)Durum: Yüklendi (Bölge Değiştirildi)
-
+ Status: Not FoundDurum: Bulunamadı
-
+ Status: InvalidDurum: Geçersiz
-
+ Status: IO ErrorDurum: IO Hatası
@@ -3771,13 +3783,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Arayüz dili:
+ Interface Language
+
- Theme:
- Tema:
+ Theme
+ Tema
@@ -3786,8 +3798,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- İkon Boyutu:
+ Icon Size
+
@@ -3807,8 +3819,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- Satır 1 Metni:
+ Row 1 Text
+
@@ -3842,27 +3854,27 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- Satır 2 Metni:
+ Row 2 Text
+
- Hide Titles without Icon
- İkonu Olmayan Oyunları Gizle
+ Hide titles without icon
+
- Single Line Mode
- Tek Satır Modu
+ Single line mode
+ Status Bar
-
+ Durum Çubuğu
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3945,12 +3957,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingBağlanılıyor
-
+ ConnectBağlan
@@ -4069,495 +4081,509 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Geçerli emülasyon hızı. 100%'den az veya çok olan değerler emülasyonun bir 3DS'den daha yavaş veya daha hızlı çalıştığını gösterir.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Bir 3DS karesini emüle etmekte geçen zaman, karelimitleme ve v-sync hariç. Tam hız emülasyon için bu en çok 16,67 ms. olmalı.
-
+ MicroProfile (unavailable)MikroProfil (kullanılamaz)
-
+ Clear Recent FilesSon Dosyaları Temizle
-
+ &Continue&Devam et
-
+ &Pause&Duraklat
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar bir uygulama çalıştırıyor
-
-
+
+ Invalid App FormatGeçersiz Uygulama Biçimi
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App EncryptedUygulama Şifreli
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported AppDesteklenmeyen Uygulama
-
+ GBA Virtual Console is not supported by Azahar.GBA Sanal Konsolu Azahar tarafından desteklenmiyor.
-
-
+
+ Artic ServerArtic Sunucusu
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!Uygulama yüklenirken hata oluştu!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usageCIA dosyası kullanılmadan önce yüklenmelidir
-
+ Before using this CIA, you must install it. Do you want to install it now?Bu CIA dosyasını kullanmadan önce yüklemeniz gerekir. Şimdi yüklemek ister misiniz?
-
+ Quick LoadHızlı Yükle
-
+ Quick SaveHızlı Kaydet
-
-
+
+ Slot %1Slot %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1Hızlı Kayıt - %1
-
+ Quick Load - %1Hızlı Yükleme - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 Folder%1 Klasörü Açılırken Hata Oluştu
-
-
+
+ Folder does not exist!Klasör mevcut değil!
-
+ Remove Play Time Data
-
+ Reset play time?Oynama süresi sıfırlansın mı?
-
-
-
-
+
+
+
+ Create ShortcutKısayol Oluştur
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create IconSimge Oluştur
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...Dump ediliyor...
-
-
+
+ Cancelİptal et
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.Temel RomFS dump edilemedi. Detaylar için kütük dosyasına bakınız.
-
+ Error Opening %1%1 Açılırken Hata Oluştu
-
+ Select DirectoryDizin Seç
-
+ PropertiesÖzellikler
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS Çalıştırılabiliri (%1);; Bütün Dosyalar (*.*)
-
+ Load FileDosya Yükle
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ Kurulum tamamlandı.
-
+ (ℹ️) New 3DS setup
-
+ (ℹ️) Yeni 3DS kurulumu
-
+ (✅) New 3DS setup
-
+ (✅) Yeni 3DS kurulumu
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesDosyaları Yükle
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Tüm Dosyalar (*.*)
-
+ Connect to Artic BaseArtic Base'e Bağla
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 başarıyla yüklendi.
-
+ Unable to open FileDosya açılamıyor
-
+ Could not open %1%1 açılamıyor
-
+ Installation abortedYükleme iptal edildi
-
+ The installation of %1 was aborted. Please see the log for more details%1'in yüklemesi iptal edildi. Daha fazla detay için lütfen kütüğe bakınız.
-
+ Invalid FileGeçersiz Dosya
-
+ %1 is not a valid CIA%1 geçerli bir CIA dosyası değil
-
+ CIA EncryptedCİA Şifreli
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find FileDosya bulunamadı
-
+ Could not find %1%1 bulunamadı
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...'%1' siliniyor...
-
+ Failed to uninstall '%1'.'%1' silinemedi.
-
+ Successfully uninstalled '%1'.'%1' başarıyla silindi.
-
+ File not foundDosya bulunamadı
-
+ File "%1" not found"%1" Dosyası bulunamadı
-
+ SavestatesKayıt Durumları
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4566,86 +4592,86 @@ Use at your own risk!
Kullanım riski size aittir!
-
-
-
+
+
+ Error opening amiibo data fileAmiibo veri dosyasını açarken bir hata oldu
-
+ A tag is already in use.Bir etiket zaten kullanılıyor.
-
+ Application is not looking for amiibos.Uygulama amiibo aramıyor.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo Dosyası (%1);; Tüm Dosyalar (*.*)
-
+ Load AmiiboAmiibo Yükle
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieKlip Kaydet
-
+ Movie recording cancelled.Klip kaydı iptal edildi.
-
-
+
+ Movie SavedKlip Kaydedildi
-
-
+
+ The movie is successfully saved.Klip başarıyla kayıt edildi.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot DirectoryGeçersiz Ekran Görüntüsü Dizini
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4654,274 +4680,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg DirectoryFFmpeg Dizini Seç
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.FFmpeg başarıyla yüklendi.
-
+ Installation of FFmpeg failed. Check the log file for details.FFmpeg yüklemesi başarısız oldu. Detaylar için log dosyasına bakınız.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1Ekran Kaydediliyor %1
-
+ Playing %1 / %2Oynatılıyor %1 / %2
-
+ Movie FinishedFilm Bitti
-
+ (Accessing SharedExtData)(SharedExtData'ya Erişiliyor)
-
+ (Accessing SystemSaveData)(SystemSaveData'ya Erişiliyor)
-
+ (Accessing BossExtData)(BossExtData'ya Erişiliyor)
-
+ (Accessing ExtData)(ExtData'ya Erişiliyor)
-
+ (Accessing SaveData)(SaveData'ya Erişiliyor)
-
+ MB/sMB/sn
-
+ KB/sKB/sn
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Hız: %1%
-
+ Speed: %1% / %2%Hız: %1% / %2%
-
+ App: %1 FPSUygulama: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msKare: %1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveBir sistem arşivi
-
+ System Archive Not FoundSistem Arşivi Bulunamadı
-
+ System Archive MissingSistem Arşivi Eksik
-
+ Save/load ErrorKaydetme/yükleme Hatası
-
+ Fatal ErrorÖnemli Hata
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encounteredKritik hatayla karşılaşıldı
-
+ ContinueDevam
-
+ Quit ApplicationUygulamadan Çık
-
+ OKTamam
-
+ Would you like to exit now?Çıkmak istediğinize emin misiniz?
-
+ The application is still running. Would you like to stop emulation?Uygulama hala çalışıyor. Emülasyonu durdurmak ister misiniz?
-
+ Playback CompletedOynatma Tamamlandı
-
+ Movie playback completed.Klip oynatması tamamlandı.
-
+ Update AvailableGüncelleme Mevcut
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary WindowBirincil Pencere
-
+ Secondary Windowİkincil Pencere
@@ -5027,239 +5043,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show againTekrar gösterme
-
-
+
+ CompatibilityUyumluluk
-
-
+
+ RegionBölge
-
-
+
+ File typeDosya türü
-
-
+
+ SizeBoyut
-
-
+
+ Play timeOyun süresi
-
+ FavoriteFavori
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ OpenAç
-
+ Application LocationUygulama Konumu
-
+ Save Data LocationKayıt Verileri Konumu
-
+ Extra Data LocationEkstra Veri Konumu
-
+ Update Data Location
-
+ DLC Data Location
-
+ DLC Veri Konumu
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFSRomFS Dump
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ UninstallSil
-
+ EverythingHer şey
-
+ ApplicationUygulama
-
+ UpdateGüncelle
-
+ DLCDLC
-
+ Remove Play Time Data
-
+ Create ShortcutKısayol Oluştur
-
+ Add to DesktopMasaüstüne Ekle
-
+ Add to Applications MenuUygulamalar Menüsüne Ekle
-
+
+ Stress Test: App Launch
+
+
+
+ PropertiesÖzellikler
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)%1 (Güncelleme)
-
-
+
+ %1 (DLC)%1 (DLC)
-
+ Are you sure you want to uninstall '%1'?'%1'i silmek istediğinizden emin misiniz?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan SubfoldersAlt Dizinleri Tara
-
+ Remove Application DirectoryUygulama Dizinini Kaldır
-
+ Move UpYukarı Taşı
-
+ Move DownAşağı Taşı
-
+ Open Directory LocationDizinin Bulunduğu Yeri Aç
-
+ ClearTemizle
-
+ Nameİsim
@@ -5267,77 +5298,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectMükemmel
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatÇok İyi
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayYeterli
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadKötü
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuGiriş/Menü
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootAçılmıyor
-
+ The app crashes when attempting to startup.
-
+ Not TestedTest Edilmedi
-
+ The app has not yet been tested.Bu Uygulama henüz test edilmedi.
@@ -5345,7 +5376,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application listUygulama listesine yeni bir klasör eklemek için çift tıklayın
@@ -5353,27 +5384,27 @@ Screen.
GameListSearchField
-
+ of'nun
-
+ resultsonuç
-
+ resultssonuçlar
-
+ Filter:Filtre:
-
+ Enter pattern to filterFiltrelenecek düzeni girin
@@ -5701,87 +5732,87 @@ Screen.
Cycle Index:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Address Registers: %1, %2
-
+ Compare Result: %1, %2
Compare Result: %1, %2
-
+ Static Condition: %1
Static Condition: %1
-
+ Dynamic Conditions: %1, %2
Dynamic Conditions: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
-
+ Instruction offset: 0x%1Instruction offset: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction) (last instruction)
@@ -6080,32 +6111,32 @@ Debug Message:
Şifre:
-
+ Room NameOda İsmi
-
+ Preferred ApplicationTercih Edilen Uygulama
-
+ HostSunucu
-
+ PlayersOyuncular
-
+ RefreshingYenileniyor
-
+ Refresh ListListeyi Yenile
@@ -6295,7 +6326,7 @@ Debug Message:
Quick Save
- Hızlı Kaydet
+ Hızlı Kaydet
@@ -6305,7 +6336,7 @@ Debug Message:
Quick Load
- Hızlı Yükle
+ Hızlı Yükle
@@ -6340,7 +6371,7 @@ Debug Message:
Play...
-
+ Oyna...
@@ -6350,12 +6381,12 @@ Debug Message:
Save without Closing
-
+ Kapatmadan KaydetRead-Only Mode
-
+ Salt Okunur Mod
@@ -6375,7 +6406,7 @@ Debug Message:
Compress ROM File...
-
+ ROM Dosyası Sıkıştır...
@@ -6385,7 +6416,7 @@ Debug Message:
Browse Public Rooms
-
+ Herkese Açık Odalara Gözat
@@ -6684,7 +6715,7 @@ Debug Message:
(>1 day)
-
+ (>1 gün)
@@ -6926,7 +6957,7 @@ Odayı terk etmiş olabilirler.
unknown
-
+ bilinmeyen
@@ -7081,7 +7112,7 @@ Odayı terk etmiş olabilirler.
auto
-
+ otomatik
@@ -7105,32 +7136,32 @@ Odayı terk etmiş olabilirler.
-
+ Unsupported encrypted applicationDesteklenmeyen şifreli uygulama
-
+ Invalid regionGeçersiz Bölge
-
+ Installed TitlesYüklü Başlıklar
-
+ System TitlesSistem Başlıkları
-
+ Add New Application Directory
-
+ FavoritesFavoriler
diff --git a/dist/languages/vi_VN.ts b/dist/languages/vi_VN.ts
index f4dc682c6..6a4cef100 100644
--- a/dist/languages/vi_VN.ts
+++ b/dist/languages/vi_VN.ts
@@ -121,7 +121,7 @@ p, li { white-space: pre-wrap; }
Cancel
- Bỏ qua
+ Hủy bỏ
@@ -179,12 +179,12 @@ p, li { white-space: pre-wrap; }
%1 has been kicked
- %1 đã bị kick.
+ %1 đã bị đuổi%1 has been banned
- %1 đã bị cấm.
+ %1 đã bị cấm
@@ -210,7 +210,7 @@ p, li { white-space: pre-wrap; }
Kick
- Kick
+ Đuổi
@@ -220,12 +220,12 @@ p, li { white-space: pre-wrap; }
Kick Player
- Kick người chơi
+ Đuổi người chơiAre you sure you would like to <b>kick</b> %1?
- Bạn có chắc muốn <b>kick</b> %1?
+ Bạn có chắc muốn <b>đuổi</b> %1?
@@ -237,7 +237,7 @@ p, li { white-space: pre-wrap; }
Are you sure you would like to <b>kick and ban</b> %1?
This would ban both their forum username and their IP address.
- Bạn có chắc muốn <b>kick và chặn</b> %1?
+ Bạn có chắc muốn <b>đuổi và cấm</b> %1?
Điều này sẽ chặn cả tài khoản diễn đàn và địa chỉ IP của họ.
@@ -292,8 +292,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- Giả lập:
+ Emulation
+ Giả lập
@@ -397,6 +397,7 @@ This would ban both their forum username and their IP address.
+ CameraMáy ảnh
@@ -408,8 +409,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- Cấu hình máy ảnh:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- Chế độ máy ảnh:
+ Camera mode
+
@@ -450,8 +451,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- Vị trí máy ảnh:
+ Camera position
+
@@ -476,8 +477,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- Nguồn máy ảnh:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ This would ban both their forum username and their IP address.
- File:
- Tệp tin:
+ File
+
@@ -510,11 +511,6 @@ This would ban both their forum username and their IP address.
Select the system camera to useChọn đầu ra camera để sử dụng
-
-
- Camera:
- Máy ảnh
- <Default>
@@ -528,8 +524,8 @@ This would ban both their forum username and their IP address.
- Flip:
- Lật ảnh:
+ Flip
+
@@ -1081,7 +1077,7 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1140,48 +1136,53 @@ Would you like to ignore the error and continue?
-
+
+ Swap Eyes
+
+
+
+ Utility
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html>
-
- Use Custom Textures
+
+ Use custom textures
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html>
-
- Dump Textures
- Trích xuất textures
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom textures
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading
@@ -1239,12 +1240,12 @@ Would you like to ignore the error and continue?
- Set emulation speed:
+ Set emulation speed
- Emulation Speed:
+ Emulation Speed
@@ -1356,12 +1357,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1381,8 +1382,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- Bật Hardware Shader
+ Enable hardware shader
+
@@ -1391,8 +1392,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- Accurate Multiplication
+ Accurate multiplication
+
@@ -1401,8 +1402,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- Bật xử lý đổ bóng bằng JIT
+ Enable shader JIT
+
@@ -1411,7 +1412,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1421,7 +1422,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentation
@@ -1461,7 +1462,7 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
+ Use disk shader cache
@@ -1486,7 +1487,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1975,12 +1976,12 @@ Would you like to ignore the error and continue?
- Swap Screens
- Đổi vị trí màn hình
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2097,7 +2098,7 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2445,7 +2446,7 @@ Would you like to ignore the error and continue?
- Use Virtual SD
+ Use virtual SD card
@@ -2455,7 +2456,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage location
@@ -2542,8 +2543,8 @@ online features (if installed)
- Region:
-
+ Region
+ Khu vực
@@ -2551,326 +2552,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ UsernameTên người dùng
-
+ BirthdaySinh nhật
-
+ JanuaryTháng 1
-
+ FebruaryTháng 2
-
+ MarchTháng 3
-
+ AprilTháng 4
-
+ MayTháng 5
-
+ JuneTháng 6
-
+ JulyTháng 7
-
+ AugustTháng 8
-
+ SeptemberTháng 9
-
+ OctoberTháng 10
-
+ NovemberTháng 11
-
+ DecemberTháng 12
-
+ LanguageNgôn ngữ
-
+ Note: this can be overridden when region setting is auto-selectLưu ý: tùy chọn này có thể bị thay thế khi thiết lập vùng đặt ở chế độ tự động
-
+ Japanese (日本語)Tiếng Nhật (日本語)
-
+ EnglishTiếng Anh (English)
-
+ French (français)Tiếng Pháp (Français)
-
+ German (Deutsch)Tiếng Đức (Deutsch)
-
+ Italian (italiano)Tiếng Ý (Italiano)
-
+ Spanish (español)Tiếng Tây Ban Nha (Español)
-
+ Simplified Chinese (简体中文)Tiếng Hoa (Giản Thể)
-
+ Korean (한국어)Tiếng Hàn (한국어)
-
+ Dutch (Nederlands)Tiếng Hà Lan (Dutch)
-
+ Portuguese (português)Tiếng Bồ Đào Nha (Português)
-
+ Russian (Русский)Tiếng Nga (Pу́сский язы́к)
-
+ Traditional Chinese (正體中文)Tiếng Hoa (Phồn Thể)
-
+ Sound output modeChế độ đầu ra âm thanh
-
+ MonoĐơn âm
-
+ StereoĐa âm
-
+ SurroundÂm thanh vòm
-
+ CountryQuốc gia
-
+ ClockĐồng hồ
-
+ System ClockĐồng hồ hệ thống
-
+ Fixed TimeGiờ cố định
-
+ Startup timeGiờ bắt đầu
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:ID Máy:
-
-
+
+ RegenerateTạo mới
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3580,76 +3592,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1Tên Máy: 0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ WarningCảnh báo
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3764,13 +3776,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- Ngôn ngữ giao diện:
+ Interface Language
+
- Theme:
- Giao diện:
+ Theme
+
@@ -3779,8 +3791,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- Kích cỡ Icon:
+ Icon Size
+
@@ -3800,8 +3812,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- Nội dung dòng 1:
+ Row 1 Text
+
@@ -3835,18 +3847,18 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- Nội dung dòng 2:
+ Row 2 Text
+
- Hide Titles without Icon
- Ẩn tiêu đề giữ Icon
+ Hide titles without icon
+
- Single Line Mode
- Chế độ đơn dòng
+ Single line mode
+
@@ -3855,7 +3867,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3938,12 +3950,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ ConnectingĐang kết nối
-
+ ConnectKết nối
@@ -4062,582 +4074,596 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.Tốc độ giả lập hiện tại. Giá trị cao hoặc thấp hơn 100% thể hiện giả lập đang chạy nhanh hay chậm hơn một chiếc máy 3DS thực sự.
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.Thời gian để giả lập một khung hình của máy 3DS, không gồm giới hạn khung hay v-sync Một giả lập tốt nhất sẽ tiệm cận 16.67 ms.
-
+ MicroProfile (unavailable)
-
+ Clear Recent FilesXóa danh sách tệp gần đây
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usageCIA cần được cài đặt trước khi dùng
-
+ Before using this CIA, you must install it. Do you want to install it now?Trước khi sử dụng CIA, bạn cần cài đặt nó. Bạn có muốn cài đặt nó ngay không?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 FolderLỗi khi mở thư mục %1
-
-
+
+ Folder does not exist!Thư mục này không tồn tại!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...Đang trích xuất...
-
-
+
+ Cancel
- Bỏ qua
+ Hủy bỏ
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.Không thể trích xuất base RomFS.
Kiểm tra log để biết thêm chi tiết.
-
+ Error Opening %1Lỗi khi mở %1
-
+ Select DirectoryChọn thư mục
-
+ Properties
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.
-
+ Load FileMở tệp tin
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load FilesMở các tệp tin
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)Tất cả tệp tin (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.%1 đã được cài đặt thành công.
-
+ Unable to open FileKhông thể mở tệp tin
-
+ Could not open %1Không thể mở %1
-
+ Installation abortedViệc cài đặt đã bị hoãn
-
+ The installation of %1 was aborted. Please see the log for more detailsViệc cài đặt %1 đã bị hoãn. Vui lòng xem bản ghi nhật ký để biết thêm chi tiết.
-
+ Invalid FileTệp tin không hợp lệ
-
+ %1 is not a valid CIA%1 không phải là một tệp CIA hợp lệ
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.
-
+ File not foundKhông tìm thấy tệp
-
+ File "%1" not foundKhông tìm thấy tệp tin "%1"
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Tệp Amiibo (%1);; Tất cả tệp (*.*)
-
+ Load AmiiboTải Amiibo
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record MovieQuay phim
-
+ Movie recording cancelled.Ghi hình đã bị hủy.
-
-
+
+ Movie SavedĐã lưu phim.
-
-
+
+ The movie is successfully saved.Phim đã được lưu lại thành công.
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4646,274 +4672,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%Tốc độ: %1%
-
+ Speed: %1% / %2%Tốc độ: %1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 msKhung: %1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archiveMột tập tin hệ thống
-
+ System Archive Not FoundKhông tìm thấy tập tin hệ thống
-
+ System Archive MissingThiếu tập tin hệ thống
-
+ Save/load Error
-
+ Fatal ErrorLỗi nghiêm trọng
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encountered
-
+ ContinueTiếp tục
-
+ Quit Application
-
+ OKOK
-
+ Would you like to exit now?Bạn có muốn thoát ngay bây giờ không?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback CompletedPhát lại hoàn tất
-
+ Movie playback completed.Phát lại phim hoàn tất.
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5019,239 +5035,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ CompatibilityTính tương thích
-
-
+
+ RegionKhu vực
-
-
+
+ File typeLoại tệp tin
-
-
+
+ SizeKích thước
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFSTrích xuất RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ Properties
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan SubfoldersQuét thư mục con
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory LocationMở thư mục
-
+ Clear
-
+ NameTên
@@ -5259,77 +5290,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ PerfectHoàn mỹ
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ GreatTuyệt vời
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ OkayỔn
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ BadKém
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/MenuIntro/Menu
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't BootKhông mở được
-
+ The app crashes when attempting to startup.
-
+ Not TestedChưa thử
-
+ The app has not yet been tested.
@@ -5337,7 +5368,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5345,27 +5376,27 @@ Screen.
GameListSearchField
-
+ ofcủa
-
+ resultkết quả
-
+ resultskết quả
-
+ Filter:Bộ lọc:
-
+ Enter pattern to filterNhập mẫu ký tự để lọc
@@ -5693,87 +5724,87 @@ Screen.
Cycle Index:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
Địa chỉ đăng ký: %1, %2
-
+ Compare Result: %1, %2
So sánh kết quả: %1, %2
-
+ Static Condition: %1
Điều kiện cứng: %1
-
+ Dynamic Conditions: %1, %2
Điều kiện biến: %1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
Các tham số lặp: %1 (số lần lặp), %2 (biến khởi tạo), %3 (độ tăng), %4
-
+ Instruction offset: 0x%1Instruction offset: 0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(chỉ thị cuối cùng)
@@ -6072,32 +6103,32 @@ Debug Message:
Mật khẩu phòng:
-
+ Room NameTên phòng
-
+ Preferred Application
-
+ HostHost
-
+ PlayersSố người
-
+ RefreshingĐang tải
-
+ Refresh ListLàm mới
@@ -6598,7 +6629,7 @@ Debug Message:
File:
- Tệp tin:
+
@@ -6690,7 +6721,7 @@ Debug Message:
File:
- Tệp tin:
+
@@ -7096,32 +7127,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid regionVùng không hợp lệ
-
+ Installed TitlesCác tiêu đề đã cài
-
+ System TitlesCác tiêu đề hệ thống
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/languages/zh_CN.ts b/dist/languages/zh_CN.ts
index 1051c8ca1..d2a6067cb 100644
--- a/dist/languages/zh_CN.ts
+++ b/dist/languages/zh_CN.ts
@@ -298,8 +298,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- 模拟:
+ Emulation
+ 模拟
@@ -403,6 +403,7 @@ This would ban both their forum username and their IP address.
+ Camera摄像头
@@ -414,8 +415,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- 要配置的摄像头:
+ Camera to Configure
+ 要配置的摄像头
@@ -435,8 +436,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- 摄像头模式:
+ Camera mode
+ 摄像头模式
@@ -456,8 +457,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- 摄像头位置:
+ Camera position
+ 摄像头位置
@@ -482,8 +483,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- 摄像头图像来源:
+ Camera Image Source
+ 摄像头图像来源
@@ -502,8 +503,8 @@ This would ban both their forum username and their IP address.
- File:
- 图像文件:
+ File
+ 文件
@@ -516,11 +517,6 @@ This would ban both their forum username and their IP address.
Select the system camera to use选择要使用的系统摄像头
-
-
- Camera:
- 摄像头:
- <Default>
@@ -534,8 +530,8 @@ This would ban both their forum username and their IP address.
- Flip:
- 翻转:
+ Flip
+ 翻转
@@ -1024,7 +1020,7 @@ Would you like to ignore the error and continue?
Enable Linear Filtering
- 启用线性过滤
+
@@ -1088,8 +1084,8 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
- 反向并排
+ Side by Side Full Width
+
@@ -1139,7 +1135,7 @@ Would you like to ignore the error and continue?
Disable Right Eye Rendering
- 禁用右眼渲染
+
@@ -1147,48 +1143,53 @@ Would you like to ignore the error and continue?
<html><head/><body><p>禁用右眼渲染</p><p>不使用立体模式时禁用右眼图像渲染。在某些应用中可大大提高性能,但在其他应用中可能会导致闪烁。</p></body></html>
-
+
+ Swap Eyes
+
+
+
+ Utility工具
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>使用 PNG 文件进行纹理的替换。</p><p>将加载 load/textures/[Title ID]/ 目录的纹理文件。</p></body></html>
-
- Use Custom Textures
+
+ Use custom textures使用自定义纹理
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>将纹理转储为 PNG 文件。</p><p>转储的文件保存于 dump/textures/[Title ID]/ 目录下。</p></body></html>
-
- Dump Textures
- 转储纹理文件
+
+ Dump textures
+ 转储纹理
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html><html><head/><body><p>启动时将所有的自定义纹理加载到内存中,而不是在应用需要时才进行加载。</p></body></html>
-
- Preload Custom Textures
+
+ Preload custom textures预加载自定义纹理
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>在后台线程中异步加载自定义纹理,以减少加载带来的卡顿</p></body></html>
-
- Async Custom Texture Loading
+
+ Async custom texture loading异步加载自定义纹理
@@ -1246,13 +1247,13 @@ Would you like to ignore the error and continue?
- Set emulation speed:
- 模拟速度:
+ Set emulation speed
+ 设置模拟速度
- Emulation Speed:
- 模拟速度:
+ Emulation Speed
+ 模拟速度
@@ -1363,12 +1364,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
- SPIR-V 着色器
+ SPIR-V shader generation
+ SPIR-V 着色器生成
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer禁用 GLSL -> SPIR-V 优化器
@@ -1388,8 +1389,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- 开启硬件着色器
+ Enable hardware shader
+ 启用硬件着色器
@@ -1398,7 +1399,7 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
+ Accurate multiplication精确乘法运算
@@ -1408,8 +1409,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- 开启着色器 JIT
+ Enable shader JIT
+ 启用着色器 JIT
@@ -1418,7 +1419,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilation启用异步着色器编译
@@ -1428,8 +1429,8 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
- 启用异步着色器提交
+ Enable async presentation
+ 启用异步提交
@@ -1468,7 +1469,7 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
+ Use disk shader cache启用磁盘着色器缓存
@@ -1493,8 +1494,8 @@ Would you like to ignore the error and continue?
- Delay application render thread:
- 延迟应用渲染线程:
+ Delay Application Render Thread
+ 延迟应用渲染线程
@@ -1982,13 +1983,13 @@ Would you like to ignore the error and continue?
- Swap Screens
+ Swap screens交换屏幕
- Rotate Screens Upright
- 顺时针旋转屏幕
+ Rotate screens upright
+ 旋转屏幕为垂直
@@ -2104,8 +2105,8 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
- 下屏幕透明度 %(仅 OpenGL)
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
+ <html><head/><body><p>下屏不透明度 %</p></body></html>
@@ -2452,8 +2453,8 @@ Would you like to ignore the error and continue?
- Use Virtual SD
- 启用虚拟 SD 卡
+ Use virtual SD card
+ 使用虚拟 SD 卡
@@ -2462,8 +2463,8 @@ Would you like to ignore the error and continue?
- Use Custom Storage
- 使用自定义存储目录
+ Use custom storage location
+ 使用自定义存储位置
@@ -2550,8 +2551,8 @@ LLE 模块(如果已安装)
- Region:
- 地区:
+ Region
+ 区域
@@ -2559,326 +2560,337 @@ LLE 模块(如果已安装)
自动选择
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ Username用户名
-
+ Birthday生日
-
+ January一月
-
+ February二月
-
+ March三月
-
+ April四月
-
+ May五月
-
+ June六月
-
+ July七月
-
+ August八月
-
+ September九月
-
+ October十月
-
+ November十一月
-
+ December十二月
-
+ Language语言
-
+ Note: this can be overridden when region setting is auto-select注意:当“地区”设置是“自动选择”时,此设置可能会被覆盖。
-
+ Japanese (日本語)日语(日本語)
-
+ English英语(English)
-
+ French (français)法语(Français)
-
+ German (Deutsch)德语(Deutsch)
-
+ Italian (italiano)意大利语(Italiano)
-
+ Spanish (español)西班牙语(Español)
-
+ Simplified Chinese (简体中文)简体中文
-
+ Korean (한국어)朝鲜语(한국어)
-
+ Dutch (Nederlands)荷兰语(Nederlands)
-
+ Portuguese (português)葡萄牙语(Português)
-
+ Russian (Русский)俄语(Русский)
-
+ Traditional Chinese (正體中文)繁体中文(正體中文)
-
+ Sound output mode声音输出模式
-
+ Mono单声道
-
+ Stereo立体声
-
+ Surround环绕声
-
+ Country国家或地区
-
+ Clock时钟
-
+ System Clock系统时钟
-
+ Fixed Time固定时间
-
+ Startup time启动时间
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time偏移时间
-
+ days天
-
+ HH:mm:ssHH:mm:ss
-
+ Initial System Ticks初始系统定时器
-
+ Random随机
-
+ Fixed固定值
-
+ Initial System Ticks Override覆盖初始系统定时器
-
+ Play Coins游戏币
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html><html><head/><body><p>计步器报告的每小时步数。范围从 0 到 65535。</p></body></html>
-
+ Pedometer Steps per Hour计步器每小时步数
-
+ Run System Setup when Home Menu is launched启动 Home 菜单时运行系统设置
-
+ Console ID:设备 ID:
-
-
+
+ Regenerate重置 ID
-
+ MAC:MAC:
-
- 3GX Plugin Loader:
- 3GX 插件加载器:
+
+ 3GX Plugin Loader
+ 3GX 插件加载器
-
+ Enable 3GX plugin loader启用 3GX 插件加载器
-
+ Allow applications to change plugin loader state允许应用更改插件加载器状态
-
+ Real Console Unique Data实机唯一数据
-
+ Your real console is linked to Azahar.您的真实掌机已关联到 Azahar。
-
+ Unlink解除关联
-
+ OTPOTP
-
-
-
-
+
+
+
+ Choose选择
-
+ SecureInfo_A/BSecureInfo_A/B
-
+ LocalFriendCodeSeed_A/BLocalFriendCodeSeed_A/B
-
+ movable.sedmovable.sed
-
+ System settings are available only when applications is not running.只有当应用不在运行时,系统设置才可用。
@@ -3588,76 +3600,76 @@ LLE 模块(如果已安装)
Sed 文件 (*.sed);;所有文件 (*.*)
-
-
+
+ Console ID: 0x%1设备 ID:0x%1
-
-
+
+ MAC: %1MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?这将使用一个新的虚拟 3DS 掌机 ID 取代您当前的虚拟 3DS 掌机 ID。您当前的虚拟 3DS 掌机 ID 将无法恢复。可能会对应用产生意外影响。如果您使用一个过时的配置存档则可能会失败。是否继续?
-
-
-
+
+
+ Warning警告
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?这将用新 MAC 地址替换您当前的 MAC 地址。如果您使用设置工具从真实掌机获取 MAC 地址,则不建议执行此操作。是否继续?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?此操作将取消您真实掌机与 Azahar 的关联,并产生以下后果:<br><ul><li>您的 OTP、SecureInfo 和 LocalFriendCodeSeed 文件将从 Azahar 中删除。</li><li>您的好友列表将被重置,并且注销 NNID/PNID 帐户。</li><li>通过 Azahar 获得的系统文件和 eshop 数字版应用将变得无法访问,直到再次关联同一掌机(保存的数据不会丢失)。</li></ul><br>是否继续?
-
+ Invalid country for configured region已配置区域的国家/地区无效
-
+ Invalid country for console unique data掌机独有数据的国家/地区无效
-
+ Status: Loaded状态:已载入
-
+ Status: Loaded (Invalid Signature)状态:已载入(无效签名)
-
+ Status: Loaded (Region Changed)状态:已载入(区域已更改)
-
+ Status: Not Found状态:未找到
-
+ Status: Invalid状态:无效
-
+ Status: IO Error状态:IO 错误
@@ -3773,13 +3785,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- 界面语言:
+ Interface Language
+ 界面语言
- Theme:
- 主题:
+ Theme
+ 主题
@@ -3788,8 +3800,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- 图标大小:
+ Icon Size
+ 图标大小
@@ -3809,8 +3821,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- 第 1 行:
+ Row 1 Text
+ 第 1 行
@@ -3844,17 +3856,17 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- 第 2 行:
+ Row 2 Text
+ 第 2 行
- Hide Titles without Icon
+ Hide titles without icon隐藏没有图标的游戏
- Single Line Mode
+ Single line mode单行模式
@@ -3864,7 +3876,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info显示高级帧生成时间信息
@@ -3947,12 +3959,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ Connecting连接中
-
+ Connect连接
@@ -4072,497 +4084,511 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected未检测到可用的 Vulkan 设备
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.Vulkan 初始化失败。<br/>您的 GPU 可能不支持 Vulkan 1.1,或者您没有安装最新的图形驱动程序。
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.当前 Artic 连接速度。数值越高,表示传递载荷越大。
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.当前模拟速度。高于或低于 100% 的值表示模拟正在运行得比实际 3DS 更快或更慢。
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.应用当前显示的每秒帧数。这会因应用和场景而异。
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.在不计算速度限制和垂直同步的情况下,模拟一个 3DS 帧的实际时间。若要进行全速模拟,这个数值不应超过 16.67 毫秒。
-
+ MicroProfile (unavailable)微档案文件(不可用)
-
+ Clear Recent Files清除最近文件
-
+ &Continue继续(&C)
-
+ &Pause暂停(&P)
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleepingAzahar 正在运行应用
-
-
+
+ Invalid App Format无效的应用格式
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.您的应用格式不受支持。<br/>请遵循以下指引重新转储您的<a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>游戏卡带</a>或<a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>已安装的应用</a>。
-
+ App Corrupted应用已损坏
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.您的应用已损坏。<br/>请遵循以下指引重新转储您的<a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>游戏卡带</a>或<a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>已安装的应用</a>。
-
+ App Encrypted应用已加密
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>您的应用已加密。 <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>请查看我们的博客以了解更多信息。</a>
-
+ Unsupported App不支持的应用
-
+ GBA Virtual Console is not supported by Azahar.GBA 虚拟主机不受 Azahar 支持。
-
-
+
+ Artic ServerArtic 服务器
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!加载应用时出错!
-
+ An unknown error occurred. Please see the log for more details.发生了一个未知错误。详情请参阅日志。
-
+ CIA must be installed before usageCIA 文件必须安装后才能使用
-
+ Before using this CIA, you must install it. Do you want to install it now?在使用这个 CIA 文件前,您必须先进行安装。您希望现在就安装它吗?
-
+ Quick Load快速载入
-
+ Quick Save快速保存
-
-
+
+ Slot %1插槽 %1
-
+ %2 %3%2 %3
-
+ Quick Save - %1快速保存 - %1
-
+ Quick Load - %1快速载入 - %1
-
+ Slot %1 - %2 %3插槽 %1 - %2 %3
-
+ Error Opening %1 Folder无法打开 %1 文件夹
-
-
+
+ Folder does not exist!文件夹不存在!
-
+ Remove Play Time Data删除游戏时间数据
-
+ Reset play time?重置游戏时间?
-
-
-
-
+
+
+
+ Create Shortcut创建快捷方式
-
+ Do you want to launch the application in fullscreen?您想以全屏幕运行应用吗?
-
+ Successfully created a shortcut to %1已经在 %1 上创建了快捷方式。
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?这将会为当前的 AppImage 创建一个快捷方式。如果您更新,此快捷方式可能会无效。继续吗?
-
+ Failed to create a shortcut to %1在 %1 上创建快捷方式失败。
-
+ Create Icon创建图标
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.无法创建图标文件。路径“%1”不存在,且无法创建。
-
+ Dumping...转储中...
-
-
+
+ Cancel取消
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ AzaharAzahar
-
+ Could not dump base RomFS.
Refer to the log for details.无法转储 RomFS 。
有关详细信息,请参考日志文件。
-
+ Error Opening %1无法打开 %1
-
+ Select Directory选择目录
-
+ Properties属性
-
+ The application properties could not be loaded.无法加载应用属性。
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS 可执行文件 (%1);;所有文件 (*.*)
-
+ Load File加载文件
-
-
+
+ Set Up System Files设置系统文件
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p><p>Azahar 需要来自真实掌机的独有数据和固件文件才能使用其部分功能。<br>此类文件和数据可通过 <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic 设置工具</a>进行设置<br>注意:<ul><li><b>此操作会将掌机独有数据安装到 Azahar,<br>执行设置过程后请勿共享您的用户或 nand 文件夹!</b></li><li>在执行设置过程时,Azahar 将关联到运行设置工具的掌机。<br>您可以随时从模拟器配置菜单的“系统”选项卡中取消关联掌机。</li><li>设置系统文件后,请勿同时使用 Azahar 和 3DS 掌机联网,<br>因为这可能会导致问题。</li><li>新 3DS 设置需要先进行老 3DS 设置才能运作(建议两种设置模式都执行)。</li><li>无论运行设置工具的掌机型号如何,两种设置模式均可运作。</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:输入 Azahar Artic 设置工具地址:
-
+ <br>Choose setup mode:<br>选择设置模式:
-
+ (ℹ️) Old 3DS setup(ℹ️) 老 3DS 设置
-
-
+
+ Setup is possible.可以进行设置。
-
+ (⚠) New 3DS setup(⚠) 新 3DS 设置
-
+ Old 3DS setup is required first.首先需要设置老 3DS。
-
+ (✅) Old 3DS setup(✅) 老 3DS 设置
-
-
+
+ Setup completed.设置完成。
-
+ (ℹ️) New 3DS setup(ℹ️) 新 3DS 设置
-
+ (✅) New 3DS setup(✅) 新 3DS 设置
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?所选模式的系统文件已设置。
是否要重新安装文件?
-
+ Load Files加载多个文件
-
+ 3DS Installation File (*.cia *.zcia)3DS 安装文件 (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)所有文件 (*.*)
-
+ Connect to Artic Base连接到 Artic Base
-
+ Enter Artic Base server address:输入 Artic Base 服务器地址:
-
+ %1 has been installed successfully.%1 已成功安装。
-
+ Unable to open File无法打开文件
-
+ Could not open %1无法打开 %1
-
+ Installation aborted安装失败
-
+ The installation of %1 was aborted. Please see the log for more details%1 的安装过程失败。请参阅日志以了解细节。
-
+ Invalid File文件无效
-
+ %1 is not a valid CIA%1 不是有效的 CIA 文件
-
+ CIA EncryptedCIA 已加密
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>您的 CIA 文件已加密。 <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>请查看我们的博客以了解更多信息。</a>
-
+ Unable to find File无法找到文件
-
+ Could not find %1找不到 %1
-
-
-
- Error compressing file
- 压缩文件时出错
+
+
+
+
+ Z3DS Compression
+ Z3DS 压缩
-
- File compress operation failed, check log for details.
- 文件压缩操作失败,请检查日志了解详细信息。
+
+ Failed to compress some files, check log for details.
+ 部分文件压缩失败,请查看日志了解详情。
-
-
-
- Error decompressing file
- 解压文件时出错
+
+ Failed to decompress some files, check log for details.
+ 部分文件解压缩失败,请查看日志了解详情。
-
- File decompress operation failed, check log for details.
- 文件解压缩操作失败,请检查日志了解详细信息。
+
+ All files have been compressed successfully.
+ 所有文件已成功压缩。
-
+
+ All files have been decompressed successfully.
+ 所有文件已成功解压缩。
+
+
+ Uninstalling '%1'...正在卸载“%1”...
-
+ Failed to uninstall '%1'.卸载“%1”失败。
-
+ Successfully uninstalled '%1'.“%1”卸载成功。
-
+ File not found找不到文件
-
+ File "%1" not found找不到文件“%1”
-
+ Savestates保存状态
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
@@ -4571,86 +4597,86 @@ Use at your own risk!
您必须自行承担使用风险!
-
-
-
+
+
+ Error opening amiibo data file打开 Amiibo 数据文件时出错
-
+ A tag is already in use.当前已有 Amiibo 标签在使用中。
-
+ Application is not looking for amiibos.应用未在寻找 Amiibo。
-
+ Amiibo File (%1);; All Files (*.*)Amiibo 文件 (%1);;所有文件 (*.*)
-
+ Load Amiibo加载 Amiibo
-
+ Unable to open amiibo file "%1" for reading.无法打开 Amiibo 文件 %1 。
-
+ Record Movie录制影像
-
+ Movie recording cancelled.影像录制已取消。
-
-
+
+ Movie Saved影像已保存
-
-
+
+ The movie is successfully saved.影像已成功保存。
-
+ Application will unpause应用将取消暂停
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?将取消暂停应用,并捕获下一帧。这样可以吗?
-
+ Invalid Screenshot Directory无效的截图保存目录
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.无法创建指定的截图保存目录。截图保存路径将重设为默认值。
-
+ Could not load video dumper无法加载视频转储器
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4663,275 +4689,265 @@ To view a guide on how to install FFmpeg, press Help.
要查看如何安装 FFmpeg 的指南,请按“帮助”。
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files加载 3DS ROM 文件
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
- 3DS ROM 文件 (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
+ 3DS ROM 文件 (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
- 所选文件不是兼容的 3DS ROM 格式。请确保您选择的文件正确且未加密。
-
-
-
- The selected file is already compressed.
- 选定的文件已压缩。
-
-
-
+ 3DS Compressed ROM File (*.%1)3DS 压缩 ROM 文件 (*.%1)
-
+ Save 3DS Compressed ROM File保存 3DS 压缩 ROM 文件
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
+ 选择输出 3DS 压缩 ROM 的文件夹
+
+
+
+ Load 3DS Compressed ROM Files加载 3DS 压缩 ROM 文件
-
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)3DS 压缩 ROM 文件 (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
- 所选文件不是兼容的压缩 3DS ROM 格式。请确保您选择的是正确文件。
-
-
-
- The selected file is already decompressed.
- 选定的文件已解压。
-
-
-
+ 3DS ROM File (*.%1)3DS ROM 文件 (*.%1)
-
+ Save 3DS ROM File保存 3DS ROM 文件
-
+
+ Select Output 3DS ROM Folder
+ 选择输出 3DS ROM 的文件夹
+
+
+ Select FFmpeg Directory选择 FFmpeg 目录
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.选择的 FFmpeg 目录中缺少 %1 。请确保选择了正确的目录。
-
+ FFmpeg has been sucessfully installed.FFmpeg 已成功安装。
-
+ Installation of FFmpeg failed. Check the log file for details.安装 FFmpeg 失败。详情请参阅日志文件。
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.无法开始视频转储。<br>请确保视频编码器配置正确。<br>有关详细信息,请参阅日志。
-
+ Recording %1录制中 %1
-
+ Playing %1 / %2播放中 %1 / %2
-
+ Movie Finished录像播放完毕
-
+ (Accessing SharedExtData)(正在获取 SharedExtData)
-
+ (Accessing SystemSaveData)(正在获取 SystemSaveData)
-
+ (Accessing BossExtData)(正在获取 BossExtData)
-
+ (Accessing ExtData)(正在获取 ExtData)
-
+ (Accessing SaveData)正在获取(SaveData)
-
+ MB/sMB/s
-
+ KB/sKB/s
-
+ Artic Traffic: %1 %2%3Artic 流量:%1 %2%3
-
+ Speed: %1%速度:%1%
-
+ Speed: %1% / %2%速度:%1% / %2%
-
+ App: %1 FPS应用: %1 帧
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)帧: %1 毫秒 (GPU: [CMD: %2 毫秒, SWP: %3 毫秒], IPC: %4 毫秒, SVC: %5 毫秒, Rem: %6 毫秒)
-
+ Frame: %1 ms帧延迟:%1 毫秒
-
+ VOLUME: MUTE音量:静音
-
+ VOLUME: %1%Volume percentage (e.g. 50%)音量:%1%
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.%1 缺失。请 <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>转储您的系统档案</a>。<br/>继续进行模拟可能会导致崩溃和错误。
-
+ A system archive系统档案
-
+ System Archive Not Found未找到系统档案
-
+ System Archive Missing系统档案丢失
-
+ Save/load Error保存/读取出现错误
-
+ Fatal Error致命错误
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.发生了致命错误。请<a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>参阅日志</a>了解详细信息。<br/>继续进行模拟可能会导致崩溃和错误。
-
+ Fatal Error encountered发生致命错误
-
+ Continue继续
-
+ Quit Application退出应用
-
+ OK确定
-
+ Would you like to exit now?您现在要退出么?
-
+ The application is still running. Would you like to stop emulation?应用仍在运行。您想停止模拟吗?
-
+ Playback Completed播放完成
-
+ Movie playback completed.影像播放完成。
-
+ Update Available有可用更新
-
+ Update %1 for Azahar is available.
Would you like to download it?Azahar 的更新 %1 已发布。
您要下载吗?
-
+ Primary Window主窗口
-
+ Secondary Window次级窗口
@@ -5037,175 +5053,190 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>重要提示:加密文件和 3ds 后缀名文件不再受支持。可能需要解密和/或重命名为 cci 后缀名。<a href='https://azahar-emu.org/blog/game-loading-changes/'>了解详情。</a>
-
+ Don't show again不再显示
-
-
+
+ Compatibility兼容性
-
-
+
+ Region地区
-
-
+
+ File type文件类型
-
-
+
+ Size大小
-
-
+
+ Play time游戏时间
-
+ Favorite收藏
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open打开
-
+ Application Location应用路径
-
+ Save Data Location存档数据路径
-
+ Extra Data Location额外数据路径
-
+ Update Data Location更新数据路径
-
+ DLC Data LocationDLC 数据路径
-
+ Texture Dump Location纹理转储路径
-
+ Custom Texture Location自定义纹理路径
-
+ Mods LocationMods 路径
-
+ Dump RomFS转储 RomFS
-
+ Disk Shader Cache磁盘着色器缓存
-
+ Open Shader Cache Location打开着色器缓存位置
-
+ Delete OpenGL Shader Cache删除 OpenGL 着色器缓存
-
+ Uninstall卸载
-
+ Everything所有内容
-
+ Application应用
-
+ Update更新补丁
-
+ DLCDLC
-
+ Remove Play Time Data删除游玩时间
-
+ Create Shortcut创建快捷方式
-
+ Add to Desktop添加到桌面
-
+ Add to Applications Menu添加到应用菜单
-
+
+ Stress Test: App Launch
+ 压力测试:应用启动
+
+
+ Properties属性
-
-
-
-
+
+
+
+ AzaharAzahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
@@ -5214,64 +5245,64 @@ This will delete the application if installed, as well as any installed updates
这将删除应用、已安装的更新补丁或 DLC。
-
-
+
+ %1 (Update)%1(更新补丁)
-
-
+
+ %1 (DLC)%1(DLC)
-
+ Are you sure you want to uninstall '%1'?您确定要卸载“%1”吗?
-
+ Are you sure you want to uninstall the update for '%1'?您确定要卸载“%1”的更新补丁吗?
-
+ Are you sure you want to uninstall all DLC for '%1'?您确定要卸载“%1”的所有 DLC 吗?
-
+ Scan Subfolders扫描子文件夹
-
+ Remove Application Directory移除应用目录
-
+ Move Up向上移动
-
+ Move Down向下移动
-
+ Open Directory Location打开目录位置
-
+ Clear清除
-
+ Name名称
@@ -5279,82 +5310,82 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ Perfect完美
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.应用运行完美,没有音频或图形问题。所有测试功能均按预期运行。
无需任何另外的解决方法。
-
+ Great良好
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.应用运行时会有非常轻微的图像或音频问题,但是能从头玩到尾。
可能需要一些方法来避免问题。
-
+ Okay一般
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.应用运行时会有严重的图像或音频错误,
但是在使用一些方法之后能从头到尾地完成流程。
-
+ Bad较差
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.应用能运行,但是会有严重的图像或音频错误。
即使有解决方法仍无法通过某些特定区域。
-
+ Intro/Menu开场 / 菜单
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.应用完全无法运行,图像或音频有重大错误。
无法通过开场菜单。
-
+ Won't Boot无法打开
-
+ The app crashes when attempting to startup.应用在尝试启动时直接崩溃。
-
+ Not Tested未测试
-
+ The app has not yet been tested.应用尚未经过测试。
@@ -5362,7 +5393,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list双击将新文件夹添加到应用列表
@@ -5370,27 +5401,27 @@ Screen.
GameListSearchField
-
+ of/
-
+ result结果
-
+ results结果
-
+ Filter:搜索:
-
+ Enter pattern to filter搜索游戏
@@ -5718,87 +5749,87 @@ Screen.
循环索引:
-
+ SRC1: %1, %2, %3, %4
SRC1: %1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
SRC2: %1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
SRC3: %1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
DEST_IN: %1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
DEST_OUT: %1, %2, %3, %4
-
+ Address Registers: %1, %2
地址寄存器:%1, %2
-
+ Compare Result: %1, %2
比较结果:%1, %2
-
+ Static Condition: %1
静态状态:%1
-
+ Dynamic Conditions: %1, %2
动态状态:%1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
循环参数:%1 (循环), %2(初始值), %3(增量), %4
-
+ Instruction offset: 0x%1指令偏移量:0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(上一个指令)
@@ -6099,32 +6130,32 @@ Debug Message:
密码:
-
+ Room Name房间名称
-
+ Preferred Application首选应用
-
+ Host创建者
-
+ Players玩家
-
+ Refreshing正在刷新
-
+ Refresh List刷新列表
@@ -7126,32 +7157,32 @@ They may have left the room.
%1 (0x%2)
-
+ Unsupported encrypted application不支持的加密应用
-
+ Invalid region无效的地区
-
+ Installed Titles已安装的项目
-
+ System Titles系统项目
-
+ Add New Application Directory添加新的应用目录
-
+ Favorites收藏
diff --git a/dist/languages/zh_TW.ts b/dist/languages/zh_TW.ts
index 5ca638f46..d3017b4b1 100644
--- a/dist/languages/zh_TW.ts
+++ b/dist/languages/zh_TW.ts
@@ -292,8 +292,8 @@ This would ban both their forum username and their IP address.
- Emulation:
- 模擬
+ Emulation
+ 模擬
@@ -397,6 +397,7 @@ This would ban both their forum username and their IP address.
+ Camera相機
@@ -408,8 +409,8 @@ This would ban both their forum username and their IP address.
- Camera to configure:
- 設定的鏡頭:
+ Camera to Configure
+
@@ -429,8 +430,8 @@ This would ban both their forum username and their IP address.
- Camera mode:
- 相機模式:
+ Camera mode
+
@@ -450,8 +451,8 @@ This would ban both their forum username and their IP address.
- Camera position:
- 鏡頭位置:
+ Camera position
+
@@ -476,8 +477,8 @@ This would ban both their forum username and their IP address.
- Camera Image Source:
- 相機畫面來源:
+ Camera Image Source
+
@@ -496,8 +497,8 @@ This would ban both their forum username and their IP address.
- File:
- 檔案:
+ File
+
@@ -510,11 +511,6 @@ This would ban both their forum username and their IP address.
Select the system camera to use選擇電腦相機
-
-
- Camera:
- 相機:
- <Default>
@@ -528,8 +524,8 @@ This would ban both their forum username and their IP address.
- Flip:
- 翻轉圖片:
+ Flip
+
@@ -1018,7 +1014,7 @@ Would you like to ignore the error and continue?
Enable Linear Filtering
- 啟用線性過濾
+
@@ -1082,7 +1078,7 @@ Would you like to ignore the error and continue?
- Reverse Side by Side
+ Side by Side Full Width
@@ -1141,49 +1137,54 @@ Would you like to ignore the error and continue?
-
+
+ Swap Eyes
+
+
+
+ Utility工具
-
+ <html><head/><body><p>Replace textures with PNG files.</p><p>Textures are loaded from load/textures/[Title ID]/.</p></body></html><html><head/><body><p>使用 PNG 文件進行紋理的替換。 </p><p>將於 load/textures/[Title ID]/ 目錄下加載紋理文件。 </p></body></html>
-
- Use Custom Textures
- 使用自定義紋理
+
+ Use custom textures
+
-
+ <html><head/><body><p>Dump textures to PNG files.</p><p>Textures are dumped to dump/textures/[Title ID]/.</p></body></html><html><head/><body><p>使用 PNG 文件進行紋理的替換。 </p><p>將於 load/textures/[Title ID]/ 目錄下加載紋理文件。 </p></body></html>
-
- Dump Textures
- 轉儲紋理文件
+
+ Dump textures
+
-
+ <html><head/><body><p>Load all custom textures into memory on boot, instead of loading them when the application requires them.</p></body></html>
-
- Preload Custom Textures
- 預加載自定義紋理
+
+ Preload custom textures
+
-
+ <html><head/><body><p>Load custom textures asynchronously with background threads to reduce loading stutter</p></body></html><html><head/><body><p>在後台線程中異步加載自定義紋理,以減少加載帶來的卡頓</p></body></html>
-
- Async Custom Texture Loading
- 異步加載自定義紋理
+
+ Async custom texture loading
+
@@ -1240,13 +1241,13 @@ Would you like to ignore the error and continue?
- Set emulation speed:
- 設置模擬速度:
+ Set emulation speed
+
- Emulation Speed:
- 模擬速度:
+ Emulation Speed
+
@@ -1357,12 +1358,12 @@ Would you like to ignore the error and continue?
- SPIR-V Shader Generation
+ SPIR-V shader generation
- Disable GLSL -> SPIR-V Optimizer
+ Disable GLSL -> SPIR-V optimizer
@@ -1382,8 +1383,8 @@ Would you like to ignore the error and continue?
- Enable Hardware Shader
- 啟用硬體著色
+ Enable hardware shader
+
@@ -1392,8 +1393,8 @@ Would you like to ignore the error and continue?
- Accurate Multiplication
- 精準著色增值
+ Accurate multiplication
+
@@ -1402,8 +1403,8 @@ Would you like to ignore the error and continue?
- Enable Shader JIT
- 啟用 JIT 著色
+ Enable shader JIT
+
@@ -1412,7 +1413,7 @@ Would you like to ignore the error and continue?
- Enable Async Shader Compilation
+ Enable async shader compilation
@@ -1422,7 +1423,7 @@ Would you like to ignore the error and continue?
- Enable Async Presentation
+ Enable async presentation
@@ -1462,8 +1463,8 @@ Would you like to ignore the error and continue?
- Use Disk Shader Cache
- 啟用磁盤著色器緩存
+ Use disk shader cache
+
@@ -1487,7 +1488,7 @@ Would you like to ignore the error and continue?
- Delay application render thread:
+ Delay Application Render Thread
@@ -1976,12 +1977,12 @@ Would you like to ignore the error and continue?
- Swap Screens
- 交換上下畫面
+ Swap screens
+
- Rotate Screens Upright
+ Rotate screens upright
@@ -2098,7 +2099,7 @@ Would you like to ignore the error and continue?
- <html><head/><body><p>Bottom Screen Opacity % (OpenGL Only)</p></body></html>
+ <html><head/><body><p>Bottom Screen Opacity %</p></body></html>
@@ -2446,7 +2447,7 @@ Would you like to ignore the error and continue?
- Use Virtual SD
+ Use virtual SD card
@@ -2456,7 +2457,7 @@ Would you like to ignore the error and continue?
- Use Custom Storage
+ Use custom storage location
@@ -2543,8 +2544,8 @@ online features (if installed)
- Region:
-
+ Region
+ 地區
@@ -2552,326 +2553,337 @@ online features (if installed)
-
+
+ Apply region free patch to
+installed applications.
+
+
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+ Username使用者名稱
-
+ Birthday生日
-
+ January一月
-
+ February二月
-
+ March三月
-
+ April四月
-
+ May五月
-
+ June六月
-
+ July七月
-
+ August八月
-
+ September九月
-
+ October十月
-
+ November十一月
-
+ December十二月
-
+ Language語言
-
+ Note: this can be overridden when region setting is auto-select注意:當「地區」設定是自動時,會覆寫這個設定。
-
+ Japanese (日本語)日文 (日本語)
-
+ English英文 (English)
-
+ French (français)法文 (français)
-
+ German (Deutsch)德文 (Deutsch)
-
+ Italian (italiano)義大利文 (Italiano)
-
+ Spanish (español)西班牙文 (Español)
-
+ Simplified Chinese (简体中文)簡體中文 (简体中文)
-
+ Korean (한국어)韓文 (한국어)
-
+ Dutch (Nederlands)荷蘭文 (Nederlands)
-
+ Portuguese (português)葡萄牙文 (Português)
-
+ Russian (Русский)俄文 (Русский)
-
+ Traditional Chinese (正體中文)正體中文 (正體中文)
-
+ Sound output mode聲音輸出模式
-
+ Mono單聲道
-
+ Stereo立體聲
-
+ Surround環繞
-
+ Country國家
-
+ Clock時鐘
-
+ System Clock系統時鐘
-
+ Fixed Time固定時間
-
+ Startup time每次開始的時間
-
+ yyyy-MM-ddTHH:mm:ssyyyy-MM-ddTHH:mm:ss
-
+ Offset time
-
+ days
-
+ HH:mm:ss
-
+ Initial System Ticks
-
+ Random
-
+ Fixed
-
+ Initial System Ticks Override
-
+ Play Coins
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
-
+ Pedometer Steps per Hour
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:裝置 ID:
-
-
+
+ Regenerate更換 ID
-
+ MAC:
-
- 3GX Plugin Loader:
+
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
-
+ Real Console Unique Data
-
+ Your real console is linked to Azahar.
-
+ Unlink
-
+ OTP
-
-
-
-
+
+
+
+ Choose
-
+ SecureInfo_A/B
-
+ LocalFriendCodeSeed_A/B
-
+ movable.sed
-
+ System settings are available only when applications is not running.
@@ -3581,76 +3593,76 @@ online features (if installed)
-
-
+
+ Console ID: 0x%1裝置 ID:0x%1
-
-
+
+ MAC: %1
-
+ This will replace your current virtual 3DS console ID with a new one. Your current virtual 3DS console ID will not be recoverable. This might have unexpected effects in applications. This might fail if you use an outdated config save. Continue?
-
-
-
+
+
+ Warning警告
-
+ This will replace your current MAC address with a new one. It is not recommended to do this if you got the MAC address from your real console using the setup tool. Continue?
-
+ This action will unlink your real console from Azahar, with the following consequences:<br><ul><li>Your OTP, SecureInfo and LocalFriendCodeSeed will be removed from Azahar.</li><li>Your friend list will reset and you will be logged out of your NNID/PNID account.</li><li>System files and eshop titles obtained through Azahar will become inaccessible until the same console is linked again (save data will not be lost).</li></ul><br>Continue?
-
+ Invalid country for configured region
-
+ Invalid country for console unique data
-
+ Status: Loaded
-
+ Status: Loaded (Invalid Signature)
-
+ Status: Loaded (Region Changed)
-
+ Status: Not Found
-
+ Status: Invalid
-
+ Status: IO Error
@@ -3765,13 +3777,13 @@ Drag points to change position, or double-click table cells to edit values.
- Interface language:
- 介面語言:
+ Interface Language
+
- Theme:
- 主題:
+ Theme
+
@@ -3780,8 +3792,8 @@ Drag points to change position, or double-click table cells to edit values.
- Icon Size:
- 圖示大小:
+ Icon Size
+
@@ -3801,8 +3813,8 @@ Drag points to change position, or double-click table cells to edit values.
- Row 1 Text:
- 第一行:
+ Row 1 Text
+
@@ -3836,17 +3848,17 @@ Drag points to change position, or double-click table cells to edit values.
- Row 2 Text:
- 第二行:
+ Row 2 Text
+
- Hide Titles without Icon
- 隱藏不能執行的遊戲
+ Hide titles without icon
+
- Single Line Mode
+ Single line mode
@@ -3856,7 +3868,7 @@ Drag points to change position, or double-click table cells to edit values.
- Show Advanced Frame Time Info
+ Show advanced frame time info
@@ -3939,12 +3951,12 @@ Drag points to change position, or double-click table cells to edit values.
DirectConnectWindow
-
+ Connecting連線中
-
+ Connect連線
@@ -4063,583 +4075,597 @@ Please check your FFmpeg installation used for compilation.
GMainWindow
-
+ No Suitable Vulkan Devices Detected
-
+ Vulkan initialization failed during boot.<br/>Your GPU may not support Vulkan 1.1, or you do not have the latest graphics driver.
-
+ Current Artic traffic speed. Higher values indicate bigger transfer loads.
-
-
+
+ Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a 3DS.目前模擬速度,
「高於/低於」100% 代表模擬速度比 3DS 實機「更快/更慢」。
-
-
+
+ How many frames per second the app is currently displaying. This will vary from app to app and scene to scene.
-
-
+
+ Time taken to emulate a 3DS frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.不計算影格限制或垂直同步時,
模擬一個 3DS 影格所花的時間。全速模擬時,這個數值最多應為 16.67 毫秒。
-
+ MicroProfile (unavailable)
-
+ Clear Recent Files清除檔案使用紀錄
-
+ &Continue
-
+ &Pause
-
+ Azahar is running an applicationTRANSLATORS: This string is shown to the user to explain why Citra needs to prevent the computer from sleeping
-
-
+
+ Invalid App Format
-
-
+
+ Your app format is not supported.<br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Corrupted
-
+ Your app is corrupted. <br/>Please follow the guides to redump your <a href='https://web.archive.org/web/20240304210021/https://citra-emu.org/wiki/dumping-game-cartridges/'>game cartridges</a> or <a href='https://web.archive.org/web/20240304210011/https://citra-emu.org/wiki/dumping-installed-titles/'>installed titles</a>.
-
+ App Encrypted
-
+ Your app is encrypted. <br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unsupported App
-
+ GBA Virtual Console is not supported by Azahar.
-
-
+
+ Artic Server
-
+
+ Invalid system mode
+
+
+
+
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.
+
+
+
+ Error while loading App!
-
+ An unknown error occurred. Please see the log for more details.
-
+ CIA must be installed before usageCIA 檔案必須先安裝
-
+ Before using this CIA, you must install it. Do you want to install it now?CIA 檔案必須先安裝才能夠執行。您現在要安裝這個檔案嗎?
-
+ Quick Load
-
+ Quick Save
-
-
+
+ Slot %1
-
+ %2 %3
-
+ Quick Save - %1
-
+ Quick Load - %1
-
+ Slot %1 - %2 %3
-
+ Error Opening %1 Folder開啟 %1 資料夾時錯誤
-
-
+
+ Folder does not exist!資料夾不存在!
-
+ Remove Play Time Data
-
+ Reset play time?
-
-
-
-
+
+
+
+ Create Shortcut
-
+ Do you want to launch the application in fullscreen?
-
+ Successfully created a shortcut to %1
-
+ This will create a shortcut to the current AppImage. This may not work well if you update. Continue?
-
+ Failed to create a shortcut to %1
-
+ Create Icon
-
+ Cannot create icon file. Path "%1" does not exist and cannot be created.
-
+ Dumping...
-
-
+
+ Cancel取消
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Azahar
-
+ Could not dump base RomFS.
Refer to the log for details.
-
+ Error Opening %1開啟 %1 時錯誤
-
+ Select Directory選擇目錄
-
+ Properties
-
+ The application properties could not be loaded.
-
+ 3DS Executable (%1);;All Files (*.*)%1 is an identifier for the 3DS executable file extensions.3DS 可執行檔案 (%1);;所有檔案 (*.*)
-
+ Load File讀取檔案
-
-
+
+ Set Up System Files
-
+ <p>Azahar needs console unique data and firmware files from a real console to be able to use some of its features.<br>Such files and data can be set up with the <a href=https://github.com/azahar-emu/ArticSetupTool>Azahar Artic Setup Tool</a><br>Notes:<ul><li><b>This operation will install console unique data to Azahar, do not share your user or nand folders<br>after performing the setup process!</b></li><li>While doing the setup process, Azahar will link to the console running the setup tool. You can unlink the<br>console later from the System tab in the emulator configuration menu.</li><li>Do not go online with both Azahar and your 3DS console at the same time after setting up system files,<br>as it could cause issues.</li><li>Old 3DS setup is needed for the New 3DS setup to work (doing both setup modes is recommended).</li><li>Both setup modes will work regardless of the model of the console running the setup tool.</li></ul><hr></p>
-
+ Enter Azahar Artic Setup Tool address:
-
+ <br>Choose setup mode:
-
+ (ℹ️) Old 3DS setup
-
-
+
+ Setup is possible.
-
+ (⚠) New 3DS setup
-
+ Old 3DS setup is required first.
-
+ (✅) Old 3DS setup
-
-
+
+ Setup completed.
-
+ (ℹ️) New 3DS setup
-
+ (✅) New 3DS setup
-
+ The system files for the selected mode are already set up.
Reinstall the files anyway?
-
+ Load Files讀取多個檔案
-
+ 3DS Installation File (*.cia *.zcia)
-
-
-
+
+
+ All Files (*.*)所有檔案 (*.*)
-
+ Connect to Artic Base
-
+ Enter Artic Base server address:
-
+ %1 has been installed successfully.已成功安裝 %1。
-
+ Unable to open File無法開啟檔案
-
+ Could not open %1無法開啟 %1
-
+ Installation aborted安裝中斷
-
+ The installation of %1 was aborted. Please see the log for more details安裝 %1 時中斷,請參閱日誌了解細節。
-
+ Invalid File無效的檔案
-
+ %1 is not a valid CIA%1 不是有效的 CIA 檔案
-
+ CIA Encrypted
-
+ Your CIA file is encrypted.<br/><a href='https://azahar-emu.org/blog/game-loading-changes/'>Please check our blog for more info.</a>
-
+ Unable to find File
-
+ Could not find %1
-
-
-
- Error compressing file
+
+
+
+
+ Z3DS Compression
-
- File compress operation failed, check log for details.
+
+ Failed to compress some files, check log for details.
-
-
-
- Error decompressing file
+
+ Failed to decompress some files, check log for details.
-
- File decompress operation failed, check log for details.
+
+ All files have been compressed successfully.
-
+
+ All files have been decompressed successfully.
+
+
+
+ Uninstalling '%1'...
-
+ Failed to uninstall '%1'.
-
+ Successfully uninstalled '%1'.
-
+ File not found找不到檔案
-
+ File "%1" not found找不到「%1」
-
+ Savestates
-
+ Warning: Savestates are NOT a replacement for in-application saves, and are not meant to be reliable.
Use at your own risk!
-
-
-
+
+
+ Error opening amiibo data file
-
+ A tag is already in use.
-
+ Application is not looking for amiibos.
-
+ Amiibo File (%1);; All Files (*.*)Amiibo 檔案 (%1);;所有檔案 (*.*)
-
+ Load Amiibo讀取 Amiibo
-
+ Unable to open amiibo file "%1" for reading.
-
+ Record Movie錄影
-
+ Movie recording cancelled.錄影已取消。
-
-
+
+ Movie Saved已儲存影片
-
-
+
+ The movie is successfully saved.影片儲存成功。
-
+ Application will unpause
-
+ The application will be unpaused, and the next frame will be captured. Is this okay?
-
+ Invalid Screenshot Directory
-
+ Cannot create specified screenshot directory. Screenshot path is set back to its default value.
-
+ Could not load video dumper
-
+ FFmpeg could not be loaded. Make sure you have a compatible version installed.
To install FFmpeg to Azahar, press Open and select your FFmpeg directory.
@@ -4648,274 +4674,264 @@ To view a guide on how to install FFmpeg, press Help.
-
- Load 3DS ROM File
+
+ Load 3DS ROM Files
-
- 3DS ROM Files (*.cia *cci *3dsx *cxi)
+
+ 3DS ROM Files (*.cia *.cci *.3dsx *.cxi)
-
- The selected file is not a compatible 3DS ROM format. Make sure you have chosen the right file, and that it is not encrypted.
-
-
-
-
- The selected file is already compressed.
-
-
-
-
+ 3DS Compressed ROM File (*.%1)
-
+ Save 3DS Compressed ROM File
-
- Load 3DS Compressed ROM File
+
+ Select Output 3DS Compressed ROM Folder
-
+
+ Load 3DS Compressed ROM Files
+
+
+
+ 3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)
-
- The selected file is not a compatible compressed 3DS ROM format. Make sure you have chosen the right file.
-
-
-
-
- The selected file is already decompressed.
-
-
-
-
+ 3DS ROM File (*.%1)
-
+ Save 3DS ROM File
-
+
+ Select Output 3DS ROM Folder
+
+
+
+ Select FFmpeg Directory
-
+ The provided FFmpeg directory is missing %1. Please make sure the correct directory was selected.
-
+ FFmpeg has been sucessfully installed.
-
+ Installation of FFmpeg failed. Check the log file for details.
-
+ Could not start video dumping.<br>Please ensure that the video encoder is configured correctly.<br>Refer to the log for details.
-
+ Recording %1
-
+ Playing %1 / %2
-
+ Movie Finished
-
+ (Accessing SharedExtData)
-
+ (Accessing SystemSaveData)
-
+ (Accessing BossExtData)
-
+ (Accessing ExtData)
-
+ (Accessing SaveData)
-
+ MB/s
-
+ KB/s
-
+ Artic Traffic: %1 %2%3
-
+ Speed: %1%速度:%1%
-
+ Speed: %1% / %2%速度:%1% / %2%
-
+ App: %1 FPS
-
+ Frame: %1 ms (GPU: [CMD: %2 ms, SWP: %3 ms], IPC: %4 ms, SVC: %5 ms, Rem: %6 ms)
-
+ Frame: %1 ms影格:%1 ms
-
+ VOLUME: MUTE
-
+ VOLUME: %1%Volume percentage (e.g. 50%)
-
+ %1 is missing. Please <a href='https://web.archive.org/web/20240304201103/https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/'>dump your system archives</a>.<br/>Continuing emulation may result in crashes and bugs.
-
+ A system archive
-
+ System Archive Not Found找不到系統檔案
-
+ System Archive Missing
-
+ Save/load Error
-
+ Fatal Error嚴重錯誤
-
+ A fatal error occurred. <a href='https://web.archive.org/web/20240228001712/https://community.citra-emu.org/t/how-to-upload-the-log-file/296'>Check the log</a> for details.<br/>Continuing emulation may result in crashes and bugs.
-
+ Fatal Error encountered
-
+ Continue繼續
-
+ Quit Application
-
+ OK確定
-
+ Would you like to exit now?您確定要離開嗎?
-
+ The application is still running. Would you like to stop emulation?
-
+ Playback Completed播放完成
-
+ Movie playback completed.影片已結束播放。
-
+ Update Available
-
+ Update %1 for Azahar is available.
Would you like to download it?
-
+ Primary Window
-
+ Secondary Window
@@ -5021,239 +5037,254 @@ Would you like to download it?
GameList
-
+ IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href='https://azahar-emu.org/blog/game-loading-changes/'>Learn more.</a>
-
+ Don't show again
-
-
+
+ Compatibility相容性
-
-
+
+ Region地區
-
-
+
+ File type檔案類型
-
-
+
+ Size大小
-
-
+
+ Play time
-
+ Favorite
-
+
+ Eject Cartridge
+
+
+
+
+ Insert Cartridge
+
+
+
+ Open
-
+ Application Location
-
+ Save Data Location
-
+ Extra Data Location
-
+ Update Data Location
-
+ DLC Data Location
-
+ Texture Dump Location
-
+ Custom Texture Location
-
+ Mods Location
-
+ Dump RomFS
-
+ Disk Shader Cache
-
+ Open Shader Cache Location
-
+ Delete OpenGL Shader Cache
-
+ Uninstall
-
+ Everything
-
+ Application
-
+ Update
-
+ DLC
-
+ Remove Play Time Data
-
+ Create Shortcut
-
+ Add to Desktop
-
+ Add to Applications Menu
-
+
+ Stress Test: App Launch
+
+
+
+ Properties
-
-
-
-
+
+
+
+ Azahar
-
+ Are you sure you want to completely uninstall '%1'?
This will delete the application if installed, as well as any installed updates or DLC.
-
-
+
+ %1 (Update)
-
-
+
+ %1 (DLC)
-
+ Are you sure you want to uninstall '%1'?
-
+ Are you sure you want to uninstall the update for '%1'?
-
+ Are you sure you want to uninstall all DLC for '%1'?
-
+ Scan Subfolders掃描子資料夾
-
+ Remove Application Directory
-
+ Move Up
-
+ Move Down
-
+ Open Directory Location開啟資料夾位置
-
+ Clear清除
-
+ Name名稱
@@ -5261,77 +5292,77 @@ This will delete the application if installed, as well as any installed updates
GameListItemCompat
-
+ Perfect完美
-
+ App functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.
-
+ Great良好
-
+ App functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.
-
+ Okay普通
-
+ App functions with major graphical or audio glitches, but app is playable from start to finish with
workarounds.
-
+ Bad不好
-
+ App functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.
-
+ Intro/Menu片頭/選單
-
+ App is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.
-
+ Won't Boot無法啟動
-
+ The app crashes when attempting to startup.
-
+ Not Tested未測試
-
+ The app has not yet been tested.
@@ -5339,7 +5370,7 @@ Screen.
GameListPlaceholder
-
+ Double-click to add a new folder to the application list
@@ -5347,27 +5378,27 @@ Screen.
GameListSearchField
-
+ of/
-
+ result項符合
-
+ results項符合
-
+ Filter:項目篩選
-
+ Enter pattern to filter輸入項目關鍵字
@@ -5695,87 +5726,87 @@ Screen.
循環指標:
-
+ SRC1: %1, %2, %3, %4
來源一:%1, %2, %3, %4
-
+ SRC2: %1, %2, %3, %4
來源二:%1, %2, %3, %4
-
+ SRC3: %1, %2, %3, %4
來源三:%1, %2, %3, %4
-
+ DEST_IN: %1, %2, %3, %4
目標在內:%1, %2, %3, %4
-
+ DEST_OUT: %1, %2, %3, %4
目標在外:%1, %2, %3, %4
-
+ Address Registers: %1, %2
位址暫存器:%1, %2
-
+ Compare Result: %1, %2
比較結果:%1, %2
-
+ Static Condition: %1
靜態:%1
-
+ Dynamic Conditions: %1, %2
動態:%1, %2
-
+ Loop Parameters: %1 (repeats), %2 (initializer), %3 (increment), %4
迴圈參數:%1(重複)、%2(初始)、%3(增量)、%4
-
+ Instruction offset: 0x%1指令偏置:0x%1
-
+ -> 0x%2 -> 0x%2
-
+ (last instruction)(上一個指令)
@@ -6074,32 +6105,32 @@ Debug Message:
密碼:
-
+ Room Name房間名稱
-
+ Preferred Application
-
+ Host建立者
-
+ Players玩家數
-
+ Refreshing正在重新整理
-
+ Refresh List重新整理
@@ -6600,7 +6631,7 @@ Debug Message:
File:
- 檔案:
+
@@ -6692,7 +6723,7 @@ Debug Message:
File:
- 檔案:
+
@@ -7098,32 +7129,32 @@ They may have left the room.
-
+ Unsupported encrypted application
-
+ Invalid region無效的地區
-
+ Installed Titles
-
+ System Titles
-
+ Add New Application Directory
-
+ Favorites
diff --git a/dist/license.md b/dist/license.md
index 207fc638e..801b0a519 100644
--- a/dist/license.md
+++ b/dist/license.md
@@ -16,6 +16,7 @@ qt_themes/default/icons/48x48/no_avatar.png | CC BY-ND 3.0 | https://icons8.com
qt_themes/default/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Citra team
qt_themes/default/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com
qt_themes/default/icons/48x48/star.png | CC BY-ND 3.0 | https://icons8.com
+qt_themes/default/icons/128x128/cartridge.png | CC0 1.0 | Designed by PabloMK7
qt_themes/qdarkstyle/icons/16x16/connected.png | CC BY-ND 3.0 | https://icons8.com
qt_themes/qdarkstyle/icons/16x16/connected_notification.png | CC BY-ND 3.0 | https://icons8.com
qt_themes/qdarkstyle/icons/16x16/disconnected.png | CC BY-ND 3.0 | https://icons8.com
diff --git a/dist/qt_themes/default/icons/128x128/cartridge.png b/dist/qt_themes/default/icons/128x128/cartridge.png
new file mode 100644
index 000000000..cb669ee29
Binary files /dev/null and b/dist/qt_themes/default/icons/128x128/cartridge.png differ
diff --git a/dist/qt_themes/default/icons/index.theme b/dist/qt_themes/default/icons/index.theme
index 1edbe6408..a7cfb3306 100644
--- a/dist/qt_themes/default/icons/index.theme
+++ b/dist/qt_themes/default/icons/index.theme
@@ -1,13 +1,16 @@
[Icon Theme]
Name=default
Comment=default theme
-Directories=16x16,48x48,256x256
+Directories=16x16,48x48,128x128,256x256
[16x16]
Size=16
[48x48]
Size=48
-
+
+[128x128]
+Size=128
+
[256x256]
Size=256
\ No newline at end of file
diff --git a/dist/qt_themes/default/icons_light/128x128/cartridge.png b/dist/qt_themes/default/icons_light/128x128/cartridge.png
new file mode 100644
index 000000000..cb669ee29
Binary files /dev/null and b/dist/qt_themes/default/icons_light/128x128/cartridge.png differ
diff --git a/dist/qt_themes/default/icons_light/index.theme b/dist/qt_themes/default/icons_light/index.theme
index 1edbe6408..a7cfb3306 100644
--- a/dist/qt_themes/default/icons_light/index.theme
+++ b/dist/qt_themes/default/icons_light/index.theme
@@ -1,13 +1,16 @@
[Icon Theme]
Name=default
Comment=default theme
-Directories=16x16,48x48,256x256
+Directories=16x16,48x48,128x128,256x256
[16x16]
Size=16
[48x48]
Size=48
-
+
+[128x128]
+Size=128
+
[256x256]
Size=256
\ No newline at end of file
diff --git a/dist/qt_themes/default/theme_default.qrc b/dist/qt_themes/default/theme_default.qrc
index c8339f86d..90ae777aa 100644
--- a/dist/qt_themes/default/theme_default.qrc
+++ b/dist/qt_themes/default/theme_default.qrc
@@ -13,6 +13,7 @@
icons/48x48/no_avatar.pngicons/48x48/plus.pngicons/48x48/sd_card.png
+ icons/128x128/cartridge.pngicons/256x256/azahar.pngicons/48x48/star.pngicons/256x256/plus_folder.png
@@ -31,6 +32,7 @@
icons_light/48x48/no_avatar.pngicons_light/48x48/plus.pngicons_light/48x48/sd_card.png
+ icons_light/128x128/cartridge.pngicons_light/256x256/azahar.pngicons_light/48x48/star.pngicons_light/256x256/plus_folder.png
diff --git a/docker/azahar-room/Dockerfile b/docker/azahar-room/Dockerfile
new file mode 100644
index 000000000..c47896dd9
--- /dev/null
+++ b/docker/azahar-room/Dockerfile
@@ -0,0 +1,31 @@
+# This Dockerfile assumes that it is being built from the project root directory, e.g.:
+# $ docker build -f docker/azahar-room/Dockerfile -t azahar-room .
+
+# --- Builder ----------------
+FROM opensauce04/azahar-build-environment:latest AS builder
+
+COPY . /var/azahar-src
+
+RUN mkdir builddir && cd builddir && \
+ cmake /var/azahar-src -G Ninja \
+ -DENABLE_QT=OFF \
+ -DENABLE_TESTS=OFF \
+ -DENABLE_ROOM=ON \
+ -DENABLE_ROOM_STANDALONE=ON \
+ -DENABLE_OPENGL=OFF $( : "TODO: Can we disable these automatically when there's no frontend?") \
+ -DENABLE_VULKAN=OFF \
+ -DENABLE_SDL2=OFF \
+ -DENABLE_LIBUSB=OFF \
+ -DENABLE_CUBEB=OFF \
+ -DENABLE_OPENAL=OFF && \
+ ninja && \
+ mv bin/Release/azahar-room /usr/local/bin/ && \
+ cd .. && rm -rf builddir
+
+# --- Final ------------------
+FROM debian:trixie AS final
+
+RUN apt-get update && apt-get -y full-upgrade
+RUN apt-get install -y iputils-ping net-tools
+
+COPY --from=builder /usr/local/bin/azahar-room /usr/local/bin/azahar-room
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index aa6e6c84b..01e76a095 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -243,13 +243,8 @@ else()
)
target_link_libraries(zstd_seekable PUBLIC libzstd_static)
- target_link_libraries(libzstd_static INTERFACE zstd_seekable)
-
- add_library(zstd ALIAS libzstd_static)
-
- install(TARGETS zstd_seekable
- EXPORT zstdExports
- )
+ add_library(zstd INTERFACE)
+ target_link_libraries(zstd INTERFACE libzstd_static zstd_seekable)
endif()
# ENet
@@ -494,3 +489,17 @@ if (ENABLE_VULKAN)
add_subdirectory(libadrenotools)
endif()
endif()
+
+set(XXHASH_BUILD_XXHSUM OFF)
+add_subdirectory(xxHash/cmake_unofficial EXCLUDE_FROM_ALL)
+target_compile_definitions(xxhash PRIVATE XXH_FORCE_MEMORY_ACCESS=2)
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64")
+ target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_SSE2)
+ message(STATUS "Enabling SSE2 for xxHash")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|ARM64|armv8")
+ target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_NEON)
+ message(STATUS "Enabling NEON for xxHash")
+else()
+ target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_SCALAR)
+ message(STATUS "Disabling SIMD for xxHash")
+endif()
\ No newline at end of file
diff --git a/externals/boost b/externals/boost
index 3c27c785a..2c82bd787 160000
--- a/externals/boost
+++ b/externals/boost
@@ -1 +1 @@
-Subproject commit 3c27c785ad0f8a742af02e620dc225673f3a12d8
+Subproject commit 2c82bd787302398bcae990e3c9ab2b451284f4ca
diff --git a/externals/dynarmic b/externals/dynarmic
index 278405bd7..526227eeb 160000
--- a/externals/dynarmic
+++ b/externals/dynarmic
@@ -1 +1 @@
-Subproject commit 278405bd71999ed3f3c77c5f78344a06fef798b9
+Subproject commit 526227eebe1efff3fb14dbf494b9c5b44c2e9c1f
diff --git a/externals/teakra b/externals/teakra
index 01db7cdd0..3d697a18d 160000
--- a/externals/teakra
+++ b/externals/teakra
@@ -1 +1 @@
-Subproject commit 01db7cdd00aabcce559a8dddce8798dabb71949b
+Subproject commit 3d697a18df504f4677b65129d9ab14c7c597e3eb
diff --git a/externals/xxHash b/externals/xxHash
new file mode 160000
index 000000000..e626a72bc
--- /dev/null
+++ b/externals/xxHash
@@ -0,0 +1 @@
+Subproject commit e626a72bc2321cd320e953a0ccf1584cad60f363
diff --git a/license.txt b/license.txt
index f94c73f1a..7b0e5ad1b 100644
--- a/license.txt
+++ b/license.txt
@@ -357,3 +357,4 @@ plus.png (Default, Dark) | CC0 1.0 | Designed by BreadFish64 fro
plus.png (Colorful, Colorful Dark) | CC BY-ND 3.0 | https://icons8.com
sd_card.png | CC BY-ND 3.0 | https://icons8.com
star.png | CC BY-ND 3.0 | https://icons8.com
+cartridge.png | CC0 1.0 | Designed by PabloMK7
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts
index 10e766459..0973a34c7 100644
--- a/src/android/app/build.gradle.kts
+++ b/src/android/app/build.gradle.kts
@@ -125,7 +125,7 @@ android {
applicationIdSuffix = ".debug"
versionNameSuffix = "-debug"
signingConfig = signingConfigs.getByName("debug")
- isShrinkResources = true
+ isShrinkResources = true // TODO: Does this actually do anything when isDebuggable is enabled? -OS
isDebuggable = true
isJniDebuggable = true
proguardFiles(
@@ -135,6 +135,22 @@ android {
isDefault = true
}
+ // Same as above, but with isDebuggable disabled.
+ // Primarily exists to allow development on hardened_malloc systems (e.g. GrapheneOS) without constantly tripping over years-old and seemingly harmless memory bugs.
+ // We should fix those bugs eventually, but for now this exists as a workaround to allow other work to be done.
+ register("relWithDebInfoLite") {
+ initWith(getByName("relWithDebInfo"))
+ signingConfig = signingConfigs.getByName("debug")
+ isDebuggable = false
+ installation {
+ enableBaselineProfile = false // Disabled by default when isDebuggable is true
+ }
+ lint {
+ checkReleaseBuilds = false // Ditto
+ // The name of this property is misleading, this doesn't actually disable linting for the `release` build.
+ }
+ }
+
// Signed by debug key disallowing distribution on Play Store.
// Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
debug {
@@ -148,6 +164,18 @@ android {
flavorDimensions.add("version")
+ productFlavors {
+ register("vanilla") {
+ isDefault = true
+ dimension = "version"
+ versionNameSuffix = "-vanilla"
+ }
+ register("googlePlay") {
+ dimension = "version"
+ versionNameSuffix = "-googleplay"
+ }
+ }
+
externalNativeBuild {
cmake {
version = "3.25.0+"
diff --git a/src/android/app/src/googlePlay/AndroidManifest.xml b/src/android/app/src/googlePlay/AndroidManifest.xml
new file mode 100644
index 000000000..a95b9539c
--- /dev/null
+++ b/src/android/app/src/googlePlay/AndroidManifest.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml
index a7e3581ee..abc14939b 100644
--- a/src/android/app/src/main/AndroidManifest.xml
+++ b/src/android/app/src/main/AndroidManifest.xml
@@ -29,6 +29,8 @@
+
+ {
+ title = emulationActivity.getString(R.string.invalid_system_mode)
+ message = emulationActivity.getString(R.string.invalid_system_mode_message)
+ canContinue = false
+ }
+
CoreError.ErrorUnknown -> {
title = emulationActivity.getString(R.string.fatal_error)
message = emulationActivity.getString(R.string.fatal_error_message)
@@ -589,6 +608,47 @@ object NativeLibrary {
*/
external fun logDeviceInfo()
+ enum class CompressStatus(val value: Int) {
+ SUCCESS(0),
+ COMPRESS_UNSUPPORTED(1),
+ COMPRESS_ALREADY_COMPRESSED(2),
+ COMPRESS_FAILED(3),
+ DECOMPRESS_UNSUPPORTED(4),
+ DECOMPRESS_NOT_COMPRESSED(5),
+ DECOMPRESS_FAILED(6),
+ INSTALLED_APPLICATION(7);
+
+ companion object {
+ fun fromValue(value: Int): CompressStatus =
+ CompressStatus.entries.first { it.value == value }
+ }
+ }
+
+ // Compression / Decompression
+ private external fun compressFileNative(inputPath: String?, outputPath: String): Int
+
+ fun compressFile(inputPath: String?, outputPath: String): CompressStatus {
+ return CompressStatus.fromValue(
+ compressFileNative(inputPath, outputPath)
+ )
+ }
+
+ private external fun decompressFileNative(inputPath: String?, outputPath: String): Int
+
+ fun decompressFile(inputPath: String?, outputPath: String): CompressStatus {
+ return CompressStatus.fromValue(
+ decompressFileNative(inputPath, outputPath)
+ )
+ }
+
+ external fun getRecommendedExtension(inputPath: String?, shouldCompress: Boolean): String
+
+ @Keep
+ @JvmStatic
+ fun onCompressProgress(total: Long, current: Long) {
+ CompressProgressDialogViewModel.update(total, current)
+ }
+
@Keep
@JvmStatic
fun createFile(directory: String, filename: String): Boolean =
@@ -629,6 +689,38 @@ object NativeLibrary {
FileUtil.getFilesName(path)
}
+ @Keep
+ @JvmStatic
+ fun getUserDirectory(uriOverride: Uri? = null): String {
+ BuildUtil.assertNotGooglePlay()
+
+ val preferences: SharedPreferences =
+ PreferenceManager.getDefaultSharedPreferences(CitraApplication.appContext)
+
+ val dirSep = "/"
+ val udUri = uriOverride ?:
+ preferences.getString("CITRA_DIRECTORY", "")!!.toUri()
+ val udPathSegment = udUri.lastPathSegment!!
+ val udVirtualPath = udPathSegment.substringAfter(":")
+
+ if (udPathSegment.startsWith("primary:")) { // User directory is located in primary storage
+ val primaryStoragePath = Environment.getExternalStorageDirectory().absolutePath
+ return primaryStoragePath + dirSep + udVirtualPath + dirSep
+ } else { // User directory probably located on a removable storage device
+ val storageIdString = udPathSegment.substringBefore(":")
+ val udRemovablePath = RemovableStorageHelper.getRemovableStoragePath(storageIdString)
+
+ if (udRemovablePath == null) {
+ android.util.Log.e("NativeLibrary",
+ "Unknown mount location for storage device '$storageIdString' (URI: $udUri)"
+ )
+ return ""
+ }
+ return udRemovablePath + dirSep + udVirtualPath + dirSep
+ }
+
+ }
+
@Keep
@JvmStatic
fun getSize(path: String): Long =
@@ -638,6 +730,10 @@ object NativeLibrary {
FileUtil.getFileSize(path)
}
+ @Keep
+ @JvmStatic
+ fun getBuildFlavor(): String = BuildConfig.FLAVOR
+
@Keep
@JvmStatic
fun fileExists(path: String): Boolean =
@@ -689,6 +785,24 @@ object NativeLibrary {
FileUtil.renameFile(path, destinationFilename)
}
+ @Keep
+ @JvmStatic
+ fun updateDocumentLocation(sourcePath: String, destinationPath: String): Boolean =
+ CitraApplication.documentsTree.updateDocumentLocation(sourcePath, destinationPath)
+
+ @Keep
+ @JvmStatic
+ fun moveFile(filename: String, sourceDirPath: String, destinationDirPath: String): Boolean =
+ if (FileUtil.isNativePath(sourceDirPath)) {
+ try {
+ CitraApplication.documentsTree.moveFile(filename, sourceDirPath, destinationDirPath)
+ } catch (e: Exception) {
+ false
+ }
+ } else {
+ FileUtil.moveFile(filename, sourceDirPath, destinationDirPath)
+ }
+
@Keep
@JvmStatic
fun deleteDocument(path: String): Boolean =
@@ -702,6 +816,7 @@ object NativeLibrary {
ErrorSystemFiles,
ErrorSavestate,
ErrorArticDisconnected,
+ ErrorN3DSApplication,
ErrorUnknown
}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.kt
index f23147dd8..ca92b308d 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.kt
@@ -10,6 +10,7 @@ import android.content.Intent
import android.content.SharedPreferences
import android.content.pm.PackageManager
import android.net.Uri
+import android.os.Build
import android.os.Bundle
import android.view.InputDevice
import android.view.KeyEvent
@@ -47,6 +48,7 @@ import org.citra.citra_emu.utils.FileBrowserHelper
import org.citra.citra_emu.utils.EmulationLifecycleUtil
import org.citra.citra_emu.utils.EmulationMenuSettings
import org.citra.citra_emu.utils.Log
+import org.citra.citra_emu.utils.RefreshRateUtil
import org.citra.citra_emu.utils.ThemeUtil
import org.citra.citra_emu.viewmodel.EmulationViewModel
@@ -82,6 +84,8 @@ class EmulationActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
requestWindowFeature(Window.FEATURE_NO_TITLE)
+ RefreshRateUtil.enforceRefreshRate(this, sixtyHz = true)
+
ThemeUtil.setTheme(this)
settingsViewModel.settings.loadSettings()
super.onCreate(savedInstanceState)
@@ -338,6 +342,7 @@ class EmulationActivity : AppCompatActivity() {
preferences.getInt(InputBindingSetting.getInputAxisButtonKey(axis), -1)
val guestOrientation =
preferences.getInt(InputBindingSetting.getInputAxisOrientationKey(axis), -1)
+ val inverted = preferences.getBoolean(InputBindingSetting.getInputAxisInvertedKey(axis),false);
if (nextMapping == -1 || guestOrientation == -1) {
// Axis is unmapped
continue
@@ -346,6 +351,8 @@ class EmulationActivity : AppCompatActivity() {
// Skip joystick wobble
value = 0f
}
+ if (inverted) value = -value;
+
when (nextMapping) {
NativeLibrary.ButtonType.STICK_LEFT -> {
axisValuesCirclePad[guestOrientation] = value
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/adapters/GameAdapter.kt b/src/android/app/src/main/java/org/citra/citra_emu/adapters/GameAdapter.kt
index d03ff2936..dae538d73 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/adapters/GameAdapter.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/adapters/GameAdapter.kt
@@ -13,6 +13,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.content.Context
+import android.content.SharedPreferences
import android.widget.TextView
import android.widget.ImageView
import android.widget.Toast
@@ -57,13 +58,21 @@ import org.citra.citra_emu.utils.FileUtil
import org.citra.citra_emu.utils.GameIconUtils
import org.citra.citra_emu.viewmodel.GamesViewModel
-class GameAdapter(private val activity: AppCompatActivity, private val inflater: LayoutInflater, private val openImageLauncher: ActivityResultLauncher?) :
+class GameAdapter(
+ private val activity: AppCompatActivity,
+ private val inflater: LayoutInflater,
+ private val openImageLauncher: ActivityResultLauncher?,
+ private val onRequestCompressOrDecompress: ((inputPath: String, suggestedName: String, shouldCompress: Boolean) -> Unit)? = null
+) :
ListAdapter(AsyncDifferConfig.Builder(DiffCallback()).build()),
View.OnClickListener, View.OnLongClickListener {
private var lastClickTime = 0L
private var imagePath: String? = null
private var dialogShortcutBinding: DialogShortcutBinding? = null
+ private val preferences: SharedPreferences
+ get() = PreferenceManager.getDefaultSharedPreferences(CitraApplication.appContext)
+
fun handleShortcutImageResult(uri: Uri?) {
val path = uri?.toString()
if (path != null) {
@@ -191,6 +200,11 @@ class GameAdapter(private val activity: AppCompatActivity, private val inflater:
binding.textGameTitle.text = game.title
binding.textCompany.text = game.company
binding.textGameRegion.text = game.regions
+ binding.imageCartridge.visibility = if (preferences.getString("insertedCartridge", "") != game.path) {
+ View.GONE
+ } else {
+ View.VISIBLE
+ }
val backgroundColorId =
if (
@@ -340,12 +354,29 @@ class GameAdapter(private val activity: AppCompatActivity, private val inflater:
val bottomSheetDialog = BottomSheetDialog(context)
bottomSheetDialog.setContentView(bottomSheetView)
+ val insertable = game.isInsertable
+ val inserted = insertable && (preferences.getString("insertedCartridge", "") == game.path)
+
bottomSheetView.findViewById(R.id.about_game_title).text = game.title
bottomSheetView.findViewById(R.id.about_game_company).text = game.company
bottomSheetView.findViewById(R.id.about_game_region).text = game.regions
bottomSheetView.findViewById(R.id.about_game_id).text = context.getString(R.string.game_context_id) + " " + String.format("%016X", game.titleId)
bottomSheetView.findViewById(R.id.about_game_filename).text = context.getString(R.string.game_context_file) + " " + game.filename
bottomSheetView.findViewById(R.id.about_game_filetype).text = context.getString(R.string.game_context_type) + " " + game.fileType
+
+ val insertButton = bottomSheetView.findViewById(R.id.insert_cartridge_button)
+ insertButton.text = if (inserted) { context.getString(R.string.game_context_eject) } else { context.getString(R.string.game_context_insert) }
+ insertButton.visibility = if (insertable) View.VISIBLE else View.GONE
+ insertButton.setOnClickListener {
+ if (inserted) {
+ preferences.edit().putString("insertedCartridge", "").apply()
+ } else {
+ preferences.edit().putString("insertedCartridge", game.path).apply()
+ }
+ bottomSheetDialog.dismiss()
+ notifyItemRangeChanged(0, currentList.size)
+ }
+
GameIconUtils.loadGameIcon(activity, game, bottomSheetView.findViewById(R.id.game_icon))
bottomSheetView.findViewById(R.id.about_game_play).setOnClickListener {
@@ -441,6 +472,27 @@ class GameAdapter(private val activity: AppCompatActivity, private val inflater:
bottomSheetDialog.dismiss()
}
+ val compressDecompressButton = bottomSheetView.findViewById(R.id.compress_decompress)
+ if (game.isInstalled) {
+ compressDecompressButton.setOnClickListener {
+ Toast.makeText(
+ context,
+ context.getString(R.string.compress_decompress_installed_app),
+ Toast.LENGTH_LONG
+ ).show()
+ }
+ compressDecompressButton.alpha = 0.38f
+ } else {
+ compressDecompressButton.setOnClickListener {
+ val shouldCompress = !game.isCompressed
+ val recommendedExt = NativeLibrary.getRecommendedExtension(holder.game.path, shouldCompress)
+ val baseName = holder.game.filename.substringBeforeLast('.')
+ onRequestCompressOrDecompress?.invoke(holder.game.path, "$baseName.$recommendedExt", shouldCompress)
+ bottomSheetDialog.dismiss()
+ }
+ }
+ compressDecompressButton.text = context.getString(if (!game.isCompressed) R.string.compress else R.string.decompress)
+
bottomSheetView.findViewById(R.id.menu_button_open).setOnClickListener {
showOpenContextMenu(it, game)
}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/display/ScreenLayout.kt b/src/android/app/src/main/java/org/citra/citra_emu/display/ScreenLayout.kt
index c3877560c..c46dcadd8 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/display/ScreenLayout.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/display/ScreenLayout.kt
@@ -63,4 +63,37 @@ enum class SecondaryDisplayLayout(val int: Int) {
return entries.firstOrNull { it.int == int } ?: NONE
}
}
+}
+
+enum class StereoWhichDisplay(val int: Int) {
+ // These must match what is defined in src/common/settings.h
+
+ NONE(0), // equivalent to StereoRenderOption = Off
+ BOTH(1),
+ PRIMARY_ONLY(2),
+ SECONDARY_ONLY(3);
+
+ companion object {
+ fun from(int: Int): StereoWhichDisplay {
+ return entries.firstOrNull { it.int == int } ?: NONE
+ }
+ }
+}
+
+enum class StereoMode(val int: Int) {
+ // These must match what is defined in src/common/settings.h
+
+ OFF(0),
+ SIDE_BY_SIDE(1),
+ SIDE_BY_SIDE_FULL(2),
+ ANAGLYPH(3),
+ INTERLACED(4),
+ REVERSE_INTERLACED (5),
+ CARDBOARD_VR (6);
+
+ companion object {
+ fun from(int: Int): StereoMode {
+ return entries.firstOrNull { it.int == int } ?: OFF
+ }
+ }
}
\ No newline at end of file
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/display/SecondaryDisplay.kt b/src/android/app/src/main/java/org/citra/citra_emu/display/SecondaryDisplay.kt
index b44929c9d..f4d736ced 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/display/SecondaryDisplay.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/display/SecondaryDisplay.kt
@@ -47,9 +47,18 @@ class SecondaryDisplay(val context: Context) : DisplayManager.DisplayListener {
private fun getExternalDisplay(context: Context): Display? {
val dm = context.getSystemService(Context.DISPLAY_SERVICE) as DisplayManager
- val internalId = context.display.displayId ?: Display.DEFAULT_DISPLAY
- val displays = dm.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION)
- return displays.firstOrNull { it.displayId != internalId && it.name != "HiddenDisplay" }
+ val currentDisplayId = context.display.displayId
+ val displays = dm.displays
+ val presDisplays = dm.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION);
+ return displays.firstOrNull {
+ val isPresentable = presDisplays.any { pd -> pd.displayId == it.displayId }
+ val isNotDefaultOrPresentable = it.displayId != Display.DEFAULT_DISPLAY || isPresentable
+ isNotDefaultOrPresentable &&
+ it.displayId != currentDisplayId &&
+ it.name != "HiddenDisplay" &&
+ it.state != Display.STATE_OFF &&
+ it.isValid
+ }
}
fun updateDisplay() {
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt
index 93259c66c..f06324251 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt
@@ -19,6 +19,7 @@ enum class BooleanSetting(
INSTANT_DEBUG_LOG("instant_debug_log", Settings.SECTION_DEBUG, false),
ENABLE_RPC_SERVER("enable_rpc_server", Settings.SECTION_DEBUG, false),
CUSTOM_LAYOUT("custom_layout",Settings.SECTION_LAYOUT,false),
+ SWAP_EYES_3D("swap_eyes_3d",Settings.SECTION_RENDERER,false),
PERF_OVERLAY_ENABLE("performance_overlay_enable", Settings.SECTION_LAYOUT, false),
PERF_OVERLAY_SHOW_FPS("performance_overlay_show_fps", Settings.SECTION_LAYOUT, true),
PERF_OVERLAY_SHOW_FRAMETIME("performance_overlay_show_frame_time", Settings.SECTION_LAYOUT, false),
@@ -51,7 +52,8 @@ enum class BooleanSetting(
USE_ARTIC_BASE_CONTROLLER("use_artic_base_controller", Settings.SECTION_CONTROLS, false),
UPRIGHT_SCREEN("upright_screen", Settings.SECTION_LAYOUT, false),
COMPRESS_INSTALLED_CIA_CONTENT("compress_cia_installs", Settings.SECTION_STORAGE, false),
- ANDROID_HIDE_IMAGES("android_hide_images", Settings.SECTION_CORE, false);
+ ANDROID_HIDE_IMAGES("android_hide_images", Settings.SECTION_CORE, false),
+ APPLY_REGION_FREE_PATCH("apply_region_free_patch", Settings.SECTION_SYSTEM, true);
override var boolean: Boolean = defaultValue
@@ -86,7 +88,8 @@ enum class BooleanSetting(
USE_ARTIC_BASE_CONTROLLER,
COMPRESS_INSTALLED_CIA_CONTENT,
ANDROID_HIDE_IMAGES,
- PERF_OVERLAY_ENABLE // Works in overlay options, but not from the settings menu
+ PERF_OVERLAY_ENABLE, // Works in overlay options, but not from the settings menu
+ APPLY_REGION_FREE_PATCH
)
fun from(key: String): BooleanSetting? =
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt
index 5b2016ac9..e26bcd6c6 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt
@@ -17,7 +17,7 @@ enum class IntSetting(
CAMERA_OUTER_RIGHT_FLIP("camera_outer_right_flip", Settings.SECTION_CAMERA, 0),
GRAPHICS_API("graphics_api", Settings.SECTION_RENDERER, 1),
RESOLUTION_FACTOR("resolution_factor", Settings.SECTION_RENDERER, 1),
- STEREOSCOPIC_3D_MODE("render_3d", Settings.SECTION_RENDERER, 0),
+ STEREOSCOPIC_3D_MODE("render_3d", Settings.SECTION_RENDERER, 2),
STEREOSCOPIC_3D_DEPTH("factor_3d", Settings.SECTION_RENDERER, 0),
STEPS_PER_HOUR("steps_per_hour", Settings.SECTION_SYSTEM, 0),
CARDBOARD_SCREEN_SIZE("cardboard_screen_size", Settings.SECTION_LAYOUT, 85),
@@ -53,6 +53,7 @@ enum class IntSetting(
ORIENTATION_OPTION("screen_orientation", Settings.SECTION_LAYOUT, 2),
TURBO_LIMIT("turbo_limit", Settings.SECTION_CORE, 200),
PERFORMANCE_OVERLAY_POSITION("performance_overlay_position", Settings.SECTION_LAYOUT, 0),
+ RENDER_3D_WHICH_DISPLAY("render_3d_which_display",Settings.SECTION_RENDERER,0),
ASPECT_RATIO("aspect_ratio", Settings.SECTION_LAYOUT, 0);
override var int: Int = defaultValue
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/InputBindingSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/InputBindingSetting.kt
index 64827d89d..509426537 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/InputBindingSetting.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/InputBindingSetting.kt
@@ -16,6 +16,7 @@ import org.citra.citra_emu.NativeLibrary
import org.citra.citra_emu.R
import org.citra.citra_emu.features.hotkeys.Hotkey
import org.citra.citra_emu.features.settings.model.AbstractSetting
+import org.citra.citra_emu.features.settings.model.AbstractStringSetting
import org.citra.citra_emu.features.settings.model.Settings
class InputBindingSetting(
@@ -161,12 +162,14 @@ class InputBindingSetting(
fun removeOldMapping() {
// Try remove all possible keys we wrote for this setting
val oldKey = preferences.getString(reverseKey, "")
+ (setting as AbstractStringSetting).string = ""
if (oldKey != "") {
preferences.edit()
.remove(abstractSetting.key) // Used for ui text
.remove(oldKey) // Used for button mapping
.remove(oldKey + "_GuestOrientation") // Used for axis orientation
.remove(oldKey + "_GuestButton") // Used for axis button
+ .remove(oldKey + "_Inverted") // used for axis inversion
.apply()
}
}
@@ -200,7 +203,7 @@ class InputBindingSetting(
/**
* Helper function to write a gamepad axis mapping for the setting.
*/
- private fun writeAxisMapping(axis: Int, value: Int) {
+ private fun writeAxisMapping(axis: Int, value: Int, inverted: Boolean) {
// Cleanup old mapping
removeOldMapping()
@@ -208,6 +211,7 @@ class InputBindingSetting(
preferences.edit()
.putInt(getInputAxisOrientationKey(axis), if (isHorizontalOrientation()) 0 else 1)
.putInt(getInputAxisButtonKey(axis), value)
+ .putBoolean(getInputAxisInvertedKey(axis),inverted)
// Write next reverse mapping for future cleanup
.putString(reverseKey, getInputAxisKey(axis))
.apply()
@@ -235,7 +239,7 @@ class InputBindingSetting(
*
* @param device InputDevice from which the input event originated.
* @param motionRange MotionRange of the movement
- * @param axisDir Either '-' or '+' (currently unused)
+ * @param axisDir Either '-' or '+'
*/
fun onMotionInput(device: InputDevice, motionRange: MotionRange, axisDir: Char) {
if (!isAxisMappingSupported()) {
@@ -251,8 +255,8 @@ class InputBindingSetting(
} else {
buttonCode
}
- writeAxisMapping(motionRange.axis, button)
- val uiString = "${device.name}: Axis ${motionRange.axis}"
+ writeAxisMapping(motionRange.axis, button, axisDir == '-')
+ val uiString = "${device.name}: Axis ${motionRange.axis}" + axisDir
value = uiString
}
@@ -307,6 +311,11 @@ class InputBindingSetting(
*/
fun getInputAxisButtonKey(axis: Int): String = "${getInputAxisKey(axis)}_GuestButton"
+ /**
+ * Helper function to get the settings key for an whether a gamepad axis is inverted.
+ */
+ fun getInputAxisInvertedKey(axis: Int): String = "${getInputAxisKey(axis)}_Inverted"
+
/**
* Helper function to get the settings key for an gamepad axis orientation.
*/
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.kt
index 070a8f487..064fa700e 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.kt
@@ -7,6 +7,7 @@ package org.citra.citra_emu.features.settings.ui
import android.content.Context
import android.content.Intent
import android.net.Uri
+import android.os.Build
import android.os.Bundle
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
@@ -37,6 +38,7 @@ import org.citra.citra_emu.features.settings.utils.SettingsFile
import org.citra.citra_emu.utils.SystemSaveGame
import org.citra.citra_emu.utils.DirectoryInitialization
import org.citra.citra_emu.utils.InsetsHelper
+import org.citra.citra_emu.utils.RefreshRateUtil
import org.citra.citra_emu.utils.ThemeUtil
class SettingsActivity : AppCompatActivity(), SettingsActivityView {
@@ -49,6 +51,8 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView {
override val settings: Settings get() = settingsViewModel.settings
override fun onCreate(savedInstanceState: Bundle?) {
+ RefreshRateUtil.enforceRefreshRate(this)
+
ThemeUtil.setTheme(this)
super.onCreate(savedInstanceState)
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.kt
index bc55bd5d6..4bd5d3b5f 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.kt
@@ -555,6 +555,21 @@ class SettingsAdapter(
return true
}
+ fun onInputBindingLongClick(setting: InputBindingSetting, position: Int): Boolean {
+ MaterialAlertDialogBuilder(context)
+ .setMessage(R.string.reset_setting_confirmation)
+ .setPositiveButton(android.R.string.ok) { _: DialogInterface, _: Int ->
+ setting.removeOldMapping()
+ notifyItemChanged(position)
+ fragmentView.onSettingChanged()
+ fragmentView.loadSettingsList()
+ }
+ .setNegativeButton(android.R.string.cancel, null)
+ .show()
+
+ return true
+ }
+
fun onClickDisabledSetting(isRuntimeDisabled: Boolean) {
val titleId = if (isRuntimeDisabled)
R.string.setting_not_editable
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt
index d4baf6166..1326401d5 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -16,6 +16,9 @@ import androidx.preference.PreferenceManager
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.citra.citra_emu.CitraApplication
import org.citra.citra_emu.R
+import org.citra.citra_emu.display.ScreenLayout
+import org.citra.citra_emu.display.StereoMode
+import org.citra.citra_emu.display.StereoWhichDisplay
import org.citra.citra_emu.features.settings.model.AbstractBooleanSetting
import org.citra.citra_emu.features.settings.model.AbstractIntSetting
import org.citra.citra_emu.features.settings.model.AbstractSetting
@@ -44,7 +47,6 @@ import org.citra.citra_emu.utils.BirthdayMonth
import org.citra.citra_emu.utils.Log
import org.citra.citra_emu.utils.SystemSaveGame
import org.citra.citra_emu.utils.ThemeUtil
-import org.citra.citra_emu.utils.EmulationMenuSettings
class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) {
private var menuTag: String? = null
@@ -111,20 +113,24 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
}
/** Returns the portrait mode width */
- private fun getWidth(): Int {
- val dm = Resources.getSystem().displayMetrics;
- return if (dm.widthPixels < dm.heightPixels)
- dm.widthPixels
- else
- dm.heightPixels
+ private fun getDimensions(): IntArray {
+ val dm = Resources.getSystem().displayMetrics
+ return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ val wm = settingsActivity.windowManager.maximumWindowMetrics
+ val height = wm.bounds.height().coerceAtLeast(dm.heightPixels)
+ val width = wm.bounds.width().coerceAtLeast(dm.widthPixels)
+ intArrayOf(width, height)
+ } else {
+ intArrayOf(dm.widthPixels, dm.heightPixels)
+ }
}
- private fun getHeight(): Int {
- val dm = Resources.getSystem().displayMetrics;
- return if (dm.widthPixels < dm.heightPixels)
- dm.heightPixels
- else
- dm.widthPixels
+ private fun getSmallerDimension(): Int {
+ return getDimensions().min()
+ }
+
+ private fun getLargerDimension(): Int {
+ return getDimensions().max()
}
private fun addConfigSettings(sl: ArrayList) {
@@ -354,6 +360,15 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.array.regionValues,
)
)
+ add(
+ SwitchSetting(
+ BooleanSetting.APPLY_REGION_FREE_PATCH,
+ R.string.apply_region_free_patch,
+ R.string.apply_region_free_patch_desc,
+ BooleanSetting.APPLY_REGION_FREE_PATCH.key,
+ BooleanSetting.APPLY_REGION_FREE_PATCH.defaultValue
+ )
+ )
val systemCountrySetting = object : AbstractShortSetting {
override var short: Short
get() {
@@ -936,17 +951,30 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
)
add(HeaderSetting(R.string.stereoscopy))
+ add(
+ SingleChoiceSetting(
+ IntSetting.RENDER_3D_WHICH_DISPLAY,
+ R.string.render_3d_which_display,
+ R.string.render_3d_which_display_description,
+ R.array.render3dWhichDisplay,
+ R.array.render3dDisplayValues,
+ IntSetting.RENDER_3D_WHICH_DISPLAY.key,
+ IntSetting.RENDER_3D_WHICH_DISPLAY.defaultValue
+ )
+ )
add(
SingleChoiceSetting(
IntSetting.STEREOSCOPIC_3D_MODE,
R.string.render3d,
- 0,
+ R.string.render3d_description,
R.array.render3dModes,
R.array.render3dValues,
IntSetting.STEREOSCOPIC_3D_MODE.key,
- IntSetting.STEREOSCOPIC_3D_MODE.defaultValue
+ IntSetting.STEREOSCOPIC_3D_MODE.defaultValue,
+ isEnabled = IntSetting.RENDER_3D_WHICH_DISPLAY.int != StereoWhichDisplay.NONE.int
)
)
+
add(
SliderSetting(
IntSetting.STEREOSCOPIC_3D_DEPTH,
@@ -969,6 +997,17 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
)
)
+ add(
+ SwitchSetting(
+ BooleanSetting.SWAP_EYES_3D,
+ R.string.swap_eyes_3d,
+ R.string.swap_eyes_3d_description,
+ BooleanSetting.SWAP_EYES_3D.key,
+ BooleanSetting.SWAP_EYES_3D.defaultValue,
+ isEnabled = IntSetting.RENDER_3D_WHICH_DISPLAY.int != StereoWhichDisplay.NONE.int
+ )
+ )
+
add(HeaderSetting(R.string.cardboard_vr))
add(
SliderSetting(
@@ -979,7 +1018,8 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
100,
"%",
IntSetting.CARDBOARD_SCREEN_SIZE.key,
- IntSetting.CARDBOARD_SCREEN_SIZE.defaultValue.toFloat()
+ IntSetting.CARDBOARD_SCREEN_SIZE.defaultValue.toFloat(),
+ isEnabled = IntSetting.STEREOSCOPIC_3D_MODE.int == StereoMode.CARDBOARD_VR.int
)
)
add(
@@ -991,7 +1031,8 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
100,
"%",
IntSetting.CARDBOARD_X_SHIFT.key,
- IntSetting.CARDBOARD_X_SHIFT.defaultValue.toFloat()
+ IntSetting.CARDBOARD_X_SHIFT.defaultValue.toFloat(),
+ isEnabled = IntSetting.STEREOSCOPIC_3D_MODE.int == StereoMode.CARDBOARD_VR.int
)
)
add(
@@ -1003,7 +1044,8 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
100,
"%",
IntSetting.CARDBOARD_Y_SHIFT.key,
- IntSetting.CARDBOARD_Y_SHIFT.defaultValue.toFloat()
+ IntSetting.CARDBOARD_Y_SHIFT.defaultValue.toFloat(),
+ isEnabled = IntSetting.STEREOSCOPIC_3D_MODE.int == StereoMode.CARDBOARD_VR.int
)
)
@@ -1137,7 +1179,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.array.aspectRatioValues,
IntSetting.ASPECT_RATIO.key,
IntSetting.ASPECT_RATIO.defaultValue,
- isEnabled = IntSetting.SCREEN_LAYOUT.int == 1,
+ isEnabled = IntSetting.SCREEN_LAYOUT.int == ScreenLayout.SINGLE_SCREEN.int,
)
)
add(
@@ -1185,7 +1227,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
"%",
FloatSetting.SECOND_SCREEN_OPACITY.key,
FloatSetting.SECOND_SCREEN_OPACITY.defaultValue,
- isEnabled = IntSetting.SCREEN_LAYOUT.int == 5
+ isEnabled = IntSetting.SCREEN_LAYOUT.int == ScreenLayout.CUSTOM_LAYOUT.int
)
)
add(HeaderSetting(R.string.bg_color, R.string.bg_color_description))
@@ -1396,7 +1438,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_x,
0,
0,
- getHeight(),
+ getLargerDimension(),
"px",
IntSetting.LANDSCAPE_TOP_X.key,
IntSetting.LANDSCAPE_TOP_X.defaultValue.toFloat()
@@ -1408,7 +1450,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_y,
0,
0,
- getWidth(),
+ getSmallerDimension(),
"px",
IntSetting.LANDSCAPE_TOP_Y.key,
IntSetting.LANDSCAPE_TOP_Y.defaultValue.toFloat()
@@ -1420,7 +1462,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_width,
0,
0,
- getHeight(),
+ getLargerDimension(),
"px",
IntSetting.LANDSCAPE_TOP_WIDTH.key,
IntSetting.LANDSCAPE_TOP_WIDTH.defaultValue.toFloat()
@@ -1432,7 +1474,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_height,
0,
0,
- getWidth(),
+ getSmallerDimension(),
"px",
IntSetting.LANDSCAPE_TOP_HEIGHT.key,
IntSetting.LANDSCAPE_TOP_HEIGHT.defaultValue.toFloat()
@@ -1445,7 +1487,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_x,
0,
0,
- getHeight(),
+ getLargerDimension(),
"px",
IntSetting.LANDSCAPE_BOTTOM_X.key,
IntSetting.LANDSCAPE_BOTTOM_X.defaultValue.toFloat()
@@ -1457,7 +1499,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_y,
0,
0,
- getWidth(),
+ getSmallerDimension(),
"px",
IntSetting.LANDSCAPE_BOTTOM_Y.key,
IntSetting.LANDSCAPE_BOTTOM_Y.defaultValue.toFloat()
@@ -1469,7 +1511,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_width,
0,
0,
- getHeight(),
+ getLargerDimension(),
"px",
IntSetting.LANDSCAPE_BOTTOM_WIDTH.key,
IntSetting.LANDSCAPE_BOTTOM_WIDTH.defaultValue.toFloat()
@@ -1481,7 +1523,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_height,
0,
0,
- getWidth(),
+ getSmallerDimension(),
"px",
IntSetting.LANDSCAPE_BOTTOM_HEIGHT.key,
IntSetting.LANDSCAPE_BOTTOM_HEIGHT.defaultValue.toFloat()
@@ -1501,7 +1543,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_x,
0,
0,
- getWidth(),
+ getSmallerDimension(),
"px",
IntSetting.PORTRAIT_TOP_X.key,
IntSetting.PORTRAIT_TOP_X.defaultValue.toFloat()
@@ -1513,7 +1555,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_y,
0,
0,
- getHeight(),
+ getLargerDimension(),
"px",
IntSetting.PORTRAIT_TOP_Y.key,
IntSetting.PORTRAIT_TOP_Y.defaultValue.toFloat()
@@ -1525,7 +1567,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_width,
0,
0,
- getWidth(),
+ getSmallerDimension(),
"px",
IntSetting.PORTRAIT_TOP_WIDTH.key,
IntSetting.PORTRAIT_TOP_WIDTH.defaultValue.toFloat()
@@ -1537,7 +1579,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_height,
0,
0,
- getHeight(),
+ getLargerDimension(),
"px",
IntSetting.PORTRAIT_TOP_HEIGHT.key,
IntSetting.PORTRAIT_TOP_HEIGHT.defaultValue.toFloat()
@@ -1550,7 +1592,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_x,
0,
0,
- getWidth(),
+ getSmallerDimension(),
"px",
IntSetting.PORTRAIT_BOTTOM_X.key,
IntSetting.PORTRAIT_BOTTOM_X.defaultValue.toFloat()
@@ -1562,7 +1604,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_y,
0,
0,
- getHeight(),
+ getLargerDimension(),
"px",
IntSetting.PORTRAIT_BOTTOM_Y.key,
IntSetting.PORTRAIT_BOTTOM_Y.defaultValue.toFloat()
@@ -1574,7 +1616,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_width,
0,
0,
- getWidth(),
+ getSmallerDimension(),
"px",
IntSetting.PORTRAIT_BOTTOM_WIDTH.key,
IntSetting.PORTRAIT_BOTTOM_WIDTH.defaultValue.toFloat()
@@ -1586,7 +1628,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.emulation_custom_layout_height,
0,
0,
- getHeight(),
+ getLargerDimension(),
"px",
IntSetting.PORTRAIT_BOTTOM_HEIGHT.key,
IntSetting.PORTRAIT_BOTTOM_HEIGHT.defaultValue.toFloat()
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/viewholder/InputBindingSettingViewHolder.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/viewholder/InputBindingSettingViewHolder.kt
index 07dc636cd..5d2a812e0 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/viewholder/InputBindingSettingViewHolder.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/viewholder/InputBindingSettingViewHolder.kt
@@ -51,7 +51,7 @@ class InputBindingSettingViewHolder(val binding: ListItemSettingBinding, adapter
override fun onLongClick(clicked: View): Boolean {
if (setting.isEditable) {
- adapter.onLongClick(setting.setting!!, bindingAdapterPosition)
+ adapter.onInputBindingLongClick(setting, bindingAdapterPosition)
} else {
adapter.onClickDisabledSetting(!setting.isEditable)
}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/CitraDirectoryDialogFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/CitraDirectoryDialogFragment.kt
index 43fe1b22a..e663d290b 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/fragments/CitraDirectoryDialogFragment.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/CitraDirectoryDialogFragment.kt
@@ -1,4 +1,4 @@
-// Copyright 2023 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -60,7 +60,7 @@ class CitraDirectoryDialogFragment : DialogFragment() {
}
.setNegativeButton(android.R.string.cancel) { _: DialogInterface?, _: Int ->
if (!PermissionsHandler.hasWriteAccess(requireContext())) {
- (requireActivity() as MainActivity)?.openCitraDirectory?.launch(null)
+ PermissionsHandler.compatibleSelectDirectory((requireActivity() as MainActivity).openCitraDirectory)
}
}
.show()
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/CompressProgressDialogFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/CompressProgressDialogFragment.kt
new file mode 100644
index 000000000..bcd97ae03
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/CompressProgressDialogFragment.kt
@@ -0,0 +1,89 @@
+// Copyright Citra Emulator Project / Azahar Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+package org.citra.citra_emu.fragments
+
+import android.app.Dialog
+import android.os.Bundle
+import android.view.View
+import android.widget.ProgressBar
+import androidx.fragment.app.DialogFragment
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.lifecycle.Lifecycle
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.launch
+import org.citra.citra_emu.R
+import org.citra.citra_emu.viewmodel.CompressProgressDialogViewModel
+import org.citra.citra_emu.NativeLibrary
+
+class CompressProgressDialogFragment : DialogFragment() {
+ private lateinit var progressBar: ProgressBar
+ private var outputPath: String? = null
+ private var isCompressing: Boolean = true
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ arguments?.let {
+ isCompressing = it.getBoolean(ARG_IS_COMPRESSING, true)
+ outputPath = it.getString(ARG_OUTPUT_PATH)
+ }
+ }
+
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val view = layoutInflater.inflate(R.layout.dialog_compress_progress, null)
+ progressBar = view.findViewById(R.id.compress_progress)
+ val label = view.findViewById(R.id.compress_label)
+ label.text = if (isCompressing) getString(R.string.compressing) else getString(R.string.decompressing)
+
+ isCancelable = false
+ progressBar.isIndeterminate = true
+
+ lifecycleScope.launch {
+ repeatOnLifecycle(Lifecycle.State.STARTED) {
+ combine(CompressProgressDialogViewModel.total, CompressProgressDialogViewModel.progress) { total, progress ->
+ total to progress
+ }.collectLatest { (total, progress) ->
+ if (total <= 0) {
+ progressBar.isIndeterminate = true
+ label.visibility = View.GONE
+ } else {
+ progressBar.isIndeterminate = false
+ label.visibility = View.VISIBLE
+ progressBar.max = total
+ progressBar.setProgress(progress, true)
+ }
+ }
+ }
+ }
+
+ val builder = MaterialAlertDialogBuilder(requireContext())
+ .setView(view)
+ .setCancelable(false)
+ .setNegativeButton(android.R.string.cancel) { _: android.content.DialogInterface, _: Int ->
+ outputPath?.let { path ->
+ NativeLibrary.deleteDocument(path)
+ }
+ }
+
+ return builder.show()
+ }
+
+ companion object {
+ const val TAG = "CompressProgressDialog"
+ private const val ARG_IS_COMPRESSING = "isCompressing"
+ private const val ARG_OUTPUT_PATH = "outputPath"
+
+ fun newInstance(isCompressing: Boolean, outputPath: String?): CompressProgressDialogFragment {
+ val frag = CompressProgressDialogFragment()
+ val args = Bundle()
+ args.putBoolean(ARG_IS_COMPRESSING, isCompressing)
+ args.putString(ARG_OUTPUT_PATH, outputPath)
+ frag.arguments = args
+ return frag
+ }
+ }
+}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/EmulationFragment.kt
index 419919527..30b22cc64 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/EmulationFragment.kt
@@ -13,6 +13,7 @@ import android.content.IntentFilter
import android.content.SharedPreferences
import android.net.Uri
import android.os.BatteryManager
+import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
@@ -144,6 +145,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
}
}
+ val insertedCartridge = preferences.getString("insertedCartridge", "")
+ NativeLibrary.setInsertedCartridge(insertedCartridge ?: "")
+
try {
game = args.game ?: intentGame!!
} catch (e: NullPointerException) {
@@ -1019,12 +1023,13 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
// Buttons that are disabled by default
var defaultValue = true
when (i) {
+ // TODO: Remove these magic numbers
6, 7, 12, 13, 14, 15 -> defaultValue = false
}
enabledButtons[i] = preferences.getBoolean("buttonToggle$i", defaultValue)
}
- MaterialAlertDialogBuilder(requireContext())
+ val dialog = MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.emulation_toggle_controls)
.setMultiChoiceItems(
R.array.n3dsButtons, enabledButtons
@@ -1036,6 +1041,17 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
binding.surfaceInputOverlay.refreshControls()
}
.show()
+
+ // Band-aid fix for strange dialog flickering issue
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ val displayMetrics = requireActivity().windowManager.currentWindowMetrics
+ val displayHeight = displayMetrics.bounds.height()
+ // The layout visually breaks if we try to set the height directly rather than like this.
+ // Why? Fuck you, that's why!
+ val newAttributes = dialog.window?.attributes
+ newAttributes?.height = (displayHeight * 0.85f).toInt()
+ dialog.window?.attributes = newAttributes
+ }
}
private fun showAdjustScaleDialog(target: String) {
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/GamesFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/GamesFragment.kt
index b224c5c15..9ade73c83 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/fragments/GamesFragment.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/GamesFragment.kt
@@ -30,14 +30,17 @@ import androidx.recyclerview.widget.GridLayoutManager
import com.google.android.material.color.MaterialColors
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.transition.MaterialFadeThrough
+import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import org.citra.citra_emu.CitraApplication
+import org.citra.citra_emu.NativeLibrary
import org.citra.citra_emu.R
import org.citra.citra_emu.adapters.GameAdapter
import org.citra.citra_emu.databinding.FragmentGamesBinding
import org.citra.citra_emu.features.settings.model.Settings
import org.citra.citra_emu.model.Game
+import org.citra.citra_emu.viewmodel.CompressProgressDialogViewModel
import org.citra.citra_emu.viewmodel.GamesViewModel
import org.citra.citra_emu.viewmodel.HomeViewModel
@@ -56,6 +59,58 @@ class GamesFragment : Fragment() {
gameAdapter.handleShortcutImageResult(uri)
}
+ private var shouldCompress: Boolean = true
+ private var pendingCompressInvocation: String? = null
+
+ companion object {
+ fun doCompression(fragment: Fragment, gamesViewModel: GamesViewModel, inputPath: String?, outputUri: Uri?, shouldCompress: Boolean) {
+ if (outputUri != null) {
+ CompressProgressDialogViewModel.reset()
+ val dialog = CompressProgressDialogFragment.newInstance(shouldCompress, outputUri.toString())
+ dialog.showNow(
+ fragment.requireActivity().supportFragmentManager,
+ CompressProgressDialogFragment.TAG
+ )
+
+ fragment.lifecycleScope.launch(Dispatchers.IO) {
+ val status = if (shouldCompress) {
+ NativeLibrary.compressFile(inputPath, outputUri.toString())
+ } else {
+ NativeLibrary.decompressFile(inputPath, outputUri.toString())
+ }
+
+ fragment.requireActivity().runOnUiThread {
+ dialog.dismiss()
+ val resId = when (status) {
+ NativeLibrary.CompressStatus.SUCCESS -> if (shouldCompress) R.string.compress_success else R.string.decompress_success
+ NativeLibrary.CompressStatus.COMPRESS_UNSUPPORTED -> R.string.compress_unsupported
+ NativeLibrary.CompressStatus.COMPRESS_ALREADY_COMPRESSED -> R.string.compress_already
+ NativeLibrary.CompressStatus.COMPRESS_FAILED -> R.string.compress_failed
+ NativeLibrary.CompressStatus.DECOMPRESS_UNSUPPORTED -> R.string.decompress_unsupported
+ NativeLibrary.CompressStatus.DECOMPRESS_NOT_COMPRESSED -> R.string.decompress_not_compressed
+ NativeLibrary.CompressStatus.DECOMPRESS_FAILED -> R.string.decompress_failed
+ NativeLibrary.CompressStatus.INSTALLED_APPLICATION -> R.string.compress_decompress_installed_app
+ }
+
+ MaterialAlertDialogBuilder(fragment.requireContext())
+ .setMessage(fragment.getString(resId))
+ .setPositiveButton(android.R.string.ok, null)
+ .show()
+
+ gamesViewModel.reloadGames(false)
+ }
+ }
+ }
+ }
+ }
+
+ private val onCompressDecompressLauncher = registerForActivityResult(
+ ActivityResultContracts.CreateDocument("application/octet-stream")
+ ) { uri: Uri? ->
+ doCompression(this, gamesViewModel, pendingCompressInvocation, uri, shouldCompress)
+ pendingCompressInvocation = null
+ }
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enterTransition = MaterialFadeThrough()
@@ -81,7 +136,12 @@ class GamesFragment : Fragment() {
gameAdapter = GameAdapter(
requireActivity() as AppCompatActivity,
inflater,
- openImageLauncher
+ openImageLauncher,
+ onRequestCompressOrDecompress = { inputPath, suggestedName, shouldCompress ->
+ pendingCompressInvocation = inputPath
+ onCompressDecompressLauncher.launch(suggestedName)
+ this.shouldCompress = shouldCompress
+ }
)
binding.gridGames.apply {
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/GrantMissingFilesystemPermissionFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/GrantMissingFilesystemPermissionFragment.kt
new file mode 100644
index 000000000..e07787c52
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/GrantMissingFilesystemPermissionFragment.kt
@@ -0,0 +1,81 @@
+// Copyright Citra Emulator Project / Azahar Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+package org.citra.citra_emu.fragments
+
+import android.Manifest
+import android.app.Dialog
+import android.content.DialogInterface
+import android.content.Intent
+import android.net.Uri
+import android.os.Build
+import android.os.Bundle
+import android.os.Environment
+import android.provider.Settings
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.annotation.RequiresApi
+import androidx.fragment.app.DialogFragment
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import org.citra.citra_emu.R
+import org.citra.citra_emu.ui.main.MainActivity
+import org.citra.citra_emu.utils.BuildUtil
+
+class GrantMissingFilesystemPermissionFragment : DialogFragment() {
+ private lateinit var mainActivity: MainActivity
+
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ BuildUtil.assertNotGooglePlay()
+ mainActivity = requireActivity() as MainActivity
+
+ isCancelable = false
+
+ val requestPermissionFunction =
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ {
+ manageExternalStoragePermissionLauncher.launch(
+ Intent(
+ Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION,
+ Uri.fromParts("package", mainActivity.packageName, null)
+ )
+ )
+ }
+ } else {
+ { permissionLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE) }
+ }
+
+
+
+ return MaterialAlertDialogBuilder(requireContext())
+ .setTitle(R.string.filesystem_permission_warning)
+ .setMessage(R.string.filesystem_permission_lost)
+ .setPositiveButton(android.R.string.ok) { _: DialogInterface, _: Int ->
+ requestPermissionFunction()
+ }
+ .show()
+ }
+
+ @RequiresApi(Build.VERSION_CODES.R)
+ private val manageExternalStoragePermissionLauncher =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
+ if (Environment.isExternalStorageManager()) {
+ return@registerForActivityResult
+ }
+ }
+
+ private val permissionLauncher =
+ registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
+ if (isGranted) {
+ return@registerForActivityResult
+ }
+ }
+
+ companion object {
+ const val TAG = "GrantMissingFilesystemPermissionFragment"
+
+ fun newInstance(): GrantMissingFilesystemPermissionFragment {
+ BuildUtil.assertNotGooglePlay()
+ return GrantMissingFilesystemPermissionFragment()
+ }
+ }
+}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/HomeSettingsFragment.kt
index 432a06aa0..63c435531 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/fragments/HomeSettingsFragment.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/HomeSettingsFragment.kt
@@ -159,7 +159,7 @@ class HomeSettingsFragment : Fragment() {
R.string.select_citra_user_folder,
R.string.select_citra_user_folder_home_description,
R.drawable.ic_home,
- { mainActivity?.openCitraDirectory?.launch(null) },
+ { PermissionsHandler.compatibleSelectDirectory(mainActivity.openCitraDirectory) },
details = homeViewModel.userDir
),
HomeSetting(
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/SearchFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/SearchFragment.kt
index 94821023f..dab5ea745 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/fragments/SearchFragment.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/SearchFragment.kt
@@ -7,11 +7,13 @@ package org.citra.citra_emu.fragments
import android.annotation.SuppressLint
import android.content.Context
import android.content.SharedPreferences
+import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
@@ -26,18 +28,19 @@ import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.GridLayoutManager
import info.debatty.java.stringsimilarity.Jaccard
import info.debatty.java.stringsimilarity.JaroWinkler
+import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.citra.citra_emu.CitraApplication
import org.citra.citra_emu.R
+import org.citra.citra_emu.NativeLibrary
import org.citra.citra_emu.adapters.GameAdapter
import org.citra.citra_emu.databinding.FragmentSearchBinding
import org.citra.citra_emu.model.Game
+import org.citra.citra_emu.viewmodel.CompressProgressDialogViewModel
import org.citra.citra_emu.viewmodel.GamesViewModel
import org.citra.citra_emu.viewmodel.HomeViewModel
import java.time.temporal.ChronoField
import java.util.Locale
-import android.net.Uri
-import androidx.activity.result.contract.ActivityResultContracts
class SearchFragment : Fragment() {
private var _binding: FragmentSearchBinding? = null
@@ -53,6 +56,15 @@ class SearchFragment : Fragment() {
gameAdapter.handleShortcutImageResult(uri)
}
+ private var shouldCompress: Boolean = true
+ private var pendingCompressInvocation: String? = null
+ private val onCompressDecompressLauncher = registerForActivityResult(
+ ActivityResultContracts.CreateDocument("application/octet-stream")
+ ) { uri: Uri? ->
+ GamesFragment.doCompression(this, gamesViewModel, pendingCompressInvocation, uri, shouldCompress)
+ pendingCompressInvocation = null
+ }
+
private lateinit var preferences: SharedPreferences
companion object {
@@ -85,7 +97,13 @@ class SearchFragment : Fragment() {
gameAdapter = GameAdapter(
requireActivity() as AppCompatActivity,
inflater,
- openImageLauncher
+ openImageLauncher,
+ onRequestCompressOrDecompress = { inputPath, suggestedName, shouldCompress ->
+ pendingCompressInvocation = inputPath
+ onCompressDecompressLauncher.launch(suggestedName)
+ this.shouldCompress = shouldCompress
+ }
+
)
binding.gridGamesSearch.apply {
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/SelectUserDirectoryDialogFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/SelectUserDirectoryDialogFragment.kt
index 988f90ccc..f0f945860 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/fragments/SelectUserDirectoryDialogFragment.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/SelectUserDirectoryDialogFragment.kt
@@ -13,21 +13,25 @@ import androidx.lifecycle.ViewModelProvider
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.citra.citra_emu.R
import org.citra.citra_emu.ui.main.MainActivity
+import org.citra.citra_emu.utils.PermissionsHandler
import org.citra.citra_emu.viewmodel.HomeViewModel
-class SelectUserDirectoryDialogFragment : DialogFragment() {
+class SelectUserDirectoryDialogFragment(titleOverride: Int? = null, descriptionOverride: Int? = null) : DialogFragment() {
private lateinit var mainActivity: MainActivity
+ private val title = titleOverride ?: R.string.select_citra_user_folder
+ private val description = descriptionOverride ?: R.string.selecting_user_directory_without_write_permissions
+
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
mainActivity = requireActivity() as MainActivity
isCancelable = false
return MaterialAlertDialogBuilder(requireContext())
- .setTitle(R.string.select_citra_user_folder)
- .setMessage(R.string.selecting_user_directory_without_write_permissions)
+ .setTitle(title)
+ .setMessage(description)
.setPositiveButton(android.R.string.ok) { _: DialogInterface, _: Int ->
- mainActivity?.openCitraDirectoryLostPermission?.launch(null)
+ PermissionsHandler.compatibleSelectDirectory(mainActivity.openCitraDirectoryLostPermission)
}
.show()
}
@@ -35,9 +39,10 @@ class SelectUserDirectoryDialogFragment : DialogFragment() {
companion object {
const val TAG = "SelectUserDirectoryDialogFragment"
- fun newInstance(activity: FragmentActivity): SelectUserDirectoryDialogFragment {
+ fun newInstance(activity: FragmentActivity, titleOverride: Int? = null, descriptionOverride: Int? = null):
+ SelectUserDirectoryDialogFragment {
ViewModelProvider(activity)[HomeViewModel::class.java].setPickingUserDir(true)
- return SelectUserDirectoryDialogFragment()
+ return SelectUserDirectoryDialogFragment(titleOverride, descriptionOverride)
}
}
}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/fragments/SetupFragment.kt b/src/android/app/src/main/java/org/citra/citra_emu/fragments/SetupFragment.kt
index fa47f99b8..0a25044ea 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/fragments/SetupFragment.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/fragments/SetupFragment.kt
@@ -11,11 +11,13 @@ import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
+import android.os.Environment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.activity.OnBackPressedCallback
import androidx.activity.result.contract.ActivityResultContracts
+import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
@@ -30,7 +32,9 @@ import androidx.preference.PreferenceManager
import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.transition.MaterialFadeThrough
+import org.citra.citra_emu.BuildConfig
import org.citra.citra_emu.CitraApplication
+import org.citra.citra_emu.NativeLibrary
import org.citra.citra_emu.R
import org.citra.citra_emu.adapters.SetupAdapter
import org.citra.citra_emu.databinding.FragmentSetupBinding
@@ -41,6 +45,7 @@ import org.citra.citra_emu.model.PageState
import org.citra.citra_emu.model.SetupCallback
import org.citra.citra_emu.model.SetupPage
import org.citra.citra_emu.ui.main.MainActivity
+import org.citra.citra_emu.utils.BuildUtil
import org.citra.citra_emu.utils.CitraDirectoryHelper
import org.citra.citra_emu.utils.GameHelper
import org.citra.citra_emu.utils.PermissionsHandler
@@ -142,7 +147,56 @@ class SetupFragment : Fragment() {
false,
0,
pageButtons = mutableListOf().apply {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ if (!BuildUtil.isGooglePlayBuild) {
+ add(
+ PageButton(
+ R.drawable.ic_folder,
+ R.string.filesystem_permission,
+ R.string.filesystem_permission_description,
+ buttonAction = {
+ pageButtonCallback = it
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ manageExternalStoragePermissionLauncher.launch(
+ Intent(
+ android.provider.Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION,
+ Uri.fromParts(
+ "package",
+ requireActivity().packageName,
+ null
+ )
+ )
+ )
+ } else {
+ permissionLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ }
+ },
+ buttonState = {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ if (Environment.isExternalStorageManager()) {
+ ButtonState.BUTTON_ACTION_COMPLETE
+ } else {
+ ButtonState.BUTTON_ACTION_INCOMPLETE
+ }
+ } else {
+ if (ContextCompat.checkSelfPermission(
+ requireContext(),
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
+ ) == PackageManager.PERMISSION_GRANTED
+ ) {
+ ButtonState.BUTTON_ACTION_COMPLETE
+ } else {
+ ButtonState.BUTTON_ACTION_INCOMPLETE
+ }
+ }
+ },
+ isUnskippable = true,
+ hasWarning = true,
+ R.string.filesystem_permission_warning,
+ R.string.filesystem_permission_warning_description,
+ )
+ )
+ }
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
add(
PageButton(
R.drawable.ic_notification,
@@ -214,18 +268,35 @@ class SetupFragment : Fragment() {
)
},
) {
- if (
+ var permissionsComplete =
+ // Microphone
ContextCompat.checkSelfPermission(
requireContext(),
Manifest.permission.RECORD_AUDIO
) == PackageManager.PERMISSION_GRANTED &&
+ // Camera
ContextCompat.checkSelfPermission(
requireContext(),
Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED &&
+ // Notifications
NotificationManagerCompat.from(requireContext())
.areNotificationsEnabled()
- ) {
+ // External Storage
+ if (!BuildUtil.isGooglePlayBuild) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ permissionsComplete =
+ (permissionsComplete && Environment.isExternalStorageManager())
+ } else {
+ permissionsComplete =
+ (permissionsComplete && ContextCompat.checkSelfPermission(
+ requireContext(),
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
+ ) == PackageManager.PERMISSION_GRANTED)
+ }
+ }
+
+ if (permissionsComplete) {
PageState.PAGE_STEPS_COMPLETE
} else {
PageState.PAGE_STEPS_INCOMPLETE
@@ -249,7 +320,7 @@ class SetupFragment : Fragment() {
R.string.select_citra_user_folder_description,
buttonAction = {
pageButtonCallback = it
- openCitraDirectory.launch(null)
+ PermissionsHandler.compatibleSelectDirectory(openCitraDirectory)
},
buttonState = {
if (PermissionsHandler.hasWriteAccess(requireContext())) {
@@ -452,6 +523,19 @@ class SetupFragment : Fragment() {
}
}
+ private fun showPermissionDeniedSnackbar() {
+ Snackbar.make(binding.root, R.string.permission_denied, Snackbar.LENGTH_LONG)
+ .setAnchorView(binding.buttonNext)
+ .setAction(R.string.grid_menu_core_settings) {
+ val intent =
+ Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+ val uri = Uri.fromParts("package", requireActivity().packageName, null)
+ intent.data = uri
+ startActivity(intent)
+ }
+ .show()
+ }
+
private val permissionLauncher =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
if (isGranted) {
@@ -459,16 +543,20 @@ class SetupFragment : Fragment() {
return@registerForActivityResult
}
- Snackbar.make(binding.root, R.string.permission_denied, Snackbar.LENGTH_LONG)
- .setAnchorView(binding.buttonNext)
- .setAction(R.string.grid_menu_core_settings) {
- val intent =
- Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
- val uri = Uri.fromParts("package", requireActivity().packageName, null)
- intent.data = uri
- startActivity(intent)
- }
- .show()
+ showPermissionDeniedSnackbar()
+ }
+
+ // We can't use permissionLauncher because MANAGE_EXTERNAL_STORAGE is a special snowflake
+ @RequiresApi(Build.VERSION_CODES.R)
+ private val manageExternalStoragePermissionLauncher =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
+ BuildUtil.assertNotGooglePlay()
+ if (Environment.isExternalStorageManager()) {
+ checkForButtonState.invoke()
+ return@registerForActivityResult
+ }
+
+ showPermissionDeniedSnackbar()
}
private val openCitraDirectory = registerForActivityResult(
@@ -478,6 +566,17 @@ class SetupFragment : Fragment() {
return@registerForActivityResult
}
+ if (!BuildUtil.isGooglePlayBuild) {
+ if (NativeLibrary.getUserDirectory(result) == "") {
+ SelectUserDirectoryDialogFragment.newInstance(
+ mainActivity,
+ R.string.invalid_selection,
+ R.string.invalid_user_directory
+ ).show(mainActivity.supportFragmentManager, SelectUserDirectoryDialogFragment.TAG)
+ return@registerForActivityResult
+ }
+ }
+
CitraDirectoryHelper(requireActivity(), true).showCitraDirectoryDialog(result, pageButtonCallback, checkForButtonState)
}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/model/Game.kt b/src/android/app/src/main/java/org/citra/citra_emu/model/Game.kt
index 9ff7600ec..797b7a262 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/model/Game.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/model/Game.kt
@@ -25,8 +25,10 @@ class Game(
val isInstalled: Boolean = false,
val isSystemTitle: Boolean = false,
val isVisibleSystemTitle: Boolean = false,
+ val isInsertable: Boolean = false,
val icon: IntArray? = null,
val fileType: String = "",
+ val isCompressed: Boolean = false,
val filename: String,
) : Parcelable {
val keyAddedToLibraryTime get() = "${filename}_AddedToLibraryTime"
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/model/GameInfo.kt b/src/android/app/src/main/java/org/citra/citra_emu/model/GameInfo.kt
index 817e5fdec..494d7bf75 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/model/GameInfo.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/model/GameInfo.kt
@@ -37,6 +37,8 @@ class GameInfo(path: String) {
external fun getFileType(): String
+ external fun getIsInsertable(): Boolean
+
companion object {
@JvmStatic
private external fun initialize(path: String): Long
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.kt
index 37bff3396..e1416bd37 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.kt
@@ -4,9 +4,13 @@
package org.citra.citra_emu.ui.main
+import android.Manifest
import android.content.Intent
+import android.content.pm.PackageManager
import android.net.Uri
+import android.os.Build
import android.os.Bundle
+import android.os.Environment
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
import android.view.WindowManager
@@ -36,6 +40,8 @@ import androidx.work.WorkManager
import com.google.android.material.color.MaterialColors
import com.google.android.material.navigation.NavigationBarView
import kotlinx.coroutines.launch
+import org.citra.citra_emu.BuildConfig
+import org.citra.citra_emu.NativeLibrary
import org.citra.citra_emu.R
import org.citra.citra_emu.contracts.OpenFileResultContract
import org.citra.citra_emu.databinding.ActivityMainBinding
@@ -43,14 +49,17 @@ import org.citra.citra_emu.features.settings.model.Settings
import org.citra.citra_emu.features.settings.model.SettingsViewModel
import org.citra.citra_emu.features.settings.ui.SettingsActivity
import org.citra.citra_emu.features.settings.utils.SettingsFile
+import org.citra.citra_emu.fragments.GrantMissingFilesystemPermissionFragment
import org.citra.citra_emu.fragments.SelectUserDirectoryDialogFragment
import org.citra.citra_emu.fragments.UpdateUserDirectoryDialogFragment
+import org.citra.citra_emu.utils.BuildUtil
import org.citra.citra_emu.utils.CiaInstallWorker
import org.citra.citra_emu.utils.CitraDirectoryHelper
import org.citra.citra_emu.utils.CitraDirectoryUtils
import org.citra.citra_emu.utils.DirectoryInitialization
import org.citra.citra_emu.utils.FileBrowserHelper
import org.citra.citra_emu.utils.InsetsHelper
+import org.citra.citra_emu.utils.RefreshRateUtil
import org.citra.citra_emu.utils.PermissionsHandler
import org.citra.citra_emu.utils.ThemeUtil
import org.citra.citra_emu.viewmodel.GamesViewModel
@@ -66,6 +75,8 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
override var themeId: Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
+ RefreshRateUtil.enforceRefreshRate(this)
+
val splashScreen = installSplashScreen()
CitraDirectoryUtils.attemptAutomaticUpdateDirectory()
splashScreen.setKeepOnScreenCondition {
@@ -185,14 +196,53 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
val firstTimeSetup = PreferenceManager.getDefaultSharedPreferences(applicationContext)
.getBoolean(Settings.PREF_FIRST_APP_LAUNCH, true)
- if (!firstTimeSetup && !PermissionsHandler.hasWriteAccess(this) &&
- !homeViewModel.isPickingUserDir.value
- ) {
+ if (firstTimeSetup) {
+ return
+ }
+
+ if (!BuildUtil.isGooglePlayBuild) {
+ fun requestMissingFilesystemPermission() =
+ GrantMissingFilesystemPermissionFragment.newInstance()
+ .show(supportFragmentManager, GrantMissingFilesystemPermissionFragment.TAG)
+
+ if (supportFragmentManager.findFragmentByTag(GrantMissingFilesystemPermissionFragment.TAG) == null) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ if (!Environment.isExternalStorageManager()) {
+ requestMissingFilesystemPermission()
+ }
+ } else {
+ if (ContextCompat.checkSelfPermission(
+ this,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
+ ) != PackageManager.PERMISSION_GRANTED
+ ) {
+ requestMissingFilesystemPermission()
+ }
+ }
+ }
+ }
+
+ if (homeViewModel.isPickingUserDir.value) {
+ return
+ }
+
+ if (!PermissionsHandler.hasWriteAccess(this)) {
SelectUserDirectoryDialogFragment.newInstance(this)
.show(supportFragmentManager, SelectUserDirectoryDialogFragment.TAG)
- } else if (!firstTimeSetup && !homeViewModel.isPickingUserDir.value && CitraDirectoryUtils.needToUpdateManually()) {
+ return
+ } else if (CitraDirectoryUtils.needToUpdateManually()) {
UpdateUserDirectoryDialogFragment.newInstance(this)
.show(supportFragmentManager,UpdateUserDirectoryDialogFragment.TAG)
+ return
+ }
+
+ if (!BuildUtil.isGooglePlayBuild) {
+ if (supportFragmentManager.findFragmentByTag(SelectUserDirectoryDialogFragment.TAG) == null) {
+ if (NativeLibrary.getUserDirectory() == "") {
+ SelectUserDirectoryDialogFragment.newInstance(this)
+ .show(supportFragmentManager, SelectUserDirectoryDialogFragment.TAG)
+ }
+ }
}
}
@@ -316,6 +366,17 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
return@registerForActivityResult
}
+ if (!BuildUtil.isGooglePlayBuild) {
+ if (NativeLibrary.getUserDirectory(result) == "") {
+ SelectUserDirectoryDialogFragment.newInstance(
+ this,
+ R.string.invalid_selection,
+ R.string.invalid_user_directory
+ ).show(supportFragmentManager, SelectUserDirectoryDialogFragment.TAG)
+ return@registerForActivityResult
+ }
+ }
+
CitraDirectoryHelper(this@MainActivity, permissionsLost)
.showCitraDirectoryDialog(result, buttonState = {})
}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/BuildUtil.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/BuildUtil.kt
new file mode 100644
index 000000000..71c2a9b76
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/BuildUtil.kt
@@ -0,0 +1,25 @@
+// Copyright Citra Emulator Project / Azahar Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+package org.citra.citra_emu.utils
+
+import org.citra.citra_emu.BuildConfig
+
+object BuildUtil {
+ @Suppress("unused")
+ object BuildFlavors {
+ const val GOOGLEPLAY = "googlePlay"
+ const val VANILLA = "vanilla"
+ }
+
+ fun assertNotGooglePlay() {
+ if (isGooglePlayBuild) {
+ error("Non-GooglePlay code being called in GooglePlay build")
+ }
+ }
+
+ @Suppress("SimplifyBooleanWithConstants", "KotlinConstantConditions")
+ val isGooglePlayBuild =
+ BuildConfig.FLAVOR == BuildFlavors.GOOGLEPLAY
+}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/DirectoryInitialization.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/DirectoryInitialization.kt
index 1365c3722..e41b7c6db 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/utils/DirectoryInitialization.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/DirectoryInitialization.kt
@@ -1,4 +1,4 @@
-// Copyright 2023 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -28,8 +28,8 @@ object DirectoryInitialization {
@Volatile
private var directoryState: DirectoryInitializationState? = null
var userPath: String? = null
- val internalUserPath
- get() = CitraApplication.appContext.getExternalFilesDir(null)!!.canonicalPath
+ val internalUserPath: String
+ get() = CitraApplication.appContext.filesDir.canonicalPath
private val isCitraDirectoryInitializationRunning = AtomicBoolean(false)
val context: Context get() = CitraApplication.appContext
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/DocumentsTree.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/DocumentsTree.kt
index e2b015d47..d5c4f791d 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/utils/DocumentsTree.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/DocumentsTree.kt
@@ -6,10 +6,12 @@ package org.citra.citra_emu.utils
import android.net.Uri
import android.provider.DocumentsContract
+import androidx.core.net.toUri
import androidx.documentfile.provider.DocumentFile
import org.citra.citra_emu.CitraApplication
import org.citra.citra_emu.model.CheapDocument
import java.net.URLDecoder
+import java.nio.file.Paths
import java.util.StringTokenizer
import java.util.concurrent.ConcurrentHashMap
@@ -191,7 +193,7 @@ class DocumentsTree {
}
@Synchronized
- fun renameFile(filepath: String, destinationFilename: String?): Boolean {
+ fun renameFile(filepath: String, destinationFilename: String): Boolean {
val node = resolvePath(filepath) ?: return false
try {
val filename = URLDecoder.decode(destinationFilename, FileUtil.DECODE_METHOD)
@@ -203,6 +205,20 @@ class DocumentsTree {
}
}
+ @Synchronized
+ fun moveFile(filename: String, sourceDirPath: String, destDirPath: String): Boolean {
+ val sourceFileNode = resolvePath(sourceDirPath + "/" + filename) ?: return false
+ val sourceDirNode = resolvePath(sourceDirPath) ?: return false
+ val destDirNode = resolvePath(destDirPath) ?: return false
+ try {
+ val newUri = DocumentsContract.moveDocument(context.contentResolver, sourceFileNode.uri!!, sourceDirNode.uri!!, destDirNode.uri!!)
+ updateDocumentLocation("$sourceDirPath/$filename", "$destDirPath/$filename")
+ return true
+ } catch (e: Exception) {
+ error("[DocumentsTree]: Cannot move file, error: " + e.message)
+ }
+ }
+
@Synchronized
fun deleteDocument(filepath: String): Boolean {
val node = resolvePath(filepath) ?: return false
@@ -219,6 +235,29 @@ class DocumentsTree {
}
}
+ @Synchronized
+ fun updateDocumentLocation(sourcePath: String, destinationPath: String): Boolean {
+ val sourceNode = resolvePath(sourcePath)
+ val newName = Paths.get(destinationPath).fileName.toString()
+ val parentPath = Paths.get(destinationPath).parent.toString()
+ val newParent = resolvePath(parentPath)
+ val newUri = (getUri(parentPath).toString() + "%2F$newName").toUri() // <- Is there a better way?
+
+ if (sourceNode == null || newParent == null) {
+ return false
+ }
+
+ sourceNode.parent!!.removeChild(sourceNode)
+
+ sourceNode.name = newName
+ sourceNode.parent = newParent
+ sourceNode.uri = newUri
+
+ newParent.addChild(sourceNode)
+
+ return true
+ }
+
@Synchronized
private fun resolvePath(filepath: String): DocumentsNode? {
root ?: return null
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/FileUtil.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/FileUtil.kt
index 402a23857..9d9063c59 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/utils/FileUtil.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/FileUtil.kt
@@ -1,4 +1,4 @@
-// Copyright 2023 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -11,6 +11,7 @@ import android.net.Uri
import android.provider.DocumentsContract
import android.system.Os
import android.util.Pair
+import androidx.core.net.toUri
import androidx.documentfile.provider.DocumentFile
import org.citra.citra_emu.CitraApplication
import org.citra.citra_emu.model.CheapDocument
@@ -434,6 +435,20 @@ object FileUtil {
return false
}
+ @JvmStatic
+ fun moveFile(filename: String, sourceDirUriString: String, destDirUriString: String): Boolean {
+ try {
+ val sourceFileUri = ("$sourceDirUriString%2F$filename").toUri()
+ val sourceDirUri = sourceDirUriString.toUri()
+ val destDirUri = destDirUriString.toUri()
+ DocumentsContract.moveDocument(context.contentResolver, sourceFileUri, sourceDirUri, destDirUri)
+ return true
+ } catch (e: Exception) {
+ Log.error("[FileUtil]: Cannot move file, error: " + e.message)
+ }
+ return false
+ }
+
@JvmStatic
fun deleteDocument(path: String): Boolean {
try {
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/GameHelper.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/GameHelper.kt
index ffbeaf394..90b011114 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/utils/GameHelper.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/GameHelper.kt
@@ -88,8 +88,10 @@ object GameHelper {
isInstalled,
gameInfo?.isSystemTitle() ?: false,
gameInfo?.getIsVisibleSystemTitle() ?: false,
+ gameInfo?.getIsInsertable() ?: false,
gameInfo?.getIcon(),
gameInfo?.getFileType() ?: "",
+ gameInfo?.getFileType()?.contains("(Z)") ?: false,
if (FileUtil.isNativePath(filePath)) {
CitraApplication.documentsTree.getFilename(filePath)
} else {
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/PermissionsHandler.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/PermissionsHandler.kt
index 8f1e9193f..6ea04c779 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/utils/PermissionsHandler.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/PermissionsHandler.kt
@@ -8,6 +8,9 @@ import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.net.Uri
+import android.os.Build
+import android.provider.DocumentsContract
+import androidx.activity.result.ActivityResultLauncher
import androidx.preference.PreferenceManager
import androidx.documentfile.provider.DocumentFile
import org.citra.citra_emu.CitraApplication
@@ -48,4 +51,17 @@ object PermissionsHandler {
fun setCitraDirectory(uriString: String?) =
preferences.edit().putString(CITRA_DIRECTORY, uriString).apply()
+
+ fun compatibleSelectDirectory(activityLauncher: ActivityResultLauncher) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ activityLauncher.launch(null)
+ } else {
+ val initialUri = DocumentsContract.buildRootUri(
+ "com.android.externalstorage.documents",
+ "primary"
+ )
+ activityLauncher.launch(initialUri)
+ }
+
+ }
}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/RefreshRateUtil.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/RefreshRateUtil.kt
new file mode 100644
index 000000000..675fe6702
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/RefreshRateUtil.kt
@@ -0,0 +1,53 @@
+// Copyright Citra Emulator Project / Azahar Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+package org.citra.citra_emu.utils
+import android.app.Activity
+import android.os.Build
+import androidx.annotation.RequiresApi
+
+object RefreshRateUtil {
+ // Since Android 15, the OS automatically runs apps categorized as games with a
+ // 60hz refresh rate by default, regardless of the refresh rate set by the user.
+ //
+ // This function sets the refresh rate to either the maximum allowed refresh rate or
+ // 60hz depending on the value of the `sixtyHz` parameter.
+ //
+ // Note: This isn't always the maximum refresh rate that the display is *capable of*,
+ // but is instead the refresh rate chosen by the user in the Android system settings.
+ // For example, if the user selected 120hz in the settings, but the display is capable
+ // of 144hz, 120hz will be treated as the maximum within this function.
+ fun enforceRefreshRate(activity: Activity, sixtyHz: Boolean = false) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
+ return
+ }
+
+ val display = activity.display
+ val window = activity.window
+
+ display?.let {
+ // Get all supported modes and find the one with the highest refresh rate
+ val supportedModes = it.supportedModes
+ val maxRefreshRate = supportedModes.maxByOrNull { mode -> mode.refreshRate }
+
+ if (maxRefreshRate == null) {
+ return
+ }
+
+ var newModeId: Int?
+ if (sixtyHz) {
+ newModeId = supportedModes.firstOrNull { mode -> mode.refreshRate == 60f }?.modeId
+ } else {
+ // Set the preferred display mode to the one with the highest refresh rate
+ newModeId = maxRefreshRate.modeId
+ }
+
+ if (newModeId == null) {
+ return
+ }
+
+ window.attributes.preferredDisplayModeId = newModeId
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/RemovableStorageHelper.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/RemovableStorageHelper.kt
new file mode 100644
index 000000000..82c4b9ffd
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/RemovableStorageHelper.kt
@@ -0,0 +1,31 @@
+// Copyright Citra Emulator Project / Azahar Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+package org.citra.citra_emu.utils
+
+import org.citra.citra_emu.utils.BuildUtil
+import java.io.File
+
+object RemovableStorageHelper {
+ // This really shouldn't be necessary, but the Android API seemingly
+ // doesn't have a way of doing this?
+ fun getRemovableStoragePath(idString: String): String? {
+ BuildUtil.assertNotGooglePlay()
+
+ // On certain Android flavours the external storage mount location can
+ // vary, so add extra cases here if we discover them.
+ val possibleMountPaths = listOf("/mnt/media_rw/$idString", "/storage/$idString")
+
+ for (mountPath in possibleMountPaths) {
+ val pathFile = File(mountPath);
+ if (pathFile.exists()) {
+ // TODO: Cache which mount location is being used for the remainder of the
+ // session, as it should never change. -OS
+ return pathFile.absolutePath
+ }
+ }
+
+ return null
+ }
+}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/viewmodel/CompressProgressDialogViewModel.kt b/src/android/app/src/main/java/org/citra/citra_emu/viewmodel/CompressProgressDialogViewModel.kt
new file mode 100644
index 000000000..7a6e71e52
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/viewmodel/CompressProgressDialogViewModel.kt
@@ -0,0 +1,33 @@
+// Copyright Citra Emulator Project / Azahar Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+package org.citra.citra_emu.viewmodel
+
+import androidx.lifecycle.ViewModel
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+
+object CompressProgressDialogViewModel: ViewModel() {
+ private val _progress = MutableStateFlow(0)
+ val progress = _progress.asStateFlow()
+
+ private val _total = MutableStateFlow(0)
+ val total = _total.asStateFlow()
+
+ private val _message = MutableStateFlow("")
+ val message = _message.asStateFlow()
+
+ fun update(totalBytes: Long, currentBytes: Long) {
+ val percent = ((currentBytes * 100L) / totalBytes).coerceIn(0L, 100L).toInt()
+ _total.value = 100
+ _progress.value = percent
+ _message.value = ""
+ }
+
+ fun reset() {
+ _progress.value = 0
+ _total.value = 0
+ _message.value = ""
+ }
+}
\ No newline at end of file
diff --git a/src/android/app/src/main/jni/config.cpp b/src/android/app/src/main/jni/config.cpp
index 1659dc3d6..6d310fea6 100644
--- a/src/android/app/src/main/jni/config.cpp
+++ b/src/android/app/src/main/jni/config.cpp
@@ -175,7 +175,8 @@ void Config::ReadValues() {
ReadSetting("Renderer", Settings::values.custom_second_layer_opacity);
ReadSetting("Renderer", Settings::values.delay_game_render_thread_us);
ReadSetting("Renderer", Settings::values.disable_right_eye_render);
-
+ ReadSetting("Renderer", Settings::values.swap_eyes_3d);
+ ReadSetting("Renderer", Settings::values.render_3d_which_display);
// Layout
// Somewhat inelegant solution to ensure layout value is between 0 and 5 on read
// since older config files may have other values
@@ -262,6 +263,7 @@ void Config::ReadValues() {
ReadSetting("System", Settings::values.plugin_loader_enabled);
ReadSetting("System", Settings::values.allow_plugin_loader);
ReadSetting("System", Settings::values.steps_per_hour);
+ ReadSetting("System", Settings::values.apply_region_free_patch);
// Camera
using namespace Service::CAM;
diff --git a/src/android/app/src/main/jni/default_ini.h b/src/android/app/src/main/jni/default_ini.h
index 26688a708..08eaf3283 100644
--- a/src/android/app/src/main/jni/default_ini.h
+++ b/src/android/app/src/main/jni/default_ini.h
@@ -170,13 +170,23 @@ bg_green =
custom_second_layer_opacity =
# Whether and how Stereoscopic 3D should be rendered
-# 0 (default): Off, 1: Side by Side, 2: Reverse Side by Side, 3: Anaglyph, 4: Interlaced, 5: Reverse Interlaced, 6: Cardboard VR
+# 0: Off, 1: Half Width Side by Side, 2 (default): Full Width Side by Side, 3: Anaglyph, 4: Interlaced, 5: Reverse Interlaced, 6: Cardboard VR
+# 0 is no longer supported in the interface, as using render_3d_which_display = 0 has the same effect, but supported here for backwards compatibility
render_3d =
# Change 3D Intensity
# 0 - 255: Intensity. 0 (default)
factor_3d =
+# Swap Eyes in 3d
+# true: Swap eyes, false (default): Do not swap eyes
+swap_eyes_3d =
+
+# Which Display to render 3d mode to
+# 0 (default) - None. Equivalent to render_3d=0
+# 1: Both, 2: Primary Only, 3: Secondary Only
+render_3d_which_display =
+
# The name of the post processing shader to apply.
# Loaded from shaders if render_3d is off or side by side.
pp_shader_name =
@@ -413,6 +423,11 @@ steps_per_hour =
plugin_loader =
allow_plugin_loader =
+# Apply region free patch to installed applications
+# Patches the region of installed applications to be region free, so that they always appear on the home menu.
+# 0: Disabled, 1 (default): Enabled
+apply_region_free_patch =
+
[Camera]
# Which camera engine to use for the right outer camera
# blank: a dummy camera that always returns black image
diff --git a/src/android/app/src/main/jni/game_info.cpp b/src/android/app/src/main/jni/game_info.cpp
index 99ebfd3ae..7ff043fff 100644
--- a/src/android/app/src/main/jni/game_info.cpp
+++ b/src/android/app/src/main/jni/game_info.cpp
@@ -25,6 +25,7 @@ struct GameInfoData {
bool loaded = false;
bool is_encrypted = false;
std::string file_type = "";
+ bool is_insertable = false;
};
GameInfoData* GetNewGameInfoData(const std::string& path) {
@@ -89,6 +90,7 @@ GameInfoData* GetNewGameInfoData(const std::string& path) {
gid->is_encrypted = is_encrypted;
gid->title_id = program_id;
gid->file_type = Loader::GetFileTypeString(loader->GetFileType(), loader->IsFileCompressed());
+ gid->is_insertable = loader->GetFileType() == Loader::FileType::CCI;
return gid;
}
@@ -222,7 +224,7 @@ jboolean Java_org_citra_citra_1emu_model_GameInfo_getIsVisibleSystemTitle(JNIEnv
return false;
}
- return smdh->flags & Loader::SMDH::Flags::Visible;
+ return smdh->flags.visible;
}
jstring Java_org_citra_citra_1emu_model_GameInfo_getFileType(JNIEnv* env, jobject obj) {
@@ -230,4 +232,7 @@ jstring Java_org_citra_citra_1emu_model_GameInfo_getFileType(JNIEnv* env, jobjec
return ToJString(env, file_type);
}
+jboolean Java_org_citra_citra_1emu_model_GameInfo_getIsInsertable(JNIEnv* env, jobject obj) {
+ return GetPointer(env, obj)->is_insertable;
+}
}
diff --git a/src/android/app/src/main/jni/id_cache.cpp b/src/android/app/src/main/jni/id_cache.cpp
index 8bc0f976e..d7d4a109a 100644
--- a/src/android/app/src/main/jni/id_cache.cpp
+++ b/src/android/app/src/main/jni/id_cache.cpp
@@ -1,4 +1,4 @@
-// Copyright 2019 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -40,6 +40,7 @@ static jfieldID s_game_info_pointer;
static jclass s_disk_cache_progress_class;
static jmethodID s_disk_cache_load_progress;
+static jmethodID s_compress_progress_method;
static std::unordered_map s_java_load_callback_stages;
static jclass s_cia_install_helper_class;
@@ -131,6 +132,10 @@ jmethodID GetDiskCacheLoadProgress() {
return s_disk_cache_load_progress;
}
+jmethodID GetCompressProgressMethod() {
+ return s_compress_progress_method;
+}
+
jobject GetJavaLoadCallbackStage(VideoCore::LoadCallbackStage stage) {
const auto it = s_java_load_callback_stages.find(stage);
ASSERT_MSG(it != s_java_load_callback_stages.end(), "Invalid LoadCallbackStage: {}", stage);
@@ -205,6 +210,8 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) {
s_disk_cache_load_progress = env->GetStaticMethodID(
s_disk_cache_progress_class, "loadProgress",
"(Lorg/citra/citra_emu/utils/DiskShaderCacheProgress$LoadCallbackStage;II)V");
+ s_compress_progress_method =
+ env->GetStaticMethodID(s_native_library_class, "onCompressProgress", "(JJ)V");
// Initialize LoadCallbackStage map
const auto to_java_load_callback_stage = [env,
load_callback_stage_class](const std::string& stage) {
diff --git a/src/android/app/src/main/jni/id_cache.h b/src/android/app/src/main/jni/id_cache.h
index 71a1cb67c..d7aeb8074 100644
--- a/src/android/app/src/main/jni/id_cache.h
+++ b/src/android/app/src/main/jni/id_cache.h
@@ -1,4 +1,4 @@
-// Copyright 2019 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -40,6 +40,7 @@ jfieldID GetGameInfoPointer();
jclass GetDiskCacheProgressClass();
jmethodID GetDiskCacheLoadProgress();
+jmethodID GetCompressProgressMethod();
jobject GetJavaLoadCallbackStage(VideoCore::LoadCallbackStage stage);
jclass GetCiaInstallHelperClass();
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index a2880d6dc..779163cfc 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -34,10 +34,12 @@
#include "common/scope_exit.h"
#include "common/settings.h"
#include "common/string_util.h"
+#include "common/zstd_compression.h"
#include "core/core.h"
#include "core/frontend/applets/default_applets.h"
#include "core/frontend/camera/factory.h"
#include "core/hle/service/am/am.h"
+#include "core/hle/service/fs/archive.h"
#include "core/hle/service/nfc/nfc.h"
#include "core/hw/unique_data.h"
#include "core/loader/loader.h"
@@ -74,6 +76,17 @@ namespace {
ANativeWindow* s_surface;
ANativeWindow* s_secondary_surface;
+enum class CompressionStatus : jint {
+ Success = 0,
+ Compress_Unsupported = 1,
+ Compress_AlreadyCompressed = 2,
+ Compress_Failed = 3,
+ Decompress_Unsupported = 4,
+ Decompress_NotCompressed = 5,
+ Decompress_Failed = 6,
+ Installed_Application = 7,
+};
+
std::shared_ptr vulkan_library{};
std::unique_ptr window;
std::unique_ptr secondary_window;
@@ -88,6 +101,8 @@ std::mutex paused_mutex;
std::mutex running_mutex;
std::condition_variable running_cv;
+std::string inserted_cartridge;
+
} // Anonymous namespace
static jobject ToJavaCoreError(Core::System::ResultStatus result) {
@@ -95,6 +110,7 @@ static jobject ToJavaCoreError(Core::System::ResultStatus result) {
{Core::System::ResultStatus::ErrorSystemFiles, "ErrorSystemFiles"},
{Core::System::ResultStatus::ErrorSavestate, "ErrorSavestate"},
{Core::System::ResultStatus::ErrorArticDisconnected, "ErrorArticDisconnected"},
+ {Core::System::ResultStatus::ErrorN3DSApplication, "ErrorN3DSApplication"},
{Core::System::ResultStatus::ErrorUnknown, "ErrorUnknown"},
};
@@ -134,7 +150,10 @@ static void TryShutdown() {
secondary_window->DoneCurrent();
}
- Core::System::GetInstance().Shutdown();
+ Core::System& system{Core::System::GetInstance()};
+
+ system.Shutdown();
+ system.EjectCartridge();
window.reset();
if (secondary_window) {
@@ -165,6 +184,10 @@ static Core::System::ResultStatus RunCitra(const std::string& filepath) {
Core::System& system{Core::System::GetInstance()};
+ if (!inserted_cartridge.empty()) {
+ system.InsertCartridge(inserted_cartridge);
+ }
+
const auto graphics_api = Settings::values.graphics_api.GetValue();
EGLContext* shared_context;
switch (graphics_api) {
@@ -463,6 +486,163 @@ jstring Java_org_citra_citra_1emu_NativeLibrary_getHomeMenuPath(JNIEnv* env,
return ToJString(env, "");
}
+static CompressionStatus GetCompressFileInfo(Loader::AppLoader::CompressFileInfo& out_info,
+ size_t& out_frame_size, const std::string& filepath,
+ bool compress) {
+
+ if (Service::FS::IsInstalledApplication(filepath)) {
+ return CompressionStatus::Installed_Application;
+ }
+
+ Loader::AppLoader::CompressFileInfo compress_info{};
+ compress_info.is_supported = false;
+ size_t frame_size{};
+ auto loader = Loader::GetLoader(filepath);
+ if (loader) {
+ compress_info = loader->GetCompressFileInfo();
+ frame_size = FileUtil::Z3DSWriteIOFile::DEFAULT_FRAME_SIZE;
+ } else {
+ bool is_compressed = false;
+ if (Service::AM::CheckCIAToInstall(filepath, is_compressed, compress ? true : false) ==
+ Service::AM::InstallStatus::Success) {
+ compress_info.is_supported = true;
+ compress_info.is_compressed = is_compressed;
+ compress_info.recommended_compressed_extension = "zcia";
+ compress_info.recommended_uncompressed_extension = "cia";
+ compress_info.underlying_magic = std::array({'C', 'I', 'A', '\0'});
+ frame_size = FileUtil::Z3DSWriteIOFile::DEFAULT_CIA_FRAME_SIZE;
+ if (compress) {
+ auto meta_info = Service::AM::GetCIAInfos(filepath);
+ if (meta_info.Succeeded()) {
+ const auto& meta_info_val = meta_info.Unwrap();
+ std::vector value(sizeof(Service::AM::TitleInfo));
+ memcpy(value.data(), &meta_info_val.first, sizeof(Service::AM::TitleInfo));
+ compress_info.default_metadata.emplace("titleinfo", value);
+ if (meta_info_val.second) {
+ value.resize(sizeof(Loader::SMDH));
+ memcpy(value.data(), meta_info_val.second.get(), sizeof(Loader::SMDH));
+ compress_info.default_metadata.emplace("smdh", value);
+ }
+ }
+ }
+ }
+ }
+
+ if (!compress_info.is_supported) {
+ LOG_ERROR(Frontend,
+ "Error {} file {}, the selected file is not a compatible 3DS ROM format or is "
+ "encrypted.",
+ compress ? "compressing" : "decompressing", filepath);
+ return compress ? CompressionStatus::Compress_Unsupported
+ : CompressionStatus::Decompress_Unsupported;
+ }
+ if (compress_info.is_compressed && compress) {
+ LOG_ERROR(Frontend, "Error compressing file {}, the selected file is already compressed",
+ filepath);
+ return CompressionStatus::Compress_AlreadyCompressed;
+ }
+ if (!compress_info.is_compressed && !compress) {
+ LOG_ERROR(Frontend,
+ "Error decompressing file {}, the selected file is already decompressed",
+ filepath);
+ return CompressionStatus::Decompress_NotCompressed;
+ }
+
+ out_info = compress_info;
+ out_frame_size = frame_size;
+ return CompressionStatus::Success;
+}
+
+jint Java_org_citra_citra_1emu_NativeLibrary_compressFileNative(JNIEnv* env, jobject obj,
+ jstring j_input_path,
+ jstring j_output_path) {
+ const std::string input_path = GetJString(env, j_input_path);
+ const std::string output_path = GetJString(env, j_output_path);
+
+ Loader::AppLoader::CompressFileInfo compress_info{};
+ size_t frame_size{};
+ CompressionStatus stat = GetCompressFileInfo(compress_info, frame_size, input_path, true);
+ if (stat != CompressionStatus::Success) {
+ return static_cast(stat);
+ }
+
+ auto progress = [](std::size_t processed, std::size_t total) {
+ JNIEnv* env = IDCache::GetEnvForThread();
+ env->CallStaticVoidMethod(IDCache::GetNativeLibraryClass(),
+ IDCache::GetCompressProgressMethod(), static_cast(total),
+ static_cast(processed));
+ };
+
+ bool success =
+ FileUtil::CompressZ3DSFile(input_path, output_path, compress_info.underlying_magic,
+ frame_size, progress, compress_info.default_metadata);
+ if (!success) {
+ FileUtil::Delete(output_path);
+ return static_cast(CompressionStatus::Compress_Failed);
+ }
+
+ return static_cast(CompressionStatus::Success);
+}
+
+jint Java_org_citra_citra_1emu_NativeLibrary_decompressFileNative(JNIEnv* env, jobject obj,
+ jstring j_input_path,
+ jstring j_output_path) {
+ const std::string input_path = GetJString(env, j_input_path);
+ const std::string output_path = GetJString(env, j_output_path);
+
+ Loader::AppLoader::CompressFileInfo compress_info{};
+ size_t frame_size{};
+ CompressionStatus stat = GetCompressFileInfo(compress_info, frame_size, input_path, false);
+ if (stat != CompressionStatus::Success) {
+ return static_cast(stat);
+ }
+
+ auto progress = [](std::size_t processed, std::size_t total) {
+ JNIEnv* env = IDCache::GetEnvForThread();
+ env->CallStaticVoidMethod(IDCache::GetNativeLibraryClass(),
+ IDCache::GetCompressProgressMethod(), static_cast(total),
+ static_cast(processed));
+ };
+
+ bool success = FileUtil::DeCompressZ3DSFile(input_path, output_path, progress);
+ if (!success) {
+ FileUtil::Delete(output_path);
+ return static_cast(CompressionStatus::Decompress_Failed);
+ }
+
+ return static_cast(CompressionStatus::Success);
+}
+
+jstring Java_org_citra_citra_1emu_NativeLibrary_getRecommendedExtension(
+ JNIEnv* env, jobject obj, jstring j_input_path, jboolean j_should_compress) {
+ const std::string input_path = GetJString(env, j_input_path);
+
+ std::string compressed_ext;
+ std::string uncompressed_ext;
+
+ auto loader = Loader::GetLoader(input_path);
+ if (loader) {
+ auto compress_info = loader->GetCompressFileInfo();
+ if (compress_info.is_supported) {
+ compressed_ext = compress_info.recommended_compressed_extension;
+ uncompressed_ext = compress_info.recommended_uncompressed_extension;
+ }
+ } else {
+ bool is_compressed = false;
+ if (Service::AM::CheckCIAToInstall(input_path, is_compressed, true) ==
+ Service::AM::InstallStatus::Success) {
+ compressed_ext = "zcia";
+ uncompressed_ext = "cia";
+ }
+ }
+
+ if (compressed_ext.empty()) {
+ return env->NewStringUTF("");
+ }
+
+ return env->NewStringUTF(j_should_compress ? compressed_ext.c_str() : uncompressed_ext.c_str());
+}
+
void Java_org_citra_citra_1emu_NativeLibrary_setUserDirectory(JNIEnv* env,
[[maybe_unused]] jobject obj,
jstring j_directory) {
@@ -919,4 +1099,9 @@ jlong Java_org_citra_citra_1emu_NativeLibrary_playTimeManagerGetCurrentTitleId(J
return ptm_current_title_id;
}
+void Java_org_citra_citra_1emu_NativeLibrary_setInsertedCartridge(JNIEnv* env, jobject obj,
+ jstring path) {
+ inserted_cartridge = GetJString(env, path);
+}
+
} // extern "C"
diff --git a/src/android/app/src/main/res/drawable/cartridge.png b/src/android/app/src/main/res/drawable/cartridge.png
new file mode 100644
index 000000000..cb669ee29
Binary files /dev/null and b/src/android/app/src/main/res/drawable/cartridge.png differ
diff --git a/src/android/app/src/main/res/layout/card_game.xml b/src/android/app/src/main/res/layout/card_game.xml
index 85392a813..5b1d558ea 100644
--- a/src/android/app/src/main/res/layout/card_game.xml
+++ b/src/android/app/src/main/res/layout/card_game.xml
@@ -28,6 +28,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
@@ -120,12 +121,13 @@
@@ -179,6 +180,37 @@
android:contentDescription="@string/cheats"
android:text="@string/cheats" />
+
+
+
+
+
+
+
diff --git a/src/android/app/src/main/res/layout/dialog_compress_progress.xml b/src/android/app/src/main/res/layout/dialog_compress_progress.xml
new file mode 100644
index 000000000..bdf8dd669
--- /dev/null
+++ b/src/android/app/src/main/res/layout/dialog_compress_progress.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
diff --git a/src/android/app/src/main/res/values-b+ca+ES+valencia/strings.xml b/src/android/app/src/main/res/values-b+ca+ES+valencia/strings.xml
index 0f0e3e978..09200b1a6 100644
--- a/src/android/app/src/main/res/values-b+ca+ES+valencia/strings.xml
+++ b/src/android/app/src/main/res/values-b+ca+ES+valencia/strings.xml
@@ -122,8 +122,6 @@
Pulsa o mou un botó/palanca.Assignació de botonsPrem o mou una entrada per enllaçar-la a %1$s.
- Mou el joystick amunt o avall.
- Mou el joystick a esquerra o dreta.HOMEIntercanviar PantallesTurbo
@@ -217,21 +215,18 @@
Usa SPIR-V en vez de GLSL per a emetre el fragment de ombrejador utilitzat per a emular PICA.Desativar l\'optimitzador SPIR-VDesactiva la passada d\'optimització SPIR-V reduint considerablement el quequeig i afectant poc el rendiment.
- Activar compilació de ombrejadors asíncronaCompila els ombrejats en segón pla per a reduir les aturades durant la partida.
S\'esperen errors gràfics temporals quan estigue activat.Filtre LinearActiva el filtre linear, que fa que els gràfics del joc es vegen més suaus.Filtre de TexturesMillora l\'aspecte visual de les aplicacions aplicant un filtre a les textures. Els filtres compatibles són Anime4K, Ultrafast, Bicubic, ScaleForce, xBRZ Freescale i MMPX.
- Endarrerir fil de renderitzat del jocRetarda el fil de renderitzat del joc en enviar dades a la GPU. Ajuda a solucionar problemes de rendiment en les (poques) aplicacions amb velocitats de fotogrames dinàmiques.AvançatMostreig de TexturesSobreescriu el filtre de mostreig usat en jocs. Pot ser útil en uns certs casos de jocs amb baix rendiment en pujar la resolució. Si no estàs segur, possa\'l en Controlat per Joc.Multiplicació PrecisaUsa multiplicacions més precises en els ombrejos de Hardware, que podrien arreglar uns certs problemes gràfics. Quan s\'active, el rendiment es reduirà.
- Activar Emulació Asíncrona de la GPUUsa un fil separat per a emular la GPU de manera asíncrona. Quan s\'active, el rendiment millorarà.Límit de velocitatQuan s\'active, la velocitat d\'emulació estarà limitada a un percentatge determinat de la velocitat normal. Quan es desactive, la velocitat d\'emulació no tindrà límit i la tecla d\'accés ràpid de velocitat turbo no funcionarà.
@@ -286,7 +281,6 @@ S\'esperen errors gràfics temporals quan estigue activat.VolumExtensió d\'ÀudioEstén l\'àudio per a reduir les aturades. Quan s\'active, la latència d\'àudio s\'incrementarà i reduirà un poc el rendiment.
- Activar àudio en temps realAjusta la velocitat de reproducció d\'àudio per a compensar les caigudes en la velocitat d\'emulació de quadres. Això significa que l\'àudio es reproduirà a velocitat completa fins i tot quan la velocitat de quadres del joc siga baixa. Pot causar problemes de desincronització d\'àudio.Dispositiu d\'entrada d\'àudioMode d\'eixida de l\'àudio
@@ -298,12 +292,9 @@ S\'esperen errors gràfics temporals quan estigue activat.Usa el hardware per a emular els ombrejadors de 3DS. Quan s\'active, el rendiment millorarà notablement.Velocitat de rellotge de la CPUActivar Sincronització Vertical
- Sincronitza els quadres per segon del joc amb la taxa de refresc del teu dispositiu.Renderitzador de depuracióArxiva informació addicional gràfica relacionada amb la depuració. Quan està activada, el rendiment dels jocs serà reduït considerablement
- Guardar l\'eixida del registre en cada missatgeEnvia immediatament el registre de depuració a un arxiu. Usa-ho si Azahar falla i es talla l\'eixida del registre.
- Inici diferit amb mòduls LLERetarda l\'inici de l\'aplicació quan els mòduls LLE estan habilitats.Operacions asíncrones deterministesFa que les operacions asíncrones siguen deterministes per a la depuració. Habilitar esta opció pot causar bloquejos.
@@ -523,7 +514,6 @@ S\'esperen errors gràfics temporals quan estigue activat.
Error FatalHa ocorregut un error fatal. Mira el registre per a més detalls.\nSeguir amb l\'emulació podria resultar en diversos penges i problemes.Aplicació cifrada no suportada
-
Preparant ombrejadorsConstruint ombrejadors
@@ -550,35 +540,11 @@ S\'esperen errors gràfics temporals quan estigue activat.
ID:Fitxer:Tipus:
-
Mostrar informació de rendimentInformació de rendimentActivar informació de rendimentConfigura la informació de rendiment
- Mostrar FPS
- Mostra els fotogrames per segon actuals.
- Mostrar duració de fotogrames
- Mostra la duració actual de cada fotograma.
- Mostrar velocitat
- Mostra el percentatge de velocitat d\'emulació actual.
- Mostrar l\'ús de memòria de l\'aplicació
- Mostra la quantitat de memòria RAM que esta usant l\'emulador.
- Mostrar memòria disponible
- Mostra la quantitat de memòria RAM que esta disponible.
- Mostrar la temperatura de la bateria
- Mostra la temperatura actual de la bateria en Celsius i Fahrenheit.
- Posició de la informació
- Tria on la informació de rendiment serà mostrada en la pantalla.
- Dalt a l\'esquerra
- Dalt a la dreta
- Avall a l\'esquerra
- Avall a la dreta
- Dalt al centre
- Avall al centre
- Fons de la informació
- Agrega un fons darrere de la informació per a fer-la més llegible.
-
TrucsAfegir trucs
@@ -681,7 +647,6 @@ S\'esperen errors gràfics temporals quan estigue activat.
De costat a costat
- De costat a costat inversAnàglifoEntrellaçatEntrellaçat invers
@@ -870,4 +835,4 @@ S\'esperen errors gràfics temporals quan estigue activat.
Guardat ràpid - %1$tF %1$tRGuardat ràpid no disponible.
-
+
diff --git a/src/android/app/src/main/res/values-b+da+DK/strings.xml b/src/android/app/src/main/res/values-b+da+DK/strings.xml
index 3525cfb62..793f306ad 100644
--- a/src/android/app/src/main/res/values-b+da+DK/strings.xml
+++ b/src/android/app/src/main/res/values-b+da+DK/strings.xml
@@ -67,10 +67,14 @@
Giv tilladelseVil du droppe at give tilladelse til meddelelser?Azahar vil ikke være i stand til at give dig meddelelse om vigtige oplysninger.
+ Manglende tilladelser
+ Azahar kræver tilladelse til at administrere filer på denne enhed for at kunne gemme og administrere dens data.\n\nGiv venligst tilladelsen \"Filsystem\", før du fortsætter.KameraGiv kameraet tilladelse nedenfor til at efterligne 3DS-kameraet.MikrofonGiv mikrofonen tilladelse nedenfor til at efterligne 3DS-mikrofonen.
+ Filsystem
+ Giv filsystemet tilladelse nedenfor for at tillade Azahar at gemme filer.Tilladelse nægtetVil du droppe at vælge applikationsmappen?Software vil ikke blive vist på applikationslisten, hvis en mappe ikke er valgt.
@@ -90,6 +94,9 @@
Du kan ikke springe opsætningen af brugermappen over Dette trin er påkrævet for at Azahar kan fungere. Vælg en mappe og så kan du fortsætte.Du har mistet skrivetilladelse i din brugerdata mappe, hvor gemte tilstande og anden information er gemt. Dette kan ske efter en app- eller Android-opdatering. Vælg venligst mappen for at give tilladelse igen, så du kan fortsætte.
+ Ugyldigt valg
+ Valget af brugermappe var ugyldigt.\nVælg venligst brugermappen igen, og sørg for at navigere til den fra roden af din enheds lager.
+ Azahar har mistet tilladelsen til at administrere filer på denne enhed. Dette kan ske efter nogle app- eller Android-opdateringer. Giv venligst denne tilladelse igen på den næste skærm for at fortsætte med at bruge appen.TemaindstillingerKonfigurer dine temaindstillinger for Azahar.Indstil tema
@@ -122,8 +129,8 @@
Tryk på eller flyt et input.InputbindingTryk på eller flyt et input for at binde det til %1$s.
- Bevæg joysticket op eller ned.
- Bevæg joysticket til venstre eller højre
+ Bevæg joysticket ned
+ Bevæg joysticket til højreHOMEByt skærmeTurbo
@@ -162,6 +169,8 @@
BrugernavnNy 3DS tilstandBrug LLE Applets (hvis installeret)
+ Anvend regionfri programrettelse på installerede programmer
+ Opdaterer regionen for installerede programmer, så de altid vises i startmenuen.Aktiver nødvendige LLE moduler til onlinefunktioner (hvis installeret)Aktiverer de LLE moduler, der kræves til online multiplayer, eShop-adgang osv.Ur
@@ -193,6 +202,10 @@
Advarsel om uoverensstemmelse i regionLandeindstillingen er ikke gyldig for det valgte emulerede område.Landeindstillingen er ikke gyldig for den aktuelle forbundne konsol.
+ Lager
+ Komprimer installeret CIA-indhold
+ Komprimerer indholdet af CIA-filer, når de installeres på det emulerede SD-kort. Påvirker kun CIA-indhold, der installeres, når indstillingen er aktiveret.
+
Indre kameraYdre venstre kamera
@@ -219,7 +232,7 @@
Aktiverer lineær filtrering, hvilket får spillets grafik til at se mere jævnt ud.TeksturfilterForbedrer det visuelle i applikationer ved at anvende et filter på teksturer. De understøttede filtre er Anime4K Ultrafast, Bicubic, ScaleForce, xBRZ freescale og MMPX.
- Forsinket spillets renderingstråd
+ Forsink spillets renderingstrådForsink spillets remderingstråd, når den sender data til GPU\'en. Hjælper med ydeevneproblemer i de (meget få) applikationer med dynamiske framerates.AvanceretTekstur sampling
@@ -232,6 +245,8 @@
Når aktiveret, vil emuleringshastigheden være begrænset til en specificeret procentdel af normal hastighed. Hvis deaktiveret, vil emuleringshastigheden være ubegrænset, og genvejstasten for turbohastighed vil ikke fungere.Begræns hastighedsprocentAngiver procentdelen emuleringshastigheden skal begrænses til. Med standardværdien på 100% vil emulering være begrænset til normal hastighed. Værdier højere eller lavere vil øge eller mindske hastighedsgrænsen.
+ Skjul 3DS-afbildninger fra Android
+ Forhindre at Android indekserer og viser billeder fra 3DS-kamera, skærmbilleder og brugerdefinerede teksturer i galleriet. Din enhed skal muligvis genstartes, efter at du har ændret denne indstilling, for at den træder i kraft.TurbohastighedsgrænseGrænse for emuleringens hastighed bruges, når turbo-genvejstasten er aktiv.Anvend området ved frontkamera
@@ -253,10 +268,18 @@
Advarsel: Ændringer i disse indstillinger vil gøre emuleringen langsommereStereoskopiStereoskopisk 3D-tilstand
+ Vælg den stereoskopiske 3D-tilstand til 3D-gengivelse. Side om side-tilstande er mest almindelige i moderne brug. Anaglyf- og interlaced-tilstande vil altid gælde for alle tilsluttede skærme.DybdeAngiver værdien af 3D-skyderen. Denne bør sættes højere end 0 %, når stereoskopisk 3D-tilstand er aktiveret.\nBemærk: Dybdeværdier over 100 % er ikke muligt på rigtig hardware og kan forårsage grafiske problemerDeaktiver rendering af højre øjeForbedrer ydeevnen betydeligt i nogle applikationer, men kan forårsage flimren i andre.
+ Skift øjne
+ Bytter om på hvilket øje, der skal se hvilken side. Kombineret med side om side-tilstanden er det muligt at se 3D ved at krydse øjnene!
+ Gengiv stereoskopisk 3D
+ Om stereoskopisk 3D skal aktiveres, og på hvilke skærme. Indstillingerne for en enkel skærm er kun relevant, når flere skærme er tilsluttet.
+ Til (alle skærme)
+ Til (kun primær skærm)
+ Til (kun sekundær skærm)Cardboard VRCardboard skærmstørrelseSkalerer skærmen til en procentdel af dens oprindelige størrelse.
@@ -293,12 +316,12 @@
Bruger hardware til at efterligne 3DS shaders. Når det er aktiveret, vil spillets ydeevne blive væsentligt forbedret.CPU Clock hastighedAktiver V-Sync
- Synkroniserer spillets frame rate med opdateringshastigheden på din enhed.
+ Synkroniserer spillets billedhastighed med din enheds opdateringshastighed. Kan forårsage yderligere inputforsinkelse, men kan reducere tearing i nogle tilfælde.Fejlsøg renderingenLog yderligere grafikrelaterede fejlfindingsoplysninger. Når det er aktiveret, vil spillets ydeevne blive væsentligt reduceret.
- Tøm loggen for alle beskeder
+ Tøm loggen ved hver beskedOverfør øjeblikkeligt fejlretningsloggen til fil. Brug dette, hvis Azahar går ned, og logoutputtet afbrydes.
- Forsinket start med LLE moduler
+ Forsink start med LLE modulerForsinker starten af appen, når LLE moduler er aktiveret.Deterministiske asynkrone operationerGør asynkrone operationer deterministiske for fejlretning. Aktivering af dette kan forårsage at programmet fryser fast.
@@ -396,18 +419,24 @@
Konfigurer kontrollerRediger layoutFærdig
+ Knap flytning
+ Hold den oprindeligt trykkede knap nede
+ Hold den aktuelt nede knap nede
+ Hold den oprindelige og den aktuelt nedtrykkede knap nedeSkift kontrolJuster skalaGlobal skalaNulstil alleJuster opacitetRelativt stick centrum
- D-Pad glidning
+ D-Pad flytningÅbn IndstillingerÅbn snydekoderBilledformatLandskab skærmlayoutPortræt skærmlayout
+ Layout af sekundær skærm
+ Layoutet, der bruges af en tilsluttet sekundær skærm, kablet eller trådløs (Chromecast, Miracast)Stor skærmPortrætEnkelt skærm
@@ -415,7 +444,15 @@
Hybrid skærmeOriginalStandard
+ Systemstandard (spejl)Brugerdefineret layout
+ Baggrundsfarve
+ Farven, der vises bag skærmene under emulering, repræsenteret som en RGB-værdi.
+ Rød
+ Grøn
+ Blå
+ Brugerdefineret layout skærmopacitet for anden skærm
+ Opaciteten af den anden 3DS-skærm, når der bruges et brugerdefineret skærmlayout. Nyttig, hvis den anden skærm skal placeres oven på den første skærm.Position for lille skærmHvor skal den lille skærm vises i forhold til den store i storskærmslayout?Øverst til højre
@@ -511,6 +548,8 @@
Fatal fejlDer opstod en fatal fejl. Kontroller loggen for detaljer.\nFortsat emulering kan resultere i nedbrud og fejl.Ikke understøttet krypteret applikation
+ Ugyldig systemtilstand
+ Nye 3DS-eksklusive applikationer kan ikke indlæses uden at aktivere den nye 3DS-tilstand.Forberedelse af shaders
@@ -535,33 +574,39 @@
Opret genvejGenvejsnavnet må ikke være tomtStræk for at tilpasse billedet
+ ID:
+ Fil:
+ Type:
+ Indsæt kassette
+ Udtag kassette
+
Vis ydelsesoverlejringYdelsesoverlejringAktivér ydelsesoverlejringKonfigurer, om ydelsesoverlejringen skal vises, og hvilke oplysninger der vises.
- Vis FPS
- Vis aktuelle billeder pr. sekund.
- Vis billedtid
- Vis aktuel billedtid.
- Vis hastighed
- Vis den aktuelle emuleringshastighed i procent.
- Vis hukommelsesforbrug for app
- Vis mængden af RAM, der bruges af emulatoren.
- Vis tilgængelig hukommelse
- Vis mængden af RAM, der er tilgængelig.
- Vis batteritemperatur
- Viser den aktuelle batteritemperatur i Celsius og Fahrenheit.
- Position af overlejring
- Vælg, hvor ydelsesoverlejringen skal vises på skærmen.
- Øverst til venstre
- Øverst til højre
- Nederst til venstre
- Nederst til højre
- Midten øverst
- Midten nederst
- Overlejret baggrund
- Tilføjer en baggrund bag overlejringen for lettere læsning.
+ Vis FPS
+ Vis aktuelle billeder pr. sekund.
+ Vis billedtid
+ Vis aktuel billedtid.
+ Vis hastighed
+ Vis den aktuelle emuleringshastighed i procent.
+ Vis hukommelsesforbrug for app
+ Vis mængden af RAM, der bruges af emulatoren.
+ Vis tilgængelig hukommelse
+ Vis mængden af RAM, der er tilgængelig.
+ Vis batteritemperatur
+ Viser den aktuelle batteritemperatur i Celsius og Fahrenheit.
+ Overlejret-position
+ Vælg, hvor performance-overlayet skal vises på skærmen.
+ Øverst til venstre
+ Øverst til højre
+ Nederst til venstre
+ Nederst til højre
+ Centreret top
+ Centreret bund
+ Overlejret baggrund
+ Tilføjer en baggrund bag det overlejrede for lettere læsning.Snyd
@@ -665,7 +710,7 @@
Side om Side
- Omvendt side om side
+ Side om side i fuld breddeAnaglyphInterlacedOmvendt interlaced
@@ -854,4 +899,19 @@
Hurtig lagring - %1$tF %1$tRIngen hurtig lagring tilgængelig.
+
+ Komprimer
+ Komprimerer…
+ Dekomprimer
+ Dekomprimerer…
+ Komprimering gennemført.
+ Komprimering understøttes ikke for denne fil.
+ Filen er allerede komprimeret.
+ Komprimeringen mislykkedes.
+ Dekomprimeringen er gennemført.
+ Dekomprimering understøttes ikke for denne fil.
+ Filen er ikke komprimeret.
+ Dekomprimeringen mislykkedes.
+ Allerede installerede programmer kan ikke komprimeres eller dekomprimeres.
+
diff --git a/src/android/app/src/main/res/values-b+es+ES/strings.xml b/src/android/app/src/main/res/values-b+es+ES/strings.xml
index f2232f9f9..297c0c39f 100644
--- a/src/android/app/src/main/res/values-b+es+ES/strings.xml
+++ b/src/android/app/src/main/res/values-b+es+ES/strings.xml
@@ -67,10 +67,13 @@
Conceder permiso¿Saltarse la concesión del permiso de notificaciones?Azahar no podrá notificarte sobre información importante.
+ Falta PermisosCámaraConcede el permiso de cámara debajo para emular la cámara de la 3DS.MicrófonoConcede el permiso de micrófono debajo para emular el micrófono de la 3DS.
+ Sistema de archivos
+ Concede el permiso de sistema de archivos debajo para permitir que Azahar almacene archivos.Permiso denegado¿Saltarse la selección de la carpeta de aplicaciones?Nada se mostrará en la lista de aplicaciones si no se selecciona una carpeta.
@@ -90,6 +93,7 @@
No puedes saltarte el configuración de la carpeta de usuarioEste paso es necesario para permitir que Azahar funcione. Por favor, seleccione un directorio y luego puede continuar.Has perdido los permisos de escritura en tu directorio de datos de usuario, donde se guardan las partidas guardadas y otra información. Esto puede ocurrir después de algunas actualizaciones de aplicaciones o de Android. Vuelve a seleccionar el directorio para recuperar los permisos y poder continuar.
+ Selección no válidoConfiguración de temaConfigura tus preferencias de tema de Azahar.Establecer tema
@@ -122,8 +126,8 @@
Pulsa o mueve un botón/palanca.Asignación de botonesPulsa o mueve un botón para asignarlo a %1$s.
- Mueve el joystick arriba o abajo.
- Mueve el joystick a izquierda o derecha.
+ Mueve el joystick abajo
+ Mueve el joystick a la derechaHOMEIntercambiar PantallasTurbo
@@ -237,6 +241,7 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.
Cuando se active, la velocidad de emulación estará limitada a un porcentaje determinado de la velocidad normal. Cuando se desactive, la velocidad de emulación no tendrá límite y la tecla de acceso rápido de velocidad turbo no funcionará.Limitar porcentaje de velocidadEspecifica el valor al que se limita la velocidad de emulación. Con el valor por defecto del 100%, la emulación se limitará a la velocidad normal. Los valores altos o altos incrementarán o reducirán el límite de velocidad.
+ Ocultar imágenes 3DS de AndroidLímite de Velocidad TurboLímite de velocidad de emulación utilizado mientras la tecla de acceso rápido turbo está activa.Expandir al área de recorte
@@ -262,6 +267,11 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.
Especifica el valor del regulador 3D. Debería estar puesto a más allá del 0% cuando el Modo 3D Estereoscópico está activado.\nNota: Los valores de profundidad superiores al 100 % no son posibles en hardware real y pueden causar problemas gráficos.Desactivar Renderizado de Ojo DerechoMejora significativamente el rendimiento en algunas aplicaciones, pero puede causar parpadeo en otros.
+ Intercambiar Ojos
+ Renderizado 3D Estereoscópico
+ Activado (todas las pantallas)
+ Activado (solo pantalla principal)
+ Activado (solo pantalla secundaria)Cardboard VRTamaño de la pantalla CardboardEscala la pantalla a un porcentaje de su tamaño original.
@@ -298,7 +308,6 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.
Usa el hardware para emular los sombreadores de 3DS. Cuando se active, el rendimiento mejorará notablemente.Velocidad de reloj de la CPUActivar Sincronización Vertical
- Sincroniza los cuadros por segundo del juego con la tasa de refresco de tu dispositivo.Renderizador de depuraciónArchiva información adicional gráfica relacionada con la depuración. Cuando está activada, el rendimiento de los juegos será reducido considerablementeLimpiar la salida del registro en cada mensaje
@@ -428,6 +437,12 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.
Por defectoPor defecto del sistema (espejo)Estilo personalizado
+ Color de fondo
+ Rojo
+ Verde
+ Azul
+ Opacidad personalizado de la segunda pantalla
+ La opacidad de la segunda pantalla 3DS al usar el pantalla personalizado. Útil si la segunda pantalla ésta posición en la parte superior de la primera pantalla.Posición Pantalla Pequeña¿Dónde debería aparecer la pantalla pequeña en relación con la grande en Disposicion de Pantalla Grande?Arriba a la Derecha
@@ -523,7 +538,7 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.
Error FatalHa ocurrido un error fatal. Mira el registro para más detalles.\nSeguir con la emulación podría resultar en diversos cuelgues y bugs.Aplicación encriptada no soportada
-
+ Modo de sistema no válidoPreparando shadersConstruyendo shaders
@@ -550,34 +565,36 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.
ID:Archivo:Tipo:
+ Insertar Cartucho
+ Expulsar CartuchoMostrar información de rendimientoInformación de rendimientoActivar información de rendimientoConfigura la información de rendimiento
- Mostrar FPS
- Muestra los fotogramas por segundo actuales.
- Mostrar duración de fotogramas
- Muestra la duración actual de cada fotograma.
- Mostrar velocidad
- Muestra el porcentaje de velocidad de emulación actual.
- Mostrar el uso de memoria de la aplicación
- Muestra la cantidad de memoria RAM que esta usando el emulador.
- Mostrar memoria disponible
- Muestra la cantidad de memoria RAM que esta disponible.
- Mostrar la temperatura de la batería
- Muestra la temperatura actual de la batería en Celsius y Fahrenheit.
- Posición de la información
- Elige donde la información de rendimiento será mostrada en la pantalla.
- Arriba a la izquierda
- Arriba a la derecha
- Abajo a la izquierda
- Abajo a la derecha
- Centro superior
- Centro inferior
- Fondo de la información
- Agrega un fondo detrás de la información para hacerla más legible.
+ Mostrar FPS
+ Muestra los fotogramas por segundo actuales.
+ Mostrar duración de fotogramas
+ Muestra la duración actual de cada fotograma.
+ Mostrar velocidad
+ Muestra el porcentaje de velocidad de emulación actual.
+ Mostrar el uso de memoria de la aplicación
+ Muestra la cantidad de memoria RAM que esta usando el emulador.
+ Mostrar memoria disponible
+ Muestra la cantidad de memoria RAM que esta disponible.
+ Mostrar la temperatura de la batería
+ Muestra la temperatura actual de la batería en Celsius y Fahrenheit.
+ Posición de la información
+ Elegir donde el superposición de rendimiento esta mostrado en el pantalla
+ Arriba a la Izquierda
+ Arriba a la Derecha
+ Abajo a la Izquierda
+ Abajo a la Derecha
+ Centro Superior
+ Centro Inferior
+ Fondo de la información
+ Agrega un fondo detrás de la información para hacerla más legible.Trucos
@@ -682,7 +699,7 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.
De lado a lado
- De lado a lado inverso
+ De lado a lado ancho completoAnáglifoEntrelazadoEntrelazado inverso
@@ -871,4 +888,17 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.
Guardado rápido - %1$tF %1$tRGuardado rápido no disponible.
-
+
+ Comprimir
+ Compresando...
+ Descomprimir
+ Descomprimiendo…
+ Compresión completada con éxito.
+ Compresión no está soportado con este archivo.
+ Este archivo ya está comprimido.
+ Falló la compresión.
+ Descompresión completada con éxito.
+ Descompresión no está soportado con este archivo.
+ El archivo no está comprimido.
+ Falló la descompresión.
+
diff --git a/src/android/app/src/main/res/values-b+ja+JP/strings.xml b/src/android/app/src/main/res/values-b+ja+JP/strings.xml
index 879f96568..5b9e3784f 100644
--- a/src/android/app/src/main/res/values-b+ja+JP/strings.xml
+++ b/src/android/app/src/main/res/values-b+ja+JP/strings.xml
@@ -9,7 +9,6 @@
MACアドレスMACアドレスを再生成これを行うと、今のMACアドレスを新しいもので置き換えます。セットアップツールで実機からMACアドレスを吸い出した場合、これをするのは推奨しません。続行しますか?
- 描写スレッドを遅延するGPUにデータを送信する間、ゲームの描写スレッドを遅延します。動的フレームレートである(ほんの一部の)アプリケーションでのパフォーマンスが向上します。デバッグログを即座にファイルに書き込みます。Azaharがクラッシュしてログが途切れるときに有効にしてください。その他
diff --git a/src/android/app/src/main/res/values-b+lt+LT/strings.xml b/src/android/app/src/main/res/values-b+lt+LT/strings.xml
index 8a5875389..60aaee82a 100644
--- a/src/android/app/src/main/res/values-b+lt+LT/strings.xml
+++ b/src/android/app/src/main/res/values-b+lt+LT/strings.xml
@@ -61,7 +61,6 @@
GarsumasGarso ištempimas
- Įjungti realaus laiko garsąAutomatinisSužinoti daugiauUždaryti
diff --git a/src/android/app/src/main/res/values-b+pl+PL/strings.xml b/src/android/app/src/main/res/values-b+pl+PL/strings.xml
index 17a1fbbca..c8a192c92 100644
--- a/src/android/app/src/main/res/values-b+pl+PL/strings.xml
+++ b/src/android/app/src/main/res/values-b+pl+PL/strings.xml
@@ -67,10 +67,14 @@
Udzielenie zgodyPominąć udzielanie zgody na powiadomienie?Azahar nie będzie w stanie powiadomić cię o ważnych informacjach.
+ Brak uprawnień
+ Azahar wymaga uprawnień do zarządzania plikami na tym urządzeniu w celu przechowywania i zarządzania swoimi danymi. \n\nPrzed kontynuowaniem należy przyznać uprawnienia „System plików”.KameraUdziel poniższych uprawnień kamery, aby emulować kamerę 3DS.MikrofonUdziel poniższych uprawnień mikrofonu, aby emulować mikrofon 3DS.
+ System plików
+ Przyznaje poniższe uprawnienia systemu plików, aby umożliwić Azahar przechowywanie plików.Odmowa zezwoleniaPominąć wybór folderu z aplikacjami?Oprogramowania nie będą wyświetlane na liście aplikacji, jeśli nie wybrano folderu.
@@ -90,6 +94,9 @@
Nie można pominąć konfiguracji folderu użytkownika.Ten krok jest wymagany, aby umożliwić działanie Azahar. Wybierz katalog, a następnie możesz kontynuować.Utraciłeś uprawnienia do zapisu w katalogu danych użytkownika, w którym przechowywane są zapisy i inne informacje. Może się to zdarzyć po niektórych aktualizacjach aplikacji lub systemu Android. Wybierz ponownie katalog, aby odzyskać uprawnienia i móc kontynuować.
+ Nieprawidłowy wybór
+ Wybór katalogu użytkownika był nieprawidłowy.\nProszę ponownie wybrać katalog użytkownika, upewniając się, że przechodzisz do niego z katalogu głównego pamięci urządzenia.
+ Azahar utracił uprawnienia do zarządzania plikami na tym urządzeniu. Może się to zdarzyć po aktualizacji niektórych aplikacji lub systemu Android. Aby kontynuować korzystanie z aplikacji, należy ponownie przyznać te uprawnienia na następnym ekranie.Ustawienia motywuSkonfiguruj ustawienia motywu dla Azahar.Ustaw motyw
@@ -122,8 +129,8 @@
Naciśnij lub przenieś wejście.Powiązanie wejściaNaciśnij lub przesuń wejście, aby powiązać je z %1$s.
- Przesuń analog w górę lub w dół.
- Przesuń analog w lewo lub w prawo.
+ Przesuń analog w dół.
+ Przesuń analog w prawo.HOMEZamień ekranyTurbo
@@ -162,6 +169,8 @@
Nazwa użytkownikaTryb New 3DSUżyj apletów LLE (jeśli są zainstalowane)
+ Zastosuj łatkę bez regionu do zainstalowanych aplikacji.
+ Naprawia region zainstalowanych aplikacji, aby były one wolne od ograniczeń regionalnych, dzięki czemu zawsze pojawiają się w menu głównym.Włącz wymagane moduły LLE dla funkcji online (jeśli są zainstalowane)łącza moduły LLE potrzebne do gry wieloosobowej online, dostępu do eShopu itp.Zegar
@@ -217,25 +226,27 @@
Emituje fragment shaderów używany do emulacji PICA przy użyciu SPIR-V zamiast GLSL.Wyłącz optymalizator SPIR-VWyłącza optymalizację SPIR-V, znacznie zmniejszając zacinanie się obrazu przy minimalnym wpływie na wydajność.
- Włącz asynchroniczną kompilację shaderów
+ Włącz Asynchroniczną Kompilację ShaderówKompiluje shadery w tle, aby zmniejszyć zacinanie się podczas rozgrywki. Po włączeniu należy spodziewać się tymczasowych błędów graficznychFiltrowanie LinearWłącza filtrowanie liniowe, które sprawia, że grafika w grach jest płynniejsza.Filtr teksturUlepsza oprawę wizualną aplikacji poprzez zastosowanie filtrów do tekstur. Obsługiwane filtry to Anime4K Ultrafast, Bicubic, ScaleForce, xBRZ freescale i MMPX.
- Opóźnienie renderowania wątku gry
+ Opóźnienie Renderowania Wątku GryOpóźnia wątek renderowania aplikacji podczas przesyłania danych do GPU. Pomaga w kwestiach wydajności w (bardzo niewielu) aplikacjach z dynamiczną liczbą klatek na sekundę.ZaawansowanePróbkowanie teksturZastępuje filtr próbkowania używany przez gry. Może to być przydatne w niektórych przypadkach, gdy gry źle zachowują się podczas skalowania w górę. Jeśli nie masz pewności, ustaw tę opcję na Kontrolowane przez grę.Dokładne mnożenieUżywa dokładniejszego mnożenia w shaderach sprzętu, dzięki czemu może naprawić niektóre błędy graficzne. Po włączeniu tej funkcji wydajność zostanie zmniejszona.
- Włącz asynchroniczną emulację GPU
+ Włącz Asynchroniczną Emulację GPUUżywa oddzielnego wątku do asynchronicznej emulacji GPU. Po włączeniu, wydajność zostanie poprawiona.Ogranicz prędkośćPo włączeniu prędkość emulacji zostanie ograniczona do określonego procentu normalnej prędkości. Jeśli opcja ta jest wyłączona, prędkość emulacji nie zostanie ograniczona, a klawisz skrótu prędkości turbo nie będzie działał.Ogranicz procent prędkościOkreśla wartość procentową ograniczenia prędkości emulacji. Przy domyślnej wartości 100% emulacja będzie ograniczona do normalnej prędkości. Wyższe lub niższe wartości zwiększają lub zmniejszają ograniczenie prędkości.
+ Ukryj obrazy 3DS z systemu Android
+ Zapobiega indeksowaniu przez system Android zdjęć wykonanych aparatem 3DS, zrzutów ekranu i niestandardowych tekstur oraz wyświetlaniu ich w galerii. Aby zmiany ustawień zaczęły obowiązywać, może być konieczne ponowne uruchomienie urządzenia.Limit prędkości TurboLimit prędkości emulacji wykorzystywany, gdy aktywny jest klawisz skrótu turbo.Rozszerz do obszaru wycięcia
@@ -257,10 +268,18 @@
Ostrzeżenie: Zmiana tych ustawień spowolni emulacjęSterowanie stereoskopoweTryb stereoskopowy 3D
+ Wybierz tryb stereoskopowego 3D dla renderowania 3D.Tryb ekranów obok siebie jest obecnie najczęściej stosowany. Tryby obrazu Anaglyph i Interlaced będą zawsze stosowane do wyświetlania obrazu na wszystkich podłączonych monitorach.ZasięgOkreśla wartość suwaka 3D. Powinien być ustawiony na wartość wyższą niż 0%, gdy włączony jest tryb stereoskopowy 3D.\nUwaga: Wartość przekraczająca 100% nie jest możliwa na rzeczywistym sprzęcie i może powodować problemy graficzne.Wyłącz renderowanie prawego okaZnacznie poprawia wydajność w niektórych aplikacjach, ale może powodować migotanie w innych.
+ Zamiana Oczu
+ Zamiana oczu jest wyświetlana po obu stronach. W połączeniu z trybem obrazów obok siebie umożliwia oglądanie obrazu 3D poprzez przesunięcie oczu!
+ Render stereoskopowego 3D
+ Czy włączyć stereoskopowe 3D i na jakich wyświetlaczach to włączyć? Opcje dotyczące pojedynczego wyświetlacza mają znaczenie tylko wtedy, gdy podłączonych jest wiele wyświetlaczy.
+ Włącz (Wszystkie Wyświetlacze)
+ Włącz (Tylko Główny Wyświetlacz)
+ Włącz (Tylko na Dodatkowym Wyświetlaczu)Cardboard VRRozmiar ekranu CardboardaSkaluje ekran do wartości procentowej jego oryginalnego rozmiaru.
@@ -285,7 +304,7 @@
GłośnośćRozciągnij dźwiękRozciąga dźwięk, aby zredukować zacinanie się. Po włączeniu tej opcji zwiększa opóźnienie dźwięku i nieznacznie obniża wydajność.
- Włącz dźwięk w czasie rzeczywistym
+ Włącz Dźwięk w Czasie RzeczywistymSkaluje prędkość odtwarzania dźwięku, aby uwzględnić spadki liczby klatek na sekundę w emulacji. Oznacza to, że dźwięk będzie odtwarzany z pełną prędkością, nawet jeśli liczba klatek na sekundę w grze jest niska. Może powodować problemy z desynchronizacją dźwięku.Urządzenie wejściowe dźwiękuTryb wyjścia dźwięku
@@ -297,12 +316,12 @@
Używa sprzętu do emulacji shaderów 3DS. Po włączeniu, wydajność gry zostanie znacznie poprawiona.Prędkość taktowania procesoraWłącz V-Sync
- Synchronizuje liczbę klatek na sekundę gry z częstotliwością odświeżania urządzenia.
+ Synchronizuje częstotliwość klatek na sekundę w grze z częstotliwością odświeżania urządzenia. Może powodować dodatkowe opóźnienia wejściowe, ale w niektórych przypadkach może ograniczyć występowanie rozdarć obrazu.Render debugowaniaRejestruje dodatkowe informacje debugowania związane z grafiką. Po włączeniu, wydajność gry zostanie znacznie zmniejszona.
- Opróżnia log przy każdej wiadomości
+ Opróżnij Log Przy Każdej WiadomościNatychmiast zapisuje log debugowania do pliku. Użyj tego, jeśli azahar ulegnie awarii, a dane wyjściowe logu zostaną przerwane.
- Opóźnione uruchamianie z modułami LLE
+ Opóźnij Uruchamianie z Modułami LLEOpóźnia uruchomienie aplikacji, gdy włączone są moduły LLE.Deterministyczne operacje asynchroniczneSprawia, że operacje asynchroniczne są deterministyczne dla debugowania. Włączenie tej opcji może powodować zawieszanie się gry.
@@ -427,6 +446,13 @@
DomyślnyUstawienia domyślne systemu (mirror)Niestandardowy Układ
+ Kolor tła
+ Kolor wyświetlany za ekranami podczas emulacji, wyświetlany jako wartość RGB.
+ Czerwony
+ Zielony
+ Niebieski
+ Niestandardowy wygląd drugiego ekranu przezroczystości
+ Przezroczystość drugiego ekranu 3DS podczas korzystania z niestandardowego układu ekranu. Przydatne, jeśli drugi ekran ma być umieszczony nad pierwszym ekranem.Pozycja małego ekranuGdzie powinien być wyświetlany mały ekran względem dużego w układzie dużego ekranu?Prawy górny róg
@@ -522,6 +548,8 @@
Krytyczny BłądWystąpił błąd krytyczny. Kontynuowanie emulacji może spowodować awarie i błędy.Nieobsługiwana zaszyfrowana aplikacja
+ Nieprawidłowy moduł systemu
+ Aplikacje dostępne wyłącznie na konsoli New 3DS nie mogą być uruchamiane bez włączenia trybu New 3DS.Przygotowanie shaderów
@@ -549,34 +577,36 @@
ID:Plik:Typ:
+ Włóż Kartridż
+ Wyjmij KartridżWyświetl nakładkę wydajnościNakładkę wydajnościWłącz nakładkę wydajnościKonfiguruje, czy wyświetlana jest nakładka wydajności i jakie informacje są wyświetlane.
- Wyświetl FPS
- Wyświetla aktualną liczbę klatek na sekundę.
- Pokaż czas klatek
- Wyświetla bieżący czas klatek.
- Wyświetl Prędkość
- Wyświetla aktualną procentową prędkość emulacji.
- Wyświetl użycie pamięci aplikacji
- Wyświetla ilość pamięci RAM używanej przez emulator.
- Wyświetl dostępną pamięć
- Wyświetla ilość dostępnej pamięci RAM.
- Wyświetl temperaturę baterii
- Wyświetla bieżącą temperaturę baterii w stopniach Celcjusza i Fahrenheita.
- Pozycja nakładki
- Wybierz miejsce wyświetlania nakładki wydajności na ekranie.
- Lewy górny róg
- Prawy górny róg
- Lewy dolny róg
- Prawy dolny róg
- Środkowy górny
- Środkowy dolny
- Tło nakładki
- Dodaje tło z tyłu nakładki w celu łatwego odczytu.
+ Wyświetl FPS
+ Wyświetla aktualną liczbę klatek na sekundę.
+ Wyświetl czas klatek
+ Wyświetla bieżący czas klatek.
+ Wyświetl Prędkość
+ Wyświetla aktualną procentową prędkość emulacji.
+ Wyświetl użycie pamięci aplikacji
+ Wyświetla ilość pamięci RAM używanej przez emulator.
+ Wyświetl dostępną pamięć
+ Wyświetla ilość dostępnej pamięci RAM.
+ Wyświetl temperaturę baterii
+ Wyświetla bieżącą temperaturę baterii w stopniach Celcjusza i Fahrenheita.
+ Pozycja nakładki
+ Wybierz miejsce wyświetlania nakładki wydajności na ekranie.
+ Lewy górny róg
+ Prawy górny róg
+ Lewy dolny róg
+ Prawy dolny róg
+ Środkowy górny
+ Środkowy dolny
+ Tło nakładki
+ Dodaje tło z tyłu nakładki w celu łatwego odczytu.Cheaty
@@ -682,7 +712,7 @@
Obok Siebie
- Odwróć Obok Siebie
+ Obok Siebie na Pełną SzerokośćAnalogicznyNaprzemiennyOdwrócony Obraz
@@ -871,4 +901,19 @@
Szybkie zapisywanie - %1$tF %1$tRFunkcja szybkiego zapisu nie jest dostępna.
+
+ Kompresuj
+ Kompresowanie…
+ Dekompresuj
+ Dekompresowanie...
+ Kompresja została zakończona pomyślnie.
+ Kompresja nie jest obsługiwana dla tego pliku.
+ Plik jest już skompresowany.
+ Kompresja nie powiodła się.
+ Dekompresja została zakończona pomyślnie.
+ Dekompresja nie jest obsługiwana dla tego pliku.
+ Plik nie jest skompresowany.
+ Dekompresja nie powiodła się.
+ Aplikacje, które są już zainstalowane, nie mogą być kompresowane ani dekompresowane.
+
diff --git a/src/android/app/src/main/res/values-b+pt+BR/strings.xml b/src/android/app/src/main/res/values-b+pt+BR/strings.xml
index 4256bbb67..137fdcc94 100644
--- a/src/android/app/src/main/res/values-b+pt+BR/strings.xml
+++ b/src/android/app/src/main/res/values-b+pt+BR/strings.xml
@@ -67,10 +67,14 @@
Conceder permissãoIgnorar a solicitação de notificação?O Azahar não poderá te notificar de informações importantes.
+ Permissões Ausentes
+ O Azahar requer permissão para gerenciar arquivos neste dispositivo a fim de armazenar e gerenciar seus dados.\n\nPor favor, conceda a permissão de \'Sistema de Arquivos\' antes de continuar.CâmeraConceda acesso a câmera abaixo para emular a câmera do 3DS.MicrofoneConceda a acesso ao microfone abaixo para emular o microfone do 3DS.
+ Sistema de Arquivos
+ Conceda a permissão de arquivos abaixo para permitir que o Azahar armazene arquivos.Permissão negadaPular a seleção da pasta de aplicativos?Os softwares não serão exibidos na lista de Aplicativos se uma pasta não for selecionada.
@@ -90,6 +94,9 @@
Você não pode pular a configuração da pasta do usuário.Este passo é necessário para permitir que o Azahar funcione. Selecione um diretório para continuar.Você perdeu suas permissões de escrita no seu diretório de dados de usuário, onde dados salvos e outras informações são guardadas. Isso pode acontecer depois que algum app ou Android atualiza. Re-selecione o diretório para reobter as permissões para que você possa continuar.
+ Seleção Inválida
+ A seleção do diretório de usuário é inválida.\nPor favor, selecione novamente o diretório de usuário, certificando-se de navegar até ele a partir da raiz do armazenamento do seu dispositivo.
+ O Azahar perdeu a permissão para gerenciar arquivos neste dispositivo. Isso pode acontecer após atualizações do aplicativo ou do Android. Por favor, conceda novamente esta permissão na próxima tela para continuar usando o app.Configurações de TemaConfigure suas preferências de tema para o Azahar.Definir Tema
@@ -122,8 +129,8 @@
Pressione ou mova uma entrada.Mapeamento de controlesPressione ou mova um botão/alavanca para mapear para %1$s.
- Mova o seu joystick para cima ou para baixo.
- Mova o seu joystick para esquerda ou para direita.
+ Mova o seu joystick para baixo
+ Mova o seu joystick para a direitaMenu PrincipalTrocar telasTurbo
@@ -162,6 +169,8 @@
Nome de usuárioModo do Novo 3DSUsar miniaplicativos LLE (se instalados)
+ Aplicar patch de região livre aos aplicativos instalados
+ Aplica um patch de região livre nos aplicativos instalados, para que eles sempre apareçam no menu inicial.Ativa os módulos LLE necessários para os recursos online (se instalado)Ativa os módulos LLE necessários para o multijogador online, acesso à eShop, etc.Relógio
@@ -193,6 +202,10 @@
Aviso de inconsistência de regiãoO país configurado não é válido para a região emulada selecionada.O país configurado não é válido para o console vinculado atual.
+ Armazenamento
+ Comprimir conteúdo CIA instalado
+ Comprime o conteúdo dos arquivos CIA ao serem instalados no cartão SD emulado. Afeta apenas o conteúdo CIA instalado enquanto a opção estiver ativada.
+
Câmera frontalCâmera traseira esquerda
@@ -213,25 +226,27 @@
Emite o fragment shader usado para emular PICA usando SPIR-V em vez de GLSLDesativar otimizador SPIR-VDesativa a etapa de otimização SPIR-V, reduzindo consideravelmente os travamentos, com impacto mínimo no desempenho.
- Ativar a compilação assíncrona de shaders
+ Habilitar Compilação Assíncrona do ShaderCompila shaders em segundo plano para reduzir travamentos durante o jogo. Quando ativado, espere falhas gráficas temporáriasFiltragem LinearAtiva a filtragem linear, que suaviza o visual do jogo.Filtro de texturasAprimora o visual dos aplicativos ao aplicar filtros às texturas. Os filtros compatíveis são: Anime4K Ultrafast, Bicúbico, ScaleForce, xBRZ Freescale e MMPX.
- Atrasar thread de renderização do aplicativo
+ Atrasar Thread de Renderização do AplicativoAtrasar thread de renderização do aplicativo quando for enviado dados para a GPU. Ajuda com problemas de desempenho em (muito poucos) aplicativos com taxa de quadros dinâmica.AvançadoAmostragem de TexturasSubstitui o filtro de amostragem usado pelos jogos. Isso pode ser útil em certos casos com jogos que se comportem mal durante o upscaling. Em caso de dúvidas, defina como Controlado pelo Jogo.Multiplicação precisaUtiliza uma multiplicação mais precisa de shaders no hardware, o que pode corrigir problemas visuais. Quando ativada, pode haver redução no desempenho.
- Ativar emulação de GPU assíncrona
+ Habilitar Emulação de GPU Assíncrona Usa uma thread separada para emular a GPU de forma assíncrona. Esta opção aprimora o desempenho quando ativada.Limite de velocidadeQuando ativo, a velocidade de emulação será limitada à uma porcentagem especificada da velocidade normal. Se desativado, a velocidade de emulação será destravada e a tecla de atalho do turbo não irá funcionar.Limite de velocidade percentualEspecifica a porcentagem para limitar a velocidade. Com o padrão de 100% a emulação será limitada a velocidade normal. Valores maiores ou menores vão aumentar ou reduzir o limite de velocidade.
+ Esconder Imagens do 3DS do Android
+ Prevenir câmera do 3DS, screenshots e texturas personalizadas de serem indexadas pelo Android e mostradas na galeria. Seu dispositivo pode precisar ser reiniciado após mudar essa configuração para as mudanças serem efetuadas.Limite da Velocidade Turbo:Limite de velocidade da emulação usado enquanto a tecla de atalho turbo está ativa.Expandir para a área recortada
@@ -253,10 +268,18 @@
Aviso: modificar estas configurações tornará a emulação mais lentaEstereoscopiaModo 3D Estereoscópico
+ Escolha o modo 3D estereoscópico para a renderização 3D. Os modos Lado a Lado são os mais comuns atualmente. Os modos Anáglifo e Entrelaçado serão sempre aplicados a todas as telas conectadas.ProfundidadeEspecifica o valor do controle deslizante 3D. Deve ser definido como superior a 0% quando o 3D Estereoscópico estiver ativado.\nNota: Valores de profundidade acima de 100% não são possíveis no hardware real e podem causar problemas gráficosDesativar a renderização do olho direitoMelhora muito o desempenho em alguns aplicativos, mas pode causar piscadas em outros.
+ Inverter Olhos
+ Inverte qual olho é exibido em cada lado. Combinado com o modo Lado a Lado, torna possível ver em 3D cruzando os olhos!
+ Renderizar 3D Estereoscópico
+ Define se o 3D estereoscópico deve ser ativado e em quais telas. As opções de tela única só são relevantes quando várias telas estão conectadas.
+ Ativado (Todas as Telas)
+ Ativado (Apenas Tela Principal)
+ Ativado (Apenas Tela Secundária)VR Cardboard Tamanho da Tela do CardboardDimensiona a tela para uma porcentagem de seu tamanho original.
@@ -281,7 +304,7 @@
VolumeAlongamento de ÁudioEstica o áudio para reduzir engasgos. Quando ativado, aumenta a latência do áudio e reduz levemente o desempenho.
- Ativar áudio em tempo real
+ Ativar Áudio em Tempo RealDimensiona a velocidade de reprodução de áudio para compensar quedas na taxa de quadros da emulação. Isso significa que o áudio será reproduzido em velocidade máxima mesmo quando a taxa de quadros do jogo estiver baixa. Pode causar problemas de dessincronização de áudio.Dispositivo de entrada de áudioModo de Saída de Som
@@ -293,12 +316,12 @@
Utiliza o hardware para emular os shaders do 3DS. Quando ativado, o desempenho do jogo será consideravelmente melhorado.Velocidade do Clock da CPUAtivar sincronização vertical
- Sincroniza a taxa de quadros do jogo com a taxa de atualização da tela do seu dispositivo.
+ Sincroniza a taxa de quadros do jogo com a taxa de atualização do seu dispositivo. Pode causar latência de entrada adicional, mas pode reduzir o \"tearing\" (rasgo de tela) em alguns casos.Renderizador de DepuraçãoRegistre informações adicionais de depuração relacionadas a gráficos. Quando ativado, o desempenho do jogo será significativamente reduzido.
- Limpar a saída do log a cada mensagem
+ Limpar a Saída do Log a Cada MensagemGrava imediatamente o log de depuração no arquivo. Use isto se o Azahar travar e a saída do log estiver sendo cortada.
- Atraso na inicialização com módulos LLE
+ Atraso na Inicialização com Módulos LLEAtrasa a inicialização do aplicativo quando os módulos LLE estão ativados.Operações Assíncronas DeterminísticasTorna as operações assíncronas determinísticas para depuração. Ativar essa opção pode causar congelamentos.
@@ -396,6 +419,10 @@
Configurar controlesEditar DisposiçãoPronto
+ Deslizar Botão
+ Segurar o botão originalmente pressionado
+ Segurar o botão atualmente pressionado
+ Segurar o botão original e o atualmente pressionadoAlternar controlesAjustar escalaEscala Global
@@ -408,6 +435,8 @@
Proporção da TelaDisposição de tela em paisagemDisposição da tela em retrato
+ Layout da Tela de Exibição Secundária
+ O layout usado por uma tela secundária conectada, com ou sem fio (Chromecast, Miracast)Tela GrandeRetratoTela única
@@ -415,7 +444,15 @@
Telas HíbridasOriginalPadrão
+ Padrão do Sistema (espelhamento)Disposição Personalizada
+ Cor de Fundo
+ A cor que aparece atrás das telas durante a emulação, representada por um valor RGB.
+ Vermelho
+ Verde
+ Azul
+ Opacidade da Segunda Tela no Layout Personalizado
+ A opacidade da segunda tela do 3DS ao usar um layout de telas personalizado. Útil caso a segunda tela sobreponha a primeira.Posição da Tela PequenaOnde a tela pequena deverá aparecer relativa à grande na Disposição da Tela Grande?Superior Direita
@@ -511,6 +548,8 @@
Erro FatalOcorreu um erro fatal. Verifique o registro para obter detalhes.\nContinuar a emulação pode resultar em falhas e bugs.Aplicativo criptografado não suportado
+ Modo de sistema inválido
+ Novos aplicativos exclusivos do New 3DS não podem ser carregados sem ativar o modo New 3DS.Preparando Shaders
@@ -535,33 +574,39 @@
Criar AtalhoO nome do atalho não pode ficar vazioEsticar para ajustar à imagem
+ ID:
+ Arquivo:
+ Tipo:
+ Inserir Cartucho
+ Ejetar Cartucho
+
Mostrar Sobreposição de DesempenhoSobreposição de DesempenhoAtiva a Sobreposição de DesempenhoConfigure se a sobreposição de desempenho será exibida e quais informações serão mostradas.
- Mostrar FPS
- Exibe a taxa de quadros atual por segundo.
- Mostrar Tempo de Quadro
- Exibe o tempo de quadro atual.
- Mostrar Velocidade
- Exibe a porcentagem atual da velocidade da emulação.
- Mostrar o Uso de Memória do Aplicativo
- Exibe a quantidade de RAM utilizada pelo emulador.
- Mostrar Memória Disponível
- Exibe a quantidade de RAM disponível.
- Mostrar a Temperatura da Bateria
- Exibe a temperatura atual da Bateria em Celsius e Fahrenheit.
- Posição da Sobreposição
- Escolha onde a sobreposição de desempenho será exibida na tela.
- Superior Esquerdo
- Superior Direito
- Inferior Esquerdo
- Inferior Direito
- Centro Superior
- Centro Inferior
- Plano de Fundo da Sobreposição
- Adiciona um plano de fundo atrás da sobreposição para facilitar a leitura.
+ Mostrar FPS
+ Mostrar frames por segundo atuais.
+ Mostrar tempo de frame
+ Mostrar tempo de frame atual.
+ Mostrar velocidade
+ Mostrar atual porcentagem de velocidade da emulação.
+ Mostrar Uso da Memória pelo App
+ Mostrar o consumo de RAM pelo emulador.
+ Mostrar Memória Disponível
+ Mostrar a quantidade de RAM livre.
+ Mostrar Temperatura da Bateria
+ Mostrar atual temperatura da Bateria em Celsius e Fahrenheit.
+ Posição do Overlay
+ Escolha onde o overlay de performance é mostrado na tela.
+ Canto Superior Esquerdo
+ Canto Superior Direito
+ Canto Inferior Esquerdo
+ Canto Inferior Direito
+ Superior Central
+ Inferior Central
+ Plano de Fundo da Sobreposição
+ Adiciona um plano de fundo atrás do overlay para uma leitura mais fácil.Truques
@@ -666,7 +711,7 @@
Lado a Lado
- Inverter Lado a Lado
+ Lado a Lado (Largura Total)AnáglifoEntrelaçadoEntrelaçado Reverso
@@ -855,4 +900,19 @@
Salvar rápido - %1$tF %1$tRNenhum Salvamento Rápido disponível.
+
+ Compactar
+ Compactando...
+ Descompactar
+ Descompactando...
+ Compactação concluída com sucesso.
+ Compactação não suportada para este arquivo.
+ O arquivo já está compactado.
+ A compactação falhou.
+ Descompactação concluída com sucesso.
+ Descompactação não suportada para este arquivo.
+ O arquivo não está compactado.
+ A descompactação falhou.
+ Aplicativos já instalados não podem ser compactados ou descompactados.
+
diff --git a/src/android/app/src/main/res/values-b+ru+RU/strings.xml b/src/android/app/src/main/res/values-b+ru+RU/strings.xml
index b2e79499e..902a573a6 100644
--- a/src/android/app/src/main/res/values-b+ru+RU/strings.xml
+++ b/src/android/app/src/main/res/values-b+ru+RU/strings.xml
@@ -70,8 +70,6 @@
Нажмите или отклоните элемент управления.Привязки вводаНажмите или отклоните орган управления для привязки %1$s.
- Наклоните джойстик вверх или вниз.
- Наклоните джойстик влево или вправо.HOMEДанный элемент управления должен быть привязан к аналоговому стику или крестовине геймпада!Данный элемент управления должен быть привязан к кнопке геймпада!
@@ -120,14 +118,12 @@
Графический APIВкл. генерацию шейдеров на SPIR-VЗапускать фрагментный шейдер, используемый для эмуляции PICA на SPIR-V вместо GLSL.
- Вкл. асинхронную компиляцию шейдеровКомпилировать шейдеры в фоновом потоке для уменьшения лагов во время игры. При включении возможны временные сбои графики.Линейное сглаживаниеВкл. линейное сглаживание для смягчения графики в играх.Сглаживание текстурТочное умножениеИсп. более точное умножение для аппаратных шейдеров. Может исправлять некоторые графические баги, но при включении снижает производительность.
- Вкл. асинхронную эмуляцию GPUИспользовать отдельный поток для асинхронной эмуляции GPU. При включении повышает производительность.Ограничивать скоростьПроцент ограничения скорости
@@ -172,7 +168,6 @@
Эмулировать шейдеры 3DS аппаратными средствами. При включении существенно повышает производительность в играх.Скорость процессораВкл. V-Sync
- Синхронизирует кадровую частоту в играх с частотой обновления устройства.Отладка рендераЛогировать расширенную отладочную информацию по графике. При включении существенно снижает производительность.
diff --git a/src/android/app/src/main/res/values-b+tr+TR/strings.xml b/src/android/app/src/main/res/values-b+tr+TR/strings.xml
index 1376dc76f..312f94b2b 100644
--- a/src/android/app/src/main/res/values-b+tr+TR/strings.xml
+++ b/src/android/app/src/main/res/values-b+tr+TR/strings.xml
@@ -74,6 +74,9 @@
İzin reddedildiUygulama dosyasını seçmeyi atla?Eğer bir dosya seçili değilse yazılımlar uygulama listesinde görünmeyecektir.
+ İzinler
+ Veri Klasörleri
+ Emülatörün belirli özelliklerini kullanmak için isteğe bağlı izinler verinYardımAtlaİptal et
@@ -83,6 +86,7 @@
Şimdiki Azahar Dizinini KoruEski Lime3DS Dizinini KullanSeç
+ Kullanıcı klasörü ayarlamayı atlayamazsınızBu adım Azahar\'ın çalışması için gereklidir. Lütfen devam etmek için bir dizin seçin.Kayıtların ve diğer bilgilerin depolandığı kullanıcı verileridizininizdeki yazma izinlerini kaybettiniz. Bu durum bazı uygulama veya Android güncellemelerinden sonra meydana gelebilir. Devam edebilmeniz için lütfen izinleri yeniden kazanmak üzere dizini yeniden seçin.Tema Ayarları
@@ -117,8 +121,6 @@
Bir girdiye basın veya hareket ettirin.Girdi AtamasıBir girdiyi %1$s e atamak için basın veya hareket ettirin.
- Joystick\'inizi yukarı veya aşağı kaydırın.
- Joystick\'inizi sağa veya sola kaydırın.HOMEEkranları değiştirTurbo
@@ -185,6 +187,7 @@
Bölge Uyuşmazlık UyarısıÜlke ayarı emülasyon bölgesi için geçerli değil.Ülke ayarı bağlı olan konsol için geçerli değil.
+ Depolama
İç Kamera
@@ -196,23 +199,24 @@
“Görüntü Kaynağı” ayarı ‘Cihaz Kamerası’ olarak ayarlanmışsa, bu ayar kullanılacak fiziksel kamerayı ayarlar.ÖnGeri
+ Harici
+ Çevir
+
İşleyiciGrafik API\'ıSPIR-V gölgelendirici oluşturmayı etkinleştir
- Asenkron gölgeleme derlemesini etkinleştirOyun sırasında takılmayı azaltmak için gölgelendiricileri arka planda derler. Etkinleştirildiğinde geçici grafik hataları meydana gelebilir.Doğrusal filtrelemeOyun görsellerinin daha pürüzsüz görünmesini sağlayan doğrusal filtrelemeyi etkinleştirir.Doku FiltresiDokulara bir filtre uygulayarak uygulamaların görsellerini geliştirir. Desteklenen filtreler Anime4K Ultrafast, Bicubic, ScaleForce, xBRZ freescale ve MMPX\'tir.
- Oyun işleme iş parçacığını geciktirGPU\'ya veri gönderirken oyun işleme iş parçacığını geciktirin. Dinamik kare hızlarına sahip (çok az sayıda) uygulamada performans sorunlarına yardımcı olur.
+ GelişmişDoku ÖrneklemeUygulamalar tarafından kullanılan örnekleme filtresini geçersiz kılar. Bu, görüntü yükseltme sırasında hatalı davranan uygulamaların olduğu bazı durumlarda faydalı olabilir. Emin değilseniz, bunu Uygulama Kontrollü olarak ayarlayın.İsabetli ÇoğaltmaDonanım gölgelendiricilerinde daha doğru çarpım kullanır, bu da bazı grafik hatalarını düzeltebilir. Etkinleştirildiğinde performans düşecektir.
- Asenkron GPU emülasyonunu etkinleştirGPU emülasyonunu asenkron olarak yapmak için ayrı bir iş parçacığı kullanır. Etkinleştirildiğinde performans artacaktır.Hızı SınırlandırEtkinleştirildiğinde, emülasyon hızı normal hızın belirli bir yüzdesiyle sınırlandırılır. Devre dışı bırakılırsa, emülasyon hızı sınırlandırılmaz ve turbo hız kısayol tuşu çalışmaz.
@@ -220,6 +224,7 @@
Emülasyon hızını sınırlamak için yüzdeyi belirtir. Varsayılan değer olan %100 ile emülasyon normal hız ile sınırlandırılacaktır. Daha yüksek veya daha düşük değerler hız sınırını artıracak veya azaltacaktır Etkinleştirildiğinde, emülasyon hızı normal hızın belirli bir yüzdesiyle sınırlandırılacaktır. Devre dışı bırakılırsa, emülasyon hızı sınırlandırılmaz ve turbo hız kısayol tuşu çalışmaz.Turbo Hız LimitiTurbo kısayolu aktfiken kullanılan emülasyon hız limiti.
+ Kesme Alanına Genişletİç ÇözünürlükRender için kullanılan çözünürlüğü belirtir. Yüksek çözünürlük görsel kaliteyi çok artıracaktır ancak performans açısından da oldukça ağırdır ve bazı uygulamalarda aksaklıklara neden olabilir.Otomatik (Ekran Boyutu)
@@ -259,7 +264,7 @@
Ses düzeyiSes GerdirmeTakılmayı azaltmak için sesi esnetir. Etkinleştirildiğinde, ses gecikmesini artırır ve performansı biraz düşürür.
- Gerçek zamanlı sesi etkinleştir
+ Gerçek Zamanlı Sesi EtkinleştirEmülasyon kare hızındaki düşüşleri hesaba katmak için ses çalma hızını ölçeklendirir. Bu, oyun kare hızı düşük olsa bile sesin tam hızda çalınacağı anlamına gelir. Ses senkronizasyon sorunlarına neden olabilir.Ses Giriş CihazıSes Çıkış Modu
@@ -271,15 +276,13 @@
3DS shader\'larının emülasyonu için donanımı kullanır. Etkinleştirildiğinde oyun performansı önemli ölçüde artacaktır.CPU Saat HızıV-Sync\'i Etkinleştir
- Oyun kare hızını cihazınızın yenileme hızına senkronize eder.Hata Ayıklama İşleyicisiGrafiklerle ilgili ek hata ayıklama bilgilerini günlüğe kaydedin. Etkinleştirildiğinde, oyun performansı önemli ölçüde azalacaktır.
- Her mesajda günlük çıktısını temizleHata ayıklama günlüğünü hemen dosyaya işler. Azahar çöküyor ve günlük çıktısı kesiliyorsa bunu kullanın.
- LLE modülleriyle başlamayı geciktirLLE modülleri etkinken uygulamanın başlamasını geciktirirDeterministik Asenkron İşlemlerHata ayıklama için asenkron işlemleri deterministik hale getirir. Bunu etkinleştirmek donmalara neden olabilir.
+ RPC Sunucusunu EtkinleştirEkran YönelimiOtomatik
@@ -287,6 +290,13 @@
Ters YatayPortreTers Portre
+ Varsayılan
+ 16:9
+ 4:3
+ 21:9
+ 16:10
+ Gerdir
+
TemizleVarsayılan
@@ -302,6 +312,7 @@
Varsayılanlara Sıfırlaoyun kartuşlarınızı veya yüklü başlıklarınızıyeniden yüklemek için kılavuzları izleyin.]]>Varsayılan
+ OtomatikKapalıYükleSil
@@ -320,6 +331,9 @@
İptal ediliyor...ÖnemliTekrar gösterme
+ Görünürlük
+ Bilgi
+
Oyun Dosyası Seç
@@ -357,12 +371,14 @@
Kontrolleri YapılandırDüzeni DeğiştirBitti
+ Buton KaymasıÖlçeği AyarlaTümünü SıfırlaGörünürlüğü AyarlaD-Pad kaymasıAyarları AçHileleri Aç
+ En Boy OranıYatay Ekran DüzeniDikey Ekran DüzeniBüyük Ekran
@@ -372,7 +388,12 @@
Hibrit EkranlarOrijinalVarsayılan
+ Sistem Varsayılanı (ayna)Özel Düzen
+ Arkaplan Rengi
+ Kırmızı
+ Yeşil
+ MaviKüçük Ekran KonumuBüyük Ekran Düzeninde küçük ekran büyük ekrana kıyasla nerede olmalı?Sağ Üst
@@ -398,6 +419,7 @@
YükseklikEkranları DeğiştirYerleşimi Sıfırla
+ Kontrolcü Yerleşimini GösterOyunu KapatDuraklatmayı Aç / KapatÇeşitli
@@ -462,7 +484,6 @@
Ölümcül HataÖlümcül bir hata oluştu. Ayrıntılar için log\'u kontrol edin.\nEmülasyona devam etmek çökmelere ve hatalara neden olabilir.Desteklenmeyen şifreli uygulama
-
Gölgelendiriciler HazırlanıyorGölgelendiriciler Oluşturuluyor
@@ -481,6 +502,22 @@
DLC\'leri SilGüncellemeleri SilKısayol
+ Kısayol Adı
+ Simgeyi düzenle
+ Kısayol Oluştur
+ ID:
+ Dosya:
+ Tür:
+ FPS\'i Göster
+ Hızı Göster
+ Kullanılabilir Belleği Göster
+ Pil Sıcaklığını Göster
+ Sol Üst
+ Sağ Üst
+ Sol Alt
+ Sağ Alt
+ Orta Üst
+ Orta AltHilelerHile Ekle
@@ -583,7 +620,6 @@
Yan Yana
- Ters Yan YanaAnaglifGeçmeliTers Geçmeli
@@ -601,6 +637,7 @@
Oyun Kontrollü
+ En Yakın KomşuLineer
@@ -771,4 +808,4 @@
Hızlı Kayıt - %1$tF %1$tRHiçbir Hızlı Kayıt mevcut değil.
-
+
diff --git a/src/android/app/src/main/res/values-b+zh+CN/strings.xml b/src/android/app/src/main/res/values-b+zh+CN/strings.xml
index bde1ba0d8..a47c26b4c 100644
--- a/src/android/app/src/main/res/values-b+zh+CN/strings.xml
+++ b/src/android/app/src/main/res/values-b+zh+CN/strings.xml
@@ -122,8 +122,6 @@
按下或移动以进行输入。绑定输入按下按键或轻推摇杆,将其绑定到 %1$s。
- 向上或向下轻推您的摇杆。
- 向左或向右轻推您的摇杆。HOME交换屏幕加速
@@ -236,6 +234,8 @@
启用后,模拟速度将被限制为正常速度的指定百分比。如果禁用,模拟速度则不受限制,并且加速热键将不起作用。限制运行速度百分比指定限制运行速度的百分比。默认情况下,100% 将限制为正常运行速度。较高或较低的值将增加或降低运行速度。
+ 在安卓设备上隐藏 3DS 图像
+ 阻止 Android 索引 3DS 摄像、屏幕截图和自定义纹理图像并将其显示在图库中。更改此设置后,可能需要重启设备才能生效。加速限制加速热键激活时使用的模拟速度限制。扩展到裁剪区域
@@ -262,7 +262,7 @@
禁用右眼渲染极大地提高某些应用的性能,但可能会导致其他应用出现闪烁。Cardboard VR
- Cardboard 屏幕尺寸
+ 纸板屏幕大小将屏幕缩放至其原始大小的指定百分比。水平偏移指定用于水平移动屏幕的百分比。正值会将左右两个视野移向中间,而负值会将左右两个视野向外侧移动。
@@ -297,10 +297,10 @@
使用硬件模拟 3DS 着色器。启用后,游戏性能将显著提高。CPU 时钟频率启用垂直同步
- 将游戏帧率与设备的屏幕刷新率同步。
+ 将游戏帧率与设备的屏幕刷新率同步。可能会增加输入延迟,但在某些情况下可以减少画面撕裂。调试渲染器记录更多与图形相关的调试信息。启用后,游戏性能将显著降低。
- 刷新每条消息的日志输出
+ 每条消息都刷新日志输出立即将调试日志提交到文件。如果 Azahar 崩溃并且日志输出被切断,请使用此选项。使用 LLE 模块延迟启动当 LLE 模块启用时延迟应用的启动。
@@ -417,7 +417,7 @@
屏幕布局纵向屏幕布局副屏幕布局
- 有线或无线连接的辅助屏幕使用布局(Chromecast, Miracast)
+ 有线或无线连接的副屏幕使用布局(Chromecast, Miracast)大屏幕纵向单个屏幕
@@ -427,6 +427,13 @@
默认系统默认(镜像)自定义布局
+ 背景颜色
+ 在模拟运行时屏幕后面出现的颜色,以 RGB 值表示。
+ 红
+ 绿
+ 蓝
+ 自定义布局副屏幕不透明度
+ 使用自定义屏幕布局时, 3DS 副屏的不透明度。当副屏位于主屏前面时,此选项很有用。小屏幕位置在“大屏幕”布局中,小屏幕相对于大屏幕应该出现的位置?右上
@@ -524,7 +531,6 @@
致命错误发生致命错误。请查阅日志获取相关信息。\n继续模拟可能会导致错误和崩溃。不支持的加密应用
-
正在准备着色器正在构建着色器
@@ -551,34 +557,33 @@
ID:文件:类型:
-
显示性能参数性能参数覆盖启用性能参数覆盖设置是否显示性能参数以及其他覆盖信息。
- 显示帧率
- 显示当前每秒帧数。
- 显示帧生成时间
- 显示当前帧生成时间。
- 显示速度
- 显示当前模拟速度百分比。
- 显示应用内存占用
- 显示模拟器使用的内存容量。
- 显示可用内存
- 显示可用的内存容量。
- 显示电池温度
- 以摄氏度和华氏度显示当前电池温度。
- 覆盖位置
- 选择性能参数覆盖在屏幕上的显示位置。
- 左上
- 右上
- 左下
- 右下
- 中上
- 中下
- 覆盖背景
- 在覆盖层后面添加背景以便于识别。
+ 显示帧率
+ 显示当前每秒帧数。
+ 显示帧生成时间
+ 显示当前帧生成时间。
+ 显示速度
+ 显示当前模拟速度百分比。
+ 显示应用内存使用情况
+ 显示模拟器占用的内存大小。
+ 显示可用内存
+ 显示可用的内存大小。
+ 显示电池温度
+ 以摄氏度和华氏度显示当前电池温度。
+ 覆盖位置
+ 选择性能参数覆盖在屏幕上的显示位置。
+ 左上
+ 右上
+ 左下
+ 右下
+ 中上
+ 中下
+ 覆盖背景
+ 在覆盖层后面添加背景以便于识别。金手指
@@ -683,7 +688,6 @@
并排屏幕
- 反向并排立体图形交错逆向交错
@@ -872,4 +876,4 @@
快速保存 - %1$tF %1$tR没有可用的快速保存。
-
+
diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml
index c64865d59..37597b66b 100644
--- a/src/android/app/src/main/res/values-de/strings.xml
+++ b/src/android/app/src/main/res/values-de/strings.xml
@@ -122,8 +122,6 @@
Drücke eine Taste, oder bewege einen StickEingabeverknüpfungDrücke eine Taste, oder bewege einen Stick, um diesen als %1$s einzustellen.
- Bewege den Joystick nach oben oder unten.
- Bewegen den Joystick nach links oder rechts.HOMEBildschirme tauschenTurbo
@@ -193,6 +191,10 @@
Region passt nicht übereinDie Ländereinstellung ist für die ausgewählte emulierte Region nicht gültig.Die Ländereinstellung ist für die gekoppelte Konsole ungültig.
+ Speicher
+ Komprimiere installierten CIA Kontent
+ Komprimiert den Inhalt von CIA-Dateien, wenn diese auf der emulierten SD-Karte installiert werden. Betrifft nur CIA-Inhalte, die installiert werden, während die Einstellung aktiviert ist.
+
InnenkameraAußenkamera Links
@@ -213,20 +215,17 @@
Gibt den Fragment-Shader aus, der zur Emulation von PICA unter Verwendung von SPIR-V statt GLSL verwendet wird.SPIR-V Optimierer deaktivierenDeaktiviert den SPIR-V Optimierungsschritt, was stottern reduziert und die Leistung nur geringfügig beeinflusst.
- Asynchrone GPU-Emulation aktivierenKompiliere Shader im Hintergrund, um das Stottern des Spiels zu reduzieren. Dadurch kann es zu temporären grafischen Fehlern während des Spielens kommen.Lineare FilterungAktiviert lineare Filterung, welche die Spieltexturen glättet.TexturfilterVerbessert die Optik von Anwendungen durch Anwenden eines Filters auf Texturen. Die unterstützten Filter sind Anime4K Ultrafast, Bicubic, ScaleForce, xBRZ freescale und MMPX.
- Game-Render-Thread verzögernVerzögert den Render-Thread des Spiels, wenn er Daten an die GPU sendet. Hilft bei Leistungsproblemen in den (sehr wenigen) Anwendungen mit dynamischen Frameraten.ErweitertTextur-SamplingSetzt den von Spielen verwendeten Sampling-Filter außer Kraft. Dies kann in bestimmten Fällen nützlich sein, wenn sich die Spiele beim Hochskalieren schlecht verhalten. Wenn du dir unsicher bist, setze diese Einstellung auf „Spielgesteuert“Genaue MultiplikationBenutzt genauere Multiplikation in Hardware-Shadern, welche einige Grafikbugs fixen kann. Wenn aktiviert, ist die Leistung reduziert.
- Asynchrone GPU-Emulation aktivierenVerwendet einen separaten Thread, um die GPU asynchron zu emulieren. Wenn aktiviert, wird die Leistung verbessert.HöchstgeschwindigkeitWenn aktiviert, wird die Emulationsgeschwindigkeit auf einen angegebenen Prozentsatz der normalen Geschwindigkeit begrenzt. Wenn diese Option deaktiviert ist, wird die Emulationsgeschwindigkeit nicht begrenzt und der Hotkey für die Turbogeschwindigkeit funktioniert nicht.
@@ -281,7 +280,6 @@
LautstärkeAudiodehnungDehnt Audio, um Stottern zu reduzieren. Wenn aktiviert, wird die Audiolatenz erhöht und die Leistung leicht verschlechtert.
- Echtzeitaudio aktivierenSkaliert die Tonabspielgeschwindigkeit, um Einbrüche in der Emulationsframerate zu minimieren. Das bedeutet, dass der Ton in voller Geschwindigkeit abspielt, selbst wenn die Framerate des Spiels niedrig ist. Kann zu Tonverschiebungen führen.AudioeingabegerätTonausgabemodus
@@ -293,12 +291,9 @@
Benutzt Hardware, um die 3DS-Shader zu emulieren. Wenn aktiviert, wird die Spielleistung stark verbessert.CPU-Takt-RateV-Sync aktivieren
- Synchronisiert die Bildrate des Spiels mit der Bildwiederholrate des Geräts.Debug-RendererZusätzliche grafisch spezifische Debuginformationen werden protokolliert. Wenn dies aktiviert ist, ist die Leistung des Spiels minimal reduziert.
- Protokollausgabe bei jeder NachrichtÜberträgt das Debugprotokoll sofort in eine Datei. Verwenden Sie dies, wenn Azahar abstürzt und die Protokollausgabe abgeschnitten wird.
- Start mit LLE-Module verzögernVerzögert den Start der App, wenn die LLE-Module aktiviert sind.Deterministische asynchrone OperationenAsynchrone Operationen werden für Debug-Zwecke deterministisch. Die Aktivierung dieser Funktion kann zum Einfrieren führen.
@@ -511,7 +506,6 @@
Schwerwiegender FehlerEs ist ein schwerwiegender Fehler aufgetreten. Weitere Informationen findest du in der Protokolldatei.\nDas Fortfahren könnte zu ungewollten Abstürzen oder Problemen führen.Nicht unterstützte verschlüsselte Anwendung
-
Shader werden vorbereitetShader werden erstellt
@@ -540,29 +534,6 @@
Leistungs-OverlayLeistungsoverlay aktivierenKonfigurieren Sie, ob das Leistungs-Overlay angezeigt wird und welche Informationen angezeigt werden.
- FPS anzeigen
- Aktuelle Bilder pro Sekunde anzeigen.
- Frametime anzeigen
- Aktuelle Frametime anzeigen.
- Geschwindigkeit anzeigen
- Zeigt die aktuelle Emulationsgeschwindigkeit in Prozent an.
- App-Speichernutzung anzeigen
- Zeigt die vom Emulator verwendete RAM-Menge an.
- Verfügbaren Speicher anzeigen
- Zeigt die verfügbare RAM-Menge an.
- Batterietemperatur anzeigen
- Zeigt die aktuelle Batterietemperatur in Celsius und Fahrenheit an.
- Overlay-Position
- Wählen Sie, wo das Leistungs-Overlay auf dem Bildschirm angezeigt wird
- Links Oben
- Rechts Oben
- Links Unten
- Rechts Unten
- Oben Mittig
- Unten Mittig
- Overlay Hintergrund
- Fügt einen Hintergrund hinter dem Overlay hinzu für bessere Lesbarkeit.
-
CheatsCheat hinzufügen
@@ -665,7 +636,6 @@
Nebeneinander
- Invers NebeneinanderAnaglyphenÜberlappendInvers überlappend
@@ -854,4 +824,4 @@
Schnellspeichern - %1$tF %1$tRKein Schnellspeicher vorhanden.
-
+
diff --git a/src/android/app/src/main/res/values-fi/strings.xml b/src/android/app/src/main/res/values-fi/strings.xml
index a44d0d32a..5fbf20a34 100644
--- a/src/android/app/src/main/res/values-fi/strings.xml
+++ b/src/android/app/src/main/res/values-fi/strings.xml
@@ -8,8 +8,6 @@
D-PadYlä/ala-akseliVasen/oikea akseli
- Liikuta tattia ylös tai alas.
- Liikuta tattia vasemmalle tai oikealle.NappulatJärjestelmän kellotyyppi
@@ -38,7 +36,6 @@
Aktivoi LaitteistovarjostinKäyttää laitteistoa emuloidakseen 3DS:n varjostimia. Kun tämä on päällä, pelien suorituskyky on huomattavasti parempi.Aktivoi V-Sync
- Synkronoi pelin virkistystaajuus laitteesi virkistystaajuuteen.TyhjennäOletus
diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml
index 15528291a..419f61417 100644
--- a/src/android/app/src/main/res/values-fr/strings.xml
+++ b/src/android/app/src/main/res/values-fr/strings.xml
@@ -122,8 +122,6 @@
Appuyez ou faites bouger une touche.Liaison de boutonsAppuyez ou déplacez pour la rattacher à %1$s.
- Déplacez votre joystick vers le haut ou vers le bas.
- Déplacez votre joystick à gauche ou à droite.HOMEPermuter les écransTurbo
@@ -217,20 +215,17 @@
Émet le shader de fragment utilisé pour émuler PICA en utilisant SPIR-V plutôt que GLSLDésactiver l\'optimiseur SPIR-VDésactive le passage d\'optimisation SPIR-V, ce qui réduit considérablement les ralentissements sans affecter les performances.
- Activer la compilation asynchrone des shadersCompile les shaders en arrière-plan pour réduire les saccades pendant le jeu. Lorsqu\'il est activé, prévoyez des problèmes graphiques temporaires.Filtrage linéaireActive le filtrage linéaire, qui améliorera le lissage graphique du jeu.Filtrage des texturesAméliore l\'aspect visuel des applications en appliquant un filtre aux textures. Les filtres pris en charge sont Anime4K Ultrafast, Bicubique, ScaleForce, xBRZ freescale et MMPX.
- Retarde le rendu de thread du jeuDélai le thread de rendu du jeu lorsqu\'il soumet des données au GPU. Cela permet de résoudre les problèmes de performance dans les (très rares) applications avec des fréquences d\'images dynamiques.AvancéÉchantillonnage de textureRemplace le filtre d\'échantillonnage utilisé par les jeux. Cela peut être utile dans certains cas où les jeux se comportent mal lors de la conversion ascendante. En cas de doute, réglez ce paramètre sur « Contrôlé par le jeu ».Multiplication préciseUtilise une multiplication plus précise dans les shaders hardware, ce qui peut corriger certains bugs graphiques. Lorsqu\'elle est activée, la performance sera réduite.
- Active l\'émulation asynchone du GPUUtilise une unité d’exécution séparée pour émuler le GPU de manière asynchrone. La performance sera améliorée.Limite de vitesseUne fois activée, la vitesse d\'émulation sera limitée à un pourcentage spécifié de la vitesse normale. Si elle est désactivée, la vitesse d\'émulation ne sera pas limitée et le raccourci clavier turbo ne fonctionnera pas.
@@ -285,7 +280,6 @@
VolumeÉtirement audioÉtire le son pour réduire les saccades. Lorsqu\'il est activé, la latence est augmentée et les performances sont légèrement réduites.
- Activer l\'audio en temps réelAdapte la vitesse de lecture de l\'audio afin de ne pas être perturbé par les pertes de framerate. Ceci veut dire que l\'audio sera joué correctement même si le jeu n\'est pas aussi rapide. Peut provoquer des problèmes de synchronisation audio.Périphérique d\'entrée audioMode de sortie audio
@@ -297,12 +291,9 @@
Utilise le hardware pour émuler les shaders de la 3DS. Lorsqu\'il est activé, la performance des jeux sera améliorée de manière significative.Fréquence d\'horloge du CPUActiver la synchronisation verticale (VSync)
- Synchronise la fréquence d\'images du jeu avec la fréquence de rafraîchissement de votre appareil.Rendu de débogageEnregistre des informations de débogage supplémentaires liées aux graphiques. Lorsqu\'il est activé, les performances du jeu seront significativement réduites.
- Vider la sortie des logs sur chaque messageEnregistre immédiatement le log de débogage dans un fichier. A utiliser si Azahar se plante et que la sortie du journal est coupée.
- Démarrage différé avec les modules LLERetarde le démarrage de l\'application lorsque les modules LLE sont activés.Opérations asynchrones déterministesRend les opérations asynchrones déterministes pour le débogage. L\'activation de cette fonction peut entraîner des blocages.
@@ -519,7 +510,6 @@
Erreur fataleUne erreur fatale s\'est produite. Veuillez consulter les logs pour plus de détails.\nPoursuivre l\'émulation peut entraîner des plantages et des bugs.Application encryptée non supportée
-
Préparation des shadersConstruction des shaders
@@ -546,35 +536,11 @@
ID :Fichier :Type :
-
Afficher l\'overlay des performancesOverlay des performancesActiver l\'overlay des performancesConfigurez si l\'overlay des performances doit être affichée et quelles informations doivent être affichées.
- Afficher les FPS
- Afficher le nombre d\'images par seconde actuel.
- Afficher le temps d\'affichage
- Afficher le temps d\'affichage actuel.
- Afficher la vitesse
- Afficher le pourcentage actuel de la vitesse d\'émulation.
- Afficher l\'utilisation de la mémoire par l\'application
- Affichez la quantité de RAM utilisée par l\'émulateur.
- Afficher la mémoire disponible
- Afficher la quantité de RAM disponible.
- Afficher la température de la batterie
- Afficher la température actuelle de la batterie en degrés Celsius et Fahrenheit.
- Position de l\'overlay
- Choisissez l\'emplacement d\'affichage de l\'overlay des performances à l\'écran.
- En haut à gauche
- En haut à droite
- En bas à gauche
- En bas à droite
- Au centre en haut
- Au centre en bas
- Overlay de l\'arrière-plan
- Ajoute un arrière-plan derrière l\'overlay pour faciliter la lecture.
-
Codes de tricheAjouter un code de triche
@@ -678,7 +644,6 @@
Côte à côte
- Côte à côte inverséAnaglypheEntrelacéEntrelacement inversé
@@ -867,4 +832,4 @@
Sauvegarde rapide - %1$tF %1$tRAucune sauvegarde rapide disponible.
-
+
diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml
index 1e144cba9..39f199ab6 100644
--- a/src/android/app/src/main/res/values-it/strings.xml
+++ b/src/android/app/src/main/res/values-it/strings.xml
@@ -21,7 +21,7 @@ Cos\'è questo:
Condividi il file di log di Azahar per il debug di problemiGestione driver GPUInstalla driver GPU
- Installa driver alternativi per possibili miglioramenti nelle performance o nell\'accuratezza
+ Installa driver alternativi per possibili miglioramenti delle prestazioni o dell\'accuratezzaDriver già installatoDriver personalizzato non supportatoIl caricamento di driver personalizzati non è disponibile per questo dispositivo.
@@ -72,10 +72,14 @@ Divertiti usando l\'emulatore!Concedi il permessoVuoi saltare la concessione del permesso di notifica?Azahar non avrà il permesso di notificarti con informazioni importanti.
+ Permessi mancanti
+ Azahar richiede l\'autorizzazione per gestire i file su questo dispositivo per archiviare e gestire i propri dati.\n\nDare il permesso \"Filesystem\" prima di continuare.FotocameraConcedi il permesso alla fotocamera qui sotto per emulare la fotocamera del 3DSMicrofonoConcedi il permesso all\'utilizzo del microfono per emulare il microfono del 3DS
+ Filesystem
+ Dare il permesso del file system qui sotto per consentire ad Azahar di archiviare file.Permesso negatoSaltare la selezione della cartella applicazioni?Non verrà mostrato alcun software nella lista applicazioni se non viene selezionata alcuna cartella.
@@ -85,7 +89,7 @@ Divertiti usando l\'emulatore!
Concedere autorizzazioni opzionali per utilizzare specifiche funzionalità dell\'emulatoreAiutoSalta
- Indietro
+ AnnullaSeleziona cartella utenteutente usando il bottone sottostante.]]>Sembra che tu abbia impostato la cartella utente sia per Lime3DS che per Azahar. Questo probabilmente è dovuto al fatto che hai eseguito l\'aggiornamento ad Azahar e, al momento della richiesta, hai scelto una directory utente diversa da quella utilizzata per Lime3DS.\n\nQuesto potrebbe averti fatto pensare di aver perso salvataggi o altre impostazioni - ci scusiamo se è successo.\n\nDesideri tornare a utilizzare la tua cartella utente originale di Lime3DS, ripristinando impostazioni e salvataggi da Lime3DS, oppure preferisci mantenere la cartella utente attuale di Azahar?\n\nNessuna delle cartelle verrà eliminata, indipendentemente dalla tua scelta, e potrai passare liberamente da una all\'altra utilizzando l\'opzione \"Seleziona Cartella Utente\".
@@ -95,6 +99,9 @@ Divertiti usando l\'emulatore!
Non puoi saltare la configurazione della cartella utenteQuesto passaggio è richiesto per permettere che Azahar funzioni. Quando la cartella verrà selezionata potrai continuare.Hai perso i permessi di scrittura sulla tua cartella dei dati utente, dove sono memorizzati i salvataggi e altre informazioni. Questo può accadere dopo alcuni aggiornamenti app o Android. Ri-seleziona la cartella per recuperare le autorizzazioni in modo da poter continuare.
+ Selezione non valida
+ La selezione della directory utente non era valida.\nSeleziona nuovamente la directory utente, assicurandoti di accedervi dalla radice dello spazio di archiviazione del tuo dispositivo.
+ Azahar ha perso l\'autorizzazione a gestire i file su questo dispositivo. Ciò può accadere dopo alcuni aggiornamenti di app o Android. Si prega di concedere nuovamente questa autorizzazione nella schermata successiva per continuare a utilizzare l\'app.Impostazioni temaConfigura le impostazioni del tema di Azahar.Imposta tema
@@ -127,8 +134,8 @@ Divertiti usando l\'emulatore!
Premi o sposta un comandoAssegnazione InputPremi o muovi un comando per assegnarlo a %1$s.
- Muovi il joystick in su o in giù.
- Muovi il joystick a sinistra o a destra.
+ Sposta il joystick verso il basso
+ Sposta il joystick verso destraHomeInverti SchermiTurbo
@@ -163,10 +170,12 @@ Divertiti usando l\'emulatore!
Pulsante
- Impostazioni Emulazione
- Nome Utente
+ Impostazioni emulazione
+ Nome utenteModalità New 3DSUsa Applet LLE (se installati)
+ Applica la patch region-free alle applicazioni installate
+ Corregge la regione delle applicazioni installate per renderle region-free, in modo che vengano sempre visualizzate nel menù Home.Abilitare i moduli LLE richiesti per le funzionalità online (se installati)Abilita i moduli LLE necessari per il multigiocatore online, l\'accesso all\'eShop, ecc.Orologio
@@ -209,7 +218,7 @@ Divertiti usando l\'emulatore!
Sorgente FotocameraImposta l\'immagine sorgente della fotocamera virtuale. Puoi utilizzare un file immagine, oppure la fotocamera del dispositivo quando supportato.Fotocamera
- Se \"Immagine Sorgente\" è impostato su \"Fotocamera del Dispositivo\", da qui scegli quale fotocamera utilizzare.
+ Se l\'impostazione \"Origine immagine\" è impostata su \"Fotocamera dispositivo\", questa imposta la fotocamera fisica da utilizzare.FronteRetroEsterna
@@ -219,35 +228,37 @@ Divertiti usando l\'emulatore!
RendererAPI graficheAbilita la generazione di shader SPIR-V
- Crea le fragments shader usate per emulare PICA tramite SPIR-V, invece di GLSL
- Disabilita SPIR-V Optimizer
- Disabilita il passaggio di ottimizzazione SPIR-V, riducendo considerevolmente gli stutter e influendo appena sulle prestazioni.
- Abilita la compilazione asincrona delle shader
- Compila le shader in background per ridurre lo stuttering durante il gioco. Quando abilitato, potrebbero verificarsi dei glitch grafici.
- Filtering Lineare
+ Crea il fragment shader usato per emulare PICA tramite SPIR-V, invece di GLSL
+ Disabilita ottimizzazione SPIR-V
+ Disabilita il passaggio di ottimizzazione SPIR-V, riducendo considerevolmente gli scatti con un impatto minimo sulle prestazioni.
+ Abilita la compilazione asincrona degli shader
+ Compila gli shader in background per ridurre gli scatti durante il gioco. Se l\'opzione è abilitata, potrebbero verificarsi dei glitch grafici temporanei.
+ Filtraggio lineareAbilita il filtraggio lineare, che fa sembrare più smussata la grafica dei giochi.
- Filtro Texture
+ Filtro textureMigliora la grafica delle applicazioni applicando un filtro alle texture. I filtri supportati sono Anime4k Ultrafast, Bicubic, ScaleForce, xBRZ freescale e MMPX.Ritarda il thread di rendering del giocoRitarda il thread di rendering del gioco quando invia dati alla GPU. Aiuta con i problemi di prestazioni nelle (poche) applicazioni con frame rate dinamici.AvanzatoCampionamento textureSovrascrive il filtro di campionamento utilizzato dai giochi. Questo può essere utile in alcuni casi con giochi che gestiscono male l\'upscaling. Se hai dubbi, imposta questa opzione su \"Gestito dal gioco\".
- Moltiplicazione Accurata
- Utilizza una moltiplicazione più accurata degli shader hardware, che potrebbe correggere alcuni bug grafici. Se abilitato, le prestazioni saranno ridotte.
+ Moltiplicazione accurata
+ Utilizza una moltiplicazione più accurata degli shader hardware, che potrebbe correggere alcuni bug grafici. Se l\'opzione è abilitata, le prestazioni saranno ridotte.Abilita l\'emulazione GPU asincronaUsa un thread separato per l\'emulazione asincrona della GPU. Quando è abilitato le prestazioni saranno migliori.Limita VelocitàQuando abilitata, la velocità di emulazione sarà limitata a una percentuale specificata della velocità normale. Se disabilitato, la velocità di emulazione non sarà limitata e tasto di scelta rapida per \"Turbo speed\" non funzionerà.Limita Velocità tramite PercentualeSpecifica a quale percentuale limitare la velocità d\'emulazione. Utilizzando l\'impostazione predefinita di 100% l\'emulazione sarà limitata alla velocità normale. Valori superiori o inferiori aumenteranno o diminuiranno il limite di velocità.
+ Nascondi le immagini 3DS da Android
+ Impedisci che le immagini della fotocamera 3DS, degli screenshot e delle texture personalizzate vengano indicizzate da Android e visualizzate nella galleria. Potrebbe essere necessario riavviare il dispositivo dopo aver modificato questa impostazione per avere effetto.Limite \"Turbo speed\"Limite di velocità dell\'emulazione usato quando il tasto di scelta rapida del turbo è attivo.Espandi all\'area di ritaglioEspande l\'area di visualizzazione per includere l\'area di ritaglio (o notch).Risoluzione InternaSpecifica la risoluzione a cui renderizzare. Una risoluzione alta migliorerà la qualità visiva ma avrà un grande effetto sulle prestazioni e potrebbe causare glitch in alcune applicazioni.
- Auto (dimensione dello schermo)
+ Automatica (dimensione dello schermo)Nativa (400x240)2x Nativa (800x480)3x Nativa (1200x720)
@@ -262,10 +273,18 @@ Divertiti usando l\'emulatore!
Attenzione: Modificare queste impostazioni rallenterà l\'emulazioneStereoscopiaModalità Stereoscopia 3D
+ Scegli la modalità 3D stereoscopica per il rendering 3D. Le modalità Fianco a Fianco sono le più comuni nell\'uso moderno. Le modalità Anaglifo e Interlacciato si applicheranno sempre a tutti i display collegati.ProfonditàSpecifica il valore del regolatore di profindità 3D. Questo valore deve essere impostato su un valore superiore allo 0% quando è abilitato il \"3D stereoscopico\".\nNote: Valori di profondità superiori al 100% non sono possibili su hardware reale e possono causare problemi graficiDisabilita il rendering dell\'occhio destroMigliora notevolmente le prestazioni in alcune applicazioni, ma può causare flickering in altre.
+ Inverti occhi
+ Cambia l\'occhio dal quale lato viene visualizzato. In combinazione con la modalità Fianco a Fianco è possibile vedere il 3D incrociando gli occhi!
+ Rendering 3D Stereoscopico
+ Indica se abilitare il 3D stereoscopico e su quali schermi. Le opzioni di visualizzazione singola sono rilevanti solo quando sono collegati più display.
+ Attivo (tutti gli schermi)
+ Attivo (solo schermo primario)
+ Attivo (solo schermo secondario)Cardboard VRGrandezza CardboardScala lo schermo ad una percentuale fissata della sua grandezza originale
@@ -274,16 +293,16 @@ Divertiti usando l\'emulatore!
Spostamento VerticaleSpecifica la percentuale di spazio vuoto per spostare gli schermi verticalmente. Valori positivi muoveranno alla parte bassa dello schermo, mentre i negativi faranno il contrario.Shader JIT
- Shader Cache su Disco
- Riduce lo stuttering salvando e caricando le shader generate sul disco principale. Non può essere usato senza aver prima attivato \"Abilita Shader Hardware\"
+ Cache degli shader su disco
+ Riduce gli scatti salvando e caricando gli shader generati su disco. Non può essere usata senza aver prima attivato \"Abilita shader hardware\".Utilità
- Estrai Textures
- Le textures vengono estratte in dump/textures/[ID Gioco]/.
- Textures Personalizzate
+ Estrai texture
+ Le texture vengono estratte in dump/textures/[ID Gioco]/.
+ Texture personalizzateLe texture vengono caricate da load/textures/[ID Gioco]/.
- Precaricamento delle Textures Personalizzate
+ Precarica texture personalizzateCarica tutte le texture personalizzate nella RAM del dispositivo. Questa funzionalità può usare molta memoria.
- Caricamento asincrono delle Textures
+ Caricamento asincrono delle texture personalizzateCarica le texture personalizzate in modo asincrono con i thread in background per ridurre lo stutter del caricamento.
@@ -298,11 +317,11 @@ Divertiti usando l\'emulatore!
CPU JITUtilizza il compilatore Just-in-Time (JIT) per l\'emulazione della CPU. Se abilitato, le prestazioni di gioco miglioreranno significativamente.
- Abilita le Shader Hardware
+ Abilita shader hardwareUtilizza l\'hardware per emulare gli shader del 3DS. Se abilitato, le prestazioni dei giochi miglioreranno significativamente.Velocità Clock CPUAbilita V-Sync
- Sincronizza il frame rate dei giochi con il refresh rate del tuo dispositivo.
+ Sincronizza il frame rate del gioco con la frequenza di aggiornamento del tuo dispositivo. Può causare ulteriore latenza di input ma può ridurre il tearing in alcuni casi.Renderer di DebugRegistra ulteriori informazioni di debug relative alla grafica. Quando abilitata, le prestazioni del gioco saranno significativamente ridotte.Svuota l\'output del log ad ogni messaggio
@@ -314,7 +333,7 @@ Divertiti usando l\'emulatore!
Abilita server RPCAbilita il server RPC sulla porta 45987. Questo permette di leggere e scrivere remotamente la memoria guest.Abilita shader JIT
- Usa il motore JIT invece dell\'interprete per l\'emulazione di shader software.
+ Usa il motore JIT al posto dell\'interprete per l\'emulazione software degli shader.Orientamento schermo
@@ -360,9 +379,9 @@ Divertiti usando l\'emulatore!
Impostazione disabilitataQuesta impostazione è attualmente disattivata a causa di un\'altra impostazione che non è il valore appropriato.Questa opzione non può essere modificata mentre un gioco è in esecuzione.
- Auto-seleziona.
+ Seleziona automaticamenteAvvia
- Cancellazione...
+ Annullamento in corso...ImportanteNon mostrare piùVisibilità
@@ -388,7 +407,7 @@ Divertiti usando l\'emulatore!
Layout
- La tua ROM è Criptata
+ La tua ROM è criptataFormato ROM non validoIl file ROM non esisteNessun gioco avviabile è presente!
@@ -403,7 +422,7 @@ Divertiti usando l\'emulatore!
Feedback apticoImpostazioni OverlayConfigura Controlli
- Modifica Disposizione
+ Modifica disposizioneFattoPulsante scorrevoleTieni premuto il pulsante originariamente premuto
@@ -432,6 +451,13 @@ Divertiti usando l\'emulatore!
StandardPredefinito del sistema (specchio)Layout personalizzato
+ Colore dello sfondo
+ Il colore che appare dietro gli schermi durante l\'emulazione, rappresentato come valore RGB.
+ Rosso
+ Verde
+ Blu
+ Layout personalizzato Opacità della seconda schermata
+ L\'opacità del secondo schermo 3DS quando si utilizza un layout dello schermo personalizzato. Utile se il secondo schermo deve essere posizionato sopra il primo schermo.Posizione schermo piccoloDove dovrebbe apparire lo schermo inferiore rispetto a quello superiore nella modalità Schermo Grande?In alto a destra
@@ -520,17 +546,19 @@ Divertiti usando l\'emulatore!
AnnullaContinuaArchivio di Sistema Non Trovato
- %s è mancante. Fai il dump del tuo archivio di sistema.\nProseguire con l\'emulazione potrebbe causare crash e bugs
+ %s è mancante. Fai il dump del tuo archivio di sistema.\nProseguire con l\'emulazione potrebbe causare crash e bug.Installazione Fallita. File CIA non trovatoArchivio di SistemaErrore nel Salvataggio/CaricamentoErrore FataleSi è verificato un errore fatale. Controllare il log per i dettagli.\nContinuare l\'emulazione può causare crash e bug.Applicazione criptata non supportata
+ Modalità di sistema non valida
+ Le applicazioni esclusive del New 3DS non possono essere caricate senza abilitare la modalità New 3DS.
- Preparando le Shaders
- Costruisco le Shaders
+ Preparazione degli shader
+ Compilazione degli shaderRiproduci
@@ -554,34 +582,36 @@ Divertiti usando l\'emulatore!
ID:File:Tipo:
+ Inserisci schedina
+ Rimuovi schedinaMostra overlay prestazioniOverlay delle prestazioniAbilita overlay prestazioniConfigura se l\'overlay delle prestazioni viene visualizzato e quali informazioni vengono visualizzate.
- Mostra FPS
- Mostra i fotogrammi al secondo attuali.
- Mostra il frametime
- Mostra il frametime attuale.
- Mostra velocità
- Mostra la percentuale di emulazione attuale.
- Mostra utilizzo della memoria dell\'app
- Mostra la quantità di RAM usata dall\'emulatore.
- Mostra memoria disponibile
- Mostra la quantità di RAM disponibile.
- Mostra temperatura batteria
- Mostra la temperatura attuale, in Celsius e Fahrenheit, della batteria.
- Posizione overlay
- Scegli dove visualizzare l\'overlay delle prestazioni sullo schermo.
- In alto a sinistra
- In alto a destra
- In basso a sinistra
- In basso a destra
- In alto al centro
- In basso al centro
- Sfondo dell\'overlay
- Aggiunge uno sfondo dietro all\'overlay per una lettura più facile.
+ Mostra FPS
+ Visualizza i fotogrammi al secondo attuali.
+ Mostra frametime
+ Mostra frametime attuale.
+ Mostra velocità
+ Visualizza la percentuale di velocità di emulazione corrente.
+ Mostra l\'utilizzo della memoria dell\'app
+ Visualizza la quantità di RAM utilizzata dall\'emulatore.
+ Mostra memoria disponibile
+ Visualizza la quantità di RAM disponibile.
+ Mostra temperatura della batteria
+ Visualizza la temperatura attuale della batteria in gradi Celsius e Fahrenheit.
+ Posizione del overlay
+ Scegli dove visualizzare l\' overlay delle prestazioni sullo schermo.
+ In alto a sinistra
+ In alto a destra
+ In basso a sinistra
+ In basso a destra
+ In alto al centro
+ In basso al centro
+ Sfondo dell\'overlay
+ Aggiunge uno sfondo dietro al overlay per una lettura più semplice.Trucchi
@@ -600,7 +630,7 @@ Divertiti usando l\'emulatore!
Installando %d file. Guarda le notifiche per maggiori dettagli.Installando %dfiles. Guarda le notifiche per maggiori dettagli.
- Installando i file di %d. Guarda le notifiche per maggiori dettagli.
+ Installazione di %d file. Guarda le notifiche per maggiori dettagli.Notifiche di Azahar durante l\'installazione dei CIAInstallando il CIA
@@ -626,12 +656,12 @@ Divertiti usando l\'emulatore!
Tema
- Segui sistema
- Chiara
- Scura
+ Segui il sistema
+ Chiaro
+ Scuro
- Material you
+ Material YouUtilizza il colore del tema del sistema operativo all\'interno dell\'app (sovrascrive l\'impostazione \"Colore tema\" quando abilitata)
@@ -685,11 +715,11 @@ Divertiti usando l\'emulatore!
Dispositivo Reale (OpenAL)
- Affiancati
- Affiancato Invertito
+ Affiancato
+ Affiancato a larghezza interaAnaglifoInterlacciato
- Interlacciato Invertito
+ Interlacciato invertitoOpenGLES
@@ -763,7 +793,7 @@ Divertiti usando l\'emulatore!
AustraliaAustriaBelgio
- Bosnia Herzegovina
+ Bosnia ed ErzegovinaBotswanaBulgariaCroazia
@@ -793,7 +823,7 @@ Divertiti usando l\'emulatore!
Nuova ZelandaNorvegiaPolonia
- Portogall
+ PortogalloRomaniaRussiaSerbia
@@ -815,7 +845,7 @@ Divertiti usando l\'emulatore!
ChadSudanEritrea
- Djibouti
+ GibutiSomaliaAndorraGibilterra
@@ -862,7 +892,7 @@ Divertiti usando l\'emulatore!
Dicembre
- Comunicazione con il server Artic Base fallita. L\'emulazione verrà interrotta
+ Comunicazione con il server Artic Base fallita. L\'emulazione verrà interrotta.Artic BaseConnettiti a una console reale che sta eseguendo il server Artic BaseConnetti ad Artic Base
@@ -873,6 +903,21 @@ Divertiti usando l\'emulatore!
Salvataggio RapidoCaricamento RapidoSalvataggio Rapido - %1$tF %1$tR
- Nessun salvataggio rapido disponibile
+ Nessun salvataggio rapido disponibile.
+
+
+ Comprimi
+ Compressione...
+ Decomprimi
+ Decompressione...
+ Compressione completata con successo.
+ Compressione non supportata per questo file.
+ Il file è già compresso.
+ Compressione fallita.
+ Decompressione completata con successo.
+ Decompressione non supportata per questo file.
+ Il file non è compresso.
+ Decompressione fallita.
+ Le applicazioni già installate non possono essere compresse o decompresse.
diff --git a/src/android/app/src/main/res/values-nb/strings.xml b/src/android/app/src/main/res/values-nb/strings.xml
index 217319f54..e207f7eb0 100644
--- a/src/android/app/src/main/res/values-nb/strings.xml
+++ b/src/android/app/src/main/res/values-nb/strings.xml
@@ -12,8 +12,6 @@
Venstre/Høyre AkseInngangsinnbindingTrykk eller flytt en inngang for å binde den til %1$s.
- Beveg Joystick opp eller ned
- Beveg Joystick venstre eller høyreDenne kontrollen må være bundet til en håndkontroller\'s analog spak eller kontrollpluss akse!Denne kontrollen må være bundet til en håndkontroller knapp!
@@ -40,7 +38,6 @@
Tekstur FilterAktiver nøyaktig shader-multiplikasjonBruker mer nøyaktig multiplikasjon i maskinvare shaders, som kan fikse noen grafiske feil. Når dette er aktivert, reduseres ytelsen.
- Aktiver asynkron GPU-emuleringBruker en egen tråd for å emulere GPU asynkront. Når dette er aktivert, forbedres ytelsen.Aktiver fartsbegrensningBegrens fartsprosent
@@ -56,7 +53,6 @@
Aktiver maskinvare shaderBruker maskinvare for å etterligne 3DS shaders. Når dette er aktivert, vil spillytelsen bli betydelig forbedret.Aktiver V-Sync
- Synkroniserer spillrammefrekvensen med oppdateringsfrekvensen på enheten din.TømStandard
diff --git a/src/android/app/src/main/res/values-nl/strings.xml b/src/android/app/src/main/res/values-nl/strings.xml
index 40afb28a0..dbc435008 100644
--- a/src/android/app/src/main/res/values-nl/strings.xml
+++ b/src/android/app/src/main/res/values-nl/strings.xml
@@ -93,8 +93,6 @@ Vink deze optie in de toekomst nogmaals aan om te zien of er ondersteuning is to
Druk op of verplaats een invoer.InvoerbindingDruk op of verplaats een invoer waaraan u deze wilt koppelen %1$s
- Beweeg je joystick naar boven of beneden.
- Beweeg je joystick naar links of rechts.HOMEVerwissel SchermenDeze besturing moet worden gekoppeld aan een analoge gamepad-stick of D-pad-as!
diff --git a/src/android/app/src/main/res/values-sv/strings.xml b/src/android/app/src/main/res/values-sv/strings.xml
index d9ebcffe1..0ad337086 100644
--- a/src/android/app/src/main/res/values-sv/strings.xml
+++ b/src/android/app/src/main/res/values-sv/strings.xml
@@ -32,6 +32,8 @@
Ändrar de filer som Azahar använder för att ladda applikationerModifiera utseendet på appenInstallera CIA
+ Läs mer.]]>
+
Välj GPU-drivrutinVill du ersätta din nuvarande GPU-drivrutin?
@@ -65,20 +67,36 @@
Ge tillståndHoppa över att ge tillstånd för avisering? Azahar kommer inte att kunna meddela dig viktig information.
+ Saknar behörigheter
+ Azahar behöver behörighet för att hantera filer på den här enheten för att kunna lagra och hantera sina data. \n\nGe behörighet för ”Filsystem” innan du fortsätter.KameraGe kameratillståndet nedan för att emulera 3DS-kameran.MikrofonGe mikrofonbehörighet nedan för att emulera 3DS-mikrofonen.
+ Filsystem
+ Bevilja filsystemsbehörighet nedan för att tillåta Azahar att lagra filer.Tillstånd nekatHoppa över att välja applikationsmapp?Programvara visas inte i listan Program om en mapp inte är markerad.
+ Behörigheter
+ Datamappar
+ (Användarmapp krävs)]]>
+ Bevilja valfria behörigheter för att använda specifika funktioner i emulatornHjälpHoppa överAvbrytVälj användarmappanvändardatakatalog med knappen nedan.]]>
+ Du verkar ha användarkataloger inställda för både Lime3DS och Azahar. Detta beror troligen på att du uppgraderade till Azahar och när du blev ombedd att välja en annan användarkatalog än den som användes för Lime3DS. \n\nDetta kan ha lett till att du trodde att du förlorat sparade spel eller andra inställningar – vi ber om ursäkt om så är fallet. Vill du gå tillbaka till att använda din ursprungliga Lime3DS-användarkatalog och återställa inställningar och spara spel från Lime3DS, eller behålla din nuvarande Azahar-användarkatalog? Ingen av katalogerna kommer att raderas, oavsett vilket val du gör, och du kan fritt växla mellan dem med hjälp av alternativet Välj användarkatalog.
+ Behåll aktuell Azahar-katalog
+ Använd tidigare Lime3DS-katalogVälj
+ Du kan inte hoppa över konfiguration av användarmappenDetta steg krävs för att Azahar ska fungera. Välj en katalog och sedan kan du fortsätta.
+ Du har förlorat skrivbehörighet till katalogen user data, där sparade filer och annan information lagras. Detta kan inträffa efter vissa app- eller Android-uppdateringar. Välj katalogen på nytt för att återfå behörigheten så att du kan fortsätta.
+ Ogiltigt val
+ Valet av användarkatalog var ogiltigt. Välj användarkatalogen igen och se till att du navigerar till den från roten av enhetens lagring.
+ Azahar har förlorat behörigheten att hantera filer på den här enheten. Detta kan inträffa efter vissa app- eller Android-uppdateringar. Bevilja denna behörighet på nästa skärm för att fortsätta använda appen.TemainställningarKonfigurera dina temapreferenser för Azahar.Ställ in tema
@@ -111,17 +129,25 @@
Tryck på eller flytta en inmatning.InmatningsbindningTryck eller flytta en inmatning för att binda den till %1$s.
- Flytta joysticken uppåt eller nedåt.
- Flytta joysticken åt vänster eller höger.
+ Rör din joystick neråt
+ Rör din joystick åt högerHOMEByt skärm
+ TurboDen här kontrollen måste vara bunden till en gamepad-analog spak eller D-pad-axel! Den här kontrollen måste vara bunden till en gamepad-knapp!
+ Turbohastighet
+ Turbohastighet aktiverad
+ Turbohastighet inaktiverad
+
SystemfilerUtför systemfilsoperationer som att installera systemfiler eller starta upp startmenynAnslut till Artic Setup Tool
+ Azahar Artic Setup Tool. Anmärkningar:
Denna åtgärd installerar konsolens unika data på Azahar. Dela inte dina användar- eller nand-mappar efter att du har genomfört konfigurationsprocessen!
Under konfigurationsprocessen kommer Azahar att länka till konsolen som kör konfigurationsverktyget. Du kan koppla bort konsolen senare från fliken Systemfiler i emulatorns alternativmeny.
Gå inte online med både Azahar och din 3DS-konsol samtidigt efter att du har konfigurerat systemfilerna, eftersom detta kan orsaka problem.
Gammal 3DS-konfiguration krävs för att den nya 3DS-konfigurationen ska fungera (det rekommenderas att konfigurera båda).
Båda installationslägena fungerar oavsett vilken modell av konsol som kör installationsverktyget.
]]>Hämtar aktuell status för systemfiler, vänta...
+ Avlänka konsolens unika data
+
Din OTP, SecureInfo och LocalFriendCodeSeed kommer att tas bort från Azahar.
Din vänlista kommer att återställas och du kommer att loggas ut från ditt NNID/PNID-konto.
Systemfiler och e-butikstitlar som erhållits via Azahar kommer att bli otillgängliga tills samma konsol kopplas ihop igen med hjälp av installationsverktyget (spardata kommer inte att gå förlorade).
Fortsätt?]]>Gammal 3DS-konfigurationNy 3DS-konfigurationKonfiguration är möjlig.
@@ -143,6 +169,8 @@
AnvändarnamnNytt 3DS-lägeAnvänd LLE Applets (om installerat)
+ Tillämpa regionsfri patch till installerade applikationer
+ Patchar regionen för installerade applikationer till att vara regionsfria så att de alltid visas på hemmenyn.Aktivera nödvändiga LLE-moduler för onlinefunktioner (om de är installerade)Aktiverar de LLE-moduler som krävs för multiplayer online, eShop-åtkomst etc.Klocka
@@ -150,6 +178,7 @@
Ställ in den emulerade 3DS-klockan så att den antingen återspeglar den på din enhet eller startar vid ett simulerat datum och klockslag.EnhetsklockaSimulerad klocka
+ Om klockan är inställd på ”Simulerad klocka” ändras det fasta datumet och klockslaget för start.ProfilinställningarRegionSpråk
@@ -170,6 +199,13 @@
Inlästa 3GX-insticksmoduler från det emulerade SD-kortet om de finns tillgängliga.Tillåt applikationer att ändra insticksinläsarens tillståndTillåter homebrew-appar att aktivera insticksinläsaren även när den är inaktiverad.
+ Varning för regionskonflikt
+ Landsinställningen är inte giltig för den valda emulerade regionen.
+ Landsinställningen är inte giltig för den aktuella länkade konsolen.
+ Lagring
+ Komprimera installerat CIA-innehåll
+ Komprimerar innehållet i CIA-filer när det installeras på det emulerade SD-kortet. Påverkar endast CIA-innehåll som installeras medan inställningen är aktiverad.
+
InnerkameraYttre vänstra kameran
@@ -188,23 +224,36 @@
Grafik-APIAktivera generering av SPIR-V shaderSkickar ut den fragment shader som används för att emulera PICA med SPIR-V istället för GLSL
+ Inaktivera SPIR-V Optimizer
+ Inaktiverar SPIR-V-optimeringspasset, vilket minskar hackandet avsevärt utan att påverka prestandan nämnvärt.Aktivera asynkron shader-kompileringSammanställer shaders i bakgrunden för att minska stuttering under spelet. När det är aktiverat kan du förvänta dig tillfälliga grafiska glitchesLineär filtrering Aktiverar linjär filtrering, vilket gör att spelets grafik ser jämnare ut.TexturfilterFörbättrar det visuella i applikationer genom att tillämpa ett filter på texturer. De filter som stöds är Anime4K Ultrafast, Bicubic, ScaleForce, xBRZ freescale och MMPX.
- Fördröj spelets renderingstråd
+ Fördröj spelrenderingstrådFördröj spelets renderingstråd när den skickar data till GPU:n. Hjälper till med prestandaproblem i de (mycket få) applikationer med dynamiska bildfrekvenser.
+ Avancerat
+ Textursampling
+ Åsidosätter det samplingsfilter som används av spel. Detta kan vara användbart i vissa fall med spel som fungerar dåligt vid uppskalning. Om du är osäker, ställ in detta på Spelkontrollerat.Accurate MultiplicationAnvänder mer exakt multiplikation i hårdvaru-shaders, vilket kan åtgärda vissa grafiska buggar. När detta är aktiverat kommer prestandan att minska.Aktivera asynkron GPU-emuleringAnvänder en separat tråd för att emulera GPU:n asynkront. När detta är aktiverat kommer prestandan att förbättras.Begränsa hastighet
+ När funktionen är aktiverad begränsas emuleringshastigheten till en angiven procentandel av normal hastighet. Om funktionen är inaktiverad är emuleringshastigheten obegränsad och snabbtangenten för turbohastighet fungerar inte.Gränsa hastigheten i procentAnger procentsatsen för att begränsa emuleringshastigheten. Med standardvärdet 100% kommer emuleringen att begränsas till normal hastighet. Värden som är högre eller lägre ökar eller minskar hastighetsgränsen.
+ Dölj 3DS-bilder från Android
+ Förhindra att 3DS-kamera, skärmdumpar och anpassade texturbilder indexeras av Android och visas i galleriet. Enheten kan behöva startas om efter att denna inställning har ändrats för att den ska träda i kraft.
+ Begränsning för turbohastighet
+ Begränsning för emuleringshastighet som används när turbo-snabbtangenten är aktiv.
+ Expandera till hela skärmen
+ Expanderar visningsområdet till att inkludera sorgkanten (eller notch).Intern upplösningAnger den upplösning som används för rendering. En hög upplösning förbättrar den visuella kvaliteten avsevärt men är också ganska prestandakrävande och kan orsaka problem i vissa applikationer.
+ Automatiskt (Skärmstorlek)Inbyggd (400x240)2x inbyggd (800x480)3x inbyggd (1200x720)
@@ -219,9 +268,18 @@
Varning: Om du ändrar dessa inställningar kommer emuleringen att bli långsammareStereoskopStereoskopiskt 3D-läge
+ Välj stereoskopiskt 3D-läge för 3D-rendering. Sida-vid-sida-lägen är vanligast i modern användning. Anaglyf- och interlaced-lägen gäller alltid för alla anslutna skärmar.Djup
+ Anger värdet för 3D-reglaget. Detta bör ställas in på högre än 0% när stereoskopisk 3D är aktiverat.\nObservera: Djupvärden över 100% är inte möjliga på verklig hårdvara och kan orsaka grafiska problem.Inaktivera rendering av höger ögaFörbättrar prestandan avsevärt i vissa applikationer, men kan orsaka flimmer i andra.
+ Byt ögon
+ Byter vilket öga som visas på vilken sida. I kombination med Sida vid sida-läget kan du se 3D genom att korsa ögonen!
+ Rendera stereoskopisk 3D
+ Huruvida stereoskopisk 3D ska aktiveras och på vilka skärmar. Alternativen för en enda skärm är endast relevanta när flera skärmar är anslutna.
+ På (Alla skärmar)
+ På (Endast primär skärm)
+ På (Endast sekundär skärm)Cardboard VRStorlek på kartongskärmSkalar skärmen till en procentandel av dess ursprungliga storlek.
@@ -258,28 +316,41 @@
Använder hårdvara för att emulera 3DS-shaders. När detta är aktiverat kommer spelprestanda att förbättras avsevärt.CPU-klockhastighetAktivera V-Sync
- Synkroniserar spelets bildfrekvens till uppdateringsfrekvensen på din enhet.
+ Synkroniserar spelets bildfrekvens med uppdateringsfrekvensen på din enhet. Kan orsaka ytterligare fördröjning av inmatningen, men kan i vissa fall minska bildfördröjningen.Felsök renderingsprogrammetLoggar ytterligare grafikrelaterad felsökningsinformation. När den är aktiverad kommer spelets prestanda att minska avsevärt.
- Töm loggen för varje meddelande
+ Spola loggutdata vid varje meddelandeÖverför omedelbart felsökningsloggen till fil. Använd detta om Azahar kraschar och loggutmatningen skärs av.
- Försenad start med LLE-moduler
+ Fördröjd start med LLE-modulerFördröjer starten av appen när LLE-moduler är aktiverade.Deterministiska asynkrona operationerGör asynkrona operationer deterministiska för felsökning. Om du aktiverar detta kan det orsaka frysningar.
-
+ Aktivera RPC-server
+ Aktiverar RPC-servern på port 45987. Detta möjliggör fjärrläsning/skrivning av gästminne.
+ Aktivera Shader JIT
+ Använd JIT-motorn istället för tolken för emulering av programvaru-shader.
+
+
SkärmorienteringAutomatiskLiggandeOmvänd liggandeStåendeOmvänd stående
+ Standard
+ 16:9
+ 4:3
+ 21:9
+ 16:10
+ Sträck ut
+
TömStandardSparade inställningarSparade inställningar för %1$sFel vid sparande av %1$s.ini: %2$s
+ Sparar...Läser in...NästaBakåt
@@ -300,10 +371,17 @@
Välj RTC-tidVill du återställa inställningen till standardvärdet? Du kan inte redigera detta nu
+ Inställning inaktiverad
+ Denna inställning är för närvarande inaktiverad på grund av att en annan inställning inte har rätt värde.Det här alternativet kan inte ändras medan ett spel pågår.AutoväljStartaAvbryter...
+ Viktigt
+ Visa inte igen
+ Synlighet
+ Information
+
Välj spelmapp
@@ -341,6 +419,10 @@
Konfigurera kontrollerRedigera layoutKlar
+ Knappglidning
+ Håll den ursprungligen intryckta knappen intryckt
+ Håll den aktuella knappen intryckt
+ Håll ursprungliga och aktuell knapptryckning intrycktVäxla kontrollerJustera skalaGlobal skala
@@ -350,8 +432,11 @@
Glidning för riktningsknapparÖppna inställningarÖppna fusk
+ BildförhållandeLiggande skärmlayoutStående skärmlayout
+ Layout för sekundär skärm
+ Layouten som används av en ansluten sekundär skärm, trådbunden eller trådlös (Chromecast, Miracast)Stor skärmStåendeEnkel skärm
@@ -359,7 +444,15 @@
HybridskärmarOriginalStandard
+ Systemstandard (spegel)Anpassad layout
+ Bakgrundsfärg
+ Den färg som visas bakom skärmarna under emulering, representerad som ett RGB-värde.
+ Röd
+ Grön
+ Blå
+ Anpassad layout för opacitet på andra skärmen
+ Opaciteten för den andra 3DS-skärmen när du använder en anpassad skärmlayout. Användbart om den andra skärmen ska placeras ovanpå den första skärmen.Position för liten skärmVar ska den lilla skärmen visas i förhållande till den stora i storskärmslayout?Uppe till höger
@@ -370,6 +463,8 @@
Ner till vänsterOvanförUnder
+ Skärmavstånd
+ Avstånd mellan skärmarna i alla tvåskärmslägen. Mätt i px i förhållande till den större skärmens höjd på 240 px.StorbildsproportionHur många gånger större är den stora skärmen än den lilla skärmen i storskärmslayout?Justera anpassad layout i inställningarna
@@ -383,7 +478,9 @@
HöjdVäxla layouterSkärmbyte
+ Vrid skärmen upprättÅterställ överlägg
+ Visa kontrolleröverläggStäng speletVäxla pausDiverse
@@ -450,13 +547,67 @@
Spara/läs in-felAllvarligt felEtt allvarligt fel inträffade. Kontrollera loggen för detaljer.\nFortsatt emulering kan leda till krascher och buggar.
+ Krypterad applikation som inte stöds
+ Ogiltigt systemläge
+ Nya 3DS-exklusiva applikationer kan inte läsas in utan att aktivera Ny 3DS-läget.
+
Förbereder shadersBygger shadersSpela
+ Avinstallera applikation
+ Avinstallerar...
+ Öppna mapp för sparat data
+ Öppna applikationsmapp
+ Öppna mapp för moddar
+ Öppna texturmapp
+ Öppna DLC-mapp
+ Öppna mapp för uppdateringar
+ Öppna extramapp
+ Avinstallera DLC
+ Avinstallera uppdateringarGenväg
+ Genvägsnamn
+ Redigera ikon
+ Skapa genväg
+ Genvägsnamnet får inte vara tomt
+ Sträck ut för att passa bild
+ ID:
+ Fil:
+ Typ:
+ Mata in cartridge
+ Mata ut cartridge
+
+
+ Visa prestandaöverlägg
+ Prestandaöverlägg
+ Aktivera prestandaöverlägg
+ Konfigurera om prestandaöverlägget ska visas och vilken information som ska visas.
+ Visa bilder/s
+ Visa aktuella bilder per sekund.
+ Visa bildrutetider
+ Visa aktuella bildrutetider.
+ Visa hastighet
+ Visa aktuell emuleringshastighet i procent.
+ Visa användning av programminne
+ Visa mängden RAM-minne som används av emulatorn.
+ Visa tillgängligt minne
+ Visa mängden tillgängligt RAM-minne.
+ Visa batteritemperatur
+ Visa aktuell batteritemperatur i Celsius och Fahrenheit.
+ Överläggsposition
+ Välj var prestandaöverlägget ska visas på skärmen.
+ Överst till vänster
+ Överst till höger
+ Nederst till vänster
+ Nederst till höger
+ Mitten längst upp
+ Mitten längst ner
+ Bakgrund för överlägg
+ Lägger till en bakgrund bakom överlägget för att underlätta läsningen.
+
FuskLägg till fusk
@@ -477,6 +628,7 @@
Azahar-meddelanden under CIA-installationInstallation av CIA
+ Installerar %1$s (%2$d/%3$d)Har installerat CIAInstallation av CIA misslyckades\"%s\" har installerats framgångsrikt
@@ -558,7 +710,7 @@
Sida vid sida
- Omvänd sida vid sida
+ Sida vid sida full breddAnaglyfInterlacedOmvänd interlaced
@@ -574,7 +726,11 @@
xBRZMMPX
+
+ SpelkontrolleratNärmaste granne
+ Linjär
+
MonoStereo
@@ -743,4 +899,19 @@
Snabbspara - %1$tF %1$tRIngen snabbsparning tillgänglig
+
+ Komprimera
+ Komprimerar...
+ Avkomprimera
+ Avkomprimerar...
+ Komprimeringen färdigställd.
+ Komprimering stöds inte för denna fil.
+ Filen är redan komprimerad.
+ Komprimering misslyckades.
+ Avkomprimeringen färdigställd.
+ Avkomprimering stöds inte för denna fil.
+ Filen är inte komprimerad.
+ Avkomprimering misslyckades.
+ Redan installerade applikationer kan inte komprimeras eller avkomprimeras.
+
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml
index 17bda5e66..2a08cd546 100644
--- a/src/android/app/src/main/res/values/arrays.xml
+++ b/src/android/app/src/main/res/values/arrays.xml
@@ -238,9 +238,8 @@
- @string/off@string/side_by_side
- @string/reverse_side_by_side
+ @string/side_by_side_full@string/anaglyph@string/interlaced@string/reverse_interlaced
@@ -248,7 +247,6 @@
- 0123
@@ -257,6 +255,20 @@
6
+
+ @string/off
+ @string/render_3d_which_display_both
+ @string/render_3d_which_display_primary
+ @string/render_3d_which_display_secondary
+
+
+
+ 0
+ 1
+ 2
+ 3
+
+
@string/opengles@string/vulkan
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index f60fdd0e3..5bbafd999 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -76,10 +76,14 @@
Grant permissionSkip granting the notification permission?Azahar won\'t be able to notify you of important information.
+ Missing Permissions
+ Azahar requires permission to manage files on this device in order to store and manage its data.\n\nPlease grant the \"Filesystem\" permission before continuing.CameraGrant the camera permission below to emulate the 3DS camera.MicrophoneGrant the microphone permission below to emulate the 3DS microphone.
+ Filesystem
+ Grant the filesystem permission below to allow Azahar to store files.Permission deniedSkip selecting applications folder?Software won\'t be displayed in the Applications list if a folder isn\'t selected.
@@ -100,6 +104,9 @@
You can\'t skip setting up the user folderThis step is required to allow Azahar to work. Please select a directory and then you can continue.You have lost write permissions on your user data directory, where saves and other information are stored. This can happen after some app or Android updates. Please re-select the directory to regain permissions so you can continue.
+ Invalid Selection
+ The user directory selection was invalid.\nPlease re-select the user directory, ensuring that you navigate to it from the root of your device\'s storage.
+ Azahar has lost permission to manage files on this device. This can happen after some app or Android updates. Please re-grant this permission on the next screen to continue using the app.https://web.archive.org/web/20240304193549/https://github.com/citra-emu/citra/wiki/Citra-Android-user-data-and-storageTheme SettingsConfigure your theme preferences for Azahar.
@@ -133,8 +140,8 @@
Press or move an input.Input BindingPress or move an input to bind it to %1$s.
- Move your joystick up or down.
- Move your joystick left or right.
+ Move your joystick down
+ Move your joystick rightABSELECT
@@ -183,6 +190,8 @@
UsernameNew 3DS ModeUse LLE Applets (if installed)
+ Apply region free patch to installed applications
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.Enable required LLE modules for online features (if installed)Enables the LLE modules required for online multiplayer, eShop access, etc.Clock
@@ -280,10 +289,18 @@
Warning: Modifying these settings will slow emulationStereoscopyStereoscopic 3D Mode
+ Choose the stereoscopic 3D mode for 3D rendering. Side by Side modes are most common in modern use. Anaglyph and Interlaced modes will always apply to all connected displays.DepthSpecifies the value of the 3D slider. This should be set to higher than 0% when Stereoscopic 3D is enabled.\nNote: Depth values over 100% are not possible on real hardware and may cause graphical issuesDisable Right Eye RenderGreatly improves performance in some applications, but can cause flickering in others.
+ Swap Eyes
+ Swaps which eye is shown in which side. Combined with Side by Side mode makes it possible to see 3D by crossing your eyes!
+ Render Stereoscopic 3D
+ Whether to enable stereoscopic 3D, and on which displays. The single display options are only relevant when multiple displays are connected.
+ On (All Displays)
+ On (Primary Display Only)
+ On (Secondary Display Only)Cardboard VRCardboard Screen SizeScales the screen to a percentage of its original size.
@@ -552,6 +569,8 @@
Fatal ErrorA fatal error occurred. Check the log for details.\nContinuing emulation may result in crashes and bugs.Unsupported encrypted application
+ Invalid system mode
+ New 3DS exclusive applications cannot be loaded without enabling the New 3DS mode.Preparing Shaders
@@ -579,6 +598,8 @@
ID:File:Type:
+ Insert Cartridge
+ Eject CartridgeShow Performance Overlay
@@ -712,7 +733,7 @@
Side by Side
- Reverse Side by Side
+ Side by Side Full WidthAnaglyphInterlacedReverse Interlaced
@@ -901,4 +922,19 @@
Quicksave - %1$tF %1$tRNo Quicksave available.
+
+ Compress
+ Compressing…
+ Decompress
+ Decompressing…
+ Compression completed successfully.
+ Compression not supported for this file.
+ File is already compressed.
+ Compression failed.
+ Decompression completed successfully.
+ Decompression not supported for this file.
+ File is not compressed.
+ Decompression failed.
+ Already installed applications cannot be compressed or decompressed.
+
diff --git a/src/android/build.gradle.kts b/src/android/build.gradle.kts
index aef05f5be..a0d43cb49 100644
--- a/src/android/build.gradle.kts
+++ b/src/android/build.gradle.kts
@@ -4,8 +4,8 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
- id("com.android.application") version "8.11.1" apply false
- id("com.android.library") version "8.11.1" apply false
+ id("com.android.application") version "8.13.1" apply false
+ id("com.android.library") version "8.13.1" apply false
id("org.jetbrains.kotlin.android") version "2.0.20" apply false
id("org.jetbrains.kotlin.plugin.serialization") version "2.0.20"
}
diff --git a/src/audio_core/cubeb_input.cpp b/src/audio_core/cubeb_input.cpp
index 0cd650af6..63f66fd77 100644
--- a/src/audio_core/cubeb_input.cpp
+++ b/src/audio_core/cubeb_input.cpp
@@ -144,11 +144,6 @@ Samples CubebInput::Read() {
while (impl->sample_queue.Pop(queue)) {
samples.insert(samples.end(), queue.begin(), queue.end());
}
-
- if (samples.empty()) {
- samples = GenerateSilentSamples(parameters);
- }
-
return samples;
}
diff --git a/src/audio_core/dsp_interface.cpp b/src/audio_core/dsp_interface.cpp
index 5f85b67e4..259459a5b 100644
--- a/src/audio_core/dsp_interface.cpp
+++ b/src/audio_core/dsp_interface.cpp
@@ -1,4 +1,4 @@
-// Copyright 2017 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
diff --git a/src/audio_core/dsp_interface.h b/src/audio_core/dsp_interface.h
index e2e76db6d..6e7ded2c1 100644
--- a/src/audio_core/dsp_interface.h
+++ b/src/audio_core/dsp_interface.h
@@ -1,4 +1,4 @@
-// Copyright 2017 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -86,9 +86,6 @@ public:
*/
virtual void PipeWrite(DspPipe pipe_number, std::span buffer) = 0;
- /// Returns a reference to the array backing DSP memory
- virtual std::array& GetDspMemory() = 0;
-
/// Sets the handler for the interrupts we trigger
virtual void SetInterruptHandler(
std::function handler) = 0;
diff --git a/src/audio_core/hle/aac_decoder.cpp b/src/audio_core/hle/aac_decoder.cpp
index aba724978..054674367 100644
--- a/src/audio_core/hle/aac_decoder.cpp
+++ b/src/audio_core/hle/aac_decoder.cpp
@@ -8,7 +8,7 @@
namespace AudioCore::HLE {
AACDecoder::AACDecoder(Memory::MemorySystem& memory) : memory(memory) {
- OpenNewDecoder();
+ Reset();
}
AACDecoder::~AACDecoder() {
@@ -63,6 +63,10 @@ BinaryMessage AACDecoder::ProcessRequest(const BinaryMessage& request) {
}
}
+void AACDecoder::Reset() {
+ OpenNewDecoder();
+}
+
BinaryMessage AACDecoder::Decode(const BinaryMessage& request) {
BinaryMessage response{};
response.header.codec = request.header.codec;
diff --git a/src/audio_core/hle/aac_decoder.h b/src/audio_core/hle/aac_decoder.h
index eb9d62295..1edbabd0b 100644
--- a/src/audio_core/hle/aac_decoder.h
+++ b/src/audio_core/hle/aac_decoder.h
@@ -16,6 +16,8 @@ public:
~AACDecoder() override;
BinaryMessage ProcessRequest(const BinaryMessage& request) override;
+ void Reset() override;
+
private:
BinaryMessage Decode(const BinaryMessage& request);
bool OpenNewDecoder();
diff --git a/src/audio_core/hle/decoder.h b/src/audio_core/hle/decoder.h
index 53365f45c..87bc3ef2c 100644
--- a/src/audio_core/hle/decoder.h
+++ b/src/audio_core/hle/decoder.h
@@ -1,4 +1,4 @@
-// Copyright 2018 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -137,6 +137,8 @@ class DecoderBase {
public:
virtual ~DecoderBase() = default;
virtual BinaryMessage ProcessRequest(const BinaryMessage& request) = 0;
+
+ virtual void Reset() = 0;
};
} // namespace AudioCore::HLE
diff --git a/src/audio_core/hle/hle.cpp b/src/audio_core/hle/hle.cpp
index 2ad86ca73..f01631c7c 100644
--- a/src/audio_core/hle/hle.cpp
+++ b/src/audio_core/hle/hle.cpp
@@ -1,4 +1,4 @@
-// Copyright 2017 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -6,6 +6,7 @@
#include
#include
+#include
#include
#include
#include
@@ -60,12 +61,14 @@ public:
std::size_t GetPipeReadableSize(DspPipe pipe_number) const;
void PipeWrite(DspPipe pipe_number, std::span buffer);
- std::array& GetDspMemory();
-
void SetInterruptHandler(
std::function handler);
private:
+ void Initialize();
+ void Sleep();
+ void Wakeup();
+
void ResetPipes();
void WriteU16(DspPipe pipe_number, u16 value);
void AudioPipeWriteStructAddresses();
@@ -81,7 +84,10 @@ private:
DspState dsp_state = DspState::Off;
std::array, num_dsp_pipe> pipe_data{};
- HLE::DspMemory dsp_memory;
+public:
+ HLE::DspMemory* dsp_memory;
+
+private:
std::array sources{{
HLE::Source(0), HLE::Source(1), HLE::Source(2), HLE::Source(3), HLE::Source(4),
HLE::Source(5), HLE::Source(6), HLE::Source(7), HLE::Source(8), HLE::Source(9),
@@ -91,6 +97,8 @@ private:
}};
HLE::Mixers mixers{};
+ HLE::DspMemory backup_dsp_memory;
+
DspHle& parent;
Core::Timing& core_timing;
Core::TimingEventType* tick_event{};
@@ -101,9 +109,10 @@ private:
template
void serialize(Archive& ar, const unsigned int) {
+ ar& boost::serialization::make_binary_object(backup_dsp_memory.raw_memory.data(),
+ backup_dsp_memory.raw_memory.size());
ar & dsp_state;
ar & pipe_data;
- ar & dsp_memory.raw_memory;
ar & sources;
ar & mixers;
// interrupt_handler is reregistered when loading state from DSP_DSP
@@ -113,7 +122,8 @@ private:
DspHle::Impl::Impl(DspHle& parent_, Memory::MemorySystem& memory, Core::Timing& timing)
: parent(parent_), core_timing(timing) {
- dsp_memory.raw_memory.fill(0);
+ dsp_memory = reinterpret_cast(memory.GetDspMemory(0));
+ dsp_memory->raw_memory.fill(0);
for (auto& source : sources) {
source.SetMemory(memory);
@@ -216,8 +226,6 @@ void DspHle::Impl::PipeWrite(DspPipe pipe_number, std::span buffer) {
Sleep = 3,
};
- // The difference between Initialize and Wakeup is that Input state is maintained
- // when sleeping but isn't when turning it off and on again. (TODO: Implement this.)
// Waking up from sleep garbles some of the structs in the memory region. (TODO:
// Implement this.) Applications store away the state of these structs before
// sleeping and reset it back after wakeup on behalf of the DSP.
@@ -225,7 +233,7 @@ void DspHle::Impl::PipeWrite(DspPipe pipe_number, std::span buffer) {
switch (static_cast(buffer[0])) {
case StateChange::Initialize:
LOG_INFO(Audio_DSP, "Application has requested initialization of DSP hardware");
- ResetPipes();
+ Initialize();
AudioPipeWriteStructAddresses();
dsp_state = DspState::On;
break;
@@ -235,13 +243,13 @@ void DspHle::Impl::PipeWrite(DspPipe pipe_number, std::span buffer) {
break;
case StateChange::Wakeup:
LOG_INFO(Audio_DSP, "Application has requested wakeup of DSP hardware");
- ResetPipes();
+ Wakeup();
AudioPipeWriteStructAddresses();
dsp_state = DspState::On;
break;
case StateChange::Sleep:
LOG_INFO(Audio_DSP, "Application has requested sleep of DSP hardware");
- UNIMPLEMENTED();
+ Sleep();
AudioPipeWriteStructAddresses();
dsp_state = DspState::Sleeping;
break;
@@ -284,20 +292,56 @@ void DspHle::Impl::PipeWrite(DspPipe pipe_number, std::span buffer) {
}
}
-std::array& DspHle::Impl::GetDspMemory() {
- return dsp_memory.raw_memory;
-}
-
void DspHle::Impl::SetInterruptHandler(
std::function handler) {
interrupt_handler = handler;
}
+void DspHle::Impl::Initialize() {
+ // TODO(PabloMK7): This is NOT the right way to do this,
+ // but it is close enough. This makes sure the DSP state
+ // is clean and consistent every time the HW is initialized,
+ // but what is exactly reset needs to be figured out.
+ dsp_memory->raw_memory.fill(0);
+ mixers.Reset();
+ for (auto& s : sources) {
+ s.Reset();
+ }
+ aac_decoder->Reset();
+ ResetPipes();
+}
+
+void DspHle::Impl::Sleep() {
+ // TODO(PabloMK7): This is NOT the right way to do this,
+ // but it is close enough. What state is saved on
+ // real hardware still not figured out.
+ backup_dsp_memory.raw_memory = dsp_memory->raw_memory;
+ mixers.Sleep();
+ for (auto& s : sources) {
+ s.Sleep();
+ }
+ // TODO(PabloMK7): Figure out if we need to save the state
+ // of the AAC decoder, probably not.
+}
+
+void DspHle::Impl::Wakeup() {
+ // TODO(PabloMK7): This is NOT the right way to do this,
+ // but it is close enough. What state is restored on
+ // real hardware still not figured out.
+ dsp_memory->raw_memory = backup_dsp_memory.raw_memory;
+ backup_dsp_memory.raw_memory.fill(0);
+ mixers.Wakeup();
+ for (auto& s : sources) {
+ s.Wakeup();
+ }
+ aac_decoder->Reset();
+ ResetPipes();
+}
+
void DspHle::Impl::ResetPipes() {
for (auto& data : pipe_data) {
data.clear();
}
- dsp_state = DspState::Off;
}
void DspHle::Impl::WriteU16(DspPipe pipe_number, u16 value) {
@@ -343,8 +387,8 @@ void DspHle::Impl::AudioPipeWriteStructAddresses() {
size_t DspHle::Impl::CurrentRegionIndex() const {
// The region with the higher frame counter is chosen unless there is wraparound.
// This function only returns a 0 or 1.
- const u16 frame_counter_0 = dsp_memory.region_0.frame_counter;
- const u16 frame_counter_1 = dsp_memory.region_1.frame_counter;
+ const u16 frame_counter_0 = dsp_memory->region_0.frame_counter;
+ const u16 frame_counter_1 = dsp_memory->region_1.frame_counter;
if (frame_counter_0 == 0xFFFFu && frame_counter_1 != 0xFFFEu) {
// Wraparound has occurred.
@@ -360,11 +404,11 @@ size_t DspHle::Impl::CurrentRegionIndex() const {
}
HLE::SharedMemory& DspHle::Impl::ReadRegion() {
- return CurrentRegionIndex() == 0 ? dsp_memory.region_0 : dsp_memory.region_1;
+ return CurrentRegionIndex() == 0 ? dsp_memory->region_0 : dsp_memory->region_1;
}
HLE::SharedMemory& DspHle::Impl::WriteRegion() {
- return CurrentRegionIndex() != 0 ? dsp_memory.region_0 : dsp_memory.region_1;
+ return CurrentRegionIndex() != 0 ? dsp_memory->region_0 : dsp_memory->region_1;
}
StereoFrame16 DspHle::Impl::GenerateCurrentFrame() {
@@ -399,15 +443,19 @@ StereoFrame16 DspHle::Impl::GenerateCurrentFrame() {
}
bool DspHle::Impl::Tick() {
- StereoFrame16 current_frame = {};
+ bool is_on = GetDspState() == DspState::On;
- // TODO: Check dsp::DSP semaphore (which indicates emulated application has finished writing to
- // shared memory region)
- current_frame = GenerateCurrentFrame();
+ if (is_on) {
+ StereoFrame16 current_frame = {};
- parent.OutputFrame(std::move(current_frame));
+ // TODO: Check dsp::DSP semaphore (which indicates emulated application has finished writing
+ // to shared memory region)
+ current_frame = GenerateCurrentFrame();
- return GetDspState() == DspState::On;
+ parent.OutputFrame(std::move(current_frame));
+ }
+
+ return is_on;
}
void DspHle::Impl::AudioTickCallback(s64 cycles_late) {
@@ -454,10 +502,6 @@ void DspHle::PipeWrite(DspPipe pipe_number, std::span buffer) {
impl->PipeWrite(pipe_number, buffer);
}
-std::array& DspHle::GetDspMemory() {
- return impl->GetDspMemory();
-}
-
void DspHle::SetInterruptHandler(
std::function handler) {
impl->SetInterruptHandler(handler);
@@ -466,11 +510,13 @@ void DspHle::SetInterruptHandler(
void DspHle::LoadComponent(std::span component_data) {
// HLE doesn't need DSP program. Only log some info here
LOG_INFO(Service_DSP, "Firmware hash: {:#018x}",
- Common::ComputeHash64(component_data.data(), component_data.size()));
+ Common::ComputeHash64(component_data.data(),
+ component_data.size()));
// Some versions of the firmware have the location of DSP structures listed here.
if (component_data.size() > 0x37C) {
- LOG_INFO(Service_DSP, "Structures hash: {:#018x}",
- Common::ComputeHash64(component_data.data() + 0x340, 60));
+ LOG_INFO(
+ Service_DSP, "Structures hash: {:#018x}",
+ Common::ComputeHash64(component_data.data() + 0x340, 60));
}
}
diff --git a/src/audio_core/hle/hle.h b/src/audio_core/hle/hle.h
index 2ee4421e7..1dba7450a 100644
--- a/src/audio_core/hle/hle.h
+++ b/src/audio_core/hle/hle.h
@@ -1,4 +1,4 @@
-// Copyright 2017 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -37,8 +37,6 @@ public:
std::size_t GetPipeReadableSize(DspPipe pipe_number) const override;
void PipeWrite(DspPipe pipe_number, std::span buffer) override;
- std::array& GetDspMemory() override;
-
void SetInterruptHandler(
std::function handler) override;
diff --git a/src/audio_core/hle/mixers.cpp b/src/audio_core/hle/mixers.cpp
index e3a838886..cfe99244a 100644
--- a/src/audio_core/hle/mixers.cpp
+++ b/src/audio_core/hle/mixers.cpp
@@ -1,4 +1,4 @@
-// Copyright 2016 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -15,6 +15,18 @@ void Mixers::Reset() {
state = {};
}
+void Mixers::Sleep() {
+ backup_state = state;
+ backup_frame = current_frame;
+}
+
+void Mixers::Wakeup() {
+ state = backup_state;
+ current_frame = backup_frame;
+ backup_state = {};
+ backup_frame.fill({});
+}
+
DspStatus Mixers::Tick(DspConfiguration& config, const IntermediateMixSamples& read_samples,
IntermediateMixSamples& write_samples,
const std::array& input) {
diff --git a/src/audio_core/hle/mixers.h b/src/audio_core/hle/mixers.h
index b09654dfc..95d9e86e3 100644
--- a/src/audio_core/hle/mixers.h
+++ b/src/audio_core/hle/mixers.h
@@ -1,4 +1,4 @@
-// Copyright 2016 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -19,6 +19,9 @@ public:
void Reset();
+ void Sleep();
+ void Wakeup();
+
DspStatus Tick(DspConfiguration& config, const IntermediateMixSamples& read_samples,
IntermediateMixSamples& write_samples, const std::array& input);
@@ -28,10 +31,11 @@ public:
private:
StereoFrame16 current_frame = {};
+ StereoFrame16 backup_frame = {}; // TODO(PabloMK7): Check if we actually need this
using OutputFormat = DspConfiguration::OutputFormat;
- struct {
+ struct MixerState {
std::array intermediate_mixer_volume = {};
std::array aux_bus_enable = {};
@@ -39,7 +43,17 @@ private:
OutputFormat output_format = OutputFormat::Stereo;
- } state;
+ template
+ void serialize(Archive& ar, const unsigned int) {
+ ar & intermediate_mixer_volume;
+ ar & aux_bus_enable;
+ ar & intermediate_mix_buffer;
+ ar & output_format;
+ }
+ };
+
+ MixerState state;
+ MixerState backup_state;
/// INTERNAL: Update our internal state based on the current config.
void ParseConfig(DspConfiguration& config);
@@ -58,10 +72,9 @@ private:
template
void serialize(Archive& ar, const unsigned int) {
ar & current_frame;
- ar & state.intermediate_mixer_volume;
- ar & state.aux_bus_enable;
- ar & state.intermediate_mix_buffer;
- ar & state.output_format;
+ ar & backup_frame;
+ ar & state;
+ ar & backup_state;
}
friend class boost::serialization::access;
};
diff --git a/src/audio_core/hle/shared_memory.h b/src/audio_core/hle/shared_memory.h
index 41dc4e25c..194f517a9 100644
--- a/src/audio_core/hle/shared_memory.h
+++ b/src/audio_core/hle/shared_memory.h
@@ -1,4 +1,4 @@
-// Copyright 2016 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -533,6 +533,7 @@ union DspMemory {
u8 unused_2[0x8000];
};
};
+static_assert(sizeof(DspMemory) == 0x80000, "Incorrect DSP memory size");
static_assert(offsetof(DspMemory, region_0) == region0_offset,
"DSP region 0 is at the wrong offset");
static_assert(offsetof(DspMemory, region_1) == region1_offset,
diff --git a/src/audio_core/hle/source.cpp b/src/audio_core/hle/source.cpp
index c90201bbd..018368704 100644
--- a/src/audio_core/hle/source.cpp
+++ b/src/audio_core/hle/source.cpp
@@ -1,4 +1,4 @@
-// Copyright 2016 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -44,6 +44,18 @@ void Source::Reset() {
state = {};
}
+void Source::Sleep() {
+ backup_frame = current_frame;
+ backup_state = state;
+}
+
+void Source::Wakeup() {
+ current_frame = backup_frame;
+ state = backup_state;
+ backup_frame.fill({});
+ backup_state = {};
+}
+
void Source::SetMemory(Memory::MemorySystem& memory) {
memory_system = &memory;
}
diff --git a/src/audio_core/hle/source.h b/src/audio_core/hle/source.h
index 2073e9033..c0c1fdc1a 100644
--- a/src/audio_core/hle/source.h
+++ b/src/audio_core/hle/source.h
@@ -1,4 +1,4 @@
-// Copyright 2016 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -42,6 +42,9 @@ public:
/// Resets internal state.
void Reset();
+ void Sleep();
+ void Wakeup();
+
/// Sets the memory system to read data from
void SetMemory(Memory::MemorySystem& memory);
@@ -68,6 +71,7 @@ private:
const std::size_t source_id;
Memory::MemorySystem* memory_system{};
StereoFrame16 current_frame;
+ StereoFrame16 backup_frame; // TODO(PabloMK7): Check if we actually need this
using Format = SourceConfiguration::Configuration::Format;
using InterpolationMode = SourceConfiguration::Configuration::InterpolationMode;
@@ -116,7 +120,7 @@ private:
}
};
- struct {
+ struct SourceState {
// State variables
@@ -179,8 +183,10 @@ private:
ar & interpolation_mode;
}
friend class boost::serialization::access;
+ };
- } state;
+ SourceState state;
+ SourceState backup_state;
// Internal functions
@@ -197,6 +203,9 @@ private:
template
void serialize(Archive& ar, const unsigned int) {
ar & state;
+ ar & backup_state;
+ ar & current_frame;
+ ar & backup_frame;
}
friend class boost::serialization::access;
};
diff --git a/src/audio_core/input.h b/src/audio_core/input.h
index e47f5942c..f43764296 100644
--- a/src/audio_core/input.h
+++ b/src/audio_core/input.h
@@ -53,22 +53,6 @@ public:
*/
virtual Samples Read() = 0;
- /**
- * Generates a buffer of silence.
- * Takes into account the sample size and signedness of the input.
- */
- virtual Samples GenerateSilentSamples(const InputParameters& params) {
- u8 silent_value = 0x00;
-
- if (params.sample_size == 8) {
- silent_value = params.sign == Signedness::Unsigned ? 0x80 : 0x00;
- return std::vector(32, silent_value);
- } else {
- silent_value = params.sign == Signedness::Unsigned ? 0x80 : 0x00;
- return std::vector(64, silent_value);
- }
- }
-
protected:
InputParameters parameters;
};
diff --git a/src/audio_core/lle/lle.cpp b/src/audio_core/lle/lle.cpp
index 91ac5dc73..0e301f72d 100644
--- a/src/audio_core/lle/lle.cpp
+++ b/src/audio_core/lle/lle.cpp
@@ -1,4 +1,4 @@
-// Copyright 2018 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -121,7 +121,9 @@ static u8 PipeIndexToSlotIndex(u8 pipe_index, PipeDirection direction) {
}
struct DspLle::Impl final {
- Impl(Core::Timing& timing, bool multithread) : core_timing(timing), multithread(multithread) {
+ Impl(Core::Timing& timing, Memory::MemorySystem& memory, bool multithread)
+ : teakra(Teakra::UserConfig{.dsp_memory = memory.GetDspMemory(0)}), core_timing(timing),
+ multithread(multithread) {
teakra_slice_event = core_timing.RegisterEvent(
"DSP slice", [this](u64, int late) { TeakraSliceEvent(static_cast(late)); });
}
@@ -189,12 +191,12 @@ struct DspLle::Impl final {
}
u8* GetDspDataPointer(u32 baddr) {
- auto& memory = teakra.GetDspMemory();
+ uint8_t* memory = teakra.GetDspMemory();
return &memory[DspDataOffset + baddr];
}
const u8* GetDspDataPointer(u32 baddr) const {
- auto& memory = teakra.GetDspMemory();
+ const uint8_t* memory = teakra.GetDspMemory();
return &memory[DspDataOffset + baddr];
}
@@ -312,9 +314,9 @@ struct DspLle::Impl final {
teakra.Reset();
Dsp1 dsp(buffer);
- auto& dsp_memory = teakra.GetDspMemory();
- u8* program = dsp_memory.data();
- u8* data = dsp_memory.data() + DspDataOffset;
+ auto dsp_memory = teakra.GetDspMemory();
+ u8* program = dsp_memory;
+ u8* data = dsp_memory + DspDataOffset;
for (const auto& segment : dsp.segments) {
if (segment.memory_type == SegmentType::ProgramA ||
segment.memory_type == SegmentType::ProgramB) {
@@ -403,10 +405,6 @@ void DspLle::PipeWrite(DspPipe pipe_number, std::span buffer) {
impl->WritePipe(static_cast(pipe_number), buffer);
}
-std::array& DspLle::GetDspMemory() {
- return impl->teakra.GetDspMemory();
-}
-
void DspLle::SetInterruptHandler(
std::function handler) {
impl->teakra.SetRecvDataHandler(0, [this, handler]() {
@@ -469,7 +467,7 @@ DspLle::DspLle(Core::System& system, bool multithread)
DspLle::DspLle(Core::System& system, Memory::MemorySystem& memory, Core::Timing& timing,
bool multithread)
- : DspInterface(system), impl(std::make_unique(timing, multithread)) {
+ : DspInterface(system), impl(std::make_unique(timing, memory, multithread)) {
Teakra::AHBMCallback ahbm;
ahbm.read8 = [&memory](u32 address) -> u8 {
return *memory.GetFCRAMPointer(address - Memory::FCRAM_PADDR);
diff --git a/src/audio_core/lle/lle.h b/src/audio_core/lle/lle.h
index 7ae64575d..7cfd62e29 100644
--- a/src/audio_core/lle/lle.h
+++ b/src/audio_core/lle/lle.h
@@ -1,4 +1,4 @@
-// Copyright 2018 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -31,8 +31,6 @@ public:
std::size_t GetPipeReadableSize(DspPipe pipe_number) const override;
void PipeWrite(DspPipe pipe_number, std::span buffer) override;
- std::array& GetDspMemory() override;
-
void SetInterruptHandler(
std::function handler) override;
diff --git a/src/audio_core/null_input.h b/src/audio_core/null_input.h
index 1b0796ea7..448120247 100644
--- a/src/audio_core/null_input.h
+++ b/src/audio_core/null_input.h
@@ -30,11 +30,10 @@ public:
void AdjustSampleRate(u32 sample_rate) override {}
Samples Read() override {
- return GenerateSilentSamples(parameters);
+ return {};
}
private:
- InputParameters parameters;
bool is_sampling = false;
};
diff --git a/src/audio_core/openal_input.cpp b/src/audio_core/openal_input.cpp
index 3d4c55fb0..edf20bb47 100644
--- a/src/audio_core/openal_input.cpp
+++ b/src/audio_core/openal_input.cpp
@@ -108,10 +108,6 @@ Samples OpenALInput::Read() {
return {};
}
- if (samples.empty()) {
- samples = GenerateSilentSamples(parameters);
- }
-
return samples;
}
diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt
index 7dc2b777b..e6faa88ce 100644
--- a/src/citra_qt/CMakeLists.txt
+++ b/src/citra_qt/CMakeLists.txt
@@ -287,7 +287,9 @@ if (NOT WIN32)
endif()
endif()
-if (UNIX AND NOT APPLE)
+if (APPLE)
+ target_link_libraries(citra_qt PRIVATE Qt6::QDarwinCameraPermissionPlugin)
+elseif (UNIX)
target_link_libraries(citra_qt PRIVATE Qt6::DBus gamemode)
endif()
diff --git a/src/citra_qt/citra_qt.cpp b/src/citra_qt/citra_qt.cpp
index ea28f0f2c..d3e25beab 100644
--- a/src/citra_qt/citra_qt.cpp
+++ b/src/citra_qt/citra_qt.cpp
@@ -115,6 +115,7 @@
#ifdef __APPLE__
#include "common/apple_authorization.h"
+Q_IMPORT_PLUGIN(QDarwinCameraPermissionPlugin);
#endif
#ifdef USE_DISCORD_PRESENCE
@@ -1242,6 +1243,10 @@ bool GMainWindow::LoadROM(const QString& filename) {
const auto scope = render_window->Acquire();
+ if (!UISettings::values.inserted_cartridge.GetValue().empty()) {
+ system.InsertCartridge(UISettings::values.inserted_cartridge.GetValue());
+ }
+
const Core::System::ResultStatus result{
system.Load(*render_window, filename.toStdString(), secondary_window)};
@@ -1312,6 +1317,11 @@ bool GMainWindow::LoadROM(const QString& filename) {
system.GetStatusDetails())
.c_str()));
break;
+ case Core::System::ResultStatus::ErrorN3DSApplication:
+ QMessageBox::critical(this, tr("Invalid system mode"),
+ tr("New 3DS exclusive applications cannot be loaded without "
+ "enabling the New 3DS mode."));
+ break;
default:
QMessageBox::critical(
this, tr("Error while loading App!"),
@@ -1526,6 +1536,8 @@ void GMainWindow::ShutdownGame() {
emu_thread->wait();
emu_thread = nullptr;
+ system.EjectCartridge();
+
OnCloseMovie();
discord_rpc->Update();
@@ -2290,8 +2302,8 @@ void GMainWindow::OnMenuBootHomeMenu(u32 region) {
void GMainWindow::InstallCIA(QStringList filepaths) {
ui->action_Install_CIA->setEnabled(false);
game_list->SetDirectoryWatcherEnabled(false);
- progress_bar->show();
- progress_bar->setMaximum(INT_MAX);
+
+ emit UpdateProgress(0, 0);
(void)QtConcurrent::run([&, filepaths] {
Service::AM::InstallStatus status;
@@ -2307,6 +2319,11 @@ void GMainWindow::InstallCIA(QStringList filepaths) {
}
void GMainWindow::OnUpdateProgress(std::size_t written, std::size_t total) {
+ if (written == 0 and total == 0) {
+ progress_bar->show();
+ progress_bar->setValue(0);
+ progress_bar->setMaximum(INT_MAX);
+ }
progress_bar->setValue(
static_cast(INT_MAX * (static_cast(written) / static_cast(total))));
}
@@ -2350,11 +2367,19 @@ void GMainWindow::OnCompressFinished(bool is_compress, bool success) {
if (!success) {
if (is_compress) {
- QMessageBox::critical(this, tr("Error compressing file"),
- tr("File compress operation failed, check log for details."));
+ QMessageBox::critical(this, tr("Z3DS Compression"),
+ tr("Failed to compress some files, check log for details."));
} else {
- QMessageBox::critical(this, tr("Error decompressing file"),
- tr("File decompress operation failed, check log for details."));
+ QMessageBox::critical(this, tr("Z3DS Compression"),
+ tr("Failed to decompress some files, check log for details."));
+ }
+ } else {
+ if (is_compress) {
+ QMessageBox::information(this, tr("Z3DS Compression"),
+ tr("All files have been compressed successfully."));
+ } else {
+ QMessageBox::information(this, tr("Z3DS Compression"),
+ tr("All files have been decompressed successfully."));
}
}
}
@@ -3066,43 +3091,27 @@ void GMainWindow::OnDumpVideo() {
}
}
-void GMainWindow::OnCompressFile() {
- // NOTE: Encrypted files SHOULD NEVER be compressed, otherwise the resulting
- // compressed file will have very poor compression ratios, due to the high
- // entropy caused by encryption. This may cause confusion to the user as they
- // will see the files do not compress well and blame the emulator.
- //
- // This is enforced using the loaders as they already return an error on encryption.
-
- QString filepath = QFileDialog::getOpenFileName(
- this, tr("Load 3DS ROM File"), UISettings::values.roms_path,
- tr("3DS ROM Files (*.cia *cci *3dsx *cxi)") + QStringLiteral(";;") + tr("All Files (*.*)"));
-
- if (filepath.isEmpty()) {
- return;
- }
- std::string in_path = filepath.toStdString();
-
- // Identify file type
+static std::optional> GetCompressFileInfo(
+ const std::string& filepath, bool compress) {
Loader::AppLoader::CompressFileInfo compress_info{};
compress_info.is_supported = false;
size_t frame_size{};
- {
- auto loader = Loader::GetLoader(in_path);
- if (loader) {
- compress_info = loader->GetCompressFileInfo();
- frame_size = FileUtil::Z3DSWriteIOFile::DEFAULT_FRAME_SIZE;
- } else {
- bool is_compressed = false;
- if (Service::AM::CheckCIAToInstall(in_path, is_compressed, true) ==
- Service::AM::InstallStatus::Success) {
- auto meta_info = Service::AM::GetCIAInfos(in_path);
- compress_info.is_supported = true;
- compress_info.is_compressed = is_compressed;
- compress_info.recommended_compressed_extension = "zcia";
- compress_info.recommended_uncompressed_extension = "cia";
- compress_info.underlying_magic = std::array({'C', 'I', 'A', '\0'});
- frame_size = FileUtil::Z3DSWriteIOFile::DEFAULT_CIA_FRAME_SIZE;
+ auto loader = Loader::GetLoader(filepath);
+ if (loader) {
+ compress_info = loader->GetCompressFileInfo();
+ frame_size = FileUtil::Z3DSWriteIOFile::DEFAULT_FRAME_SIZE;
+ } else {
+ bool is_compressed = false;
+ if (Service::AM::CheckCIAToInstall(filepath, is_compressed, compress ? true : false) ==
+ Service::AM::InstallStatus::Success) {
+ compress_info.is_supported = true;
+ compress_info.is_compressed = is_compressed;
+ compress_info.recommended_compressed_extension = "zcia";
+ compress_info.recommended_uncompressed_extension = "cia";
+ compress_info.underlying_magic = std::array({'C', 'I', 'A', '\0'});
+ frame_size = FileUtil::Z3DSWriteIOFile::DEFAULT_CIA_FRAME_SIZE;
+ if (compress) {
+ auto meta_info = Service::AM::GetCIAInfos(filepath);
if (meta_info.Succeeded()) {
const auto& meta_info_val = meta_info.Unwrap();
std::vector value(sizeof(Service::AM::TitleInfo));
@@ -3117,122 +3126,218 @@ void GMainWindow::OnCompressFile() {
}
}
}
+
if (!compress_info.is_supported) {
- QMessageBox::critical(
- this, tr("Error compressing file"),
- tr("The selected file is not a compatible 3DS ROM format. Make sure you have "
- "chosen the right file, and that it is not encrypted."));
- return;
+ LOG_ERROR(Frontend,
+ "Error {} file {}, the selected file is not a compatible 3DS ROM format or is "
+ "encrypted.",
+ compress ? "compressing" : "decompressing", filepath);
+ return {};
}
- if (compress_info.is_compressed) {
- QMessageBox::warning(this, tr("Error compressing file"),
- tr("The selected file is already compressed."));
+ if (compress_info.is_compressed && compress) {
+ LOG_ERROR(Frontend, "Error compressing file {}, the selected file is already compressed",
+ filepath);
+ return {};
+ }
+ if (!compress_info.is_compressed && !compress) {
+ LOG_ERROR(Frontend,
+ "Error decompressing file {}, the selected file is already decompressed",
+ filepath);
+ return {};
+ }
+
+ return std::pair(compress_info, frame_size);
+}
+
+void GMainWindow::OnCompressFile() {
+ // NOTE: Encrypted files SHOULD NEVER be compressed, otherwise the resulting
+ // compressed file will have very poor compression ratios, due to the high
+ // entropy caused by encryption. This may cause confusion to the user as they
+ // will see the files do not compress well and blame the emulator.
+ //
+ // This is enforced using the loaders as they already return an error on encryption.
+
+ QStringList filepaths =
+ QFileDialog::getOpenFileNames(this, tr("Load 3DS ROM Files"), UISettings::values.roms_path,
+ tr("3DS ROM Files (*.cia *.cci *.3dsx *.cxi)") +
+ QStringLiteral(";;") + tr("All Files (*.*)"));
+
+ QString out_path;
+
+ if (filepaths.isEmpty()) {
return;
}
- QString out_filter =
- tr("3DS Compressed ROM File (*.%1)")
- .arg(QString::fromStdString(compress_info.recommended_compressed_extension));
-
- QFileInfo fileinfo(filepath);
- QString final_path = fileinfo.path() + QStringLiteral(DIR_SEP) + fileinfo.completeBaseName() +
- QStringLiteral(".") +
- QString::fromStdString(compress_info.recommended_compressed_extension);
-
- filepath = QFileDialog::getSaveFileName(this, tr("Save 3DS Compressed ROM File"), final_path,
- out_filter);
- if (filepath.isEmpty()) {
- return;
- }
- std::string out_path = filepath.toStdString();
-
- progress_bar->show();
- progress_bar->setMaximum(INT_MAX);
-
- (void)QtConcurrent::run([&, in_path, out_path, compress_info, frame_size] {
- const auto progress = [&](std::size_t written, std::size_t total) {
- emit UpdateProgress(written, total);
- };
- bool success =
- FileUtil::CompressZ3DSFile(in_path, out_path, compress_info.underlying_magic,
- frame_size, progress, compress_info.default_metadata);
- if (!success) {
- FileUtil::Delete(out_path);
+ bool single_file = filepaths.size() == 1;
+ if (single_file) {
+ // If it's a single file, ask the user for the output file.
+ auto compress_info = GetCompressFileInfo(filepaths[0].toStdString(), true);
+ if (!compress_info.has_value()) {
+ emit CompressFinished(true, false);
+ return;
}
- emit OnCompressFinished(true, success);
+
+ QFileInfo fileinfo(filepaths[0]);
+ QString final_path =
+ fileinfo.path() + QStringLiteral(DIR_SEP) + fileinfo.completeBaseName() +
+ QStringLiteral(".") +
+ QString::fromStdString(compress_info.value().first.recommended_compressed_extension);
+
+ QString out_filter = tr("3DS Compressed ROM File (*.%1)")
+ .arg(QString::fromStdString(
+ compress_info.value().first.recommended_compressed_extension));
+ out_path = QFileDialog::getSaveFileName(this, tr("Save 3DS Compressed ROM File"),
+ final_path, out_filter);
+ if (out_path.isEmpty()) {
+ return;
+ }
+ } else {
+ // Otherwise, ask the user the directory to output the files.
+ out_path = QFileDialog::getExistingDirectory(
+ this, tr("Select Output 3DS Compressed ROM Folder"), UISettings::values.roms_path,
+ QFileDialog::ShowDirsOnly);
+ if (out_path.isEmpty()) {
+ return;
+ }
+ }
+
+ (void)QtConcurrent::run([&, filepaths, out_path] {
+ bool single_file = filepaths.size() == 1;
+ QString out_filepath;
+ bool total_success = true;
+
+ for (const QString& filepath : filepaths) {
+
+ std::string in_path = filepath.toStdString();
+
+ // Identify file type
+ auto compress_info = GetCompressFileInfo(filepath.toStdString(), true);
+ if (!compress_info.has_value()) {
+ total_success = false;
+ continue;
+ }
+
+ if (single_file) {
+ out_filepath = out_path;
+ } else {
+ QFileInfo fileinfo(filepath);
+ out_filepath = out_path + QStringLiteral(DIR_SEP) + fileinfo.completeBaseName() +
+ QStringLiteral(".") +
+ QString::fromStdString(
+ compress_info.value().first.recommended_compressed_extension);
+ }
+
+ std::string out_path = out_filepath.toStdString();
+
+ emit UpdateProgress(0, 0);
+
+ const auto progress = [&](std::size_t written, std::size_t total) {
+ emit UpdateProgress(written, total);
+ };
+ bool success = FileUtil::CompressZ3DSFile(in_path, out_path,
+ compress_info.value().first.underlying_magic,
+ compress_info.value().second, progress,
+ compress_info.value().first.default_metadata);
+ if (!success) {
+ total_success = false;
+ FileUtil::Delete(out_path);
+ }
+ }
+
+ emit CompressFinished(true, total_success);
});
}
+
void GMainWindow::OnDecompressFile() {
- QString filepath = QFileDialog::getOpenFileName(
- this, tr("Load 3DS Compressed ROM File"), UISettings::values.roms_path,
+
+ QStringList filepaths = QFileDialog::getOpenFileNames(
+ this, tr("Load 3DS Compressed ROM Files"), UISettings::values.roms_path,
tr("3DS Compressed ROM Files (*.zcia *zcci *z3dsx *zcxi)") + QStringLiteral(";;") +
tr("All Files (*.*)"));
- if (filepath.isEmpty()) {
+ QString out_path;
+
+ if (filepaths.isEmpty()) {
return;
}
- std::string in_path = filepath.toStdString();
- // Identify file type
- Loader::AppLoader::CompressFileInfo compress_info{};
- compress_info.is_supported = false;
- {
- auto loader = Loader::GetLoader(in_path);
- if (loader) {
- compress_info = loader->GetCompressFileInfo();
- } else {
- bool is_compressed = false;
- if (Service::AM::CheckCIAToInstall(in_path, is_compressed, false) ==
- Service::AM::InstallStatus::Success) {
- compress_info.is_supported = true;
- compress_info.is_compressed = is_compressed;
- compress_info.recommended_compressed_extension = "zcia";
- compress_info.recommended_uncompressed_extension = "cia";
- compress_info.underlying_magic = std::array({'C', 'I', 'A', '\0'});
+ bool single_file = filepaths.size() == 1;
+ if (single_file) {
+ // If it's a single file, ask the user for the output file.
+ auto compress_info = GetCompressFileInfo(filepaths[0].toStdString(), false);
+ if (!compress_info.has_value()) {
+ emit CompressFinished(false, false);
+ return;
+ }
+
+ QFileInfo fileinfo(filepaths[0]);
+ QString final_path =
+ fileinfo.path() + QStringLiteral(DIR_SEP) + fileinfo.completeBaseName() +
+ QStringLiteral(".") +
+ QString::fromStdString(compress_info.value().first.recommended_uncompressed_extension);
+
+ QString out_filter =
+ tr("3DS ROM File (*.%1)")
+ .arg(QString::fromStdString(
+ compress_info.value().first.recommended_uncompressed_extension));
+ out_path =
+ QFileDialog::getSaveFileName(this, tr("Save 3DS ROM File"), final_path, out_filter);
+ if (out_path.isEmpty()) {
+ return;
+ }
+ } else {
+ // Otherwise, ask the user the directory to output the files.
+ out_path = QFileDialog::getExistingDirectory(this, tr("Select Output 3DS ROM Folder"),
+ UISettings::values.roms_path,
+ QFileDialog::ShowDirsOnly);
+ if (out_path.isEmpty()) {
+ return;
+ }
+ }
+
+ (void)QtConcurrent::run([&, filepaths, out_path] {
+ bool single_file = filepaths.size() == 1;
+ QString out_filepath;
+ bool total_success = true;
+
+ for (const QString& filepath : filepaths) {
+
+ std::string in_path = filepath.toStdString();
+
+ // Identify file type
+ auto compress_info = GetCompressFileInfo(filepath.toStdString(), false);
+ if (!compress_info.has_value()) {
+ total_success = false;
+ continue;
+ }
+
+ if (single_file) {
+ out_filepath = out_path;
+ } else {
+ QFileInfo fileinfo(filepath);
+ out_filepath = out_path + QStringLiteral(DIR_SEP) + fileinfo.completeBaseName() +
+ QStringLiteral(".") +
+ QString::fromStdString(
+ compress_info.value().first.recommended_uncompressed_extension);
+ }
+
+ std::string out_path = out_filepath.toStdString();
+
+ emit UpdateProgress(0, 0);
+
+ const auto progress = [&](std::size_t written, std::size_t total) {
+ emit UpdateProgress(written, total);
+ };
+
+ // TODO(PabloMK7): What should we do with the metadata?
+ bool success = FileUtil::DeCompressZ3DSFile(in_path, out_path, progress);
+ if (!success) {
+ total_success = false;
+ FileUtil::Delete(out_path);
}
}
- }
- if (!compress_info.is_supported) {
- QMessageBox::critical(this, tr("Error decompressing file"),
- tr("The selected file is not a compatible compressed 3DS ROM format. "
- "Make sure you have "
- "chosen the right file."));
- return;
- }
- if (!compress_info.is_compressed) {
- QMessageBox::warning(this, tr("Error decompressing file"),
- tr("The selected file is already decompressed."));
- return;
- }
- QString out_filter =
- tr("3DS ROM File (*.%1)")
- .arg(QString::fromStdString(compress_info.recommended_uncompressed_extension));
-
- QFileInfo fileinfo(filepath);
- QString final_path = fileinfo.path() + QStringLiteral(DIR_SEP) + fileinfo.completeBaseName() +
- QStringLiteral(".") +
- QString::fromStdString(compress_info.recommended_uncompressed_extension);
-
- filepath = QFileDialog::getSaveFileName(this, tr("Save 3DS ROM File"), final_path, out_filter);
- if (filepath.isEmpty()) {
- return;
- }
- std::string out_path = filepath.toStdString();
-
- progress_bar->show();
- progress_bar->setMaximum(INT_MAX);
-
- (void)QtConcurrent::run([&, in_path, out_path, compress_info] {
- const auto progress = [&](std::size_t written, std::size_t total) {
- emit UpdateProgress(written, total);
- };
- // TODO(PabloMK7): What should we do with the metadata?
- bool success = FileUtil::DeCompressZ3DSFile(in_path, out_path, progress);
- if (!success) {
- FileUtil::Delete(out_path);
- }
- emit OnCompressFinished(false, success);
+ emit CompressFinished(false, total_success);
});
}
@@ -3572,6 +3677,12 @@ void GMainWindow::UpdateAPIIndicator(bool update) {
if (api_index == static_cast(Settings::GraphicsAPI::Vulkan)) {
api_index = (api_index + 1) % graphics_apis.size();
}
+#else
+ if (physical_devices.empty()) {
+ if (api_index == static_cast(Settings::GraphicsAPI::Vulkan)) {
+ api_index = (api_index + 1) % graphics_apis.size();
+ }
+ }
#endif
Settings::values.graphics_api = static_cast(api_index);
}
@@ -3714,6 +3825,9 @@ void GMainWindow::closeEvent(QCloseEvent* event) {
ShutdownGame();
}
+ // Save settings in case they were changed from outside the configuration menu.
+ config->Save();
+
render_window->close();
secondary_window->close();
multiplayer_state->Close();
diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp
index cdb86c4c5..2eb891a75 100644
--- a/src/citra_qt/configuration/config.cpp
+++ b/src/citra_qt/configuration/config.cpp
@@ -517,6 +517,8 @@ void QtConfig::ReadLayoutValues() {
ReadGlobalSetting(Settings::values.render_3d);
ReadGlobalSetting(Settings::values.factor_3d);
+ ReadGlobalSetting(Settings::values.swap_eyes_3d);
+ ReadGlobalSetting(Settings::values.render_3d_which_display);
ReadGlobalSetting(Settings::values.filter_mode);
ReadGlobalSetting(Settings::values.pp_shader_name);
ReadGlobalSetting(Settings::values.anaglyph_shader_name);
@@ -668,6 +670,11 @@ void QtConfig::ReadPathValues() {
ReadSetting(QStringLiteral("last_artic_base_addr"), QString{}).toString();
UISettings::values.recent_files = ReadSetting(QStringLiteral("recentFiles")).toStringList();
UISettings::values.language = ReadSetting(QStringLiteral("language"), QString{}).toString();
+
+ ReadBasicSetting(UISettings::values.inserted_cartridge);
+ if (!FileUtil::Exists(UISettings::values.inserted_cartridge.GetValue())) {
+ UISettings::values.inserted_cartridge.SetValue("");
+ }
}
qt_config->endGroup();
@@ -745,6 +752,7 @@ void QtConfig::ReadSystemValues() {
ReadBasicSetting(Settings::values.steps_per_hour);
ReadBasicSetting(Settings::values.plugin_loader_enabled);
ReadBasicSetting(Settings::values.allow_plugin_loader);
+ ReadBasicSetting(Settings::values.apply_region_free_patch);
}
qt_config->endGroup();
@@ -1082,6 +1090,8 @@ void QtConfig::SaveLayoutValues() {
WriteGlobalSetting(Settings::values.render_3d);
WriteGlobalSetting(Settings::values.factor_3d);
+ WriteGlobalSetting(Settings::values.swap_eyes_3d);
+ WriteGlobalSetting(Settings::values.render_3d_which_display);
WriteGlobalSetting(Settings::values.filter_mode);
WriteGlobalSetting(Settings::values.pp_shader_name);
WriteGlobalSetting(Settings::values.anaglyph_shader_name);
@@ -1199,6 +1209,7 @@ void QtConfig::SavePathValues() {
UISettings::values.last_artic_base_addr, QString{});
WriteSetting(QStringLiteral("recentFiles"), UISettings::values.recent_files);
WriteSetting(QStringLiteral("language"), UISettings::values.language, QString{});
+ WriteBasicSetting(UISettings::values.inserted_cartridge);
}
qt_config->endGroup();
@@ -1276,6 +1287,7 @@ void QtConfig::SaveSystemValues() {
WriteBasicSetting(Settings::values.steps_per_hour);
WriteBasicSetting(Settings::values.plugin_loader_enabled);
WriteBasicSetting(Settings::values.allow_plugin_loader);
+ WriteBasicSetting(Settings::values.apply_region_free_patch);
}
qt_config->endGroup();
diff --git a/src/citra_qt/configuration/configure_enhancements.cpp b/src/citra_qt/configuration/configure_enhancements.cpp
index a40654a5d..aba7a7ac8 100644
--- a/src/citra_qt/configuration/configure_enhancements.cpp
+++ b/src/citra_qt/configuration/configure_enhancements.cpp
@@ -57,6 +57,7 @@ void ConfigureEnhancements::SetConfiguration() {
ui->render_3d_combobox->setCurrentIndex(
static_cast(Settings::values.render_3d.GetValue()));
+ ui->swap_eyes_3d->setChecked(Settings::values.swap_eyes_3d.GetValue());
ui->factor_3d->setValue(Settings::values.factor_3d.GetValue());
ui->mono_rendering_eye->setCurrentIndex(
static_cast(Settings::values.mono_render_option.GetValue()));
@@ -111,6 +112,7 @@ void ConfigureEnhancements::ApplyConfiguration() {
ui->resolution_factor_combobox);
Settings::values.render_3d =
static_cast(ui->render_3d_combobox->currentIndex());
+ Settings::values.swap_eyes_3d = ui->swap_eyes_3d->isChecked();
Settings::values.factor_3d = ui->factor_3d->value();
Settings::values.mono_render_option =
static_cast(ui->mono_rendering_eye->currentIndex());
diff --git a/src/citra_qt/configuration/configure_enhancements.ui b/src/citra_qt/configuration/configure_enhancements.ui
index f26943444..ebf8520c4 100644
--- a/src/citra_qt/configuration/configure_enhancements.ui
+++ b/src/citra_qt/configuration/configure_enhancements.ui
@@ -113,7 +113,7 @@
- Enable linear filtering
+ Enable Linear Filtering
@@ -236,7 +236,7 @@
- Reverse Side by Side
+ Side by Side Full Width
@@ -318,14 +318,21 @@
-
-
- Disable right eye rendering
-
-
- <html><head/><body><p>Disable Right Eye Rendering</p><p>Disables rendering the right eye image when not using stereoscopic mode. Greatly improves performance in some applications, but can cause flickering in others.</p></body></html>
-
-
+
+
+ Disable Right Eye Rendering
+
+
+ <html><head/><body><p>Disable Right Eye Rendering</p><p>Disables rendering the right eye image when not using stereoscopic mode. Greatly improves performance in some applications, but can cause flickering in others.</p></body></html>
+
+
+
+
+
+
+ Swap Eyes
+
+
diff --git a/src/citra_qt/configuration/configure_system.cpp b/src/citra_qt/configuration/configure_system.cpp
index fb9f6d7bb..9ed8bebfa 100644
--- a/src/citra_qt/configuration/configure_system.cpp
+++ b/src/citra_qt/configuration/configure_system.cpp
@@ -313,6 +313,8 @@ void ConfigureSystem::SetConfiguration() {
ui->region_combobox->setCurrentIndex(Settings::values.region_value.GetValue() + 1);
}
+ ui->apply_region_free_patch->setChecked(Settings::values.apply_region_free_patch.GetValue());
+
ui->combo_init_clock->setCurrentIndex(static_cast(Settings::values.init_clock.GetValue()));
QDateTime date_time;
date_time.setSecsSinceEpoch(Settings::values.init_time.GetValue());
@@ -488,6 +490,7 @@ void ConfigureSystem::ApplyConfiguration() {
Settings::values.lle_applets = ui->toggle_lle_applets->isChecked();
Settings::values.enable_required_online_lle_modules =
ui->enable_required_online_lle_modules->isChecked();
+ Settings::values.apply_region_free_patch.SetValue(ui->apply_region_free_patch->isChecked());
Settings::values.plugin_loader_enabled.SetValue(ui->plugin_loader->isChecked());
Settings::values.allow_plugin_loader.SetValue(ui->allow_plugin_loader->isChecked());
@@ -710,6 +713,7 @@ void ConfigureSystem::SetupPerGameUI() {
}
// Hide most settings for now, we can implement them later
+ ui->apply_region_free_patch->setVisible(false);
ui->label_username->setVisible(false);
ui->label_birthday->setVisible(false);
ui->label_init_clock->setVisible(false);
diff --git a/src/citra_qt/configuration/configure_system.ui b/src/citra_qt/configuration/configure_system.ui
index 080ee139a..7327223d6 100644
--- a/src/citra_qt/configuration/configure_system.ui
+++ b/src/citra_qt/configuration/configure_system.ui
@@ -140,7 +140,18 @@ online features (if installed)
-
+
+
+
+ Apply region free patch to
+installed applications.
+
+
+ Patches the region of installed applications to be region free, so that they always appear on the home menu.
+
+
+
+
@@ -153,21 +164,21 @@ online features (if installed)
-
+ Username
-
+ Birthday
-
+
@@ -238,14 +249,14 @@ online features (if installed)
-
+ Language
-
+ Note: this can be overridden when region setting is auto-select
@@ -312,14 +323,14 @@ online features (if installed)
-
+ Sound output mode
-
+
@@ -338,31 +349,31 @@ online features (if installed)
-
+ Country
-
+
-
+
-
+ Clock
-
+
@@ -376,28 +387,28 @@ online features (if installed)
-
+ Startup time
-
+ yyyy-MM-ddTHH:mm:ss
-
+ Offset time
-
+
@@ -421,14 +432,14 @@ online features (if installed)
-
+ Initial System Ticks
-
+
@@ -442,14 +453,14 @@ online features (if installed)
-
+ Initial System Ticks Override
-
+
@@ -462,21 +473,21 @@ online features (if installed)
-
+ Play Coins
-
+ 300
-
+ <html><head/><body><p>Number of steps per hour reported by the pedometer. Range from 0 to 65,535.</p></body></html>
@@ -486,28 +497,28 @@ online features (if installed)
-
+ 9999
-
+ Run System Setup when Home Menu is launched
-
+ Console ID:
-
+
@@ -523,14 +534,14 @@ online features (if installed)
-
+ MAC:
-
+
@@ -546,21 +557,21 @@ online features (if installed)
-
+ 3GX Plugin Loader
-
+ Enable 3GX plugin loader
-
+ Allow applications to change plugin loader state
diff --git a/src/citra_qt/debugger/graphics/graphics_tracing.cpp b/src/citra_qt/debugger/graphics/graphics_tracing.cpp
index e78acb096..9cf54940e 100644
--- a/src/citra_qt/debugger/graphics/graphics_tracing.cpp
+++ b/src/citra_qt/debugger/graphics/graphics_tracing.cpp
@@ -1,4 +1,4 @@
-// Copyright 2015 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -63,8 +63,8 @@ void GraphicsTracingWidget::StartRecording() {
return;
auto& pica = system.GPU().PicaCore();
- auto shader_binary = pica.vs_setup.program_code;
- auto swizzle_data = pica.vs_setup.swizzle_data;
+ const auto& shader_binary = pica.vs_setup.GetProgramCode();
+ const auto& swizzle_data = pica.vs_setup.GetSwizzleData();
// Encode floating point numbers to 24-bit values
// TODO: Drop this explicit conversion once we store float24 values bit-correctly internally.
@@ -86,7 +86,7 @@ void GraphicsTracingWidget::StartRecording() {
CiTrace::Recorder::InitialState state;
- const auto copy = [&](std::vector& dest, auto& data) {
+ const auto copy = [&](std::vector& dest, const auto& data) {
dest.resize(sizeof(data));
std::memcpy(dest.data(), std::addressof(data), sizeof(data));
};
diff --git a/src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp b/src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp
index 46f8ec5cf..e25cf7733 100644
--- a/src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp
+++ b/src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp
@@ -1,4 +1,4 @@
-// Copyright 2014 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -508,11 +508,13 @@ void GraphicsVertexShaderWidget::Reload(bool replace_vertex_data, const void* ve
info.Clear();
auto& pica = system.GPU().PicaCore();
- for (auto instr : pica.vs_setup.program_code)
+ const auto& program_code = pica.vs_setup.GetProgramCode();
+ const auto& swizzle_data = pica.vs_setup.GetSwizzleData();
+ for (auto instr : program_code)
info.code.push_back({instr});
int num_attributes = pica.regs.internal.vs.max_input_attribute_index + 1;
- for (auto pattern : pica.vs_setup.swizzle_data) {
+ for (auto pattern : swizzle_data) {
const nihstro::SwizzleInfo swizzle_info = {.pattern = nihstro::SwizzlePattern{pattern}};
info.swizzle_info.push_back(swizzle_info);
}
diff --git a/src/citra_qt/game_list.cpp b/src/citra_qt/game_list.cpp
index 601bb2349..d6e3efdb5 100644
--- a/src/citra_qt/game_list.cpp
+++ b/src/citra_qt/game_list.cpp
@@ -19,8 +19,10 @@
#include
#include
#include
+#include
#include
#include
+#include
#include
#include
#include
@@ -33,6 +35,7 @@
#include "citra_qt/uisettings.h"
#include "common/logging/log.h"
#include "common/settings.h"
+#include "core/core.h"
#include "core/file_sys/archive_extsavedata.h"
#include "core/file_sys/archive_source_sd_savedata.h"
#include "core/hle/service/am/am.h"
@@ -306,6 +309,42 @@ void GameList::OnFilterCloseClicked() {
main_window->filterBarSetChecked(false);
}
+class CartridgeIconDelegate : public QStyledItemDelegate {
+public:
+ using QStyledItemDelegate::QStyledItemDelegate;
+
+ void paint(QPainter* painter, const QStyleOptionViewItem& option,
+ const QModelIndex& index) const override {
+ QStyleOptionViewItem opt(option);
+ initStyleOption(&opt, index);
+
+ QStyle* style = opt.widget ? opt.widget->style() : QApplication::style();
+
+ // Draw the default item (background, text, selection, etc.)
+ style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, opt.widget);
+
+ // Draw cartridge inserted icon
+ quint32 can_insert = index.data(GameListItemPath::CanInsertRole).value();
+ QString game_path = index.data(GameListItemPath::FullPathRole).value();
+
+ bool is_inserted = can_insert && UISettings::values.inserted_cartridge.GetValue() ==
+ game_path.toStdString();
+
+ if (is_inserted) {
+ QPixmap pixmap = QIcon::fromTheme(QStringLiteral("cartridge")).pixmap(24);
+
+ const int margin = 12;
+ QSize pmSize = pixmap.size() / pixmap.devicePixelRatio();
+
+ QRect pmRect(opt.rect.right() - pmSize.width() - margin,
+ opt.rect.center().y() - pmSize.height() / 2, pmSize.width(),
+ pmSize.height());
+
+ painter->drawPixmap(pmRect, pixmap);
+ }
+ }
+};
+
GameList::GameList(PlayTime::PlayTimeManager& play_time_manager_, GMainWindow* parent)
: QWidget{parent}, play_time_manager{play_time_manager_} {
watcher = new QFileSystemWatcher(this);
@@ -328,6 +367,7 @@ GameList::GameList(PlayTime::PlayTimeManager& play_time_manager_, GMainWindow* p
tree_view->setEditTriggers(QHeaderView::NoEditTriggers);
tree_view->setContextMenuPolicy(Qt::CustomContextMenu);
tree_view->setStyleSheet(QStringLiteral("QTreeView{ border: none; }"));
+ tree_view->setItemDelegateForColumn(0, new CartridgeIconDelegate(tree_view));
tree_view->header()->setContextMenuPolicy(Qt::CustomContextMenu);
UpdateColumnVisibility();
@@ -533,7 +573,8 @@ void GameList::PopupContextMenu(const QPoint& menu_location) {
selected.data(GameListItemPath::ProgramIdRole).toULongLong(),
selected.data(GameListItemPath::ExtdataIdRole).toULongLong(),
static_cast(
- selected.data(GameListItemPath::MediaTypeRole).toUInt()));
+ selected.data(GameListItemPath::MediaTypeRole).toUInt()),
+ selected.data(GameListItemPath::CanInsertRole).toUInt() != 0);
break;
case GameListItemType::CustomDir:
AddPermDirPopup(context_menu, selected);
@@ -603,8 +644,16 @@ void ForEachOpenGLCacheFile(u64 program_id, auto func) {
#endif
void GameList::AddGamePopup(QMenu& context_menu, const QString& path, const QString& name,
- u64 program_id, u64 extdata_id, Service::FS::MediaType media_type) {
+ u64 program_id, u64 extdata_id, Service::FS::MediaType media_type,
+ bool can_insert) {
QAction* favorite = context_menu.addAction(tr("Favorite"));
+ bool is_inserted =
+ can_insert && UISettings::values.inserted_cartridge.GetValue() == path.toStdString();
+ QAction* cartridge_insert = nullptr;
+ if (can_insert) {
+ cartridge_insert =
+ context_menu.addAction(is_inserted ? tr("Eject Cartridge") : tr("Insert Cartridge"));
+ }
context_menu.addSeparator();
QMenu* open_menu = context_menu.addMenu(tr("Open"));
QAction* open_application_location = open_menu->addAction(tr("Application Location"));
@@ -718,6 +767,16 @@ void GameList::AddGamePopup(QMenu& context_menu, const QString& path, const QStr
connect(open_extdata_location, &QAction::triggered, this, [this, extdata_id] {
emit OpenFolderRequested(extdata_id, GameListOpenTarget::EXT_DATA);
});
+ if (cartridge_insert) {
+ connect(cartridge_insert, &QAction::triggered, this, [this, path, is_inserted] {
+ if (is_inserted) {
+ UISettings::values.inserted_cartridge.SetValue("");
+ } else {
+ UISettings::values.inserted_cartridge.SetValue(path.toStdString());
+ }
+ tree_view->viewport()->update();
+ });
+ }
connect(open_application_location, &QAction::triggered, this, [this, program_id] {
emit OpenFolderRequested(program_id, GameListOpenTarget::APPLICATION);
});
@@ -1054,6 +1113,13 @@ const QStringList GameList::supported_file_extensions = {
};
void GameList::RefreshGameDirectory() {
+
+ // Do not scan directories when the system is powered on, it will be
+ // repopulated on shutdown anyways.
+ if (Core::System::GetInstance().IsPoweredOn()) {
+ return;
+ }
+
if (!UISettings::values.game_dirs.isEmpty() && current_worker != nullptr) {
LOG_INFO(Frontend, "Change detected in the applications directory. Reloading game list.");
PopulateAsync(UISettings::values.game_dirs);
diff --git a/src/citra_qt/game_list.h b/src/citra_qt/game_list.h
index d563f74b1..a28cf4290 100644
--- a/src/citra_qt/game_list.h
+++ b/src/citra_qt/game_list.h
@@ -124,7 +124,7 @@ private:
void PopupContextMenu(const QPoint& menu_location);
void PopupHeaderContextMenu(const QPoint& menu_location);
void AddGamePopup(QMenu& context_menu, const QString& path, const QString& name, u64 program_id,
- u64 extdata_id, Service::FS::MediaType media_type);
+ u64 extdata_id, Service::FS::MediaType media_type, bool can_insert);
void AddCustomDirPopup(QMenu& context_menu, QModelIndex selected);
void AddPermDirPopup(QMenu& context_menu, QModelIndex selected);
void AddFavoritesPopup(QMenu& context_menu);
diff --git a/src/citra_qt/game_list_p.h b/src/citra_qt/game_list_p.h
index 046ec7267..45df2a483 100644
--- a/src/citra_qt/game_list_p.h
+++ b/src/citra_qt/game_list_p.h
@@ -159,15 +159,18 @@ public:
static constexpr int ExtdataIdRole = SortRole + 4;
static constexpr int LongTitleRole = SortRole + 5;
static constexpr int MediaTypeRole = SortRole + 6;
+ static constexpr int CanInsertRole = SortRole + 7;
GameListItemPath() = default;
GameListItemPath(const QString& game_path, std::span smdh_data, u64 program_id,
- u64 extdata_id, Service::FS::MediaType media_type, bool is_encrypted) {
+ u64 extdata_id, Service::FS::MediaType media_type, bool is_encrypted,
+ bool can_insert) {
setData(type(), TypeRole);
setData(game_path, FullPathRole);
setData(qulonglong(program_id), ProgramIdRole);
setData(qulonglong(extdata_id), ExtdataIdRole);
setData(quint32(media_type), MediaTypeRole);
+ setData(quint32(can_insert), CanInsertRole);
if (UISettings::values.game_list_icon_size.GetValue() ==
UISettings::GameListIconSize::NoIcon) {
diff --git a/src/citra_qt/game_list_worker.cpp b/src/citra_qt/game_list_worker.cpp
index b6376261f..cc65b5082 100644
--- a/src/citra_qt/game_list_worker.cpp
+++ b/src/citra_qt/game_list_worker.cpp
@@ -92,7 +92,7 @@ void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, unsign
if (Loader::IsValidSMDH(smdh)) {
if (system_title) {
auto smdh_struct = reinterpret_cast(smdh.data());
- if (!(smdh_struct->flags & Loader::SMDH::Flags::Visible)) {
+ if (!smdh_struct->flags.visible) {
// Skip system titles without the visible flag.
return true;
}
@@ -113,7 +113,8 @@ void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, unsign
{
new GameListItemPath(QString::fromStdString(physical_name), smdh, program_id,
extdata_id, media_type,
- res == Loader::ResultStatus::ErrorEncrypted),
+ res == Loader::ResultStatus::ErrorEncrypted,
+ loader->GetFileType() == Loader::FileType::CCI),
new GameListItemCompat(compatibility),
new GameListItemRegion(smdh),
new GameListItem(QString::fromStdString(Loader::GetFileTypeString(
diff --git a/src/citra_qt/uisettings.h b/src/citra_qt/uisettings.h
index 393e20dd4..f9f42353a 100644
--- a/src/citra_qt/uisettings.h
+++ b/src/citra_qt/uisettings.h
@@ -85,6 +85,8 @@ struct Values {
Settings::Setting hide_mouse{false, "hideInactiveMouse"};
Settings::Setting check_for_update_on_start{true, "check_for_update_on_start"};
+ Settings::Setting inserted_cartridge{"", "inserted_cartridge"};
+
// Discord RPC
Settings::Setting enable_discord_presence{true, "enable_discord_presence"};
diff --git a/src/citra_sdl/config.cpp b/src/citra_sdl/config.cpp
index 58ac46e3c..a504dd3aa 100644
--- a/src/citra_sdl/config.cpp
+++ b/src/citra_sdl/config.cpp
@@ -253,6 +253,7 @@ void SdlConfig::ReadValues() {
ReadSetting("System", Settings::values.plugin_loader_enabled);
ReadSetting("System", Settings::values.allow_plugin_loader);
ReadSetting("System", Settings::values.steps_per_hour);
+ ReadSetting("System", Settings::values.apply_region_free_patch);
{
constexpr const char* default_init_time_offset = "0 00:00:00";
diff --git a/src/citra_sdl/default_ini.h b/src/citra_sdl/default_ini.h
index 3fb471449..4c97dbb89 100644
--- a/src/citra_sdl/default_ini.h
+++ b/src/citra_sdl/default_ini.h
@@ -163,6 +163,10 @@ render_3d =
# 0 - 100: Intensity. 0 (default)
factor_3d =
+# Swap Eyes in 3D
+# true or false (default)
+swap_eyes_3d =
+
# Change Default Eye to Render When in Monoscopic Mode
# 0 (default): Left, 1: Right
mono_render_option =
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 44f0a67dc..b7062e991 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -216,3 +216,5 @@ if (SSE42_COMPILE_OPTION)
target_compile_definitions(citra_common PRIVATE CITRA_HAS_SSE42)
target_compile_options(citra_common PRIVATE ${SSE42_COMPILE_OPTION})
endif()
+
+target_link_libraries(citra_common PUBLIC xxHash::xxhash)
\ No newline at end of file
diff --git a/src/common/android_storage.cpp b/src/common/android_storage.cpp
index a18ecefac..00648aa7d 100644
--- a/src/common/android_storage.cpp
+++ b/src/common/android_storage.cpp
@@ -1,9 +1,13 @@
-// Copyright 2023 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#ifdef ANDROID
+#include
+#include
#include "common/android_storage.h"
+#include "common/file_util.h"
+#include "common/logging/log.h"
namespace AndroidStorage {
JNIEnv* GetEnvForThread() {
@@ -80,8 +84,9 @@ void CleanupJNI() {
}
bool CreateFile(const std::string& directory, const std::string& filename) {
- if (create_file == nullptr)
+ if (create_file == nullptr) {
return false;
+ }
auto env = GetEnvForThread();
jstring j_directory = env->NewStringUTF(directory.c_str());
jstring j_filename = env->NewStringUTF(filename.c_str());
@@ -89,8 +94,9 @@ bool CreateFile(const std::string& directory, const std::string& filename) {
}
bool CreateDir(const std::string& directory, const std::string& filename) {
- if (create_dir == nullptr)
+ if (create_dir == nullptr) {
return false;
+ }
auto env = GetEnvForThread();
jstring j_directory = env->NewStringUTF(directory.c_str());
jstring j_directory_name = env->NewStringUTF(filename.c_str());
@@ -98,8 +104,9 @@ bool CreateDir(const std::string& directory, const std::string& filename) {
}
int OpenContentUri(const std::string& filepath, AndroidOpenMode openmode) {
- if (open_content_uri == nullptr)
+ if (open_content_uri == nullptr) {
return -1;
+ }
const char* mode = "";
switch (openmode) {
@@ -135,8 +142,9 @@ int OpenContentUri(const std::string& filepath, AndroidOpenMode openmode) {
std::vector GetFilesName(const std::string& filepath) {
auto vector = std::vector();
- if (get_files_name == nullptr)
+ if (get_files_name == nullptr) {
return vector;
+ }
auto env = GetEnvForThread();
jstring j_filepath = env->NewStringUTF(filepath.c_str());
auto j_object =
@@ -150,10 +158,37 @@ std::vector GetFilesName(const std::string& filepath) {
return vector;
}
+std::optional GetUserDirectory() {
+ if (get_user_directory == nullptr) {
+ throw std::runtime_error(
+ "Unable to locate user directory: Function with ID 'get_user_directory' is missing");
+ }
+ auto env = GetEnvForThread();
+ auto j_user_directory =
+ (jstring)(env->CallStaticObjectMethod(native_library, get_user_directory, nullptr));
+ auto result = env->GetStringUTFChars(j_user_directory, nullptr);
+ if (result == "") {
+ return std::nullopt;
+ }
+ return result;
+}
+
+std::string GetBuildFlavor() {
+ if (get_build_flavor == nullptr) {
+ throw std::runtime_error(
+ "Unable get build flavor: Function with ID 'get_build_flavor' is missing");
+ }
+ auto env = GetEnvForThread();
+ const auto jflavor =
+ (jstring)(env->CallStaticObjectMethod(native_library, get_build_flavor, nullptr));
+ return env->GetStringUTFChars(jflavor, nullptr);
+}
+
bool CopyFile(const std::string& source, const std::string& destination_path,
const std::string& destination_filename) {
- if (copy_file == nullptr)
+ if (copy_file == nullptr) {
return false;
+ }
auto env = GetEnvForThread();
jstring j_source_path = env->NewStringUTF(source.c_str());
jstring j_destination_path = env->NewStringUTF(destination_path.c_str());
@@ -163,8 +198,14 @@ bool CopyFile(const std::string& source, const std::string& destination_path,
}
bool RenameFile(const std::string& source, const std::string& filename) {
- if (rename_file == nullptr)
+ if (rename_file == nullptr) {
return false;
+ }
+ if (std::string(FileUtil::GetFilename(source)) ==
+ std::string(FileUtil::GetFilename(filename))) {
+ // TODO: Should this be treated as a success or failure?
+ return false;
+ }
auto env = GetEnvForThread();
jstring j_source_path = env->NewStringUTF(source.c_str());
jstring j_destination_path = env->NewStringUTF(filename.c_str());
@@ -172,6 +213,86 @@ bool RenameFile(const std::string& source, const std::string& filename) {
j_destination_path);
}
+bool UpdateDocumentLocation(const std::string& source_path, const std::string& destination_path) {
+ if (update_document_location == nullptr) {
+ return false;
+ }
+ auto env = GetEnvForThread();
+ jstring j_source_path = env->NewStringUTF(source_path.c_str());
+ jstring j_destination_path = env->NewStringUTF(destination_path.c_str());
+ return env->CallStaticBooleanMethod(native_library, update_document_location, j_source_path,
+ j_destination_path);
+}
+
+bool MoveFile(const std::string& filename, const std::string& source_dir_path,
+ const std::string& destination_dir_path) {
+ if (move_file == nullptr) {
+ return false;
+ }
+ if (source_dir_path == destination_dir_path) {
+ // TODO: Should this be treated as a success or failure?
+ return false;
+ }
+ auto env = GetEnvForThread();
+ jstring j_filename = env->NewStringUTF(filename.c_str());
+ jstring j_source_dir_path = env->NewStringUTF(source_dir_path.c_str());
+ jstring j_destination_dir_path = env->NewStringUTF(destination_dir_path.c_str());
+ return env->CallStaticBooleanMethod(native_library, move_file, j_filename, j_source_dir_path,
+ j_destination_dir_path);
+}
+
+bool MoveAndRenameFile(const std::string& src_full_path, const std::string& dest_full_path) {
+ if (src_full_path == dest_full_path) {
+ // TODO: Should this be treated as a success or failure?
+ return false;
+ }
+ const auto src_filename = std::string(FileUtil::GetFilename(src_full_path));
+ const auto src_parent_path = std::string(FileUtil::GetParentPath(src_full_path));
+ const auto dest_filename = std::string(FileUtil::GetFilename(dest_full_path));
+ const auto dest_parent_path = std::string(FileUtil::GetParentPath(dest_full_path));
+ bool result;
+
+ const std::string tmp_path = "/tmp";
+ AndroidStorage::CreateDir("/", "tmp");
+
+ // If a simultaneous move and rename are not necessary, use individual methods
+ if (src_filename == dest_filename || src_parent_path == dest_parent_path) {
+ if (src_filename != dest_filename) {
+ return AndroidStorage::RenameFile(src_full_path, dest_filename);
+ } else if (src_parent_path != dest_parent_path) {
+ return AndroidStorage::MoveFile(src_filename, src_parent_path, dest_parent_path);
+ }
+ }
+
+ // Step 1: Create directory named after UUID inside /tmp to house the moved file.
+ // This prevents clashes if files with the same name are moved simultaneously.
+ const auto uuid = boost::uuids::to_string(boost::uuids::time_generator_v7()());
+ const auto allocated_tmp_path = tmp_path + "/" + uuid;
+ AndroidStorage::CreateDir(tmp_path, uuid);
+
+ // Step 2: Attempt to move to allocated temporary directory.
+ // If this step fails, skip everything except the cleanup.
+ result = AndroidStorage::MoveFile(src_filename, src_parent_path, allocated_tmp_path);
+ if (result == true) {
+ // Step 3: Rename to desired file name.
+ AndroidStorage::RenameFile((allocated_tmp_path + "/" + src_filename), dest_filename);
+
+ // Step 4: If a file with the desired name in the destination exists, remove it.
+ AndroidStorage::DeleteDocument(dest_full_path);
+
+ // Step 5: Attempt to move file to desired location.
+ // If this step fails, move the file back to where it came from.
+ result = AndroidStorage::MoveFile(dest_filename, allocated_tmp_path, dest_parent_path);
+ if (result == false) {
+ AndroidStorage::MoveAndRenameFile((allocated_tmp_path + "/" + dest_filename),
+ src_full_path);
+ }
+ }
+ // Step 6: Clean up the allocated temp directory.
+ AndroidStorage::DeleteDocument(allocated_tmp_path);
+ return result;
+}
+
#define FR(FunctionName, ReturnValue, JMethodID, Caller, JMethodName, Signature) \
F(FunctionName, ReturnValue, JMethodID, Caller)
#define F(FunctionName, ReturnValue, JMethodID, Caller) \
diff --git a/src/common/android_storage.h b/src/common/android_storage.h
index 2ea0eb57c..bc4594362 100644
--- a/src/common/android_storage.h
+++ b/src/common/android_storage.h
@@ -1,4 +1,4 @@
-// Copyright 2023 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -19,12 +19,23 @@
open_content_uri, "openContentUri", "(Ljava/lang/String;Ljava/lang/String;)I") \
V(GetFilesName, std::vector, (const std::string& filepath), get_files_name, \
"getFilesName", "(Ljava/lang/String;)[Ljava/lang/String;") \
+ V(GetUserDirectory, std::optional, (), get_user_directory, "getUserDirectory", \
+ "(Landroid/net/Uri;)Ljava/lang/String;") \
V(CopyFile, bool, \
(const std::string& source, const std::string& destination_path, \
const std::string& destination_filename), \
copy_file, "copyFile", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z") \
V(RenameFile, bool, (const std::string& source, const std::string& filename), rename_file, \
- "renameFile", "(Ljava/lang/String;Ljava/lang/String;)Z")
+ "renameFile", "(Ljava/lang/String;Ljava/lang/String;)Z") \
+ V(UpdateDocumentLocation, bool, \
+ (const std::string& source_path, const std::string& destination_path), \
+ update_document_location, "updateDocumentLocation", \
+ "(Ljava/lang/String;Ljava/lang/String;)Z") \
+ V(GetBuildFlavor, std::string, (), get_build_flavor, "getBuildFlavor", "()Ljava/lang/String;") \
+ V(MoveFile, bool, \
+ (const std::string& filename, const std::string& source_dir_path, \
+ const std::string& destination_dir_path), \
+ move_file, "moveFile", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z")
#define ANDROID_SINGLE_PATH_DETERMINE_FUNCTIONS(V) \
V(IsDirectory, bool, is_directory, CallStaticBooleanMethod, "isDirectory", \
"(Ljava/lang/String;)Z") \
@@ -34,6 +45,7 @@
V(DeleteDocument, bool, delete_document, CallStaticBooleanMethod, "deleteDocument", \
"(Ljava/lang/String;)Z")
namespace AndroidStorage {
+
static JavaVM* g_jvm = nullptr;
static jclass native_library = nullptr;
#define FR(FunctionName, ReturnValue, JMethodID, Caller, JMethodName, Signature) F(JMethodID)
@@ -44,6 +56,7 @@ ANDROID_STORAGE_FUNCTIONS(FS)
#undef F
#undef FS
#undef FR
+bool MoveAndRenameFile(const std::string& src_full_path, const std::string& dest_full_path);
// Reference:
// https://developer.android.com/reference/android/os/ParcelFileDescriptor#parseMode(java.lang.String)
enum class AndroidOpenMode {
@@ -57,6 +70,12 @@ enum class AndroidOpenMode {
NEVER = EINVAL,
};
+class AndroidBuildFlavors {
+public:
+ static constexpr std::string GOOGLEPLAY = "googlePlay";
+ static constexpr std::string VANILLA = "vanilla";
+};
+
inline AndroidOpenMode operator|(AndroidOpenMode a, int b) {
return static_cast(static_cast(a) | b);
}
@@ -80,5 +99,6 @@ ANDROID_STORAGE_FUNCTIONS(FS)
ANDROID_SINGLE_PATH_DETERMINE_FUNCTIONS(FR)
#undef F
#undef FR
+
} // namespace AndroidStorage
#endif
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp
index c740e8416..a9793c43c 100644
--- a/src/common/file_util.cpp
+++ b/src/common/file_util.cpp
@@ -304,20 +304,31 @@ bool DeleteDir(const std::string& filename) {
return false;
}
-bool Rename(const std::string& srcFilename, const std::string& destFilename) {
- LOG_TRACE(Common_Filesystem, "{} --> {}", srcFilename, destFilename);
+bool Rename(const std::string& srcFullPath, const std::string& destFullPath) {
+ LOG_TRACE(Common_Filesystem, "{} --> {}", srcFullPath, destFullPath);
#ifdef _WIN32
- if (_wrename(Common::UTF8ToUTF16W(srcFilename).c_str(),
- Common::UTF8ToUTF16W(destFilename).c_str()) == 0)
+ if (_wrename(Common::UTF8ToUTF16W(srcFullPath).c_str(),
+ Common::UTF8ToUTF16W(destFullPath).c_str()) == 0)
return true;
#elif ANDROID
- if (AndroidStorage::RenameFile(srcFilename, std::string(GetFilename(destFilename))))
- return true;
+ // srcFullPath and destFullPath are relative to the user directory
+ if (AndroidStorage::GetBuildFlavor() == AndroidStorage::AndroidBuildFlavors::GOOGLEPLAY) {
+ if (AndroidStorage::MoveAndRenameFile(srcFullPath, destFullPath))
+ return true;
+ } else {
+ std::optional userDirLocation = AndroidStorage::GetUserDirectory();
+ if (userDirLocation && rename((*userDirLocation + srcFullPath).c_str(),
+ (*userDirLocation + destFullPath).c_str()) == 0) {
+ AndroidStorage::UpdateDocumentLocation(srcFullPath, destFullPath);
+ // ^ TODO: This shouldn't fail, but what should we do if it somehow does?
+ return true;
+ }
+ }
#else
- if (rename(srcFilename.c_str(), destFilename.c_str()) == 0)
+ if (rename(srcFullPath.c_str(), destFullPath.c_str()) == 0)
return true;
#endif
- LOG_ERROR(Common_Filesystem, "failed {} --> {}: {}", srcFilename, destFilename,
+ LOG_ERROR(Common_Filesystem, "failed {} --> {}: {}", srcFullPath, destFullPath,
GetLastErrorMsg());
return false;
}
@@ -874,7 +885,6 @@ void SetUserPath(const std::string& path) {
g_paths.emplace(UserPath::LoadDir, user_path + LOAD_DIR DIR_SEP);
g_paths.emplace(UserPath::StatesDir, user_path + STATES_DIR DIR_SEP);
g_paths.emplace(UserPath::IconsDir, user_path + ICONS_DIR DIR_SEP);
- g_paths.emplace(UserPath::PlayTimeDir, user_path + LOG_DIR DIR_SEP);
g_default_paths = g_paths;
}
diff --git a/src/common/file_util.h b/src/common/file_util.h
index 57a1d67e1..4c7d21349 100644
--- a/src/common/file_util.h
+++ b/src/common/file_util.h
@@ -51,7 +51,6 @@ enum class UserPath {
LoadDir,
LogDir,
NANDDir,
- PlayTimeDir,
RootDir,
SDMCDir,
ShaderDir,
@@ -136,13 +135,13 @@ bool Delete(const std::string& filename);
// Deletes a directory filename, returns true on success
bool DeleteDir(const std::string& filename);
-// renames file srcFilename to destFilename, returns true on success
-bool Rename(const std::string& srcFilename, const std::string& destFilename);
+// Renames file srcFullPath to destFullPath, returns true on success
+bool Rename(const std::string& srcFullPath, const std::string& destFullPath);
-// copies file srcFilename to destFilename, returns true on success
+// Copies file srcFilename to destFilename, returns true on success
bool Copy(const std::string& srcFilename, const std::string& destFilename);
-// creates an empty file filename, returns true on success
+// Creates an empty file filename, returns true on success
bool CreateEmptyFile(const std::string& filename);
/**
diff --git a/src/common/hacks/hack_list.cpp b/src/common/hacks/hack_list.cpp
index ce93ad2ef..66b4f4144 100644
--- a/src/common/hacks/hack_list.cpp
+++ b/src/common/hacks/hack_list.cpp
@@ -158,6 +158,29 @@ HackManager hack_manager = {
0x0004013020003203, // New 3DS safe mode
},
}},
+ {HackType::REQUIRES_SHADER_FIXUP,
+ HackEntry{
+ .mode = HackAllowMode::FORCE,
+ .affected_title_ids =
+ {
+ // 3D Thunder Blade
+ 0x0004000000128A00, // JPN
+ 0x0004000000158200, // EUR
+ 0x0004000000158C00, // USA
+
+ // 3D After Burner II
+ 0x0004000000114200, // JPN
+ 0x0004000000157A00, // EUR
+ 0x0004000000158900, // USA
+
+ // 3D Classics
+ 0x0004000000154000, // 1 (JPN)
+ 0x0004000000180E00, // 2 (JPN)
+ 0x000400000019A700, // 2 (EUR)
+ 0x0004000000185E00, // 2 (USA)
+ 0x00040000001AA300, // 3 (JPN)
+ },
+ }},
}};
}
\ No newline at end of file
diff --git a/src/common/hacks/hack_list.h b/src/common/hacks/hack_list.h
index 43d7ea409..0617fa51c 100644
--- a/src/common/hacks/hack_list.h
+++ b/src/common/hacks/hack_list.h
@@ -14,6 +14,7 @@ enum class HackType : int {
DECRYPTION_AUTHORIZED,
ONLINE_LLE_REQUIRED,
REGION_FROM_SECURE,
+ REQUIRES_SHADER_FIXUP,
};
class UserHackData {};
diff --git a/src/common/hash.h b/src/common/hash.h
index 1a222b22e..de7cf0536 100644
--- a/src/common/hash.h
+++ b/src/common/hash.h
@@ -1,4 +1,4 @@
-// Copyright 2015 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -6,19 +6,35 @@
#include
#include
-#include "common/cityhash.h"
+#include
+#include "cityhash.h"
#include "common/common_types.h"
namespace Common {
+namespace HashAlgo64 {
+struct XXH3 {
+ static inline u64 hash(const void* data, std::size_t len) noexcept {
+ return XXH3_64bits(data, len);
+ }
+};
+
+struct CityHash {
+ static inline u64 hash(const void* data, std::size_t len) noexcept {
+ return CityHash64(reinterpret_cast(data), len);
+ }
+};
+} // namespace HashAlgo64
+
/**
* Computes a 64-bit hash over the specified block of data
* @param data Block of data to compute hash over
* @param len Length of data (in bytes) to compute hash over
* @returns 64-bit hash value that was computed over the data block
*/
+template
static inline u64 ComputeHash64(const void* data, std::size_t len) noexcept {
- return CityHash64(static_cast(data), len);
+ return Hasher::hash(data, len);
}
/**
@@ -26,11 +42,11 @@ static inline u64 ComputeHash64(const void* data, std::size_t len) noexcept {
* that either the struct includes no padding, or that any padding is initialized to a known value
* by memsetting the struct to 0 before filling it in.
*/
-template
+template
static inline u64 ComputeStructHash64(const T& data) noexcept {
static_assert(std::is_trivially_copyable_v,
"Type passed to ComputeStructHash64 must be trivially copyable");
- return ComputeHash64(&data, sizeof(data));
+ return ComputeHash64(&data, sizeof(data));
}
/**
@@ -49,7 +65,7 @@ struct IdentityHash {
};
/// A helper template that ensures the padding in a struct is initialized by memsetting to 0.
-template
+template
struct HashableStruct {
// In addition to being trivially copyable, T must also have a trivial default constructor,
// because any member initialization would be overridden by memset
@@ -79,7 +95,7 @@ struct HashableStruct {
};
std::size_t Hash() const noexcept {
- return Common::ComputeStructHash64(state);
+ return Common::ComputeStructHash64(state);
}
};
diff --git a/src/common/play_time_manager.cpp b/src/common/play_time_manager.cpp
index c8b94ee08..e4cb9a628 100644
--- a/src/common/play_time_manager.cpp
+++ b/src/common/play_time_manager.cpp
@@ -20,19 +20,27 @@ struct PlayTimeElement {
PlayTime play_time;
};
+#define PLAY_TIME_FILENAME "play_time.bin"
+
std::string GetCurrentUserPlayTimePath() {
- return FileUtil::GetUserPath(FileUtil::UserPath::PlayTimeDir) + DIR_SEP + "play_time.bin";
+ return FileUtil::GetUserPath(FileUtil::UserPath::SysDataDir) + DIR_SEP + PLAY_TIME_FILENAME;
}
[[nodiscard]] bool ReadPlayTimeFile(PlayTimeDatabase& out_play_time_db) {
- const auto filename = GetCurrentUserPlayTimePath();
+ const auto filepath = GetCurrentUserPlayTimePath();
+ const auto old_filepath =
+ FileUtil::GetUserPath(FileUtil::UserPath::LogDir) + DIR_SEP + PLAY_TIME_FILENAME;
+
+ if (FileUtil::Exists(old_filepath) && !FileUtil::Exists(filepath)) {
+ static_cast(FileUtil::Rename(old_filepath, filepath));
+ }
out_play_time_db.clear();
- if (FileUtil::Exists(filename)) {
- FileUtil::IOFile file{filename, "rb"};
+ if (FileUtil::Exists(filepath)) {
+ FileUtil::IOFile file{filepath, "rb"};
if (!file.IsOpen()) {
- LOG_ERROR(Frontend, "Failed to open play time file: {}", filename);
+ LOG_ERROR(Frontend, "Failed to open play time file: {}", filepath);
return false;
}
@@ -54,11 +62,11 @@ std::string GetCurrentUserPlayTimePath() {
}
[[nodiscard]] bool WritePlayTimeFile(const PlayTimeDatabase& play_time_db) {
- const auto filename = GetCurrentUserPlayTimePath();
+ const auto filepath = GetCurrentUserPlayTimePath();
- FileUtil::IOFile file{filename, "wb"};
+ FileUtil::IOFile file{filepath, "wb"};
if (!file.IsOpen()) {
- LOG_ERROR(Frontend, "Failed to open play time file: {}", filename);
+ LOG_ERROR(Frontend, "Failed to open play time file: {}", filepath);
return false;
}
diff --git a/src/common/settings.cpp b/src/common/settings.cpp
index cd604e34a..564090d0b 100644
--- a/src/common/settings.cpp
+++ b/src/common/settings.cpp
@@ -108,6 +108,9 @@ void LogSettings() {
log_setting("Renderer_DisableRightEyeRender", values.disable_right_eye_render.GetValue());
log_setting("Stereoscopy_Render3d", values.render_3d.GetValue());
log_setting("Stereoscopy_Factor3d", values.factor_3d.GetValue());
+ log_setting("Stereoscopy_Swap_Eyes", values.swap_eyes_3d.GetValue());
+ log_setting("Stereoscopy_Render_3d_to_which_display",
+ values.render_3d_which_display.GetValue());
log_setting("Stereoscopy_MonoRenderOption", values.mono_render_option.GetValue());
if (values.render_3d.GetValue() == StereoRenderOption::Anaglyph) {
log_setting("Renderer_AnaglyphShader", values.anaglyph_shader_name.GetValue());
@@ -153,6 +156,7 @@ void LogSettings() {
log_setting("System_RegionValue", values.region_value.GetValue());
log_setting("System_PluginLoader", values.plugin_loader_enabled.GetValue());
log_setting("System_PluginLoaderAllowed", values.allow_plugin_loader.GetValue());
+ log_setting("System_ApplyRegionFreePatch", values.apply_region_free_patch.GetValue());
log_setting("Debugging_DelayStartForLLEModules", values.delay_start_for_lle_modules.GetValue());
log_setting("Debugging_UseGdbstub", values.use_gdbstub.GetValue());
log_setting("Debugging_GdbstubPort", values.gdbstub_port.GetValue());
@@ -218,6 +222,7 @@ void RestoreGlobalState(bool is_powered_on) {
values.bg_green.SetGlobal(true);
values.bg_blue.SetGlobal(true);
values.render_3d.SetGlobal(true);
+ values.swap_eyes_3d.SetGlobal(true);
values.factor_3d.SetGlobal(true);
values.filter_mode.SetGlobal(true);
values.pp_shader_name.SetGlobal(true);
diff --git a/src/common/settings.h b/src/common/settings.h
index 589de0057..a85ad3c0a 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -72,7 +72,7 @@ enum class SmallScreenPosition : u32 {
enum class StereoRenderOption : u32 {
Off = 0,
SideBySide = 1,
- ReverseSideBySide = 2,
+ SideBySideFull = 2,
Anaglyph = 3,
Interlaced = 4,
ReverseInterlaced = 5,
@@ -86,6 +86,14 @@ enum class MonoRenderOption : u32 {
RightEye = 1,
};
+// on android, which displays to render stereo mode to
+enum class StereoWhichDisplay : u32 {
+ None = 0, // equivalent to StereoRenderOption = Off
+ Both = 1,
+ PrimaryOnly = 2,
+ SecondaryOnly = 3
+};
+
enum class AudioEmulation : u32 {
HLE = 0,
LLE = 1,
@@ -481,6 +489,7 @@ struct Values {
Setting plugin_loader_enabled{false, "plugin_loader"};
Setting allow_plugin_loader{true, "allow_plugin_loader"};
Setting steps_per_hour{0, "steps_per_hour"};
+ Setting apply_region_free_patch{true, "apply_region_free_patch"};
// Renderer
SwitchableSetting graphics_api{
@@ -561,6 +570,10 @@ struct Values {
SwitchableSetting render_3d{StereoRenderOption::Off, "render_3d"};
SwitchableSetting factor_3d{0, "factor_3d"};
+ SwitchableSetting swap_eyes_3d{false, "swap_eyes_3d"};
+
+ SwitchableSetting render_3d_which_display{StereoWhichDisplay::None,
+ "render_3d_which_display"};
SwitchableSetting mono_render_option{MonoRenderOption::LeftEye,
"mono_render_option"};
diff --git a/src/common/zstd_compression.cpp b/src/common/zstd_compression.cpp
index 1e38877a1..ac85ea197 100644
--- a/src/common/zstd_compression.cpp
+++ b/src/common/zstd_compression.cpp
@@ -13,7 +13,7 @@
#include
#include
#include
-#include
+#include
#include
#include
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 005003ec8..1622f3941 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -24,9 +24,11 @@
#include "core/core.h"
#include "core/core_timing.h"
#include "core/dumping/backend.h"
+#include "core/file_sys/ncch_container.h"
#include "core/frontend/image_interface.h"
#include "core/gdbstub/gdbstub.h"
#include "core/global.h"
+#include "core/hle/kernel/ipc_debugger/recorder.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/process.h"
#include "core/hle/kernel/thread.h"
@@ -317,49 +319,104 @@ System::ResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::st
}
}
- auto memory_mode = app_loader->LoadKernelMemoryMode();
- if (memory_mode.second != Loader::ResultStatus::Success) {
- LOG_CRITICAL(Core, "Failed to determine system mode (Error {})!",
- static_cast(memory_mode.second));
+ Kernel::MemoryMode app_mem_mode;
+ Kernel::MemoryMode system_mem_mode;
+ bool used_default_mem_mode = false;
+ Kernel::New3dsHwCapabilities app_n3ds_hw_capabilities;
- switch (memory_mode.second) {
- case Loader::ResultStatus::ErrorEncrypted:
- return ResultStatus::ErrorLoader_ErrorEncrypted;
- case Loader::ResultStatus::ErrorInvalidFormat:
- return ResultStatus::ErrorLoader_ErrorInvalidFormat;
- case Loader::ResultStatus::ErrorGbaTitle:
- return ResultStatus::ErrorLoader_ErrorGbaTitle;
- case Loader::ResultStatus::ErrorArtic:
- return ResultStatus::ErrorArticDisconnected;
- default:
- return ResultStatus::ErrorSystemMode;
+ if (m_mem_mode) {
+ // Use memory mode set by the FIRM launch parameters
+ system_mem_mode = static_cast(m_mem_mode.value());
+ m_mem_mode = {};
+ } else {
+ // Use default memory mode based on the n3ds setting
+ system_mem_mode = Settings::values.is_new_3ds.GetValue() ? Kernel::MemoryMode::NewProd
+ : Kernel::MemoryMode::Prod;
+ used_default_mem_mode = true;
+ }
+
+ {
+ auto memory_mode = app_loader->LoadKernelMemoryMode();
+ if (memory_mode.second != Loader::ResultStatus::Success) {
+ LOG_CRITICAL(Core, "Failed to determine system mode (Error {})!",
+ static_cast(memory_mode.second));
+
+ switch (memory_mode.second) {
+ case Loader::ResultStatus::ErrorEncrypted:
+ return ResultStatus::ErrorLoader_ErrorEncrypted;
+ case Loader::ResultStatus::ErrorInvalidFormat:
+ return ResultStatus::ErrorLoader_ErrorInvalidFormat;
+ case Loader::ResultStatus::ErrorGbaTitle:
+ return ResultStatus::ErrorLoader_ErrorGbaTitle;
+ case Loader::ResultStatus::ErrorArtic:
+ return ResultStatus::ErrorArticDisconnected;
+ default:
+ return ResultStatus::ErrorSystemMode;
+ }
+ }
+
+ ASSERT(memory_mode.first);
+ app_mem_mode = memory_mode.first.value();
+ }
+
+ auto n3ds_hw_caps = app_loader->LoadNew3dsHwCapabilities();
+ ASSERT(n3ds_hw_caps.first);
+ app_n3ds_hw_capabilities = n3ds_hw_caps.first.value();
+
+ if (!Settings::values.is_new_3ds.GetValue() && app_loader->IsN3DSExclusive()) {
+ return ResultStatus::ErrorN3DSApplication;
+ }
+
+ // If the default mem mode has been used, we do not come from a FIRM launch. On real HW
+ // however, the home menu is in charge or setting the proper memory mode when launching
+ // applications by doing a FIRM launch. Since we launch the application without going
+ // through the home menu, we need to emulate the FIRM launch having happened and set the
+ // proper memory mode.
+ if (used_default_mem_mode) {
+
+ // If we are on the Old 3DS prod mode and the application memory mode does not match, we
+ // need to adjust it. We do not need adjustment if we are on the New 3DS prod mode, as that
+ // one overrides all the Old 3DS memory modes.
+ if (system_mem_mode == Kernel::MemoryMode::Prod && app_mem_mode != system_mem_mode) {
+ system_mem_mode = app_mem_mode;
+ }
+
+ // If we are on the New 3DS prod mode, and the application needs the New 3DS extended
+ // memory mode (only CTRAging is known to do this), adjust the memory mode.
+ else if (system_mem_mode == Kernel::MemoryMode::NewProd &&
+ app_n3ds_hw_capabilities.memory_mode == Kernel::New3dsMemoryMode::NewDev1) {
+ system_mem_mode = Kernel::MemoryMode::NewDev1;
}
}
- ASSERT(memory_mode.first);
- auto n3ds_hw_caps = app_loader->LoadNew3dsHwCapabilities();
- ASSERT(n3ds_hw_caps.first);
u32 num_cores = 2;
if (Settings::values.is_new_3ds) {
num_cores = 4;
}
- ResultStatus init_result{
- Init(emu_window, secondary_window, *memory_mode.first, *n3ds_hw_caps.first, num_cores)};
+ ResultStatus init_result{Init(emu_window, secondary_window, system_mem_mode, num_cores)};
if (init_result != ResultStatus::Success) {
LOG_CRITICAL(Core, "Failed to initialize system (Error {})!",
static_cast(init_result));
System::Shutdown();
return init_result;
}
+
+ kernel->UpdateCPUAndMemoryState(program_id, app_mem_mode, app_n3ds_hw_capabilities);
+
gpu->ReportLoadingProgramID(program_id);
// Restore any parameters that should be carried through a reset.
- if (restore_deliver_arg.has_value()) {
- if (auto apt = Service::APT::GetModule(*this)) {
+ if (auto apt = Service::APT::GetModule(*this)) {
+ if (restore_deliver_arg.has_value()) {
apt->GetAppletManager()->SetDeliverArg(restore_deliver_arg);
+ restore_deliver_arg.reset();
+ }
+ if (restore_sys_menu_arg.has_value()) {
+ apt->GetAppletManager()->SetSysMenuArg(restore_sys_menu_arg.value());
+ restore_sys_menu_arg.reset();
}
- restore_deliver_arg.reset();
}
+
if (restore_plugin_context.has_value()) {
if (auto plg_ldr = Service::PLGLDR::GetService(*this)) {
plg_ldr->SetPluginLoaderContext(restore_plugin_context.value());
@@ -367,6 +424,10 @@ System::ResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::st
restore_plugin_context.reset();
}
+ if (restore_ipc_recorder) {
+ kernel->RestoreIPCRecorder(std::move(restore_ipc_recorder));
+ }
+
std::shared_ptr process;
const Loader::ResultStatus load_result{app_loader->Load(process)};
if (Loader::ResultStatus::Success != load_result) {
@@ -449,8 +510,7 @@ void System::Reschedule() {
System::ResultStatus System::Init(Frontend::EmuWindow& emu_window,
Frontend::EmuWindow* secondary_window,
- Kernel::MemoryMode memory_mode,
- const Kernel::New3dsHwCapabilities& n3ds_hw_caps, u32 num_cores) {
+ Kernel::MemoryMode memory_mode, u32 num_cores) {
LOG_DEBUG(HW_Memory, "initialized OK");
memory = std::make_unique(*this);
@@ -459,7 +519,7 @@ System::ResultStatus System::Init(Frontend::EmuWindow& emu_window,
movie.GetOverrideBaseTicks());
kernel = std::make_unique(
- *memory, *timing, [this] { PrepareReschedule(); }, memory_mode, num_cores, n3ds_hw_caps,
+ *memory, *timing, [this] { PrepareReschedule(); }, memory_mode, num_cores,
movie.GetOverrideInitTime());
exclusive_monitor = MakeExclusiveMonitor(*memory, num_cores);
@@ -496,8 +556,6 @@ System::ResultStatus System::Init(Frontend::EmuWindow& emu_window,
dsp_core = std::make_unique(*this, multithread);
}
- memory->SetDSP(*dsp_core);
-
dsp_core->SetSink(Settings::values.output_type.GetValue(),
Settings::values.output_device.GetValue());
dsp_core->EnableStretching(Settings::values.enable_audio_stretching.GetValue());
@@ -680,11 +738,14 @@ void System::Reset() {
// This is needed as we don't currently support proper app jumping.
if (auto apt = Service::APT::GetModule(*this)) {
restore_deliver_arg = apt->GetAppletManager()->ReceiveDeliverArg();
+ restore_sys_menu_arg = apt->GetAppletManager()->GetSysMenuArg();
}
if (auto plg_ldr = Service::PLGLDR::GetService(*this)) {
restore_plugin_context = plg_ldr->GetPluginLoaderContext();
}
+ restore_ipc_recorder = std::move(kernel->BackupIPCRecorder());
+
Shutdown();
if (!m_chainloadpath.empty()) {
@@ -752,6 +813,18 @@ void System::RegisterAppLoaderEarly(std::unique_ptr& loader)
early_app_loader = std::move(loader);
}
+void System::InsertCartridge(const std::string& path) {
+ FileSys::NCCHContainer cartridge_container(path);
+ if (cartridge_container.LoadHeader() == Loader::ResultStatus::Success &&
+ cartridge_container.IsNCSD()) {
+ inserted_cartridge = path;
+ }
+}
+
+void System::EjectCartridge() {
+ inserted_cartridge.clear();
+}
+
bool System::IsInitialSetup() {
return app_loader && app_loader->DoingInitialSetup();
}
@@ -777,17 +850,19 @@ void System::serialize(Archive& ar, const unsigned int file_version) {
}
ar & lle_modules;
+ Kernel::MemoryMode mem_mode{};
+ if (!Archive::is_loading::value) {
+ mem_mode = kernel->GetMemoryMode();
+ }
+ ar & mem_mode;
if (Archive::is_loading::value) {
// When loading, we want to make sure any lingering state gets cleared out before we begin.
// Shutdown, but persist a few things between loads...
Shutdown(true);
- // Re-initialize everything like it was before
- auto memory_mode = this->app_loader->LoadKernelMemoryMode();
- auto n3ds_hw_caps = this->app_loader->LoadNew3dsHwCapabilities();
- [[maybe_unused]] const System::ResultStatus result = Init(
- *m_emu_window, m_secondary_window, *memory_mode.first, *n3ds_hw_caps.first, num_cores);
+ [[maybe_unused]] const System::ResultStatus result =
+ Init(*m_emu_window, m_secondary_window, mem_mode, num_cores);
}
// Flush on save, don't flush on load
@@ -819,7 +894,6 @@ void System::serialize(Archive& ar, const unsigned int file_version) {
u32 cheats_pid;
ar & cheats_pid;
timing->UnlockEventQueue();
- memory->SetDSP(*dsp_core);
cheat_engine.Connect(cheats_pid);
// Re-register gpu callback, because gsp service changed after service_manager got
diff --git a/src/core/core.h b/src/core/core.h
index 4ed8ff326..b33fea174 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -101,6 +101,7 @@ public:
ErrorSystemFiles, ///< Error in finding system files
ErrorSavestate, ///< Error saving or loading
ErrorArticDisconnected, ///< Error when artic base disconnects
+ ErrorN3DSApplication, ///< Error launching New 3DS application in Old 3DS mode
ShutdownRequested, ///< Emulated program requested a system shutdown
ErrorUnknown ///< Any other error
};
@@ -137,8 +138,9 @@ public:
bool SendSignal(Signal signal, u32 param = 0);
/// Request reset of the system
- void RequestReset(const std::string& chainload = "") {
+ void RequestReset(const std::string& chainload = "", std::optional mem_mode = {}) {
m_chainloadpath = chainload;
+ m_mem_mode = mem_mode;
SendSignal(Signal::Reset);
}
@@ -374,6 +376,14 @@ public:
void RegisterAppLoaderEarly(std::unique_ptr& loader);
+ void InsertCartridge(const std::string& path);
+
+ void EjectCartridge();
+
+ const std::string& GetCartridge() const {
+ return inserted_cartridge;
+ }
+
bool IsInitialSetup();
private:
@@ -386,9 +396,7 @@ private:
*/
[[nodiscard]] ResultStatus Init(Frontend::EmuWindow& emu_window,
Frontend::EmuWindow* secondary_window,
- Kernel::MemoryMode memory_mode,
- const Kernel::New3dsHwCapabilities& n3ds_hw_caps,
- u32 num_cores);
+ Kernel::MemoryMode memory_mode, u32 num_cores);
/// Reschedule the core emulation
void Reschedule();
@@ -399,6 +407,9 @@ private:
// Temporary app loader passed from frontend
std::unique_ptr early_app_loader;
+ /// Path for current inserted cartridge
+ std::string inserted_cartridge;
+
/// ARM11 CPU core
std::vector> cpu_cores;
ARM_Interface* running_core = nullptr;
@@ -463,6 +474,7 @@ private:
Frontend::EmuWindow* m_secondary_window;
std::string m_filepath;
std::string m_chainloadpath;
+ std::optional m_mem_mode;
u64 title_id;
bool self_delete_pending;
@@ -474,7 +486,9 @@ private:
bool mic_permission_granted = false;
boost::optional restore_deliver_arg;
+ boost::optional restore_sys_menu_arg;
boost::optional restore_plugin_context;
+ std::unique_ptr restore_ipc_recorder;
std::vector lle_modules;
diff --git a/src/core/file_sys/archive_ncch.cpp b/src/core/file_sys/archive_ncch.cpp
index fb0be5640..514a8736e 100644
--- a/src/core/file_sys/archive_ncch.cpp
+++ b/src/core/file_sys/archive_ncch.cpp
@@ -88,14 +88,31 @@ ResultVal> NCCHArchive::OpenFile(const Path& path,
std::memcpy(&openfile_path, binary.data(), sizeof(NCCHFilePath));
std::string file_path;
- if (Settings::values.is_new_3ds) {
- // Try the New 3DS specific variant first.
- file_path = Service::AM::GetTitleContentPath(media_type, title_id | 0x20000000,
- openfile_path.content_index);
- }
- if (!Settings::values.is_new_3ds || !FileUtil::Exists(file_path)) {
- file_path =
- Service::AM::GetTitleContentPath(media_type, title_id, openfile_path.content_index);
+
+ if (media_type == Service::FS::MediaType::GameCard) {
+ const auto& cartridge = Core::System::GetInstance().GetCartridge();
+ if (cartridge.empty()) {
+ return ResultNotFound;
+ }
+
+ u64 card_program_id;
+ auto cartridge_loader = Loader::GetLoader(cartridge);
+ FileSys::NCCHContainer cartridge_ncch(cartridge);
+ if (cartridge_ncch.ReadProgramId(card_program_id) != Loader::ResultStatus::Success ||
+ card_program_id != title_id) {
+ return ResultNotFound;
+ }
+ file_path = cartridge;
+ } else {
+ if (Settings::values.is_new_3ds) {
+ // Try the New 3DS specific variant first.
+ file_path = Service::AM::GetTitleContentPath(media_type, title_id | 0x20000000,
+ openfile_path.content_index);
+ }
+ if (!Settings::values.is_new_3ds || !FileUtil::Exists(file_path)) {
+ file_path =
+ Service::AM::GetTitleContentPath(media_type, title_id, openfile_path.content_index);
+ }
}
auto ncch_container = NCCHContainer(file_path, 0, openfile_path.content_index);
@@ -116,6 +133,15 @@ ResultVal> NCCHArchive::OpenFile(const Path& path,
// Load NCCH .code or icon/banner/logo
result = ncch_container.LoadSectionExeFS(openfile_path.exefs_filepath.data(), buffer);
+ if (result == Loader::ResultStatus::Success && Settings::values.apply_region_free_patch &&
+ std::memcmp(openfile_path.exefs_filepath.data(), "icon", 4) == 0 &&
+ buffer.size() >= sizeof(Loader::SMDH)) {
+ // Change the SMDH region lockout value to be region free
+ Loader::SMDH* smdh = reinterpret_cast(buffer.data());
+ constexpr u32 REGION_LOCKOUT_REGION_FREE = 0x7FFFFFFF;
+
+ smdh->region_lockout = REGION_LOCKOUT_REGION_FREE;
+ }
std::unique_ptr delay_generator = std::make_unique();
file = std::make_unique(std::move(buffer), std::move(delay_generator));
} else {
diff --git a/src/core/file_sys/plugin_3gx.cpp b/src/core/file_sys/plugin_3gx.cpp
index fc7374d0b..f98e18a04 100644
--- a/src/core/file_sys/plugin_3gx.cpp
+++ b/src/core/file_sys/plugin_3gx.cpp
@@ -1,7 +1,9 @@
-// Copyright 2022 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+// Originally MIT-licensed code from The Pixellizer Group
+
// Copyright 2022 The Pixellizer Group
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
@@ -22,6 +24,7 @@
#include "core/file_sys/file_backend.h"
#include "core/file_sys/plugin_3gx.h"
#include "core/file_sys/plugin_3gx_bootloader.h"
+#include "core/hle/kernel/config_mem.h"
#include "core/hle/kernel/vm_manager.h"
#include "core/loader/loader.h"
@@ -173,10 +176,10 @@ Loader::ResultStatus FileSys::Plugin3GXLoader::Map(
}
const std::array mem_region_sizes = {
- 5 * 1024 * 1024, // 5 MiB
- 2 * 1024 * 1024, // 2 MiB
- 3 * 1024 * 1024, // 3 MiB
- 4 * 1024 * 1024 // 4 MiB
+ 5 * 1024 * 1024, // 5 MiB
+ 2 * 1024 * 1024, // 2 MiB
+ 10 * 1024 * 1024, // 10 MiB
+ 5 * 1024 * 1024 // 5 MiB (reserved)
};
const bool is_mem_private = header.infos.flags.use_private_memory != 0;
@@ -184,65 +187,64 @@ Loader::ResultStatus FileSys::Plugin3GXLoader::Map(
// Map memory block. This behaviour mimics how plugins are loaded on 3DS as much as possible.
// Calculate the sizes of the different memory regions
const u32 block_size = mem_region_sizes[header.infos.flags.memory_region_size.Value()];
+ const u32 exe_offset = 0;
const u32 exe_size = (sizeof(PluginHeader) + text_section.size() + rodata_section.size() +
data_section.size() + header.executable.bss_size + 0x1000) &
~0xFFFu;
+ const u32 bootloader_offset = exe_offset + exe_size;
+ const u32 bootloader_size = bootloader_memory_size;
+ const u32 heap_offset = bootloader_offset + bootloader_size;
+ const u32 heap_size = block_size - heap_offset;
- // Allocate the framebuffer block so that is in the highest FCRAM position possible
- auto offset_fb =
- kernel.GetMemoryRegion(Kernel::MemoryRegion::SYSTEM)->RLinearAllocate(_3GX_fb_size);
- if (!offset_fb) {
- LOG_ERROR(Service_PLGLDR, "Failed to load 3GX plugin. Not enough memory: {}",
- plg_context.plugin_path);
- return Loader::ResultStatus::ErrorMemoryAllocationFailed;
+ // Allocate a block of memory for the plugin
+ std::optional offset;
+ if (kernel.GetMemoryMode() == Kernel::MemoryMode::NewProd ||
+ (plg_context.use_user_load_parameters &&
+ plg_context.user_load_parameters.plugin_memory_strategy ==
+ Service::PLGLDR::PLG_LDR::PluginMemoryStrategy::PLG_STRATEGY_MODE3)) {
+ // Allocate memory block from the end of the APPLICATION region
+ offset =
+ kernel.GetMemoryRegion(Kernel::MemoryRegion::APPLICATION)->RLinearAllocate(block_size);
+
+ // If the reported available APP mem equals the actual size, remove the plugin block size.
+ if (offset) {
+ auto& config_mem = kernel.GetConfigMemHandler();
+ if (config_mem.GetConfigMem().app_mem_alloc ==
+ kernel.GetMemoryRegion(Kernel::MemoryRegion::APPLICATION)->size) {
+ config_mem.GetConfigMem().app_mem_alloc -= block_size;
+ }
+ }
+ plg_context.memory_region = Kernel::MemoryRegion::APPLICATION;
+ } else {
+ // Allocate memory block from the start of the SYSTEM region
+ offset = kernel.GetMemoryRegion(Kernel::MemoryRegion::SYSTEM)->LinearAllocate(block_size);
+ plg_context.memory_region = Kernel::MemoryRegion::SYSTEM;
}
- auto backing_memory_fb = kernel.memory.GetFCRAMRef(*offset_fb);
- plg_ldr.SetPluginFBAddr(Memory::FCRAM_PADDR + *offset_fb);
- std::fill(backing_memory_fb.GetPtr(), backing_memory_fb.GetPtr() + _3GX_fb_size, 0);
- auto vma_heap_fb = process.vm_manager.MapBackingMemory(
- _3GX_heap_load_addr, backing_memory_fb, _3GX_fb_size,
- is_mem_private ? Kernel::MemoryState::Private : Kernel::MemoryState::Shared);
- ASSERT(vma_heap_fb.Succeeded());
- process.vm_manager.Reprotect(vma_heap_fb.Unwrap(), Kernel::VMAPermission::ReadWrite);
-
- // Allocate a block from the end of FCRAM and clear it
- auto offset = kernel.GetMemoryRegion(Kernel::MemoryRegion::SYSTEM)
- ->RLinearAllocate(block_size - _3GX_fb_size);
if (!offset) {
- kernel.GetMemoryRegion(Kernel::MemoryRegion::SYSTEM)->Free(*offset_fb, _3GX_fb_size);
LOG_ERROR(Service_PLGLDR, "Failed to load 3GX plugin. Not enough memory: {}",
plg_context.plugin_path);
return Loader::ResultStatus::ErrorMemoryAllocationFailed;
}
- auto backing_memory = kernel.memory.GetFCRAMRef(*offset);
- std::fill(backing_memory.GetPtr(), backing_memory.GetPtr() + block_size - _3GX_fb_size, 0);
- // Then we map part of the memory, which contains the executable
- auto vma = process.vm_manager.MapBackingMemory(_3GX_exe_load_addr, backing_memory, exe_size,
- is_mem_private ? Kernel::MemoryState::Private
- : Kernel::MemoryState::Shared);
- ASSERT(vma.Succeeded());
- process.vm_manager.Reprotect(vma.Unwrap(), Kernel::VMAPermission::ReadWriteExecute);
+ u32 fcram_offset = offset.value();
+
+ auto backing_memory_exe = kernel.memory.GetFCRAMRef(fcram_offset + exe_offset);
+ std::fill(backing_memory_exe.GetPtr(), backing_memory_exe.GetPtr() + exe_size, 0);
+
+ // Map the executable
+ auto vma_exe = process.vm_manager.MapBackingMemory(
+ _3GX_exe_load_addr, backing_memory_exe, exe_size,
+ is_mem_private ? Kernel::MemoryState::Private : Kernel::MemoryState::Shared);
+ ASSERT(vma_exe.Succeeded());
+ process.vm_manager.Reprotect(vma_exe.Unwrap(), Kernel::VMAPermission::ReadWriteExecute);
- // Write text section
- kernel.memory.WriteBlock(process, _3GX_exe_load_addr + sizeof(PluginHeader),
- text_section.data(), header.executable.code_size);
- // Write rodata section
- kernel.memory.WriteBlock(
- process, _3GX_exe_load_addr + sizeof(PluginHeader) + header.executable.code_size,
- rodata_section.data(), header.executable.rodata_size);
- // Write data section
- kernel.memory.WriteBlock(process,
- _3GX_exe_load_addr + sizeof(PluginHeader) +
- header.executable.code_size + header.executable.rodata_size,
- data_section.data(), header.executable.data_size);
// Prepare plugin header and write it
PluginHeader plugin_header = {0};
plugin_header.version = header.version;
plugin_header.exe_size = exe_size;
plugin_header.heap_VA = _3GX_heap_load_addr;
- plugin_header.heap_size = block_size - exe_size;
+ plugin_header.heap_size = heap_size;
plg_context.plg_event = _3GX_exe_load_addr - 0x4;
plg_context.plg_reply = _3GX_exe_load_addr - 0x8;
plugin_header.plgldr_event = plg_context.plg_event;
@@ -254,39 +256,46 @@ Loader::ResultStatus FileSys::Plugin3GXLoader::Map(
}
kernel.memory.WriteBlock(process, _3GX_exe_load_addr, &plugin_header, sizeof(PluginHeader));
- // Map plugin heap
- auto backing_memory_heap = kernel.memory.GetFCRAMRef(*offset + exe_size);
+ // Write text section
+ kernel.memory.WriteBlock(process, _3GX_exe_load_addr + sizeof(PluginHeader),
+ text_section.data(), header.executable.code_size);
+ // Write rodata section
+ kernel.memory.WriteBlock(
+ process, _3GX_exe_load_addr + sizeof(PluginHeader) + header.executable.code_size,
+ rodata_section.data(), header.executable.rodata_size);
- // Map the rest of the memory at the heap location
- auto vma_heap = process.vm_manager.MapBackingMemory(
- _3GX_heap_load_addr + _3GX_fb_size, backing_memory_heap,
- block_size - exe_size - _3GX_fb_size,
- is_mem_private ? Kernel::MemoryState::Private : Kernel::MemoryState::Shared);
- ASSERT(vma_heap.Succeeded());
- process.vm_manager.Reprotect(vma_heap.Unwrap(), Kernel::VMAPermission::ReadWriteExecute);
+ // Write data section
+ kernel.memory.WriteBlock(process,
+ _3GX_exe_load_addr + sizeof(PluginHeader) +
+ header.executable.code_size + header.executable.rodata_size,
+ data_section.data(), header.executable.data_size);
- // Allocate a block from the end of FCRAM and clear it
- auto bootloader_offset = kernel.GetMemoryRegion(Kernel::MemoryRegion::SYSTEM)
- ->RLinearAllocate(bootloader_memory_size);
- if (!bootloader_offset) {
- kernel.GetMemoryRegion(Kernel::MemoryRegion::SYSTEM)->Free(*offset_fb, _3GX_fb_size);
- kernel.GetMemoryRegion(Kernel::MemoryRegion::SYSTEM)
- ->Free(*offset, block_size - _3GX_fb_size);
- LOG_ERROR(Service_PLGLDR, "Failed to load 3GX plugin. Not enough memory: {}",
- plg_context.plugin_path);
- return Loader::ResultStatus::ErrorMemoryAllocationFailed;
- }
+ // Map bootloader
const bool use_internal = plg_context.load_exe_func.empty();
MapBootloader(
- process, kernel, *bootloader_offset,
+ process, kernel, fcram_offset + bootloader_offset,
(use_internal) ? exe_load_func : plg_context.load_exe_func,
(use_internal) ? exe_load_args : plg_context.load_exe_args,
header.executable.code_size + header.executable.rodata_size + header.executable.data_size,
header.infos.exe_load_checksum,
plg_context.use_user_load_parameters ? plg_context.user_load_parameters.no_flash : 0);
+ // Map plugin heap
+ auto backing_memory_heap = kernel.memory.GetFCRAMRef(fcram_offset + heap_offset);
+ std::fill(backing_memory_heap.GetPtr(), backing_memory_heap.GetPtr() + heap_size, 0);
+
+ auto vma_heap = process.vm_manager.MapBackingMemory(
+ _3GX_heap_load_addr, backing_memory_heap, heap_size,
+ is_mem_private ? Kernel::MemoryState::Private : Kernel::MemoryState::Shared);
+ ASSERT(vma_heap.Succeeded());
+ process.vm_manager.Reprotect(vma_heap.Unwrap(), Kernel::VMAPermission::ReadWriteExecute);
+
+ kernel.memory.Plugin3GXFramebufferAddress() = Memory::FCRAM_PADDR + fcram_offset + heap_offset;
plg_context.plugin_loaded = true;
+ plg_context.plugin_process_id = process.process_id;
plg_context.use_user_load_parameters = false;
+ plg_context.memory_block = {fcram_offset, block_size};
+
return Loader::ResultStatus::Success;
}
@@ -355,7 +364,7 @@ void FileSys::Plugin3GXLoader::MapBootloader(Kernel::Process& process, Kernel::K
std::fill(backing_memory.GetPtr(), backing_memory.GetPtr() + bootloader_memory_size, 0);
auto vma = process.vm_manager.MapBackingMemory(_3GX_exe_load_addr - bootloader_memory_size,
backing_memory, bootloader_memory_size,
- Kernel::MemoryState::Continuous);
+ Kernel::MemoryState::Private);
ASSERT(vma.Succeeded());
process.vm_manager.Reprotect(vma.Unwrap(), Kernel::VMAPermission::ReadWriteExecute);
diff --git a/src/core/frontend/emu_window.cpp b/src/core/frontend/emu_window.cpp
index ee81b177e..3216a1675 100644
--- a/src/core/frontend/emu_window.cpp
+++ b/src/core/frontend/emu_window.cpp
@@ -25,9 +25,8 @@ public:
std::mutex mutex;
bool touch_pressed = false; ///< True if touchpad area is currently pressed, otherwise false
-
- float touch_x = 0.0f; ///< Touchpad X-position
- float touch_y = 0.0f; ///< Touchpad Y-position
+ float touch_x = 0.0f; ///< Touchpad X-position
+ float touch_y = 0.0f; ///< Touchpad Y-position
private:
class Device : public Input::TouchDevice {
@@ -56,24 +55,44 @@ EmuWindow::EmuWindow(bool is_secondary_) : is_secondary{is_secondary_} {
EmuWindow::~EmuWindow() = default;
+Settings::StereoRenderOption EmuWindow::get3DMode() const {
+ Settings::StereoRenderOption render_3d_mode = Settings::values.render_3d.GetValue();
+#ifndef ANDROID
+ // on desktop, if separate windows and this is the bottom screen, then no stereo
+ if (Settings::values.layout_option.GetValue() == Settings::LayoutOption::SeparateWindows &&
+ ((!is_secondary && Settings::values.swap_screen.GetValue()) ||
+ (is_secondary && !Settings::values.swap_screen.GetValue()))) {
+ render_3d_mode = Settings::StereoRenderOption::Off;
+ }
+#else
+ // adjust the StereoRenderOption setting to Off if appropriate on mobile
+ Settings::StereoWhichDisplay whichDisplay = Settings::values.render_3d_which_display.GetValue();
+ if (whichDisplay == Settings::StereoWhichDisplay::None ||
+ whichDisplay == Settings::StereoWhichDisplay::PrimaryOnly && is_secondary ||
+ whichDisplay == Settings::StereoWhichDisplay::SecondaryOnly && !is_secondary) {
+ render_3d_mode = Settings::StereoRenderOption::Off;
+ }
+#endif
+ return render_3d_mode;
+}
+
bool EmuWindow::IsWithinTouchscreen(const Layout::FramebufferLayout& layout, unsigned framebuffer_x,
unsigned framebuffer_y) {
#ifndef ANDROID
// If separate windows and the touch is in the primary (top) screen, ignore it.
if (Settings::values.layout_option.GetValue() == Settings::LayoutOption::SeparateWindows &&
- !is_secondary && !Settings::values.swap_screen.GetValue()) {
+ ((!is_secondary && !Settings::values.swap_screen.GetValue()) ||
+ (is_secondary && Settings::values.swap_screen.GetValue()))) {
return false;
}
#endif
+ Settings::StereoRenderOption render_3d_mode = get3DMode();
- if (!layout.bottom_screen_enabled) {
- return false;
+ if (framebuffer_x > layout.width / 2 &&
+ render_3d_mode == Settings::StereoRenderOption::SideBySideFull) {
+ framebuffer_x = static_cast(framebuffer_x - layout.width / 2);
}
-
- Settings::StereoRenderOption render_3d_mode = Settings::values.render_3d.GetValue();
-
- if (render_3d_mode == Settings::StereoRenderOption::SideBySide ||
- render_3d_mode == Settings::StereoRenderOption::ReverseSideBySide) {
+ if (render_3d_mode == Settings::StereoRenderOption::SideBySide) {
return (framebuffer_y >= layout.bottom_screen.top &&
framebuffer_y < layout.bottom_screen.bottom &&
((framebuffer_x >= layout.bottom_screen.left / 2 &&
@@ -97,25 +116,19 @@ bool EmuWindow::IsWithinTouchscreen(const Layout::FramebufferLayout& layout, uns
}
std::tuple EmuWindow::ClipToTouchScreen(unsigned new_x, unsigned new_y) const {
- Settings::StereoRenderOption render_3d_mode = Settings::values.render_3d.GetValue();
- bool separate_win = false;
-#ifndef ANDROID
- separate_win =
- (Settings::values.layout_option.GetValue() == Settings::LayoutOption::SeparateWindows);
-#endif
+
+ Settings::StereoRenderOption render_3d_mode = get3DMode();
if (new_x >= framebuffer_layout.width / 2) {
- if ((render_3d_mode == Settings::StereoRenderOption::SideBySide ||
- render_3d_mode == Settings::StereoRenderOption::ReverseSideBySide) &&
- !separate_win)
+ if (render_3d_mode == Settings::StereoRenderOption::SideBySide ||
+ render_3d_mode == Settings::StereoRenderOption::SideBySideFull)
new_x -= framebuffer_layout.width / 2;
else if (render_3d_mode == Settings::StereoRenderOption::CardboardVR)
new_x -=
(framebuffer_layout.width / 2) - (framebuffer_layout.cardboard.user_x_shift * 2);
}
- if ((render_3d_mode == Settings::StereoRenderOption::SideBySide ||
- render_3d_mode == Settings::StereoRenderOption::ReverseSideBySide) &&
- !separate_win) {
+
+ if (render_3d_mode == Settings::StereoRenderOption::SideBySide) {
new_x = std::max(new_x, framebuffer_layout.bottom_screen.left / 2);
new_x = std::min(new_x, framebuffer_layout.bottom_screen.right / 2 - 1);
} else {
@@ -140,29 +153,22 @@ void EmuWindow::CreateTouchState() {
}
bool EmuWindow::TouchPressed(unsigned framebuffer_x, unsigned framebuffer_y) {
- Settings::StereoRenderOption render_3d_mode = Settings::values.render_3d.GetValue();
- bool separate_win = false;
-#ifndef ANDROID
- separate_win =
- (Settings::values.layout_option.GetValue() == Settings::LayoutOption::SeparateWindows);
-#endif
-
if (!IsWithinTouchscreen(framebuffer_layout, framebuffer_x, framebuffer_y))
return false;
+ Settings::StereoRenderOption render_3d_mode = get3DMode();
if (framebuffer_x >= framebuffer_layout.width / 2) {
- if ((render_3d_mode == Settings::StereoRenderOption::SideBySide ||
- render_3d_mode == Settings::StereoRenderOption::ReverseSideBySide) &&
- !separate_win)
+ if (render_3d_mode == Settings::StereoRenderOption::SideBySide ||
+ render_3d_mode == Settings::StereoRenderOption::SideBySideFull)
framebuffer_x -= framebuffer_layout.width / 2;
else if (render_3d_mode == Settings::StereoRenderOption::CardboardVR)
framebuffer_x -=
(framebuffer_layout.width / 2) - (framebuffer_layout.cardboard.user_x_shift * 2);
}
+
std::scoped_lock guard(touch_state->mutex);
- if ((render_3d_mode == Settings::StereoRenderOption::SideBySide ||
- render_3d_mode == Settings::StereoRenderOption::ReverseSideBySide) &&
- !separate_win) {
+
+ if (render_3d_mode == Settings::StereoRenderOption::SideBySide) {
touch_state->touch_x =
static_cast(framebuffer_x - framebuffer_layout.bottom_screen.left / 2) /
(framebuffer_layout.bottom_screen.right / 2 -
@@ -204,8 +210,13 @@ void EmuWindow::TouchMoved(unsigned framebuffer_x, unsigned framebuffer_y) {
void EmuWindow::UpdateCurrentFramebufferLayout(u32 width, u32 height, bool is_portrait_mode) {
Layout::FramebufferLayout layout;
-
const Settings::LayoutOption layout_option = Settings::values.layout_option.GetValue();
+ const Settings::StereoRenderOption stereo_option = get3DMode();
+ bool render_full_stereo = (stereo_option == Settings::StereoRenderOption::SideBySideFull);
+ bool is_bottom = is_secondary;
+ if (Settings::values.swap_screen.GetValue())
+ is_bottom = !is_bottom;
+
const Settings::PortraitLayoutOption portrait_layout_option =
Settings::values.portrait_layout_option.GetValue();
const auto min_size = is_portrait_mode
@@ -215,6 +226,9 @@ void EmuWindow::UpdateCurrentFramebufferLayout(u32 width, u32 height, bool is_po
width = std::max(width, min_size.first);
height = std::max(height, min_size.second);
+ if (render_full_stereo) {
+ width = width / 2;
+ }
if (is_portrait_mode) {
switch (portrait_layout_option) {
case Settings::PortraitLayoutOption::PortraitTopFullWidth:
@@ -280,11 +294,16 @@ void EmuWindow::UpdateCurrentFramebufferLayout(u32 width, u32 height, bool is_po
layout = Layout::AndroidSecondaryLayout(width, height);
}
#endif
+
+ if (render_full_stereo) {
+ layout.width = width * 2;
+ }
UpdateMinimumWindowSize(min_size);
if (Settings::values.render_3d.GetValue() == Settings::StereoRenderOption::CardboardVR) {
layout = Layout::GetCardboardSettings(layout);
}
+ layout.render_3d_mode = stereo_option;
NotifyFramebufferLayoutChanged(layout);
}
diff --git a/src/core/frontend/emu_window.h b/src/core/frontend/emu_window.h
index f217a7eac..d5b7803cc 100644
--- a/src/core/frontend/emu_window.h
+++ b/src/core/frontend/emu_window.h
@@ -258,6 +258,8 @@ public:
return is_secondary;
}
+ Settings::StereoRenderOption get3DMode() const;
+
protected:
EmuWindow();
EmuWindow(bool is_secondary);
diff --git a/src/core/frontend/framebuffer_layout.cpp b/src/core/frontend/framebuffer_layout.cpp
index 99628d118..392db8867 100644
--- a/src/core/frontend/framebuffer_layout.cpp
+++ b/src/core/frontend/framebuffer_layout.cpp
@@ -79,7 +79,7 @@ FramebufferLayout SingleFrameLayout(u32 width, u32 height, bool swapped, bool up
// TODO: This is kind of gross, make it platform agnostic. -OS
#ifdef ANDROID
- const float window_aspect_ratio = static_cast(height) / static_cast(width);
+ const float window_aspect_ratio = static_cast(height) / width;
const auto aspect_ratio_setting = Settings::values.aspect_ratio.GetValue();
float emulation_aspect_ratio = (swapped) ? BOT_SCREEN_ASPECT_RATIO : TOP_SCREEN_ASPECT_RATIO;
@@ -365,6 +365,12 @@ FramebufferLayout CustomFrameLayout(u32 width, u32 height, bool is_swapped, bool
}
FramebufferLayout res{
width, height, true, true, {}, {}, !Settings::values.upright_screen, is_portrait_mode};
+ float opacity_value = Settings::values.custom_second_layer_opacity.GetValue() / 100.0f;
+
+ if (!is_portrait_mode && opacity_value < 1) {
+ is_swapped ? res.top_opacity = opacity_value : res.bottom_opacity = opacity_value;
+ }
+
const u16 top_x = is_portrait_mode ? Settings::values.custom_portrait_top_x.GetValue()
: Settings::values.custom_top_x.GetValue();
const u16 top_width = is_portrait_mode ? Settings::values.custom_portrait_top_width.GetValue()
@@ -407,53 +413,56 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale, bool is_secondar
bool is_portrait) {
u32 width, height, gap;
gap = (int)(Settings::values.screen_gap.GetValue()) * res_scale;
+
+ FramebufferLayout layout;
if (is_portrait) {
auto layout_option = Settings::values.portrait_layout_option.GetValue();
switch (layout_option) {
case Settings::PortraitLayoutOption::PortraitCustomLayout:
- return CustomFrameLayout(
- std::max(Settings::values.custom_portrait_top_x.GetValue() +
- Settings::values.custom_portrait_top_width.GetValue(),
- Settings::values.custom_portrait_bottom_x.GetValue() +
- Settings::values.custom_portrait_bottom_width.GetValue()),
- std::max(Settings::values.custom_portrait_top_y.GetValue() +
- Settings::values.custom_portrait_top_height.GetValue(),
- Settings::values.custom_portrait_bottom_y.GetValue() +
- Settings::values.custom_portrait_bottom_height.GetValue()),
- Settings::values.swap_screen.GetValue(), is_portrait);
+ width = std::max(Settings::values.custom_portrait_top_x.GetValue() +
+ Settings::values.custom_portrait_top_width.GetValue(),
+ Settings::values.custom_portrait_bottom_x.GetValue() +
+ Settings::values.custom_portrait_bottom_width.GetValue());
+ height = std::max(Settings::values.custom_portrait_top_y.GetValue() +
+ Settings::values.custom_portrait_top_height.GetValue(),
+ Settings::values.custom_portrait_bottom_y.GetValue() +
+ Settings::values.custom_portrait_bottom_height.GetValue());
+ layout = CustomFrameLayout(width, height, Settings::values.swap_screen.GetValue(),
+ is_portrait);
+
+ break;
case Settings::PortraitLayoutOption::PortraitTopFullWidth:
width = Core::kScreenTopWidth * res_scale;
// clang-format off
height = (static_cast(Core::kScreenTopHeight + Core::kScreenBottomHeight * 1.25) *
res_scale) + gap;
// clang-format on
- return PortraitTopFullFrameLayout(width, height,
- Settings::values.swap_screen.GetValue(),
- Settings::values.upright_screen.GetValue());
+ layout =
+ PortraitTopFullFrameLayout(width, height, Settings::values.swap_screen.GetValue(),
+ Settings::values.upright_screen.GetValue());
+ break;
case Settings::PortraitLayoutOption::PortraitOriginal:
width = Core::kScreenTopWidth * res_scale;
height = (Core::kScreenTopHeight + Core::kScreenBottomHeight) * res_scale;
- return PortraitOriginalLayout(width, height, Settings::values.swap_screen.GetValue());
+ layout = PortraitOriginalLayout(width, height, Settings::values.swap_screen.GetValue());
+ break;
}
} else {
auto layout_option = Settings::values.layout_option.GetValue();
switch (layout_option) {
case Settings::LayoutOption::CustomLayout:
- return CustomFrameLayout(std::max(Settings::values.custom_top_x.GetValue() +
- Settings::values.custom_top_width.GetValue(),
- Settings::values.custom_bottom_x.GetValue() +
- Settings::values.custom_bottom_width.GetValue()),
- std::max(Settings::values.custom_top_y.GetValue() +
- Settings::values.custom_top_height.GetValue(),
- Settings::values.custom_bottom_y.GetValue() +
- Settings::values.custom_bottom_height.GetValue()),
- Settings::values.swap_screen.GetValue(), is_portrait);
-
- case Settings::LayoutOption::SingleScreen:
-#ifndef ANDROID
- case Settings::LayoutOption::SeparateWindows:
-#endif
- {
+ layout =
+ CustomFrameLayout(std::max(Settings::values.custom_top_x.GetValue() +
+ Settings::values.custom_top_width.GetValue(),
+ Settings::values.custom_bottom_x.GetValue() +
+ Settings::values.custom_bottom_width.GetValue()),
+ std::max(Settings::values.custom_top_y.GetValue() +
+ Settings::values.custom_top_height.GetValue(),
+ Settings::values.custom_bottom_y.GetValue() +
+ Settings::values.custom_bottom_height.GetValue()),
+ Settings::values.swap_screen.GetValue(), is_portrait);
+ break;
+ case Settings::LayoutOption::SingleScreen: {
const bool swap_screens = is_secondary || Settings::values.swap_screen.GetValue();
if (swap_screens) {
width = Core::kScreenBottomWidth * res_scale;
@@ -465,8 +474,10 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale, bool is_secondar
if (Settings::values.upright_screen.GetValue()) {
std::swap(width, height);
}
- return SingleFrameLayout(width, height, swap_screens,
- Settings::values.upright_screen.GetValue());
+
+ layout = SingleFrameLayout(width, height, swap_screens,
+ Settings::values.upright_screen.GetValue());
+ break;
}
case Settings::LayoutOption::LargeScreen: {
@@ -495,10 +506,11 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale, bool is_secondar
if (Settings::values.upright_screen.GetValue()) {
std::swap(width, height);
}
- return LargeFrameLayout(width, height, Settings::values.swap_screen.GetValue(),
- Settings::values.upright_screen.GetValue(),
- Settings::values.large_screen_proportion.GetValue(),
- Settings::values.small_screen_position.GetValue());
+ layout = LargeFrameLayout(width, height, Settings::values.swap_screen.GetValue(),
+ Settings::values.upright_screen.GetValue(),
+ Settings::values.large_screen_proportion.GetValue(),
+ Settings::values.small_screen_position.GetValue());
+ break;
}
case Settings::LayoutOption::SideScreen:
width = (Core::kScreenTopWidth + Core::kScreenBottomWidth) * res_scale + gap;
@@ -507,10 +519,10 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale, bool is_secondar
if (Settings::values.upright_screen.GetValue()) {
std::swap(width, height);
}
- return LargeFrameLayout(width, height, Settings::values.swap_screen.GetValue(),
- Settings::values.upright_screen.GetValue(), 1,
- Settings::SmallScreenPosition::MiddleRight);
-
+ layout = LargeFrameLayout(width, height, Settings::values.swap_screen.GetValue(),
+ Settings::values.upright_screen.GetValue(), 1,
+ Settings::SmallScreenPosition::MiddleRight);
+ break;
case Settings::LayoutOption::HybridScreen:
height = Core::kScreenTopHeight * res_scale;
@@ -526,9 +538,9 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale, bool is_secondar
std::swap(width, height);
}
- return HybridScreenLayout(width, height, Settings::values.swap_screen.GetValue(),
- Settings::values.upright_screen.GetValue());
-
+ layout = HybridScreenLayout(width, height, Settings::values.swap_screen.GetValue(),
+ Settings::values.upright_screen.GetValue());
+ break;
case Settings::LayoutOption::Default:
default:
width = Core::kScreenTopWidth * res_scale;
@@ -537,10 +549,13 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale, bool is_secondar
if (Settings::values.upright_screen.GetValue()) {
std::swap(width, height);
}
- return DefaultFrameLayout(width, height, Settings::values.swap_screen.GetValue(),
- Settings::values.upright_screen.GetValue());
+ layout = DefaultFrameLayout(width, height, Settings::values.swap_screen.GetValue(),
+ Settings::values.upright_screen.GetValue());
+ break;
}
}
+
+ return layout;
UNREACHABLE();
}
diff --git a/src/core/frontend/framebuffer_layout.h b/src/core/frontend/framebuffer_layout.h
index ad45cfe01..1d15e2c89 100644
--- a/src/core/frontend/framebuffer_layout.h
+++ b/src/core/frontend/framebuffer_layout.h
@@ -35,6 +35,8 @@ struct FramebufferLayout {
bool is_rotated = true;
bool is_portrait = false;
bool additional_screen_enabled;
+ float top_opacity = 1.0f;
+ float bottom_opacity = 1.0f;
Common::Rectangle additional_screen;
CardboardSettings cardboard;
@@ -46,6 +48,8 @@ struct FramebufferLayout {
u32 GetScalingRatio() const;
static float GetAspectRatioValue(Settings::AspectRatio aspect_ratio);
+
+ Settings::StereoRenderOption render_3d_mode = Settings::values.render_3d.GetValue();
};
/**
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index c722b8e30..21ca655db 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -1,4 +1,4 @@
-// Copyright 2014 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -7,6 +7,7 @@
#include
#include "common/archives.h"
#include "common/serialization/atomic.h"
+#include "common/settings.h"
#include "core/hle/kernel/client_port.h"
#include "core/hle/kernel/config_mem.h"
#include "core/hle/kernel/handle_table.h"
@@ -26,14 +27,13 @@ namespace Kernel {
/// Initialize the kernel
KernelSystem::KernelSystem(Memory::MemorySystem& memory, Core::Timing& timing,
std::function prepare_reschedule_callback,
- MemoryMode memory_mode, u32 num_cores,
- const New3dsHwCapabilities& n3ds_hw_caps, u64 override_init_time)
+ MemoryMode memory_mode, u32 num_cores, u64 override_init_time)
: memory(memory), timing(timing),
- prepare_reschedule_callback(std::move(prepare_reschedule_callback)), memory_mode(memory_mode),
- n3ds_hw_caps(n3ds_hw_caps) {
+ prepare_reschedule_callback(std::move(prepare_reschedule_callback)),
+ memory_mode(memory_mode) {
std::generate(memory_regions.begin(), memory_regions.end(),
[] { return std::make_shared(); });
- MemoryInit(memory_mode, n3ds_hw_caps.memory_mode, override_init_time);
+ MemoryInit(memory_mode, override_init_time);
resource_limits = std::make_unique(*this);
for (u32 core_id = 0; core_id < num_cores; ++core_id) {
@@ -151,6 +151,14 @@ const IPCDebugger::Recorder& KernelSystem::GetIPCRecorder() const {
return *ipc_recorder;
}
+std::unique_ptr KernelSystem::BackupIPCRecorder() {
+ return std::move(ipc_recorder);
+}
+
+void KernelSystem::RestoreIPCRecorder(std::unique_ptr recorder) {
+ ipc_recorder = std::move(recorder);
+}
+
void KernelSystem::AddNamedPort(std::string name, std::shared_ptr port) {
named_ports.emplace(std::move(name), std::move(port));
}
@@ -163,6 +171,37 @@ void KernelSystem::ResetThreadIDs() {
next_thread_id = 0;
}
+void KernelSystem::UpdateCPUAndMemoryState(u64 title_id, MemoryMode memory_mode,
+ New3dsHwCapabilities n3ds_hw_cap) {
+ if (Settings::values.is_new_3ds) {
+ SetRunning804MHz(n3ds_hw_cap.enable_804MHz_cpu);
+ }
+
+ u32 tid_high = static_cast(title_id >> 32);
+
+ constexpr u32 TID_HIGH_APPLET = 0x00040030;
+ constexpr u32 TID_HIGH_SYSMODULE = 0x00040130;
+
+ // PM only updates the reported memory for normal applications.
+ // TODO(PabloMK7): Using the title ID is not correct, but close enough.
+ if (tid_high != TID_HIGH_APPLET && tid_high != TID_HIGH_SYSMODULE) {
+ UpdateReportedMemory(memory_mode, n3ds_hw_cap.memory_mode);
+ }
+}
+
+void KernelSystem::RestoreMemoryState(u64 title_id) {
+ u32 tid_high = static_cast(title_id >> 32);
+
+ constexpr u32 TID_HIGH_APPLET = 0x00040030;
+ constexpr u32 TID_HIGH_SYSMODULE = 0x00040130;
+
+ // PM only updates the reported memory for normal applications.
+ // TODO(PabloMK7): Using the title ID is not correct, but close enough.
+ if (tid_high != TID_HIGH_APPLET && tid_high != TID_HIGH_SYSMODULE) {
+ RestoreReportedMemory();
+ }
+}
+
template
void KernelSystem::serialize(Archive& ar, const unsigned int) {
ar & memory_regions;
@@ -184,7 +223,7 @@ void KernelSystem::serialize(Archive& ar, const unsigned int) {
ar & stored_processes;
ar & next_thread_id;
ar & memory_mode;
- ar & n3ds_hw_caps;
+ ar & running_804MHz;
ar & main_thread_extended_sleep;
// Deliberately don't include debugger info to allow debugging through loads
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index d3b0bc53e..53d88cddf 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -111,6 +111,9 @@ enum class MemoryMode : u8 {
Dev2 = 3, ///< 80MB app memory
Dev3 = 4, ///< 72MB app memory
Dev4 = 5, ///< 32MB app memory
+
+ NewProd = 6, ///< 124MB app memory
+ NewDev1 = 7, ///< 178MB app memory
};
/// New 3DS memory modes.
@@ -137,8 +140,7 @@ class KernelSystem {
public:
explicit KernelSystem(Memory::MemorySystem& memory, Core::Timing& timing,
std::function prepare_reschedule_callback, MemoryMode memory_mode,
- u32 num_cores, const New3dsHwCapabilities& n3ds_hw_caps,
- u64 override_init_time = 0);
+ u32 num_cores, u64 override_init_time = 0);
~KernelSystem();
using PortPair = std::pair, std::shared_ptr>;
@@ -305,6 +307,8 @@ public:
IPCDebugger::Recorder& GetIPCRecorder();
const IPCDebugger::Recorder& GetIPCRecorder() const;
+ std::unique_ptr BackupIPCRecorder();
+ void RestoreIPCRecorder(std::unique_ptr recorder);
std::shared_ptr GetMemoryRegion(MemoryRegion region);
@@ -327,8 +331,12 @@ public:
return memory_mode;
}
- const New3dsHwCapabilities& GetNew3dsHwCapabilities() const {
- return n3ds_hw_caps;
+ void SetRunning804MHz(bool enable) {
+ running_804MHz = enable;
+ }
+
+ bool GetRunning804MHz() const {
+ return running_804MHz;
}
std::recursive_mutex& GetHLELock() {
@@ -365,8 +373,16 @@ public:
return pending_async_operations != 0;
}
+ void UpdateCPUAndMemoryState(u64 title_id, MemoryMode memory_mode,
+ New3dsHwCapabilities n3ds_hw_cap);
+
+ void RestoreMemoryState(u64 title_id);
+
private:
- void MemoryInit(MemoryMode memory_mode, New3dsMemoryMode n3ds_mode, u64 override_init_time);
+ void MemoryInit(MemoryMode memory_mode, u64 override_init_time);
+
+ void UpdateReportedMemory(MemoryMode memory_mode, New3dsMemoryMode n3ds_mode);
+ void RestoreReportedMemory();
std::function prepare_reschedule_callback;
@@ -404,7 +420,7 @@ private:
u32 next_thread_id;
MemoryMode memory_mode;
- New3dsHwCapabilities n3ds_hw_caps;
+ bool running_804MHz = false;
/*
* Synchronizes access to the internal HLE kernel structures, it is acquired when a guest
diff --git a/src/core/hle/kernel/memory.cpp b/src/core/hle/kernel/memory.cpp
index fffa8dd6f..362e88ac5 100644
--- a/src/core/hle/kernel/memory.cpp
+++ b/src/core/hle/kernel/memory.cpp
@@ -1,4 +1,4 @@
-// Copyright 2014 Citra Emulator Project
+// Copyright Citra Emulator Project / Azahar Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -41,23 +41,9 @@ static const u32 memory_region_sizes[8][3] = {
{0x0B200000, 0x02E00000, 0x02000000}, // 7
};
-void KernelSystem::MemoryInit(MemoryMode memory_mode, New3dsMemoryMode n3ds_mode,
- u64 override_init_time) {
+void KernelSystem::MemoryInit(MemoryMode memory_mode, u64 override_init_time) {
const bool is_new_3ds = Settings::values.is_new_3ds.GetValue();
- u32 mem_type_index = static_cast(memory_mode);
- u32 reported_mem_type = static_cast(memory_mode);
- if (is_new_3ds) {
- if (n3ds_mode == New3dsMemoryMode::NewProd || n3ds_mode == New3dsMemoryMode::NewDev2) {
- mem_type_index = 6;
- reported_mem_type = 6;
- } else if (n3ds_mode == New3dsMemoryMode::NewDev1) {
- mem_type_index = 7;
- reported_mem_type = 7;
- } else {
- // On the N3ds, all O3ds configurations (<=5) are forced to 6 instead.
- mem_type_index = 6;
- }
- }
+ const u32 mem_type_index = static_cast(memory_mode);
// The kernel allocation regions (APPLICATION, SYSTEM and BASE) are laid out in sequence, with
// the sizes specified in the memory_region_sizes table.
@@ -73,14 +59,41 @@ void KernelSystem::MemoryInit(MemoryMode memory_mode, New3dsMemoryMode n3ds_mode
config_mem_handler = std::make_shared